I'm using a RaLink RT2561/RT61 rev B wireless card in my notebook. Because neither rt2x00 nor rt61 compile with my current kernel (gentoo-sources-2.6.22-r8), I have to use ralink-rt61 driver. With this driver however the network initialization script fails. /etc/init.d/net.ra0 --verbose start gives * Starting ra0 * Loading modules for ra0 * modules: apipa arping ccwgroup macchanger macnet rename iwconfig essidnet iptunnel ifconfig pppd system dhcpcs ip6to4 * iwconfig provides wireless * ifconfig provides interface * pppd provides ppp * dhcpcd provides dhcp * Configuring ra0 for MAC address 00:13:D3:75:1C:26 ... * Wireless extensions not found for ra0 * Bringing up ra0 * dhcp * Running dhcpcd ... Error, ra0: timed out * ra0 received address 169.254.30.152/16 I checked the iwconfig script in /lib/rcscripts/net and found out, that the script checks /proc/net/wireless and /sys/class/net/<if>/wireless to determine if a wireless extension is loaded. Neither of the two entries exist with ralink-rt61 driver (as well as with rt2x00, as I could read out of the forums). If I bring up the card manually by running ifconfig, iwconfig and iwpriv, the card associates without any problem and dhcpcd is getting the correct IP. iwconfig without any parameters shows "no wireless extensions." for all but the wireless card as soon as the rt61 module is loaded. Reproducible: Always Steps to Reproduce: 1. emerge ralink-rt61 2. Execute network init script for wireless interface 3. Actual Results: dhcpcd timing out, because module is not modprobed by net.* dcript, because the script thinks, that ra0 has no wireless extensions Expected Results: Configuring th wireless card correctly
sounds like the kernel wireless drivers arent doing enough ?
(In reply to comment #1) > sounds like the kernel wireless drivers arent doing enough ? > That#s whatI fear too, but honestly, I cannot wait for the driver devs to fix that (if they would ever fix it, because it isn't anything that reduces the functionality of the driver). I think it's something that should be fixed on the script side. As I said iwconfig without params could be used to determine if a card has wireless extensions. # iwfonfig eth0 no wireless extensions. ra0 no wireless extensions. # modprobe rt61 # iwconfig eth0 no wireless extensions. ra0 RT61 Wireless ESSID:"" Nickname:"" Mode:Auto Frequency:2.412 GHz Bit Rate=54 Mb/s RTS thr:off Fragment thr:off Encryption key:off So as soon as you modprobe the driver the "no wireless extensions." goes away for ra0 in iwconfig. I checked the baselayout-2 files, but the method of checking for wireless extensions is the same as in the current baselayout.
iwconfig output is not reliable enough. Sorry, but I got sick of specific driver hacks for iwconfig, so we enforce either /proc/net/wireless or something in /sys. If there isn't anything in either to show it's wireless then the driver will have to be patched.
(In reply to comment #3) > iwconfig output is not reliable enough. > > Sorry, but I got sick of specific driver hacks for iwconfig, so we enforce > either /proc/net/wireless or something in /sys. If there isn't anything in > either to show it's wireless then the driver will have to be patched. > That would be the best solution I guess. But where can I file a BUG report with RaLink? As I said. It's the ralink driver not the rt61 or rt2x00 (which seams to lack of entries in &proc/net/wireless as well...) one.
Our mobile team could try and patch the driver. If they can't then they will close this as UPSTREAM. You could try on the rt2x00 forums.
I've done some more research, and as far as I can tell ralink-rt61 desperately tries to be a "normal" network card rather then being a wlan card. I've compared the /sys/class/net/${dev}/ directory of both the ra0 and eth0 interface. They look practically the same # ls -li /sys/class/net/{eth0,ra0}/ /sys/class/net/eth0/: insgesamt 0 5603 -r--r--r-- 1 root root 4096 14. Okt 12:19 address 5597 -r--r--r-- 1 root root 4096 14. Okt 12:19 addr_len 5604 -r--r--r-- 1 root root 4096 14. Okt 12:19 broadcast 5605 -r--r--r-- 1 root root 4096 14. Okt 12:19 carrier 5595 lrwxrwxrwx 1 root root 0 14. Okt 12:19 device -> ../../../devices/pci0000:00/0000:00:04.0 5606 -r--r--r-- 1 root root 4096 14. Okt 12:19 dormant 5600 -r--r--r-- 1 root root 4096 14. Okt 12:19 features 5609 -rw-r--r-- 1 root root 4096 14. Okt 12:19 flags 5599 -r--r--r-- 1 root root 4096 14. Okt 12:19 ifindex 5598 -r--r--r-- 1 root root 4096 14. Okt 12:19 iflink 5602 -r--r--r-- 1 root root 4096 14. Okt 12:19 link_mode 5608 -rw-r--r-- 1 root root 4096 14. Okt 12:19 mtu 5607 -r--r--r-- 1 root root 4096 14. Okt 12:19 operstate 5636 drwxr-xr-x 2 root root 0 14. Okt 12:19 power 5612 drwxr-xr-x 2 root root 0 14. Okt 12:19 statistics 5594 lrwxrwxrwx 1 root root 0 14. Okt 12:19 subsystem -> ../../../class/net 5610 -rw-r--r-- 1 root root 4096 14. Okt 12:19 tx_queue_len 5601 -r--r--r-- 1 root root 4096 14. Okt 12:19 type 5593 -rw-r--r-- 1 root root 4096 14. Okt 12:19 uevent 5611 -rw-r--r-- 1 root root 4096 14. Okt 12:19 weight /sys/class/net/ra0/: insgesamt 0 6986 -r--r--r-- 1 root root 4096 14. Okt 11:55 address 6980 -r--r--r-- 1 root root 4096 14. Okt 11:55 addr_len 6987 -r--r--r-- 1 root root 4096 14. Okt 11:55 broadcast 6988 -r--r--r-- 1 root root 4096 14. Okt 11:55 carrier 6989 -r--r--r-- 1 root root 4096 14. Okt 11:55 dormant 6983 -r--r--r-- 1 root root 4096 14. Okt 11:55 features 6992 -rw-r--r-- 1 root root 4096 14. Okt 11:55 flags 6982 -r--r--r-- 1 root root 4096 14. Okt 11:55 ifindex 6981 -r--r--r-- 1 root root 4096 14. Okt 11:55 iflink 6985 -r--r--r-- 1 root root 4096 14. Okt 11:55 link_mode 6991 -rw-r--r-- 1 root root 4096 14. Okt 11:55 mtu 6990 -r--r--r-- 1 root root 4096 14. Okt 11:55 operstate 7019 drwxr-xr-x 2 root root 0 14. Okt 11:55 power 6995 drwxr-xr-x 2 root root 0 14. Okt 11:55 statistics 6979 lrwxrwxrwx 1 root root 0 14. Okt 11:55 subsystem -> ../../../class/net 6993 -rw-r--r-- 1 root root 4096 14. Okt 11:55 tx_queue_len 6984 -r--r--r-- 1 root root 4096 14. Okt 11:55 type 6978 -rw-r--r-- 1 root root 4096 14. Okt 11:55 uevent 6994 -rw-r--r-- 1 root root 4096 14. Okt 11:55 weight I'm no expert for WLAN devices, but shouldn't the ralink directory look totally or at least a bit different? As you see there is no wireless file at all. And it get's even better. Upon checking /proc/net/dev I found out that ra0 appears there. Totally wrong place if you ask me.
(In reply to comment #6) > I've done some more research, and as far as I can tell ralink-rt61 desperately > tries to be a "normal" network card rather then being a wlan card. I've > compared the /sys/class/net/${dev}/ directory of both the ra0 and eth0 > interface. They look practically the same That sucks ass > > I'm no expert for WLAN devices, but shouldn't the ralink directory look totally > or at least a bit different? As you see there is no wireless file at all. And > it get's even better. Upon checking /proc/net/dev I found out that ra0 appears > there. Totally wrong place if you ask me. Every network interface has an entry there, wireless or otherwise.
> > Every network interface has an entry there, wireless or otherwise. > OK. So the only real problem(s) is/are that ralink-rt61 refuses to create an entry in /proc/net/wireless and /sys/class/net/ra0/wireless. Reading through tons of forums posts I came across problems that older versions of the rt61 driver used to produced error msgs like this: "Driver using old /proc/net/wireless support, please fix driver !" Is /proc/net/wirelss deprecated? And if so could it be RaLink kicked out support for it but "forgot" to implement the /sys/class/net stuff?
(In reply to comment #8) > Reading through tons of forums posts I came across problems that older versions > of the rt61 driver used to produced error msgs like this: "Driver using old > /proc/net/wireless support, please fix driver !" Is /proc/net/wirelss > deprecated? And if so could it be RaLink kicked out support for it but "forgot" > to implement the /sys/class/net stuff? > /proc/net/wireless is deprecated, but only if the same stuff can be found in /sys somewhere. That's why we check for both, and currently onlt some ra drivers provide neither.
(In reply to comment #9) > > /proc/net/wireless is deprecated, but only if the same stuff can be found in > /sys somewhere. That's why we check for both, and currently onlt some ra > drivers provide neither. > But wouldn't it be best to implement some "pretend-wireless" option tot the init scripts that just deactivates these tests for such cards?
(In reply to comment #10) > But wouldn't it be best to implement some "pretend-wireless" option tot the > init scripts that just deactivates these tests for such cards? No, it would be best to fix the driver.
(In reply to comment #11) > > No, it would be best to fix the driver. > Sorry. didn't want to sound rude. I just tried to come up with some ideas for workarounds until the driver gets fixed (if it will ever get fixed).
removed from tree, wontfix