Jacek Pliszka's page about Prism2 USB 802.11b devices under Linux

This page is only about USB cards with Prism2 chipset and linux-wlan-ng driver. For cards with other chipset you need different driver. My hints may work for PCI/miniPCI/PCMCIA cards with Prism2 chipset. Also for Prism2 devices you may try HostAP driver.

You may want to see my other pages about:

Installation and cofniguration of Prism2 USB device under Linux

Below I describe shortly installation and configuration of Prism2 USB 802.11b card under Red Hat Linux 7.3.

Warnings!

The homepage for drivers and discussion list is here. Another info about these cards can be found here. Please read FAQ included with the drivers. The most up to date version is here. You can get rpms with the drivers here however I do suggest compiling yourself as it is very easy and DOES NOT require the recompilatiuon of the kernel. All you compile is the prism2_usb module itself and p80211 module. Just two objects! In order to compile you need: kernel sources configured as your kernel (for Red Hat just get kernel-source rpm) and development utils as compiler.

It works very well with Red Hat 7.3 (kernel 2.4.18). Thanks to all who worked on linux-wlan drivers! Just remember to have the drivers version 0.2.0 or newer. Of the major things only the infrastructure Master mode is missing. Below I attach my instruction how to get it working, if these instructions do not work for you - try the old ones below and if the old ones do not work - report it to the linux-wlan list.

  1. I compile and install the drivers as it is described in readme (compile just the driver!!! you do not have to compile the whole kernel, In Red Hat you just have to install kernel-source rpm):
    1. Get sources from here
    2. unpack them, run ./Configure
    3. Answer the questions as in walkthrough here - point 3
    4. run make all; make install
    Alternatively you can get rpms but installation from sources is very simple.
  2. Add starting wlan during the boot:
    chkconfig --add wlan
    chkconfig wlan on
    
    For newbies: the chkconfig command adds starting wlan during the boot. It simply adds right links to /etc/rc.d directory. Please read some guide about Linux /etc/rc.d to understand what is going on.
  3. Edit /etc/wlan/wlan.conf to suit your needs
  4. I add this to /etc/modules.conf:
    alias wlan0 prism2_usb
    
    run depmod -a ( I am not sure if needed).
  5. create /etc/sysconfig/network-scripts/ifcfg-wlan0 file :
    DEVICE=wlan0
    ONBOOT=yes
    BOOTPROTO=static      # change this to dhcp if you want DHCP
    IPADDR=192.168.0.11
    GATEWAYDEV=wlan0      # this is for setting default route
    GATEWAY=192.168.0.1
    TYPE=Ethernet
    USERCTL=yes
    NETMASK=255.255.255.0
    NETWORK=192.168.0.0
    BROADCAST=192.168.0.255
    PEERDNS=no
    
    Of course the numbers/setup should be appropiate for your network. If this does not work on boot - do this little, ugly hack, add at the beginning of /etc/rc.d/rc.sysinit the following two lines:
    /sbin/modprobe prism2_usb
    /sbin/modprobe usb-ohci   
    
    Of course instead of usb-ohci use the name of your USB controller driver. I know it is an ugly hack but it takes some time to debug what is really wrong with standard RH 7.3 USB initialization.
  6. Hotplugging - does not work for me fully yet. The problem is that /etc/hotplug/usb/prism2_usb script is not run if prism2_usb module is already loaded. Thus before connecting Prism USB card I have to remove prism2_usb module manually:
    rmmod prism2_usb
    
    then I connect the card and then I have to run:
    ifup wlan0
    
    Then it works. Instead of running ifup manually you can add:
    ifup $DEVICE
    
    at the very end of the prism2_usb of the script.
  7. Enabling WEP128 If you are concerned about security - you should enable WEP 128. It won't make you much more secure but at least you won't be totally open. On the other hand it usually does slow the connection. WEP works in 0.1.14-pre3 and newer. Enabling it is simple:
    1. generate 3-4 26 hex-digits keys - you may use nwepgen but be carefull as some OSs (like Windows XP) use different algorithms so always use 26-hex digits form, not the password string - the latter is only usefull to recover the key if you forgotten it (but recover it with THE SAME program you used to generate it)
    2. enable WEP128 on your AP and enter keys there, pick one you will use: I suggest not the first one as this is the one which is usually tried first if someone tries to hack in
    3. edit /etc/wlan.conf, these are the important lines:
         dot11PrivacyInvoked=true      
         dot11WEPDefaultKeyID=2          # 0|1|2|3
         dot11WEPDefaultKey0=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
         dot11WEPDefaultKey1=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
         dot11WEPDefaultKey2=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
         dot11WEPDefaultKey3=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
         AuthType="sharedkey"
      
    4. restart wlan and replug the card and should be fine. If it does not work - try rebooting.

Troubleshooting and old stuff

Troubleshooting If the system hangs during boot or does not initialize the card properly (both light should be green solid) try one or more of the following changes:
  1. try different USB controller: usb, usb-uhci, ohci. In Red Hat 7.x it is done in /etc/modules.conf in such a line:
    alias usb-controller uhci
    
  2. try turning off the forced reset i.e. instead of
    options prism2_usb   prism2_doreset=1 
    
    do
    options prism2_usb   prism2_doreset=0       
    
    or, since 0 is the default, simply options prism2_usb
  3. anotehr fix for boot. if you use uhci try adding this script on startup - for example as /etc/rc.d/init.d/wlan-boot-fix:
    #!/bin/sh
    
    # wlan-boot-fix 
    #
    # chkconfig: 2345 91 9 
    # description: fixes boot issues with prism2_usb
    
    action=$1
    
    case "$action" in
    
    start)
            rmmod uhci; sleep 1;modprobe uhci
            ;;
    esac
    
    make it executable and then activate it with:
    chkconfig wlan-boot-fix on
    
  4. Alternative to the previous point can be found here The author claims that running wlan start twice after a 1s delay works fine for him with usb-uhci provided it is loaded after prism2 module.
  5. try connecting via USB hub instead of directly
  6. as the last resort - try disconnecting and connecting the device again
  7. search/ask for firmware, firmware 1.1.0 or newer is supposed to be much better as it should work with no prism2_doreset option. Simply call/email your vendor. For Linksys WUSB11 v2.5 it was reported that newest Windows XP driver flashes firmware to 1.0.10 primary and 1.4.2 station. I did my tests with 1.0.6:
    grep ident /var/log/messages | tail
    May 24 00:15:05 kubus kernel: ident: nic h/w: id=0x8010 1.0.0
    May 24 00:15:05 kubus kernel: ident: pri f/w: id=0x15 1.0.6
    May 24 00:15:05 kubus kernel: ident: sta f/w: id=0x1f 1.3.4
    
    If you can't find a newer firmware - e-mail and/or call Linksys or your vendor. If you contact Linksys, you may mention that there were people reviews on Amazon.com that they have the same boot problem with Windows 98.
For me (RH7.3 + i830 chipset) uhci+prism2_doreset=1 with firmware 1.0.6 works great both directly and via hub.

Looks like the speed performance is not that good. If you want to help with it go to Ricky Ng-Adam page

There is a problem related to APM - after some suspends the device wakes up but does not work - I need to rerun the initilization script or simply plug out and plug in the device. I can not test it any more as my new notebook (Toshiba Satellite 1005-S157 - be careful! they cheat and do not give Windows installation CDs) does not work with APM.

This is hotplugging: for older, 0.14 version. In order to get hotplugging working I have to rerun initialization script in hotplugging script I add this to /etc/hotplug/usb.usermap

wusb11  0x0003 0x066b 0x2212 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
and create the executable script /etc/hotplug/usb/wusb11 containing:
#!/bin/sh

/etc/rc.d/init.d/wlan start
# the previous line does the following for me(set in /etc/wlan.conf):
#modprobe prism2_usb
#wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable
#wlanctl-ng wlan0 lnxreq_autojoin ssid=frodo authtype=opensystem
#ifup wlan0   or   dhcpcd wlan0
#
# Remember to not to run wlan from /etc/rc.d/rcX.d !!!
Disassembling WUSB11 v2.5
It is very easy but you void your warranty. Also you do everything at your own responsibility. Detach the rubber leg closest to the antenna - there is screw beneath. Unscrew it. Gently open the box. Inside you find that the foldable antenna is connected to the board with MMCX female connector (so you need antenna with male) - unplug it - just pull and connect your antenna. The MMCX connector used also by Cisco products.
Actiontec HWU01170-01
The above setup should work for Actiontec as well. Maybe doreset=0. Of course the entry to /etc/hotplug/usb.usermap should contain Actiontec ProductId and VendorId. Careful! New Actiontec cards HWU01150-01 with small antenna are ATMEL based
Evo N600C multiport
You can find info about it on Josh Wyatt's page. Though my hints for RH compatibility may be usefull too.

Non-USB Prism2 links

For PCMCIA cards or PCI cards (like Linksys WMP11 or dlink DWL-520)
Jacek Pliszka
Last modified: Fri Nov 21 20:31:57 CET 2003