Broadcom BCM4306 won't connect

Post Reply
Message
Author
hughtmccullough
Posts: 11
Joined: Sat 26 Jan 2013, 23:14

Broadcom BCM4306 won't connect

#1 Post by hughtmccullough »

I have installed Puppy Wary 5.5 on a CD and use it live with a Compaq Presario 3070US laptop. The wireless card is BCM4306 v2. When I use the connection wizard, it finds the card on wlan0 and seems to pick the right driver (b43legacy) and apparently work OK. After the first stage, it says that Puppy was able to find a live network. I manually enter IP addresses and after this stage, it says that the network configuration was successful and asks if I want to save it. However, when I try to connect to the internet or access my NAS, neither works. When I plug in an ethernet cable, everything works fine on eth0.

The wireless connection works with Windows. When I tried using Mageia on a live DVD, it suggested using ndiswrapper which I did and it worked, giving me a connection. When I tried to use ndiswrapper in Puppy, it didn't work. I placed both the .inf and the .sys file in the home directory and pointed to them. It seemed to work but warned me that it might not connect and sure enough it didn't.

I'm new to Linux and not sure what to do next. Mageia works but I would really like to get Puppy working because I'm using it on my netbook. What should I do next or what more information can I provide to get help?

watchdog
Posts: 2021
Joined: Fri 28 Sep 2012, 18:04
Location: Italy

#2 Post by watchdog »

Try wl driver Broadcom Sta linux. The official thread is:

http://www.murga-linux.com/puppy/viewto ... 89&t=76495

I don't know if wary 5.5 come with the linux Sta driver for Broadcom wireless. I prefer to compile it in a patched version. I attach my wl.ko module compiled in wary 5.5.

https://docs.google.com/file/d/0B9iMb4U ... sp=sharing

Rename wl.ko.w55 as wl.ko and put it in /root/my-documents. Then with geany create a file with this content:

Code: Select all

#!/bin/sh
rmmod b43
rmmod b43legacy
rmmod ssb
rmmod bcma
rmmod wl
modprobe lib80211
modprobe cfg80211
insmod /root/my-documents/wl.ko
and save it as shellbroadcom. Put shellbroadcom in /root/Startup, give it execute permissions and reboot. Try if it works.

User avatar
peebee
Posts: 4370
Joined: Sun 21 Sep 2008, 12:31
Location: Worcestershire, UK
Contact:

#3 Post by peebee »

watchdog wrote:Try wl driver Broadcom Sta linux.
I don't know if wary 5.5 come with the linux Sta driver for Broadcom wireless.
Hi hughtmccullough

Wary 5.5 does not contain the wl.ko driver OOTB

http://linuxwireless.org/en/users/Drive ... ed_devices shows that BCM4306 isn't supported by wl.ko but the b43legacy driver should work with it.

Are there any messages in dmesg to show if the correct firmware is being loaded (or not)? Missing firmware is often the problem with b43.

Which Network Manager have you tried? Wary only comes with sns or netwiz - but Frisbee is often better.

Would you be able to try a distro like Slacko5.5 or Precise5.6.1 where both the logic to choose the correct driver and wl.ko and Frisbee are built-in??

Finally - trying to setup manually as described in
http://www.murga-linux.com/puppy/viewtopic.php?t=22469
will give you clues about where things are going wrong.

Cheers
peebee
ImageLxPup = Puppy + LXDE
Main version used daily: LxPupSc; Assembler of UPups, ScPup & ScPup64, LxPup, LxPupSc & LxPupSc64

watchdog
Posts: 2021
Joined: Fri 28 Sep 2012, 18:04
Location: Italy

#4 Post by watchdog »

peebee wrote:
watchdog wrote:Try wl driver Broadcom Sta linux.
I don't know if wary 5.5 come with the linux Sta driver for Broadcom wireless.
Hi hughtmccullough

Wary 5.5 does not contain the wl.ko driver OOTB

http://linuxwireless.org/en/users/Drive ... ed_devices shows that BCM4306 isn't supported by wl.ko but the b43legacy driver should work with it.
Thanks for your explanation peebee. You are certainly more expert than mine. I have to say only that I got working the wl driver even if the Broadcom card was not listed among the supported ones.

User avatar
peebee
Posts: 4370
Joined: Sun 21 Sep 2008, 12:31
Location: Worcestershire, UK
Contact:

#5 Post by peebee »

watchdog wrote:I have to say only that I got working the wl driver even if the Broadcom card was not listed among the supported ones.
Certainly no harm in trying - but maybe better to try and find out why the recommended driver is not working and fix that problem......especially if using wary which does not include wl.ko support
ImageLxPup = Puppy + LXDE
Main version used daily: LxPupSc; Assembler of UPups, ScPup & ScPup64, LxPup, LxPupSc & LxPupSc64

hughtmccullough
Posts: 11
Joined: Sat 26 Jan 2013, 23:14

#6 Post by hughtmccullough »

Thank you both for your suggestions. I have been pursuing the b43-legacy route first as suggested by peebee.

I had been using netwiz but I have now tried both netwiz and Frisbee by trying Slacko instead of Wary (both 5.5). Frisbee gets me a little further - I get a flaky connection that alternates between wlan0 acquired and wlan0 down. I have got as far as finding one of my SMB shares on the network but not the other. wlan0 keeps going down while the network is being searched.

I tried to see what dmesg would tell me. The relevant bit seems to be:

[ 49.148494] b43legacy-phy0: Broadcom 4306 WLAN found (core revision 4)
[ 49.186795] Broadcom 43xx-legacy driver loaded [ Features: PLID ]
[ 49.359431] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 496.238452] mtrr: no MTRR for a0000000,3ff0000 found
[ 568.431943] b43legacy-phy0: Loading firmware version 0x127, patch level 14 (2005-04-18 02:36:27)
[ 568.500485] Registered led device: b43legacy-phy0::radio
[ 574.456669] b43legacy-phy0: Loading firmware version 0x127, patch level 14 (2005-04-18 02:36:27)
[ 574.526948] Registered led device: b43legacy-phy0::radio
[ 640.726679] b43legacy-phy0: Loading firmware version 0x127, patch level 14 (2005-04-18 02:36:27)
[ 640.797010] Registered led device: b43legacy-phy0::radio
[ 669.203337] b43legacy-phy0: Loading firmware version 0x127, patch level 14 (2005-04-18 02:36:27)
[ 669.273762] Registered led device: b43legacy-phy0::radio
[ 669.380036] wlan0: authenticate with 00:11:50:81:71:28
[ 669.413353] wlan0: send auth to 00:11:50:81:71:28 (try 1/3)
[ 669.415857] wlan0: authenticated
[ 669.416634] wlan0: associate with 00:11:50:81:71:28 (try 1/3)
[ 669.422777] wlan0: RX AssocResp from 00:11:50:81:71:28 (capab=0x471 status=0 aid=44)
[ 669.423023] wlan0: associated
[ 755.617944] b43legacy-phy0 ERROR: PHY transmission error
[ 757.098307] b43legacy-phy0 ERROR: PHY transmission error
[ 758.175641] b43legacy-phy0 ERROR: PHY transmission error
[ 758.798755] b43legacy-phy0 ERROR: PHY transmission error
[ 760.081735] b43legacy-phy0 ERROR: PHY transmission error
[ 766.129132] b43legacy-phy0 ERROR: PHY transmission error
[ 767.658527] b43legacy-phy0 ERROR: PHY transmission error
[ 769.212940] b43legacy-phy0 ERROR: PHY transmission error
[ 773.538708] b43legacy-phy0 ERROR: PHY transmission error
[ 775.066524] b43legacy-phy0 ERROR: PHY transmission error
[ 779.802692] b43legacy-phy0 ERROR: PHY transmission error
[ 780.543460] b43legacy-phy0 ERROR: PHY transmission error
[ 786.718729] b43legacy-phy0 ERROR: PHY transmission error
[ 787.473562] b43legacy-phy0 ERROR: PHY transmission error
[ 789.780904] b43legacy-phy0 ERROR: PHY transmission error
[ 792.889407] b43legacy-phy0 ERROR: PHY transmission error
[ 797.246360] b43legacy-phy0 ERROR: PHY transmission error
[ 798.539196] b43legacy-phy0 ERROR: PHY transmission error
[ 799.915742] b43legacy-phy0 ERROR: PHY transmission error
[ 800.538206] b43legacy-phy0 ERROR: PHY transmission error
[ 820.579985] ieee80211 phy0: wlan0: No probe response from AP 00:11:50:81:71:28 after 500ms, disconnecting.
[ 820.580795] cfg80211: Calling CRDA to update world regulatory domain

Presumably there is a problem with PHY0 but I don't know what that means. I looked at dmesg again after I had been trying to connect to the network for a while. It was alternating between the authenticate and associate process and the PHY0 error.

So, do you know what this all means? Should I try wl or is there something more I can do with b43-legacy?

User avatar
peebee
Posts: 4370
Joined: Sun 21 Sep 2008, 12:31
Location: Worcestershire, UK
Contact:

#7 Post by peebee »

Googling your error: b43legacy-phy0 ERROR: PHY transmission error

brings up:
http://ubuntuforums.org/showthread.php?t=1173791

which suggests trying the firmware from:
http://www.omattos.com/node/6

and describes how to install it.

May be worth a try..................
ImageLxPup = Puppy + LXDE
Main version used daily: LxPupSc; Assembler of UPups, ScPup & ScPup64, LxPup, LxPupSc & LxPupSc64

hughtmccullough
Posts: 11
Joined: Sat 26 Jan 2013, 23:14

#8 Post by hughtmccullough »

When I received your last message I had been pursuing the option of using b43-fwcutter to extract the driver. So, when you gave me the website that had the drive already extracted I thought I would take a short cut and give it a go.

Unfortunately, when I went through the set up procedure, removing the b43legacy module and then reloading it with the new drivers, the error message just changed from phy0 to phy1. It connected better but the connection rate was very low and intermittent.

As the web site admitted that the drivers weren't the most up-to-date, I went ahead and worked out how to use b43-fwcutter (with Mageia because I couldn't work out how to do it in Puppy). This didn't advance me much because the drivers I extracted were just the same. I expect it was the B43 drivers that were old and not the B43legacy ones.

Some further research indicated that quite a few people had problems like mine from about kernel 2.6.24 onwards. One was able to change DMA / PIO settings to get things to work correctly but I didn't fully understand what he did.

So, I went back to trying ndiswrapper and found that if I did a fresh boot, removed the b43legacy and ssb modules and used netwiz to load ndiswrapper with my Windows driver, everything seemed to work fine. I had good access to both the internet and my network and was able to stream audio.

It seems a bit of a cheat to use a Windows driver but it works! Unfortunately I have to set it up again every time I boot because, although I clicked on the button to save the settings for the next boot, Puppy just boots up with B43legacy again.

I have heard of blacklisting modules and will investigate this next to see if it stops B43legacy loading at boot time.

hughtmccullough
Posts: 11
Joined: Sat 26 Jan 2013, 23:14

#9 Post by hughtmccullough »

I'm still not out of the woods with this.

Although, I get a good WiFi connection with ndiswrapper I can't get it to "stick" so that it sets itself up automatically at boot time. When I put B43legacy on the blacklist in Wary 5.5 it reasserts itself at boot up. When I rmmod it, I can't just modprobe ndiswrapper as it seems to delete all the wireless settings and I have to go through the whole network set up again. In Slacko 5.5, the blacklist seems to stop the B43legacy driver starting at boot time but I seem to have to start it and then stop it again before I can get ndiswrapper to work.

There are posts from about five years ago discussing this problem but the fixes were quite complicated and were supposed to have been included in later releases.

Is there a way to reliably get ndiswrapper to automatically install itself and set up the wireless network during the boot sequence? It just ignores my request to save the settings in the wizard.

hughtmccullough
Posts: 11
Joined: Sat 26 Jan 2013, 23:14

#10 Post by hughtmccullough »

I could really do with some help with this. After searching around I found that some people have fudged this by putting a script in rc.local. I then used some trial-and-error to come up with something that worked based on the instructions about using the command line. In Wary 5.5, the following worked:

#this file called from rc.sysinit
#you can edit this file
#When firewall is installed, will append lines to this file...
sleep 4
rmmod b43legacy
rmmod ssb
modprobe ndiswrapper
iwconfig wlan0 essid xxx
iwconfig wlan0 key open xxx
iwconfig wlan0 channel xxx
ifconfig wlan0 xxx broadcast xxx netmask xxx
route add default gw xxx wlan0

However, this involves stopping ssb which can be required by other modules, e.g. my ethernet connection. In other distros people have been able to change the order in which modules are loaded but I don't know how to do this in Puppy. Apparently if ndiswrapper is loaded before ssb it "grabs" the wireless card and keeps ssb out of it.

So, is there a way of really blacklisting b43legacy or finding out what reasserts it?

Is there a way of getting ndiswrapper to load before ssb (adding it to the module preferences list as ssb:ndiswrapper doesn't seem to work)?

I am totally new to this, just guessing a lot of it and ending up in a mess.

Help!

User avatar
OscarTalks
Posts: 2196
Joined: Mon 06 Feb 2012, 00:58
Location: London, England

#11 Post by OscarTalks »

Not easy to advise without having the same hardware or something similar to hand and it sounds like you've looked in most of the places I would have done, but I do feel your pain.

The only thing I can think to ask is how exactly are you blacklisting the b43legacy module? Are you saying that the line "blacklist b43legacy" appears in /ect/modprobe.d/blacklist.conf (or have you added it manually?) but then the line is gone again after a reboot?

I played around with ndiswrapper for the first time just the other day and it all went OK for me. The network wizard setup did instruct me to disable all other interfaces and the only other interface was my eth0 so I disabled and blacklisted that, but I am not sure if you have to disable ALL interfaces including ethernet or if it is just any other wireless interfaces that have to be disabled.
Oscar in England
Image

hughtmccullough
Posts: 11
Joined: Sat 26 Jan 2013, 23:14

#12 Post by hughtmccullough »

OscarTalks, thanks for the moral support!

To be fair I didn't elaborate on what I had done about the blacklisting. I actually used the Boot Manager. However, I checked and it did insert the lines for b43legacy and ssb in /etc/modprobe.d/blacklist.conf as you have suggested. When I reboot, the lines aren't deleted. They stay there but the modules still load. So, some process during the boot sequence must be ignoring the blacklisting and loading the modules. Perhaps there has been a hack at some stage to solve another problem but it has caused this one. At any rate, I have had to write my little rc.local file to reverse the damage and, although it works in terms of getting the wireless going at boot up, it is a bit messy in other ways.

I may have to live with this but, if there is no better solution, it just leaves me feeling that Puppy Linux is a bit "incomplete".

Post Reply