1

Background

I have a Dell Inspiron 1525 laptop from 2008, which has a Broadcom wireless chip. I have previously successfully used Ubuntu/Kubuntu on it by installing the firmware-b43-installer package, certainly on 14.04, I can't recall if I've installed 16.04 before on this laptop.

Recently, I installed Ubuntu 16.04, and installed firmware-b43-installer as before. Running sudo modprobe b43 makes the wireless work, but this does not persist after reboot.

The b43 module is blacklisted by /etc/modprobe.d/blacklist-bcm43.conf, which is autogenerated by bcmwl-kernel-source. This blacklisting doesn't stop sudo modprobe b43 from working - it loads the module anyway and WiFi then works until reboot.

What I've tried

  1. Adding b43, preceeded by its dependencies, in /etc/modules, running sudo update-initramfs -u, and rebooting. The module does not get loaded.
  2. Adding b43, preceeded by its dependencies, in /etc/initramfs-tools/modules, running sudo update-initramfs -u, and rebooting. The module does not get loaded.
  3. Adding b43, preceeded by its dependencies, in both /etc/modules and /etc/initramfs-tools/modules, running sudo update-initramfs -u, and rebooting. The module does not get loaded.
  4. Uninstalling bcmwl-kernel-source in order to remove /etc/modprobe.d/blacklist-bcm43.conf, in combination with 1, 2, and 3 above. The module does not get loaded, and running sudo modprobe b43 manually no longer works, so I presume that the bcmwl-kernel-source package is necessary for b43 to work, despite the fact that bcmwl-kernel-source blacklists b43.
  5. Leaving bcmwl-kernel-source installed, but manually deleting /etc/modprobe.d/blacklist-bcm43.conf, in combination with 1, 2, and 3 above. The module does not get loaded, but running sudo modprobe b43 manually once booted works.
  6. Adding a script to root's crontab on @reboot that loops running modprobe b43 until lsmod indicates that it is loaded. The script runs, and keeps running indefinitely, but the module never gets loaded, despite the fact that the script works when run manually from a terminal once booted.

1 Answers1

0

So, moving my script that called modprobe b43 until lsmod indicates that it is loaded from being called by root's crontab to being called by /etc/rc.local fixed this for me. Why this makes any difference I have no idea though.