Re: I: Sierra.c USB Serial Driver FAQ/Feature Request

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/14/2013 01:02 PM, Bjørn Mork wrote:
> Peter Hyman <pete@xxxxxxxxxxxxxx> writes:
>
>> Linux Kernel: 3.9.10
>> Device Driver: usb/serial/sierra.c
>> Device Driver version: not known
>>
>> Apparently Sierra has sold the AirCard 250U product to Netgear, so I am
>> sure driver development on drivers/usb/serial/sierra.c will be in limbo
>> for a period. While I am copying linux@xxxxxxxxxxxxxxxxxx, they will not
>> do anything since they don't own the product anymore.
>>
>> Nonetheless, I uncovered a problem when using the AC250U Aircard device
>> Vendor 0x1199, Product 0x0301. If the device is used in Windows and set
>> to 4G mode, using the device in Linux will fail to create the ppp0
>> network interface. I could find no workaround. Even though the device
>> can be reached and modem commands sent, ppp0 won't be created.
> What exactly do you mean by "ppp0 won't be created"?  The ppp interface
> is a virtual network device running on top of a serial port.  Does this
> mean that there is one serial port missing?  Or are all of them missing
> in this mode?  Does this device support DirectIP, using the sierra_net
> driver?  If so, does that still work in 4G mode?
>
> Exactly what action does the Windows driver/application do to trigger
> this?
When the device is set in 3G mode, and is plugged in to a Linux box, a
network interface ppp0 (in my case) is created and permits interface to
the web. When using kppp or similar, you get a Connect ack from the
modem and everything performs as normal.

When the device is set in 4G mode, and is plugged in to a Linux box, no
network interface is created and no access to web is permitted. When
using kppp or similar, you get a NO CARRIER ack from the modem and there
is no way to advance.

>> I
>> regression tested this all the way back to kernel 3.2.29, and I also
>> tried the unpublished sierra driver 1.7.40 which works up to kernel
>> 3.4.x iirc. The issue is the same.
>>
>> The workaround is to set the device to 3G mode and then use in Linux. I
>> wrote this FAQ in case it is of interest.
> Nice.  Thanks.  Documenting the problem is important.
>
> But I believe we can do better.  Making this device work regardless of
> mode and Windows settings should not be too difficult.  We just need to
> research a bit what's going on, and then try to do the same as Windows
> to make it work.
I BELIEVE it may be related to the inherent limitation of the driver
module, sierra.c, and it's documented inability to work with 4G. It may
have something to do with Wimax as well since a Wimax device shows up as
well.
> Could you start with sending the output of "lsusb -vd 1199:0301" for
> both the working (3G mode) and non-working (4G mode) cases?  This will
> help understanding how the device appearance changes between these
> modes, if it does?
Here is the 3G output. I will need to log off and come back for the 4G.
I will save for a diff run when I do the 4G version. I DO know the
driver output is different  for 3G and 4G. There is a stanza for WiMax
and a Beceem device with a different Vendor and Product ID than below.
Recall, one can access the device with AT commands regardless of 3G or
4G mode.
usb 4-1.2.1: new high-speed USB device number 18 using ehci-pci
usb 4-1.2.1: New USB device found, idVendor=198f, idProduct=0220
usb 4-1.2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 4-1.2.1: Product: Mobile WiMax SS
usb 4-1.2.1: Manufacturer: Beceem Communications Inc.
usb 4-1.2.1: SerialNumber: MSB220


bash-4.2$ lsusb -vd 1199:0301

Bus 004 Device 005: ID 1199:0301 Sierra Wireless, Inc.
Couldn't open device, some information will be missing
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
  iProduct                2
  iSerial                 4
  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
      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
> If the device appears identical, then we have to know more details about
> how the ppp connection fails. Maybe the firmware just doesn't support
> PPP at all when it is in 4G mode?  The lsusb output should still tell us
> whether to expect DirectIP, as Sierra use fixed interface numbers to
> indicate these things.
I am not sure what is expected by the device. But I think perhaps WiMax
may be a clue. Thanks for the feedback. Will report on the 4G output later.

>
>
> Bjørn
>
>
>
>> =====
>> FAQ: ppp0 Network Interface does not get created after plugging AirCard
>> 250U device when using Linux. No internet access is possible without the
>> ppp0 network interface.
>>
>> Answer: If the AC250U device is used in Windows, and is set to 4G mode
>> by the Sprint SmartView software, it MUST be set back to 3G mode prior
>> to use in Linux. The Linux Sierra driver does not support 4G and the
>> device won't be able to be initialized properly. It will be recognized
>> and you can send modem commands, but the ppp0 device won't be created.
>> Reset device to 3G under Windows and it will work fine in Linux.
>> =====
>>
>> Maybe a nice feature request would be to check the 3G/4G status of the
>> device and reset to 3G since that is what is supported for now. If you
>> need additional information, please reach out. Happy to help.
>>
>> usb 4-1.2.2: New USB device found, idVendor=1199, idProduct=0301
>> usb 4-1.2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=4
>> usb 4-1.2.2: Product: Sierra Wireless Device
>> usb 4-1.2.2: Manufacturer: Sierra Wireless, Incorporated
>> usb 4-1.2.2: SerialNumber: 4Vx«Ãïÿÿÿÿ
>> usbcore: registered new interface driver usbserial
>> usbcore: registered new interface driver usbserial_generic
>> usbserial: USB Serial support registered for generic
>> usbcore: registered new interface driver sierra
>> usbserial: USB Serial support registered for Sierra USB modem
>> sierra 4-1.2.2:1.0: Sierra USB modem converter detected
>> usb 4-1.2.2: Sierra USB modem converter now attached to ttyUSB0
>> usb 4-1.2.2: Sierra USB modem converter now attached to ttyUSB1
>> usb 4-1.2.2: Sierra USB modem converter now attached to ttyUSB2
>> usb 4-1.2.2: Sierra USB modem converter now attached to ttyUSB3


-- 
Peter Hyman
C: +1(609)598-0262
http://www.peterhyman.com
http://www.linkedin.com/in/peterh

--
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



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux