Peter Schüller <contact@xxxxxxxxxxxxxxxxxx> writes: > [corrected email of Kai-Heng Feng] > > Am Mo., 18. März 2019 um 15:39 Uhr schrieb Dan Williams <dcbw@xxxxxxxxxx>: >> [removing netdev list...] >> >> With the modem plugged in, could you grab the output of: >> >> lsusb -v -d 12d1:14dc > > The output is on STDERR > > Couldn't open device, some information will be missing > > and on STDOUT > > Bus 001 Device 009: ID 12d1:14dc Huawei Technologies Co., Ltd. > Device Descriptor: > bLength 18 > bDescriptorType 1 > bcdUSB 2.00 > bDeviceClass 2 Communications > bDeviceSubClass 0 > bDeviceProtocol 0 > bMaxPacketSize0 64 > idVendor 0x12d1 Huawei Technologies Co., Ltd. > idProduct 0x14dc > bcdDevice 1.02 > iManufacturer 1 > iProduct 2 > iSerial 0 > bNumConfigurations 1 > Configuration Descriptor: > bLength 9 > bDescriptorType 2 > wTotalLength 94 > bNumInterfaces 3 > bConfigurationValue 1 > iConfiguration 0 > bmAttributes 0x80 > (Bus Powered) > MaxPower 500mA > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 0 > bAlternateSetting 0 > bNumEndpoints 1 > bInterfaceClass 2 Communications > bInterfaceSubClass 6 Ethernet Networking > bInterfaceProtocol 0 > iInterface 5 > CDC Header: > bcdCDC 1.10 > CDC Union: > bMasterInterface 0 > bSlaveInterface 1 > CDC Ethernet: > iMacAddress 7 (??) > bmEthernetStatistics 0x00000000 > wMaxSegmentSize 1514 > wNumberMCFilters 0x0000 > bNumberPowerFilters 0 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x83 EP 3 IN > bmAttributes 3 > Transfer Type Interrupt > Synch Type None > Usage Type Data > wMaxPacketSize 0x0010 1x 16 bytes > bInterval 9 > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 1 > bAlternateSetting 0 > bNumEndpoints 2 > bInterfaceClass 10 CDC Data > bInterfaceSubClass 6 > bInterfaceProtocol 0 > iInterface 6 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x82 EP 2 IN > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0200 1x 512 bytes > bInterval 0 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x02 EP 2 OUT > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0200 1x 512 bytes > bInterval 0 > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 2 > bAlternateSetting 0 > bNumEndpoints 2 > bInterfaceClass 8 Mass Storage > bInterfaceSubClass 6 SCSI > bInterfaceProtocol 80 Bulk-Only > iInterface 0 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x84 EP 4 IN > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0200 1x 512 bytes > bInterval 0 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x03 EP 3 OUT > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0200 1x 512 bytes > bInterval 1 OK, so there are only two class functions in that mode: Ethernet and Storage. There should be no need to add anything anywhere. The proper class drivers, cdc_ether and usb-storage, will load and probe these functions based on the class/subclass/protocol values. And your log show that this works as expected: Mar 17 14:06:32 gigabyte kernel: cdc_ether 1-4.1:1.0 eth0: register 'cdc_ether' at usb-0000:00:14.0-4.1, CDC Ethernet Device, 00:1e:10:1f:00:00 Mar 17 14:06:32 gigabyte kernel: usb-storage 1-4.1:1.2: USB Mass Storage device detected Mar 17 14:06:32 gigabyte kernel: scsi host1: usb-storage 1-4.1:1.2 So I don't understand why usb_modeswitch wants to add this device to the option driver. That's just wrong. There are no serial functions in this mode. And if there were, they'd most likely be automatically detected by the Huawei specific logic in option.. There is nothing more the drivers/kernel can do here. Bjørn