• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Broadcom WiFi

pkubaj

Aspiring Daemon

Thanks: 100
Messages: 554

Is it possible to enable the Broadcom WiFi card (BCM43225, works with Linux only using the new drivers) using Windows drivers with NDIS?
 

emc2

New Member

Thanks: 1
Messages: 17

Theoretically yes. However, ndisgen seems to have trouble with the drivers I'm using (the Apple Bootcamp drivers for windows). When I looked at disassembled output, the device probe function seems to always returns an error code. Sure enough, it won't attach when I load the .ko. I'm guessing ndisgen isn't finding something it needs in the windows driver.
 

richardpl

Aspiring Daemon

Thanks: 68
Messages: 841

This usually means that inf file is invalid/empty.

Found bug, want to improve software, then report it, on link bellow is website when you can do it and even post links to drivers you are using.
 

KNOStic

Member

Thanks: 25
Messages: 91

emc2 said:
Can the FreeBSD kernel support Linux network driver interfaces and kernel APIs directly? (I'd be rather surprised if it can)
Sorry to say, no. Linux exposes a lot of things in their kernel that BSD is smart enough not to, the system calls are radically different and of course as Jeung said a long time ago, PHY-N isn't really there either to support the Broadcom stuff and that's why he piped off that ship.

It would take a lot of work on the kernel side to make any of those wl library calls work. Sure would love to see it happen though - there's an awful lot of Broadcom stuff out there and BSD just doesn't support it. And as much as NDISGEN is nice and all, having to do all that tweaking for each and every different radio is just not practical if you want BSD to just start, pick up the radio and go.
 

emc2

New Member

Thanks: 1
Messages: 17

From what I've seen of the Broadcom linux driver, it seems possible to reverse-engineer something. All the driver's logic seems to be contained in the closed-source object file. Its interface with the kernel seems to be some kind of custom OS-independent layer built by the broadcom developers. They don't seem to do anything inside the closed source object file that's specific to any OS. They do pass in some linux-specific data structures to some of the functions in the object file, but they pass them in as void pointers, which would suggest they're treated as opaque values (ie, handles). My suspicion is they have an OS interface layer, and a common core driver logic, and they shipped the core logic as an object file, along with the linux version of the OS layer's source code.

I'm working on reverse-compiling the object file to see if that suspicion is correct. If it turns out to be, then it shouldn't be too hard to adapt the driver to work with FreeBSD, and possibly to use the knowledge gained in the other Broadcom drivers (bwn and bwi)
 

shokry

New Member


Messages: 5

Ok then, I was just holding the installation CD in my hand to install FreeBSD on my laptop, but I have the bcm4313 card :/ , that's what's gonna stop me from installing as I rely on wireless connection almost completely.
So sad. :(
 

nirnr00t

Member


Messages: 28

shokry said:
Ok then, I was just holding the installation CD in my hand to install FreeBSD on my laptop, but I have the bcm4313 card :/ , that's what's gonna stop me from installing as I rely on wireless connection almost completely.
So sad. :(
+1. Have asus eee pc 1215N with broadcom 4313.
 

KNOStic

Member

Thanks: 25
Messages: 91

emc2 said:
I'm working on reverse-compiling the object file to see if that suspicion is correct. If it turns out to be, then it shouldn't be too hard to adapt the driver to work with FreeBSD, and possibly to use the knowledge gained in the other Broadcom drivers (bwn and bwi)
I'm also holding out hope that this can somehow be done. With so many machines out there *requiring* broadcom support, it's becoming a major showstopper that BSD doesn't. Any word on progress? Want to collaborate? BSD *really* needs to get this done one way or another.
 

KNOStic

Member

Thanks: 25
Messages: 91

emc2 said:
I'm in a semester-of-death right now. I will get back to all this when it blows over.
Page me when it's over ... somebody's GOTTA do this. I'm not the world's best 'nix coder, but maybe with a few more keystrokes at your back, we can get this done somehow. This is one important task that'll make a lot of people happy ... :)
 

KNOStic

Member

Thanks: 25
Messages: 91

avilla@ said:
People, may I suggest you all to talk about this on freebsd-wireless@? That's a better place for trying to coordinate efforts on this.
I'll be willing to do so if there's some contribution I can offer along with emc. At this time, I'd rather not noise up the list over there since there's a new maintainer for bwn and bwi seems to be chugging along. Currently I'm all tied up with 9beta and cups madness since I'm a one man band over here and am already doubleshifting my days as it is.

My interest in chiding in over here is merely to see if we can light a fire under getting the Linux code ported over and I'm certainly not up to speed to be a lead. I know Weongyo Jeong threw up his hands a while ago and haven't seen much on the bwn front, thus my act of encouragement here if there's anyone willing to take it up. Promise that I'll mosey over there once I see that I can be useful but am also cautious about making promises I'm not in a condition to keep at this time. Are you aware of any plans/movement/etc on the wl stuff?
 

emc2

New Member

Thanks: 1
Messages: 17

I'm a little confused as to just what drivers exist on the linux side. The closed-source Broadcom driver is apparently called wl. In addition there's a completely open-source driver called b43, and an older one called bw. It seems that b43 has N-PHY support (the newer cards, like the 4322), but it's not clear to me what the differences between b43 and wl are.

My plan was (and still is) to analyze wl as follows: disassemble -> reconstruct CFG's, offsets, and others -> parse C headers to get type info -> type inference. Hopefully, this should result in C code that will yield some insight into how the thing works. However, if all the code we need is in b43, then there's little sense in going through all this.

Also, there has been some discussion on wireless, but they seem more concerned with other things at the moment, namely getting things in order for 9-RELEASE.
 

gurki

New Member

Thanks: 3
Messages: 3

nirnr00t said:
+1. Have asus eee pc 1215N with broadcom 4313.
Hey

Just wanted to let you know I got wireless working on my asus 1215N with ndis.
I downloaded Windows XP drivers for the broadcom chipsets and then ndis was working fine.

On another note by using the work being done here http://wiki.freebsd.org/Intel_GPU and the new acpi_call module found here http://forums.freebsd.org/showthread.php?t=27010 I got full acceleration using the Intel card and good battery time by turning off the nvidia adapter.

Hope this can help you to get FreeBSD running on your asus 1215n
 

redw0lfx

Member

Thanks: 15
Messages: 99

gurki said:
Hey

Just wanted to let you know I got wireless working on my asus 1215N with ndis.
I downloaded Windows XP drivers for the broadcom chipsets and then ndis was working fine.
Do you have a Broadcom 4313 chip on your asus 1215N? I have been looking for XP drivers for that chip, but only found Windows 7 drivers. If you wouldn't mind, could you provide a link to where I can find them, or upload them somewhere for me?

Thanks.
 

gurki

New Member

Thanks: 3
Messages: 3

redw0lfx said:
Do you have a Broadcom 4313 chip on your asus 1215N? I have been looking for XP drivers for that chip, but only found Windows 7 drivers. If you wouldn't mind, could you provide a link to where I can find them, or upload them somewhere for me?

Thanks.
Here is the link

http://wikidrivers.com/wiki/Broadcom_BCM43xx_5.100.235.19

Please consider that I do not think this is a reliable website to download them from but it was the only one I could find.
If someone could find the same drivers from some manufacturers website it would be alot better choice.
 

nirnr00t

Member


Messages: 28

gurki said:
Hey

Just wanted to let you know I got wireless working on my asus 1215N with ndis.
I downloaded Windows XP drivers for the broadcom chipsets and then ndis was working fine.

On another note by using the work being done here http://wiki.freebsd.org/Intel_GPU and the new acpi_call module found here http://forums.freebsd.org/showthread.php?t=27010 I got full acceleration using the Intel card and good battery time by turning off the nvidia adapter.

Hope this can help you to get FreeBSD running on your asus 1215n
Probably you use http://forums.freebsd.org/showpost.php?p=150712&postcount=5 ? :) Thanks for winxp drivers, but, as i now, ndis works only on -RELEASE, but develop of many desktop features (probably GEM) doing on -CURRENT. Its sad.
 

gurki

New Member

Thanks: 3
Messages: 3

nirnr00t said:
Probably you use http://forums.freebsd.org/showpost.php?p=150712&postcount=5 ? :) Thanks for winxp drivers, but, as i now, ndis works only on -RELEASE, but develop of many desktop features (probably GEM) doing on -CURRENT. Its sad.
Yes I'm using that, I execute it in /etc/rc.local on boot, thanks for that post btw :).

I'm running on FreeBSD 9-RC1, the kms/intel patch applied fine to that release.
 

nirnr00t

Member


Messages: 28

wblock@ said:
What makes you think that?
It was mistake. I confirm that broadcom wifi xp driver described above works fine (with bcw 4313).

Code:
kldload ndis & kldload /path/to/generated/driver/module
ifconfig wlan0 create wlandev ndis0
ifconfig wlan0 up scan
wpa_supplicant -D ndis -i wlan0 -c /etc/wpa_supplicant.conf
 

paulfrottawa

Active Member

Thanks: 20
Messages: 242

Working
Code:
bwi0@pci0:5:2:0:	class=0x028000 card=0x1355103c chip=0x431814e4 rev=0x02 hdr=0x00
    vendor     = 'Broadcom Corporation'
    device     = 'BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller'
    class      = network
/boot/loader.conf:

Code:
if_bwi_load="YES"
wlan_wep_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"
rc.conf:
Code:
wlans_bwi0="wlan0"
ifconfig_wlan0="WPA SYNCDHCP"
Added port
[cmd=]cd /usr/ports/net/bwi-firmware-kmod && make install clean[/cmd]


Code:
FreeBSD freea 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan  3 07:15:25 UTC 2012     
[email]root@obrian.cse.buffalo.edu[/email]:/usr/obj/usr/src/sys/GENERIC  i386
 

emc2

New Member

Thanks: 1
Messages: 17

Just letting anyone who was discussing bcm4322 support before, I am starting to have more free time now. I'm currently writing another driver, but that shouldn't take too long. I should be able to pick up where I left off.