Brovi E3372 (manufactured by Huawei)
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
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
Re: Brovi E3372 (manufactured by Huawei)
/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 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"
Re: Brovi E3372 (manufactured by Huawei)
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?
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?
Re: Brovi E3372 (manufactured by Huawei)
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?
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?
Re: Brovi E3372 (manufactured by Huawei)
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
Re: Brovi E3372 (manufactured by Huawei)
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
This is what I tried:
There was no change in lsusb. This is whay I get:
This is the only change. A usb1 interface is generated:
This is the output of dmesg after the usb_modeswitch
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
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!
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
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
Re: Brovi E3372 (manufactured by Huawei)
This worked for me! Thank you very much.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"
Re: Brovi E3372 (manufactured by Huawei)
Okay, the device works but it does not reconnect after a reboot. Device works again after replugging. Will submit logs later.MadsAG wrote: ↑03 Feb 2023, 14:09This worked for me! Thank you very much.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"
Re: Brovi E3372 (manufactured by Huawei)
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
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
-
- Posts: 1
- Joined: 03 Feb 2023, 18:18
Re: Brovi E3372 (manufactured by Huawei)
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.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"
Re: Brovi E3372 (manufactured by Huawei)
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:
I've thrown that and some delay between the commands in a script and run that with cron at reboot.
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
}
Re: Brovi E3372 (manufactured by Huawei)
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
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:I've thrown that and some delay between the commands in a script and run that with cron at reboot.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 }
Re: Brovi E3372 (manufactured by Huawei)
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!
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-325This is what I tried: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
There was no change in lsusb. This is whay I get: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!
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:
This is the output of dmesg after the usb_modeswitchCode: 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
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
Re: Brovi E3372 (manufactured by Huawei)
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.
-
- Posts: 1
- Joined: 30 Mar 2023, 20:13
Re: Brovi E3372 (manufactured by Huawei)
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?
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?