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... [...]
April 3rd, 2010 at 11:26 am
I would like to install debian testing version from CD. Can you suggest me where to insert missing ethernet firmware files?
Thank you.
Reply to this comment
April 16th, 2010 at 4:02 am
Hi, and thanks for the instructions, and I third “neb”‘s comment above.
“…Debian will regularly yank the rug from under your feet….”
It’s NOT Debian, it is the “kernel” maintainer.
Ok, well Linus Gates-Torvalds is in charge of the kernel “apparently” still isn’t he?, so why would you allow to rip-out utterly-ESSENTIAL hardware/firmware/drivers required during installation ?
Stop pretending to “compete” with OTHER NetOS’s out there then, Linus -2-faced.
Geez, thanks a lot eh.
Pretty soon, we will desperately need OPEN-Hardware solutions just to compete with these Proprietary-WINDOWS-only Hardware kaka which unfortunaely we’re ALL stuck with.
Isn’t it enough that we ALL pay for HARDWARE.
ahh well, whats new, keep adapting or DIE
Reply to this comment
June 13th, 2010 at 9:25 am
Thanks for this excellent guide, helped a lot!
Reply to this comment