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
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