PDA

View Full Version : Broadcom-wl (BCM 4312 Chipset) broken after update


styounes
8th June 2012, 04:53 AM
I recently installed Fedora 17 and the broadcom-wl (akmod-wl driver) (following the instructions here: http://forums.fedoraforum.org/showthread.php?t=239922). This worked for a time until running a system update at which point "Wireless" no longer shows up in my Network manager.

I have removed and reinstalled the akmod-wl driver to no avail (theoretically, exactly what one would expect since this is the akmod vs. kmod version). Attempts to load the module via command:

modprobe wl

gives the following error: FATAL: Module wl not found. I have tried rebuilding the akmod with the following command along with error output:

su -c 'akmods --akmod wl'
Checking kmods exist for 3.4.0-1.fc17.x86_64 [ OK ]
Building and installing wl-kmod [FAILED]
Building rpms failed; see /var/cache/akmods/wl/5.100.82.112-2.11-for-3.4.0-1.fc17.x86_64.failed.log for details

Hint: Some kmods were ignored or failed to build or install.
You can try to rebuild and install them by by calling
'/usr/sbin/akmods --force' as root.

The above recommended command produces the same output when run as root. I have attached the failed.log for any who may want to read through it (I was unable to decipher the errors therein). Finally, following the advice of another post I saw on this site, I tried to install kernel-devel only to discover it is already installed. Any suggestions would be greatly appreciated as I am at my wit's end. Thank you in advance!

george_toolan
8th June 2012, 11:47 AM
wl_linux.c:43:24: fatal error: asm/system.h: No such file or directory

Find out what happened to it and change line 43 of wl_linux.c or create a symlink (which might have side effects)

locate -i system.h | grep 3.4.0

styounes
8th June 2012, 05:35 PM
Command locate -i system.h | grep 3.4.0 produces no output; excluding the grep command produces only a non-relevant file in the docs directory.

george_toolan
8th June 2012, 06:45 PM
Try

yum install kernel-headers

You do have kernel-devel installed, don't you?

styounes
8th June 2012, 07:22 PM
Yes, I do have kernel-devel installed.

ffrbw
8th June 2012, 08:38 PM
Yes, I do have kernel-devel installed.
It's a problem with the source code of the module (from broadcom) and the kernel 3.4.0. You can see error in the rpmfusion build log.
It' at:

http://buildsys.rpmfusion.org/logs/fedora-17-rpmfusion_nonfree/13518-wl-kmod-5.100.82.112-2.fc17.13/i686/build.log

Amost at the end of the file you can see this:
/builddir/build/BUILD/wl-kmod-5.100.82.112/_kmod_build_3.4.0-1.fc17.i686/src/wl/sys/wl_linux.c:43:24: fatal error: asm/system.h: No such file or directory
compilation terminated.
make[1]: *** [/builddir/build/BUILD/wl-kmod-5.100.82.112/_kmod_build_3.4.0-1.fc17.i686/src/wl/sys/wl_linux.o] Error 1
make: Leaving directory `/usr/src/kernels/3.4.0-1.fc17.i686'
make: *** [_module_/builddir/build/BUILD/wl-kmod-5.100.82.112/_kmod_build_3.4.0-1.fc17.i686] Error 2

I tried to compile from source myself, excluding this problematic line (it's not just crazyness, I was following patches for other distributions), but the compilation fails with another error, a field missing from a structure, a bit later on.

I'm afraid this requires manual intervention from the mantainer of this package.

(and yes, I too have kernel-devel installed :)

Ramiro.

ffrbw
8th June 2012, 09:29 PM
Replying to myself, but perhaps this can be useful for someone else.

I got the compilation from source working, in fact I'm posting this through the wireless interface. The modifications to the source file are really really simple.

If you want to try, it goes more or less like this:

1) get the source files from broadcom -- http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_x86_64-v5_100_82_112.tar.gz

2) make a new directory and extract the source files
# mkdir hybrid-wl
# cd hydrid-wl
# tar -xvzf ../hybrid-portsrc_x86_64-v5_100_82_112.tar.gz

3) change to the problematic file directory
# cd src/wl/sys

4) fix the source file wl_linux.c (of course use your favourite editor):
# vi wl_linux.c
around line 43, remove the line
#include <asm/system.h>

search for the string
.ndo_set_multicast_list
and replace it with
.ndo_set_rx_mode

save the file, and try to compile

5) # cd ../../..
# make

If you are lucky things should work, and you'll have a file called "wl.ko" in the current directory. (I got these patches from the internet, not my own work.)

I then did

# mkdir -p /lib/modules/3.4.0-1.fc17.x86_64/extra/wl
# cp wl.ko /lib/modules/3.4.0-1.fc17.x86_64/extra/wl
# depmod -a
# modprobe wl

and I had to reconfigure the interface, inserting the network password again, but after that it's working.

Ramiro.

pmcnabb
8th June 2012, 09:49 PM
Ramiro's workaround works for me.

If you have akmod-wl installed, the source tarball is embedded in /usr/src/akmods/wl-kmod-*.src.rpm

As with other SRPMs, you can "rpm -Uvh" it and look in ~/rpmbuild/SOURCES/ to find hybrid-portsrc_x86_64*.tar.gz

-Peter

MortenW
8th June 2012, 10:18 PM
Ramiro's fix worked for me as well

Thanx

jakerock
9th June 2012, 05:31 AM
This method worked for me too, thanks :)

QuantumKnot
9th June 2012, 10:21 AM
This method worked for me too. :) When will the akmod rpm be updated with this patch?

styounes
13th June 2012, 04:32 AM
Awesome! This works! Thank you so much ffrbw!

username
23rd June 2012, 01:30 PM
Hi. This works not for me. Everythings was okay with Ramiro's method, but in NetworkManager there is no wireless option. Somebody any idea? Thank you.

StephenH
23rd June 2012, 03:25 PM
Hi. This works not for me. Everythings was okay with Ramiro's method, but in NetworkManager there is no wireless option. Somebody any idea? Thank you.

What does "systemctl status akmods.service" return?

What happens when you execute "systemctl enable akmods.service" and "systemctl start akmods.service"?

I also had problems with the latest kernel, but after I did that, it worked. The first reboot, it did not give me wireless, but after rebooting, the wireless was enabled and active again. It is something to try.

Before, when I tried, it was returning that it was not active. After enabling and starting, it returned this:

systemctl status akmods.service
akmods.service - Builds and install new kmods from akmod packages
Loaded: loaded (/usr/lib/systemd/system/akmods.service; enabled)
Active: active (exited) since Fri, 22 Jun 2012 22:25:23 -0400; 11h ago
Main PID: 604 (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/akmods.service

Jun 22 22:25:23 hostname.domainname akmods[604]: Checking kmods exist for 3.4.3-...]

username
23rd June 2012, 06:16 PM
What does "systemctl status akmods.service" return?

What happens when you execute "systemctl enable akmods.service" and "systemctl start akmods.service"?

I also had problems with the latest kernel, but after I did that, it worked. The first reboot, it did not give me wireless, but after rebooting, the wireless was enabled and active again. It is something to try.

Before, when I tried, it was returning that it was not active. After enabling and starting, it returned this:

systemctl status akmods.service
akmods.service - Builds and install new kmods from akmod packages
Loaded: loaded (/usr/lib/systemd/system/akmods.service; enabled)
Active: active (exited) since Fri, 22 Jun 2012 22:25:23 -0400; 11h ago
Main PID: 604 (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/akmods.service

Jun 22 22:25:23 hostname.domainname akmods[604]: Checking kmods exist for 3.4.3-...]

SOLVED for me too! I installed the akmod-wl in the new kernel 3.4 and it works, thanks for help. :)

StephenH
23rd June 2012, 07:06 PM
SOLVED for me too! I installed the akmod-wl in the new kernel 3.4 and it works, thanks for help. :)

Good. I'm glad it helped. I'm not sure how or why akmods was deactivated, but it was bothering me for some time before I found a hint in an Nvidia thread that pointed me to systemctl. Hopefully, this will help others too.

esrhim
27th September 2012, 08:33 PM
Thanks Ramiro!

I had the same problem, but with BCM4313 chipset on Debian and 3.5.0-4.dmz.1-liquorix-amd64 kernel. Your enlignment help to me to compile and build the driver manually.

Following your passes doesn't work for me at all, but I did the passes from REEDME (http://www.broadcom.com/docs/linux_sta/README.txt) file from broadcom webpage and one Fresh installation. Finally, It's working :)

Cheers,
Pablo.

go2moon
4th October 2012, 10:04 AM
Replying to myself, but perhaps this can be useful for someone else.

I got the compilation from source working, in fact I'm posting this through the wireless interface. The modifications to the source file are really really simple.

If you want to try, it goes more or less like this:

1) get the source files from broadcom -- http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_x86_64-v5_100_82_112.tar.gz

2) make a new directory and extract the source files
# mkdir hybrid-wl
# cd hydrid-wl
# tar -xvzf ../hybrid-portsrc_x86_64-v5_100_82_112.tar.gz

3) change to the problematic file directory
# cd src/wl/sys

4) fix the source file wl_linux.c (of course use your favourite editor):
# vi wl_linux.c
around line 43, remove the line
#include <asm/system.h>

search for the string
.ndo_set_multicast_list
and replace it with
.ndo_set_rx_mode

save the file, and try to compile

5) # cd ../../..
# make

If you are lucky things should work, and you'll have a file called "wl.ko" in the current directory. (I got these patches from the internet, not my own work.)

I then did

# mkdir -p /lib/modules/3.4.0-1.fc17.x86_64/extra/wl
# cp wl.ko /lib/modules/3.4.0-1.fc17.x86_64/extra/wl
# depmod -a
# modprobe wl

and I had to reconfigure the interface, inserting the network password again, but after that it's working.

Ramiro.

Thanks, it works for me

India - Chennai Travel Photos on Instagram - Bareilly Travel Photos -