rt2x00 driver trying to use incorrect chipset...?

Live forum: http://rt2x00.serialmonkey.com/viewtopic.php?t=5046

Roots

18-10-2008 04:46:50

I've just installed a fresh Debian Lenny (testing) system with a 2.6.26-amd64 kernel. I bought an Edimax EW-7128G (PCI card), which according to your hardware list[/url3gyet0uh] has the rt2500 chipset. Wireless unfortunately did not work out of the box even though the rt2x00 driver is in my kernel. This card does work properly in Windows, so its not a hardware issue. I saw the rt2x00 modules present already in my system

[code3gyet0uh]
$ lsmod
......
rt61pci 27136 0
rt2x00pci 13056 1 rt61pci
rt2x00lib 30208 2 rt61pci,rt2x00pci
.....
[/code3gyet0uh]

I was confused why the rt61pci module was active and not the rt2500 module. I took a look at lspci and to my surprise, it listed the network controller as RaLink RT2561/RT61. Maybe I have a newer model of this product with a different chipset?

[code3gyet0uh]
$ lspci | grep Ra
07:00.0 Network controller: RaLink RT2561/RT61 802.11g PCI
[/code3gyet0uh]


I've tried playing around with various things but I have not been able to get my wireless to work. I do see the wireless devices (wlan0 and wmaster0) in ifconfig and iwconfig

[code3gyet0uh]
# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:1f:d0:24:aa:f7
inet addr:192.168.2.114 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::21f:d0ff:fe24:aaf7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:731 errors:0 dropped:699114090 overruns:0 frame:0
TX packets:664 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:878399 (857.8 KiB) TX bytes:101548 (99.1 KiB)
Interrupt:249 Base address:0x4000

eth1 Link encap:Ethernet HWaddr 00:1f:d0:24:ab:17
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:702639656 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:248 Base address:0x6000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 B) TX bytes:560 (560.0 B)

wlan0 Link encap:Ethernet HWaddr 00:1f:1f:1f:cf:c7
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

wmaster0 Link encap:UNSPEC HWaddr 00-1F-1F-1F-CF-C7-00-00-00-00-00-00-00-00-00-00
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
[/code3gyet0uh]

[code3gyet0uh]
# iwconfig
lo no wireless extensions.

eth0 no wireless extensions.

eth1 no wireless extensions.

wmaster0 no wireless extensions.

wlan0 IEEE 802.11 ESSID:"eton"
Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
Tx-Power=0 dBm
Retry min limit:7 RTS thr:off Fragment thr=2352 B
Encryption key:46C7-9D7B-6C
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
[/code3gyet0uh]

I have my /etc/network/interfaces file setup correctly. But when I try to use dhcp to connect to the wireless network I get nothing but some esoteric error messages.

[code3gyet0uh]
# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

iface wlan0 inet dhcp
wireless-key ************
wireless-essid eton

auto wlan0
[/code3gyet0uh]

[code3gyet0uh]
# dhclient wlan0
Internet Systems Consortium DHCP Client V3.1.1
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

wmaster0: unknown hardware address type 801
SIOCSIFFLAGS: No such file or directory
SIOCSIFFLAGS: No such file or directory
wmaster0: unknown hardware address type 801
Listening on LPF/wlan0/00:1f:1f:1f:cf:c7
Sending on LPF/wlan0/00:1f:1f:1f:cf:c7
Sending on Socket/fallback
receive_packet failed on wlan0: Network is down
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 4
send_packet: Network is down
[/code3gyet0uh]

I took a look at dmesg and saw something that concerned me. The driver is requesting the firmware but is unable to access it. Could it be because it really [i3gyet0uh]should[/i3gyet0uh] be accessing rt2500 firmware and not rt61???

[code3gyet0uh]
$ dmesg
.....
[ 13.894335] firmware: requesting rt2561s.bin
[ 13.934334] phy0 -> rt2x00lib_request_firmware: Error - Failed to request Firmware.
[ 13.934334] firmware: requesting rt2561s.bin
[ 13.942334] phy0 -> rt2x00lib_request_firmware: Error - Failed to request Firmware.
.....
[ 29.786206] firmware: requesting rt2561s.bin
[ 29.788451] phy0 -> rt2x00lib_request_firmware: Error - Failed to request Firmware.
.....
[/code3gyet0uh]



So that's about as far as I've gotten on my own. Is this really a problem with the rt2x00 driver referencing the wrong chipset for my wireless card? If so, how can I prevent it from doing this and tell it to access the proper rt2500 chipset instead? If this isn't the problem, why does my wireless refuse to work? Thanks for any help you can give. I really appreciate the work you guys do and the fact that you give support on top of it! D

IvD

18-10-2008 08:35:33

Well the rt61pci driver which is loading would be the correct one.
It tells you it is failing on loading the firmware, that is one very big hint about something you probably forget to do install the firmware

Roots

18-10-2008 16:29:38

Cool, yeah that fixes it. I didn't realize that the firmware was not included in the kernel (because its non-free software). Once I installed the firmware-ralink package in Debian everything worked like a charm. D