Huawei e3372h stuck in mode switch

Hello! I got some lte modems e3372h. If I plug them in Windows they immediately operate in hilink and connect without further issues.
I tried to connect them to a Raspi 4B running 21.01.2

{
        "kernel": "5.4.179",
        "hostname": "whale",
        "system": "ARMv8 Processor rev 3",
        "model": "Raspberry Pi 4 Model B Rev 1.5",
        "board_name": "raspberrypi,4-model-b",
        "release": {
                "distribution": "OpenWrt",
                "version": "21.02.2",
                "revision": "r16495-bf0c965af0",
                "target": "bcm27xx/bcm2711",
                "description": "OpenWrt 21.02.2 r16495-bf0c965af0"
        }
}

The problem that I see is that they are constantly changing mode.

root@whale:~# lsusb
Bus 001 Device 051: ID 12d1:14db HUAWEI_MOBILE HUAWEI_MOBILE
Bus 001 Device 047: ID 12d1:14db HUAWEI_MOBILE HUAWEI_MOBILE
Bus 001 Device 049: ID 12d1:14db HUAWEI_MOBILE HUAWEI_MOBILE
Bus 002 Device 001: ID 1d6b:0003 Linux 5.4.179 xhci-hcd xHCI Host Controller
Bus 001 Device 002: ID 2109:3431  USB2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux 5.4.179 xhci-hcd xHCI Host Controller

root@whale:~# lsusb
Bus 001 Device 052: ID 12d1:1f01 HUAWEI_MOBILE HUAWEI_MOBILE
Bus 001 Device 049: ID 12d1:14db HUAWEI_MOBILE HUAWEI_MOBILE
Bus 002 Device 001: ID 1d6b:0003 Linux 5.4.179 xhci-hcd xHCI Host Controller
Bus 001 Device 051: ID 12d1:14db HUAWEI_MOBILE HUAWEI_MOBILE
Bus 001 Device 002: ID 2109:3431  USB2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux 5.4.179 xhci-hcd xHCI Host Controller

14db would be the normal id for modem, however in the second instance #51 changed into 1f01 which is the mass storage mode. Tried the usbmode -s but nothing really changed.

dmesg and logread are flooded with these messages notifying of the idProduct change:

[ 4890.844437] usb 1-1.4: USB disconnect, device number 42
[ 4891.067281] usb 1-1.4: new high-speed USB device number 43 using xhci_hcd
[ 4891.168231] usb 1-1.4: New USB device found, idVendor=12d1, idProduct=14db, bcdDevice= 1.02
[ 4891.168241] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 4891.168249] usb 1-1.4: Product: HUAWEI_MOBILE
[ 4891.168256] usb 1-1.4: Manufacturer: HUAWEI_MOBILE
[ 4891.611537] usb 1-1.3: USB disconnect, device number 39
[ 4891.835301] usb 1-1.3: new high-speed USB device number 44 using xhci_hcd
[ 4891.936508] usb 1-1.3: New USB device found, idVendor=12d1, idProduct=1f01, bcdDevice= 1.02
[ 4891.936518] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4891.936526] usb 1-1.3: Product: HUAWEI_MOBILE
[ 4891.936533] usb 1-1.3: Manufacturer: HUAWEI_MOBILE
[ 4891.936539] usb 1-1.3: SerialNumber: 0123456789ABCDEF
[ 4891.938946] usb-storage 1-1.3:1.0: USB Mass Storage device detected
[ 4891.939540] scsi host0: usb-storage 1-1.3:1.0
[ 4892.123750] usb 1-1.3: USB disconnect, device number 44
[ 4892.347328] usb 1-1.3: new high-speed USB device number 45 using xhci_hcd
[ 4892.448285] usb 1-1.3: New USB device found, idVendor=12d1, idProduct=14db, bcdDevice= 1.02
[ 4892.448295] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 4892.448304] usb 1-1.3: Product: HUAWEI_MOBILE
[ 4892.448311] usb 1-1.3: Manufacturer: HUAWEI_MOBILE
[ 4892.892108] usb 1-1.2: USB disconnect, device number 41

I don't have any new entries in /dev or in /sys

Some more troubleshooting.

Summary
root@whale:~# opkg list-installed; lsmod
base-files - 1439-r16495-bf0c965af0
bcm27xx-gpu-fw - 2021-02-16-ba6259246c702b04ea56ff1034325e476d460ae8
bcm27xx-userland - 97bc8180ad682b004ea224d1db7b8e108eda4397-1
bind-dig - 9.18.0-1
bind-libs - 9.18.0-1
brcmfmac-firmware-usb - 20211216-1
busybox - 1.33.2-2
ca-bundle - 20210119-1
cgi-io - 2021-09-08-98cef9dd-20
chat - 2.4.8.git-2020-10-03-3
comgt - 0.32-33
comgt-ncm - 0.32-33
cypress-firmware-43455-sdio - v5.4.18-2020_0402-3
cypress-nvram-43455-sdio-rpi-4b - 2019-09-03-e7b78df2-2
dnsmasq - 2.85-8
dropbear - 2020.81-2
e2fsprogs - 1.45.6-2
firewall - 2021-03-23-61db17ed-1
fstools - 2021-01-04-c53b1882-1
fwtool - 2019-11-12-8f7fe925-1
getrandom - 2020-10-25-9ef88681-2
hostapd-common - 2020-06-08-5a8b3662-39
ip6tables - 1.8.7-1
iptables - 1.8.7-1
iw - 5.9-8fab0c9e-3
iwinfo - 2021-04-30-c45f0b58-2.1
jshn - 2021-05-16-b14c4688-2
jsonfilter - 2018-02-04-c7e938d6-1
kernel - 5.4.179-1-0788d83a1525da40e4d0f7b1f5d6ee0e
kmod-brcmfmac - 5.4.179+5.10.85-1-1
kmod-brcmutil - 5.4.179+5.10.85-1-1
kmod-cfg80211 - 5.4.179+5.10.85-1-1
kmod-fs-vfat - 5.4.179-1
kmod-hid - 5.4.179-1
kmod-hid-generic - 5.4.179-1
kmod-input-core - 5.4.179-1
kmod-input-evdev - 5.4.179-1
kmod-ip6tables - 5.4.179-1
kmod-ipt-conntrack - 5.4.179-1
kmod-ipt-core - 5.4.179-1
kmod-ipt-nat - 5.4.179-1
kmod-ipt-offload - 5.4.179-1
kmod-lib-crc-ccitt - 5.4.179-1
kmod-mii - 5.4.179-1
kmod-mmc - 5.4.179-1
kmod-nf-conntrack - 5.4.179-1
kmod-nf-conntrack6 - 5.4.179-1
kmod-nf-flow - 5.4.179-1
kmod-nf-ipt - 5.4.179-1
kmod-nf-ipt6 - 5.4.179-1
kmod-nf-nat - 5.4.179-1
kmod-nf-reject - 5.4.179-1
kmod-nf-reject6 - 5.4.179-1
kmod-nls-base - 5.4.179-1
kmod-nls-cp437 - 5.4.179-1
kmod-nls-iso8859-1 - 5.4.179-1
kmod-nls-utf8 - 5.4.179-1
kmod-ppp - 5.4.179-1
kmod-pppoe - 5.4.179-1
kmod-pppox - 5.4.179-1
kmod-slhc - 5.4.179-1
kmod-sound-arm-bcm2835 - 5.4.179-1
kmod-sound-core - 5.4.179-1
kmod-usb-core - 5.4.179-1
kmod-usb-hid - 5.4.179-1
kmod-usb-net - 5.4.179-1
kmod-usb-net-cdc-mbim - 5.4.179-1
kmod-usb-net-cdc-ncm - 5.4.179-1
kmod-usb-net-huawei-cdc-ncm - 5.4.179-1
kmod-usb-net-qmi-wwan - 5.4.179-1
kmod-usb-serial - 5.4.179-1
kmod-usb-serial-option - 5.4.179-1
kmod-usb-serial-wwan - 5.4.179-1
kmod-usb-wdm - 5.4.179-1
knot-dig - 3.1.6-1
knot-host - 3.1.6-1
knot-libs - 3.1.6-1
knot-libzscanner - 3.1.6-1
knot-resolver - 5.4.3-1
libatomic1 - 8.4.0-3
libblkid1 - 2.36.1-2
libblobmsg-json20210516 - 2021-05-16-b14c4688-2
libbz2-1.0 - 1.0.8-1
libc - 1.1.24-3
libcomerr0 - 1.45.6-2
libdb47 - 4.7.25.4.NC-6
libedit - 20210419-3.1-1
libevdev - 1.12.0-1
libext2fs2 - 1.45.6-2
libf2fs6 - 1.14.0-1
libffi - 3.3-2
libgcc1 - 8.4.0-3
libgdbm - 1.18.1-2
libgmp10 - 6.2.1-1
libgnutls - 3.7.1-2
libip4tc2 - 1.8.7-1
libip6tc2 - 1.8.7-1
libiwinfo-data - 2021-04-30-c45f0b58-2.1
libiwinfo-lua - 2021-04-30-c45f0b58-2.1
libiwinfo20210430 - 2021-04-30-c45f0b58-2.1
libjson-c5 - 0.15-2
libjson-script20210516 - 2021-05-16-b14c4688-2
liblua5.1.5 - 5.1.5-9
liblucihttp-lua - 2021-06-11-3dc89af4-1
liblucihttp0 - 2021-06-11-3dc89af4-1
liblzma - 5.2.5-3
libncurses6 - 6.2-3
libnettle8 - 3.6-1
libnghttp2-14 - 1.43.0-1
libnl-tiny1 - 2020-08-05-c291088f-2
libopenssl1.1 - 1.1.1m-1
libpcap1 - 1.9.1-3.1
libpthread - 1.1.24-3
libpython3-3.9 - 3.9.10-1
libreadline8 - 8.1-1
librt - 1.1.24-3
libsmartcols1 - 2.36.1-2
libsqlite3-0 - 3330000-1
libss2 - 1.45.6-2
libstdcpp6 - 8.4.0-3
libubox20210516 - 2021-05-16-b14c4688-2
libubus-lua - 2021-06-30-4fc532c8-2
libubus20210630 - 2021-06-30-4fc532c8-2
libuci20130104 - 2021-04-14-4b3db117-5
libuclient20201210 - 2021-05-14-6a6011df-1
libudev-zero - 1.0.0-1
libusb-1.0-0 - 1.0.24-4
libustream-wolfssl20201210 - 2022-01-16-868fd881-1
libuuid1 - 2.36.1-2
libuv1 - 1.40.0-3
libwolfssl5.1.1.99a5b54a - 5.1.1-stable-1
libxtables12 - 1.8.7-1
lmdb - 0.9.28-1
logd - 2020-10-25-9ef88681-2
lua - 5.1.5-9
luajit - 2.1.0-beta3-5
luasec - 0.9-1
luasocket - 2019-04-21-733af884-1
luci - git-20.074.84698-ead5e81
luci-app-firewall - git-22.046.85957-59c3392
luci-app-opkg - git-21.312.69848-4745991
luci-base - git-22.046.85957-59c3392
luci-lib-base - git-20.232.39649-1f6dc29
luci-lib-ip - git-20.250.76529-62505bd
luci-lib-jsonc - git-19.317.29469-8da8f38
luci-lib-nixio - git-20.234.06894-c4a4e43
luci-mod-admin-full - git-19.253.48496-3f93650
luci-mod-network - git-22.046.85061-dd54dce
luci-mod-status - git-22.046.85784-0ac2542
luci-mod-system - git-22.019.40321-7a37d02
luci-proto-3g - git-22.046.84868-a7b0fe1
luci-proto-ipv6 - git-21.148.49484-14511e5
luci-proto-ncm - git-22.046.84868-a7b0fe1
luci-proto-ppp - git-21.163.64918-6c6559a
luci-proto-qmi - git-22.046.84868-a7b0fe1
luci-ssl - git-20.244.36115-e10f954
luci-theme-bootstrap - git-22.047.35373-cc582eb
mkf2fs - 1.14.0-1
mtd - 26
netifd - 2021-10-30-8f82742c-1
odhcp6c - 2021-01-09-53f07e90-16
odhcpd-ipv6only - 2021-07-18-bc9d317f-3
openssh-sftp-server - 8.4p1-4
openwrt-keyring - 2021-02-20-49283916-2
opkg - 2021-06-13-1bf042dd-1
partx-utils - 2.36.1-2
ppp - 2.4.8.git-2020-10-03-3
ppp-mod-pppoe - 2.4.8.git-2020-10-03-3
procd - 2021-03-08-2cfc26f8-1
px5g-wolfssl - 3
python3 - 3.9.10-1
python3-asyncio - 3.9.10-1
python3-base - 3.9.10-1
python3-cgi - 3.9.10-1
python3-cgitb - 3.9.10-1
python3-codecs - 3.9.10-1
python3-ctypes - 3.9.10-1
python3-dbm - 3.9.10-1
python3-decimal - 3.9.10-1
python3-distutils - 3.9.10-1
python3-email - 3.9.10-1
python3-gdbm - 3.9.10-1
python3-light - 3.9.10-1
python3-logging - 3.9.10-1
python3-lzma - 3.9.10-1
python3-multiprocessing - 3.9.10-1
python3-ncurses - 3.9.10-1
python3-openssl - 3.9.10-1
python3-pydoc - 3.9.10-1
python3-readline - 3.9.10-1
python3-sqlite3 - 3.9.10-1
python3-unittest - 3.9.10-1
python3-urllib - 3.9.10-1
python3-xml - 3.9.10-1
rpcd - 2021-03-11-ccb75178-1
rpcd-mod-file - 2021-03-11-ccb75178-1
rpcd-mod-iwinfo - 2021-03-11-ccb75178-1
rpcd-mod-luci - 20210614
rpcd-mod-rrdns - 20170710
tcpdump - 4.9.3-4
terminfo - 6.2-3
ubox - 2020-10-25-9ef88681-2
ubus - 2021-06-30-4fc532c8-2
ubusd - 2021-06-30-4fc532c8-2
uci - 2021-04-14-4b3db117-5
uclient-fetch - 2021-05-14-6a6011df-1
uhttpd - 2021-03-21-15346de8-2
uhttpd-mod-ubus - 2021-03-21-15346de8-2
umbim - 2019-09-11-184b707d-1
uqmi - 2020-11-22-0a19b5b7-3
urandom-seed - 3
usb-modeswitch - 2017-12-19-f40f84c2-2
usbids - 0.354-1
usbutils - 013-2
usign - 2020-05-23-f1f65026-1
vim - 8.2-3
wireless-regdb - 2021.08.28-1
wpad-basic-wolfssl - 2020-06-08-5a8b3662-39
wwan - 2019-04-29-5
zlib - 1.2.11-3
...
brcmfmac              258048  0 
brcmutil               12288  1 brcmfmac
cdc_mbim               12288  0 
cdc_ncm                24576  2 cdc_mbim,huawei_cdc_ncm
cdc_wdm                20480  3 cdc_mbim,qmi_wwan,huawei_cdc_ncm
cfg80211              339968  1 brcmfmac
compat                 12288  2 brcmfmac,cfg80211
crc_ccitt              12288  1 ppp_async
evdev                  28672  0 
fat                    73728  1 vfat
hid                   114688  2 usbhid,hid_generic
hid_generic            12288  0 
huawei_cdc_ncm         12288  0 
ip_tables              24576  4 iptable_nat,iptable_mangle,iptable_filter
ip6_tables             20480 24 ip6table_mangle,ip6table_filter
ip6t_REJECT            12288  2 
ip6table_filter        12288  1 
ip6table_mangle        12288  0 
ipt_REJECT             12288  2 
iptable_filter         12288  1 
iptable_mangle         12288  0 
iptable_nat            12288  1 
nf_conntrack           90112  8 xt_state,xt_nat,xt_conntrack,xt_REDIRECT,xt_MASQUERADE,xt_CT,nf_nat,nf_flow_table
nf_defrag_ipv4         12288  1 nf_conntrack
nf_defrag_ipv6         12288  1 nf_conntrack
nf_flow_table          20480  2 xt_FLOWOFFLOAD,nf_flow_table_hw
nf_flow_table_hw       12288  1 
nf_log_common          12288  2 nf_log_ipv4,nf_log_ipv6
nf_log_ipv4            12288  0 
nf_log_ipv6            12288  0 
nf_nat                 36864  4 iptable_nat,xt_nat,xt_REDIRECT,xt_MASQUERADE
nf_reject_ipv4         12288  1 ipt_REJECT
nf_reject_ipv6         12288  1 ip6t_REJECT
nls_cp437              16384  1 
nls_iso8859_1          12288  1 
nls_utf8               12288  0 
option                 53248  0 
ppp_async              20480  0 
ppp_generic            40960  3 pppoe,ppp_async,pppox
pppoe                  20480  0 
pppox                  12288  1 pppoe
qmi_wwan               28672  0 
slhc                   12288  1 ppp_generic
snd                    73728  9 snd_bcm2835,snd_rawmidi,snd_seq_device,snd_pcm_oss,snd_pcm,snd_timer,snd_mixer_oss,snd_hwdep,snd_compress
snd_bcm2835            20480  0 
snd_compress           20480  0 
snd_hwdep              16384  0 
snd_mixer_oss          28672  1 snd_pcm_oss
snd_pcm                90112  3 snd_bcm2835,snd_pcm_oss,snd_pcm_dmaengine
snd_pcm_dmaengine      12288  0 
snd_pcm_oss            53248  0 
snd_rawmidi            40960  0 
snd_seq_device         12288  1 snd_rawmidi
snd_timer              32768  1 snd_pcm
soundcore              12288  1 snd
usb_wwan               16384  1 option
usbhid                 40960  0 
usbnet                 28672  4 cdc_mbim,qmi_wwan,huawei_cdc_ncm,cdc_ncm
usbserial              28672  2 option,usb_wwan
vfat                   16384  1 
x_tables               28672 24 xt_state,xt_nat,xt_conntrack,xt_REDIRECT,xt_MASQUERADE,xt_FLOWOFFLOAD,xt_CT,ipt_REJECT,xt_time,xt_tcpudp,xt_multiport,xt_mark,xt_mac,xt_limit,xt_comment,xt_TCPMSS,xt_LOG,iptable_mangle,iptable_filter,ip_tables,ip6table_mangle,ip6table_filter,ip6_tables,ip6t_REJECT
xt_CT                  12288  0 
xt_FLOWOFFLOAD         12288  0 
xt_LOG                 12288  0 
xt_MASQUERADE          12288  1 
xt_REDIRECT            12288  0 
xt_TCPMSS              12288  0 
xt_comment             12288119 
xt_conntrack           12288 14 
xt_limit               12288 20 
xt_mac                 12288  0 
xt_mark                12288  0 
xt_multiport           12288  0 
xt_nat                 12288  0 
xt_state               12288  0 
xt_tcpudp              12288  8 
xt_time                12288  0 

I tried with both NCM and modemmanager. Does anyone have any idea how to proceed? Would it make sense to try to change mode on a desktop linux?
Some information from the modems when connected to windows.

version=22.001.35.01.03

Device Information
Device name E3372h-320
Serial number VQN7S21A26000218
IMEI 866229045078555
IMSI 293400115968578
My number +386
Hardware version CL4E3372HM
Software version 11.0.1.1(H697SP1C983)
Web UI version WEBUI 11.0.1.1(W13SP2C7201)
Configuration file version E3372h-320-CUST 10.0.3.1(C965)
WAN IP Address Unknown
WAN IPv6 Address Unknown

See https://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?f=3&t=2958

2 Likes

To summarize:
Add in /etc/usb-mode.json

{
        "messages" : [
                "55534243123456780000000000000011063000000100010000000000000000",
        ],
        "devices" : {
                "12d1:1f01": {
                        "*": {
                                "t_vendor": 4817,
                                "t_product": [ 5471 ],
                                "msg": [ 0 ]
                        }
                }
        }
}

and in /etc/rc.local

echo "12d1:1f01:s" > /sys/module/usb_storage/parameters/quirks
usbreset   12d1:1f01
usbreset   12d1:14db

Thank you, Andrew!

2 Likes

Looks like the problem I had with the Huawei E5576-320:
USB modprobe problems in 21.02.0-rc3

I'll try the solution from Draisberghof. Thanks @AndrewZ and @trendy for the links and the handy summary! I tried similar things, but had not found the rc.local stuff.

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.