On Wed, 2006-07-12 at 09:51 +1200, Eion Robb wrote: > > The rt2x00-cvs-daily driver does appear to properly support WEXT since > > it uses the ieee80211 layer. But until the sourceforge site gets > > updated to reflect which driver people should actually use, I'd be > > hesitant to say that rt2x00 is actually WEXT compliant since most people > > would likely make the same mistake I did, and download the older driver. > > Which brings me back the question: > >> So is there any reason for it not to be detected by NetworkManager? > > To be honest, I'm not really concerned with the layout of the website, > since I have no power over it. I am concerned about getting rt2x00 > working with NetworkManager. :)
Ok; does it show up in HAL? Run 'hal-device-manager' and look around for your card. There needs to also be a "WLAN Interface" object that's a child of the actual PCI/USB card. The "WLAN Interface" object needs to have the "net.80211" capability in its info.capabilities list. It also needs to have a "net.interface" property. The driver is likely not showing up because it has no SET_NETDEV_DEV() call when it sets up its netdevice, which means that the right device links aren't set up in sysfs. Each separate hardware-specific file (rt2500pci.c, rt2400pci.c, rt2500usb.c) needs to have the SET_NETDEV_DEV() command added. Try the attached patch, and if that works, please send it upstream to the rt2x00 maintainers. Dan
--- ./rt2500pci.c.setnetdevdev 2006-07-11 18:05:03.000000000 -0400 +++ ./rt2500pci.c 2006-07-11 18:05:26.000000000 -0400 @@ -3104,6 +3104,7 @@ struct rt2x00_dev *rt2x00dev = ieee80211_dev_hw_data(net_dev); rt2x00dev->dev = pci_dev; + SET_NETDEV_DEV(net_dev, pci); rt2x00dev->csr_addr = ioremap( pci_resource_start(rt2x00dev_pci(rt2x00dev), 0), --- ./rt2400pci.c.setnetdevdev 2006-07-11 18:04:56.000000000 -0400 +++ ./rt2400pci.c 2006-07-11 18:06:43.000000000 -0400 @@ -2821,6 +2821,7 @@ struct rt2x00_dev *rt2x00dev = ieee80211_dev_hw_data(net_dev); rt2x00dev->dev = pci_dev; + SET_NETDEV_DEV(net_dev, pci_dev->dev); rt2x00dev->csr_addr = ioremap( pci_resource_start(rt2x00dev_pci(rt2x00dev), 0), --- ./rt2500usb.c.setnetdevdev 2006-07-11 18:05:10.000000000 -0400 +++ ./rt2500usb.c 2006-07-11 18:07:35.000000000 -0400 @@ -2727,6 +2727,7 @@ struct rt2x00_dev *rt2x00dev = ieee80211_dev_hw_data(net_dev); rt2x00dev->dev = usb_intf; + SET_NETDEV_DEV(net_dev, usb_intf->dev); rt2x00dev->workqueue = create_singlethread_workqueue(DRV_NAME); if (!rt2x00dev->workqueue)
_______________________________________________ NetworkManager-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/networkmanager-list
