I recently had to deal with a freshly bought HP laptop (called “HP 15-BA030NG”), a basically nice piece of hardware, nothing fancy but doing its job under openSUSE Leap 42.1. We moved the laptop to a location where it had to access a 5 GHz WLAN, no 2.4 GHz networks available. To cut the story short: That 2016 hardware comes without 5 GHz support. (HP, are you listening? What a crappy design decision, just to save a few cents!)
So we took a USB WLAN stick, “FRITZ!WLAN USB Stick N v2”, and hoped for plug&play.
Unlucky for us, the stick came up in what “lsusb” reported as “CDROM mode”, which is to assist MS Windows machines by providing the drivers required to run the WLAN part:
[Thu Oct 13 06:01:31 2016] usb 1-2: new high-speed USB device number 10 using xhci_hcd [Thu Oct 13 06:01:31 2016] usb 1-2: New USB device found, idVendor=057c, idProduct=62ff [Thu Oct 13 06:01:31 2016] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [Thu Oct 13 06:01:31 2016] usb 1-2: Product: FRITZ!WLAN USB Stick N v2 [Thu Oct 13 06:01:31 2016] usb 1-2: Manufacturer: AVM Berlin [Thu Oct 13 06:01:31 2016] usb 1-2: SerialNumber: 24651144B634 [Thu Oct 13 06:01:31 2016] usb-storage 1-2:1.0: USB Mass Storage device detected [Thu Oct 13 06:01:31 2016] scsi host46: usb-storage 1-2:1.0 leap421:/tmp # lsusb Bus 001 Device 010: ID 057c:62ff AVM GmbH AVM Fritz!WLAN USB (in CD-ROM-mode)
In order to use this device for WLAN access, a USB mode switch is required. This should happen automatically, but for us, it didn’t. So what’s the problem?
It turned out that openSUSE Leap 42.1 does indeed come with everything in place and the according scripts are actually called. But unfortunately, the distribution-provided config file for the device (“/usr/share/usb_modeswitch/057c:62ff”) doesn’t provide the actual mode-switching commands required by the device:
# AVM Fritz!Wlan USB Stick N v2 TargetVendor=0x057c TargetProductList="8501,8502" StandardEject=1 NoDriverLoading=1 MessageContent="5553424312345678000000000000061b000000ff0000000000000000000000"
It’s that last line (“MessageContent”) that is missing in openSUSE’s version of the file. Once it is added and the stick re-plugged, mode switching happens and the WLAN stick can be used without further installation:
[Thu Oct 13 06:02:56 2016] usb 1-2: new high-speed USB device number 11 using xhci_hcd [Thu Oct 13 06:02:57 2016] usb 1-2: New USB device found, idVendor=057c, idProduct=8501 [Thu Oct 13 06:02:57 2016] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [Thu Oct 13 06:02:57 2016] usb 1-2: Product: FRITZ!WLAN USB Stick N v2 [Thu Oct 13 06:02:57 2016] usb 1-2: Manufacturer: AVM Berlin [Thu Oct 13 06:02:57 2016] usb 1-2: SerialNumber: 123412341234 [Thu Oct 13 06:02:57 2016] usb 1-2: reset high-speed USB device number 13 using xhci_hcd [Thu Oct 13 06:02:57 2016] ieee80211 phy2: rt2x00_set_rt: Info - RT chipset 5592, rev 0222 detected [Thu Oct 13 06:02:57 2016] ieee80211 phy2: rt2x00_set_rf: Info - RF chipset 000f detected [Thu Oct 13 06:02:57 2016] ieee80211 phy2: Selected rate control algorithm 'minstrel_ht'
Please note that there are various versions of this device available – it seems that the (bad) habit of distribution different hardware by the same name seems to even happen with AVM. Our stick’s packaging carries the AVM product number “2000 2571”, EAN 4023125025716. I cannot tell if other hardware versions will have different product or EAN codes, so YMMV. Our stick initially reported as USB ID 057c:62ff (CDROM mode) and switched to 057c:8501. From other reports on the Internet, the same should hold true for those sticks that report as 057c:8502 and 057c:8503 in WLAN mode (and in the latter case, you should add 8503 to the list of device IDs that are considered a successful switch).