Making Ubuntu 8.04 work with the HP Thin Client t574x

The network chipset provided by this Thin Client is a BCM 57780 which is not supported by default by Ubuntu 8.04.

In order to change that you can download a more recent driver for the Tigon3 either from the Broadcom Web site (110g at time of writing) at or previous versions as preserved on the HP site at

To make compatible drivers for the Ubuntu kernel, the best approach is to create a chroot of Ubuntu 8.04 to have a clean install env.
You can use debootstrap for that. As the project Lead of, I used my rpmbootstrap command through pb which did that for me:

$ pb -p pb -m ubuntu-8.04-i386 newve
Project: pb
Action: newve
Creating the debootstrap VE for ubuntu-8.04 (i386)... OK
I: Retrieving Release
I: Retrieving Packages
I: Validating Packages
I: Retrieving Packages
I: Validating Packages
I: Found packages in base already in required: gzip tar
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Found additional base dependencies: libgdbm3 perl-modules
I: Checking component main on
I: Retrieving adduser
I: Validating adduser
I: Retrieving apt
I: Validating apt
I: Retrieving zlib1g
I: Validating zlib1g
I: Extracting base-files...
I: Extracting base-passwd...
I: Extracting bash...
I: Extracting util-linux...
I: Extracting zlib1g...
I: Installing core packages...
I: Unpacking required packages...
I: Unpacking base-files...
I: Unpacking base-passwd...
I: Unpacking util-linux...
I: Unpacking zlib1g...
I: Configuring required packages...
I: Configuring sysv-rc...
I: Configuring system-services...
I: Configuring libc6...
I: Unpacking the base system...
I: Unpacking adduser...
I: Unpacking apt...
I: Unpacking wpasupplicant...
I: Unpacking xkb-data...
I: Configuring the base system...
I: Configuring sudo...
I: Configuring libsysfs2...
I: Base system installed successfully.

$ sudo cp /etc/hosts /home/rinse/ubuntu/8.04/i386/etc/hosts... OK
Fixing permissions... OK

Then you can go into the chroot to prepare it for being a good build environment (in particular copying in it the .config file coming from the Ubuntu 8.04 live CD under /boot/config-2.6.24-26-generic on a USB key):

$ cp /media/USBDISK/config-2.6.24-26-generic /home/rinse/ubuntu/8.04/i386/tmp/.config
$ sudo chroot /home/rinse/ubuntu/8.04/i386/ /bin/bash
# mount -t proc proc /proc
# apt-get install linux-headers-2.6.24-16-generic linux-source-2.6.24 libncurses5-dev gcc unzip
# cd /usr/src
# tar xfj linux-source-2.6.24.tar.bz2
# ln -sf linux-source-2.6.24 linux
# cd linux-source-2.6.24
# mv /tmp/.config .
# perl -pi -e 's/EXTRAVERSION = .3/EXTRAVERSION = -26-generic/' /usr/src/linux/Makefile
# make clean prepare scripts
scripts/kconfig/conf -s arch/x86/Kconfig
CHK include/linux/version.h
CHK include/linux/utsrelease.h
UPD include/linux/utsrelease.h
CC arch/x86/kernel/asm-offsets.s
GEN include/asm-x86/asm-offsets.h
CALL scripts/
HOSTCC scripts/genksyms/genksyms.o
HOSTCC scripts/genksyms/lex.o
HOSTCC scripts/genksyms/parse.o
HOSTLD scripts/genksyms/genksyms
CC scripts/mod/empty.o
HOSTCC scripts/mod/mk_elfconfig
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/modpost.o
HOSTCC scripts/mod/sumversion.o
HOSTLD scripts/mod/modpost
HOSTCC scripts/kallsyms
HOSTCC scripts/conmakehash
# cd /root
# wget
# unzip
# tar xfz Server/Linux/Driver/tg3-3.110g.tar.gz
# make clean
rm -f tg3.o tg3.ko tg3.mod.c tg3.mod.o tg3.4.gz tg3_flags.h .tg3* Module.symvers modules.order
rm -rf .tmp_versions Module.markers
# make KVER=2.6.24-26-generic
sh /usr/src/linux > tg3_flags.h
make -C /usr/src/linux SUBDIRS=/root/tg3-3.110g modules
make[1]: Entering directory `/usr/src/linux-source-2.6.24'

WARNING: Symbol version dump /usr/src/linux-source-2.6.24/Module.symvers
is missing; modules will have no dependencies and modversions.

CC [M] /root/tg3-3.110g/tg3.o
Building modules, stage 2.
MODPOST 1 modules
CC /root/tg3-3.110g/tg3.mod.o
LD [M] /root/tg3-3.110g/tg3.ko

Now you can use that tg3.ko module with insmod into your live CD and have network support !
Of course, that method is generic enough that you could use it for many other cases.


Tags: , , ,

2 Responses to “Making Ubuntu 8.04 work with the HP Thin Client t574x”

  1. Zézinho Says:

    Fun to have a post about Ubuntu on Planet Mandriva…

    • brunocornec Says:

      I was not thinking that all my Blog articles would appear on Planet Mandriva ! I never register myself (AFAIK) for that to happen. If that is a problem for readers, I’d recommend only using articles which have the tag “Mandriva” as a filter. Indeed I even found former articles dedicated to Music which have nothing to do there 😦

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: