Bug 116414

Summary: Z-Com XI-300 PCMCIA Prism2-based 802.11b wireless card not handled correctly
Product: [openSUSE] SUSE LINUX 10.0 Reporter: Kyle Hayes <kyle>
Component: NetworkAssignee: Joachim Gleissner <joachim.gleissner>
Status: RESOLVED INVALID QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None    
Version: RC 1   
Target Milestone: ---   
Hardware: i686   
OS: All   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Kyle Hayes 2005-09-11 22:02:10 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.
Comment 1 Christian Zoz 2005-09-12 11:47:25 UTC
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'
Comment 2 Joachim Gleissner 2005-09-12 16:36:32 UTC
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.  
Comment 3 Kyle Hayes 2005-09-13 00:57:15 UTC
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. 
Comment 4 Joachim Gleissner 2005-09-13 16:00:55 UTC
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.