AirCard 340u Linux Debugging

Per the request of a commenter on my Netger AirCard 340u (aka AT&T Beam) on Linux post, below are some debugging outputs from both an older AirCard 340u with the 01.05.11.52 firmware (plus v4 linux patch), and a newer AirCard 340u with more modern firmware.

dmesg Output

Output of dmseg after plugging in AirCard 340u with 01.05.11.52 firmware:

[ 4117.265570] usb 3-4.3: New USB device found, idVendor=1199, idProduct=9051
[ 4117.265573] usb 3-4.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4117.265574] usb 3-4.3: Product: AirCard 340U
[ 4117.265576] usb 3-4.3: Manufacturer: Sierra Wireless, Incorporated
[ 4117.265577] usb 3-4.3: SerialNumber: ***************
[ 4117.267254] qcserial 3-4.3:1.0: Qualcomm USB modem converter detected
[ 4117.267406] usb 3-4.3: Qualcomm USB modem converter now attached to ttyUSB0
[ 4117.268105] qcserial 3-4.3:1.2: Qualcomm USB modem converter detected
[ 4117.268199] usb 3-4.3: Qualcomm USB modem converter now attached to ttyUSB1
[ 4117.269022] qcserial 3-4.3:1.3: Qualcomm USB modem converter detected
[ 4117.269158] usb 3-4.3: Qualcomm USB modem converter now attached to ttyUSB2
[ 4117.269952] qmi_wwan 3-4.3:1.8: cdc-wdm0: USB WDM device
[ 4117.270179] qmi_wwan 3-4.3:1.8 wwan0: register 'qmi_wwan' at usb-0000:00:14.0-4.3, WWAN/QMI device, 0e:c8:34:c7:76:16
[ 4117.818441] qcserial ttyUSB0: Qualcomm USB modem converter now disconnected from ttyUSB0
[ 4117.818454] qcserial 3-4.3:1.0: device disconnected

Now, with an AirCard 340u with more modern firmware:


[ 4830.090010] usb 3-4.3: new high-speed USB device number 7 using xhci_hcd
[ 4830.179758] usb 3-4.3: config 1 has an invalid interface number: 9 but max is 0
[ 4830.179761] usb 3-4.3: config 1 has no interface number 0
[ 4830.180254] usb 3-4.3: New USB device found, idVendor=1199, idProduct=0fff
[ 4830.180256] usb 3-4.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4830.180258] usb 3-4.3: Product: AirCard 340U
[ 4830.180259] usb 3-4.3: Manufacturer: Sierra Wireless, Incorporated
[ 4830.180260] usb 3-4.3: SerialNumber: ***************
[ 4830.181747] usb-storage 3-4.3:1.9: USB Mass Storage device detected
[ 4830.182683] usb-storage: probe of 3-4.3:1.9 failed with error -5
[ 4833.524362] usb 3-4.3: USB disconnect, device number 7
[ 4833.817529] usb 3-4.3: new high-speed USB device number 8 using xhci_hcd
[ 4833.907107] usb 3-4.3: config 1 has an invalid interface number: 8 but max is 4
[ 4833.907110] usb 3-4.3: config 1 has an invalid interface number: 9 but max is 4
[ 4833.907111] usb 3-4.3: config 1 has no interface number 1
[ 4833.907129] usb 3-4.3: config 1 has no interface number 4
[ 4833.907629] usb 3-4.3: Manufacturer: Sierra Wireless, Incorporated
[ 4833.907631] usb 3-4.3: SerialNumber: ***************
[ 4833.909338] qcserial 3-4.3:1.2: Qualcomm USB modem converter detected
[ 4833.909444] usb 3-4.3: Qualcomm USB modem converter now attached to ttyUSB0
[ 4833.910091] qcserial 3-4.3:1.3: Qualcomm USB modem converter detected
[ 4833.910203] usb 3-4.3: Qualcomm USB modem converter now attached to ttyUSB1
[ 4833.911014] qmi_wwan 3-4.3:1.8: cdc-wdm0: USB WDM device
[ 4833.911239] qmi_wwan 3-4.3:1.8 wwan0: register 'qmi_wwan' at usb-0000:00:14.0-4.3, WWAN/QMI device, 0e:c8:34:c7:76:16
[ 4833.911476] usb-storage 3-4.3:1.9: USB Mass Storage device detected
[ 4833.911641] scsi host6: usb-storage 3-4.3:1.9
[ 4833.912331] qcserial 3-4.3:1.0: Qualcomm USB modem converter detected
[ 4833.912423] usb 3-4.3: Qualcomm USB modem converter now attached to ttyUSB2
[ 4834.451257] qcserial ttyUSB2: Qualcomm USB modem converter now disconnected from ttyUSB2
[ 4834.451267] qcserial 3-4.3:1.0: device disconnected
[ 4834.925252] scsi 6:0:0:0: Direct-Access     Aircard  Disk Drive       1.00 PQ: 0 ANSI: 2
[ 4834.926772] sd 6:0:0:0: [sdc] Attached SCSI removable disk

lsusb -v Output

Output of lsusb -v Aircard 340u with the 01.05.11.52 firmware after v4 Linux patch:

Bus 003 Device 006: ID 1199:9051 Sierra Wireless, Inc. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1199 Sierra Wireless, Inc.
  idProduct          0x9051 
  bcdDevice            0.06
  iManufacturer           1 Sierra Wireless, Incorporated
  iProduct                2 AirCard 340U
  iSerial                 3 ***************
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          160
    bNumInterfaces          4
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      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     0x81  EP 1 IN
        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     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      ** UNRECOGNIZED:  05 24 00 10 01
      ** UNRECOGNIZED:  05 24 01 00 00
      ** UNRECOGNIZED:  04 24 02 02
      ** UNRECOGNIZED:  05 24 06 00 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x000c  1x 12 bytes
        bInterval               9
      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               0
      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               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      ** UNRECOGNIZED:  05 24 00 10 01
      ** UNRECOGNIZED:  05 24 01 00 00
      ** UNRECOGNIZED:  04 24 02 02
      ** UNRECOGNIZED:  05 24 06 00 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x000c  1x 12 bytes
        bInterval               9
      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               0
      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               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        8
      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     0x87  EP 7 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x000a  1x 10 bytes
        bInterval               9
      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
      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               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)

Again, the same command but with an AirCard 340u with more modern firmware:

Bus 003 Device 008: ID 1199:9051 Sierra Wireless, Inc. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1199 Sierra Wireless, Inc.
  idProduct          0x9051 
  bcdDevice            0.06
  iManufacturer           1 Sierra Wireless, Incorporated
  iProduct                2 AirCard 340U
  iSerial                 3 ***************
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          183
    bNumInterfaces          5
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      ** UNRECOGNIZED:  05 24 00 10 01
      ** UNRECOGNIZED:  05 24 01 00 00
      ** UNRECOGNIZED:  04 24 02 02
      ** UNRECOGNIZED:  05 24 06 00 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x000c  1x 12 bytes
        bInterval               9
      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
      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
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      ** UNRECOGNIZED:  05 24 00 10 01
      ** UNRECOGNIZED:  05 24 01 00 00
      ** UNRECOGNIZED:  04 24 02 02
      ** UNRECOGNIZED:  05 24 06 00 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x000c  1x 12 bytes
        bInterval               9
      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               0
      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               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        8
      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     0x86  EP 6 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x000a  1x 10 bytes
        bInterval               9
      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               0
      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               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        9
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface             20 Mass Storage
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x87  EP 7 IN
        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     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      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     0x88  EP 8 IN
        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     0x05  EP 5 OUT
        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)

-John Havlik

[end of transmission, stay tuned]

2 thoughts on “AirCard 340u Linux Debugging

  1. Ok, so the v4 patch ended up removing the MBIM descriptors in the older firmware.

    For reference, if anyone stuck with the old version, if the modem ends up replying “Failure” to the MBIM Open command, it looks like just a usb reset may trigger a powercycle that recovers the MBIM operation properly.

    Anyway, using QMI right away seems the best option if firmware upgrade isn’t a problem; which shouldn’t be now that the “qmi-firmware-update” utility is available ;) (although I haven’t tested it personally to apply the v4 patch, which is just about extracting the .cwe from the exe and running it through qmi-firmware-update).

    • Tested the Linux firmware update on the AC340U with all images I had around and they all worked as expected (running in a OpenWRT based setup, so that’s why –reset and –update-qdl were used, instead of the more powerful –update):


      =========================
      SWI9X15C_01.05.11.52
      =========================

      # qmi-firmware-update -w /dev/cdc-wdm0 --reset
      reseter operation finished successfully

      # qmi-firmware-update -t /dev/ttyUSB0 --update-qdl 1101721_9902097_SWI9X15C_01.05.11.52_00_ATT_002.004_000-field.spk
      downloading cwe image: 1101721_9902097_SWI9X15C_01.05.11.52_00_ATT_002.004_000-field.spk (47.9 MB)...
      finalizing download... (may take more than one minute, be patient)
      successfully downloaded in 11.89s (4.0 MB/s)
      rebooting in normal mode...
      firmware update operation finished successfully

      # minicom -o -s (configure ttyUSB2)
      ATI
      Manufacturer: Sierra Wireless, Incorporated
      Model: AirCard 340U
      Revision: SWI9X15C_01.05.11.52 r16619 ntgrbc-fwbuild1 2013/06/28 19:04:08
      IMEI: 013323000792300
      IMEI SV: 7
      FSN: EV348600240110
      +GCAP: +CGSM

      =========================
      NTG9X15C_01.13.12.14
      =========================

      # qmi-firmware-update -w /dev/cdc-wdm0 --reset
      reseter operation finished successfully

      # qmi-firmware-update -t /dev/ttyUSB0 --update-qdl 1101721_9902097_NTG9X15C_01.13.12.14_00_ATT_004.001_000-field.spk
      downloading cwe image: 1101721_9902097_NTG9X15C_01.13.12.14_00_ATT_004.001_000-field.spk (48.9 MB)...
      finalizing download... (may take more than one minute, be patient)
      successfully downloaded in 12.15s (4.0 MB/s)
      rebooting in normal mode...
      firmware update operation finished successfully

      # minicom -o -s (configure ttyUSB1)
      ATI
      Manufacturer: Sierra Wireless, Incorporated
      Model: AirCard 340U
      Revision: NTG9X15C_01.13.12.14 r18981 ntgrbc-fwbuild1 2014/07/11 13:48:17
      IMEI: 013323000792300
      IMEI SV: 9
      FSN: EV348600240110
      +GCAP: +CGSM

      =====================================
      AC340U_linux_patch_v4.cwe
      (on top of NTG9X15C_01.13.12.14)
      =====================================

      # qmi-firmware-update -w /dev/cdc-wdm0 --reset
      reseter operation finished successfully

      # qmi-firmware-update -t /dev/ttyUSB0 --update-qdl AC340U_linux_patch_v4.cwe
      downloading cwe image: AC340U_linux_patch_v4.cwe (2.2 kB)...
      finalizing download... (may take more than one minute, be patient)
      successfully downloaded in 0.03s (82.0 kB/s)
      rebooting in normal mode...
      firmware update operation finished successfully

      As expected, after applying the patch v4 image, the firmware does no longer expose the MBIM configuration #2.

Comments are closed.