rt2500pci / rt61pci

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

CTC

18-04-2011 13:11:49

I am using the rt2500pci / rt61pci driver in combination with Linux distribution 2.6.37.4
My hardware consists of a Xilinx FPGA board (ML410) with embedded Linux (PetaLinux) running on the Xilinx MicroBlaze softcore processor.

The system identifies the RT2561 module, but returns a list of unknown symbols (see below).
Afterwards, it "correctly" enables the device and everything seems to be properly configured.
However, it cannot associate with the access point and it freezes operation after entering
#ifconfig wlan0 up.

Q1 The unknown symbols are EXPORTED (e.g. EXPORT_SYMBOL_GPL(rt2x00lib_txdone) in rt2x00dev.c) and
MODULE_LICENSE(GPL) is also present. I see no reason, why they are unknown.
Can someone explain, why they still returned as unknown symbols ?
How can this be solved ?

Q2 I suspect that this is also the reason that no association can be made with the access point
(Off course ESSID, CHANNEL, rate and key OFF have been synchronized).

~#lspci
0103.0 Network controller Ralink corp. RT2561/RT61 rev B 802.11g
~ # modprobe rt61pci
rt61pci Unknown symbol rt2x00lib_txdone (err 0)
rt61pci Unknown symbol rt2x00mac_configure_filter (err 0)
rt61pci Unknown symbol rt2x00pci_regbusy_read (err 0)
rt61pci Unknown symbol rt2x00mac_add_interface (err 0)
rt61pci Unknown symbol rt2x00pci_initialize (err 0)
rt61pci Unknown symbol rt2x00mac_start (err 0)
rt61pci Unknown symbol rt2x00pci_rxdone (err 0)
rt61pci Unknown symbol rt2x00lib_txdone_noinfo (err 0)
rt61pci Unknown symbol rt2x00mac_tx (err 0)
rt61pci Unknown symbol rt2x00mac_remove_interface (err 0)
rt61pci Unknown symbol rt2x00mac_bss_info_changed (err 0)
rt61pci Unknown symbol rt2x00queue_get_entry (err 0)
rt61pci Unknown symbol rt2x00queue_get_queue (err 0)
rt61pci Unknown symbol rt2x00mac_stop (err 0)
rt61pci Unknown symbol rt2x00lib_beacondone (err 0)
rt61pci Unknown symbol rt2x00mac_sw_scan_complete (err 0)
rt61pci Unknown symbol rt2x00pci_remove (err 0)
rt61pci Unknown symbol rt2x00mac_conf_tx (err 0)
rt61pci Unknown symbol rt2x00mac_get_stats (err 0)
rt61pci Unknown symbol rt2x00pci_uninitialize (err 0)
rt61pci Unknown symbol rt2x00pci_probe (err 0)
rt61pci Unknown symbol rt2x00mac_sw_scan_start (err 0)
rt61pci Unknown symbol rt2x00mac_set_key (err 0)
rt61pci Unknown symbol rt2x00mac_rfkill_poll (err 0)
rt61pci Unknown symbol rt2x00mac_config (err 0)
rt61pci 00000103.0 enabling device (0000 -> 0002)
phy0 -> rt61pci_validate_eeprom EEPROM recovery - NIC 0xff80
phy0 -> rt2x00_set_chip Info - Chipset detected - rt 2561, rf 0003, rev 000c.
ieee80211 phy0 Selected rate control algorithm 'minstrel_ht'
Registered led device rt61pci-phy0radio
Registered led device rt61pci-phy0assoc

IvD

18-04-2011 13:17:25

How did you install rt61pci?
It seems like you only installed the rt61pci.ko file, and none of the library rt2x00 modules on which it depends.

CTC

18-04-2011 15:40:05

Thx Ivo for your quick reply,

The rt2x00 driver is part of the PetaLinux release.
It has been build using the following Makefile

rt2x00lib-y += rt2x00dev.o
rt2x00lib-y += rt2x00mac.o
rt2x00lib-y += rt2x00config.o
rt2x00lib-y += rt2x00queue.o
rt2x00lib-y += rt2x00link.o
rt2x00lib-$(CONFIG_RT2X00_LIB_DEBUGFS) += rt2x00debug.o
rt2x00lib-$(CONFIG_RT2X00_LIB_CRYPTO) += rt2x00crypto.o
rt2x00lib-$(CONFIG_RT2X00_LIB_FIRMWARE) += rt2x00firmware.o
rt2x00lib-$(CONFIG_RT2X00_LIB_HT) += rt2x00ht.0

obj-$(CONFIG_RT2X00_LIB) += rt2x00lib.o
obj-$(CONFIG_RT2X00_LIB_PCI) += rt2x00pci.o
obj-$(CONFIG_RT2X00_LIB_SOC) += rt2x00soc.o
obj-$(CONFIG_RT2X00_LIB_USB) += rt2x00usb.o
obj-$(CONFIG_RT2800_LIB) += rt2800lib.o
obj-$(CONFIG_RT2400PCI) += rt2400pci.o
obj-$(CONFIG_RT2500PCI) += rt2500pci.o
obj-$(CONFIG_RT61PCI) += rt61pci.o
obj-$(CONFIG_RT2800PCI) += rt2800pci.o
obj-$(CONFIG_RT2500USB) += rt2500usb.o
obj-$(CONFIG_RT73USB) += rt73usb.o
obj-$(CONFIG_RT2800USB) += rt2800usb.o

Do I need additional actions for the installation ?

Q I could not find MODULE_LICENSE("GPL") in rt2x00lib.
Has MODULE_LICENSE("GPL") been correctly implemented in rt2x00lib ?

IvD

18-04-2011 16:33:03

Before modprobing rt61pci, have you run "depmod -a"?
Or can you try modprobing the following modules (in this exact order)
- rt2x00lib
- rt2x00pci
- rt61pci
What is the output of[code2svdcn6y]modinfo rt2x00lib | grep license[/code2svdcn6y]

CTC

19-04-2011 07:31:52

Thx, below is the result of the modprobe using the exact sequence you mentioned

Findings
1. The system does not stall in case the access point has been switched off before setting up the connection.
2. The wireless card does not associate with the access point.
3. The textual information returned does not comprise link quality, signal + noise level, etc.
4. $modinfo rt2x00lib | grep license returns
-bash modinfo command not found
I searched for the text string 'license' in the rt2x00lib*.* files.
It detected 'License' in the header of rt2x00lib.h and in the corresponding .ko and .o file
5. It seems that the problem occurs during connection setup.

Q Do you have any suggestions how (and where) to proceed before using a kernel debugger ?
Many thx for your support.

~ #lspci
0000.0 Host bridge Xilinx Corporation Unknown device 0300 (rev 1a)
0001.0 Multimedia audio controller ALi Corporation M5451 PCI AC-Link Controller Audio Device (rev 02)
0002.0 ISA bridge ALi Corporation M1533/M1535/M1543 PCI to ISA Bridge [Aladdin IV/V/V+]
0003.0 Modem ALi Corporation M5457 AC'97 Modem Controller
0009.0 PCI bridge Texas Instruments PCI2250 PCI-to-PCI Bridge (rev 02)
000c.0 Non-VGA unclassified device ALi Corporation M7101 Power Management Controller [PMU]
000f.0 USB Controller ALi Corporation USB 1.1 Controller (rev 03)
0103.0 Network controller Ralink corp. RT2561/RT61 rev B 802.11g
~ # modprobe rt2x00lib
~ # lsmod
rt2x00lib 29955 0 - Live 0xe0076000
~ # modprobe rt2x00pci
~ # lsmod
rt2x00pci 3706 0 - Live 0xe00a4000
rt2x00lib 29955 1 rt2x00pci, Live 0xe0076000
~ # modprobe rt61pci
rt61pci 00000103.0 enabling device (0000 -> 0002)
phy0 -> rt61pci_validate_eeprom EEPROM recovery - NIC 0xff80
phy0 -> rt2x00_set_chip Info - Chipset detected - rt 2561, rf 0003, rev 000c.
ieee80211 phy0 Selected rate control algorithm 'minstrel_ht'
Registered led device rt61pci-phy0radio
Registered led device rt61pci-phy0assoc
~ # lsmod
rt61pci 26972 0 - Live 0xe00b6000
rt2x00pci 3706 1 rt61pci, Live 0xe00a4000
rt2x00lib 29955 2 rt61pci,rt2x00pci, Live 0xe0076000
~ # iwconfig
lo no wireless extensions.

eth0 no wireless extensions.

wlan0 IEEE 802.11bg ESSIDoff/any
ModeManaged Access Point Not-Associated
Encryption keyoff
Power Managementoff

~ # iwconfig wlan0 essid CTC
~ # iwconfig wlan0 channel 6
~ # iwconfig wlan0 rate 54M
~ # iwconfig wlan0 key off
~ # iwconfig
lo no wireless extensions.

eth0 no wireless extensions.

wlan0 IEEE 802.11bg ESSID"CTC"
ModeManaged Frequency2.437 GHz Access Point Not-Associated
Encryption keyoff
Power Managementoff

~ # ifconfig wlan0 192.168.2.2 up
phy0 -> rt2x00lib_request_firmware Info - Loading firmware file 'rt2561.bin'.
phy0 -> rt2x00lib_request_firmware Info - Firmware detected - version 0.8.
phy0 -> rt2x00lib_request_firmware Info - Firmware checked - FW_OK
phy0 -> rt2x00lib_load_firmware Info - Firmware loaded, retval = 0.
ieee80211 phy0 device now idle
phy0 -> rt2x00mac_conf_tx Info - Configured TX queue 0 - CWmin 3, CWmax 4, Aifs 2, TXop 102.
phy0 -> rt2x00mac_conf_tx Info - Configured TX queue 1 - CWmin 4, CWmax 5, Aifs 2, TXop 188.
phy0 -> rt2x00mac_conf_tx Info - Configured TX queue 2 - CWmin 5, CWmax 10, Aifs 3, TXop 0.
phy0 -> rt2x00mac_conf_tx Info - Configured TX queue 3 - CWmin 5, CWmax 10, Aifs 7, TXop 0.
ieee80211 phy0 device no longer idle - scanning
~ # ieee80211 phy0 device now idle
iwconfig
lo no wireless extensions.

eth0 no wireless extensions.

wlan0 IEEE 802.11bg ESSID"CTC"
ModeManaged Frequency2.437 GHz Access Point Not-Associated
Encryption keyoff
Power Managementoff

~ # ping 192.168.2.25
PING 192.168.2.25 (192.168.2.25) 56 data bytes
<Here I interrupted the PING>
--- 192.168.2.25 ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss
~ # <After a few seconds, the system stalls>

IvD

19-04-2011 19:29:47

For associating your client to the AP, you must use the "iwconfig ap" command, with the correct BSSID, it would be more useful to use tools like wpa_supplicant though.