Just as general information, the naming depends on the driver, plus possibly udev
. Typically a USB based serial UART from FTDI (the most “out in the wild” UART) has a name like “/dev/ttyUSB#
”. Jetsons usually have two drivers to pick from for their serial UARTs which are integrated: The one with a naming convention of “/dev/ttyS#
” is the traditional Linux driver, whereas the naming convention with “/dev/ttyTHS#
” uses NVIDIA’s driver…on the same UART.
So ttyS0
and ttyTHS0
are typically the same UART, but accessed by different drivers for the same hardware. Don’t use both at once.
UARTs from third parties will have their own naming convention based on chipset, e.g., like what I mentioned for the ttyUSB#
names. The driver does this since device special files are not actually files…they are an interface to a driver pretending to be a file.
Hot plug devices tend to also sometimes be renamed by “udev
”. udev
can read rules as hot plug devices connect, and rename them or set up preferences. Just as a contrived example, look at device special files on your desktop PC at “/dev/input
”. This would be for human interface devices (HID class in USB), e.g., keyboards, mice. Notice there are subdirectories “/dev/by-id
” and “/dev/by-path
”. Within those subdirectories the same device gets symbolic links pointing to the original device name. This is udev
triggering rules to add multiple names using alternate naming conventions. Sometimes udev
will actually rename a device completely, but adding alternate names is a good example of what udev
rules can do.