Bug 668932 - upowerd steals FT-232 USB serial ports
upowerd steals FT-232 USB serial ports
Status: CLOSED WONTFIX
Product: Fedora
Classification: Fedora
Component: upower (Show other bugs)
14
Unspecified Unspecified
low Severity medium
: ---
: ---
Assigned To: Richard Hughes
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2011-01-11 23:37 EST by H. Peter Anvin
Modified: 2012-08-16 16:04 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-08-16 16:03:57 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description H. Peter Anvin 2011-01-11 23:37:28 EST
Description of problem:
If one plugs in an FT-232-based USB serial port, upower will try to claim it as a "Watts Up Pro" device.  This is paricularly obnoxious since upower cannot be removed due to core GNOME dependencies.

Version-Release number of selected component (if applicable):
upower-0.9.5-7.fc14.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Plug in a USB serial port of type:
Bus 004 Device 005: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

2. Try to use said serial port
  
Actual results:
USB port busy due to having been stolen by upowerd


Expected results:
Usable serial port


Additional info:
This is due to the following statement in 
/lib/udev/rules.d/95-upower-wup.rules:

SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A80?????", ENV{UPOWER_VENDOR}="Watts Up, Inc.", ENV{UPOWER_PRODUCT}="Watts Up? Pro", ENV{UP_MONITOR_TYPE}="wup"

Note that the device ID is a stock serial port device ID, and that the serial number match is completely spurious, because it is not qualified by a *product name*.  In my case:

Bus 004 Device 006: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x0403 Future Technology Devices International, Ltd
  idProduct          0x6001 FT232 USB-Serial (UART) IC
  bcdDevice            6.00
  iManufacturer           1 FTDI
  iProduct                2 FT232R USB UART
  iSerial                 3 A8003QII
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower               90mA
    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              2 FT232R USB UART
      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               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
Device Status:     0x0000
  (Bus Powered)
Comment 1 H. Peter Anvin 2011-01-12 01:03:15 EST
(Additional note: this is, to my counting, at least the third non-removable daemon stealing USB serial ports on F14.)
Comment 2 Richard Hughes 2011-01-12 04:13:29 EST
Watts Up Pro really screwed things up when they used the default VID and PID for the USB -> serial chip in their design. That said, upower shouldn't steal the device. Doesn't upower release the device when it fails to return sensible data? Or if the issue that upower tries to squirt "foreign" data into a RS232 connection that's not expecting it?
Comment 3 H. Peter Anvin 2011-01-12 17:50:05 EST
upower does not release the device.
Comment 4 H. Peter Anvin 2011-01-12 17:51:24 EST
It might be possible to distinguish WUP based on iManufacturer or iProduct, but if not, then it would have to be configured manually.  Squirting "foreign" data into an RS232 connection is hostile at best.
Comment 5 H. Peter Anvin 2011-07-07 19:23:28 EDT
This bug is back/still there in upower-0.9.10-1.fc15.x86_64.  This is an incredibly serious bug for anyone who uses the second most common USB serial port adapter on the planet.
Comment 6 Richard Hughes 2011-07-08 06:33:56 EDT
You can actually fix this by changing

EnableWattsUpPro=false

in /etc/UPower/UPower.conf
Comment 7 H. Peter Anvin 2011-07-09 22:44:54 EDT
I would strongly suggest enabling this by default in the package, since the assumption that FTDI serial = WUP is likely to be false for more people than it is true for, and it is probably *very* confusing for those people.
Comment 8 tz 2012-03-07 11:30:16 EST
This also affects me - the FTDI is the old standard for Arduino.  This should be disabled by default in the conf or elsewhere - even a fix could confuse things as I don't want things going out the serial port probing by default.
Comment 9 tz 2012-03-07 11:44:05 EST
There is an identical problem with /etc/udev/rules.d/99-gpsd.rules
the FTDI 8U232AM similarly will have GPSD try to grab it.

GPSD might release it but the probes can screw up a lot of things.

Should I file this as a separate report?
Comment 10 tz 2012-03-07 11:50:37 EST
I don't know if it is related, but modem-manager grabs the port too and I don't have a way to disable it, but I don't know if it probes or does anything else bad.
It may have been launched by gpsd or something.

There needs to be a way to shut off all these subtasks all trying to figure out what is attached.

Also, upowerd seems to turn off the USB port when it doesn't find the watts up so I've found myself plugging and unplugging, but it may be fixed now with the changes
Comment 11 Fedora End Of Life 2012-08-16 16:04:00 EDT
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

Note You need to log in before you can comment on or make changes to this bug.