Hello. I know almost nothing about internals of usb and linux kernel.. That should be a good start, rigth? :) I've got a new USB CDMA modem from a local 3g retailer, but apparently it does not work under linux. Google shows only other people like me - all in my region - who got it but wasn't able to use it. The device reports itself as usb 3-1: Product: CELOT CDMA Products usb 3-1: Manufacturer: CELOT Corporation it's id 211f:6801, and the label tells us it's "CT-650" model or, on the back side, "CT-650 USB modem CDMA 450 1xEVDO". Here's lsusb -v output: Bus 003 Device 006: ID 211f:6801 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x211f idProduct 0x6801 bcdDevice 0.00 iManufacturer 1 CELOT Corporation iProduct 2 CELOT CDMA Products iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 85 bNumInterfaces 3 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (Bus 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 3 Data Interface 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 128 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 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 0x0040 1x 64 bytes bInterval 0 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 3 Data Interface Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 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 3 Data Interface Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x05 EP 5 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Device Status: 0x0000 (Bus Powered) Apparently, as shown in http://wl500g.info/showthread.php?t=24275 thread (in russian), the company provided a linux driver for the device, -- http://wl500g.info/attachment.php?s=6b244d013439da0ee333d981d9122c59&attachmentid=6677&d=1277919509 Which turns out to be a renamed and "cleaned up" version of drivers/usb/serial/option.c file. So I added the device ID into existing option.c (2.6.34), like this: ... { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD100) }, #define CELOT_VENDOR_ID 0x211f #define CELOT_PRODUCT_CT680M 0x6801 { USB_DEVICE(CELOT_VENDOR_ID, CELOT_PRODUCT_CT680M) }, { } /* Terminating entry */ }; Now it is recognized by the driver, and even works, but it creates 3 ttyUSB devices (0, 1 and 2), from which only ttyUSB0 works, the rest 2 does not respond to AT commands. [187658.087913] USB Serial support registered for GSM modem (1-port) [187658.087913] option 3-1:1.0: GSM modem (1-port) converter detected [187658.087913] usb 3-1: GSM modem (1-port) converter now attached to ttyUSB0 [187658.087913] option 3-1:1.1: GSM modem (1-port) converter detected [187658.087913] usb 3-1: GSM modem (1-port) converter now attached to ttyUSB1 [187658.087913] option 3-1:1.2: GSM modem (1-port) converter detected [187658.091245] usb 3-1: GSM modem (1-port) converter now attached to ttyUSB2 I'm not sure what to do next. The device works for me, but I'd rather finish its support and submit it to the kernel properly. What's missing now are the 2 extra, non-functional ports. Thank you! /mjt -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html