Jump to: navigation, search

I have a zd1211 based wifi card. The Debian installer did not detect it when I booted with the usb powered hub plugged into the otg port (which the card is plugged into). Instead I had to boot then plug the hub in after booted.

Next the installer cannot find the firmware driver. Select "Go Back" and "Execute shell" then mount a media with the firmware and copy it to /lib/firmware Then exit the shell, and run the detect hardware step again.. now the wifi works and you can complete the install.

Possible Fix?

Since Mainline seems to be moving to as firmware free as possible, i'd like to find another way around this problem. It'll probably get worse.

1. Some how, dump the linux-firmware tree into the build tree and build the uImage with 'all' possible firmware's... (well not stuff like radeon.bin's)

2. update the intrd.gz image with all firmwares.

--RobertCNelson 23:15, 28 April 2009 (UTC)

inird.gz fix

based on:

Clear, create and cd into a temporary directory:

rm -rf /tmp/firmware
mkdir  /tmp/firmware 
cd /tmp/firmware 

Acquire the lenny/firmware-XX package, which contains the firmware: (firmware-XX download page)


Extract the files from the package into the temporary directory:

ar -p zd1211-firmware_2.21.0.0-0.1_all.deb data.tar.gz | tar -zxf - 

Create the cpio archive using pax, contain stuff under lib but root it in / in the archive:

pax -x sv4cpio -s '%lib%/lib%' -w lib | gzip -c >fw.cpio.gz

Download initrd.gz


Concatenate the firmware:

cat initrd.gz fw.cpio.gz >initrd-fw.gz

Then deflate

gzip -d initrd-fw.gz

DD it.. 8Mb might not be enough for some firmware

dd if=initrd-fw of=initrd.pad ibs=8388608 conv=sync

Copy initrd.pad to SD card...

Unknowns: Kernel's looking for /lib/modules/`uname-r`/ these will place them in /lib/modules/*.... Dang: small board problem on my new RevC2 so i can't test this tonight.. --RobertCNelson 00:31, 5 May 2009 (UTC)