Ubuntu

[SOLUTION] Broadcom wireless 4313, bcmwl-kernel-sources missing headers dependency

Reported by greplnx on 2012-11-15
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
bcmwl (Ubuntu)
Undecided
Unassigned

Bug Description

Installing Broadcom wireless driver for STA series (4313) yields inability to use wireless connections. The reason on the surface is the lack of, e.g., wl0 interface.

     02:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)

The versions concerned are all current as of Nov 15, 2012, Ubuntu 12.10, others are stated below.

During the installation of

     sudo apt-get install bcmwl-kernel-source broadcom-sta-source broadcom-sta-common

a series of errors occurs:

Unpacking broadcom-sta-source (from .../broadcom-sta-source_5.100.82.112-7_all.deb) ...
Setting up bcmwl-kernel-source (5.100.82.112+bdcom-0ubuntu3) ...
Loading new bcmwl-5.100.82.112+bdcom DKMS files...
Building for architecture x86_64
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.
ERROR: Module b43 does not exist in /proc/modules
ERROR: Module b43legacy does not exist in /proc/modules
ERROR: Module ssb does not exist in /proc/modules
ERROR: Module bcm43xx does not exist in /proc/modules
ERROR: Module brcm80211 does not exist in /proc/modules
ERROR: Module brcmfmac does not exist in /proc/modules
ERROR: Module brcmsmac does not exist in /proc/modules
ERROR: Module bcma does not exist in /proc/modules
FATAL: Module wl not found.
FATAL: Error running install command for wl

The reason for this is obviously the lack of linux-headers which prevents the compilation of the wireless module from the source files installed, as the following resolves the issue:

1. find out the current kernel version running (cf. the build skip message above)--on my system it's 3.5.0-17-generic

     uname -a

2. install the appropriate linux-headers:

     sudo apt-get install linux-headers-3.5.0-17-generic

which yields (if the driver sources have already been installed and not been removed, otherwise install them again):

    Setting up linux-headers-3.5.0-17-generic (3.5.0-17.28) ...
     Examining /etc/kernel/header_postinst.d.
     run-parts: executing /etc/kernel/header_postinst.d/dkms 3.5.0-17-generic /boot/vmlinuz-3.5.0-17-generic
      * Running DKMS auto installation service for kernel 3.5.0-17-generic
      * bcmwl (5.100.82.112+bdcom)...
     bcmwl (5.100.82.112+bdcom): Installing module.
     ............
     ..........

After this, the module is loaded automatically, everything works again.

Assumed reason: missing dependency of bcmwl-kernel-source for linux-headers. Please add appropriate dependencies, as the same would happen on every kernel change.

Creating a package comprising the three packages bcmwl-kernel-source broadcom-sta-source broadcom-sta-common and adding a dependency for linux-headers-{running version} which may be removed after the wireless module compilation and recompiling upon every kernel update should solve the issue.

A verbose coloring and formatting for apt-get ala Gentoo's emerge would be helpful for all users. An apt-get wrapper is presumably viable.

Other than that:

/etc/modprobe.d/blacklist.conf:

blacklist bcm43xx
blacklist b43
blacklist b43legacy
blacklist bcma
blacklist ndiswrapper
blacklist brcmsmac

/etc/modprobe.d/blacklist-bcm43.conf

# Warning: This file is autogenerated by bcmwl. All changes to this file will be lost.
blacklist b43
blacklist b43legacy
blacklist ssb
blacklist bcm43xx
blacklist brcm80211
blacklist brcmfmac
blacklist brcmsmac
blacklist bcma

greplnx (greplnx) wrote :

uname -r is more appropriate

Denis (denis-dellsale) wrote :

now, i have got working driver.
i downloaded the source of last version, applied the patch (see attachement)
The error "asm\system.h" disappeared.
Then i installed the new driver.

Created new file in /etc/modprobe.d/broadcom.conf
<code>
alias ssb off
blacklist b43
blacklist ssb
blacklist ssb_hcd
options wl name=wlan0
</code>

Then add new string in file /etc/initramfs/modules
<code>
echo wl >> /etc/initramfs/modules
</code>

And update init ramfs
<code>
update-initramfs
</code>

Reboot.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers