There was a very long discussion on Debian Developer’s mailing list, right before Lenny came out, regarding the proprietary (source code not available) firmware that ships inside the Linux kernel. After a long painful discussion it was decided that Debian will remove all such firmware from the stock Debian kernel. As a result of this from kernel 2.6.29 onwards the change was implemented and all the firmware binaries were stripped out of Debian kernel. The result was that when you installed 2.6.29 kernel chances were that your WiFi or your Ethernet card won’t be working anymore because of the removed “firmware”.

Problem Setup

So for example, suppose you did this:
apt-get install linux-image-2.6.29-1-686

or

dpkg -i linux-image-2.6.29-1-686_2.6.29-1_i386.deb

and you see the following warning messages:

W: Possible missing firmware /lib/firmware/e100/d102e_ucode.bin for module e100
W: Possible missing firmware /lib/firmware/e100/d101s_ucode.bin for module e100
W: Possible missing firmware /lib/firmware/e100/d101m_ucode.bin for module e100

and then you reboot your system and boot with the 2.6.29 kernel that you just installed. You will immediately notice that you have lost your Ethernet interfaces i.e. your internet/Ethernet no long works. Let’s see what is missing from our system:

# apt-get install apt-file

and synchronize the database with the following command:

# apt-file update

Note that the above command may take up to 2 or 3 minutes to complete. So be patient.

Now simply put the name of the file which are missing from the above message:

# apt-file search /lib/firmware/e100/
firmware-linux: /lib/firmware/e100/d101m_ucode.bin
firmware-linux: /lib/firmware/e100/d101s_ucode.bin
firmware-linux: /lib/firmware/e100/d102e_ucode.bin

So looks like we are missing the files that are provided the package called “firmware-linux”. You can just substitute your message of what files/firmware are missing (/lib/firmware/e100/d102e_ucode.bin) in the above command and see which package contains those files.

Solution

Reboot your system and go boot from your older kernel, which had ethernet working and do the following:

a) Add the non-free repository in your sources.list file

#  nano /etc/apt/sources.list

deb http://ftp.us.debian.org/debian testing main contrib non-free
deb-src http://ftp.us.debian.org/debian testing main contrib non-free

b) Install the package “firmware-linux”

apt-get update
apt-get install firmware-linux

Now reboot your system with 2.6.29 kernel and you should see your ethernet back. Addtionally you can find the list of all the missing (non-free) firmware here.

c) If you are not able to find the linux-firmware package and mostly likely you will not if you are using Debian Lenny, you need to add the following line to your /etc/apt/sources.list file:

deb http://www.backports.org/debian lenny-backports main contrib non-free

and then again give the following commands:

apt-get update
apt-get install firmware-linux

Be Sociable, Share!