Page 1 of 1

Vertex Wireless Co. 1fe7:0100

Posted: 25 Dec 2009, 21:34
by rei4dan
Hi!

I'm trying to get to work Vertex Wireless Co., Ltd. VW100 series CDMA EV-DO Rev.A USB modem on Linux. Its a rebranded version of this:
http://www.v-wireless.co.kr/sub22.html

It is recognized as Qualcom USB storage device 05c6:1000, and it should be switched to Vertex Wireless USB modem 1fe7:0100. But none of usb_modeswitch's offered options work.

Code: Select all

usb_modeswitch -v 0x05c6 -p 0x1000

Looking for default devices ...
 Found default devices (1)
Accessing device 030 on bus 006 ...
Using endpoints 0x05 (out) and 0x84 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 OK, driver found ("usbfs")
 OK, driver "usbfs" detached
 Could not get INQUIRY response (error -16)

USB description data (for identification)
-------------------------
Manufacturer: Vertex Wireless Co., Ltd.
     Product: USB CD-ROM Storage
  Serial No.: 000000000002
-------------------------
Warning: no switching method given.
-> Run lsusb to note any changes. Bye.
Tried to use SniffUSB on Win XP. On Win it takes a few seconds for a device to switch over to the USB mode. I used the last message on endpoint 0x05 and various other from the beginning of the log (there are something like 900 messages), but none of them worked. It unloads the device successfully, but doen't do the switching.

Code: Select all

lsusb -s 006:030 -v

Bus 006 Device 030: ID 05c6:1000 Qualcomm, Inc. 
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 
  bcdDevice            0.00
  iManufacturer           1 Vertex Wireless Co., Ltd.
  iProduct                2 USB CD-ROM Storage
  iSerial                 3 000000000002
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)
      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     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)

Code: Select all

usb_modeswitch -v 0x05c6 -p 0x1000 -V 0x1fe7 -P 0x0100 -W -m 0x05 -M "5553424308809d890000000000000600000000000000000000000000000000"
Taking all parameters from the command line


 * usb_modeswitch: handle USB devices with multiple modes
 * Version 1.0.6 (C) Josua Dietze 2009
 * Based on libusb 0.1.12

 ! PLEASE REPORT NEW CONFIGURATIONS !

DefaultVendor=  0x05c6
DefaultProduct= 0x1000
TargetVendor=   0x1fe7
TargetProduct=  0x0100
TargetClass=    not set

DetachStorageOnly=0
HuaweiMode=0
SierraMode=0
SonyMode=0
GCTMode=0
MessageEndpoint=0x05
MessageContent="5553424308809d890000000000000600000000000000000000000000000000"
NeedResponse=0
ResponseEndpoint= not set
Interface=0x00

InquireDevice enabled (default)
Success check disabled

usb_set_debug: Setting debugging level to 15 (on)
usb_os_find_busses: Found 004
usb_os_find_busses: Found 007
usb_os_find_busses: Found 006
usb_os_find_busses: Found 002
usb_os_find_busses: Found 005
usb_os_find_busses: Found 003
usb_os_find_busses: Found 001
usb_os_find_devices: Found 002 on 004
skipped 1 class/vendor specific interface descriptors
usb_os_find_devices: Found 001 on 004
error obtaining child information: Inappropriate ioctl for device
usb_os_find_devices: Found 001 on 007
usb_os_find_devices: Found 032 on 006
usb_os_find_devices: Found 002 on 006
skipped 1 class/vendor specific interface descriptors
usb_os_find_devices: Found 001 on 006
error obtaining child information: Inappropriate ioctl for device
error obtaining child information: Inappropriate ioctl for device
usb_os_find_devices: Found 001 on 002
usb_os_find_devices: Found 001 on 005
usb_os_find_devices: Found 001 on 003
usb_os_find_devices: Found 002 on 001
skipping descriptor 0xB
skipped 1 class/vendor specific endpoint descriptors
skipped 5 class/vendor specific interface descriptors
skipping descriptor 0x25
skipped 1 class/vendor specific endpoint descriptors
skipped 10 class/vendor specific interface descriptors
usb_os_find_devices: Found 001 on 001
error obtaining child information: Inappropriate ioctl for device

Looking for target devices ...
 No devices in target mode or class found
Looking for default devices ...
 Found default devices (1)
Accessing device 032 on bus 006 ...
Using endpoints 0x05 (out) and 0x84 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 OK, driver found ("usbfs")
 OK, driver "usbfs" detached
USB error: error submitting URB: Device or resource busy
 Could not get INQUIRY response (error -16)
USB error: could not release intf 0: Invalid argument

USB description data (for identification)
-------------------------
Manufacturer: Vertex Wireless Co., Ltd.
     Product: USB CD-ROM Storage
  Serial No.: 000000000002
-------------------------
Looking for active driver ...
 OK, driver found ("usbfs")
 OK, driver "usbfs" detached
Setting up communication with interface 0 ...
Trying to send the message to endpoint 0x05 ...
 Sending the message returned error -110. Trying to continue
-> Run lsusb to note any changes. Bye.
Any suggestions how to get this working?

Posted: 26 Dec 2009, 00:25
by Josh
First, I suggest you replug the modem before every switching attempt. It should be in a defined state and bound to "usb-storage".

Second, if the modem takes some time to switch with Windows, that is a hint that one of the commands further up in the sniffing log is responsible.

Can you find a command with the sequence "06 1b" in the log? It should be where the "06 00" is in your version.
If it's there, use it; if not, post your log to "pastebin.com" please so that I can have a look.

Posted: 26 Dec 2009, 02:41
by rei4dan
Josh wrote:First, I suggest you replug the modem before every switching attempt. It should be in a defined state and bound to "usb-storage".
It binds "usbfs" on my Ubuntu machine.
Josh wrote:Second, if the modem takes some time to switch with Windows, that is a hint that one of the commands further up in the sniffing log is responsible.

Can you find a command with the sequence "06 1b" in the log? It should be where the "06 00" is in your version.
If it's there, use it; if not, post your log to "pastebin.com" please so that I can have a look.
Yes, I have such sequence in my log, actually two of them, but neither of them worked. This log file is 12MB in size, and I'm on a very slow connection, the pastbin didn't work for some reason.

Code: Select all

[3483 ms] UsbSnoop - MyInternalIOCTLCompletion(a9737126) : fido=8a2d2ea0, Irp=899a6008, Context=89990360, IRQL=2
[3483 ms]  <<<  URB 896 coming back  <<< 
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 89e267bc [endpoint 0x00000084]
  TransferFlags        = 00000001 (USBD_TRANSFER_DIRECTION_IN, ~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 0000000d
  TransferBuffer       = 897bcd80
  TransferBufferMDL    = 897d4cd8
    00000000: 55 53 42 53 08 60 9a 89 2c 00 00 00 00
  UrbLink              = 00000000
[3483 ms] UsbSnoop - FilterDispatchAny(a9736fd2) : IRP_MJ_INTERNAL_DEVICE_CONTROL
[3483 ms] UsbSnoop - FdoHookDispatchInternalIoctl(a97371ea) : fdo=897d5448, Irp=899a6008, IRQL=2
[3483 ms]  >>>  URB 897 going down  >>> 
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 89e267dc [endpoint 0x00000005]
  TransferFlags        = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 0000001f
  TransferBuffer       = 897bcd80
  TransferBufferMDL    = 00000000
    00000000: 55 53 42 43 08 60 9a 89 00 00 00 00 00 00 06 1b
    00000010: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  UrbLink              = 00000000
[3484 ms] UsbSnoop - MyInternalIOCTLCompletion(a9737126) : fido=8a2d2ea0, Irp=899a6008, Context=89990360, IRQL=2
[3484 ms]  <<<  URB 897 coming back  <<< 
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 89e267dc [endpoint 0x00000005]
  TransferFlags        = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 0000001f
  TransferBuffer       = 897bcd80
  TransferBufferMDL    = 89b2f228
  UrbLink              = 00000000
[3484 ms] UsbSnoop - FilterDispatchAny(a9736fd2) : IRP_MJ_INTERNAL_DEVICE_CONTROL
[3484 ms] UsbSnoop - FdoHookDispatchInternalIoctl(a97371ea) : fdo=897d5448, Irp=899a6008, IRQL=2
[3484 ms]  >>>  URB 898 going down  >>> 
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 89e267bc [endpoint 0x00000084]
  TransferFlags        = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 0000000d
  TransferBuffer       = 897bcd80
  TransferBufferMDL    = 00000000
    00000000: 55 53 42 43 08 60 9a 89 00 00 00 00 00
  UrbLink              = 00000000
[3485 ms] UsbSnoop - MyInternalIOCTLCompletion(a9737126) : fido=8a2d2ea0, Irp=899a6008, Context=89990360, IRQL=2
[3485 ms]  <<<  URB 898 coming back  <<< 
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 89e267bc [endpoint 0x00000084]
  TransferFlags        = 00000001 (USBD_TRANSFER_DIRECTION_IN, ~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 0000000d
  TransferBuffer       = 897bcd80
  TransferBufferMDL    = 89b2f228
    00000000: 55 53 42 53 08 60 9a 89 00 00 00 00 00
  UrbLink              = 00000000
[3485 ms] UsbSnoop - FilterDispatchAny(a9736fd2) : IRP_MJ_INTERNAL_DEVICE_CONTROL
[3485 ms] UsbSnoop - FdoHookDispatchInternalIoctl(a97371ea) : fdo=897d5448, Irp=899d8008, IRQL=2
[3485 ms]  >>>  URB 899 going down  >>> 
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 89e267dc [endpoint 0x00000005]
  TransferFlags        = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 0000001f
  TransferBuffer       = 897bcd80
  TransferBufferMDL    = 00000000
    00000000: 55 53 42 43 08 80 9d 89 00 00 00 00 00 00 06 1b
    00000010: 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00
  UrbLink              = 00000000
[3486 ms] UsbSnoop - MyInternalIOCTLCompletion(a9737126) : fido=8a2d2ea0, Irp=899d8008, Context=89990360, IRQL=2
[3486 ms]  <<<  URB 899 coming back  <<< 
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 89e267dc [endpoint 0x00000005]
  TransferFlags        = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 0000001f
  TransferBuffer       = 897bcd80
  TransferBufferMDL    = 89b2f228
  UrbLink              = 00000000
[3486 ms] UsbSnoop - FilterDispatchAny(a9736fd2) : IRP_MJ_INTERNAL_DEVICE_CONTROL
[3486 ms] UsbSnoop - FdoHookDispatchInternalIoctl(a97371ea) : fdo=897d5448, Irp=899d8008, IRQL=2
[3486 ms]  >>>  URB 900 going down  >>> 

Code: Select all

sudo usb_modeswitch -v 0x05c6 -p 0x1000 -W -M "5553424308809d89000000000000061b000000020000000000000000000000"
 * usb_modeswitch: tool for controlling "flip flop" mode USB devices
 * Version 1.0.2 (C) Josua Dietze 2009
 * Works with libusb 0.1.12 and probably other versions

Taking all parameters from the command line

DefaultVendor=  0x05c6
DefaultProduct= 0x1000
TargetVendor=   not set
TargetProduct=  not set
TargetClass=    not set

DetachStorageOnly=0
HuaweiMode=0
SierraMode=0
SonyMode=0
MessageEndpoint= not set
MessageContent="5553424308809d89000000000000061b000000020000000000000000000000"
NeedResponse=0
ResponseEndpoint= not set
Interface=0x00

InquireDevice enabled (default)
Success check disabled

usb_set_debug: Setting debugging level to 15 (on)
usb_os_find_busses: Found 002
usb_os_find_busses: Found 001
usb_os_find_devices: Found 007 on 002
usb_os_find_devices: Found 001 on 002
error obtaining child information: Inappropriate ioctl for device
usb_os_find_devices: Found 001 on 001
usb_os_find_devices: Found 002 on 001
error obtaining child information: Inappropriate ioctl for device

Looking for default devices ...
 Found default devices (1)
Accessing device 007 on bus 002 ...
Using endpoints 0x05 (out) and 0x84 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 OK, driver found ("usbfs")
 OK, driver "usbfs" detached
USB error: error submitting URB: Device or resource busy
 Could not get INQUIRY response (error -16)

Device description data (identification)
-------------------------
USB error: error sending control message: Connection timed out
Error: could not get description string "manufacturer"
Manufacturer: 
USB error: error sending control message: Connection timed out
Error: could not get description string "product"
     Product: 
USB error: error sending control message: Connection timed out
Error: could not get description string "serial number"
  Serial No.: 
-------------------------
Looking for active driver ...
USB error: could not get bound driver: No data available
 No driver found. Either detached before or never attached
Setting up communication with interface 0 ...
Trying to send the message to endpoint 0x05 ...
 Sending the message returned error -110. Trying to continue
USB error: could not clear/halt ep 5: Connection timed out
Device is gone, skipping further steps ...
-> Run lsusb to note any changes. Bye.
This was in dmesg:

Code: Select all

[ 4012.100028] usb 2-2: new full speed USB device using ohci_hcd and address 7
[ 4012.330148] usb 2-2: configuration #1 chosen from 1 choice
[ 4012.342039] scsi13 : SCSI emulation for USB Mass Storage devices
[ 4012.342597] usb-storage: device found at 7
[ 4012.342601] usb-storage: waiting for device to settle before scanning
[ 4014.360912] usb 2-2: usbfs: USBDEVFS_CONTROL failed cmd usb_modeswitch rqt 128 rq 6 len 255 ret -110
[ 4015.360866] usb 2-2: usbfs: USBDEVFS_CONTROL failed cmd usb_modeswitch rqt 128 rq 6 len 255 ret -110
[ 4016.360811] usb 2-2: usbfs: USBDEVFS_CONTROL failed cmd usb_modeswitch rqt 128 rq 6 len 255 ret -110
[ 4203.095248] usb 2-2: usbfs: process 2335 (usb_modeswitch) did not claim interface 0 before use
[ 4204.090090] usb 2-2: usbfs: USBDEVFS_CONTROL failed cmd usb_modeswitch rqt 128 rq 6 len 255 ret -110
[ 4205.091044] usb 2-2: usbfs: USBDEVFS_CONTROL failed cmd usb_modeswitch rqt 128 rq 6 len 255 ret -110
[ 4206.090989] usb 2-2: usbfs: USBDEVFS_CONTROL failed cmd usb_modeswitch rqt 128 rq 6 len 255 ret -110
[ 4206.092042] usb 2-2: usbfs: process 2343 (usb_modeswitch) did not claim interface 0 before use
[ 4211.190763] usb 2-2: usbfs: USBDEVFS_CONTROL failed cmd usb_modeswitch rqt 128 rq 6 len 255 ret -110
[ 4212.190676] usb 2-2: usbfs: USBDEVFS_CONTROL failed cmd usb_modeswitch rqt 128 rq 6 len 255 ret -110
[ 4213.190624] usb 2-2: usbfs: USBDEVFS_CONTROL failed cmd usb_modeswitch rqt 128 rq 6 len 255 ret -110
There is a page with instructions for linux for this device:
http://www.triatel.lv/lv/nodes/view/635

There is a serial usb driver, but it didn't compile with recent kernel and besides it binds to target device ID's, which doesn't work before switching. Although I fixed it to compile, I didn't make it to react on the device in any way.

This device should be switchable by ejecting the storage device, but it doesn't show up anywhere, so I can't eject it.

Posted: 26 Dec 2009, 09:50
by Josh
The "eject" command (actually the "06 1b" sequence) only works if the thing is recognized as a storage device. That is your real problem.

Can you post a "lsusb -v -d 05c6:" right after plugging?

* edit *
Forget about the last request; instead read next post ...

Posted: 26 Dec 2009, 12:35
by Josh
I was a bit slow to pick up (too many cookies?). You have the notorious "05c6:1000" ID ...

There are many devices using that ID. Some want to be switched - with various methods - and some don't (like my cell phone in storage mode). Most distributions don't handle that problem, they treat this ID as an "Option" modem and send the command to switch that specific family. There is a kernel function and various tools (usb_modeswitch and derivates) set up to do this.

The bottom line is that you need to disable all of these other mechanisms before your device can be handled as intended.

Here is how:
  1. edit "/etc/modprobe.conf" and add the line
    "options usb-storage option_zero_cd=2". This bypasses the kernel switch. Reload the storage module or reboot.
  2. go to "/etc/udev/rules.d" and/or to "/lib/udev/rules.d" (depending on your distribution). Search for your ID by doing a "grep -i 05c6 *". See if the product ID "1000" pops up in the results. If found, edit the respective file and comment the line out. It will run "modem-modeswitch", "ozerocdoff" or "usb_modeswitch"; you don't want any of them right now. To be on the safe side, reboot.
If you did all the above, you should now have a real storage device if you plug your device in. Then either run the "06 1b" command or eject the device from the desktop. If that works, I'll add the device to the config files and all that fiddling around will come to an end ...


Posted: 26 Dec 2009, 15:29
by rei4dan
I had a /etc/modprobe.d/ with multiple blacklist files, I created a file "usb-modem.conf" and put a line "options usb-storage option_zero_cd=2" in it.

There was 05c6:1000 mentioned in /etc/udev/rules.d/usb_modeswitch.conf as "Option GlobeSurfer Icon (aka "Vodafone EasyBox")" and in /lib/udev/rules.d/61-option-modem-modeswitch.rules which ran modem-modeswitch with "-t option-zerocd".

Rebooted, plugged in the device and it came up as a CD device, ejected from desktop and it switched:

Code: Select all

sudo lsusb -v -d 1fe7:

Bus 002 Device 003: ID 1fe7:0100  
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            2 Communications
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1fe7 
  idProduct          0x0100 
  bcdDevice            0.00
  iManufacturer           1 Vertex Wireless Co., Ltd.
  iProduct                2 Vertex Wireless Multi-Function Device
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          113
    bNumInterfaces          4
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass      2 Abstract (modem)
      bInterfaceProtocol      1 AT-commands (v.25ter)
      iInterface              3 Vertex Wireless ACM Interface
      CDC Header:
        bcdCDC               1.09
      CDC Call Management:
        bmCapabilities       0x03
          call management
          use DataInterface
        bDataInterface          1
      CDC ACM:
        bmCapabilities       0x07
          sends break
          line coding and serial state
          get/set/clear comm features
      CDC Union:
        bMasterInterface        0
        bSlaveInterface         1 
      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              16
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      iInterface              4 Data Interface
      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        2
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              5 Vertex Wireless Diagnostic Monitor Port
      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        3
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              6 Vertex Wireless Device Management Port
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 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     0x06  EP 6 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0000
  (Bus Powered)
From commandline with usb_modeswitch and "061b" it also switched. It responds to AT commands, but NetworkManager still doesn't establish a connection.

Code: Select all

screen /dev/ttyACM1

Code: Select all

AT
OK
AT+GMM
238

OK
ATI
Manufacturer: QUALCOMM INCORPORATED
Model: 238
Revision: m6801B-SM_VW100-63503 1 [Jul 17 2008 06:00:00]
ESN: 0xEF666B0C
+GCAP: +CIS707-A, CIS-856, +MS, +ES, +DS, +FCLASS

OK
AT+CSQ
99, 99

OK
I tried to load their module and now NM tries longer, but still no connection. Its hard to tell whether it is a problem with weak signal or still some configuration.

Posted: 26 Dec 2009, 18:17
by Josh
Unfortunately, I'm no "Network Manager" expert. But I'd first try to test the connection with a good old chat script or wvdial.
Did you try ttyACM0 as well (if you get it)?

What is your exact distribution? I will file a bug report in the hope that this mode-switching chaos will be reigned in eventually.

And tonight I'll post a new config package including your device. If you want to be named as a contributor, you can geive me your name in a PM or an e-mail.


Posted: 26 Dec 2009, 20:06
by rei4dan
Josh wrote:Unfortunately, I'm no "Network Manager" expert. But I'd first try to test the connection with a good old chat script or wvdial.
Did you try ttyACM0 as well (if you get it)?
Yes, I get ttyACM0, but every time I replug the device it adds new ttyACMx with incremented number. I tried it with screen as shown in previous message.

If module wvmfdiag.ko which comes with this device is loaded, there are created also ttyUSB0 and ttyUSB1 devices. In dmesg:

Code: Select all

[ 4053.740930] usb 2-2: USB disconnect, address 6
[ 4057.870041] usb 2-2: new full speed USB device using ohci_hcd and address 7
[ 4058.096984] usb 2-2: configuration #1 chosen from 1 choice
[ 4058.102967] cdc_acm 2-2:1.0: ttyACM2: USB ACM device
[ 4058.117997] vwmfdiag 2-2:1.2: vwmfdiag converter detected
[ 4058.118117] usb 2-2: vwmfdiag converter now attached to ttyUSB0
[ 4058.121064] vwmfdiag 2-2:1.3: vwmfdiag converter detected
[ 4058.121185] usb 2-2: vwmfdiag converter now attached to ttyUSB1
Edited /etc/wvdial.conf and it dialed and created a ppp0 interface, but there is no application which would use it and I can't ping any address.
What is your exact distribution? I will file a bug report in the hope that this mode-switching chaos will be reigned in eventually.
I'm going to use this device on Ubuntu 9.10.
Thank you for your help and advice!

Posted: 26 Dec 2009, 22:21
by Josh
rei4dan wrote:Edited /etc/wvdial.conf and it dialed and created a ppp0 interface, but there is no application which would use it and I can't ping any address.
Maybe you need to set the option "defaultroute" in the ppp option file. If you say "route" the ppp0 interface should be on the bottom of the list as gateway.

And see what your "/etc/resolv.conf" says. If you have no caching name server running, the DNS of your provider must be entered there.

Posted: 26 Dec 2009, 23:20
by rei4dan
It actually works with wvdial ok now, maybe because it is on ttyACM0 now. But NM still doesn't want to create a connection, altough I tried it on different computer with older NM (0.7.1) and there it works. In Ubuntu syslog I found this:

Code: Select all

Dec 26 22:51:32 dragon-PC NetworkManager:    SCPlugin-Ifupdown: devices removed (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
Dec 26 22:52:01 dragon-PC NetworkManager: <info>  Activation (ttyACM0) starting connection 'Triatel connection'
Dec 26 22:52:01 dragon-PC NetworkManager: <info>  (ttyACM0): device state change: 3 -> 4 (reason 0)
Dec 26 22:52:01 dragon-PC NetworkManager: <info>  Activation (ttyACM0) Stage 1 of 5 (Device Prepare) scheduled...
Dec 26 22:52:01 dragon-PC NetworkManager: <info>  Activation (ttyACM0) Stage 1 of 5 (Device Prepare) started...
Dec 26 22:52:01 dragon-PC NetworkManager: <info>  Activation (ttyACM0) Stage 1 of 5 (Device Prepare) complete.
Dec 26 22:52:01 dragon-PC modem-manager: (ttyACM0) opening serial device...
Dec 26 22:52:01 dragon-PC modem-manager: Modem /org/freedesktop/ModemManager/Modems/2: state changed (disabled -> enabling)
Dec 26 22:52:01 dragon-PC modem-manager: Got failure code 100: Unknown error
Dec 26 22:52:01 dragon-PC modem-manager: Your CDMA modem does not support +CMEE command
Dec 26 22:52:01 dragon-PC modem-manager: Modem /org/freedesktop/ModemManager/Modems/2: state changed (enabling -> enabled)
Dec 26 22:53:02 dragon-PC NetworkManager: <WARN>  stage1_prepare_done(): CDMA modem connection failed: No service
Dec 26 22:53:02 dragon-PC NetworkManager: <info>  (ttyACM0): device state change: 4 -> 9 (reason 0)
Dec 26 22:53:02 dragon-PC NetworkManager: <info>  Marking connection 'Triatel connection' invalid.
Dec 26 22:53:02 dragon-PC NetworkManager: <info>  Activation (ttyACM0) failed.
Dec 26 22:53:02 dragon-PC NetworkManager: <info>  (ttyACM0): device state change: 9 -> 3 (reason 0)
Dec 26 22:53:02 dragon-PC NetworkManager: <info>  (ttyACM0): deactivating device (reason: 0).
Dec 26 22:53:02 dragon-PC modem-manager: Modem /org/freedesktop/ModemManager/Modems/2: state changed (enabled -> disabling)
Dec 26 22:53:02 dragon-PC modem-manager: (ttyACM0) closing serial device...
Dec 26 22:53:02 dragon-PC modem-manager: Modem /org/freedesktop/ModemManager/Modems/2: state changed (disabling -> disabled)
Dec 26 22:53:18 dragon-PC NetworkManager: <info>  Activation (ttyACM0) starting connection 'Triatel connection'
Dec 26 22:53:18 dragon-PC NetworkManager: <info>  (ttyACM0): device state change: 3 -> 4 (reason 0)
Dec 26 22:53:18 dragon-PC NetworkManager: <info>  Activation (ttyACM0) Stage 1 of 5 (Device Prepare) scheduled...
Dec 26 22:53:18 dragon-PC NetworkManager: <info>  Activation (ttyACM0) Stage 1 of 5 (Device Prepare) started...
Dec 26 22:53:18 dragon-PC NetworkManager: <info>  Activation (ttyACM0) Stage 1 of 5 (Device Prepare) complete.
Dec 26 22:53:18 dragon-PC modem-manager: (ttyACM0) opening serial device...
Dec 26 22:53:18 dragon-PC modem-manager: Modem /org/freedesktop/ModemManager/Modems/2: state changed (disabled -> enabling)
Dec 26 22:53:18 dragon-PC modem-manager: Got failure code 100: Unknown error
Dec 26 22:53:18 dragon-PC modem-manager: Your CDMA modem does not support +CMEE command
Dec 26 22:53:18 dragon-PC modem-manager: Modem /org/freedesktop/ModemManager/Modems/2: state changed (enabling -> enabled)
Dec 26 22:53:27 dragon-PC ntpd[3188]: sendto(80.93.56.210) (fd=22): Invalid argument
Dec 26 22:53:32 dragon-PC ntpd[3188]: Deleting interface #6 ppp0, 192.168.163.229#123, interface stats: received=6, sent=6, dropped=3, active_time=300 secs
Dec 26 22:54:19 dragon-PC NetworkManager: <WARN>  stage1_prepare_done(): CDMA modem connection failed: No service
Dec 26 22:54:19 dragon-PC NetworkManager: <info>  (ttyACM0): device state change: 4 -> 9 (reason 0)
Dec 26 22:54:19 dragon-PC NetworkManager: <info>  Marking connection 'Triatel connection' invalid.
Dec 26 22:54:19 dragon-PC NetworkManager: <info>  Activation (ttyACM0) failed.
Dec 26 22:54:19 dragon-PC NetworkManager: <info>  (ttyACM0): device state change: 9 -> 3 (reason 0)
Dec 26 22:54:19 dragon-PC NetworkManager: <info>  (ttyACM0): deactivating device (reason: 0).
Dec 26 22:54:19 dragon-PC modem-manager: Modem /org/freedesktop/ModemManager/Modems/2: state changed (enabled -> disabling)
Dec 26 22:54:19 dragon-PC modem-manager: (ttyACM0) closing serial device...
Dec 26 22:54:19 dragon-PC modem-manager: Modem /org/freedesktop/ModemManager/Modems/2: state changed (disabling -> disabled)
Using wvdial:

Code: Select all

sudo wvdial
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Modem initialized.
--> Sending: ATDT#777
--> Waiting for carrier.
ATDT#777
NO CARRIER
--> No Carrier!  Trying again.
--> Sending: ATDT#777
--> Waiting for carrier.
ATDT#777
CONNECT
--> Carrier detected.  Waiting for prompt.
~[7f]}#@!}!} } }=}!}$}%\}"}&} } } } }#}%B#}%}%}&`f7N}'}"}(}"4'~
--> PPP negotiation detected.
--> Starting pppd at Sat Dec 26 22:45:33 2009
--> Pid of pppd: 3282
--> Using interface ppp0
--> local  IP address xxx.xxx.xxx.xxx
--> remote IP address xxx.xxx.xxx.xxx
--> primary   DNS address xxx.xxx.xxx.xxx
^CCaught signal 2:  Attempting to exit gracefully...
--> Terminating on signal 15
--> Connect time 6.0 minutes.
--> Disconnecting at Sat Dec 26 22:51:32 2009
On Ubuntu I have NM-0.8~rc1-0ubuntu1~nmt1~karmic installed and it looks like there is problem with it. Did you already filled a bug for Ubuntu?

Posted: 27 Dec 2009, 00:23
by Josh
The wvdial looks good, so the problem is really this initialization from Net Manager. I really don't use it, but I assume you can adapt the initialization to your modem somewhere.
But this is indeed a case for the maintainers of the program.

I did not file the bug yet, but it will be only about the switching problems.

The current config file now contains your entry.


Posted: 27 Dec 2009, 01:13
by rei4dan
I think I found were the issue is.. in NM-0.8 there is a new component - modem-manager, it now manages ppp connections and there are multiple bugs on this in launchpad. I will open a new bug about that.

Thank you, for your help! It really helped me. Happy holidays and new year!

Posted: 27 Dec 2009, 11:36
by Josh
Good news. Wheels must be turning, machines must do what they are told 8)

I filed the bug - in fact I wrote almost a little novel :lol:

If you want to have a look (or add credibility), here is the link:

Ubuntu bug no. 500726

Have a good new year and always flawless wireless connections !!