rt73 - ARM9: Firmware not load.

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

k_dhinakar

12-11-2008 09:35:58

Hi,
I've an ARM9 based i.MX27ADS board, running linux 2.6.22.6 over it. Im trying to bring up support for D-Link DWL-110(USB WiFi adaptor). This model has rt73 chipset so I downloaded rt73-cvs-2008110923 and cross compiled it for ARM9. Everything goes fine till I insmod the module. But when I try to "ifconfig wlan0 up" it reports "Firmware not load".

Ofcourse my kernel is buit with CONFIG_FW_LOADER support. And I've tried placing the firmware file in "/lib/firmware" , "/usr/lib/hotplug/firmware" and "/lib/firmware/2.6.22.6/", but the result is same.

Here is the debug print.
[code1tg9jrhx]
mx27# ifconfig wlan0 up
rt73: driver version - 1.0.3.6 CVS
rt73: Firmware not load
SIOCSIFFLAGS: Input/output error
mx27# rt73: Failed to request_firmware. Check your firmware file location
rt73: Failed to load Firmware.
rt73: probe of 1-1:1.0 failed with error -2
[/code1tg9jrhx]

Here is the dmesg output.
[code1tg9jrhx]
mx27# dmesg
usb 1-1: new full speed USB device using fsl-ehci and address 4
usb 1-1: not running at top speed; connect to a high speed hub
usb 1-1: configuration #1 chosen from 1 choice
rt73: idVendor = 0x7d1, idProduct = 0x3c07
rt73: driver version - 1.0.3.6 CVS
rt73: Firmware not load
rt73: Failed to request_firmware. Check your firmware file location
rt73: Failed to load Firmware.
rt73: probe of 1-1:1.0 failed with error -2
[/code1tg9jrhx]

And also any following ifconfig results in segfault.

I pretty much know, administrators for this forum asked not to ask this Question here. But I had no other go.

Regards
'dhina'

Vern

12-11-2008 17:44:15

Hi 'dhina',

You might try two things

1. make sure you've done a "depmod -ae".
2. Load the module using modprobe instead of insmod.

The reason is this thing needs the firmware loader module loaded to work.

Thanks,

k_dhinakar

14-11-2008 05:33:33

Hi,
I did issue depmod and modprobe. But still it is not working. Here is what I did.

1. Compiled firmware_class support as kernel built-in module.
2. Copied rt73.ko to /lib/module/2.6.22.6/extra/
3. Copied the rt73.bin to /lib/firmware/
4.Copied rt73sta.dat to etc/Wireless/RT73STA/
5.Ran depmod -a
6.Ran modprobe rt73

After setting thing up, I try to bring up wlan0, which is giving the problem
[codejytsbk8n]
rt73: driver version - 1.0.3.6 CVS
rt73: Firmware not load
[/codejytsbk8n]

Im left with no clues about what is going wrong.


Thanks,
dhina.

Vern

14-11-2008 16:00:25

Try doing "lsmod|egrep rt" after doing the modprobe. Does a module named "firmware_class" show up in the resulting list?

If not, something's wrong with firmware loading support in you system.

If it does show up, then try "egrep rt73 /var/log/kern.log" and see if any messages show up that might provide a hint.

If nothing results from that, then rebuild the driver, run with debug enabled, and attach a gzipped copy of /var/log/debug to a post here.

Thanks,

k_dhinakar

17-11-2008 13:52:21

Vern,
[quote3d19gbg2]Try doing "lsmod|egrep rt" after doing the modprobe. Does a module named "firmware_class" show up in the resulting list?[/quote3d19gbg2]
I've selected firmware_class as built-in and not as module, Im sure its built-in to kernel. So there is Firmware loading support in my system.

There are no problems when I insmod rt73. But when I plug USB-WiFi dongle . USB subsystem detects and probes it. As it probes, "request_firmware" method of firmware_class driver is called by rt73 which fails ultimately. After 1minute timeout it throws the following messages.
[code3d19gbg2]
rt73: Failed to request_firmware. Check your firmware file location
rt73: Failed to load Firmware.
rt73: probe of 1-1:1.0 failed with error -2
[/code3d19gbg2]

Meanwhile before 1min timeout if I try "ifconfig wlan0 up",I get
[code3d19gbg2]
rt73: driver version - 1.0.3.6 CVS
rt73: Firmware not load
[/code3d19gbg2]

Here is the full dmesg output.
[code3d19gbg2]
NET: Registered protocol family 23
rt73: init
bus usb: add driver rt73
usbcore: registered new interface driver rt73
usb 1-1: new full speed USB device using fsl-ehci and address 2
usb 1-1: not running at top speed; connect to a high speed hub
DEV: registering device: ID = '1-1'
bus usb: add device 1-1
usb: Matched Device 1-1 with Driver usb
usb: Probing driver usb with device 1-1
DEV: registering device: ID = 'usbdev1.2_ep00'
usb 1-1: configuration #1 chosen from 1 choice
DEV: registering device: ID = '1-1:1.0'
bus usb: add device 1-1:1.0
usb: Matched Device 1-1:1.0 with Driver rt73
usb: Probing driver rt73 with device 1-1:1.0
rt73: idVendor = 0x7d1, idProduct = 0x3c07
DEV: registering device: ID = 'wlan0'
DEV: registering device: ID = '1-1'
rt73: driver version - 1.0.3.6 CVS
rt73: Firmware not load
[/code3d19gbg2]

I have no idea where Im going wrong. Ping me if you have got some clues.

Regards,
dhina cry

Vern

18-11-2008 01:45:31

Hi dhina,
[code1vqzukog]rt73: probe of 1-1:1.0 failed with error -2[/code1vqzukog]means the firmware file can't be found (see include/asm-generic/errno-base.h in your kernel source tree. Are you super-duper sure that the file /lib/firmware/rt73.bin exists and is non-null? Have you done "make modules" as root? If so, all I can think of right now is to double-check your firmware loading support.

Thanks,

k_dhinakar

18-11-2008 13:03:14

Vern,
Eureka!!! I got it working!!! But few problems yet.

The problem is with location of firmware file. As per my rootfs, path for firmware file is /usr/lib/hotplug/firmware. But placing firmware file in this path alone doesn't help, for the firmware to be loaded, script named "firmware.agent" in /etc/hotplug directory has to be run mannually, after pluging in the WiFi dongle.
Whereas in desktop enviroinmets, this script runs automatically. Now the question is; Who has to invoke the script?

Regards,
dhina