Hi, in reading other forums i have seen several others with similar problems to mine but never a solution, so my question is: is there a way to manually change pcmcia_cs or card firmware to make my existing card work (rather than buying an 802.11b card with prism chipset or similar)?
Card is a Buffalo 802.11g/b wireless pcmcia card (broadcom chipset - notoriously bad with linux). I am willing to buy the linuxant ndiswrapper to load the windows driver. However the card is not even recognized by the kernel.
lspci shows a broadcom device present
cardctl ident lists no devices in either pcmcia port
power indicator led on card remains off in linux (card functions well in windows XP) Neither PCLinuxOS live cd nor Knoppix live cd were able to detect presence of card either.
So, although i can install the windows driver for the card, the driver is not linked to any pcmcia device because the system is not aware of its existance.
Again, is there anyway to change pcmcia_cs or update firmware to allow linux to see that this card exists?
ndiswrapper is free...
you can get it in my repo if you'd like
in order to install it, you need the .sys and .inf files from your windows driver...
if lspci detects it, it may work...
thanks for the quick reply phrakture. If i ever get my card recognized i will try out your ndiswrapper package before purchasing the proprietary version.
well, what I'm saying is you may be able to just try ndiswrapper - if lspci can get something from it (you said lspci detects a "broadcom device") then maybe ndiswrapper can as well...
I'd do this - install the ndiswrapper package then run "ndiswrapper -i /path/to/your/driver.inf" (make sure the .sys file is there too) and see what it says... it may report "no hardware found", it may not
the free trial of linuxant installed the driver correctly, it just could not locate a pcmcia device--and if the LED is any indicator, the card is not even getting a power supply. i'm guessing ndiswrapper will have the same results, then again, i'm a pessimist. I'll give it a shot though.
no luck with ndiswrapper, however i did figure out that what i am missing is the pcmcia i82365.so module. It does not load at boot (error to the effect of cannot load, no device found). calling modprobe i82365 as root also gives the same error. The good news is on the ndiswrapper website they list my card as being functional -- meaning someone got it to work somewhere.
Would compiling pcmcia_cs myself possibly fix this failure to load?
I think the deal is cardctl does report a 3.3V device in the socket, but cannot read it without the i82365.so module being loaded, so the manufacturer and product IDs are all zeros. Any ideas anyone?
i82365 is there in my 2.6.7,8,10 & 2.6.11 kernels, and I think they are regular Arch and regular kernels. I tried to build card services for an old Toshiba and use a 2.6 kernel. The pigs have put a trap in that stops the build for kernels > 2.6.5 or something like that.
I just checked /var/lib/pacman/kernel and i82365.ko is listed in the files. So what happens when you modprobe ?? Sometimes insmod will throw up but modprobe will happily load your module.
hmmm, you shouldn't have to recompile anything... I've never actually set up pcmcia, so I can't help much, but I'd look into the docs...
did you try yenta_socket (for older pcmcia IIRC)?
Well, I too have a broadcom chipset on my wireless card....to get it working, the only way is through Ndiswrapper (which is free as someone said) or the commercial way with *forgot the name*
if you do a pacman -S ndiswrapper pcmcia-cs wireless_tools
then you take the *.inf and *.sys of the card (in my case bcmwl5.inf and bcmwl5.sys)
then do a ndiswrapper -i yourinif.inf
hopefully i haven't forgotten anything
*btw, I am going to write about this on my homepage that and many other *hopefully* good tips and trix. *
http://www.linuxportalen.com -> Linux Help portal for Linux and ArchLinux (in swedish)
Dell Inspiron 8500
Kernel 2.6.14-archck1 (selfcompiled)
Thanks for the info, all. Just to clarify, the i82365.so driver does exist in the correct /lib/ folder on my system, it just refuses to load with modprobe or insmod, saying there is no device. I have not tried yenta_socket driver yet, i'll give that a try in a few minutes. (but laptop is a 3 year old sony, so it probably has newer hardware). Curiously, the i82092.so module will force load if i modprobe it, however it does not make the pcmcia card come to life. I suspect i82365 is the correct one.
Ok, here is all the info I can think to give. I really appreciate all of your help.
Card: Buffalo Airstation WLI-CB-G54A
included here: http://ndiswrapper.sourceforge.net/phpw … x.php/List
[root@hendrix ~]# lspci 00:00.0 Host bridge: Intel Corp. 82845 845 (Brookdale) Chipset Host Bridge (rev 04) 00:01.0 PCI bridge: Intel Corp. 82845 845 (Brookdale) Chipset AGP Bridge (rev 04) 00:1d.0 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #1) (rev 02) 00:1d.1 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #2) (rev 02) 00:1d.2 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #3) (rev 02) 00:1e.0 PCI bridge: Intel Corp. 82801BAM/CAM PCI Bridge (rev 42) 00:1f.0 ISA bridge: Intel Corp. 82801CAM ISA Bridge (LPC) (rev 02) 00:1f.1 IDE interface: Intel Corp. 82801CAM IDE U100 (rev 02) 00:1f.3 SMBus: Intel Corp. 82801CA/CAM SMBus (rev 02) 00:1f.5 Multimedia audio controller: Intel Corp. 82801CA/CAM AC'97 Audio (rev 02) 00:1f.6 Modem: Intel Corp. 82801CA/CAM AC'97 Modem (rev 02) 01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500] 02:05.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev a8) 02:05.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev a8) 02:05.2 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller 02:08.0 Ethernet controller: Intel Corp. 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (rev 42) 03:00.0 Network controller: Broadcom Corporation: Unknown device 4320 (rev 03)
[root@hendrix ~]# cardctl ident Socket 0: no product info available Socket 1: no product info available [root@hendrix ~]# cardctl info PRODID_1="" PRODID_2="" PRODID_3="" PRODID_4="" MANFID=0000,0000 FUNCID=255 PRODID_1="" PRODID_2="" PRODID_3="" PRODID_4="" MANFID=0000,0000 FUNCID=255 [root@hendrix ~]# cardctl config Socket 0: Vcc 3.3V Vpp1 3.3V Vpp2 3.3V interface type is "cardbus" irq 9 [exclusive] [level] function 0: Socket 1: not configured
(note, using DSL PPPOE connection to post right now)
[root@hendrix ~]# lsmod Module Size Used by ppp_synctty 12032 0 ppp_async 13312 1 crc_ccitt 2432 1 ppp_async ppp_generic 32788 6 ppp_synctty,ppp_async slhc 7936 1 ppp_generic radeon 78336 1 ohci_hcd 23048 0 ehci_hcd 36488 0 parport_pc 29252 1 eth1394 22280 0 pcspkr 4044 0 rtc 13260 0 ohci1394 35716 0 ieee1394 111800 2 eth1394,ohci1394 yenta_socket 23560 3 snd_intel8x0m 19396 0 snd_intel8x0 34624 2 snd_ac97_codec 79224 2 snd_intel8x0m,snd_intel8x0 snd_pcm_oss 56608 0 snd_mixer_oss 21376 1 snd_pcm_oss snd_pcm 98948 4 snd_intel8x0m,snd_intel8x0,snd_ac97_codec,snd_pcm_oss snd_timer 27524 1 snd_pcm snd 60004 11 snd_intel8x0m,snd_intel8x0,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer soundcore 11232 1 snd snd_page_alloc 10244 3 snd_intel8x0m,snd_intel8x0,snd_pcm i2c_i801 8972 0 i2c_core 23808 1 i2c_i801 hw_random 5908 0 usb_storage 72000 0 usbhid 47744 0 uhci_hcd 33424 0 usbcore 125816 6 ohci_hcd,ehci_hcd,usb_storage,usbhid,uhci_hcd shpchp 100996 0 pci_hotplug 35400 1 shpchp e100 37760 0 mii 5760 1 e100 pcmcia 26512 0 rsrc_nonstatic 11648 1 yenta_socket pcmcia_core 51872 3 yenta_socket,pcmcia,rsrc_nonstatic tsdev 8256 0 evdev 9984 0 sonypi 25184 0 lp 12548 0 parport 38984 2 parport_pc,lp nls_cp437 6144 1 vfat 14976 1 fat 41884 1 vfat ntfs 187792 2
[root@hendrix ~]# modprobe i82365 FATAL: Error inserting i82365 (/lib/modules/18.104.22.168-ARCH/kernel/drivers/pcmcia/i82365.ko): No such device [root@hendrix ~]# insmod -f /lib/modules/22.214.171.124-ARCH/kernel/drivers/pcmcia/i82365.ko insmod: error inserting '/lib/modules/126.96.36.199-ARCH/kernel/drivers/pcmcia/i82365.ko': -1 No such device
It just occurred to me after previewing my post that I unintentionally updated my kernel the other day. I'll try to revert to the original 2.6.10 kernel, but i doubt this will fix the pcmcia problem. (though, it will allow me to use phrakture's ndiswrapper pkg.)
yep. reverted to original 2.6.10 kernel and still does not load i82365 module. poop.
it's mentioned there... ya thing wlan-ng supports it?
unfortunately the wlan-ng didn't work out either. But then, i never had a problem loading the ndis driver for the card, just getting pcmcia to play nice. A device node is never created for the card, so i'm stuck from that point on. I may just break down and buy another card -- I should have been more careful when I shopped for this one -- i didn't count on this problem. Since even a live cd with devfs (instead of udev) could not load the pcmcia drivers i'm going to assume it just doesn't get along with linux. Thanks to all who tried to help.
And if anyone knows of a 802.11g card that supports WPA and has a chipset like Prism (or another that is well supported by linux) I am looking for suggestions.
First of all, your problem might not be with the network card, but rather with your PCMCIA slots. But since lspci detects your card this seems unlikely to me
I have a very similar card:
02:00.0 Network controller: Broadcom Corporation: Unknown device 4320 (rev 03)
It's a cardbus card, and therefore it behaves exactly as a PCI card, and doesn't need any PCMCIA stuff to work, at least not for me.
The difficult part is to find a ndiswrapper version that works. I often have to experiment a bit with this. The cvs is often the best alternative. Write
# cvs -z3 -d:pserver:firstname.lastname@example.org:/cvsroot/ndiswrapper co ndiswrapper
to get it.
Install it by going into the directory, and writing
# make install
Remember that the source of the kernel you are currently using must still be present on your system. If you use the stock Arch kernel, I think it will be there. If not, compile a new kernel, and remember to include support for wireless network devices, although you don't want to include any of the drivers for the supported cards.
If you get compile errors, get another version. I have had trouble with compiling when frequency scaling has been included in the kernel. But with my newest kernel (2.6.12-rc2-mm1) this was not a problem.
It is also important to check that support for wireless network devices is included in your kernel, which the stock arch kernels probably have.
The next step, before trying to load the module, is to install the windows driver. You'll probably find it on the cd. I'll bet you just have to find a file named bcmwl5a.inf, write
# ndiswrapper -i /path_to_the_file/bcmwl5a.inf
# ndiswrapper -l
and you'll get something like this:
Installed ndis drivers: bcmwl5a driver present, hardware present
Now, if this worked, load the module:
# modprobe ndiswrapper
If you get no errors, everything should work. If it refuses to load, try out other versions of ndiswrapper again. It is also possible, but unlikely, that you need another windows driver than the one which came with your card. Look at the ndiswrapper home page http://ndiswrapper.sourceforge.net/ for information about this.
This is how I have made this card work, and for me it works perfectly, once it's installed. I don't use the pacman package for ndiswrapper, since I use my own custom kernels, and because it's often necessary to experiment with which ndiswrapper version to use.
Hope this can be of some use for you
thanks for the post reb. It does give me some renewed hope. I will try to experiment more with it tonight and tomorrow. By the way, does the ndiswrapper module automagically create the wlan0 network interface, or does something need to be added to /etc/rc.conf?
After the ndiswrapper module is loaded, iwconfig will find wlan0, and it's just to set up the access point, and everything should just work.
(I think you know the following, but just in case someone reads this and doesn't know:)
# load the module modprobe ndiswrapper # if your Access Point uses encryption: iwconfig wlan0 key  xxxxxxxxxx iwconfig wlan0 key  xxxxxxxxxx ... # connect to the AP iwconfig wlan0 essid <your_ap_name> channel <your_ap_channel> # If you use DHCP dhcpcd wlan0 # If not, write the DNS info in /etc/resolv.conf and run ifconfig wlan0 <your_ip_address>
I just write it here, since even after I had figured out most things about how Linux works, these things were done so differently everywhere, that it was difficult to see how simple it really is
I haven't had the time to troubleshoot this for several days but got it working tonight. I just wanted to thank everyone, especially phrakture and reb for all your help.
To sum up in case anyone is having a similar problem:
My broadcom-based wireless card was not being recognized.
Buffalo Airstation WLI-CB-G54A
1) It is a CardBus, and therefore behaves like a PCI device (no PCMCIA needed) Yenta-socket driver required.
2) I recompiled my kernel in order to have kernel headers so I could build the cvs ndiswrapper package.
ftp://ftp.kernel.org/pub/linux/kernel/v … 11.tar.bz2
ftp://ftp.kernel.org/pub/linux/kernel/p … c2-mm3.bz2
http://kernel.org/pub/linux/kernel/v2.6 … 12-rc2.bz2
3) I used the cvs version of ndiswrapper
# cvs -z3 -d:pserver:email@example.com:/cvsroot/ndiswrapper co ndiswrapper # make install
Windows Driver obtained from here:
# unzip R74902us.EXE
Driver is in the AR folder
# ndiswrapper -i /path_to_the_file/bcmwl5a.inf # ndiswrapper -m # modprobe ndiswrapper
Power LED on wireless card now illuminated.
# iwconfig wlan0 essid <access_point_name> channel <channel> # dhcpcd wlan0
And connection is working.
now that it's working, you may be interest in:
there's some scripts there to manage wireless profiles... and a bit of work is being done to merge them into the initscripts for arch.