Activation Codes and Methods, Hardware Details, Sniffing
jaltsu
Posts: 1
Joined: 14 Oct 2022, 08:26

Brovi E3372 (manufactured by Huawei)

Post by jaltsu » 14 Oct 2022, 08:49

Hi!

I have tried to figure out how to do modeswitch for Brovi E3372 usb-modem without success. It should be the same than Huawei E3372 but it is not.

I wonder if someone could help me with this one please?



When Brovi USB modem is attached to my Linux pc lsusb show the following data:

Bus001 Device 007: ID 3566:2001

This data is from my router when Brovi usb attached to its usb-port.

T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 4 Spd=480 MxCh= 0
D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=3566 ProdID=2001 Rev=ff.ff
S: Manufacturer=Mobile
S: Product=Mobile
S: SerialNumber=123456789ABCD
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 2mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=125us




I added following to usb_modeswitch config:
----------------------------------------------------------
cd /etc/usb_modeswitch.d/
nano 3566:2001

#Brovi E3372
TargetVendor=0x3566
TargetProductList="1506"
HuaweiNewMode=1
NoDriverLoading=1
-----------------------------------------------------------
cd /lib/udev/rules.d
nano 40-usb_modeswitch.rules

# Brovi devices
ATTR{idVendor}=="3566", ATTRS{manufacturer}!="Android", ATTR{bInterfaceNumber}=="00", ATTR{bInterfaceClass}=="08", RUN+="usb_modeswitch '/%k'"

I also tried this:
ATTR{idVendor}=="3566", ATTR{idProduct}=="2001", RUN+="usb_modeswitch '/%k'"
-------------------------------------------------------------



/var/log/usb_modeswitch debug log



USB_ModeSwitch log from Fri Oct 14 09:06:45 2022

Use global config file: /etc/usb_modeswitch.conf

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 3566
idProduct 2001
manufacturer Mobile
product Mobile
serial 123456789ABCD
bNumConfigurations 1
bConfigurationValue 1
devnum 9
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/3566:2001*
Searching overriding entries named: /etc/usb_modeswitch.d/3566:2001*
SCSI attributes not needed, move on.

Use overriden config 3566:2001 from collection /etc/usb_modeswitch.d
config: TargetVendor set to 3566
config: TargetProduct set to 1506
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 /etc/usb_modeswitch.d/3566:2001 -u -1 -b 1 -g 9 -v 3566 -p 2001 2>&1

Verbose debug output of usb_modeswitch and libusb follows
(Note that some USB errors are expected in the process)
--------------------------------

Read config file: /etc/usb_modeswitch.d/3566:2001

* usb_modeswitch: handle USB devices with multiple modes
* Version 2.5.2 (C) Josua Dietze 2017
* Based on libusb1/libusbx

! PLEASE REPORT NEW CONFIGURATIONS !

DefaultVendor= 0x3566
DefaultProduct= 0x2001
TargetVendor= 0x3566
TargetProductList="1506"
HuaweiNewMode=1
Success check enabled, max. wait time 20 seconds
System integration mode enabled

Use given bus/device number: 001/009 ...
Look for default devices ...
bus/device number matched
found USB ID 3566:2001
vendor ID matched
product ID matched
Found devices in default mode (1)
Get the current device configuration ...
Use interface number 0
with class 8
Use endpoints 0x01 (out) and 0x81 (in)

USB description data (for identification)
-------------------------
Manufacturer: Mobile
Product: Mobile
Serial No.: 123456789ABCD
-------------------------
Using standard Huawei switching message
Looking for active drivers ...
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
Read the response to message 1 (CSW) ...
Response successfully read (13 bytes), status 0
Reset response endpoint 0x81
Reset message endpoint 0x01
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
idProduct doesn't match the expected value. ('1506' != '2001')
Attributes are different but target values are unexpected: idVendor: 3566
idProduct: 2001
manufacturer: Mobile
product: Mobile
serial: 123456789ABCD
bNumConfigurations: 1
bConfigurationValue: 1
devnum: 9
busnum: 1
Mode switching was successful, found 3566:2001 (Mobile: Mobile)Doing no driver check or bind for this device
Check for AVOID_RESET_QUIRK kernel attribute
AVOID_RESET_QUIRK activated

All done, exit

kraev
Posts: 1
Joined: 07 Dec 2022, 12:40

Re: Brovi E3372 (manufactured by Huawei)

Post by kraev » 07 Dec 2022, 12:43

/etc/udev/rules.d/40-huawei.rules:
# This is part of USB_ModeSwitch version 1.x.x
#
ACTION!="add", GOTO="modeswitch_rules_end"
SUBSYSTEM!="usb", GOTO="modeswitch_rules_end"

# All known install partitions are on interface 0
ATTRS{bInterfaceNumber}!="00", GOTO="modeswitch_rules_end"

# only storage class devices are handled; negative
# filtering here would exclude some quirky devices
ATTRS{bDeviceClass}=="e0", GOTO="modeswitch_rules_begin"
ATTRS{bInterfaceClass}=="e0", GOTO="modeswitch_rules_begin"
GOTO="modeswitch_rules_end"

LABEL="modeswitch_rules_begin"
# Huawei E3372-325
ATTRS{idVendor}=="3566", ATTRS{idProduct}=="2001", RUN+="/sbin/usb_modeswitch -v 3566 -p 2001 -W -R -w 400"
ATTRS{idVendor}=="3566", ATTRS{idProduct}=="2001", RUN+="/sbin/usb_modeswitch -v 3566 -p 2001 -W -R"

LABEL="modeswitch_rules_end"

ernstp
Posts: 4
Joined: 09 Jan 2023, 11:06

Re: Brovi E3372 (manufactured by Huawei)

Post by ernstp » 09 Jan 2023, 11:09

I found that

usb_modeswitch -v 3566 -p 2001 -X

(-X is --huawei-alt-mode)
brought up a network interface, though I still didn't get any uplink etc...

Did it work for anyone else?

mrogger
Posts: 1
Joined: 09 Jan 2023, 18:00

Re: Brovi E3372 (manufactured by Huawei)

Post by mrogger » 10 Jan 2023, 16:01

Interestingly when you connect the stick, it first presents the rndis interface, disconnects soon after and presents then the mass storage interface (kernel logs).

With "usb_modeswitch -v 3566 -p 2001 -X" the device switches to cdc_ncm mode (see kernel logs). For the device to work out of the box I think the device must use the kernel driver cdc_ether or rndis.
I tried several mode switches but was not able to set any other mode than cdc_ncm. Any ideas on how to enable cdc_ether?

rstrise
Posts: 1
Joined: 16 Jan 2023, 15:01

Re: Brovi E3372 (manufactured by Huawei)

Post by rstrise » 16 Jan 2023, 15:09

Has anybody got this modem to work? I've tried all variants in this thread, the most i got was a not-working network interface (NO-CARRIER):

Code: Select all

sudo usb_modeswitch -v 3566 -p 2001 -X
[10962.447777] usb 4-2: USB disconnect, device number 27
[10962.726186] usb 4-2: new high-speed USB device number 28 using xhci_hcd
[10962.855766] usb 4-2: New USB device found, idVendor=3566, idProduct=2001, bcdDevice=ff.ff
[10962.855777] usb 4-2: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[10962.855780] usb 4-2: Product: Mobile
[10962.855783] usb 4-2: Manufacturer: Mobile
[10962.855785] usb 4-2: SerialNumber: 123456789ABCD
[10962.858978] usb 4-2: Interface #0 referenced by multiple IADs
[10962.891104] usb 4-2: Interface #1 referenced by multiple IADs
[10962.984780] cdc_ncm 4-2:1.5: MAC-Address: 06:ce:fe:26:82:1c
[10962.985155] cdc_ncm 4-2:1.5 usb0: register 'cdc_ncm' at usb-0000:07:00.3-2, CDC NCM (NO ZLP), 06:ce:fe:26:82:1c
[10963.014025] cdc_ncm 4-2:1.5 enp7s0f3u2i5: renamed from usb0

25: enp7s0f3u2i5: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 06:ce:fe:26:82:1c brd ff:ff:ff:ff:ff:ff

raulcr
Posts: 1
Joined: 31 Jan 2023, 12:16

Re: Brovi E3372 (manufactured by Huawei)

Post by raulcr » 31 Jan 2023, 12:34

Any updates on this topic? I have tried using "sudo usb_modeswitch -v 3566 -p 2001 -X" but it only generates a usb1 network with cdn_ncm with no IP.

This is the dmesg as I connect the Brovi e3372-325

Code: Select all

dmesg
[   16.970354] usb 1-2.3: new high-speed USB device number 5 using tegra-xusb
[   16.995808] usb 1-2.3: New USB device found, idVendor=3566, idProduct=2001
[   16.995815] usb 1-2.3: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[   16.995819] usb 1-2.3: Product: Mobile
[   16.995823] usb 1-2.3: Manufacturer: Mobile
[   16.995826] usb 1-2.3: SerialNumber: 123456789ABCD
[   18.649526] rndis_host 1-2.3:1.0 usb1: register 'rndis_host' at usb-70090000.xusb-2.3, RNDIS device, ea:4d:a4:34:dc:be
[   18.649604] usbcore: registered new interface driver rndis_host
[   18.692731] IPv6: ADDRCONF(NETDEV_UP): usb1: link is not ready
[   18.956665] l4tbr0: port 1(rndis0) entered blocking state
[   18.956670] l4tbr0: port 1(rndis0) entered forwarding state
[   18.957488] IPv6: ADDRCONF(NETDEV_UP): l4tbr0: link is not ready
[   18.957505] IPv6: ADDRCONF(NETDEV_CHANGE): l4tbr0: link becomes ready
[   19.050815] usb 1-2.3: USB disconnect, device number 5
[   19.051449] rndis_host 1-2.3:1.0 usb1: unregister 'rndis_host' usb-70090000.xusb-2.3, RNDIS device
[   20.046351] usb 1-2.3: new high-speed USB device number 6 using tegra-xusb
[   20.068426] usb 1-2.3: New USB device found, idVendor=3566, idProduct=2001
[   20.068432] usb 1-2.3: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[   20.068436] usb 1-2.3: Product: Mobile
[   20.068440] usb 1-2.3: Manufacturer: Mobile
[   20.068443] usb 1-2.3: SerialNumber: 123456789ABCD
[   20.070573] usb-storage 1-2.3:1.0: USB Mass Storage device detected
[   20.075182] scsi host0: usb-storage 1-2.3:1.0
[   21.083435] scsi 0:0:0:0: CD-ROM            Linux    File-Stor Gadget 0310 PQ: 0 ANSI: 2
This is what I tried:

Code: Select all

 sudo usb_modeswitch -v 3566 -p 2001 -X
Look for default devices ...
 Found devices in default mode (1)
Access device 006 on bus 001
Get the current device configuration ...
Current configuration number is 1
Use interface number 0
 with class 8
Use endpoints 0x01 (out) and 0x81 (in)
Using alternative Huawei switching message
Looking for active drivers ...
 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
Read the response to message 1 (CSW) ...
 Response successfully read (13 bytes), status 0
Reset response endpoint 0x81
 Could not reset endpoint (probably harmless): -99
Reset message endpoint 0x01
 Could not reset endpoint (probably harmless): -99
 Device is gone, skip any further commands
-> Run lsusb to note any changes. Bye!	
There was no change in lsusb. This is whay I get:

Code: Select all

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp.
Bus 001 Device 007: ID 3566:2001
Bus 001 Device 004: ID 0c76:1203 JMTek, LLC.
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

This is the only change. A usb1 interface is generated:

Code: Select all

 ifconfig
usb1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 0a:34:49:4b:15:08  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
This is the output of dmesg after the usb_modeswitch

Code: Select all

dmesg
[  174.418369] usb 1-2.3: new high-speed USB device number 7 using tegra-xusb
[  174.443052] usb 1-2.3: New USB device found, idVendor=3566, idProduct=2001
[  174.443079] usb 1-2.3: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[  174.443095] usb 1-2.3: Product: Mobile
[  174.443110] usb 1-2.3: Manufacturer: Mobile
[  174.443124] usb 1-2.3: SerialNumber: 123456789ABCD
[  174.449274] usb 1-2.3: Interface #0 referenced by multiple IADs
[  174.455497] usb 1-2.3: Interface #1 referenced by multiple IADs
[  174.487660] cdc_ncm 1-2.3:1.5: MAC-Address: 4e:a6:9c:86:f2:17
[  174.488122] cdc_ncm 1-2.3:1.5 usb1: register 'cdc_ncm' at usb-70090000.xusb-2.3, CDC NCM, 4e:a6:9c:86:f2:17
[  174.571973] IPv6: ADDRCONF(NETDEV_UP): usb1: link is not ready
[  174.572162] IPv6: ADDRCONF(NETDEV_UP): usb1: link is not ready
[  174.602668] cdc_ncm 1-2.3:1.5 usb1: 425 mbit/s downlink 425 mbit/s uplink

MadsAG
Posts: 3
Joined: 03 Feb 2023, 13:30

Re: Brovi E3372 (manufactured by Huawei)

Post by MadsAG » 03 Feb 2023, 14:09

kraev wrote: 07 Dec 2022, 12:43 /etc/udev/rules.d/40-huawei.rules:
# This is part of USB_ModeSwitch version 1.x.x
#
ACTION!="add", GOTO="modeswitch_rules_end"
SUBSYSTEM!="usb", GOTO="modeswitch_rules_end"

# All known install partitions are on interface 0
ATTRS{bInterfaceNumber}!="00", GOTO="modeswitch_rules_end"

# only storage class devices are handled; negative
# filtering here would exclude some quirky devices
ATTRS{bDeviceClass}=="e0", GOTO="modeswitch_rules_begin"
ATTRS{bInterfaceClass}=="e0", GOTO="modeswitch_rules_begin"
GOTO="modeswitch_rules_end"

LABEL="modeswitch_rules_begin"
# Huawei E3372-325
ATTRS{idVendor}=="3566", ATTRS{idProduct}=="2001", RUN+="/sbin/usb_modeswitch -v 3566 -p 2001 -W -R -w 400"
ATTRS{idVendor}=="3566", ATTRS{idProduct}=="2001", RUN+="/sbin/usb_modeswitch -v 3566 -p 2001 -W -R"

LABEL="modeswitch_rules_end"
This worked for me! Thank you very much.

MadsAG
Posts: 3
Joined: 03 Feb 2023, 13:30

Re: Brovi E3372 (manufactured by Huawei)

Post by MadsAG » 03 Feb 2023, 14:38

MadsAG wrote: 03 Feb 2023, 14:09
kraev wrote: 07 Dec 2022, 12:43 /etc/udev/rules.d/40-huawei.rules:
# This is part of USB_ModeSwitch version 1.x.x
#
ACTION!="add", GOTO="modeswitch_rules_end"
SUBSYSTEM!="usb", GOTO="modeswitch_rules_end"

# All known install partitions are on interface 0
ATTRS{bInterfaceNumber}!="00", GOTO="modeswitch_rules_end"

# only storage class devices are handled; negative
# filtering here would exclude some quirky devices
ATTRS{bDeviceClass}=="e0", GOTO="modeswitch_rules_begin"
ATTRS{bInterfaceClass}=="e0", GOTO="modeswitch_rules_begin"
GOTO="modeswitch_rules_end"

LABEL="modeswitch_rules_begin"
# Huawei E3372-325
ATTRS{idVendor}=="3566", ATTRS{idProduct}=="2001", RUN+="/sbin/usb_modeswitch -v 3566 -p 2001 -W -R -w 400"
ATTRS{idVendor}=="3566", ATTRS{idProduct}=="2001", RUN+="/sbin/usb_modeswitch -v 3566 -p 2001 -W -R"

LABEL="modeswitch_rules_end"
This worked for me! Thank you very much.
Okay, the device works but it does not reconnect after a reboot. Device works again after replugging. Will submit logs later.

ernstp
Posts: 4
Joined: 09 Jan 2023, 11:06

Re: Brovi E3372 (manufactured by Huawei)

Post by ernstp » 06 Feb 2023, 13:51

Ok so
ATTRS{idVendor}=="3566", ATTRS{idProduct}=="2001", RUN+="/sbin/usb_modeswitch -v 3566 -p 2001 -W -R -w 400"
ATTRS{idVendor}=="3566", ATTRS{idProduct}=="2001", RUN+="/sbin/usb_modeswitch -v 3566 -p 2001 -W -R"

seems to put it in RNDIS mode. I got it to work to some extent with that here also...

However RNDIS: https://www.phoronix.com/news/Linux-Dis ... IS-Drivers :-)

wouter-heerwegh
Posts: 1
Joined: 03 Feb 2023, 18:18

Re: Brovi E3372 (manufactured by Huawei)

Post by wouter-heerwegh » 07 Feb 2023, 12:55

kraev wrote: 07 Dec 2022, 12:43 /etc/udev/rules.d/40-huawei.rules:
# This is part of USB_ModeSwitch version 1.x.x
#
ACTION!="add", GOTO="modeswitch_rules_end"
SUBSYSTEM!="usb", GOTO="modeswitch_rules_end"

# All known install partitions are on interface 0
ATTRS{bInterfaceNumber}!="00", GOTO="modeswitch_rules_end"

# only storage class devices are handled; negative
# filtering here would exclude some quirky devices
ATTRS{bDeviceClass}=="e0", GOTO="modeswitch_rules_begin"
ATTRS{bInterfaceClass}=="e0", GOTO="modeswitch_rules_begin"
GOTO="modeswitch_rules_end"

LABEL="modeswitch_rules_begin"
# Huawei E3372-325
ATTRS{idVendor}=="3566", ATTRS{idProduct}=="2001", RUN+="/sbin/usb_modeswitch -v 3566 -p 2001 -W -R -w 400"
ATTRS{idVendor}=="3566", ATTRS{idProduct}=="2001", RUN+="/sbin/usb_modeswitch -v 3566 -p 2001 -W -R"

LABEL="modeswitch_rules_end"
I tried this but it doesn't seem like the usb_modeswitch get's triggered. My device never seems to have bDeviceClass == "e0" or bInterfaceClass == "e0". I'm running Ubuntu 20.04.

MadsAG
Posts: 3
Joined: 03 Feb 2023, 13:30

Re: Brovi E3372 (manufactured by Huawei)

Post by MadsAG » 24 Feb 2023, 01:52

I finally have a working modem, both with cold/warm boots and hotplugging.

Thanks to Pavel Piatruk for solving my booting issues.

https://blog.tanatos.org/posts/huawei_e ... ith_linux/

After following that guide I still had the rebooting issues, but he connected remotely and solved it with these commands:

Code: Select all

usb_modeswitch -v  3566 -p 2001  -X
modprobe option
echo  3566 2001 ff > /sys/bus/usb-serial/drivers/option1/new_id
ls -la /dev/ttyUSB4| grep dialout && {
    echo AT^RESET > /dev/ttyUSB4
    timeout 2 cat /dev/ttyUSB4
    }
I've thrown that and some delay between the commands in a script and run that with cron at reboot.

tonybrain
Posts: 1
Joined: 24 Feb 2023, 10:12

Re: Brovi E3372 (manufactured by Huawei)

Post by tonybrain » 24 Feb 2023, 10:23

May I know your /proc/bus/usb/devices file content or other similar file which shows the usb device attribute:

The following is mine: It matches the cdc_ncm but the new interface usb0 can't get the dhcp ip from the modem:

T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=480 MxCh= 0
D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=3566 ProdID=2001 Rev=ff.ff
S: Manufacturer=Mobile
S: Product=Mobile
S: SerialNumber=123456789ABCD
C:* #Ifs= 7 Cfg#= 1 Atr=e0 MxPwr= 2mA
A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=02 Prot=01
A: FirstIf#= 3 IfCount= 2 Cls=02(comm.) Sub=02 Prot=01
A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00
I:* If#= 0 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E: Ad=83(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E: Ad=86(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm
E: Ad=88(I) Atr=03(Int.) MxPS= 16 Ivl=32ms
I: If#= 6 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
I:* If#= 6 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
E: Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

MadsAG wrote: 24 Feb 2023, 01:52 I finally have a working modem, both with cold/warm boots and hotplugging.

Thanks to Pavel Piatruk for solving my booting issues.

https://blog.tanatos.org/posts/huawei_e ... ith_linux/

After following that guide I still had the rebooting issues, but he connected remotely and solved it with these commands:

Code: Select all

usb_modeswitch -v  3566 -p 2001  -X
modprobe option
echo  3566 2001 ff > /sys/bus/usb-serial/drivers/option1/new_id
ls -la /dev/ttyUSB4| grep dialout && {
    echo AT^RESET > /dev/ttyUSB4
    timeout 2 cat /dev/ttyUSB4
    }
I've thrown that and some delay between the commands in a script and run that with cron at reboot.

nhcb
Posts: 1
Joined: 28 Feb 2023, 00:51

Re: Brovi E3372 (manufactured by Huawei)

Post by nhcb » 28 Feb 2023, 01:06

I had below problem as well, however it seems you just needed to request the inet address using sudo dhclient:

The ifconfig command in Ubuntu is used to display network interface configuration information. The ether address you mentioned is the MAC address of the network interface, which is a unique identifier assigned to each network interface.

The inet and inet6 addresses represent the IPv4 and IPv6 addresses assigned to the network interface respectively. If you don't see any inet or inet6 address for your 4G dongle, it could mean that the dongle is not properly connected or that it has not yet obtained an IP address from the network.

You can try running the command sudo dhclient to request an IP address from the DHCP server of the network. If this command does not work, you may need to configure the network interface manually by editing the /etc/network/interfaces file.

I asket ChatGPT!
raulcr wrote: 31 Jan 2023, 12:34 Any updates on this topic? I have tried using "sudo usb_modeswitch -v 3566 -p 2001 -X" but it only generates a usb1 network with cdn_ncm with no IP.

This is the dmesg as I connect the Brovi e3372-325

Code: Select all

dmesg
[   16.970354] usb 1-2.3: new high-speed USB device number 5 using tegra-xusb
[   16.995808] usb 1-2.3: New USB device found, idVendor=3566, idProduct=2001
[   16.995815] usb 1-2.3: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[   16.995819] usb 1-2.3: Product: Mobile
[   16.995823] usb 1-2.3: Manufacturer: Mobile
[   16.995826] usb 1-2.3: SerialNumber: 123456789ABCD
[   18.649526] rndis_host 1-2.3:1.0 usb1: register 'rndis_host' at usb-70090000.xusb-2.3, RNDIS device, ea:4d:a4:34:dc:be
[   18.649604] usbcore: registered new interface driver rndis_host
[   18.692731] IPv6: ADDRCONF(NETDEV_UP): usb1: link is not ready
[   18.956665] l4tbr0: port 1(rndis0) entered blocking state
[   18.956670] l4tbr0: port 1(rndis0) entered forwarding state
[   18.957488] IPv6: ADDRCONF(NETDEV_UP): l4tbr0: link is not ready
[   18.957505] IPv6: ADDRCONF(NETDEV_CHANGE): l4tbr0: link becomes ready
[   19.050815] usb 1-2.3: USB disconnect, device number 5
[   19.051449] rndis_host 1-2.3:1.0 usb1: unregister 'rndis_host' usb-70090000.xusb-2.3, RNDIS device
[   20.046351] usb 1-2.3: new high-speed USB device number 6 using tegra-xusb
[   20.068426] usb 1-2.3: New USB device found, idVendor=3566, idProduct=2001
[   20.068432] usb 1-2.3: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[   20.068436] usb 1-2.3: Product: Mobile
[   20.068440] usb 1-2.3: Manufacturer: Mobile
[   20.068443] usb 1-2.3: SerialNumber: 123456789ABCD
[   20.070573] usb-storage 1-2.3:1.0: USB Mass Storage device detected
[   20.075182] scsi host0: usb-storage 1-2.3:1.0
[   21.083435] scsi 0:0:0:0: CD-ROM            Linux    File-Stor Gadget 0310 PQ: 0 ANSI: 2
This is what I tried:

Code: Select all

 sudo usb_modeswitch -v 3566 -p 2001 -X
Look for default devices ...
 Found devices in default mode (1)
Access device 006 on bus 001
Get the current device configuration ...
Current configuration number is 1
Use interface number 0
 with class 8
Use endpoints 0x01 (out) and 0x81 (in)
Using alternative Huawei switching message
Looking for active drivers ...
 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
Read the response to message 1 (CSW) ...
 Response successfully read (13 bytes), status 0
Reset response endpoint 0x81
 Could not reset endpoint (probably harmless): -99
Reset message endpoint 0x01
 Could not reset endpoint (probably harmless): -99
 Device is gone, skip any further commands
-> Run lsusb to note any changes. Bye!	
There was no change in lsusb. This is whay I get:

Code: Select all

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp.
Bus 001 Device 007: ID 3566:2001
Bus 001 Device 004: ID 0c76:1203 JMTek, LLC.
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

This is the only change. A usb1 interface is generated:

Code: Select all

 ifconfig
usb1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 0a:34:49:4b:15:08  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
This is the output of dmesg after the usb_modeswitch

Code: Select all

dmesg
[  174.418369] usb 1-2.3: new high-speed USB device number 7 using tegra-xusb
[  174.443052] usb 1-2.3: New USB device found, idVendor=3566, idProduct=2001
[  174.443079] usb 1-2.3: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[  174.443095] usb 1-2.3: Product: Mobile
[  174.443110] usb 1-2.3: Manufacturer: Mobile
[  174.443124] usb 1-2.3: SerialNumber: 123456789ABCD
[  174.449274] usb 1-2.3: Interface #0 referenced by multiple IADs
[  174.455497] usb 1-2.3: Interface #1 referenced by multiple IADs
[  174.487660] cdc_ncm 1-2.3:1.5: MAC-Address: 4e:a6:9c:86:f2:17
[  174.488122] cdc_ncm 1-2.3:1.5 usb1: register 'cdc_ncm' at usb-70090000.xusb-2.3, CDC NCM, 4e:a6:9c:86:f2:17
[  174.571973] IPv6: ADDRCONF(NETDEV_UP): usb1: link is not ready
[  174.572162] IPv6: ADDRCONF(NETDEV_UP): usb1: link is not ready
[  174.602668] cdc_ncm 1-2.3:1.5 usb1: 425 mbit/s downlink 425 mbit/s uplink

ernstp
Posts: 4
Joined: 09 Jan 2023, 11:06

Re: Brovi E3372 (manufactured by Huawei)

Post by ernstp » 03 Mar 2023, 10:21

I have heard from a procurement person that there will be a OTA update in the future that will add a USB profile with the old Huawei 3372-320 profile and cdc_ether support in _this_ modem.

DragonBender
Posts: 1
Joined: 30 Mar 2023, 20:13

Re: Brovi E3372 (manufactured by Huawei)

Post by DragonBender » 30 Mar 2023, 20:19

Gosh, I tried all of this and all I could find around the internet.
I have the 3566:2001 device and Rpi4.

If I start Rpi4 with the dongle inserted - it is discoverable in lsusb, it pretends to work, but there's nothing in ifconfig and no /dev/ttyUSB* devices.
I tried all the modeswitch things - nothing changes that, the device just ignores it.

If I physically remove the device and plug back (even not doing anything else) - it registers properly and I have the usb0 device in ifconfig with internet!

I tried the trick of disabling and enabling the USB (echo '1-1' | sudo tee /sys/bus/usb/drivers/usb/{un}bind) - it does not change anything. Looks like I need to physically remove the power from the dongle, whcih Rpi4 can't do. So I'm starting to consider the MOSFET solution to control its power and reset shortly after the system start. Which is sad.

Any better suggestions?

Post Reply