I have a very similar bug in Xubuntu 16.04 and 16.10. I have two small Arduino semi-compatible stm32f103c8t6 based microcontroller boards with USB ports. When I plug the idProduct=3 board in, the system fails to load the ttyACM driver and the board doesn't work. But the weird thing is that even though I disconnected the idProduct=3 board and powered down the system and rebooted, when I plug the idProduct=4 board in, the system detects and declares the presence of the idProduct=3 board and shows product id and serial number of the idProduct=3 board, even though the idProduct=3 board is not connected and has not been connected since before the last boot. Then the system seems to realize its mistake and claims to disconnect the idProduct=3 board (which is not physically connected) and it detects and connects to the idProduct=4 board correctly and loads the ACM driver correctly and the idProduct=4 board works. I was using 16.04 when I discovered this problem, so I upgraded to 16.10, but the problem is the same. This problem has persisted through several reboots and connecting the boards in different orders.
There must be some kind of cache file for USB product id and serial numbers that persists between reboots and even kernel and system version upgrades. Does anybody know how I can clear the cache? Here's the output of tail -f /var/log/kern.log when connecting the idProduct=4 board. Remember, at the time of this log the idProduct=3 board was not and had not been plugged in since before the last boot. This is showing the false detection of the idProduct=3 board upon insertion of the idProduct=4 board. ==> /var/log/kern.log <== Feb 12 20:07:57 mybox kernel: [ 85.064070] usb 3-4: new full-speed USB device number 2 using ohci-pci Feb 12 20:07:58 mybox kernel: [ 85.279854] usb 3-4: New USB device found, idVendor=1eaf, idProduct=0003 Feb 12 20:07:58 mybox kernel: [ 85.279869] usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 Feb 12 20:07:58 mybox kernel: [ 85.279877] usb 3-4: Product: Maple 003 Feb 12 20:07:58 mybox kernel: [ 85.279884] usb 3-4: Manufacturer: LeafLabs Feb 12 20:07:58 mybox kernel: [ 85.279890] usb 3-4: SerialNumber: LLM 003 Feb 12 20:07:59 mybox kernel: [ 86.307465] usb 3-4: USB disconnect, device number 2 Feb 12 20:07:59 mybox kernel: [ 86.828222] usb 3-4: new full-speed USB device number 3 using ohci-pci Feb 12 20:07:59 mybox kernel: [ 87.049880] usb 3-4: New USB device found, idVendor=1eaf, idProduct=0004 Feb 12 20:07:59 mybox kernel: [ 87.049895] usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0 Feb 12 20:07:59 mybox kernel: [ 87.049903] usb 3-4: Product: Maple Feb 12 20:07:59 mybox kernel: [ 87.049910] usb 3-4: Manufacturer: LeafLabs Feb 12 20:07:59 mybox kernel: [ 87.125930] cdc_acm 3-4:1.0: ttyACM0: USB ACM device Feb 12 20:07:59 mybox kernel: [ 87.134810] usbcore: registered new interface driver cdc_acm Feb 12 20:07:59 mybox kernel: [ 87.134837] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to systemd in Ubuntu. https://bugs.launchpad.net/bugs/1539348 Title: udevadm info reports wrong ID_MODEL_ID and ID_VENDOR_ID for USB serial port Status in qtserialport-opensource-src package in Ubuntu: Confirmed Status in systemd package in Ubuntu: Confirmed Bug description: Running udevadm info with the device path of a virtual serial port created by a USB device (in this case a Particle Photon development board) returns the ID_MODEL_ID and ID_VENDOR_ID for the USB host controller instead of the Particle device. The consequence is mis-detection of the device associated with a virtual serial port in applications. udevadm info with the virtual serial port. Expect ID_MODEL_ID=c00a and ID_VENDOR_ID=2b04 $ udevadm info --query=property -p /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/tty/ttyACM0 DEVLINKS=/dev/serial/by-id/pci-Particle_Electron_00000000050C-if00 /dev/serial/by-path/pci-0000:00:14.0-usb-0:1:1.0 DEVNAME=/dev/ttyACM0 DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/tty/ttyACM0 ID_BUS=pci ID_MODEL=Electron ID_MODEL_ENC=Electron ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Zenbook Prime UX31A) ID_MODEL_ID=0x1e31 ID_PATH=pci-0000:00:14.0-usb-0:1:1.0 ID_PATH_TAG=pci-0000_00_14_0-usb-0_1_1_0 ID_PCI_CLASS_FROM_DATABASE=Serial bus controller ID_PCI_INTERFACE_FROM_DATABASE=XHCI ID_PCI_SUBCLASS_FROM_DATABASE=USB controller ID_REVISION=0200 ID_SERIAL=Particle_Electron_00000000050C ID_SERIAL_SHORT=00000000050C ID_TYPE=generic ID_USB_CLASS_FROM_DATABASE=Communications ID_USB_DRIVER=cdc_acm ID_USB_INTERFACES=:020201:0a0000: ID_USB_INTERFACE_NUM=00 ID_VENDOR=Particle ID_VENDOR_ENC=Particle ID_VENDOR_FROM_DATABASE=Intel Corporation ID_VENDOR_ID=0x8086 MAJOR=166 MINOR=0 SUBSYSTEM=tty TAGS=:systemd: USEC_INITIALIZED=4586285779 Running udevadm info with the base device path gives expected IDs $ udevadm info --query=property -p /devices/pci0000:00/0000:00:14.0/usb1/1-1 BUSNUM=001 DEVNAME=/dev/bus/usb/001/008 DEVNUM=008 DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-1 DEVTYPE=usb_device DRIVER=usb ID_BUS=usb ID_MODEL=Electron ID_MODEL_ENC=Electron ID_MODEL_ID=c00a ID_REVISION=0200 ID_SERIAL=Particle_Electron_00000000050C ID_SERIAL_SHORT=00000000050C ID_USB_INTERFACES=:020201:0a0000: ID_VENDOR=Particle ID_VENDOR_ENC=Particle ID_VENDOR_ID=2b04 MAJOR=189 MINOR=7 PRODUCT=2b04/c00a/200 SUBSYSTEM=usb TYPE=2/0/0 USEC_INITIALIZED=4585731209 Running lsusb gives the expected IDs. $ lsusb -v Bus 001 Device 008: ID 2b04:c00a Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 2 Communications bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x2b04 idProduct 0xc00a bcdDevice 2.00 iManufacturer 1 Particle iProduct 2 Electron iSerial 3 00000000050C bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 67 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 100mA 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 0 CDC Header: bcdCDC 1.10 CDC Call Management: bmCapabilities 0x00 bDataInterface 1 CDC ACM: bmCapabilities 0x02 line coding and serial state CDC Union: bMasterInterface 0 bSlaveInterface 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 255 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 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 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Device Status: 0x0001 Self Powered $ lsb_release -rd Description: Ubuntu 15.10 Release: 15.10 $ apt-cache policy udev udev: Installed: 225-1ubuntu9 Candidate: 225-1ubuntu9 Version table: *** 225-1ubuntu9 0 500 http://archive.ubuntu.com/ubuntu/ wily/main amd64 Packages 100 /var/lib/dpkg/status ProblemType: Bug DistroRelease: Ubuntu 15.10 Package: udev 225-1ubuntu9 ProcVersionSignature: Ubuntu 4.2.0-25.30-generic 4.2.6 Uname: Linux 4.2.0-25-generic x86_64 ApportVersion: 2.19.1-0ubuntu5 Architecture: amd64 CurrentDesktop: Unity CustomUdevRuleFiles: 50-particle.rules 10-pololu-programmer.rules 49-teensy.rules 99-openocd.rules 96-monitor-hotplug.rules 51-android.rules Date: Thu Jan 28 15:33:38 2016 EcryptfsInUse: Yes InstallationDate: Installed on 2013-05-09 (994 days ago) InstallationMedia: Ubuntu 13.04 "Raring Ringtail" - Release amd64 (20130424) MachineType: ASUSTeK COMPUTER INC. UX31A ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.2.0-25-generic root=UUID=99e110b2-cdee-4df1-ab50-25fea2fd4f30 ro splash quiet vt.handoff=7 SourcePackage: systemd UpgradeStatus: Upgraded to wily on 2015-10-27 (93 days ago) dmi.bios.date: 01/31/2013 dmi.bios.vendor: American Megatrends Inc. dmi.bios.version: UX31A.218 dmi.board.asset.tag: ATN12345678901234567 dmi.board.name: UX31A dmi.board.vendor: ASUSTeK COMPUTER INC. dmi.board.version: 1.0 dmi.chassis.asset.tag: No Asset Tag dmi.chassis.type: 10 dmi.chassis.vendor: ASUSTeK COMPUTER INC. dmi.chassis.version: 1.0 dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvrUX31A.218:bd01/31/2013:svnASUSTeKCOMPUTERINC.:pnUX31A:pvr1.0:rvnASUSTeKCOMPUTERINC.:rnUX31A:rvr1.0:cvnASUSTeKCOMPUTERINC.:ct10:cvr1.0: dmi.product.name: UX31A dmi.product.version: 1.0 dmi.sys.vendor: ASUSTeK COMPUTER INC. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/qtserialport-opensource-src/+bug/1539348/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp