TIP: Debian Linux Kernel Firmware issues – Ethernet drivers missing
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

Free Email Subscription









June 12th, 2009 at 9:11 pm
Thanks, ran into this after I built and installed kernel 2.6.30-git4-custom on Debian Sid.
Reply to this comment
June 12th, 2009 at 9:26 pm
Add this to your repository file “/etc/apt/sources.list” to download and install it for Debian Sid.
deb http://ftp.de.debian.org/debian sid main non-free
Reply to this comment
September 2nd, 2009 at 10:29 am
UGH – Surprized me – Thanks for the post solution works!
Reply to this comment
September 12th, 2009 at 10:35 am
Many thanks for this clarification. Debian is a good OS/distribution, but unless you keep up on the ridiculously technical stuff (which I don’t, and no end-user should have to do), Debian will regularly yank the rug from under your feet. The only thing that makes Debian really usable is the community – thanks again.
Reply to this comment
November 2nd, 2009 at 7:14 pm
[...] http://blogs.koolwal.net/2009/05/11/tip-debian-linux-kernel-firmware-issues-ethernet-drivers-missing... [...]
November 25th, 2009 at 12:25 am
I second neb’s comments. Many thanks, this saved me.
Reply to this comment
January 27th, 2010 at 12:55 am
[...] http://blogs.koolwal.net/2009/05/11/tip-debian-linux-kernel-firmware-issues-ethernet-drivers-missing... [...]