I created a testing function to fill in the wireless stats with 0 values,  
and great news, the rt2x00 chipset is detected as a wireless card.  It  
does everything except WPA, so not much better than the legacy  
rt2400/rt2500 at the moment.
I seem to be getting a lot of "Device or resource busy" warnings from  
NetworkManager like

NetworkManager: <WARNING>        nm_device_802_11_wireless_set_mode ():  
error setting card wlan0 to Infrastructure mode: Device or resource busy
NetworkManager: <WARNING>        nm_device_802_11_wireless_scan (): could  
not trigger wireless scan on device wlan0: Device or resource busy
(even though it did actually scan here... I'm a bit confused)

The only other warning I can see that might have something to do with WPA  
not working is
** (nm-applet:3052): WARNING **: <WARNING>       wsm_set_capabilities ():  
capabilities='3000' and did not match any protocals, not even none!

But that's probably because all the values of wlan0 in /proc/net/wireless  
are 0, except for status, which is 1, maybe?

--Eion

On Fri, 14 Jul 2006 08:36:29 +1200, Dan Williams <[EMAIL PROTECTED]> wrote:

> On Fri, 2006-07-14 at 07:12 +1200, Eion Robb wrote:
>> I've attached both the output of /proc/net/wireless (pretty much blank)
>
> Ok; this is because d80211 (at least as included in rt2x00 driver) isn't
> setting the wireless stats handler, which I believe makes the device
> show up in /proc/net/wireless.
>
> See airo, for example:
>
> static const struct iw_handler_def    airo_handler_def =
> {
>       .num_standard   = sizeof(airo_handler)/sizeof(iw_handler),
>       .num_private    = sizeof(airo_private_handler)/sizeof(iw_handler),
>       .num_private_args = sizeof(airo_private_args)/sizeof(struct  
> iw_priv_args),
>       .standard       = airo_handler,
>       .private        = airo_private_handler,
>       .private_args   = airo_private_args,
>       .get_wireless_stats = airo_get_wireless_stats,
> };
>
> The ieee80211/ieee80211_ioctl.c file in the rt2x00 driver doesn't set
> the ".get_wireless_stats" handler:
>
> const struct iw_handler_def ieee80211_iw_handler_def =
> {
>       .num_standard   = sizeof(ieee80211_handler) / sizeof(iw_handler),
>       .num_private    = sizeof(ieee80211_private_handler) /
>                         sizeof(iw_handler),
>       .num_private_args = sizeof(ieee80211_ioctl_priv) /
>                           sizeof(struct iw_priv_args),
>       .standard       = (iw_handler *) ieee80211_handler,
>       .private        = (iw_handler *) ieee80211_private_handler,
>       .private_args   = (struct iw_priv_args *) ieee80211_ioctl_priv,
> };
>
> Jiri, what's involved here?  The actual handler for get_wireless_stats
> is quite simple; see below.  It returns a 'struct iw_statistics' for
> which it looks like all the information is available in d80211
> elsewhere.
>
> static struct iw_statistics *airo_get_wireless_stats(struct net_device  
> *dev)
> {
>       struct airo_info *local =  dev->priv;
>
>       ...
>       airo_read_wireless_stats(local);
>       ...
>
>       return &local->wstats;
> }
>
> Dan
>
>> and another attempt at  the "tree /sys" output.
>>
>> --Eion
>>
>> >
>> > AFAIK, HAL looks at /proc/net/wireless, parses the interface names,  
>> and
>> > uses that to determine whether or not the device is a wireless device.
>> > Since it appears that /proc/net/wireless is eventually going away, HAL
>> > may need to get changed to recognize the /sys/class/ieee80211  
>> directory
>> > that dscape presents, or something like that.
>> >
>> > What does your /proc/net/wireless say when the card is plugged in and
>> > the driver is loaded?
>> >
>> > Dan
>


_______________________________________________
NetworkManager-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to