Debian – How to use non-free drivers during debian install

debianinstallation

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 🙁

Best Answer

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.