Activation Codes and Methods, Hardware Details, Sniffing
Xander
Posts: 9
Joined: 20 Feb 2010, 00:41
Location: Russia

Beceem BCSM250 Mobile WiMAX modem 198f:bccd -> 198f:0220

Post by Xander » 20 Feb 2010, 00:49

Hi!

I have successfully switched to the modem mode using this addition to udev rules:

Code: Select all

# Beceem BCSM250
ATTRS{idVendor}=="198f", ATTRS{idProduct}=="bccd", RUN+="/usr/share/usb_modeswitch/usb_modeswitch.sh '%b/%k'"
and this config file:

Code: Select all

########################################################
# Beceem BCSM250

DefaultVendor= 0x198f
DefaultProduct=0xbccd

TargetVendor=  0x198f
TargetProduct= 0x0220

CheckSuccess=20

MessageEndpoint=2
MessageContent="55534243f0298d8124000000800006bc626563240000000000000000000000"
MessageContent value was gathered using UsbSnoop.

Thank you!

Josh
Site Admin
Posts: 6593
Joined: 03 Nov 2007, 00:30

Post by Josh » 20 Feb 2010, 02:07

Cool, thanks!

I'll add the device to the configuration. If you give me a name (PM) I'll write it in as the contributor.

Xander
Posts: 9
Joined: 20 Feb 2010, 00:41
Location: Russia

Post by Xander » 20 Feb 2010, 09:49

Sent it.

BTW, I noticed that after the switch an 'option' driver is binded to the device. And it seems that usb_modeswitch did it. However I'm quite sure that it should not be handled by an 'option' driver. Can I stop this somehow?

Josh
Site Admin
Posts: 6593
Joined: 03 Nov 2007, 00:30

Post by Josh » 20 Feb 2010, 17:22

If it provides serial interfaces, then the "option" is the way to go. It's and optimized driver for high-speed serial devices.

The generic serial USB driver is not recommended.

If there was a special driver for your device class, it would have been bound automatically. If the interfaces have a class of "255", this means vendor-specific and they are most likely serial ports.

You can check with a "lsusb -v -d 198f:0220". Look for "InterfaceClass".

To disable the driver loading, comment out line 319 in /lib/udev/usb_modeswitch (the "echo" command). I will add a proper switch in the next version.


Xander
Posts: 9
Joined: 20 Feb 2010, 00:41
Location: Russia

Post by Xander » 20 Feb 2010, 20:19

Its class is indeed 0xff, but I'm quite sure that it isn't a usb-serial device. There is no working driver for it yet, but I know the protocol partially.

spoom
Posts: 1
Joined: 17 Mar 2010, 09:13

Re: Beceem BCSM250 Mobile WiMAX modem 198f:bccd -> 198f:0

Post by spoom » 17 Mar 2010, 09:29

Xander wrote:Hi!

I have successfully switched to the modem mode using this addition to udev rules:

Code: Select all

# Beceem BCSM250
ATTRS{idVendor}=="198f", ATTRS{idProduct}=="bccd", RUN+="/usr/share/usb_modeswitch/usb_modeswitch.sh '%b/%k'"
and this config file:

Code: Select all

########################################################
# Beceem BCSM250

DefaultVendor= 0x198f
DefaultProduct=0xbccd

TargetVendor=  0x198f
TargetProduct= 0x0220

CheckSuccess=20

MessageEndpoint=2
MessageContent="55534243f0298d8124000000800006bc626563240000000000000000000000"
MessageContent value was gathered using UsbSnoop.

Thank you!
Hi !

I am new here so, please, can you write it down step by step the procedure? I just can't make it work under 9.10! Thank you!

S.

Josh
Site Admin
Posts: 6593
Joined: 03 Nov 2007, 00:30

Post by Josh » 17 Mar 2010, 11:01

It's already included in the test version 1.1.1beta (see USB_ModeSwitch main page).

But - as Xander said - there is probably no driver yet, so switching is not really useful right now.

GChriss
Posts: 5
Joined: 05 Jul 2010, 21:44

Sierra Wireless 250U

Post by GChriss » 06 Jul 2010, 06:07

I have a Beceem Communications Inc. (198f:0220) / Sierra Wireless, Inc. (1199:0301) 250U card from Sprint.
Windows 7 reports the following newly-installed drivers:

Generic USB Hub
Sierra Wireless Device
Sierra Wireless Modem
Sierra Wireless DM Port (COM10)
Sierra Wireless CnS Port (COM9)
Sierra Wireless NMEA Port (COM7)
WiMAX Bus Driver
Sierra Wireless Network Adapter
WiMAX Network Adapter

Additional info is listed here: http://www.evdoforums.com/thread13930.html

I obtained a basic USB dump, but the supplied Sprint client appears to route traffic in some sort of non-USB manner (serial?) after initial device setup. If the 250U doesn't act as a USB key, is USB_ModeSwitch necessary?

Josh
Site Admin
Posts: 6593
Joined: 03 Nov 2007, 00:30

Post by Josh » 06 Jul 2010, 09:50

I don't understand - are you asking about the Beceem or the Sierra ? These are two different devices, aren't they ?

GChriss
Posts: 5
Joined: 05 Jul 2010, 21:44

Sierra Wireless 250U

Post by GChriss » 07 Jul 2010, 02:58

This is a single, dual-mode USB modem with GPS capabilities. Documented here:

http://www.sierrawireless.com/productsa ... _250U.aspx

Josh
Site Admin
Posts: 6593
Joined: 03 Nov 2007, 00:30

Re: Sierra Wireless 250U

Post by Josh » 07 Jul 2010, 08:13

Ah, I see. There seem to be two chipsets included.
GChriss wrote:If the 250U doesn't act as a USB key, is USB_ModeSwitch necessary?
If you see a memory stick when plugging the device in Linux, you probably need to switch the mode somehow.

For a definitive answer please post the output of "lsusb -v -d <inital-vendor-id>:<initial-product-id>" (run as superuser).


GChriss
Posts: 5
Joined: 05 Jul 2010, 21:44

lsusb output

Post by GChriss » 07 Jul 2010, 16:05

Both 198f:0220 and 1199:0301 register simultanesouly upon plugin, but neither looks like USB mass storage.
Any ideas on how to connect to the internet with this device, or have Linux drivers simply not been developed?


lsusb -v -d 1199:0301

Code: Select all

Bus 003 Device 057: ID 1199:0301 Sierra Wireless, Inc. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1199 Sierra Wireless, Inc.
  idProduct          0x0301 
  bcdDevice            0.03
  iManufacturer           1 Sierra Wireless, Incorporated
  iProduct                2 Sierra Wireless Device
  iSerial                 4 4Vx��������
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           81
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           9
      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     0x0010  1x 16 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
      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
      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
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x88  EP 8 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     0x08  EP 8 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0000
  (Bus Powered)


lsusb -v -d 198f:0220

Code: Select all

Bus 003 Device 058: ID 198f:0220 Beceem Communications Inc. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass       255 Vendor Specific Subclass
  bDeviceProtocol       255 Vendor Specific Protocol
  bMaxPacketSize0        64
  idVendor           0x198f Beceem Communications Inc.
  idProduct          0x0220 
  bcdDevice            0.01
  iManufacturer           1 Beceem Communications Inc.
  iProduct                2 Mobile WiMax SS
  iSerial                 3 MSB220
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          111
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           6
      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            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      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               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x06  EP 6 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           6
      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            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      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               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x06  EP 6 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               4
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass       255 Vendor Specific Subclass
  bDeviceProtocol       255 Vendor Specific Protocol
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)

Josh
Site Admin
Posts: 6593
Joined: 03 Nov 2007, 00:30

Post by Josh » 07 Jul 2010, 17:24

Wow!! You plug one device in and you get two IDs ?
That's something new!

Your lsusb output shows that there is no storage with drivers anywhere on the device. This means it's ready to use (sort of) and doesn't need a mode switch.

Does the device come with a driver CD ? If not, is Windows installing any drivers upon plug-in ?

Regarding Linux drivers: there is a good chance that you get the 3/4G part of the device running. Try this:

Code: Select all

# modprobe -v option
# echo "1199 0301" > /sys/bus/usb-serial/drivers/option1/new_id
If you get some ttyUSB ports in /dev, try to connect using ttyUSB0 (or the lowest that was generated).

About the Beceem see the earlier post in this topic:
http://www.draisberghof.de/usb_modeswit ... =1940#1940

Funny "coincidence" on the Beceem web site - they are offering employment for someone able to write Linux USB drivers:
http://www.beceem.com/careers_jobs/host ... er_sc.html


GChriss
Posts: 5
Joined: 05 Jul 2010, 21:44

Post by GChriss » 12 Jul 2010, 23:20

There is nothing special that happens when you plug the modem into a Windows machine, unless you first ran the installation CD.

echo "1199 0301" did indeed register /dev/ttyUSB0 -- and no other ttyUSB* devices.

Code: Select all

wvdialconf /etc/wvdial.conf 
Editing `/etc/wvdial.conf'.

Scanning your serial ports for a modem.

ttyS0<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyS0<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyS0<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
Modem Port Scan<*1>: S1   S2   S3   
WvModem<*1>: Cannot get information for serial port.
ttyUSB0<*1>: ATQ0 V1 E1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB0<*1>: Modem Identifier: ATI -- Manufacturer: Sierra Wireless, Inc.
ttyUSB0<*1>: Speed 9600: AT -- OK
ttyUSB0<*1>: Max speed is 9600; that should be safe.
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK

Found a modem on /dev/ttyUSB0.
Modem configuration written to /etc/wvdial.conf.
ttyUSB0<Info>: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"

My /etc/wvdial.conf file:

Code: Select all

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = USB Modem
Baud = 9600
New PPPD = yes
Modem = /dev/ttyUSB0
ISDN = 0
Carrier Check = no
Stupid Mode = yes
Phone = #777
Username = ' '
Password = ' '
Which then stalls on:

Code: Select all

wvdial
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATDT#777
--> Waiting for carrier.
--> Timed out while dialing.  Trying again.
--> Sending: ATDT#777
--> Waiting for carrier.
ATDT#777
...so, any ideas on where to go from here? nm-applet also shows the device, but neither of the green orb indicators lights up.

GChriss
Posts: 5
Joined: 05 Jul 2010, 21:44

Post by GChriss » 13 Jul 2010, 01:46

...err, looks like the modem has already been de-activated as it is being returned.

Post Reply