Kernel: v2.6.37_TI81XXPSP_04.04.00.02.patch1
The USB wireless card: EDIMAX EW-7711UTn
And the driver is from the kernel “drivers/net/wireless/rt2x00”, the firmware is from http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git
The driver could work. But if we plug out the wireless card, the system will hang up, and did not give any response.
Here are the steps to make the phenomenon reappear:
1. print the kernel debug information to stdout "echo 9 9 9 9 > /proc/sys/kernel/printk"
2. load the driver: "modprobe rt2800usb"
3. plug in the USB wireless card.
4. bring up the wlan0 "ifconfig wlan0 up"
5. plug out the USB wireless card.
6. System hangs up
Here are the outputs:
/home/kylin # ifconfig
/home/kylin # echo "9 9 9 9" > /proc/sys/kernel/printk
/home/kylin # modprobe rt2800usb
usbcore: registered new interface driver rt2800usb
/home/kylin # hub 1-1:1.0: state 7 ports 2 chg 0000 evt 0004
hub 1-1:1.0: port 2, status 0101, change 0001, 12 Mb/s
hub 1-1:1.0: debounce: port 2: total 100ms stable 100ms status 0x101
hub 1-1:1.0: port 2 not reset yet, waiting 10ms
usb 1-1.2: new high speed USB device using musb-hdrc and address 3
hub 1-1:1.0: port 2 not reset yet, waiting 10ms
usb 1-1.2: default language 0x0409
usb 1-1.2: udev 3, busnum 1, minor = 2
usb 1-1.2: New USB device found, idVendor=7392, idProduct=7711
usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1.2: Product: 802.11 n WLAN
usb 1-1.2: Manufacturer: Ralink
usb 1-1.2: SerialNumber: 1.0
usb 1-1.2: usb_probe_device
usb 1-1.2: configuration #1 chosen from 1 choice
usb 1-1.2: adding 1-1.2:1.0 (config #1, interface 0)
rt2800usb 1-1.2:1.0: usb_probe_interface
rt2800usb 1-1.2:1.0: usb_probe_interface - got id
phy0 -> rt2x00_set_chip: Info - Chipset detected - rt: 3070, rf: 0005, rev: 0200.
ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
Registered led device: rt2800usb-phy0::radio
Registered led device: rt2800usb-phy0::assoc
Registered led device: rt2800usb-phy0::quality
drivers/usb/core/inode.c: creating file '003'
hub 1-1:1.0: state 7 ports 2 chg 0000 evt 0004
/home/kylin # ifconfig
/home/kylin # ifconfig wlan0 up
phy0 -> rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin'.
phy0 -> rt2x00lib_request_firmware: Info - Firmware detected - version: 0.29.
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.
/home/kylin # ifconfig
wlan0 Link encap:Ethernet HWaddr 00:1F:1F:4A:B8:44
UP 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)
/home/kylin # musb-hdrc musb-hdrc.0: Data toggle same as previous (=0) on ep2
hub 1-1:1.0: state 7 ports 2 chg 0000 evt 0004
hub 1-1:1.0: port 2, status 0100, change 0001, 12 Mb/s
usb 1-1.2: USB disconnect, address 3
usb 1-1.2: unregistering device
usb 1-1.2: unregistering interface 1-1.2:1.0
musb-hdrc musb-hdrc.0: shutdown urb d2b35f00 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d2b35a00 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d2b35d80 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d2b35b00 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d2b35980 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d2b35100 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d2b35300 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d2b35d00 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d2b35b80 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d33c9a00 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d33c9980 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d33c9880 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d33c9380 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d33c9900 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d33c9f00 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d33c9800 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d33c9d00 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d32d4d80 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d32d4f00 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d2b35280 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d2b35580 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d2b35800 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d2b35e80 ep1in-bulk
musb-hdrc musb-hdrc.0: shutdown urb d2b35480 ep1in-bulk
And if I don't bring up the wlan0 "ifconfig wlan0 up", and pluging out the USB wireless card, the system does not hangs up, it works fine.
/home/kylin # hub 1-1:1.0: state 7 ports 2 chg 0000 evt 0004 hub 1-1:1.0: port 2, status 0100, change 0001, 12 Mb/s usb 1-1.2: USB disconnect, address 4 usb 1-1.2: unregistering device usb 1-1.2: unregistering interface 1-1.2:1.0 usb 1-1.2: usb_disable_device nuking all URBs hub 1-1:1.0: debounce: port 2: total 100ms stable 100ms status 0x100 /home/kylin #