Trouble loading rt73

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

caffeine

20-09-2008 06:06:52

Just got an Edimax EW-7318USg. I downloaded the daily cvs tarball for rt73 and made the driver, however, insmodding isn't working

[codespl22os1]# insmod ./rt73.ko
insmod: error inserting './rt73.ko': -1 Unknown symbol in module[/codespl22os1]

Googled and found viewtopic.php?f=8&t=4134&start=0&st=0&sk=t&sd=a which says

[quotespl22os1]Is wireless support compiled into your kernel?

linux/net/core/wireless.c defines the function wireless_send_event() .
CONFIG_NET_WIRELESS must be defined as "y"(yes) for that to build.[/quotespl22os1]

Yet AFAIK, wireless support is compiled into my kernel

[codespl22os1]# Wireless
#
CONFIG_CFG80211=y
CONFIG_NL80211=y
CONFIG_WIRELESS_EXT=y
CONFIG_MAC80211=y[/codespl22os1]

and the function wireless_send_event() appears to be exported

[codespl22os1]# grep -i wireless /boot/System.map-2.6.26
c039d000 t quirk_logitech_wireless
c03f1d20 t wireless_show
c0472a30 t wireless_nlevent_process
c0472a70 T wireless_send_event
c0472d40 T wireless_spy_update
c0473790 t wireless_seq_open
c04737b0 t wireless_seq_show
c047a6d0 t ieee80211_get_wireless_stats
c04f1100 r wireless_seq_fops
c04f116c r wireless_seq_ops
c05977ec r __ksymtab_wireless_spy_update
c0597814 r __ksymtab_wireless_send_event
c059cbc8 r __kcrctab_wireless_spy_update
c059cbdc r __kcrctab_wireless_send_event
c05af99b r __kstrtab_wireless_spy_update
c05afa01 r __kstrtab_wireless_send_event
c05d8858 d wireless_group
c05d8a20 d wireless_attrs
c05ddaa0 d wireless_nlevent_tasklet
c061ebe0 t wireless_nlevent_init
c062ad24 t __initcall_wireless_nlevent_init4
c067da94 b wireless_nlevent_queue[/codespl22os1]

lsmod output

[codespl22os1]# lsmod
Module Size Used by
bluetooth 51556 0
ieee80211 45932 0
ieee80211_crypt 5508 1 ieee80211
usbnet 15496 0
iptable_filter 2816 1
ip_tables 10896 1 iptable_filter
x_tables 15108 1 ip_tables
ipv6 247236 36
nls_iso8859_1 4096 1
nls_cp437 5760 1
i915 29312 0
i810 17664 0
i2c_i801 8464 0
psmouse 36624 0
evdev 9216 4
serio_raw 5380 0
pcspkr 2688 0
i2c_core 22292 1 i2c_i801
thermal 15004 0
processor 31932 1 thermal
thermal_sys 10664 2 thermal,processor
button 6160 0
uhci_hcd 22028 0
dcdbas 6944 0[/codespl22os1]

What else needs to be in the kernel for rt73 to load?

Thanks!

Vern

20-09-2008 16:35:11

Hi caffeine,

What does "depmod -ae rt73.ko" say? What happens if you try modprobe instead of insmod?

Thanks,

caffeine

20-09-2008 17:23:09

Hi Vern,

depmod -ae ./rt73.ko didn't have any output at all, which is good.

How can you load a module a downloaded module with modprobe? I thought modprobe specifically loaded stuff from /lib/modules/<version>/<tree>? Doesn't modprobe use insmod to do the actual work of loading modules?

I looked at "man insmod" and apparently, errors are logged! Looked in /var/log/messages, and found

rt73 Unknown symbol request_firmware

So now I need to know what module to load to provide request_firmware(). Back to Google, but if anybody knows the quick answer offhand, I'd appreciate it.

Progress!

caffeine

20-09-2008 17:29:40

Even more progress!

request_firmware is provided by module firmware_class.

"modprobe -a firmware_class" did the trick. I know have the rt73 module loaded.

I'm as giddy as a schoolgirl! lol

Vern

20-09-2008 21:05:59

Hi caffeine,

depmod should have picked up the firmware dependency. Have you done a "make modules_install" as root?

Thanks,

caffeine

20-09-2008 21:46:14

Hi Vern,

I definitely did do make modules/make modules_install. I clearly remember because I just compiled 2.6.26 a few days ago (I was trying to get my wnic configured; this was before I found serialmonkey). But I just did made modules/make modules_install again just now and still got

# depmod -ae ./rt73.ko
#


Unfortunately, the module just segfaulted and my hardware stopped working. I think I'm going to have to reboot. Unfortunately, my girlfriend is working on her physics lab report, so I'll have to wait until she's done. ;)

Everything was going fine. I just read about airdump and was capturing IVs. I then read that aircrack can do its job while airdump is still dumping IVs... sort of a parallel capture/crack thing.

So I ran aircrack on the .cap file, and soon afterwards airdump showed no more neworks on the screen. I did a

iwlist wlan0 scan

and got back "no networks". Then I saw the dreaded

[code2gs8bguo]kernel: Code: 00 00 89 44 24 14 8b 81 9c 00 00 00 89 5c 24 0c 89 44 24 10 8b 41 50 89 54 24 04 c7 04 24 68 8d 58 c0 89 44 24 08 e8 23 e5 0c 00 <0f> 0b eb fe b8 b8 8c 55 c0 eb ae 8d 74 26 00 8d bc 27 00 00 00

Message from syslogd@satan at Sat Sep 20 17:08:20 2008 ...
satan kernel: =======================

Message from syslogd@satan at Sat Sep 20 17:08:20 2008 ...
satan kernel: EIP: [<c03df69a>] skb_put+0x8a/0xa0 SS:ESP 0068:df84df0c[/code2gs8bguo]

Since I *think* aircrack just does statistics and doesn't access the card in any way, I think the timing of this was just coincidental. I don't think the segfault had anything to do with aircrack or running it in parallel with airdump.

In any event, I recall seeing a webpage that outlines how you can help developers track down problems with these drivers by running a debug version of the driver and what information you should send. I forget where it was, but I'm sure I can find it again...

I wish she'd hurry up with that lab report! )

caffeine

20-09-2008 21:59:56

Just saw this

viewtopic.php?f=8&t=4989

but there was no confirmation. Are there known issues with the rt73 legacy driver and preempt kernels?

Vern

21-09-2008 17:04:06

Hi caffeine,

As you say, silence from depmod is good.

After you've cd'ed to the Module subdirectory, done "make" or "make all", followed by one of "make modules" or "make modules_install" (as root), what does "/sbin/modinfo rt73" say?

If all that is OK, and you still segfault, what happens if you try it with a non- preempt kernel?

Thanks,