I can get a list of all my USB devices with lsusb
. It produces a list in two formats:
lsusb
Bus 001 Device 001: ID 05ac:0265 Apple Inc. Magic Trackpad Serial: CC2910208JLJ2XQA9
Bus 002 Device 002: ID 045b:0209 Renesas Electronics Corp. Hub
Bus 002 Device 008: ID 05e3:0610 Genesys Logic, Inc. USB2.1 Hub
Bus 002 Device 006: ID 054c:01bd Sony Corporation Silicon Media R/W Serial: 00000011B50A
Bus 002 Device 007: ID 045b:0209 Renesas Electronics Corp. Hub
Bus 002 Device 014: ID 10c4:ea60 Silicon Laboratories, Inc. CP2102 USB to UART Bridge Controller Serial: 0001
Bus 002 Device 010: ID 1d6c:0103 1d6c NexiGo N60 FHD Webcam Serial: 2021030103
Bus 002 Device 005: ID 174c:55aa ASMedia Technology Inc. ASMT105x Serial: 234567890126
Bus 002 Device 001: ID 045b:0210 Renesas Electronics Corp. Hub
Bus 002 Device 004: ID 05e3:0626 Genesys Logic, Inc. USB3.1 Hub
Bus 002 Device 003: ID 045b:0210 Renesas Electronics Corp. Hub
Bus 002 Device 011: ID 174c:55aa ASMedia Technology Inc. External Drive Serial: 123456789012
Bus 000 Device 000: ID 05ac:0265 Apple Inc. USB 3.1 Bus
Bus 000 Device 001: ID 1d6b:3142 Linux Foundation USB 3.1 Bus```
And it can also do a hierarchical list:
lsusb -t
0.Dev 000: USB 3.1 Bus,
Bus 000.Dev 001: USB 3.1 Bus,
|__ Bus 001.Dev 001: Magic Trackpad, 12Mb/s
|__ Bus 002.Dev 001: Hub, 5Gb/s
|__ Bus 002.Dev 003: Hub, 5Gb/s
|__ Bus 002.Dev 011: External Drive, 5Gb/s
|__ Bus 002.Dev 004: USB3.1 Hub, 5Gb/s
|__ Bus 002.Dev 005: ASMT105x, 5Gb/s
|__ Bus 002.Dev 002: Hub, 480Mb/s
|__ Bus 002.Dev 007: Hub, 480Mb/s
|__ Bus 002.Dev 010: NexiGo N60 FHD Webcam, 480Mb/s
|__ Bus 002.Dev 014: CP2102 USB to UART Bridge Controller, 12Mb/s
|__ Bus 002.Dev 006: Silicon Media R/W, 480Mb/s
|__ Bus 002.Dev 008: USB2.1 Hub, 480Mb/s
I can’t find a way, though, to take this information and turn it into a device node. For instance, I need the path to connect to the device named “Silicon Laboratories, Inc.” I can see it’s on bus 002 and is device 014. On Linux, I could get to create a path in /dev/bus
to get to the device. But I can’t on macOS because there is no /dev/bus
directory.
In this case, the device node is /dev/cu.usbserial-0001
.
How can I go from what I see from lsusb
to the actual node path (so I can use it with a program like screen
in the terminal)? Is there another way to list USB devices, or a way to get device nodes included in a listing? Or another command so I can pass on the USB device of interest and get the node path?