The GL-AR300M mini router runs the Open WRT system, making it highly configurable. Recently i have been trying to use the 3G modem Option Globetrotter GI0505 i have with it, but without success – i always receive the Please plug in your modem message.
By running dmesg | grep usb it seems that it is detected only as a USB drive, and ls /dev/ doesn’t show any ttyUSB / -HSO devices. If usb-modeswitch is run with usbmode -l, it does say that there is a Found device: 0af0:d055 (Manufacturer: "Option Wireless Technology", Product: "Globetrotter GI0505", Serial: "Serial Number"), but the -s flag doesn’t seem to modeswitch anything. The modem is present in the usbmode.json file.
It's always a good idea to test the modem on a desktop or laptop running "big Linux". Assuming it works, you can then examine that machine's logs to see exactly which drivers are involved.
Many modems have a way to turn off storage mode "permanently" in the modem's non-volatile settings so that modeswitch is not required.
On real usb-modeswitch logging can be enabled. I haven’t found a way to do so on the version of usb-modeswitch which is used by Open WRT. Here’s the log file from a Linux PC where the modem works fine:
USB_ModeSwitch log from Sun Aug 26 09:47:34 2018
Use global config file: /etc/usb_modeswitch.conf
Started via upstart
Raw args from udev: /1-1.2
Bus ID for device not given by udev.
Trying to determine it from kernel name (1-1.2) ...
Use top device dir /sys/bus/usb/devices/1-1.2
USB dir exists: /sys/bus/usb/devices/1-1.2
SCSI dir exists: /sys/bus/usb/devices/1-1.2
Warning: SCSI attribute "vendor" not readable.
Warning: SCSI attribute "model" not readable.
Warning: SCSI attribute "rev" not readable.
Check class of first interface ...
Device is in install mode.
Use interface (null)
----------------
USB values from sysfs:
idVendor 0af0
idProduct d055
manufacturer Option Wireless Technology
product Globetrotter GI0505
serial Serial Number
bNumConfigurations 1
bConfigurationValue 1
devnum 4
busnum 1
----------------
bNumConfigurations is 1 - don't check for active configuration
Found packed config collection /usr/share/usb_modeswitch/configPack.tar.gz
Searching entries named: /usr/share/usb_modeswitch/0af0:d055*
Searching overriding entries named: /etc/usb_modeswitch.d/0af0:d055*
SCSI attributes not needed, move on.
Extract config 0af0:d055 from collection /usr/share/usb_modeswitch/configPack.tar.gz
config: TargetClass set to ff
config: NoDriverLoading is set to active
Driver will not be handled by usb_modeswitch
! matched, now switching
Unbinding driver
Command to be run:
/usr/sbin/usb_modeswitch -W -D -s 20 -c /run/usb_modeswitch/current_cfg -u -1 -b 1 -g 4 -v 0af0 -p d055 2>&1
Verbose debug output of usb_modeswitch and libusb follows
(Note that some USB errors are expected in the process)
--------------------------------
Read config file: /run/usb_modeswitch/current_cfg
* usb_modeswitch: handle USB devices with multiple modes
* Version 2.2.5 (C) Josua Dietze 2015
* Based on libusb1/libusbx
! PLEASE REPORT NEW CONFIGURATIONS !
DefaultVendor= 0x0af0
DefaultProduct= 0xd055
TargetClass= 0xff
MessageContent="55534243785634120100000080000601000000000000000000000000000000"
NeedResponse=0
Success check enabled, max. wait time 20 seconds
System integration mode enabled
Use given bus/device number: 001/004 ...
Look for default devices ...
bus/device number matched
found USB ID 0af0:d055
vendor ID matched
product ID matched
device class 08 not matching target
count device
Found devices in default mode (1)
Use interface number 0
Use endpoints 0x01 (out) and 0x81 (in)
USB description data (for identification)
-------------------------
Manufacturer: Option Wireless Technology
Product: Globetrotter GI0505
Serial No.: Serial Number
-------------------------
Looking for active driver ...
OK, driver detached
Set up interface 0
Use endpoint 0x01 for message sending ...
Trying to send message 1 to endpoint 0x01 ...
OK, message successfully sent
Reset response endpoint 0x81
Could not reset endpoint (probably harmless): -99
Reset message endpoint 0x01
Could not reset endpoint (probably harmless): -99
ok:busdev
--------------------------------
(end of usb_modeswitch output)
Check success of mode switch for max. 20 seconds ... Read attributes ...
USB dir exists: /sys/bus/usb/devices/1-1.2
Warning: USB attribute "serial" not readable.
All attributes matched
Mode switching was successful, found 0af0:d055 (Option Wireless Technology: Globetrotter GI0505)Doing no driver check or bind for this device
Check for AVOID_RESET_QUIRK kernel attribute
AVOID_RESET_QUIRK activated
All done, exit
This monologue is getting tiresome. Is there some particular reason for why people on this forum aren’t helping? It’s hard to believe that no one actually knows where to dig next...
It's been a while since I fiddled with /dev/ttyUSB 3G modems, but I've got a vague recollection of having to install certain kmod packages in addition to usb-modeswitch.
Is that still required with the current versions of LEDE/OpenWRT?
The page about 3G modems there is outdated (for instance, it talks about usb-modeswitch-data, which is part of usb-modeswitch since a couple of years), but the kmods described there are installed, which isn’t helping, unfortunately.