0
votes

I have an Atmel device running yocto's dizzy release (kernel 3.6.9). I'm trying to configure the system to load a usb wifi adapter,but I'm either missing part of the drivers, or I don't have everything configured correctly. Either way, I'm not 100% sure on all of the subsystems that need to be set up to hotplug and configure wifi adapters. Here's what I know:

The manufacturer is some generic device called Panda Wireless. It actually uses the rt2800usb.ko driver under the hood. If I plug the device into my Fedora desktop, or a raspberry pi, everything loads correctly.

Nov 03 11:31:08 darkstar kernel: usb 1-2: new high-speed USB device number 4 using xhci_hcd
Nov 03 11:31:09 darkstar kernel: usb 1-2: New USB device found, idVendor=148f, idProduct=5372
Nov 03 11:31:09 darkstar kernel: usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Nov 03 11:31:09 darkstar kernel: usb 1-2: Product: 802.11 n WLAN
Nov 03 11:31:09 darkstar kernel: usb 1-2: Manufacturer: Ralink
Nov 03 11:31:09 darkstar kernel: usb 1-2: reset high-speed USB device number 4 using xhci_hcd
Nov 03 11:31:09 darkstar kernel: ieee80211 phy2: rt2x00_set_rt: Info - RT chipset 5392, rev 0223 detected
Nov 03 11:31:09 darkstar kernel: ieee80211 phy2: rt2x00_set_rf: Info - RF chipset 5372 detected
Nov 03 11:31:09 darkstar kernel: ieee80211 phy2: Selected rate control algorithm 'minstrel_ht'
Nov 03 11:31:09 darkstar mtp-probe[19863]: checking bus 1, device 4: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2"
Nov 03 11:31:09 darkstar mtp-probe[19863]: bus: 1, device: 4 was not an MTP device
Nov 03 11:31:10 darkstar kernel: rt2800usb 1-2:1.0 wlp0s20u2: renamed from wlan0
Nov 03 11:31:10 darkstar crda[19893]: setting regulatory domain to US based on timezone (America/New_York)
Nov 03 11:31:10 darkstar NetworkManager[911]: <info>  (wlp0s20u2): using nl80211 for WiFi device control
Nov 03 11:31:10 darkstar NetworkManager[911]: <info>  (wlp0s20u2): driver supports Access Point (AP) mode
Nov 03 11:31:10 darkstar NetworkManager[911]: <info>  (wlp0s20u2): new 802.11 WiFi device (driver: 'rt2800usb' ifindex: 8)
Nov 03 11:31:10 darkstar NetworkManager[911]: <info>  (wlp0s20u2): exported as /org/freedesktop/NetworkManager/Devices/7
Nov 03 11:31:10 darkstar NetworkManager[911]: <info>  (wlp0s20u2): device state change: unmanaged -> unavailable (reason 'managed') [10 20 2]
Nov 03 11:31:10 darkstar kernel: ieee80211 phy2: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin'
Nov 03 11:31:10 darkstar kernel: ieee80211 phy2: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.29
Nov 03 11:31:10 darkstar NetworkManager[911]: <info>  (wlp0s20u2): preparing device
Nov 03 11:31:10 darkstar NetworkManager[911]: <info>  rfkill2: found WiFi radio killswitch (at /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/ieee80211/phy2/rfkill2) (driver rt2800usb)
Nov 03 11:31:10 darkstar NetworkManager[911]: <info>  (wlp0s20u2) supports 4 scan SSIDs
Nov 03 11:31:10 darkstar NetworkManager[911]: <info>  (wlp0s20u2): supplicant interface state: starting -> ready
Nov 03 11:31:10 darkstar NetworkManager[911]: <info>  (wlp0s20u2): device state change: unavailable -> disconnected (reason 'supplicant-available') [20 30 42]
Nov 03 11:31:10 darkstar NetworkManager[911]: <info>  (wlp0s20u2): supplicant interface state: ready -> disconnected
Nov 03 11:31:10 darkstar NetworkManager[911]: <info>  (wlp0s20u2) supports 4 scan SSIDs
Nov 03 11:31:11 darkstar NetworkManager[911]: <info>  (wlp0s20u2): supplicant interface state: disconnected -> inactive
Nov 03 11:31:13 darkstar ModemManager[755]: <warn>  Couldn't find support for device at '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2': not supported by any plugin

When I plug the device into the yocto appliance, I don't get nearly as far:

Nov  3 20:03:05 yocto user.info kernel: usb 1-1: new high-speed USB device number 3 using atmel-ehci
Nov  3 20:03:05 yocto user.info kernel: usb 1-1: New USB device found, idVendor=148f, idProduct=5372
Nov  3 20:03:05 yocto user.info kernel: usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Nov  3 20:03:05 yocto user.info kernel: usb 1-1: Product: 802.11 n WLAN
Nov  3 20:03:05 yocto user.info kernel: usb 1-1: Manufacturer: Ralink

On the yocto appliance, the modules don't load automatically. I have to install them with modprobe. However, even after loading them manually, I don't get any further. I don't know why udev isn't picking this up, and I don't really know what else needs to happen to get wlan0 (or something like that) to show up in the adapter list.

I suppose I've been spoiled by modern Linux distros where I just plug things in and they all work :) Any advice would be greatly appreciated.

1
If you load the modules manually, do you get any error messages (or anything else in dmesg?). When it comes to autoloading the modules, do you get any clues it you run udev-monitor to get a feeling for what udev is actually doing? - Anders

1 Answers

0
votes

For the auto loading of modules part you can simply add a file called rt2800usb.conf in /etc/modules-load.d/ containing the module name (i.e. rt2800usb) and it will load on boot.