Debian installer hangs on network hardware detection due to Broadcom wlan chip

broadcomdebianinstallation

I'm trying to net-install Debian testing (Jessie) on a laptop but I always get stuck during the network hardware detection.

Specifically, the last line I read in the syslog is that the firmware for the wlan chip (bcm43xx-0.fw) cannot be loaded.

For the installation I'm using a bootable USB drive on which I put the debian netinst iso.
I tried to flash the USB drive with both usb-creator-gtk and dd obtaining the same results.

I tried several debian installers:

  • Jessie Alpha 1 installer (debian-jessie-DI-a1-i386-netinst.iso)
  • the weekly build of the installer (debian-testing-i386-netinst.iso)
  • Jessie Alpha 1 installer with non-free firmwares (firmware-jessie-DI-a1-i386-netinst.iso)
  • the weekly build with non-free firmwares (firmware-testing-i386-netinst.iso)

In these last two installers I see that the firmware bcm43xx-0.fw actually exists down the lib path.

I also tried to run the installer with various boot options: noapic nolapic, hw-detect/start_pcmcia=false, acpi=off (each by its own and combined) but nothing changed.

I'm quite clueless.

This is my network hardware according to lspci on a running system (Ubuntu 11.04):

03:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)

and this is the last page of the syslog of the debian installer just before it hangs:

main-menu[572]: INFO: Menu item 'ethdetect' selected
kernel: [         ...] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
kernel: [         ...] r8169 0000:05:00.0: can't disable ASPM; OS doesn't have ASPM control
kernel: [         ...] bcma: bus0: Found chip with id 0x4313, rev 0x01 and package 0x08
kernel: [         ...] bcma: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x24, class 0x0)
kernel: [         ...] bcma: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x18, class 0x0)
kernel: [         ...] bcma: bus0: Core 2 found: PCIe (manuf 0x4BF, id 0x820, rev 0x11, class 0x0)
kernel: [         ...] r8169 0000:05:00.0: irq 43 for MSI/MSI-x
kernel: [         ...] r8169 0000:05:00.0 eth0: RTL8168e/8111e at 0xf801c00, e8:11:32:14:a6:ea, XID 0c200000 IRQ 43
kernel: [         ...] r8169 0000:05:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
kernel: [         ...] bcma: bus0: Bus registered
net/hw-detect.hotplug: Detected hotpluggable network interface lo
kernel: [         ...] cfg80211: Calling CRDA to update world regulatory domain 
kernel: [         ...] Support for cores revisions 0x17 and 0x18 disabled by module param allhwsupport=0. Try b43.allhwsupport=1
kernel: [         ...] b43: probe of bcma0:0 failed with error -524
kernel: [         ...] Broadcom 43xx driver loaded [ Features: PMNLS ]
kernel: [         ...] brcmsmac bcma0:0: mfg 4bf core 812 rev 24 class 0 irq 16
net/hw-detect.hotplug: Detected hotpluggable network interface eth0
kernel: [         ...] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
net/hw-detect.hotplug: Detected hotpluggable network interface wlan0
check-missing-firmware: /dev/.udev/firmware-missing does not exist, skipping
check-missing-firmware: /run/udev/firmware-missing does not exist, skipping
check-missing-firmware: no missing firmware in /dev/.udev/firmware-missing /run/udev/firmware-missing
kernel: [         ...] brcmsmac bcma0:0: firmware: failed to load brcm/bcm/bcm43xx-0.fw (-2)
kernel: [         ...] brcmsmac bcma0:0: Direct firmware load failed with error -2
kernel: [         ...] brcmsmac bcma0:0: Falling back to user helper

I wanted to try to unload/blacklist the kernel module for the Broadcom chip, but I didn't manage to do so. Would that work? How should I do that?

Any help is much appreciated.

Best Answer

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=681656

The work around is to go to a different shell: Press Alt-F2 type: nano /bin/check-missing-firmware

Under the first line of the script, add exit 0:

#!/bin/bash
exit 0

Press Alt-F1 and return to the frozen screen and hit CTRL-C to kill and restart that script. Do not select the conflicting harder for network setup, and you are good to go for now!