View Single Post

  #3 (permalink)  
Old 10-22-2004
Roby
 
Posts: n/a
Default Re: Help setting up Prism3 USB-based WLAN on kernel 2.6.8.1

Lewin A.R.W. Edwards wrote:

>> I'm having real difficulty setting up WLAN connectivity in Linux on my
>> new ECS Desknote, and I'd love some help. The device is an AirVast
>> PRISM3 card, internally connected on a hidden USB bus. The VID/PID are

>
> In case anyone cares, there is an acceptable workaround to my problem,
> which I discovered after considerable trial-n-error: First, you must
> disable "check for sleep in spinlock" checking in the kernel. It
> fights with the wlan-ng driver.
>
> Second, it appears that the net device won't connect properly at boot.
> It's very unclear why this is the case, but if you initialize the
> interface at boot time, you'll get either no link, or a link with ~50%
> packet loss. The cure for this is to run a script very late in the
> boot process:
>
> #!/bin/sh
> rmmod prism2_usb
> rmmod p80211
> sleep 1
> modprobe prism2_usb
> sleep 5
> ifup wlan0
>
> Thirdly, this specific WLAN adapter can get into a confused state that
> can only be cleared with a power-cycle (In this state, even Windows
> can't recognize it). Since it's not possible to unplug the device,
> being internal, the only way to clear this condition is to power down
> and remove the AC adapter from the notebook for a couple of seconds.
> It seems that while the AC adapter is connected, sufficient current is
> available at the USB ports (even with the machine off) to keep the
> WLAN adapter confused.


I also have been struggling with the Airvast module built into my Shuttle
XPC box. To avoid the boot problems, I set 'enable_wlan0=n' in wlan.conf
and manually start up the radio from root with this:

#!/bin/sh

wep="xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"

modprobe prism2_usb prism2_doreset=1
wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable
if [ "$1" = "My_SSID" ]; then
wlanctl-ng wlan0 lnxreq_hostwep decrypt=true encrypt=true
wlanctl-ng wlan0 dot11req_mibset mibattribute=dot11WEPDefaultKeyID=3
wlanctl-ng wlan0 dot11req_mibset
mibattribute=dot11ExcludeUnencrypted=true
wlanctl-ng wlan0 dot11req_mibset mibattribute=dot11PrivacyInvoked=true
wlanctl-ng wlan0 dot11req_mibset mibattribute=dot11WEPDefaultKey3=$wep
wlanctl-ng wlan0 lnxreq_autojoin ssid="$1" authtype="sharedkey"
else
wlanctl-ng wlan0 lnxreq_autojoin ssid="$1" authtype="opensystem"
fi

ifup wlan0

The script was mostly copied from somebody else who knows far more than I do
about this stuff. It works, but I like your method better.

I have also seen the device mysteriously die. Maybe I ought to wire in a
reset button!

Thank you for sharing your discoveries.

Roby

Reply With Quote