LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
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 05-13-2006, 02:38 PM   #1
Hangdog42
LQ Veteran
 
Registered: Feb 2003
Location: Maryland
Distribution: Slackware
Posts: 7,803
Blog Entries: 1

Rep: Reputation: 422Reputation: 422Reputation: 422Reputation: 422Reputation: 422
Native Broadcom wireless driver and Devicescape stack HowTo


Currently Linux wireless development has been focusing on two completely different wireless stacks, the SoftMAC stack and the Devicescape (dscape) stack. The bcm43xx driver has been traditionally using SoftMAC, and that is what will be included in the 2.6.17 kernel. However, there has been a fork of the project using the dscape stack. I've written this howto largely because I've found the behavior of the SoftMAC stack highly annoying (on my rig you only have a short time window to obtain an IP address or it turns off the radio) so I dove into building the kernel with the dscape stack. This has worked for me, but as always, YMMV.

Oh, and don't forget to have a functioning backup kernel available and that you know how to boot to it. If you're like me, you're gonna screw this up a few times before you get it right and you don't want to be left kernelless. You have been warned.

Dependencies:

The git tool
wpa_supplicant version 0.4.9 or later
fwcutter and your broadcom Windows driver

fwcutter

The instructions in the fwcutter tarball are actually pretty good. Basically you just need to compile it and then run it against your Windows driver to extract the firmware files. Finally, running make installfw will copy those files to /lib/firmware


Use git to download the latest kernel tree

Code:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6
This will create a directory call ./linux-2.6 and will download the whole kernel, so it may take a bit.

Patch the kernel source

Drop into the linux-2.6 directory. Git needs two environment variables set in order to apply the patch, so do that first:

Code:
export GIT_AUTHOR_NAME=yourname
export GIT_COMMITTER_NAME=yourname
Note that the name you give is irrelevant, git just needs them.

Now patch with John Linville's git tree:
Code:
git pull git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-dev.git
If you get no errors, move on to kernel compiling

Compiling the kernel


Configure your kernel as you normally would, but to activate the Dscape stack and the bcm43xx driver, you need a few things:

In NETWORKING select Generic IEEE802.11 Networking Stack (dscape).

In Device Drivers> Network device support> Wireless LAN (non-ham radio) select the bcm43xx driver. Note that this will not appear until you've selected the dscape stack in Networking.

Personally, I compile both the networking stack and the driver as modules.

Finish configuring the rest of your kernel, compile and install as you normally do.

wpa_supplicant


If you have 0.4.9 or later, you don't need to patch it. As far as I can tell, the only required driver in wpa_supplicant is the wext driver, so you need this in your .config:

DEVICE_DRIVER_WEXT=y

You can have other drivers in wpa_supplicant, but I think you must have wext for dscape to work. Compile and install, and then configure /etc/wpa_supplicant.conf to support your network.

Now reboot and keep your fingers crossed........

If you can boot into the new kernel, check to see if wlan0 is in ifconfig. If it isn't bring it up with ifconfig wlan0 up. Then, start wpa_supplicant:

Code:
wpa_supplicant -Bw -Dwext -c/etc/wpa_supplicant.conf -iwlan0
You should be able to see wlan0 associating with your network, and you should be able to request an IP address with a DHCP client. Slackware uses dhcpcd, but not all distros do.

Good Luck!

Last edited by Hangdog42; 05-13-2006 at 02:41 PM.
 
Old 05-13-2006, 04:56 PM   #2
cathectic
Member
 
Registered: Sep 2004
Location: UK, Europe
Distribution: Slackware64
Posts: 761

Rep: Reputation: 35
Can't you just pull straight from the wireless-dev tree, without going through pulling Linus' tree first (doing so worked fine for me)?

It's probably worth noting for BCM4318 owners that support for that chip is considered 'broken' by the bcm43xx developers - therefore, if you can get the chip working, congratulations. Otherwise, the official line appears to be don't expect a fix until at least 2.6.18 - swapping between ieee80211+Softmac and Devicescape won't necessarily persuade this particular chip to work (I've tried).
 
Old 05-14-2006, 07:18 AM   #3
Hangdog42
LQ Veteran
 
Registered: Feb 2003
Location: Maryland
Distribution: Slackware
Posts: 7,803

Original Poster
Blog Entries: 1

Rep: Reputation: 422Reputation: 422Reputation: 422Reputation: 422Reputation: 422
Quote:
Originally Posted by cathectic
Can't you just pull straight from the wireless-dev tree, without going through pulling Linus' tree first (doing so worked fine for me)?
I never got that to work, but that is probably more a reflection of my ignorance about using git than anything else. If it worked for you, please post how you did it. I know I would like to know!

I agree, the 4318 chipset is a problem right now (mine is a 4306). I also keep ndiswrapper around, just in case.
 
Old 12-22-2006, 12:31 PM   #4
SCerovec
Senior Member
 
Registered: Oct 2006
Location: Cp6uja
Distribution: Slackware on x86 and arm
Posts: 2,471
Blog Entries: 2

Rep: Reputation: 980Reputation: 980Reputation: 980Reputation: 980Reputation: 980Reputation: 980Reputation: 980Reputation: 980
Smile

Could someone provide a patch for that (dscape) stack?
I have a 2x acx100 router and would like to try the new acx driver that needs dscape to compile proper...
:-)
Thanks anyway.
 
Old 12-22-2006, 05:47 PM   #5
Indiestory
Member
 
Registered: Aug 2006
Location: Aberdeen, Scotland
Distribution: OpenBSD
Posts: 164
Blog Entries: 1

Rep: Reputation: 30
ive got bcm4318 working but i cant connect to networks using wpa or or any other encrypted means, i can connect to open networks but encryption doesnt seem to work
 
Old 12-23-2006, 07:02 AM   #6
Hangdog42
LQ Veteran
 
Registered: Feb 2003
Location: Maryland
Distribution: Slackware
Posts: 7,803

Original Poster
Blog Entries: 1

Rep: Reputation: 422Reputation: 422Reputation: 422Reputation: 422Reputation: 422
Quote:
Originally Posted by SCerovec
Could someone provide a patch for that (dscape) stack?
I have a 2x acx100 router and would like to try the new acx driver that needs dscape to compile proper...
:-)
Thanks anyway.

Can't you pull the patch from kernel.org? Last time I checked, John Linville's patch was still there.


Quote:
Originally Posted by Indiestory
ive got bcm4318 working but i cant connect to networks using wpa or or any other encrypted means, i can connect to open networks but encryption doesnt seem to work
Why don't you start a new thread as your question really has nothing to do with this thread.
 
Old 12-28-2006, 06:58 PM   #7
chrisortiz
Member
 
Registered: Nov 2005
Distribution: Slackware, and of course the super delux uber knoppix universal live recovery cd
Posts: 429

Rep: Reputation: 30
Hangdog42 i've been messing around with a broadcom 4318 chipset for days now. After reading this post, everything worked! (Acer Aspire 3002Lci, amd64 processor)
here is what i did
1. I downloaded the driver bcmwl564.sys as was in the fwcutter README file

2. i downloaded ndiswrapper 1.32, and wpa_supplicant.0.4.9

for the longest time i was stuck at this point as wpa_supplicant would not connect saying "Driver does not repost to request" or something similar

after trying the WEXT driver like you mentioned here. it worked like a dream.
 
Old 01-15-2007, 12:05 PM   #8
SCerovec
Senior Member
 
Registered: Oct 2006
Location: Cp6uja
Distribution: Slackware on x86 and arm
Posts: 2,471
Blog Entries: 2

Rep: Reputation: 980Reputation: 980Reputation: 980Reputation: 980Reputation: 980Reputation: 980Reputation: 980Reputation: 980
Thumbs up

Quote:
Originally Posted by Hangdog42
Can't you pull the patch from kernel.org? Last time I checked, John Linville's patch was still there.
I'we tried to find it, but got lost in the tree :-(

What was that URL You found the patch on?

Right now I'm 'git-ing' the whole kernel-tree as described above in this thread :-(
...
Man I wish to see this two ACXs working a bit more stable (like the ATHs for example?). I somehow feel the ACX chips are OK but the driver is a bit flaky (no OEM support ever from TI)...
And the BCM (in few of ours APs) could use dscape's stack also instead of the OEM wl pack...
If I get the stack properly I'll run a diff and put it on our public ftp (a 256k bottleneck :-( ) for anyone to use 'till in official kernel.
 
Old 01-15-2007, 12:39 PM   #9
Hangdog42
LQ Veteran
 
Registered: Feb 2003
Location: Maryland
Distribution: Slackware
Posts: 7,803

Original Poster
Blog Entries: 1

Rep: Reputation: 422Reputation: 422Reputation: 422Reputation: 422Reputation: 422
Well, the URL for the entire list of development kernels is http://kernel.org/git. That just gets you a listing, and John Linville's stuff is there. If you need to retrieve it with git (and if you are compiling the dscape stack into the kernel, I would suggest doing this) then git pull git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-dev.git should work. I haven't compiled this in a bit, but I can't imagine that they would have changed git access. If you have trouble with this, please let me know.

If you're doing this today, I've noticed that kernel.org is under some HEAVY loads. I keep getting timeouts, so you may want to try later.
 
Old 01-16-2007, 06:19 AM   #10
SCerovec
Senior Member
 
Registered: Oct 2006
Location: Cp6uja
Distribution: Slackware on x86 and arm
Posts: 2,471
Blog Entries: 2

Rep: Reputation: 980Reputation: 980Reputation: 980Reputation: 980Reputation: 980Reputation: 980Reputation: 980Reputation: 980
Yap!
I'we got the kernel from linville's tree (cloned all from linville's git-tree):
The kernel is (according to the Makefile) 2.6.20-rc3 and I saw clearly the acx there. So I gave it a go :
Code:
$ make menuconfig
# make modules_install
$ make bzImage
(clean compile in #1 pass :D )
# make install (that's still pending - it was done on a server ...)
As you may notice, I reply ASAP I 'git-ed' the thing. I'm still up to post a patch on our ftp as soon as I test the kernel.

Thanks for the intro to git

PS from my point of view (64k link) there is absolutely nothing wrong on kernel.org , may be because I gitted from Linville instead from Torvalds?
PPS HOW TO make a downloaded kernel (.tar.bz2) 'gittable'? (I'm a know-nothing with git, even failed to #make the docs :-P)
 
Old 01-16-2007, 06:54 AM   #11
Hangdog42
LQ Veteran
 
Registered: Feb 2003
Location: Maryland
Distribution: Slackware
Posts: 7,803

Original Poster
Blog Entries: 1

Rep: Reputation: 422Reputation: 422Reputation: 422Reputation: 422Reputation: 422
Quote:
PPS HOW TO make a downloaded kernel (.tar.bz2) 'gittable'? (I'm a know-nothing with git, even failed to #make the docs :-P)
You'll have to dig into the git documentation to figure that bit out. I can use git to create a kernel tree and patch it, but that is the extent of my git skills. One thing to keep in mind however, it that I believe git is supposed to be source code control version control software, sort of like CVS.
 
Old 01-17-2007, 03:12 AM   #12
SCerovec
Senior Member
 
Registered: Oct 2006
Location: Cp6uja
Distribution: Slackware on x86 and arm
Posts: 2,471
Blog Entries: 2

Rep: Reputation: 980Reputation: 980Reputation: 980Reputation: 980Reputation: 980Reputation: 980Reputation: 980Reputation: 980
Lightbulb Tesing dscape stack on 2.6.20-rc3

It seems that Linville's kernel was 2.6.20-rc3
1.
It did compile twice cleanly from the gitted config slightly altered by me. It is to be noted that a vanilla kernel is not to be ecpected to allways compile clean when altered the first time, even more if it's a rc.
Then I rebooted on a machine without any wireless interfaces (sort of dry run):
The changes are rather huge - my net-interfaces (I speak about Slackware 10.2 / 11.0) where all messed up (wrong drivers loaded etc.)
The latency of the kernel was ok (300 Hz/preemptive-server)
All seemed OK, so I stepped further ;-)
I ftp-ed the folder with the source-tree on the wireless router.
Did the 2nd make (a clean make with the 1st config)
re-configured the boot and fired it up (now it gets tense)
The ifaces are now eth1 and -2 instead wlan0 and -1 (!)
The acx-common complains about fware (the fware exists and is a year-long used by the acx20060521)
I fiddle with the hotplug supposed to handle the fw to the driver and guess-what: it doesn't even hit /var/log/messages
The fw is uploaded via udev on slack 11.0 now ;-), so I edit the /lib/udev/firmware.helper report success too:
-???- nothing in the logs -???-
The logger has wrong path!? it's not /sbin/logger its (on my slack) /usr/sbin/logger now ! so I edit this too... (no wonder fw never complains ever about failure, the err() hits a non-existend logger :-) )
Finally I'we got the situation in sight:
The acx has bugs:
a. It loads good
b. It requests FW (tiacx100c0D) <-- wrong acx100 can't handle combined FW at all! it should request either [tiacx100] or [tiacx111c??] accordingly !!! (got info for that on acx's wiki 100% developer proven source)
c. Then it falls back to request [tiacx100r0D] which loads OK
d. guess what: missing the [tiacx100] FW the card fails to init, despite the radio IS scanning ...
e. Nothing happens (well thats not 100% true, the driver tries invaine to get success from the card)
So, that's it. I got the linville's git
It compiles and works (dinno for the other cards)
It has a bug in tiacx (the acx-pci module) regarding FW request.
BTW there are newer drivers for vanila kernels above 2.6.16:
look at http://www.cmartin.tk/acx there lays a 2007* tarball :-) and its allready rolling our traffic on sayd WiFi router

Enough said, Now i would like to help fix this FW bug (dunno how) and to test the brand new dscape warfare of acx
Any clues out there?
EDIT:
few typos, bad english (non-native language pack for me :-} )

Last edited by SCerovec; 01-17-2007 at 03:25 AM.
 
Old 01-17-2007, 06:55 AM   #13
Hangdog42
LQ Veteran
 
Registered: Feb 2003
Location: Maryland
Distribution: Slackware
Posts: 7,803

Original Poster
Blog Entries: 1

Rep: Reputation: 422Reputation: 422Reputation: 422Reputation: 422Reputation: 422
Quote:
Now i would like to help fix this FW bug (dunno how) and to test the brand new dscape warfare of acx
Any clues out there?
I'd suggest contacting the ACX developers. They are going to be the best source for information about bugs and how to go about fixing them. They are also probably more aware of how their drivers might work the the dscape stack.
 
  


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
Does new Linux bcm43xx driver for Broadcom wireless cards work on a HP ze4805us? svarmido Linux - Hardware 4 10-10-2006 03:02 AM
need to know how to configure Actiontec wireless card (has native linux driver) izquierdista Linux - Wireless Networking 1 12-17-2005 10:57 AM
broadcom wireless driver config Dunadan1821 Linux - Wireless Networking 2 09-05-2004 08:09 AM
Mandrake9.1 driver for Compaq laptop Broadcom wireless bhanlinu Linux - Wireless Networking 0 10-14-2003 03:46 PM

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

All times are GMT -5. The time now is 05:17 PM.

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