I've just got a generic QualComm modem which reports as the infamous 05c6:1000
There is no default config file in /usr/share/usbmodeswitch for this model and I would like to create one (and contribute it back)
It successfully switches with
/usr/sbin/usb_modeswitch -W -v 05c6 -p 1000 -K (see below)
My question is, what should I put in the config file to enable it to happen automatically?
---> Output:
Take all parameters from the command line
* usb_modeswitch: handle USB devices with multiple modes
* Version 2.4.0 (C) Josua Dietze 2016
* Based on libusb1/libusbx
! PLEASE REPORT NEW CONFIGURATIONS !
DefaultVendor= 0x05c6
DefaultProduct= 0x1000
StandardEject=1
Look for default devices ...
found USB ID 05c6:1000
vendor ID matched
product ID matched
found USB ID 04f2:0402
found USB ID 0424:ec00
found USB ID 0424:9514
found USB ID 1d6b:0002
Found devices in default mode (1)
Access device 015 on bus 001
Get the current device configuration ...
Current configuration number is 1
Use interface number 0
Use endpoints 0x01 (out) and 0x81 (in)
USB description data (for identification)
-------------------------
Manufacturer: Qualcomm, Incorporated
Product: Qualcomm CDMA Technologies MSM
Serial No.: 351602000025260
-------------------------
Sending standard EJECT sequence
Looking for active driver ...
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
Trying to send message 2 to endpoint 0x01 ...
OK, message successfully sent
Read the response to message 2 (CSW) ...
Response reading failed (error -1)
Device is gone, skip any further commands
-> Run lsusb to note any changes. Bye!
Re: New Config for QualComm 05c6:1000 HSPA
Please tell what the usb id is after the device has switched mode, the config file depends on that. Do also include the output of the cmd:leeminda wrote: It successfully switches with
/usr/sbin/usb_modeswitch -W -v 05c6 -p 1000 -K (see below)
My question is, what should I put in the config file to enable it to happen automatically?
sudo lsusb -vd 05c6:1000
There are a lot of entries for 05c6:1000 in the usb_modeswitch data package but they are not only matched by the initial usb id, they are also matched by the mfgr name string.
Reason for that is that they switch into a different VID (TargetVendor) than 05c6 so we need a unique file for each of them.
Reason for not having a generic 05c6:1000 is that we would then hit all other devices with that id, devices which we don't want to handle because they are handled by other software and sometimes also using a different switch method than a standard eject.
Re: New Config for QualComm 05c6:1000 HSPA
Thank you.
and post switch:
lsusb gives
and lsusb -vd 05c6:6000 gives
Code: Select all
root@raspberrypi:/home/pi# lsusb -vd 05c6:1000
Bus 001 Device 005: ID 05c6:1000 Qualcomm, Inc. Mass Storage Device
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x05c6 Qualcomm, Inc.
idProduct 0x1000 Mass Storage Device
bcdDevice 0.00
iManufacturer 3 Qualcomm, Incorporated
iProduct 2 Qualcomm CDMA Technologies MSM
iSerial 4 351602000025260
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 1 Qualcomm Configuration
bmAttributes 0xc0
Self Powered
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
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 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)
lsusb gives
Code: Select all
Bus 001 Device 006: ID 05c6:6000 Qualcomm, Inc. Siemens SG75
Code: Select all
lsusb -vd 05c6:6000
Bus 001 Device 006: ID 05c6:6000 Qualcomm, Inc. Siemens SG75
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x05c6 Qualcomm, Inc.
idProduct 0x6000 Siemens SG75
bcdDevice 0.00
iManufacturer 3 Qualcomm, Incorporated
iProduct 2 Qualcomm CDMA Technologies MSM
iSerial 4 351602000025260
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 131
bNumInterfaces 5
bConfigurationValue 1
iConfiguration 1 Qualcomm Configuration
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 5
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 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
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 32
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
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 32
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 32
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
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 0x86 EP 6 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)
Re: New Config for QualComm 05c6:1000 HSPA
I don't think it is possible to add the generic 05c6:1000 to a distributed usb_modeswitch data package, the vendor, product, or manufacturer strings are unfortunately not unique.
There is however nothing preventing you from using a proprietary config file on your own computer, it should contain:
TargetVendor=0x05c6
TargetProduct=0x6000
StandardEject=1
The file should be named 05c6:1000 and placed in the /etc/usb_modeswitch.d directory.
For your reference I'm pasting the beginning of another lsusb -vd 05c6:1000 which will trigger the usage of the 05c6:1000_uMa=SAMSUNG config file from usb_modeswitch package of config files
05c6:1000 is the initial id of a virgin Qualcomm module which has not yet been personalized, the vendor should put his own vid:pid there.
05c6:6000 is the switched id of a virgin module and it should also be replace by the vendor.
None of these id's were ever intended to come out to an end user..
There is however nothing preventing you from using a proprietary config file on your own computer, it should contain:
TargetVendor=0x05c6
TargetProduct=0x6000
StandardEject=1
The file should be named 05c6:1000 and placed in the /etc/usb_modeswitch.d directory.
For your reference I'm pasting the beginning of another lsusb -vd 05c6:1000 which will trigger the usage of the 05c6:1000_uMa=SAMSUNG config file from usb_modeswitch package of config files
Code: Select all
Bus 002 Device 005: ID 05c6:1000 Qualcomm, Inc. Mass Storage Device
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x05c6 Qualcomm, Inc.
idProduct 0x1000 Mass Storage Device
bcdDevice 0.00
iManufacturer 1 SAMSUNG Electronics Co.,Ltd.
iProduct 2 USB MMC Storage
iSerial 3 000000000002
bNumConfigurations 1
Configuration Descriptor:
05c6:1000 is the initial id of a virgin Qualcomm module which has not yet been personalized, the vendor should put his own vid:pid there.
05c6:6000 is the switched id of a virgin module and it should also be replace by the vendor.
None of these id's were ever intended to come out to an end user..
Re: New Config for QualComm 05c6:1000 HSPA
That works, thank you very much