BCM4312 and Puppy431 on Lenovo s10-2 [SOLVED]

Message
Author
User avatar
jrb
Posts: 1536
Joined: Tue 11 Dec 2007, 19:56
Location: Smithers, BC, Canada

BCM4312 and Puppy431 on Lenovo s10-2 [SOLVED]

#1 Post by jrb »

I'm just setting up a pair of Lenovo s10-2's for my daughters for Christmas. (Ho, Ho, Ho) Sadly no luck with broadcom-5.10.91.9.3-k2.6.30.5.pet, :? although I plan on taking another look.

I have managed to make ndiswrapper work consistently. :D Here's what I did.

I placed the windows drivers in /mnt/home/bcom4312: bcm43xx64.cat, bcm43xx.cat, bcmwl5.inf, bcmwl5.sys, bcml5.sys

I went to the network wizard (connect) and clicked Internet by network or wireless LAN->load module->Ndiswrapper->Use Ndiswrapper->none

Then navigate to /mnt/home/bcom4312/bcmwl5.inf and click OK

A window opens saying "bcmwl5 : driver installed ~ (alternate driver: ssb)

Open rxvt (console) and type

Code: Select all

# rmmod ssb"
Error: Module ssb is in use by b43
# rmmod b43
# rmmod ssb
Click the OK button in the Puppy Network Wizard: Ndiswrapper window - a window opens saying ndiswrapper has loaded successfully - Click OK

A window opens showing wlan0 - click save.

At this point you can configure wlan0 if you want, or if you have an open network you can test it with Xautoconnect.

To avoid having to go through all this again edit /root/.xinitrc. (Its a hidden file so click the eyeball in ROX) Add these 3 extra lines just before the end:

Code: Select all

rmmod b43
rmmod ssb
modeprobe ndiswrapper

#exec $CURRENTWM
#v2.11 GuestToo suggested this improvement...
which $CURRENTWM && exec $CURRENTWM
[ -x $CURRENTWM ] && exec $CURRENTWM
exec jwm

###END###
This will get wlan0 listed in the network wizard at boot. You can use that or Xautoconnect to connect to your wireless network.

Merry Christmas, J
Last edited by jrb on Fri 18 Dec 2009, 04:03, edited 1 time in total.

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#2 Post by mikeb »

I'm just setting up a pair of Lenovo s10-2's for my daughters for Christmas. (Ho, Ho, Ho) Sadly no luck with broadcom-5.10.91.9.3-k2.6.30.5.pet, Confused although I plan on taking another look.
I recall someone else having a problem with this and it appeared that ssb and b43 were not being blacklisted. I use the 2.6.25 kernel version and it works well

regards

mike

User avatar
jrb
Posts: 1536
Joined: Tue 11 Dec 2007, 19:56
Location: Smithers, BC, Canada

#3 Post by jrb »

Wouldn't you know, just when I start patting myself on the back I find someone else has a better way. (Ha, Ha, Ha) :lol:

vanchutr has a technique using wl.ko as listed here which works a treat.
1. lsmod -> to find out if "ssb, b43 or b43legacy are loaded?"
2. If any of ssb, b43, b43legacy are loaded then you must remove them all. Use these command: #rmmod b43 - rmmod ssb ...
3. Copy wl.ko in /lib/modules/[your-kernel]/kernel/drivers/net/wireless
4. Run: #depmod -a
5. rmmod wl
(* -> recommended. I don't know why?)
6. modprobe wl
(* If system don't give anny error -> that's good. If you get anny error that means your wl.ko isn't compatible with your system kernel - Download other version of wl.ko)
7. Run network-wizard - You will see eth1 (or something like that - but not eth0)
8. Continue to choose eth1, then AUTODHCP -> OK
9. Now from menu choose Pwireless. Setup WPA or ...
10. That's all
So here's my revised strategy:
Extract wl.ko from broadcom-5.10.91.9.3-k2.6.30.5.pet. You can change the .pet to .tar.gz and click on it to extract with Xarchive. Its in /lib/modules/2.6.30.5/kernel/drivers/net

Copy it to lib/modules/2.6.30.5/kernel/drivers/net in your puppy system files.
Add these 5 lines just before the end of /root/.xinitrc:

Code: Select all

rmmod b43
rmmod ssb
depmod -a
rmmod wl
modprobe wl

#exec $CURRENTWM
#v2.11 GuestToo suggested this improvement...
which $CURRENTWM && exec $CURRENTWM
[ -x $CURRENTWM ] && exec $CURRENTWM
exec jwm

###END###
This brings up eth1 in the network wizard which you can configure for your wireless network.

Have an even Merrier Christmas, J

mikeb,
b43 blacklists OK but ssb is in initrd.gz and apparently can't be headed off in time.

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#4 Post by mikeb »

b43 blacklists OK but ssb is in initrd.gz and apparently can't be headed off in time.
ah ha....I wondered why there was a problem cause in the older kernel it just works as is...maybe give some feed back to tempestous...perhaps he could alter the pet to add lines to /etc/rc.d/rc.local to remove the modules...

and you have a good Christmas too...We just got a pile of snow here :)

mike
ps depmod only needs running as a one off...it locates new modules for the kernel.

User avatar
jrb
Posts: 1536
Joined: Tue 11 Dec 2007, 19:56
Location: Smithers, BC, Canada

#5 Post by jrb »

mikeb wrote:perhaps he could alter the pet to add lines to /etc/rc.d/rc.local to remove the modules...
Initially I had trouble getting ndiswrapper to run from /etc/rc.d/rc.local so I went to /root/.xinitrc.

I went back to rc.local and tried loading the wl.ko module. It works no problem. So you should add these 5 lines to /etc/rc.d/rc.local:

Code: Select all

rmmod b43 
rmmod ssb 
depmod-FULL 
rmmod wl 
modprobe wl
I left depmod -a in there because it doesn't hurt, eh?

I am attaching a .pet which will add the wl.ko module and add those lines to rc.local. Also has a puninstall that will remove them if you take out the .pet.
Last edited by jrb on Sun 20 Dec 2009, 17:13, edited 2 times in total.

tempestuous
Posts: 5464
Joined: Fri 10 Jun 2005, 05:12
Location: Australia

#6 Post by tempestuous »

It's good that a workaround like this can achieve a happy result, but the process is really quite ugly.
And since the script mentioned here is run late in the boot sequence, I suspect it disables the ability of Puppy's Network Wizard to automatically configure the wifi connection at bootup ...
although this issue is not mentioned in this thread??
jrb wrote:Extract wl.ko from broadcom-5.10.91.9.3-k2.6.30.5.pet. You can change the .pet to .tar.gz and click on it to extract with Xarchive. Its in /lib/modules/2.6.30.5/kernel/drivers/net
That's quite pointless.
My broadcom-5.10.91.9.3-k2.6.30.5.pet already installs the wl kernel module to that location, anyway. You're making a simple process (dotpet installation) quite complex.
jrb wrote:I left depmod -a in there because it doesn't hurt, eh?
Apart from taking extra startup time, yes, it can hurt because "depmod" is a symlink to busybox, which has been reported to fail under the 2.6.30.5 kernel. The "depmod-FULL" command works better, and this command is (now) run when the dotpet is originally installed.

I can't guarantee it will work, but a much better solution would be to install the "modules-preference" fix contributed by forum member rerwin here -
http://www.murga-linux.com/puppy/viewto ... 659#371659
This should enable Puppy 4.3.x to load the preferred driver, which is specified within the new driver dotpet package.

And just to clarify -
the driver under discussion in this thread is the proprietary Broadcom "wl" driver, available here
http://www.murga-linux.com/puppy/viewto ... 454#346454

User avatar
jrb
Posts: 1536
Joined: Tue 11 Dec 2007, 19:56
Location: Smithers, BC, Canada

#7 Post by jrb »

Hi tempestuous,
Thanks for your reply. Pardon my ignorance, I was simply looking for a workaround for a problem that seems to affect a number of puppy users.

I utilized vanchutr's code because that's all I've been able to make work so far.
The "depmod-FULL" command works better,
I shall try that.
a much better solution would be to install the "modules-preference" fix
Didn't your broadcom-5.10.91.9.3-k2.6.30.5.pet include the "modules preference" fix? I tried it with no success.

I shall be glad to withdraw my .pet if you can supply one that works better.

Looking forward to your reply, J

Edit: If it is not possilbe to get the "modules preference" fix working, do you think I should rebuild pup-431.sfs without b43.ko and initrd.gz without ssb.ko rather than rmmod them in /etc/rc.d/rc.local ?

tempestuous
Posts: 5464
Joined: Fri 10 Jun 2005, 05:12
Location: Australia

#8 Post by tempestuous »

jrb wrote:Didn't your broadcom-5.10.91.9.3-k2.6.30.5.pet include the "modules preference" fix?
No, my dotpet includes the correct "PREFLIST" configuration (which can be seen in BootManager)
but Puppy's module loading mechanism (pup_event/udev) fails to implement this preference configuration in the manner it was supposed to.
rerwin's pup_event_backend_modprobe_fix_to_p43x-1.pet has apparently fixed this underlying mechanism.

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#9 Post by mikeb »

No notifications........
Thanks for getting all that sorted tempestuous ..another new member is in need of that module too and that pet you made worked a treat on puppy 4.12..totally hands off and I would go with him on this one jrb...he is the wireless module king :) .

Thanks for the info on depmod and busybox....I didn't realise. I had noticed other redundant busybox links...indeed why have both?

regards

mike

User avatar
jrb
Posts: 1536
Joined: Tue 11 Dec 2007, 19:56
Location: Smithers, BC, Canada

#10 Post by jrb »

Sorry tempestuous and mikeb, :(
I uninstalled my .pet and tried rerwin's pup_event_backend_modprobe_fix_to_p43x-1.pet with broadcom-5.10.91.9.3-k2.6.30.5.pet. No wireless found. I opened a console and went through the rmmod, etc procedure and there was eth1.

I have revised my .pet to include depmod-FULL and it works very well.

Barring any further suggestions I think I will rebuild pup-431.sfs and initrd.gz and see if that works better.

Thanks, J

User avatar
jrb
Posts: 1536
Joined: Tue 11 Dec 2007, 19:56
Location: Smithers, BC, Canada

#11 Post by jrb »

I just removed b43.ko and b43legacy.ko from pup-431.sfs and added wl.ko. Likewise I removed ssb.ko.gz from initrd.gz.

I booted pfix=ram and eth1 was there in the network wizard waiting for me.

If anyone would like a new pup-431wl.iso let me know. I suspect I may make a few more changes in it before I'm done.

Cheers, J

User avatar
rjbrewer
Posts: 4405
Joined: Tue 22 Jan 2008, 21:41
Location: merriam, kansas

#12 Post by rjbrewer »

jrb wrote:
If anyone would like a new pup-431wl.iso let me know. I suspect I may make a few more changes in it before I'm done.

Cheers, J
My neighbor has a s10 e Ideapad with Leopard installed.
He likes Puppy and always saves a little room on his drives
for it. Having one with wireless would be great.

Inspiron 700m, Pent.M 1.6Ghz, 1Gb ram.
Msi Wind U100, N270 1.6>2.0Ghz, 1.5Gb ram.
Eeepc 8g 701, 900Mhz, 1Gb ram.
Full installs

Roy
Posts: 451
Joined: Wed 31 Dec 2008, 18:31

BCM4312 and Puppy431

#13 Post by Roy »

jrb,

Sign me up for a copy.

You might want to fix the FSCK deficiency noted in the 4.31 Bugs thread, too.... involves unpacking, editing, and re-packing intrd.gz (working from personal memory, here).

If I get a chance, I will re-visit this post in the near future to post a link.

-Roy

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#14 Post by mikeb »

Yes wl gets autoloaded if b43/ssb are not there or won't load...nimblex works that way. I think b43 and such are included as they are GPL sort of thing and wl is proprietry

mike

User avatar
jrb
Posts: 1536
Joined: Tue 11 Dec 2007, 19:56
Location: Smithers, BC, Canada

#15 Post by jrb »

Roy,
Found this in "Bugs". Fixed it and repacked. Still boots with eth1 so I'm happy.
PaulBx1 wrote:"puppy pfix=fsck" still does nothing.

Pizzasgood researched this problem, apparently a line commented out in init.gz that shouldn't be. See this thread:
http://www.murga-linux.com/puppy/viewtopic.php?t=41918

The commented line is: Code:
#fsck_func loop1 ext2 $PUPSAVEFILE #v3.01. no, removed, takes ages, and won't mount afterward.

Uncomment it, and it works fine, according to Pizzasgood.
Any other suggestions?

tempestuous
Posts: 5464
Joined: Fri 10 Jun 2005, 05:12
Location: Australia

#16 Post by tempestuous »

Yeah, even with rerwin's modules-preference fix, I think that a preference setting for the wl module will fail to override ssb in kernel 2.6.30.5 Puppies because the ssb module is contained in the initrd.

If you're going to remaster Puppy with ssb removed from the initrd, you might as well go all the way and remove ssb/b43/b43legacy from the /lib/modules/2.6.30.5 directory as well.

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#17 Post by mikeb »

That poses the question ... is the ssb module only for broadcom then ?

If so then an either one or the other situation would make sense

regards

mike

tempestuous
Posts: 5464
Joined: Fri 10 Jun 2005, 05:12
Location: Australia

#18 Post by tempestuous »

I recall that Barry added the ssb module to the initrd to support a particular PCMCIA-USB adapter during initial boot, in order to boot to this USB interface. The only place I can find reference to it is here -
http://bkhome.org/blog/?viewDetailed=00160

tempestuous
Posts: 5464
Joined: Fri 10 Jun 2005, 05:12
Location: Australia

#19 Post by tempestuous »

I just had a thought - what about blacklisting the ssb module as a boot parameter?
That would avoid having to modify the initrd.

Try this - to the "kernel" line of your /boot/grub/menu.lst file, add a space, then this -

Code: Select all

ssb.blacklist=yes
Or if you're booting direct from CD, type this at the boot prompt -

Code: Select all

puppy ssb.blacklist=yes
then enter.

Make sure that rerwin's modules-preference fix is installed, and hopefully Puppy will now automatically load the wl module instead of the ssb module.

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#20 Post by mikeb »

I have another PCMCIA card that I decided to test. Actually I had forgotten about it as I bought it a couple of years ago and it never worked in Puppy. It is a PCMCIA-USB adapter -- a 32-bit PCMCIA card with two USB sockets. Well, in the latest Puppy it just worked. Detected at bootup, the 'ssb' module (Sonics Silicon Backplane driver)) got loaded and it just worked. Behaves just like a couple of extra USB sockets.
from barry....so its more to do with the interface, so these broadcom cards look like PCMCIA or am I losing the plot... :D ...hmm...i read its ssb that decides what wireless module is loaded so its need is more widepread either way. It also interferes when using ndiswrapper....a mysterious beastie.
I envisage a problem with a usb card being present whilst using ndiswrapper or wl.ko or perhaps it behaves differently if not associated with a wireless module.
Ignorance is never bliss....and I am now crosseyed.
ssb.blacklist=yes
A real kernel parameter..good thinking :) ...I will mentally retain that one.

regards

mike

Post Reply