Bug 641233

Summary: USB modem detected but doesn't work
Product: [Fedora] Fedora Reporter: Amit Shah <amit.shah>
Component: ModemManagerAssignee: Dan Williams <dcbw>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 14CC: amit.shah, bazs111, dcbw, digidietze, huzaifas, linux, m_runwal
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-08-16 17:56:35 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
modem-manager logs
none
NetworkManager logs
none
modem-manager debug log none

Description Amit Shah 2010-10-08 05:56:44 UTC
Created attachment 452265 [details]
modem-manager logs

Description of problem:

A Teracom USB modem for 3G services gets detected by NetworkManager and gets configured, but not connected.  After a connection attempt is made, the device is 'detached'.

dmesg and lsusb -v output below.  Will attach MM and NM logs.


usb 1-1: new high speed USB device using ehci_hcd and address 31
usb 1-1: New USB device found, idVendor=19d2, idProduct=2000
usb 1-1: New USB device strings: Mfr=3, Product=2, SerialNumber=4
usb 1-1: Product: HSPA WCDMA Technologies MSM
usb 1-1: Manufacturer: HSPA,Incorporated
usb 1-1: SerialNumber: P679M1GEND010000
scsi31 : usb-storage 1-1:1.0
usb 1-1: USB disconnect, address 31
usb 1-1: new high speed USB device using ehci_hcd and address 32
usb 1-1: New USB device found, idVendor=19d2, idProduct=0108
usb 1-1: New USB device strings: Mfr=3, Product=2, SerialNumber=4
usb 1-1: Product: HSPA WCDMA Technologies MSM
usb 1-1: Manufacturer: HSPA,Incorporated
usb 1-1: SerialNumber: P679M1GEND010000
option 1-1:1.0: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
option 1-1:1.1: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
option 1-1:1.2: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2
option 1-1:1.3: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB3
scsi32 : usb-storage 1-1:1.4
scsi 32:0:0:0: Direct-Access     HSPA     MMC Storage      2.31 PQ: 0 ANSI: 2
sd 32:0:0:0: Attached scsi generic sg1 type 0
sd 32:0:0:0: [sdb] Attached SCSI removable disk



Bus 001 Device 032: ID 19d2:0108 ONDA Communication S.p.A. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x19d2 ONDA Communication S.p.A.
  idProduct          0x0108 
  bcdDevice            0.00
  iManufacturer           3 HSPA,Incorporated
  iProduct                2 HSPA WCDMA Technologies MSM
  iSerial                 4 P679M1GEND010000
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          131
    bNumInterfaces          5
    bConfigurationValue     1
    iConfiguration          1 HSPA WCDMA Technologies MSM
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    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              32
      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              32
    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              0 
      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              32
      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              32
    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              0 
      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              32
      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              32
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      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     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               5
      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              32
      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              32
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)
      iInterface              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
      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
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)

Comment 1 Amit Shah 2010-10-08 05:57:34 UTC
Created attachment 452266 [details]
NetworkManager logs

Comment 2 Amit Shah 2010-10-29 05:28:39 UTC
Update: running usb_modeswitch -R -v 19d2 -p 0108 after a while of plugging the usb modem in and then attempting to connect works fine.  Re-assigning to usb_modeswitch.

Comment 3 Josua Dietze 2011-01-01 23:32:29 UTC
The NetworkManager log shows that the connection is attempted on ttyUSB1.

According to the lsusb output the only serial port with interrupt transfer mode is ttyUSB3. This port should have been used by NM.

There is nothing that usb_modeswitch can do here - except resetting the device, which you did.

Comment 4 Amit Shah 2011-01-04 13:23:34 UTC
(In reply to comment #3)
> The NetworkManager log shows that the connection is attempted on ttyUSB1.
> 
> According to the lsusb output the only serial port with interrupt transfer mode
> is ttyUSB3. This port should have been used by NM.
> 
> There is nothing that usb_modeswitch can do here - except resetting the device,
> which you did.

Should this bug go to NetworkManager then?

Comment 5 Josua Dietze 2011-01-04 18:15:45 UTC
Yes, it should. Or rather to the modem-manager component which tries to autodetect the right port. I don't know if that counts as a different package ...

Comment 6 Dan Williams 2011-01-10 23:21:09 UTC
MM currently uses "tags" via udev rules to detect which port is the main port and which ports are "aux" ports.  Those are derived from the windows driver.  I hadn't thought about the interrupt endpoint before.  It's a pain to add new ZTE devices to the udev rules, and that obviously doesn't "Just Work", so perhaps I can augment the ModemManager logic to tag interfaces with the interrupt endpoint as the "main" port when they aren't listed in the udev rules.

Comment 7 Josua Dietze 2011-01-11 07:07:24 UTC
There are some devices which provide more than one vendor-specific interface  with an interrupt endpoint, presumably for proprietary "ether" protocols. These may be bound to the "option" driver automatically and pop up as (unusable) ttyUSBs.
Fortunately, in all known cases (Huawei, Olivetti) the *lower* interface with an interrupt endpoint marks the correct modem port.

usb_modeswitch makes udev add a symlink to the correct port for convenience. So far, the interrupt endpoint "rule" never failed.

I thought I had mentioned this fact before in some bug thread, but I can't remember exactly where that might have been.

Comment 8 Dan Williams 2011-01-11 18:03:27 UTC
For ZTE the interface # is all over the map.  I've pulled the following all out of the windows INF files:

http://cgit.freedesktop.org/ModemManager/ModemManager/tree/plugins/77-mm-zte-port-types.rules

and as you can see the TYPE_MODEM interface # changes pretty often; some its 0, some its 1, some its 3, some its 4.  But given this information if there's an easy way to determine whether there's an interrupt endpoint on the interface using sysfs/udev then I think I can make the ModemManager ZTE plugin use that as a fallback if the device isn't specifically tagged already.

Comment 9 Josua Dietze 2011-01-13 07:12:45 UTC
I *really* would like to see annother fallback in NetworkManager:

Manual override of the serial port setting (probably hidden under an "Advanced" button).

Right now, if port autodetection fails, there is really no other way than to point people to other connection programs, which is quite regrettable.

Comment 10 Dan Williams 2011-07-18 22:50:27 UTC
Does this device now work with latest ModemManager update?

https://admin.fedoraproject.org/updates/ModemManager-0.4.998-1.git20110706.fc14

Comment 11 Amit Shah 2011-07-19 06:09:37 UTC
I've been using F15 and it works.  Can't test F14, but I guess it just needed the ZTE rules you mentioned in comment 8, so it should be fine.  Thanks.

Comment 12 Runwalsoft 2011-07-19 11:59:16 UTC
I have been using Fedora15. It doesn't work.

Comment 13 Dan Williams 2011-08-02 16:25:40 UTC
(In reply to comment #12)
> I have been using Fedora15. It doesn't work.

What doesn't work?  can you post some modem-manager debug logs?  Try the following:

1) unplug your device
2) get a root terminal
3) mv /usr/sbin/modem-manager /
4) killall -TERM modem-manager
5) /modem-manager --debug
6) replug your dongle, reproduce the issue
7) paste or attach that log output from modem-manager into this bug report
8) hit Ctl+C to stop modem-manager
9) mv /modem-manager /usr/sbin/modem-manager

and then we can diagnose what's going on.

Comment 14 Runwalsoft 2011-08-08 05:45:23 UTC
Created attachment 517101 [details]
modem-manager debug log

(In reply to comment #13)
> (In reply to comment #12)
> > I have been using Fedora15. It doesn't work.
> 
> What doesn't work?  can you post some modem-manager debug logs?  Try the
> following:
> 
> 1) unplug your device
> 2) get a root terminal
> 3) mv /usr/sbin/modem-manager /
> 4) killall -TERM modem-manager
> 5) /modem-manager --debug
> 6) replug your dongle, reproduce the issue
> 7) paste or attach that log output from modem-manager into this bug report
> 8) hit Ctl+C to stop modem-manager
> 9) mv /modem-manager /usr/sbin/modem-manager
> 
> and then we can diagnose what's going on.

Here is attached file.

Comment 15 Fedora End Of Life 2012-08-16 17:56:37 UTC
This message is a notice that Fedora 14 is now at end of life. Fedora 
has stopped maintaining and issuing updates for Fedora 14. It is 
Fedora's policy to close all bug reports from releases that are no 
longer maintained.  At this time, all open bugs with a Fedora 'version'
of '14' have been closed as WONTFIX.

(Please note: Our normal process is to give advanced warning of this 
occurring, but we forgot to do that. A thousand apologies.)

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, feel free to reopen 
this bug and simply change the 'version' to a later Fedora version.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we were unable to fix it before Fedora 14 reached end of life. If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora, you are encouraged to click on 
"Clone This Bug" (top right of this page) and open it against that 
version of Fedora.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events.  Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here: 
http://fedoraproject.org/wiki/BugZappers/HouseKeeping