LOM wrote:You can not switch the device further, 12d1:1506 is a usb id for a device after it has switched.
One of the drivers you'll have to load is named option, it is a serial port driver. The device does also have a direct ethernet interface which will be driven by one of:
qmi_wwan
cdc_ncm
cdc_ether
I need to see the output from lsusb -v -d 12d1:1506 in order to tell you which kind of direct ethernet driver your device needs.
Thx a lot for clarifying.
Problem is that I'm talking about an embedded device on ARMv7.
However, the good guys did publish the GPLed linux source, as they are obliged to.
And their config.linux says the following with regard to usb and networking:
Code: Select all
#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
CONFIG_USB_USBNET=y
CONFIG_USB_NET_AX8817X=y
CONFIG_USB_NET_CDCETHER=y
# CONFIG_USB_NET_CDC_EEM is not set
CONFIG_USB_NET_CDC_NCM=y
# CONFIG_USB_NET_DM9601 is not set
# CONFIG_USB_NET_SMSC75XX is not set
# CONFIG_USB_NET_SMSC95XX is not set
# CONFIG_USB_NET_GL620A is not set
CONFIG_USB_NET_NET1080=y
# CONFIG_USB_NET_PLUSB is not set
# CONFIG_USB_NET_MCS7830 is not set
# CONFIG_USB_NET_RNDIS_HOST is not set
CONFIG_USB_NET_CDC_SUBSET=y
# CONFIG_USB_ALI_M5632 is not set
# CONFIG_USB_AN2720 is not set
# CONFIG_USB_BELKIN is not set
# CONFIG_USB_ARMLINUX is not set
# CONFIG_USB_EPSON2888 is not set
# CONFIG_USB_KC2190 is not set
# CONFIG_USB_NET_ZAURUS is not set
# CONFIG_USB_NET_CX82310_ETH is not set
# CONFIG_USB_NET_KALMIA is not set
# CONFIG_USB_NET_QMI_WWAN is not set
# CONFIG_USB_NET_INT51X1 is not set
# CONFIG_USB_IPHETH is not set
# CONFIG_USB_SIERRA_NET is not set
# CONFIG_USB_VL600 is not set
CONFIG_WLAN=y
# CONFIG_USB_ZD1201 is not set
# CONFIG_WIFI_CONTROL_FUNC is not set
# CONFIG_BCMDHD is not set
CONFIG_HOSTAP=m
# CONFIG_HOSTAP_FIRMWARE is not set
CONFIG_WILINK_PLATFORM_DATA=y
So no NET_QMI_WWAN, but NET_CDC_NCM and NET_CDCETHER are part of the kernel (no modules).
Second issue is lsusb -v on the embedded device doesn't output more than plain lsusb.
I'll try to see what the Raspi2 says to lsusb -v (after switching the decive, of course. Should be much more versatile).
Meanwhile, this is what USBTreeView under Windows7 64 has to say.
maybe you can deduct the
respective linux driver needed from all this info:
Code: Select all
=========================== USB Port2 ===========================
Connection Status : 0x01 (Device is connected)
Port Chain : 7-2
======================== USB Device ========================
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : USB Composite Device
Device Path : \\?\usb#vid_12d1&pid_1506#5&2b3e2e23&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
Device ID : USB\VID_12D1&PID_1506\5&2B3E2E23&0&2
Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0031 (GUID_DEVCLASS_USB)
Driver : C:\Windows\system32\DRIVERS\usbccgp.sys (Version: 6.1.7601.17514 Date: 2010-11-21)
Driver Inf : C:\Windows\inf\oem20.inf
Legacy BusType : PNPBus
Class : USB
Service : usbccgp
Enumerator : USB
Location Info : Port_#0002.Hub_#0004
Container ID : {759b3092-d734-11e5-9c0d-344b50b7ef08}
Manufacturer Info : (Standard system devices)
Capabilities : 0x84 (Removable, SurpriseRemovalOK)
Upper Filters : ew_usbenumfilter
Address : 2
Problem Code : 0
Power State : D0 (supported: D0, D2, D3, wake from D0, wake from D2)
Child Device 1 : HUAWEI Mobile Connect - 3G Modem
Device ID : USB\VID_12D1&SUBCLASS_03&PROT_01\6&1D367F9C&0&0000
Class : Modem
COM-Port : COM8 (\Device\AcmSerial_0)
Child Device 2 : HUAWEI Mobile Connect - 3G PC UI Interface
Device ID : USB\VID_12D1&SUBCLASS_03&PROT_02\6&1D367F9C&0&0003
Class : Ports
COM-Port : COM6 (\Device\AcmSerial_2)
Child Device 3 : HUAWEI Mobile Connect - 3G Application Interface
Device ID : USB\VID_12D1&SUBCLASS_03&PROT_03\6&1D367F9C&0&0002
Class : Ports
COM-Port : COM7 (\Device\AcmSerial_1)
Child Device 4 : HUAWEI Mobile Connect - Network Card
Device ID : USB\VID_12D1&SUBCLASS_03&PROT_16\6&1D367F9C&0&0001
Class : Net
Child Device 5 : USB-Massenspeichergerät
Device ID : USB\VID_12D1&SUBCLASS_06&PROT_50\6&1D367F9C&0&0004
Class : USB
Child Device 1 : CD-ROM-Laufwerk (CdRom1)
Device ID : USBSTOR\CDROM&VEN_HUAWEI&PROD_MASS_STORAGE&REV_2.31\7&2147290B&0
Class : CDROM
Volume : \\?\Volume{759b3095-d734-11e5-9c0d-344b50b7ef08}\
Kernel Name : \Device\CdRom1
Mountpoint : M:\
Child Device 6 : USB-Massenspeichergerät
Device ID : USB\VID_12D1&SUBCLASS_06&PROT_50\6&1D367F9C&0&0005
Class : USB
Child Device 1 : Laufwerk (Disk2)
Device ID : USBSTOR\DISK&VEN_HUAWEI&PROD_TF_CARD_STORAGE&REV_2.31\7&E8D7866&0
Class : DiskDrive
Volume : \\?\Volume{759b3097-d734-11e5-9c0d-344b50b7ef08}\
Kernel Name : \Device\HarddiskVolume5
Mountpoint : N:\
---------------- Connection Information ---------------
Connection Index : 0x02 (2)
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01
Device Address : 0x01 (1)
Is Hub : 0x00 (no)
Number Of Open Pipes : 0x0E (14)
Device Bus Speed : 0x02 (High-Speed)
Pipe0ScheduleOffset : 0x00 (0)
Pipe1ScheduleOffset : 0x00 (0)
Pipe2ScheduleOffset : 0x00 (0)
Pipe3ScheduleOffset : 0x00 (0)
Pipe4ScheduleOffset : 0x00 (0)
Pipe5ScheduleOffset : 0x00 (0)
Pipe6ScheduleOffset : 0x00 (0)
Pipe7ScheduleOffset : 0x00 (0)
Pipe8ScheduleOffset : 0x00 (0)
Pipe9ScheduleOffset : 0x00 (0)
Pipe10ScheduleOffset : 0x00 (0)
Pipe11ScheduleOffset : 0x00 (0)
Pipe12ScheduleOffset : 0x00 (0)
Pipe13ScheduleOffset : 0x00 (0)
------------------ Device Descriptor ------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x200 (USB Version 2.00)
bDeviceClass : 0x00 (defined by the interface descriptors)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x00
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0x12D1
idProduct : 0x1506
bcdDevice : 0x102
iManufacturer : 0x01 (String Descriptor 1)
Language 0x0409 : "HUAWEI"
iProduct : 0x02 (String Descriptor 2)
Language 0x0409 : "HUAWEI Mobile"
iSerialNumber : 0x00 (No String Descriptor)
bNumConfigurations : 0x01
------------------ String Descriptors -----------------
------ String Descriptor 0 ------
bLength : 0x04 (4 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language ID[0] : 0x0409 (English - United States)
------ String Descriptor 1 ------
bLength : 0x0E (14 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "HUAWEI"
------ String Descriptor 2 ------
bLength : 0x1C (28 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "HUAWEI Mobile"
------ String Descriptor 3 ------
bLength : 0x22 (34 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "FFFFFFFFFFFFFFFF"
------ String Descriptor 4 ------
bLength : 0x1A (26 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "Mass Storage"
------ String Descriptor 5 ------
bLength : 0x42 (66 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "CDC Abstract Control Model (ACM)"
------ String Descriptor 6 ------
bLength : 0x1A (26 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "CDC ACM Data"
------ String Descriptor 7 ------
bLength : 0x16 (22 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "CDC Serial"
------ String Descriptor 8 ------
bLength : 0x40 (64 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "CDC Network Control Model (NCM)"
------ String Descriptor 9 ------
bLength : 0x22 (34 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "CDC Network Data"
------ String Descriptor 10 ------
bLength : 0x1A (26 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "82A94A09842E"
--- MSFT String Descriptor 0xEE --
bLength : 0x12 (18 bytes)
bDescriptorType : 0x03 (String Descriptor)
qwSignature Lang 0x0409 : "MSFT100"
bMS_VendorCode : 0xDE
bPad : 0x00
---------------- Configuration Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x00ED (237 bytes)
bNumInterfaces : 0x06
bConfigurationValue : 0x01
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0x80
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x00 (no)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0xFA (500 mA)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00
bAlternateSetting : 0x00
bNumEndpoints : 0x03 (3 Endpoints)
bInterfaceClass : 0xFF (Vendor Specific)
bInterfaceSubClass : 0x03
bInterfaceProtocol : 0x01
iInterface : 0x00 (No String Descriptor)
----------------- Unknown Descriptor ------------------
bLength : 0x05 (5 bytes)
bDescriptorType : 0x24
Data (HexDump) : 05 24 00 10 01
----------------- Unknown Descriptor ------------------
bLength : 0x04 (4 bytes)
bDescriptorType : 0x24
Data (HexDump) : 04 24 02 02
----------------- Unknown Descriptor ------------------
bLength : 0x05 (5 bytes)
bDescriptorType : 0x24
Data (HexDump) : 05 24 01 00 00
----------------- Unknown Descriptor ------------------
bLength : 0x05 (5 bytes)
bDescriptorType : 0x24
Data (HexDump) : 05 24 06 00 00
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x83 (Direction=IN EndpointID=3)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0040
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x40 (64 bytes per packet)
bInterval : 0x05 (5 ms)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x82 (Direction=IN EndpointID=2)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0200 (max 512 bytes)
bInterval : 0x00 (never NAKs)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x02 (Direction=OUT EndpointID=2)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0200 (max 512 bytes)
bInterval : 0x00 (never NAKs)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x00
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0xFF (Vendor Specific)
bInterfaceSubClass : 0x03
bInterfaceProtocol : 0x16
iInterface : 0x08 (String Descriptor 8)
Language 0x0409 : "CDC Network Control Model (NCM)"
----------------- Unknown Descriptor ------------------
bLength : 0x05 (5 bytes)
bDescriptorType : 0x24
Data (HexDump) : 05 24 00 10 01
----------------- Unknown Descriptor ------------------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24
Data (HexDump) : 06 24 1A 00 01 1F
----------------- Unknown Descriptor ------------------
bLength : 0x0C (12 bytes)
bDescriptorType : 0x24
Data (HexDump) : 0C 24 1B 00 01 00 04 10 14 DC 05 20
----------------- Unknown Descriptor ------------------
bLength : 0x0D (13 bytes)
bDescriptorType : 0x24
Data (HexDump) : 0D 24 0F 0A 0F 00 00 00 EA 05 03 00 01
----------------- Unknown Descriptor ------------------
bLength : 0x05 (5 bytes)
bDescriptorType : 0x24
Data (HexDump) : 05 24 06 01 01
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x85 (Direction=IN EndpointID=5)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0010
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x10 (16 bytes per packet)
bInterval : 0x09 (9 ms)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x01
bNumEndpoints : 0x03 (3 Endpoints)
bInterfaceClass : 0xFF (Vendor Specific)
bInterfaceSubClass : 0x03
bInterfaceProtocol : 0x16
iInterface : 0x09 (String Descriptor 9)
Language 0x0409 : "CDC Network Data"
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x85 (Direction=IN EndpointID=5)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0010
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x10 (16 bytes per packet)
bInterval : 0x09 (9 ms)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x84 (Direction=IN EndpointID=4)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0200 (max 512 bytes)
bInterval : 0x00 (never NAKs)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x03 (Direction=OUT EndpointID=3)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0200 (max 512 bytes)
bInterval : 0x00 (never NAKs)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x02
bAlternateSetting : 0x00
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0xFF (Vendor Specific)
bInterfaceSubClass : 0x03
bInterfaceProtocol : 0x03
iInterface : 0x00 (No String Descriptor)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x86 (Direction=IN EndpointID=6)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0200 (max 512 bytes)
bInterval : 0x00 (never NAKs)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x04 (Direction=OUT EndpointID=4)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0200 (max 512 bytes)
bInterval : 0x00 (never NAKs)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x03
bAlternateSetting : 0x00
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0xFF (Vendor Specific)
bInterfaceSubClass : 0x03
bInterfaceProtocol : 0x02
iInterface : 0x00 (No String Descriptor)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x87 (Direction=IN EndpointID=7)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0200 (max 512 bytes)
bInterval : 0x00 (never NAKs)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x05 (Direction=OUT EndpointID=5)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0200 (max 512 bytes)
bInterval : 0x00 (never NAKs)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x04
bAlternateSetting : 0x00
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x08 (Mass Storage)
bInterfaceSubClass : 0x06 (SCSI transparent command set)
bInterfaceProtocol : 0x50 (BulkOnly Transport)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : "Mass Storage"
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x88 (Direction=IN EndpointID=8)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0200 (max 512 bytes)
bInterval : 0x00 (never NAKs)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x06 (Direction=OUT EndpointID=6)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0200 (max 512 bytes)
bInterval : 0x01 (at most 1 NAK each 1 microframes)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x05
bAlternateSetting : 0x00
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x08 (Mass Storage)
bInterfaceSubClass : 0x06 (SCSI transparent command set)
bInterfaceProtocol : 0x50 (BulkOnly Transport)
iInterface : 0x00 (No String Descriptor)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x89 (Direction=IN EndpointID=9)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0200 (max 512 bytes)
bInterval : 0x00 (never NAKs)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x07 (Direction=OUT EndpointID=7)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0200 (max 512 bytes)
bInterval : 0x01 (at most 1 NAK each 1 microframes)
extra question1: which kernel config option controls wherter the "
option" usb module will be created?
extra question2: assuming cross-compile infractruture and embedded linux kernel source tree installed somewhere,
Is it possible to
change a kernel config_option form N to M, build the module(s) and load these freshly build modules into the unmodified embedded linux kernel, (in his config these configoptions were set to N)?
Sort of post-create the modules only and feed them to the unchanged kernel.