我有一台带有四个 USB 端口的设备(NVIDIA Jetson Nano)。如何知道/dev/tty*
每个端口对应的位置?
我在这里和 askUbuntu 上遇到过许多类似的问题。我一直在尝试lsusb
,,,但坦率地dmesg | grep tty
说usb-devices
,我不知道该如何处理这些信息。
lsusb
是我唯一能模糊理解的命令。通过将 USB 加密狗从一个端口移动到另一个端口,我以为我可以确定总线和设备号。直到我到达最后一个端口,我将我知道其 ID 的加密狗与前三次测试中在该端口的键盘交换,然后意识到设备号甚至不是静态的。前三次测试中键盘一直是总线 001 设备 005,但现在有了加密狗,同一个端口就是总线 001 设备 010(而放置加密狗的端口一直是 009,现在有了键盘,端口号是 011,所以它似乎只是在递增)。所以我看不出这些信息有什么用。另外,即使我信任这些数字,我也不知道如何从设备号中获取设备路径。
dmesg | grep tty
仅列出了一些可用的串行端口,当我更改设备插入的端口时不会更改,因此我看不出如何使用它来学习任何东西。我尝试在玩了一会儿后重复此命令lsusb
,使用相同的方法将加密狗移动到不同的端口,现在它什么也没有输出,即使以 root 身份运行也是如此。
usb-devices
列出了大量的设备,远远超出了物理空间,并且当物理端口的状态改变时,其输出也不会改变。
总的来说,我真的不知道自己在做什么,所以如果我在这里误用了任何技术术语,我深表歉意,希望我所说的内容在上下文中是清楚的。设备/端口/适配器/总线的区别让我难以理解,所以这可能是我在谷歌上搜索时遇到困难的部分原因。感谢您的帮助!
答案1
首先,确认您的电缆功能正常。USB 电缆在数据传输时出现故障的情况非常常见,除非您进行测试,否则您无法发现,因此不要妄下结论。我试过了 4 条我认为没问题的电缆,最后才找到一条除了电源之外还能传输数据的电缆。
其次,我不知道这是否是最优雅的解决方案,但我最终得到的工作基本上是ls
和的组合,diff
以确定新文件何时出现在/dev
。
首先拔下设备,使用ls /dev > device_names.txt
(或您选择的任何文件路径,而不是 device_names.txt)将所有当前可用的设备名称写入文件。接下来,将您的设备插入您关心的端口,并使用它ls /dev | diff - device_names.txt
来获取当前设备名称列表与插入设备之前的列表之间的差异。
就我的情况而言,这显示我的设备占用了ttyACM0
该端口。我仍然不知道这是否完全由设备决定,与物理端口无关……如果是这样,那么原来的问题就没有意义了,但没关系。