pine64 / blisp

ISP tool & library for Bouffalo Labs RISC-V Microcontrollers and SoCs
MIT License
149 stars 20 forks source link

"Unable to find device" on Linux, AMD #63

Open kjkent opened 7 months ago

kjkent commented 7 months ago

blisp throws a "device not found" error while trying to flash a Pinecil V2. On the Pinecil docs, it's stated that the device will appear as a /dev/ttyACM* device, but this does not occur on my machine (AMD Ryzen 3600X, Arch Linux with current kernel).

The device is recognised, just not mapped to anything directly under /dev/. Here's part of the logs for udevadm monitor -p

UDEV  [21824.075493] add      /devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:07:00.3/usb3/3-3/3-3:1.1 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:07:00.3/usb3/3-3/3-3:1.1
SUBSYSTEM=usb
DEVTYPE=usb_interface
PRODUCT=ffff/ffff/200
TYPE=2/2/0
INTERFACE=10/0/0
MODALIAS=usb:vFFFFpFFFFd0200dc02dsc02dp00ic0Aisc00ip00in01
SEQNUM=5889
USEC_INITIALIZED=21824069715
ID_USB_CLASS_FROM_DATABASE=Communications
ID_USB_SUBCLASS_FROM_DATABASE=Abstract (modem)
ID_PATH_WITH_USB_REVISION=pci-0000:07:00.3-usbv2-0:3:1.1
ID_PATH=pci-0000:07:00.3-usb-0:3:1.1
ID_PATH_TAG=pci-0000_07_00_3-usb-0_3_1_1

UDEV  [21824.078608] bind     /devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:07:00.3/usb3/3-3 (usb)
ACTION=bind
DEVPATH=/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:07:00.3/usb3/3-3
SUBSYSTEM=usb
DEVNAME=/dev/bus/usb/003/046
DEVTYPE=usb_device
DRIVER=usb
PRODUCT=ffff/ffff/200
TYPE=2/2/0
BUSNUM=003
DEVNUM=046
SEQNUM=5890
USEC_INITIALIZED=21824040667
ID_BUS=usb
ID_MODEL=CDC_Virtual_ComPort
ID_MODEL_ENC=CDC\x20Virtual\x20ComPort
ID_MODEL_ID=ffff
ID_SERIAL=BLIOT_CDC_Virtual_ComPort_000000020000
ID_SERIAL_SHORT=000000020000
ID_VENDOR=BLIOT
ID_VENDOR_ENC=BLIOT
ID_VENDOR_ID=ffff
ID_REVISION=0200
ID_USB_MODEL=CDC_Virtual_ComPort
ID_USB_MODEL_ENC=CDC\x20Virtual\x20ComPort
ID_USB_MODEL_ID=ffff
ID_USB_SERIAL=BLIOT_CDC_Virtual_ComPort_000000020000
ID_USB_SERIAL_SHORT=000000020000
ID_USB_VENDOR=BLIOT
ID_USB_VENDOR_ENC=BLIOT
ID_USB_VENDOR_ID=ffff
ID_USB_REVISION=0200
ID_USB_INTERFACES=:020201:0a0000:
ID_PATH_WITH_USB_REVISION=pci-0000:07:00.3-usbv2-0:3
ID_PATH=pci-0000:07:00.3-usb-0:3
ID_PATH_TAG=pci-0000_07_00_3-usb-0_3
MAJOR=189
MINOR=301

Trying blisp with -p /dev/bus/usb/003/046 gives "Couldn't open device, err: -1"

dmesg log:

[22665.260045] usb 3-3: new full-speed USB device number 48 using xhci_hcd
[22665.432429] usb 3-3: New USB device found, idVendor=ffff, idProduct=ffff, bcdDevice= 2.00
[22665.432435] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[22665.432437] usb 3-3: Product: CDC Virtual ComPort
[22665.432440] usb 3-3: Manufacturer: BLIOT
[22665.432441] usb 3-3: SerialNumber: 000000020000

Pinecil version output:

v2.20.14DAF70
13-12-22
kjkent commented 7 months ago

Update: works on a different machine, same OS, same cable, etc, only this time it's an 8th gen Intel i5. Connecting the Pinecil gives additional udev logs, notably:

KERNEL[715.857599] bind     /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.1 (usb)
ACTION=bind
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.1
SUBSYSTEM=usb
DEVTYPE=usb_interface
DRIVER=cdc_acm
PRODUCT=ffff/ffff/200
TYPE=2/2/0
INTERFACE=10/0/0
MODALIAS=usb:vFFFFpFFFFd0200dc02dsc02dp00ic0Aisc00ip00in01
SEQNUM=4570

KERNEL[715.857930] add      /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/tty/ttyACM0 (tty)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/tty/ttyACM0
SUBSYSTEM=tty
DEVNAME=/dev/ttyACM0
SEQNUM=4571
MAJOR=166
MINOR=0

My problem is now solved, however, happy to leave this open if the devs want to nail the root cause.

gamelaster commented 7 months ago

Interesting! Thank you very much, this is very helpful.

genericsauce commented 4 months ago

Update: works on a different machine, same OS, same cable, etc, only this time it's an 8th gen Intel i5. Connecting the Pinecil gives additional udev logs, notably:

KERNEL[715.857599] bind     /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.1 (usb)
ACTION=bind
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.1
SUBSYSTEM=usb
DEVTYPE=usb_interface
DRIVER=cdc_acm
PRODUCT=ffff/ffff/200
TYPE=2/2/0
INTERFACE=10/0/0
MODALIAS=usb:vFFFFpFFFFd0200dc02dsc02dp00ic0Aisc00ip00in01
SEQNUM=4570

KERNEL[715.857930] add      /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/tty/ttyACM0 (tty)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/tty/ttyACM0
SUBSYSTEM=tty
DEVNAME=/dev/ttyACM0
SEQNUM=4571
MAJOR=166
MINOR=0

My problem is now solved, however, happy to leave this open if the devs want to nail the root cause.

I also have this issue with a AMD Ryzen 7040 laptop, also using arch and tested with fedora and windows in a vm both not working. Also it flashed fine using my old intel based laptop.

kjkent commented 2 months ago

It could totally be coincidence but I'm definitely curious to learn if a USB device could end up handled differently depending on whether the CPU is AMD/Intel. When I have time I'll see if I can get a trace