Hybrid Linux Driver for Broadcom 4312 not installing

I have been following the instructions as found at http://www.broadcom.com/docs/linux_sta/README.txt to install the new hybrid driver for a Broadcom 4312 on a Dell LatitudeE6500 laptop. I downloaded the hybrid-portsrc-x86_32-v5.10.91.9.3.tar.gz and have successfully
completed all the steps up to “modprobe lib80211”. When I try to do this from the hybrid_wl directory, I get the message “FATAL: Module lib80211 not found.”. If I ignore this and try to install the wl.ko module with the command insmod wl.ko I get the message " insmod: error inserting ‘wl.ko’: -1 Unknown symbol in module". I am assuming that because I could not modprobe lib80211, I get the latter error.

Could you please tell me where lib80211 is supposed to be located or has anyone on this list installed this/these drivers before?

Please find below a log of what I’ve done and some system information.

Also, note that I did not have a blacklist.conf in /etc/modprobe.d but I did have a ‘blacklist’. I appended the recommended blacklist items to both.

Any help would be very much appreciated! Thanks

------------- L O G ------------------
CommandLog: (all done as root).

uname -a

Linux linux-pyut 2.6.27.29-0.1-pae #1 SMP 2009-08-15 17:53:59 +0200 i686 i686 i386 GNU/Linux

lspci | grep Broad

0c:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev01)

cat /home/croe/Desktop/WirelessHardwareInfo

-------taken from system info gui and saved in a file -------
98: udi = ‘/org/freedesktop/Hal/devices/pci_14e4_4315’
pci.subsys_vendor_id = 4136 (0x1028)
info.subsystem = ‘pci’
pci.device_class = 2 (0x2)
info.product = ‘BCM4312 802.11b/g’
pci.device_subclass = 128 (0x80)
info.udi = ‘/org/freedesktop/Hal/devices/pci_14e4_4315’
pci.device_protocol = 0 (0x0)
pci.subsys_product = ‘Wireless 1397 WLAN Mini-Card’
linux.sysfs_path = ‘/sys/devices/pci0000:00/0000:00:1c.1/0000:0c:00.0’
pci.vendor = ‘Broadcom Corporation’
info.parent = ‘/org/freedesktop/Hal/devices/pci_8086_2942’
info.vendor = ‘Broadcom Corporation’
pci.linux.sysfs_path =
‘/sys/devices/pci0000:00/0000:00:1c.1/0000:0c:00.0’
pci.product = ‘BCM4312 802.11b/g’
pci.subsys_vendor = ‘Dell’
pci.product_id = 17173 (0x4315)
linux.hotplug_type = 2 (0x2)
pci.vendor_id = 5348 (0x14e4)
linux.subsystem = ‘pci’
pci.subsys_product_id = 12 (0xc

mkdir hybrid_wl

cd hybrid_wl/

tar xzf …/hybrid-portsrc-x86_32-v5.10.91.9.3.tar.gz

make clean

KBUILD_NOPEDANTIC=1 make -C /lib/modules/uname -r/build M=pwd clean
make[1]: Entering directory /usr/src/linux-2.6.27.29-0.1-obj/i386/pae' make -C ../../../linux-2.6.27.29-0.1 O=/usr/src/linux-2.6.27.29-0.1-obj/i386/pae/. clean make[1]: Leaving directory /usr/src/linux-2.6.27.29-0.1-obj/i386/pae’

make

KBUILD_NOPEDANTIC=1 make -C /lib/modules/uname -r/build M=pwd
make[1]: Entering directory /usr/src/linux-2.6.27.29-0.1-obj/i386/pae' make -C ../../../linux-2.6.27.29-0.1 O=/usr/src/linux-2.6.27.29-0.1-obj/i386/pae/. LD /home/croe/downloads/wireless/hybrid_wl/built-in.o CC [M] /home/croe/downloads/wireless/hybrid_wl/src/wl/sys/wl_linux.o CC [M] /home/croe/downloads/wireless/hybrid_wl/src/wl/sys/wl_iw.o CC [M] /home/croe/downloads/wireless/hybrid_wl/src/shared/linux_osl.o LD [M] /home/croe/downloads/wireless/hybrid_wl/wl.o Building modules, stage 2. MODPOST 1 modules WARNING: modpost: missing MODULE_LICENSE() in /home/croe/downloads/wireless/hybrid_wl/wl.o see include/linux/module.h for more information CC /home/croe/downloads/wireless/hybrid_wl/wl.mod.o LD [M] /home/croe/downloads/wireless/hybrid_wl/wl.ko make[1]: Leaving directory /usr/src/linux-2.6.27.29-0.1-obj/i386/pae’

lsmod | grep “b43|ssb|wl”

------just to be sure --------

rmmod b43

ERROR: Module b43 does not exist in /proc/modules

rmmod ssb

ERROR: Module ssb does not exist in /proc/modules

rmmod wl

ERROR: Module wl does not exist in /proc/modules

tail -5 /etc/modprobe.d/blacklist

#Cam’s edits in an attempt to get the wireless working
blacklist bcm43xx
blacklist ssb
blacklist b43

tail /etc/modprobe.d/blacklist.conf

blacklist ssb
blacklist b43

depmod

depmod -a

ls /lib/modules/2.6.27.*

2.6.27.19-3.2-default/ 2.6.27.19-3.2-trace/ 2.6.27.29-0.1-debug/
2.6.27.29-0.1-ec2/ 2.6.27.29-0.1-trace/ 2.6.27.29-0.1-xen/
2.6.27.19-3.2-pae/ 2.6.27.19-3.2-xen/ 2.6.27.29-0.1-default/
2.6.27.29-0.1-pae/ 2.6.27.29-0.1-vmi/

ls /lib/modules/2.6.27.29-0.1-pae/kernel/net/wireless/

cfg80211.ko

modprobe lib80211

FATAL: Module lib80211 not found.

insmod wl.ko

insmod: error inserting ‘wl.ko’: -1 Unknown symbol in module

This problem has been discussed so many times now, use the forum’s search function and search for 4312.

You will not have to compile anything.

Continued to investigate and found different instructions on OFFICIAL Broadcom Linux driver BCM4312 | You’re Special, Just Like Everybody Else.](http://jomcode.com/fadhil/?p=59)

These instructions worked for me, and are summarized below incase the other website goes away.

Here’s what it says from lspci:
/sbin/lspci |grep Broadcom
0c:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01)

As in the previous post I tried to follow the readme for the new drives and got stymied at the ‘modprobe lib80211’

What I did differently was after making sure I did not have any other drivers by running

rmmod bcm43xx; rmmod b43; rmmod b43legacy

And for good measure remove ndiswrapper modules:

rmmod ndiswrapper

I loaded a different module:

modprobe ieee80211_crypt_tkip

And finally load the wl.ko module:

insmod wl.ko

Now I do an ifconfig and I have a new device call eth1 and the wireless works through that interface.

Hooray!

Is this really “official” Documentation?

What a bunch of crap!

Installed (= located in /lib/modules/Kernelversion/<some>/<subfolder> and registered by depmod) kernel modules should never be loaded with insmod.

Why this unnecessary step of first loading the dependent module with modprobe (sic!) and then the other one with insmod?

A simple


modprobe -v wl
insmod /lib/modules/2.6.27.29-0.1-pae/kernel/net/ieee80211/ieee80211_crypt.ko
insmod /lib/modules/2.6.27.29-0.1-pae/updates/wl.ko

and that’s it!

Just a quick reply to Akoellh - yes, you are correct the 4312 is discussed a lot but virtually all posts have advice on how to use the workarounds like ndiswrapper.
Broadcom has apparently worked on specific drivers for Linux and it seemed to me to be more appropriate to use those instead of windows drivers with a wrapper. I did not see any posts in here to do with the new hybrid drivers or problem I was having. I apologize if there are and I missed them.

The official Broadcom drivers for Linux can be obtained at Broadcom.com - 802.11 Linux STA driver

The blurb on the drivers from the website is below.

802.11 Linux STA driver

These packages contain Broadcom’s IEEE 802.11a/b/g/n hybrid Linux® device driver for use with Broadcom’s BCM4311-, BCM4312-, BCM4321-, and BCM4322-based hardware. There are different tars for 32-bit and 64-bit x86 CPU architectures. Make sure that you download the appropriate tar because the hybrid binary file must be of the appropriate architecture type. The hybrid binary file is agnostic to the specific version of the Linux kernel because it is designed to perform all interactions with the operating system through operating-system-specific files and an operating system abstraction layer file. All Linux operating-system-specific code is provided in source form, making it possible to retarget to different kernel versions and fix operating system related issues.

Rubbish.

In the last 10 or 20 threads, I find when simply searching for 4312, not even one was solved with ndiswrapper.

Correct, but instead of compiling them yourself, using the ready made RPMs which can be found in the openSUSE Build Service would be more prudent.

Software.openSUSE.org

Correct, but instead of compiling them yourself, using the ready made RPMs which can be found in the openSUSE Build Service would be more prudent.

Now this IS helpful, and I thank you for pointing this out to me. This would have saved me a lot of effort if I had this information before. I’ll check here ( Software.openSUSE.org ) now if I have a problem in the future.

I told you to search for “4312”, because then you will find this here:

bcm4312 UDI:14e4-4315 wireless not support?

or this

Acer emachines G725 hw problems :frowning: - openSUSE Forums

which would lead you to this

Wireless not working (BCM4312) - openSUSE Forums

or even this (the “future solution”, which might even apply in the present)

Update on using b43 with PCI ID 14e4:4315 - openSUSE Forums

These are only the first few and most recent hits for “4312”, feel free to look at some more.

@camroe
I have removed the offensive posts and apologise to you for them.

It’s a shame this is necessary.

Yeah I really feel ashamed about having used the “c”-word for some horrible, faulty documentation (hope you will remove the other more than 300 uses of that word in recent threads, too, just use the search function, you will find them a plenty) and called something, which was an obvious lie with the “r”-word for stuff, that goes into the trash bin, directly proving after that, that it was a lie.

But obviously lying seems to be allowed in this forum, so I really “apologize” for that.

@Akoellh
I have deleted the third inappropriate post; please cool off now.

I have same wifi chips. This work for me :
Type this as su in terminal ’ zypper in broadcom-wl broadcom-wl-kmp-default’,that’d install the appropriate driver,then reboot yr computer,it should work. :slight_smile: