Hi,
I don't know if this will help (as I still can't use my own wireless
adapter on the bifferboard, a D-Link DWL-G122), but it may give some
facts and informations getting toward, I hope, a solution to these
problems.
The DWL-G122 adapter, which I'm using without problems om my laptop
under Ubuntu Ibex, uses the rt73usb driver and also needs, to work
properly, a file containing the firmware, the file "rt73.bin" which
can be easily downloaded under Ubuntu, via apt-get install linux-
firmware (the file is then copied in the directory /lib/firmware/), or
obtained on the Ralink web site, at :
http://www.ralinktech.com/ralink/Home/Support/Linux.html.
So in order to use this adapter on the bifferboard, we need to deal
not only with the rt73usb driver, but also with the rt73.bin firmware
file.
It seems that there are two ways to do that, the first one beeing to
put the rt73.bin file on the root filesystem of the bifferboard (for
example, in the directory /lib/firmware/, as in Ubuntu) and create a
special hotplug rule, and the second beeing to "embed" that file
directly in the kernel.
I didn't try the first one because I don't know anything about
hotplug, so I choosed the second. However, this second way raises some
questions because the rt73.bin file is "proprietary" and should not
(as fas as I understood) be embedded in the kernel due to license
reasons. Nevertheless, I decided to go this way - I was impatient to
see the adapter at work - and I told myself that, one day, I will
learn more on hotplug and try to explore the first way...
So here are the steps I followed to compile the kernel and the root
file system, starting from an already built toolchain via the standard
bb-src-1.4 process.
$ cd openwrt
$ make kernel_menuconfig
----------------------------------------------
Networking support > Networking options > IP: ESP transformation --->
built-in (1)
Networking support > Wireless > Generic IEEE 802.11 Networking Stack
(mac80211) ---> module (2)
Networking support > Wireless > Improved wireless configuration API ---
> module (2)
Networking support > Wireless > Enable LED triggers ---> built-in (3)
Cryptographic API > Deflate compression algorithm ---> built-in (3)
Device Drivers > Generic Driver Options > Userspace firmware loading
support ---> built-in (4)
Device Drivers > Generic Driver Options > Include in-kernel firmware
blobs in kernel binary ---> built-in (4)
Device Drivers > Generic Driver Options > External firmware blobs to
build into the kernel binary ---> rt73.bin (4)
Device Drivers > Generic Driver Options > Firmware blobs root
directory ---> /home/thierry/rt73usb_firmware/ (4)
----------------------------------------------
(1) used to avoid the later "cannot stat ...crypto/aead.ko : No such
file or directory" error during compilation
(2) used to avoid the later " Your >=2.6.27 kernel has CONFIG_MAC80211
disabled, you should have it CONFIG_MAC80211=m if you want to use this
thing" and "Your kernel has CONFIG_CFG80211=y, you should have it
CONFIG_CFG80211=m if you want to use this thing" errors during
compilation
(3) Needed to complete the rt73usb driver configuration
(4) Needed to embed the rt73.bin firmware file in the kernel (of
course, I had previously copied this file into the /home/thierry/
rt73usb_firmware/ directory)
$ make menuconfig
----------------------------------------------
Base system > wireless-tools ---> built-in
Kernel modules > Wireless Drivers > kmod-rt73-usb ---> built-in
----------------------------------------------
$ make V=99
With these config parameters, the compilation process of the kernel
and file system is achieved without problems.
When I boot on the bifferboard with the new kernel and file system,
everything seems to be OK, the adapter being recognized without
problems during the boot sequence.
Everything's also OK when I do :
# cat /proc/net/wireless
and
# ifconfig wlan0 up (the firmware rt73.bin beeing loaded at this
stage)
I can then do :
# iwlist wlan0 scan
which seems to work OK because I can see here my wireless router, but,
10, 30 or 60 seconds later (it depends), the system crashes with a
"Kernel panic - not syncing: Fatal exception in interrupt - Rebooting
in 3 seconds..".
Same problem when I try to do :
# iwconfig wlan0 essid "linksys" mode managed key open
but in this case, the system crashes immediatly.
The error message are, in all cases, like this :
[ 43.705016] Kernel BUG at c011a14f [verbose debug info unavailable]
[ 43.705016] invalid opcode: 0000 [#1]
[ 43.705016] Modules linked in: gpio_proxy i2c_gpio i2c_algo_pcf
i2c_algo_pca i2c_algo_bit i2c_dev i2c_core rt73usb rt2x00ub
[ 43.705016]
[ 43.705016] Pid: 1154, comm: dropbearkey Not tainted (2.6.27.5 #2)
[ 43.705016] EIP: 0060:[<c011a14f>] EFLAGS: 00000217 CPU: 0
[ 43.705016] EAX: c1d9a494 EBX: c1d9a360 ECX: c1d9a490 EDX: c1de13e0
[ 43.705016] ESI: c1dabf6c EDI: c1d95188 EBP: c1cd81a0 ESP: c1dabe4c
[ 43.705016] DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
[ 43.705016] Process dropbearkey (pid: 1154, ti=c1daa000
task=c1d1d0f0 task.ti=c1daa000)
[ 43.705016] Stack: c2862b09 c1d9a000 00000080 c1dabecc c1cd81a0
c286bb1b 00000007 c1dabe88
[ 43.705016] c010beb3 c1dabecc c1d9a360 c1d1d7bc 00000000
c02c52bc c1d38034 01c31859
[ 43.705016] 00000000 00000000 00000080 c010d9dc c1d1d0f0
0110b874 00000400 00400000
[ 43.705016] Call Trace:
[ 43.705016] [<c2862b09>] <0> [<c286bb1b>] <0> [<c010beb3>] <0>
[<c010d9dc>] <0> [<c286be6d>] <0> [<c286c8ba>] <0> [<c285d=
[ 43.705016] Code: 6d fe ff ff 53 9d 5b c3 8b 10 83 e2 fc 8b 4a 14
89 c2 8b 01 eb e3 0f ba 29 00 19 c0 85 c0 74 03 31 c0 c3
[ 43.705016] EIP: [<c011a14f>] SS:ESP 0068:c1dabe4c
[ 43.706685] Kernel panic - not syncing: Fatal exception in
interrupt
As dropbear is mentionned here, I tried to kill the corresponding
process before doing "ifconfig wlan0 up", but I still have the same
problem (system crash after iwconfig), with this time an error like
this :
[ 310.598642] Kernel BUG at c011a14f [verbose debug info unavailable]
[ 310.598642] invalid opcode: 0000 [#1]
[ 310.598642] Modules linked in: gpio_proxy i2c_gpio i2c_algo_pcf
i2c_algo_pca i2c_algo_bit i2c_dev i2c_core rt73usb rt2x00ub
[ 310.598642]
[ 310.598642] Pid: 0, comm: swapper Not tainted (2.6.27.5 #2)
[ 310.598642] EIP: 0060:[<c011a14f>] EFLAGS: 00000217 CPU: 0
[ 310.598642] EAX: c1d98494 EBX: c1d98360 ECX: c1d98490 EDX: c1de23e0
[ 310.598642] ESI: c02a1f68 EDI: c1d93408 EBP: c1cca1a0 ESP: c02a1e48
[ 310.598642] DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
[ 310.598642] Process swapper (pid: 0, ti=c02a0000 task=c0280300
task.ti=c02a0000)
[ 310.598642] Stack: c2862b09 c1d98000 00000080 c02a1ec8 c1cca1a0
c286bb1b 00000097 c0120338
[ 310.598642] 00002a66 c02a1ec8 c1d98360 00000082 00000000
00000082 c1cf0034 000979c8
[ 310.598642] c02845c0 00000000 00000080 000979c8 c02a1eb8
000979c8 c02845c0 c02a1ee4
[ 310.598642] Call Trace:
[ 310.598642] [<c2862b09>] <0> [<c286bb1b>] <0> [<c0120338>] <0>
[<c286be6d>] <0> [<c286c8ba>] <0> [<c285df8d>] <0> [<c0112=
[ 310.598642] Code: 6d fe ff ff 53 9d 5b c3 8b 10 83 e2 fc 8b 4a 14
89 c2 8b 01 eb e3 0f ba 29 00 19 c0 85 c0 74 03 31 c0 c3
[ 310.598642] EIP: [<c011a14f>] SS:ESP 0068:c02a1e48
[ 310.599702] Kernel panic - not syncing: Fatal exception in
interrupt
I did not investigate further, as I don't know anything about kernel
programming, and more generaly in linux programming. It would be
interesting to know if other people have the same problems, using
similar or other types of wireless adaptaters, so we can see if the
problem is linked to this particular driver or to another reason...
Greetings,
Thierry