[solved] rt73: SIOCSIFFLAGS: Cannot assign requested address

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

dyle71

26-04-2008 12:20:45

After 2 months of searching and trying, I ask for help.

I have an D-Link DWL-G122 C1 (clever me!! (). When I try to startup the wlan0 interface via ifconfig it gives me [code1arbs3ak]# ifconfig wlan0 up
SIOCSIFFLAGS: Cannot assign requested address[/code1arbs3ak]

At the current stage I have these settings

1. I'm using the rt73-cvs-2008042605 driver (from the daily build).

Compilation/Installation is fine. No problems.

2. The driver seems to load properly. No error reported

[code1arbs3ak]# dmesg | grep rt73
rt73: init
rt73: idVendor = 0x7d1, idProduct = 0x3c03
rt73: using permanent MAC addr
rt73: Active MAC addr: 00:00:00:00:00:00
rt73: Local MAC = 00:00:00:00:00:00
usbcore: registered new interface driver rt73[/code1arbs3ak]

Firmware seems to be the latest [code1arbs3ak]# md5sum /lib/firmware/rt73.bin
bd733372ae21a010bf8a5511d7711c2d /lib/firmware/rt73.bin[/code1arbs3ak]


Although MAC 000000000000 confuses me ... ?

I've blacklisted some kernel-drivers as recommended
[code1arbs3ak]# cat /etc/modprobe.d/blacklist | grep rt
blacklist rt2500usb
blacklist rt73usb
blacklist rt2x00usb[/code1arbs3ak] and they don't seem to load [code1arbs3ak]# lsmod | grep rt
rt73 165120 0
firmware_class 9728 1 rt73
parport_pc 31556 0
parport 26220 1 parport_pc
agpgart 22484 1 intel_agp
rtc 13736 0
usbcore 89584 8 rt73,sl811_hcd,usbhid,ohci_hcd,uhci_hcd,usb_storage,ehci_hcd[/code1arbs3ak]

3. I'm using a 2.6.25 kernel
[code1arbs3ak]# uname -a
Linux moghedien 2.6.25-gentoo-r1 #2 SMP Tue Apr 22 21:49:57 CEST 2008 i686 Pentium III (Coppermine) GenuineIntel GNU/Linux[/code1arbs3ak]
This because I spotted that the ralink drivers were updated from 2.6.24.x to 2.6.25 and thought that new drivers would have solved my problem. They didn't.

... and, oh yes, it's a Gentoo system. So the .config is highly modified. Should I post it as well?

4. My WLAN-Router is now completely free and open, since I tried to avoid Auth/Encryption-Problems. I just want to get contact. This failed.

I don't have WEP, WPA or MAC Filtering enabled. This is ok, since I'm at the country side ...

5. Some additional data

[code1arbs3ak]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:04:76:47:32:49
inet addr:192.168.2.167 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::204:76ff:fe47:3249/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1321 errors:0 dropped:0 overruns:0 frame:0
TX packets:1085 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1038289 (1013.9 Kb) TX bytes:155532 (151.8 Kb)
Interrupt:11 Base address:0xc00

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:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

wlan0 Link encap:Ethernet HWaddr 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)

# iwconfig wlan0
wlan0 RT73 WLAN ESSID:"Dyle"
Mode:Managed Frequency=2.412 GHz
RTS thr:off Fragment thr=65534 B
Encryption key:off
Link Quality=0/100 Signal level:-121 dBm Noise level:-143 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
[/code1arbs3ak]

6. As there is no BSSID/AP set, I tried to set it manually

[code1arbs3ak]# iwconfig wlan0 ap 00:01:e3:e2:0d:b7
Error for wireless request "Set AP Address" (8B14) :
SET failed on device wlan0 ; Network is down.[/code1arbs3ak]
which leads me directly to [code1arbs3ak]# ifconfig wlan0 up
SIOCSIFFLAGS: Cannot assign requested address[/code1arbs3ak]

Pluging this *+!@@#$-stick into some Windowz-Maschine works. cry

7. The LEDs on the stick are off. No blinking, no nothing.

8. Yet another issue which puzzles me

[code1arbs3ak]# lsusb
Bus 004 Device 002: ID 07d1:3c03 D-Link System
Bus 004 Device 001: ID 1d6b:0002
Bus 003 Device 001: ID 1d6b:0001
Bus 002 Device 001: ID 1d6b:0001
Bus 001 Device 001: ID 1d6b:0001[/code1arbs3ak]

Looks pretty good. BUT

[code1arbs3ak]# lsusb -v -s 004:002

Bus 004 Device 002: ID 07d1:3c03 D-Link System
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x07d1 D-Link System
idProduct 0x3c03
bcdDevice 0.01
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 300mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
can't get device qualifier: Protocol error
can't get debug descriptor: Protocol error
cannot read device status, Protocol error (71)[/code1arbs3ak]

Gives three troublesome lines at the end ... huh?


I know pretty much input up to here, but I really, really googled and tried a lot to get it working.

What's wrong? Do I miss something? HELP! cry

... and, OH, BTW once running a rmmod - modprobe -v rt73 sequence the module crashed, leaving some relicts in kernel space, freezing my system.

Vern

26-04-2008 17:45:42

Hi dyle71,

A MAC address of all zeroes means that although the operation to get that item from the adapter's EEPROM has been done without an error indication, the actual data was not obtained. All the other symptoms are probably due to the same thing that caused the MAC address failure.

First, make sure there are no collisions i.e. only one instance of one version of the driver is present[code3jqgp1nr]lsmod|egrep ^rt[/code3jqgp1nr]Specifically, if you wish to use the legacy driver, you need to make sure the version shipped with the 2.6.25 is not enabled. If you wish to use the nextgen driver, make sure there are no scripts that load the legacy driver. If the nextgen driver has been compiled into the kernel, the lsmod trick won't show you that it's there. Check your .config file.

Next, just try unplugging the adapter, then plugging it back in.

If that doesn't work, build with debug enabled, then modbprobe with "debug=15" as a parameter, followed immediately with an rmmod. Attach a gzipped copy of /var/log/debug to a posting here, and I'll look at it.

Thanks,

dyle71

28-04-2008 03:55:27

Hello Vern,

Thank you for reply!

Plugging in and out doesn't help.

I also followed your advice, but run into that crash I reported in the first post. Basically, when removing the rt73 module, it sweeps dmesg with lots of
[code1xrkpgiz]BUG: unable to handle kernel paging request at ffffffee
IP: [<c01940e5>]
*pde = 00005067 *pte = 00000000
Oops: 0000 [#25] SMP
Modules linked in: rt73 firmware_class ipv6 snd_pcm_oss snd_mixer_oss snd_maestro3 snd_ac97_codec ac97_bus snd_pcm battery button snd_timer ac thermal parport_pc snd_page_alloc processor parport i2c_piix4 i2c_core yenta_socket 3c59x snd rsrc_nonstatic mii pcmcia_core intel_agp agpgart dcdbas floppy rtc pcspkr tg3 e1000 nfs lockd sunrpc jfs raid10 raid456 async_tx async_memcpy async_xor xor raid1 raid0 dm_bbr dm_snapshot dm_mirror dm_mod scsi_wait_scan pdc_adma sata_mv ata_piix ahci sata_qstor sata_vsc sata_uli sata_sis sata_sx4 sata_nv sata_via sata_svw sata_sil24 sata_sil sata_promise pata_sis libata dock sbp2 ohci1394 ieee1394 sl811_hcd usbhid ohci_hcd uhci_hcd usb_storage ehci_hcd usbcore [last unloaded: rt73]

Pid: 10601, comm: runscript.sh Tainted: G D (2.6.25-gentoo-r1 #3)
EIP: 0060:[<c01940e5>] EFLAGS: 00010282 CPU: 0
EAX: ffffffea EBX: ffffffed ECX: deaa21c4 EDX: 0000000e
ESI: dfba1364 EDI: 081e0830 EBP: deaa21c4 ESP: dfb55ee0
DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process runscript.sh (pid: 10601, ti=dfb55000 task=dee51370 task.ti=dfb55000)
Stack: df187840 d4460b68 df187840 d4460b68 081e0830 c01940b0 c015ef59 df80fea0
d44e9c34 dfb55f2c df187840 081e0830 00000003 c015f022 df187840 00000000
00008000 dfb55f2c c015f05d df80fea0 d44e9c34 c13fdc60 ded013a0 deb35ef0
Call Trace:
[<c01940b0>] <0> [<c015ef59>] <0> [<c015f022>] <0> [<c015f05d>] <0> [<c01520cf>] <0> [<c015f0a3>] <0> [<c015f157>] <0> [<c01046ee>] <0> [<c03f0000>] <0> =======================
Code: ec 08 89 44 24 04 89 14 24 8b 42 0c 8b 68 54 8b 45 08 8b 70 14 89 e8 e8 15 0e 00 00 85 c0 0f 84 5f 01 00 00 8b 46 18 85 c0 74 14 <8b> 78 04 85 ff 74 0d 8b 14 24 0f b7 42 1c a8 02 75 29 eb 3f ff
EIP: [<c01940e5>] SS:ESP 0068:dfb55ee0[/code1xrkpgiz] over and over ...

As there's this "Oops ... SMP" I removed SMP from the kernel and that solved the crash.

But still the driver doesn't work. So I reconfigured the kernel to not contain anything that smells like rt2x00/rt71/rtsomething. I had it set as module and blacklisted them before ... now I'm pretty sure the kernel doesn't know [i1xrkpgiz]antyhing[/i1xrkpgiz] about rt2xx drivers [code1xrkpgiz]# zcat /proc/config.gz | egrep CONFIG_RT[x276]
# CONFIG_RT2X00 is not set[/code1xrkpgiz]

So ... attached you find my debug.gz. It has been made as such
1. device unplugged
2. modprobe -v rt73 debug=15
3. plugged in the device
4. rmmod rt73
5. cp log

Hence, the device is still plugged in when I copied the log, although the driver complains that the device is disconnected a thousand times ... ???

Wired ... should I increase the debug level up to 31 as suggested in the TESTING file, which ships with the driver?

Another question you said [quote1xrkpgiz]Specifically, if you wish to use the legacy driver, ...[/quote1xrkpgiz] What are my chances? I've tried the drivers from the
- RaLink homepage - nada
- Kernel 2.6.24 and Kernel 2.6.25 - nada
- serialmonkey rt73 - ... ?

Is there any other possibilty I can try?

Vern

28-04-2008 20:23:16

Hi dyle71,

Took a quick look at your log. Basically, as soon as we try anything that uses the downloaded firmware, we end up thinking the device is not there. I don't know why.

Does the file /lib/firmware/rt73.bin match *exactly* with the CVS version of rt73.bin? If not, can you copy the CVS version of rt73.bin into /lib/firmware and try again? Alternatively, doing (as root) "make install" copies the firmware file and also creates an alias in /etc/modprobe.d/ralink (2.6 kernels) or /etc/modules.conf (2.4 kernels).

Thanks,

dyle71

29-04-2008 03:14:00

Hi Vern,

Thank you for trying.

However I'm pretty confident, that the firmware file is correct
[code2tzqql44]# find /lib/ -name "rt73.bin"
/lib/firmware/rt73.bin
# md5sum /lib/firmware/rt73.bin rt73-cvs-2008042605/Module/rt73.bin
bd733372ae21a010bf8a5511d7711c2d /lib/firmware/rt73.bin
bd733372ae21a010bf8a5511d7711c2d rt73-cvs-2008042605/Module/rt73.bin
# ls /etc/modprobe.d/
blacklist ndiswrapper pnp-aliases ralink
# cat /etc/modprobe.d/ralink
alias wlan* rt73[/code2tzqql44]

But as you mentioned the /etc/modprobe.d I also looked at the ndiswrapper and come up to a [code2tzqql44]# cat /etc/modprobe.d/ndiswrapper
alias wlan0 ndiswrapper[/code2tzqql44]

Could this mean anything?

... or are there any kernel-switches I'm missing for firmware/wlan functionality? Hence, since this is a Gentoo system I play around with the kernel a lot and things don't have to be as they are on other binary based distros ...

edit should I create another debug-dump? With a hight log-level? Which one?

edit2 is there any other driver possibility for me despite the drivers of the RaLink Homepage, the kernel ones and rt73 of serialmonkey?

Vern

29-04-2008 03:54:47

Hi dyle71,
[code3r5886df]alias wlan0 ndiswrapper[/code3r5886df]Basically says whenever a reference to wlan0 is found, load ndiswapper.[code3r5886df]alias wlan* rt73[/code3r5886df] says whenever you find wlan<anything>, load rt73. Looks like there may be a collision here.

Try getting rid of the alias for ndiswrapper and see what happens.

Thanks,

dyle71

29-04-2008 04:40:53

Ok. I mv'ed the ndiswrapper file away, updated the module-db and rebooted.

No progress (

However, as above I created a debug-dump but this time with debug=31.

Right at end of the dump it states
[code30xicyjp]Apr 29 06:22:40 moghedien rt73: init
Apr 29 06:22:40 moghedien rt73: idVendor = 0x7d1, idProduct = 0x3c03
Apr 29 06:22:42 moghedien rt73: Unstable hardware
Apr 29 06:22:42 moghedien rt73: Failed to load Firmware.
Apr 29 06:22:42 moghedien rt73: probe of 4-1:1.0 failed with error -16
Apr 29 06:22:42 moghedien usbcore: registered new interface driver rt73
Apr 29 06:22:47 moghedien BUG: unable to handle kernel paging request at ffffe800[/code30xicyjp]

And then it starts crashing again, so removing CONFIG_SMP didn't solve the crash issue.

After that my whole ifconfig/iwconfig system is terrible broken. Calling "iwconfig" results in a seg-fault (!!) and when trying to bring the NICs down the kernel hocks up at shutdown, unable to proceed.

*sigh*

Attached the debug.gz.

BTW when modprobe'in rt73 the LEDs on stick remain dumb silent. No flashing, no blinking, no nothing ... I guess they should do *something* ...

dyle71

30-04-2008 09:05:46

Yikes! Got it! shock

It ain't a kernel/driver issue!

The missing blinking of the LEDs made me suspicious. See it's an old Dell C600 which just supports USB 1.1. Therefore I got an PCMCIA Card enabling USB 2.0 for this laptop.

Now, plugging in the stick works, and the kernel detects the stick well. However, power supply is way too insufficient to let the WLAN Stick perform *full* operation.

After I grabbed an active USB Hub which has its own power supply the WLAN stick got enough energy when connected to the Hub, which in turn was connected to the laptop. The LEDs were blinking like on a christmas show, the rt73 driver loaded, got a MAC and I was instantly connected!!! oops

Though ... the kernel/driver combination really messed up my 2.6.25 if the stick malfunctioned, but well ...

It works now!

Thank you, Vern, for your patience.

PS Errr ..... the board changed since my last visit ... uhm ... is there some "[solved]" prefix button/switch arround?

Vern

30-04-2008 20:32:31

Hi dyle71,

Your discovery re. power requirements is good information.

FWIW, I think the driver should work with USB 1.1. I think available power is the pacing requirement.

Good detective work! It seems if I ignore problems long enough, they fix themselves.

Thanks,

dyle71

01-05-2008 05:47:34

[quote3azb6wqv]FWIW, I think the driver should work with USB 1.1.[/quote3azb6wqv]
Yep, maybe. But the stick doesn't [url3azb6wqv]http://www.dlink.de/?go=jN7uAYLx/oIJaWVUDLYZU93ygJVYLelXSNvhLPG3yV3oUo99haltbNlwaaRp6zsoAmu5j3cf/YEOBM7i36XpLE0WuOzR[/url3azb6wqv]
(german site ...)

How can I mark the topic as "[Solved]"?

Starcrasher

01-05-2008 15:48:06

To mark a topic as solved, you need to be the creator of the topic or have privileges. (like administrator and moderators)
If this is the case, simply edit the first post, change the title adding [solved] (or whatever you want) and submit.

Vern

01-05-2008 17:11:39

To mark a topic as solved, you need to be the creator of the topic or have privileges.[/quote1i1sfx6l]Thanks! I've never been able to figure out how to do that.

Are there some directions somewhere you can point me to? After all, being a moderator and all, it might be a good idea if I found out how to do some of that stuff.

IvD

01-05-2008 17:13:52

You should have the "edit" button visible on each post in a thread.
When you edit the first post of a thread you can change the visible subject in the forum.

fatah

02-05-2008 02:25:23

For linux kernel 2.6.25. can you try this one.
last night, i try to use rt73 module from k2wrlz and I've ported to kernel 2.6.25. Due to nature of this module, it will never up, I think. Maybe, because of the interface doesn't has a MAC address before ifup and it can't be triggered with ifup/usb_rtusb_open() before a MAC address is assigned. So, I've changed the flow of the module and you can refer here.

http//fatah.afraid.org/files/rt73-project/