5

If I restart my computer with the following in /etc/modprobe.d/blacklist.conf:

blacklist b43
blacklist ssb
blacklist wl

Then I can either modprobe wl (broadcom STA, works well) or modprobe b43 (highly unstable on my B4331 rev02).

But if any any point I load the b43 module, nothing I can (figure out how to) do will allow me to load wl without restarting my machine.

For example, if I:

modprobe b43 # --> working network access
rmmod b43 brcmsmac ssb bcma wl
modprobe wl
iwlist scan

This yields

eth1      No scan results

I'm trying to figure out what state is being changed, such that modproble b43 && rmmod b43 is having some detrimental net effect. Any thoughts on how I might be able to "recover" from loading b43 without rebooting?

Thanks!

(Cross-posted from https://unix.stackexchange.com/questions/180390/how-can-i-switch-between-wl-and-b43-wifi-modules-without-rebooting.)

Bosh
  • 360
  • 2
  • 14
  • 2
    If wl works well and b43 is highly unstable, that strongly suggests that b43 is incorrect for your device. Why do you therefore want to use it? – chili555 Jan 31 '15 at 19:38
  • 1
    Mostly I'm trying to understand my system :-) Both drivers do work with my hardware, and both offer different features. (For example, while b43 is unstable, it allows mac address spoofing.) – Bosh Feb 04 '15 at 04:57
  • Instead of rmmod, please try modprobe -r. Is the outcome the same? – chili555 Feb 04 '15 at 15:25
  • @chili555 Same outcome with `modprobe -r` as with `rmmod`. – Bosh Feb 12 '15 at 23:45
  • 1
    Does suspend mode make any changes? It might be the firmware that loads using b43 that causes problems with wl. Possibly removing b43 along with its helpers and then going to suspend mode might get the firmware removed allowing wl to work – Jeremy31 Feb 16 '15 at 12:39
  • I've tried `rmmod` + suspend + resume without success. – Bosh Feb 18 '15 at 22:31
  • Remember the installation of 'wl' adds a blacklist for b43 – Carl Fletcher Feb 22 '15 at 14:35

2 Answers2

0

Have you tried to make and run a script like this:

 #/bin/sh

   Case (wl) in
      networkname = (ip adrs of wl)
      gksu networkname
      nmcli -Cl networkname
      resolv (the ip adr of wl) >>
   endl
   Case (b43) in
      networkname = (ip adrs of b43)
      gksu networkname
      nmcli -Cl networkname
      resolv (the ip adrs of b43)
   endl

and it might work fine this way,

Alex
  • 183
  • 1
  • 11
Michael
  • 2,449
  • 5
  • 19
  • 24
0

If you have not done so already you should verify if you actually are unloading all the modules that need unloading when you have loaded the b43 module.

To verify that boot your system and then execute this:

lsmod > before_loading_b43.txt

Then load the b43 module like you would normally.

Then run this:

lsmod > after_loading_b43.txt

Then compare those files to see which modules are added after you load the b43 module.

You could use diff tool for comparison like:

diff before_loading_b43.txt after_loading_b43.txt

Or a graphical file comparison tool could be used.

Wieger
  • 148
  • 7