LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Networking > Linux - Wireless Networking
User Name
Password
Linux - Wireless Networking This forum is for the discussion of wireless networking in Linux.

Notices


Reply
  Search this Thread
Old 09-08-2007, 08:41 PM   #1
tnrooster
Member
 
Registered: Apr 2007
Location: bell buckle tn
Distribution: F13-F14
Posts: 88

Rep: Reputation: 15
bcm43,b43 cant be removed, ndiswrapper cant work


In the latest f7 kernel, b43 seems to built into something that cant be blacklisted or removed. Not bcm43xx or bcm43xx-mac80211 but b43.

Deleted every instance of it and it was still there. Ndiswrapper cant work with the alternative driver.

The built in drivers dont work and somehow made it impossible to load and operate any other driver.

Anyone got an idea?

DO NOT AND I MEAN DO NOT LINK A NDISWRAPPER OR FWCUTTER PAGE UNLESS YOU'RE POSTIVE IT COVERS THIS EXACT PROBLEM!
 
Old 09-09-2007, 02:01 AM   #2
scheidel21
Senior Member
 
Registered: Feb 2003
Location: CT
Distribution: Debian 6+, CentOS 5+
Posts: 1,323

Rep: Reputation: 100Reputation: 100
I haven't seen this particular problem anywhere, and i apologize if you have tried all the suggestions I am going to make, but see if any of this helps.

First try turning off or disconnecting the wifi card and then boot the machine next see if the b43 module loaded, it shouldn't if there is no power to the wifi card. Now try blacklisting the module then turn on the card and reboot if you have to see if it loads then. If b43 is not loaded try the ndiswrapper again.

Another possibility is that the b43 midule has been compiled not as a midule, but into the kernel itself, b43 is the newest from the originall bcm43xx and has been integrated into the main kernel tree. This will take some time but you may want to DL kernel source packages and run.

Code:
#make menuconfig
#make
#make install
when configuring the kernel make sure b43 is compiling as a seperate module. I think you can even check exisitng config from the config file in the /boot directory, you can open it with a text editor of your choice.

Also have you downloaded the firmware and placed them in /lib/firmware ?

PS if none of this helps somemore info might be usefull to me or others in helping output such as the exact card you are using from lspci and maybe output from lsmod mightbe usefull. Also what errors if any are you getting when attempting to rmmod b43 and/or modprobe ndiswrapper.

Hope we can help.
 
Old 09-09-2007, 03:13 PM   #3
tnrooster
Member
 
Registered: Apr 2007
Location: bell buckle tn
Distribution: F13-F14
Posts: 88

Original Poster
Rep: Reputation: 15
"rmmod b43 and/or modprobe ndiswrapper."


The rm'ing of b43 does nothing. Modprobing wrapper gives a error 217 -no such module.

When installed-ndiswrapper -l gives the device id then alternative driver b43 which cannot be blacklisted or removed in any way.

Trying the b43-fwcutter on the ver4 driver gives the same no directory when trying to bring up wlan0 in the network manager. Unblacklisting b43, which shouldnt matter as funtion is unchanged by being blacklisted, does nothing different.

Modprobed alias wlan0 as b43. Nothing.

iwconfig shows wlan0 as a device but not up and no assignment.

I read where some claim to have blacklisted b43 and used wrapper--but that doesnt work here.

Why does this have to be such a struggle? Who would have implemented such? Who makes the decision as to what gets seemingly thrown into the updates? I understand its a constant testing process but what is really being tested? People's ability to overcome "updates"?

I see the process of throwing crap into the fire and waiting on the answers on how to fix it to come pouring back out but dang.
 
Old 09-09-2007, 03:29 PM   #4
b0uncer
LQ Guru
 
Registered: Aug 2003
Distribution: CentOS, OS X
Posts: 5,131

Rep: Reputation: Disabled
EDIT: this stuff is mostly root-stuff, so either su - to root or use sudo to run the commands below..

Code:
lsmod
Check what wireless-related modules you have loaded. You should have 'ndiswrapper' if it was installed OK, you should not have 'bcm43xx' and alike, or if you do, you need to blacklist them (which means, that the module is not loaded during boot process). If the bcm43xx module (for example) is built right into the kernel, and not as a separate module, then you can't obviously blacklist it, because it's not loaded (as a module) separately but is there all the time. In that case you need to 1) obtain a kernel that doesn't have it built directly into the kernel, or 2) rebuild your kernel yourself and remove that kernel module, or compile it as a separate module.

Blacklisting a module, let's say bcm43xx, happens by adding a blacklist line into the module configuration's blacklist file. The filename may depend on your system; I'm showing an example on how it's done on Slackware. You can safely try this, but if it doesn't work, it just means your filename is wrong (and you should dig a bit to find the right one out).
Code:
echo blacklist bcm43xx >> /etc/modprobe.d/blacklist
That appends a new line to the blacklist file, that says "blacklist bcm43xx". Effect is that the listed module is not loaded during boot. This affects next reboot obviously, and the effect is the same as if you do right now
Code:
rmmod bcm43xx
as root. If rmmod doesn't work (for example there is no module bcm43xx installed), then blacklisting the module is not needed.

NDISwrapper installation must first be done correctly. Module 'ndiswrapper' needs to be loaded (set it to be loaded at boot). A reboot is usually required after installing NDISwrapper, because otherwise the card may not function properly. If there are several drivers, it may be that your ndiswrapper driver doesn't work; in this case the other drivers (modules) need to be removed first; this is what blacklisting is for (for kernel modules that are loaded during boot; for builtin kernel modules a kernel reconfiguration is needed). The native driver for Broadcom 43xx cards is called 'bcm43xx', I'm not aware of any 'b43' driver, but if that's some driver for the card, then you'll have to get rid of it so it won't interfere with your NDISwrapper driver.

For the first time I did this it was a bit difficult. But after some installs it has come more clear how the process works, and now it's easy; just have one driver and have it be ndiswrapper driver - and make sure ndiswrapper (and a right Windows driver) is installed without problems. There may or may not be a wireless device wlan0 or eth1 (doesn't matter at all which one, as far as you know what it is) before installing NDISwrapper driver, but if the native driver does not work, it's no good for you.

FWcutter works for bcm43xx cards, or so it's said. Never tried myself; I surely would have if I had met FWcutter before NDISwrapper, but this is just how it happened to go..the best way to get these cards working with NDISwrapper is to take it easy, slow and carefully.

1) Get right Windows drivers (a .inf and a .sys file)
2) Install the ndiswrapper and ndiswrapper-utils packages, if they are separate ones; for example Ubuntu comes with ndiswrapper, but ndiswrapper-utils is curiously enough missing and has to be installed separately (last time I checked, anyway). Also on the second newest Ubuntu version one had to make sure ndiswrapper-utils-1.8 was installed, not just ndiswrapper-utils; wrong version caused it not to work. Life is fun, isn't it?
3) rmmod any other kernel modules for your card, or reconfigure your kernel to get rid of them
4) Install the Windows driver with NDISwrapper, use ndiswrapper -l to make sure it's loaded and hardware is present, after this run ndiswrapper -m
5) Make sure ndiswrapper module is loaded when you boot, and that any other offending modules are blacklisted or removed from kernel. Reboot to make sure the module hassle goes all right. Try to enable your wireless card - do you get a sign (maybe a light somewhere?) that it's up? If yes, try to run
Code:
iwlist eth1 scan
as root, or if you're one of those who have aliased to wlan0, use it instead. Should give some results, or at least not an error...

EDIT: it's really not that difficult if you think it as a whole. A driver is a kernel module. The native driver, if it exists, doesn't work, right? Then we shouldn't use it, because it's of no use, but can cause trouble. On the other hand, the preferred driver is the Windows driver (not preferred really, but there's no choice!) - since it's not a Linux driver, we need something to "wrap it up" for Linux. So we use this handy piece of software called ndiswrapper to wrap the Windows driver into a package that is then loaded to the kernel (ndiswrapper module is loaded, and ndiswrapper deals with the Windows driver - wrapping, get it?). So: native driver out, ndiswrapper in. Easy as that.

Last edited by b0uncer; 09-09-2007 at 03:32 PM.
 
Old 09-09-2007, 04:08 PM   #5
tnrooster
Member
 
Registered: Apr 2007
Location: bell buckle tn
Distribution: F13-F14
Posts: 88

Original Poster
Rep: Reputation: 15
Quote:
EDIT: it's really not that difficult if you think it as a whole. A driver is a kernel module. The native driver, if it exists, doesn't work, right? Then we shouldn't use it, because it's of no use, but can cause trouble. On the other hand, the preferred dr

Did you read anything past the ndis in the title?

As already stated, NDISWRAPPER WILL NOT WORK as there is an unblacklistable alternate driver built in now called b43. You can not remove it.

Neither b43cutter nor bcm43xxcutter gives a firmware version from either version of the windows driver that satifise the default drivers needs. As to why I dont know, if I did I wouldn't be here.


Now back to the boot.conf

Quote:
CONFIG_BCM43XX=m
CONFIG_BCM43XX_DEBUG=y
CONFIG_BCM43XX_DMA=y
CONFIG_BCM43XX_PIO=y
CONFIG_BCM43XX_DMA_AND_PIO_MODE=y
# CONFIG_BCM43XX_DMA_MODE is not set
# CONFIG_BCM43XX_PIO_MODE is not set
CONFIG_B43_DEP_HACK=y
CONFIG_B43=m
CONFIG_B43_PCI=y
CONFIG_B43_PCMCIA=y
CONFIG_B43_DEBUG=y
CONFIG_B43_DMA=y
CONFIG_B43_PIO=y
CONFIG_B43_DMA_AND_PIO_MODE=y
# CONFIG_B43_DMA_MODE is not set
# CONFIG_B43_PIO_MODE is not set
Does this mean I need to turn off one or the other? And if so is that with a N instead of Y?
 
Old 09-09-2007, 09:54 PM   #6
scheidel21
Senior Member
 
Registered: Feb 2003
Location: CT
Distribution: Debian 6+, CentOS 5+
Posts: 1,323

Rep: Reputation: 100Reputation: 100
Ok you just showed us the boot.conf file and b43 and bcm43xx are compiled as modules, simply edit a build config file and choose to not compile either,then they will not exist at all in your new kernel as a module or anything else, and installing your new kernel and using that new kernel to boot from will eliminate the loading of any native broadcom driver. You will likely need to compile ndiswrapper from source and then add the windows driver file then modprobe it and finally depmod -a. Using the make commands in the previous post will do the following.

make menuconfig -- create an ncurses config environment for the new build config where you can select your config options (alternatively make xconfig will give you an x11 config selector environment)

make -- build the kernel using your config file with the options you selected from the previous menuconfig command

make install -- install the kernel into your boot directory,then you need to run depmod -a newkernel and then you may need to run mkinitrd -o initrd.img-newkernel newkernel to create a ram disk image for use in booting.

If building your kernel custom and removing the drivers from being compiled at all doesn't solve the problem of the b43 driver loading you have issues no one can help with. Additionally your distro probably has kernel-source or kernel-headers package or both fir the same version of the kernel you are currently running installing these packages will make the build much easier as it does all the appropriate symlinking etc to the linux directory in /usr/src/
 
Old 09-09-2007, 10:14 PM   #7
tnrooster
Member
 
Registered: Apr 2007
Location: bell buckle tn
Distribution: F13-F14
Posts: 88

Original Poster
Rep: Reputation: 15
I n'd out all the yes's on bcm43xx in the boot.conf . Bricked it on login. Ehh something even broke is better than nothing.

Thank you for your help. Reloaded fc6 before I left the office, 7's been a thorn for me. I'll deal with ndis on 6 tomorrow.
 
Old 09-11-2007, 11:27 PM   #8
JulianTosh
Member
 
Registered: Sep 2007
Location: Las Vegas, NV
Distribution: Fedora / CentOS
Posts: 674
Blog Entries: 3

Rep: Reputation: 90
Here's the fix for this... Basically we're going to put the command to remove the b43 module into an init.d script and call it from rc.local so it will run at boot every time. Works like a charm!

Create /etc/init.d/killb43
Quote:
modprobe -r b43
modprobe ndiswrapper
Make the file executable:
Quote:
chmod +x /etc/init.d/killb43
Add to /etc/rc.local
Quote:
/etc/init.d/killb43
 
Old 09-13-2007, 07:06 PM   #9
satnspwn
LQ Newbie
 
Registered: Sep 2007
Location: Toronto, Canada
Distribution: Debian Unstable AMD64
Posts: 2

Rep: Reputation: 0
I believe the problem is the b43 driver runs on the silcon sonics backplane (ssb.ko) module, to access your card with with the older bmc43xx driver or ndiswrapper you have to rmmod both ssb and b43.
 
Old 09-14-2007, 12:29 AM   #10
tnrooster
Member
 
Registered: Apr 2007
Location: bell buckle tn
Distribution: F13-F14
Posts: 88

Original Poster
Rep: Reputation: 15
At one point I saw "alternate driver:ssb" on ndiswrapper listing.

Ehh Ive got 6 rocking out with wrapper again so if I run into it again I'll look into it. Plus it lets me run nvidia driver. Never got it to do anything on 7.
 
Old 09-15-2007, 08:45 PM   #11
Disemboweler
LQ Newbie
 
Registered: Sep 2007
Posts: 2

Rep: Reputation: 0
I had the same problem and adding

blacklist b43
blacklist ssb

to /etc/modprobe.d/blacklist fixed it for me.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Newest (2.6.23.4-65) release apparently breaks ndiswrapper, b43 seems to break NM PTrenholme Fedora 8 09-16-2007 08:45 AM
ndiswrapper just won't work DNC Linux - Wireless Networking 3 06-04-2006 03:32 PM
trying to get ndiswrapper to work microsoft/linux Linux - Laptop and Netbook 3 09-24-2005 11:26 AM
getting ndiswrapper to work Ma77h3w Mandriva 2 07-28-2005 01:33 PM
lm_sensors it87 doesnt work not isa support was removed from kernel 2.6.10 qwijibow Linux - General 4 05-15-2005 04:11 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Networking > Linux - Wireless Networking

All times are GMT -5. The time now is 08:14 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration