# Multi-Tech USB Modem

## grondinm

Hello,

I am trying to get this Multi-Tech USB modem i found working on Gentoo. When I connect the modem to USB this is what DMESG shows

```

[    1.304995] usb 1-5: new full-speed USB device number 2 using xhci_hcd

[    1.574594] usb 1-5: device descriptor read/all, error -71

[    1.690342] usb 1-5: new full-speed USB device number 3 using xhci_hcd

[    1.963134] usb 1-5: device descriptor read/all, error -71

[    2.344350] usb 1-5: new full-speed USB device number 4 using xhci_hcd

[    2.466908] usb 1-5: device descriptor read/8, error -71

[    2.665121] usb 1-5: device descriptor read/8, error -71

[    2.887982] usb 1-5: new full-speed USB device number 5 using xhci_hcd

[    3.009373] usb 1-5: device descriptor read/8, error -71

[    3.209036] usb 1-5: device descriptor read/8, error -71

```

Nothing shows under lsusb

If I connect the same device to my Manjaro system at work it shows this

```

[27750.265427] usb 3-10: new full-speed USB device number 11 using xhci_hcd

[27750.481917] usb 3-10: New USB device found, idVendor=06e0, idProduct=f103, bcdDevice= 1.00

[27750.481922] usb 3-10: New USB device strings: Mfr=1, Product=2, SerialNumber=0

[27750.481923] usb 3-10: Product: MultiModemUSB

[27750.481925] usb 3-10: Manufacturer: Multi-Tech Systems, Inc.

[27753.138096] cdc_acm 3-10:2.0: ttyACM0: USB ACM device

```

The device shows under lsusb and /dev/ttyACM0 is created.

So something is missing in the kernel on my home system I assume. I did enable some options relating to USB ACM but that did not help.

What else could I be missing? I did some quick searching last night before bed and saw something relating to enabling IOMMU but as far as I can tell that's all enabled and I'm not really sure how related that is. I was grasping quickly last night as I did not expect problems. Both systems are running 5.13 kernel. One difference is Work system is Intel and home system is AMD.

----------

## alamahant

Welcome to Gentoo!

From the manufacturer

 *Quote:*   

> 
> 
> a. cd linux-x.x.x
> 
> b. make menuconfig
> ...

 

https://www.multitech.com/documents/publications/manuals/s000616.pdf

You need apparently 

```

cdc-acm

```

Try running

```

modprobe cdc-acm ####if no error

lsmod | grep cdc

```

Emerging also

linux-firmware

couldnt hurt.

I looked in my huge kernel .config and found these

```

grep -i cdc /usr/src/linux/.config

CONFIG_USB_NET_CDCETHER=m

CONFIG_USB_NET_CDC_EEM=m

CONFIG_USB_NET_CDC_NCM=m

CONFIG_USB_NET_HUAWEI_CDC_NCM=m

CONFIG_USB_NET_CDC_MBIM=m

CONFIG_USB_NET_CDC_SUBSET_ENABLE=m

CONFIG_USB_NET_CDC_SUBSET=m

CONFIG_USB_CDC_PHONET=m

CONFIG_BRCMFMAC_PROTO_BCDC=y

CONFIG_USB_CDC_COMPOSITE=m

CONFIG_USB_G_MULTI_CDC=y

CONFIG_COMMON_CLK_CDCE706=m

grep -i acm /usr/src/linux/.config

CONFIG_USB_ACM=m

CONFIG_USB_F_ACM=m

CONFIG_USB_CONFIGFS_ACM=y

CONFIG_USB_G_ACM_MS=m

```

Is yours similar?

If not plz go to your "menuconfig" again.

----------

## NeddySeagoon

grondinm,

Welcome to Gentoo.

All that flapping about on the USB Bus suggests a power issue or something else USB related.

The device descriptor is the Vendor and Device IDs stored in the device. No drivers are needed for that.

Please put the output of 

```
lsusb -vvv
```

onto a pastebin.

If its a power issue (bus power overload), it may work in a different USB port.

USB3 ports can source 900mA for all connected devices.

USB2 and USB1 only 500mA.

----------

## grondinm

Hello alamahant,

Thank you for the reply. The option i had enabled was USB_ACM which read "USB Modem (CDC ACM) support"

```

grep -i acm /usr/src/linux/.config

CONFIG_USB_ACM=y

CONFIG_USB_F_ACM=y

CONFIG_USB_CONFIGFS_ACM=y

# CONFIG_USB_G_ACM_MS is not set

```

I figured that's all that was needed.

I will look at the other options for CDC you found. I do not have all this in my config just

```

grep -i cdc /usr/src/linux/.config

# CONFIG_USB_CDC_COMPOSITE is not set

# CONFIG_COMMON_CLK_CDCE706 is not set

```

I have linux-firmware installed.

Hi NeddySeagoon,

Thank you also for the reply. I will post the output of that when i get back home.

I am able to power other things from the same port(s)(maybe not as power demanding as the modem) but i do have many USB devices in general connected to my PC(External HDD's). While the system is booting (like during POST and before kernel) the lights on the modem behave the same as when i connect to my work PC. Once the kernel boots all lights turn off on the modem and the pasted error above are recorded.

----------

## grondinm

New reply just so it shows as new...

Here is the output of lsusb -vvv

https://paste.marcg.pizza/~marcg/106f0a6414e8edffa9dc6cf0f6823dbdad0ab78b

And if it has to relate here is dmesg from when i connected the device before getting that output

```

[71210.541693] usb 1-6: new full-speed USB device number 10 using xhci_hcd

[71210.809287] usb 1-6: device descriptor read/all, error -71

[71210.926034] usb 1-6: new full-speed USB device number 11 using xhci_hcd

[71211.196610] usb 1-6: device descriptor read/all, error -71

[71211.196646] usb usb1-port6: attempt power cycle

[71211.578677] usb 1-6: new full-speed USB device number 12 using xhci_hcd

[71211.698985] usb 1-6: device descriptor read/8, error -71

[71211.898290] usb 1-6: device descriptor read/8, error -71

[71212.122695] usb 1-6: new full-speed USB device number 13 using xhci_hcd

[71212.243754] usb 1-6: device descriptor read/8, error -71

[71212.442735] usb 1-6: device descriptor read/8, error -71

[71212.549740] usb usb1-port6: unable to enumerate USB device

```

----------

## NeddySeagoon

grondinm,

The power limit applies to a USB 'root hub'. That's typically two USB ports on the PC.

If the device as a mobile data modem it will want 500mA all to itself, so you may not be able to operate any other bus powered devices on the same root. hub.

----------

## NeddySeagoon

grondinm, 

We cross posted. I put your pastebin into a file so I could grep a few things.

Heres your USB bus power tree.

```
$ grep -i -e 'bus 0' -e maxpower grondinm

Bus 004 Device 002: ID 0480:0212 Toshiba America Inc External USB 3.0

    MaxPower              896mA

Bus 004 Device 003: ID 0480:0212 Toshiba America Inc External USB 3.0

    MaxPower              896mA

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

    MaxPower                0mA

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    MaxPower                0mA

Bus 002 Device 002: ID 1058:1230 Western Digital Technologies, Inc. My Book (WDBFJK)

    MaxPower                8mA

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

    MaxPower                0mA

Bus 001 Device 007: ID 17f6:0821 Unicomp, Inc. R6_0_Trackball_v3_45

    MaxPower              100mA

Bus 001 Device 009: ID 046d:c534 Logitech, Inc. Unifying Receiver

    MaxPower               98mA

Bus 001 Device 008: ID 1058:0827 Western Digital Technologies, Inc. My Passport 0827

    MaxPower              500mA

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
```

Bus 001 needs to supply 698mA Its a USB 2 root hub, so its specification limit is 500mA.

Bus 002 only has an 8mA load. Its a USB 3 root hub, so its specification limit is 900mA.

Bus 003 is an unused USB 2 root hub.

Bus 004 needs to supply 1792mA.  Its a USB 3 root hub, so its specification limit is 900mA.

When USB buses ore overloaded, one of three things can happen.

1. Nothing at all until the copper trace vanishes from the PCB.

2. The affected bus does load shedding. It shuts down one or more devices until the load is within limits.

3. Bus power cycling occurs, and you see logs such as you reported.

We know from     

```
[    1.304995] usb 1-5: new full-speed USB device number 2 using xhci_hcd

[    1.574594] usb 1-5: device descriptor read/all, error -71 
```

That the device was connected to your Bus 001, which is already overloaded.

Can you try the modem on your Bus 003 ?

The bus number is the first number in the dmesg fragment 

```
usb 1-5: new full-speed USB device number 2 using xhci_hcd
```

Here it's 1.

Can you rearrange everything else to get the bus power within limits?

For testing, can you unplug the two Toshiba America Inc External USB 3.0 rotating rust HDD and connect the modem in place of one of them?

The idea is only to prove if its a power problem or not. 

Making it work comes after it stays on the Bus.

----------

## grondinm

Alright. So if anything i'm learning things about USB in this process. Did not realize there was a power limit on the bus.

That said i unmounted/unplugged the 2 Toshiba drives and connected the modem in place of one and the same thing happened.

The output of lsusb -vvv from after i removed them is here

https://paste.marcg.pizza/~marcg/398b9650cbabdf65e488d5c574ecf2cda39fdbb8

Not sure if that provides anything else of use.

I can see that bus 1 is still over but bus 4 is now providing nothing.

```

[76996.773690] usb 3-1: new full-speed USB device number 10 using xhci_hcd

[76996.915147] usb 3-1: device descriptor read/all, error -71

[76997.029725] usb 3-1: new full-speed USB device number 11 using xhci_hcd

[76997.170161] usb 3-1: device descriptor read/all, error -71

[76997.170209] usb usb3-port1: attempt power cycle

[76997.550055] usb 3-1: new full-speed USB device number 12 using xhci_hcd

[76997.569131] usb 3-1: device descriptor read/8, error -71

[76997.691161] usb 3-1: device descriptor read/8, error -71

[76997.907690] usb 3-1: new full-speed USB device number 13 using xhci_hcd

[76997.925130] usb 3-1: device descriptor read/8, error -71

[76998.052132] usb 3-1: device descriptor read/8, error -71

[76998.153739] usb usb3-port1: unable to enumerate USB device

```

I tried to unplug the WD drive from bus 1 as well but that did not help either. I suspect this is not a power issue then?

With the hubs like this

```

grep -i -e 'bus 0' -e maxpower afterToshiba2

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

    MaxPower                0mA

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    MaxPower                0mA

Bus 002 Device 002: ID 1058:1230 Western Digital Technologies, Inc. My Book (WDBFJK)

    MaxPower                8mA

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

    MaxPower                0mA

Bus 001 Device 007: ID 17f6:0821 Unicomp, Inc. R6_0_Trackball_v3_45

    MaxPower              100mA

Bus 001 Device 019: ID 046d:c534 Logitech, Inc. Unifying Receiver

    MaxPower               98mA

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    MaxPower                0mA

```

And the modem plugged into every free USB port on the system the results stay the same.

***UPDATE***

Well now i'm more confused. I downloaded Manjaro and booted the live CD and the modem behaved the same way...

So somehow it's my pc + linux + this modem that are not compatible...which is just odd. The mdem only seems to powerdown(all lights turn off) after the linux kernel kicks in. Before that it shows some life with a LED on...I'm out of ideas at this point. Well my last idea is to bring the modem back to work tomorrow and see what lsusb -vvv reports as it's power usage.

----------

## grondinm

Here is the result of lsusb -vvv showing the modem from my work system running Manjaro... Can it really be trying to pull 800mA??

```

grep -i -e 'bus 0' -e maxpower Modem 

Bus 002 Device 002: ID 8087:8000 Intel Corp. Integrated Rate Matching Hub

    MaxPower                0mA

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    MaxPower                0mA

Bus 001 Device 002: ID 8087:8008 Intel Corp. Integrated Rate Matching Hub

    MaxPower                0mA

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    MaxPower                0mA

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

    MaxPower                0mA

Bus 003 Device 003: ID 413c:301d Dell Computer Corp. Dell Universal Receiver

    MaxPower              100mA

Bus 003 Device 013: ID 06e0:f103 Multi-Tech Systems, Inc. MT5634MU MultiMobileUSB

    MaxPower              400mA

    MaxPower              400mA

Bus 003 Device 002: ID 0557:2220 ATEN International Co., Ltd ATEN  CS-1758/54

    MaxPower              100mA

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    MaxPower                0mA

```

And the whole thing just in case

https://paste.marcg.pizza/~marcg/e147fa00fd46aa7801806fd748216dfdf4571d56

Tonight i'm going to disconnect all other USB devices(except my mouse and keyboard) and live boot Manjaro on my desktop again to see what it does.

(Semi unrelated but i was able to confirm the modem fully works under Manjaro. At least while live booted from my laptop.)

----------

## NeddySeagoon

grondinm,

Your modem shows as

```
Bus 003 Device 013: ID 06e0:f103 Multi-Tech Systems, Inc. MT5634MU MultiMobileUSB

Device Descriptor:

  bLength                18

  bDescriptorType         1

  bcdUSB               1.00

  bDeviceClass            2 Communications

  bDeviceSubClass         0 

  bDeviceProtocol         0 

  bMaxPacketSize0         8

  idVendor           0x06e0 Multi-Tech Systems, Inc.

  idProduct          0xf103 MT5634MU MultiMobileUSB

  bcdDevice            1.00

  iManufacturer           1 Multi-Tech Systems, Inc.

  iProduct                2 MultiModemUSB

  iSerial                 0 

  bNumConfigurations      2

...
```

 so it offers the host two possible ways to configure the device.

Each of the Configuration Descriptors contains the

```
     MaxPower              400mA
```

entry.

The device will only draw 400mA, however its configured.

On manjaro, the USB port is USB2

```
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
```

As the modem says   

```
bcdUSB               1.00
```

its a USB 1 device. 

USB3 is supposed to be backwards compatible with USB1. That means different things to different vendors.

How did you configure and build your Gentoo kernel?

USB2 with a Transaction Translator (and software support) can be backwards compatible.

----------

## grondinm

Thank you again for the replies and help.

So i forget exactly how i generated the config i use but i think it started from a 

```
make localyesconfig
```

 and then I tweaked it for amdgpu and added/removed things overtime.

Here is the config

https://paste.marcg.pizza/~marcg/a8c9ff3d0c48406ec320efdafcb1c19e411aee69

I just used the base gentoo-sources package.

----------

## NeddySeagoon

grondinm,

A few things.

```
CONFIG_USB_EHCI_ROOT_HUB_TT=y

CONFIG_USB_EHCI_TT_NEWSCHED=y
```

Good. That's USB1 support on USB2 root hubs, providing you have the Transaction Translation hardware.

You will as your lsusb output shows that you don't have any USB1 root hubs.

That means that 

```
CONFIG_USB_OHCI_HCD=y

CONFIG_USB_OHCI_HCD_PCI=y

# CONFIG_USB_OHCI_HCD_PLATFORM is not set

CONFIG_USB_UHCI_HCD=y
```

should all be off.

Its a long shot, as I've not seen it in a while, but loading USB1 and USB2 support in the wrong order made a mess of things.

If you are going to update your kernel, add in 

```
# CONFIG_USB_UAS is not set
```

Right now, your USB3 HDD can only use 'bulk mode', which is like IDE PIO modes. Slow and CPU intensive as the CPU does the data transfer.

USB Attached SCSI (UAS) adds DMA, NCQ and all those other good things that hard drives do.

It requires USB3 and support by the drives.  It won't be used if the drives don't support it.

That's probably worth a kernel rebuild on its own.

Do check the time/date in 

```
uname -a
```

after you reboot. That's the build time and date of the running kernel.

Its good to know that you are running the kernel you think you are :)

----------

## grondinm

Unfortunately that did not change things. Still same result with the modem.

Is it possible that it's just lack of(or bad) USB1 support on my motherboard?

Thanks for the heads up on UAS.

----------

