I have RT-N66U and Huawei E3372H-153 and I tried to get the stick work as NCM device (unsuccessful).
- RT-N66U / B1 / CFE 184.108.40.206
- Huawei E3372H-153 / Lock free / stick firmware
What I have tried:
- The stick works perfect under windows 7 as broadband dial-up modem (AT^SETPORT="FF;12,10,16") and as NCM device (AT^SETPORT="FF;12,16").
- The stick worked also perfect in HiLink mode with this router (Asus stock firmware)... but I don't like double NAT and other extra networking layers
- The stick works as broadband dial-up modem (AT^SETPORT="FF;12,10,16") with this router (ppp-connection / tried last Merlin firmware).
But routing or connection get lost very often (no WAN although LED is still blue and gateway set) . I think I can fix it with some kind of keep alive script but I don't like PPP over NCM too.
- I set device in NCM mode only (AT^SETPORT="FF;12,16"), deactivated WAN USB modem in the backend to get access to ttyUSB0 and tried to send AT^NDISDUP=1,1,<APN> command to ttyUSB0 device (PCUI). According to the modem LED - device is getting connected but no usb0, wan0, eth3 etc device available for DHCP binding.
I am not unix expert but I tried to understand why loaded cdc_ncm
kernel module (driver) ignores the Huawei NCM device. Driver developer defines in the code the range of devices which the driver supports
(line number 1276).
USB_VENDOR_AND_INTERFACE_INFO(0x12d1, USB_CLASS_COMM, USB_CDC_SUBCLASS_NCM, USB_CDC_PROTO_NONE)
0x12d1 = Huawei
USB_CDC_SUBCLASS_NCM = 0x0d
USB_CDC_PROTO_NONE = 0x0
Also. The included cdc_ncm
driver is suitable for Hauwei (0x12d1) with Subclass 0x0d
and Proto 0x0
What subclass and proto has E3372H-153?
xxx@RT-N66U-4240:/tmp/home/root# cat /proc/bus/usb/devices
P: Vendor=12d1 ProdID=1506 Rev= 1.02
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=03 Prot=12 Driver=option
I:* If#= 1 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=03 Prot=16 Driver=option
I: If#= 1 Alt= 1 #EPs= 3 Cls=ff(vend.) Sub=03 Prot=16 Driver=option
The first one (Sub=03 Prot=12) - I think it is PCUI for AT commands.
The second one must be NCM dervice (Sub=03 Prot=16)... but with "option" driver instead of "cdc_ncm" driver.
"option" is a usb driver for gsm modems according to the source code
. Line number 681 - Huawei E353 (0x12d1:1506)... but different Sub and Prot... i suppose there is a kind of fallback if Sub or Prot don't match).
Anyway - usb driver for gsm modems matches E3372H in someway.
"cdc_ncm" (USB Host Driver for Network Control Model (NCM)) - doesn't match.
I also see it in dmesg output:
drivers/usb/serial/usb-serial.c: USB Serial support registered for GSM modem (1-port)
option 1-1.2:1.0: GSM modem (1-port) converter detected
usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB0
option 1-1.2:1.1: GSM modem (1-port) converter detected
usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB1
usbcore: registered new interface driver option
drivers/usb/serial/option.c: USB Driver for GSM modems: v0.7.2
I also tried last Tomato by shibby, dd-wrt K3X. The same story. Either "option" or "(none)" driver. NCM won't load.
In current kernel sources we can find huawei_cdc_ncm.c with proper (?) mapping to 0x12d1 / Sub=03 / Prot=16 (line number 200).