broadcom-wl wireless card

Bob pigiron at gmx.com
Wed Aug 17 13:21:39 EDT 2011


On Sun, 14 Aug 2011 10:08:23 -0600 (MDT) Lawrence Baggett
<Lawrence.Baggett at Colorado.EDU> wrote:

> I just upgraded my arch linux to the 3.0 kernel, and it no longer 
> recognizes my wireless module.  It claims the modules wl.ko is in the 
> wrong format.
> Anybody had this problem and solved it?

Hi Larry,

You may have fixed the problem by now. If so, then maybe this can be of
some help to others. Also, sorry for being so verbose.

The wl.ko kernel module is created by compiling Broadcom's proprietary
source code as explained here:

https://wiki.archlinux.org/index.php/Broadcom_BCM4312#broadcom-wl

Hopefully you were using the AUR package to compile it, as it contains
some patches to Broadcom's source code. The AUR is here:

http://aur.archlinux.org/packages.php?ID=19514

The "wrong format" type error you saw is typical when you try to load a
kernel module that was not compiled with the current kernel you are
running.

When kernel modules are compiled they put a sort of "Identification"
string into the modules themselves. Just before a module is loaded, the
kernel checks this "Identification" to verify that the module was compiled
with this (the running) kernel. Although this can be turned off at kernel
configuration time or at modprobe time, doing so is not a good idea because
the internal kernel API's change so frequently. For instance, if you
attempt to load a module that was compiled using an old API into a kernel
using the new API, or the old API doesn't even exist anymore, this train
wreck ends up as a kernel panic.

As Tyler said, the usual fix to this problem is to re-compile the module.

Such is the life of being forced to use a proprietary driver. Some good
news on this front is that Broadcom recently dropped some source code into
the Linux kernel "staging" area. The kernel folks (including the Broadcom
folks) were all over it and are fairly close to getting it moved into the
Linux kernel proper. This is very good news as Broadcom has semi-ignored
Linux for a long while... long after other network chip manufacturers have
gotten on board. The semi-bad news is that these drivers are only for a few
of their 802.11n chips using the PCIe or embedded SDIO bus. The list,
along with instructions on finding your chip ID, can be found on that
first web link above. But... the Broadcom folks have said that more code
is coming for some of their other chips, so hopefully things should only
improve from here.

The Arch distribution compiles and ships those beta drivers found in the
"staging" area, so I'm going to assume that your Broadcom chip is not one
of those on the list. If it is, let me know and let's get it fixed!

Anyway, hopes this helps.

peace,
Bob



More information about the Speakup mailing list