Bugzilla – Bug 116414
Z-Com XI-300 PCMCIA Prism2-based 802.11b wireless card not handled correctly
Last modified: 2005-09-13 16:00:55 UTC
On a clean install of SUSE 10.0, I cannot install my Z-Com XI-300 wireless PCMCIA adapter easily. There are three sets of drivers (according to the various web pages for Linux wireless support) that will support this card: hostap, prism2_cs, and wlan-ng. The hostap drivers are chosen by default. These actually do not work. They do not correctly handle the wireless extensions, so utilities like iwconfig are not able to change channels or much of anything other than the ESSID. iwconfig does appear to be able to read the configuration of the card. I experimented with the wireless tool Kismet. With that tool, I was able to use the features of the card such as scanning frequencies etc. From this, I doubt that the drivers are failing, but I suspect that the Wireless Extensions are not correctly handled in the hostap drivers as iwconfig/iwlist etc all use those extensions and Kismet does not. I was able to work around the problem by forcing the use of the prism2_cs drivers. I reconfigured udev to provide more information in the logs. I think these are the relevent entries: Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'MODE=auto' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'HOTPLUG=yes' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'SUBSYSTEM=pcmcia' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'MODALIAS=pcmcia:mD601c0002f06fn00pfn00pa000 00000pbEFCCAFE9pc00000000pd00000000' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'HWD_BUSID=0.0' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'HWD_BUSNAME=pcmcia' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'HWD_CONFIG=' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'HWD_DEVICEPATH=/sys/devices/pci0000:00/0000 :00:02.0/0.0' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'HWD_DEVTYPE=pcmcia' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'SOCKETPATH=/sys/class/pcmcia_socket/pcmcia_ socket0' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'SOCKET_NO=0' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'DEVICE_NO=00' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'MANF_ID=0xd601' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'CARD_ID=0x0002' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'PROD_ID1=' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'PROD_ID2=IEEE 802.11 Wireless LAN_PC Card' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'PROD_ID3=' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'PROD_ID4=' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'FUNC_ID=0x06' Sep 11 14:12:30 thinkpad udevd-event[8731]: run_program: '/sbin/hwup' (stderr) 'FUNCTION=0x00' If there is more information I can gather, please let me know. Kudos on the great work on SUSE 10.0! The hardware on which I am running SUSE 10.0 is an IBM Thinkpad 570E. SUSE 10.0 RC1 is the only operating system on it and was installed as an upgrade on SUSE 10.0 Beta3.
If you just want to change the default driver on your system, then have a look in /etc/modprobe.d/prism2. Please provide 'hwinfo --netcard'
FYI: If your card gets driven by hostap, then wpa_supplicant will be used by default to establish the WLAN connection (even non-WPA ones), so you can't fully trust hwinfo output. 'rcnetwork status wlan0' gives you some more input.
Hmm, when I restarted my laptop, the wireless worked correctly, but the driver used was hostap_cs! Very odd.... I've tried changing it to prism2_cs in Yast. No errors occur, but even on reboot, hostap_cs is used. iwconfig now seems able to change channels (it definitely did not work before, even after reboots). Even so, here is the output of hwinfo --netcard: ---------------- 40: PCMCIA 01.0: 0282 WLAN controller [Created at pcmcia.87] UDI: /org/freedesktop/Hal/devices/pcmcia_54785_2 Unique ID: M7bu.LiEYpxsybr2 Parent ID: ruGf.qcMpx0aRxCB SysFS ID: /devices/pci0000:00/0000:00:02.1/1.0 SysFS BusID: 1.0 Hardware Class: network Model: "IEEE 802.11 Wireless LAN/PC Card" Hotplug: PCMCIA Socket: 1 Vendor: pcmcia 0xd601 Device: pcmcia 0x0002 "IEEE 802.11 Wireless LAN/PC Card" Driver: "hostap_cs" Device File: wifi0 Device Files: wifi0, wlan0 Features: WLAN HW Address: 00:c0:6f:05:54:e4 WLAN channels: 1 2 3 4 5 6 7 8 9 10 11 WLAN frequencies: 2.412 2.417 2.422 2.427 2.432 2.437 2.442 2.447 2.452 2.457 2.462 WLAN bitrates: 1 2 5.5 11 WLAN encryption modes: WEP40 WEP104 WLAN authentication modes: open sharedkey Module Alias: "pcmcia:mD601c0002f06fn00pfn00pa00000000pbEFCCAFE9pc00000000pd00000000" Driver Info #0: Driver Status: hostap_cs is active Driver Activation Cmd: "modprobe hostap_cs" Driver Info #1: Driver Status: orinoco_cs is not active Driver Activation Cmd: "modprobe orinoco_cs" Driver Info #2: Driver Status: prism2_cs is not active Driver Activation Cmd: "modprobe prism2_cs" Extra Info: IEEE 802.11 Wireless LAN/PC Card Config Status: cfg=no, avail=yes, need=no, active=unknown Attached to: #13 (CardBus bridge) ---------------- This seems to indicated that hostap_cs is active and the other drivers are not. That is strange as I specifically set up prism2_cs as the correct driver in Yast. Here is the output from rcnetwork status wlan0: ---------------- wlan0 wlan0 configuration: wlan-id-00:c0:6f:05:54:e4 wlan0 DHCP client (dhcpcd) is running wlan0 IP address: 10.206.2.253/24 wlan0 IEEE 802.11b ESSID:"woodlawn" Nickname:"thinkpad" Mode:Managed Frequency:2.422 GHz Access Point: 00:06:25:55:D9:45 Bit Rate:11 Mb/s Sensitivity=1/3 Retry min limit:8 RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=92/92 Signal level=-24 dBm Noise level=-97 dBm Rx invalid nwid:0 Rx invalid crypt:7 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:251 Missed beacon:0 ---------------- How can I force it to use prism2_cs? I thought I'd done that correctly before, but apparently not. And, it is very odd that hostap_cs is working now when it definitely did not before. I will try plugging the card in an out a few times to see if perhaps the card itself is part of the problem.
You can force to use other drivers by changing the driver to be loaded by modifying /etc/modprobe.d/prism2. But it's quite inconvenient, so you may rather want to use 'switch_prism_driver' to change the driver. Just call this script with hostap, orinoco, or wlan-ng (for prism2_cs) as argument. As your card is working now, I'll close this bug. Please reopen if there remain any problems.