Saturday, August 9, 2025

terminal – Get device node path for serial device from lsusb information

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?

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles