How to use non-free drivers during debian install

I'm trying to install debian stable using unetbootin. The install process fails with "network autoconfiguration failed", probably due to the ethernet driver not working.

My Lenovo U350 has a Broadcom BCM57780 which does not seem to be supported out-of-the-box: there are various bug reports here, here and here, but I don't know if the fix has made it into debian (6) stable.

One discussion says that you have to use an ethernet driver from the firmware-linux-nonfree package. I'm not sure that this is correct because the BCM57780 is not in the list of drivers in firmware-linux-nonfree.

The specific question tree is:

  • Is BCM57780 supported in debian stable?
    • If so, what could be wrong? Should I install debian unstable instead?
    • If not, do I need to use firmware-linux-nonfree during installation and, if so, how do I do this?

Please note: I've used ubuntu and debian loads in the past but please post line-by-line guidance rather than some cryptic abbreviation of any instructions.

Thanks in advance for any help.

Updates:

  • Debian stable with non-free drivers did not work.
  • Debian unstable (free drivers only) did not work.
  • Tried loading firmware-iwlwifi_0.28_all.deb from another USB stick to get wireless working rather than BCM57780. The .deb file was found but the network configuration still failed!
  • That's it, I'm giving up. Unfortunately I'll use ubuntu even though the Unity user interface will be very unstable for the next couple of years :(

Solution 1:

UPDATE Feb 2021: Nowadays I would recommend just copying the firmware deb files to the USB stick directly without going through this mess, just as this answer suggests in this thread. I placed my iwlwifi package in both the root of the USB stick, as well as the "firmware" folder. Don't know which one is the right one, but it works now. Thanks!

If you want to create a bootable Debian USB stick with non-free drivers included, you can copy the ISO to the drive directly then create a new partition where you include the .deb files of whatever drivers you need.

First make sure you're not copying to the wrong device by checking the output of dmesg after connecting your flash drive.

Now copy debian on to your USB stick:

cat debian.iso > /dev/sdb; sync

Then create a new partition by using fdisk:

fdisk /dev/sdb

Use these commands to configure the new partition using fdisk (this assumes you already have 1 partition on it):

n (Create new partition)
p (Partition type: Primary)
2 (Partition number)
Enter (select default values for first sector)
Enter (select default values for last sector)
t (Change partition type)
2 (Partition number)
6 (Hex code for type FAT16)
w (to write changes to disk)

Now we inform the OS of partition table changes (apt-get install parted):

partprobe

Format the partition with vfat:

mkfs.vfat /dev/sdb2

Mount the new partition:

mount /dev/sdb2 /mnt

Now you can copy whatever .deb files you want the installer to detect during installation, for example:

cp firmware-bnx2_0.28+squeeze1_all.deb /mnt

Make sure all data is written to disk (probably unnecessary):

sync

Unmount USB drive:

umount /mnt

Done!

Now the Debian installer will detect all the drivers you added to the new partition and use them. In my case I needed non-free NIC drivers for a Dell PowerEdge server.

Solution 2:

I don't know if the BCM57780 is supported in Debian Squeeze, but if it uses the tg3 driver then I can confirm it's not in the net installer (I had this same problem myself). I actually extracted the initrd, added the missing firmware, and re-compressed the initrd.

Have you tried the instructions on how to use 3rd party firmware?

Also, Raphael Hertzog sells an installation CD/DVD with pre-loaded firmware.

Edit: Sorry I just realized what unetbootin is and what you're trying to do (install debian onto a live usb stick). Try one of these unofficial CD images which already include the non-free firmware.

Solution 3:

Hey I was having the same problem. I could not get the non free drivers to load during install. I tried everything (well almost).

I realize it's been a few years since this question was asked but since this page appears near the top I'm going to share this in case someone else finds this page searching for a solution.

The key for me was using a USB stick that was partitioned in FAT32. Once I repartitioned my USB to use FAT32 the directions on the debian page (http://www.debian.org/releases/stable/i386/ch06s04.html.en) worked perfectly.

Once again... the key is using a FAT32 partitioned USB drive.

Hope this helps someone.

Solution 4:

Oh well, old question but anyway. This is what worked for me on a Thinkpad T430.

  • A USB drive with a FAT32 partition.
  • The .deb package with drivers from https://packages.debian.org/wheezy/firmware-iwlwifi.
  • Put .deb file in the root of the partition.

On that note even thought the directions states that lose files should work too I didn't manage to make that work. There by be sure to get the package not the lose files.

Also USB2/3 might make a difference. I used a USB2 drive.