3g/4g USB dongle not showing up

Good! Then it was only some temporary glitch.

The output is useful because it confirms the device ID in the unswitched state, and it shows that this modem requires mode switching. There is only one configuration with one function here: The mode switching storage function.

Yes, that won't work. You need to switch the device mode first.

And adding device IDs to the cdc_wdm driver is futile. It will never do anything useful, since that driver needs specific WDM descriptors when used as a standalone driver. It works with WDM class devices and nothing else. Except if used as a subdriver for qmi_wwan, cdc_mbim and huawei_cdc_ncm. But the device ID matching and probing is then done by the master driver.

Anyway, let's get back switching the device mode. Your device is not yet part of the default usb-modeswitch config, so you need to add it manually for now. Install usb-modeswitch. Create a temporary test config. Look at /etc/usb-mode.json for examples. The syntax is simple. Something like this should work, assuming eject is the correct command:

{
        "messages" : [ ],
        "devices" : {
                "2020:2030": {
                        "*": {
                                "mode": "StandardEject",
                                "msg": [ ]
                        }
                }
        }
}

Save that to for example /tmp/mymodem.json and run
usbmode -v -s -c /tmp/mymodem.json

If successful, then make a note of the resulting device ID and add it to your temporary config as target ID. Unplug and replug the modem, and verify that the configuration still works. If it does, then you may want to add it to the default /etc/usb-mode.json configuration. And please submit it upstream too, so it can be added to the default. The master for the usb-modeswitch data is found at

If "StandardEject" doesn't work, then your modem might need some other command instead. Look at other devices with similar IDs in the usb-modeswitch configuration and try those messages. It might be easier to do this testing directly in the /etc/usb-mode.json file, since it uses references by index into the messages table. Or simply add a copy of that table to your temporary test config and use the same index there.

1 Like