Kal*_*Kal 5 linux suse usb devices
我不得不使用一堆运行 SuSE 8 的销售点系统。它们是我客户的计算机。我们一直在处理这些旧系统,直到他们将整个车队升级到 SLE 11。
问题:系统现在有两个设备竞争 ttyUSB* 字符设备节点。它们具有不同的供应商 ID 和产品 ID。SuSE 8 没有 udev,而是有 devfs。
知道设备的供应商 ID 和产品 ID,以及负责设备的内核模块(它是 ipaq 内核模块),我如何找出它已分配给哪个字符设备节点,以一种可以将其存储在POSIX shell 脚本中的字符串(例如 $DeviceNode)?
现在,我在我的 shell 脚本中以一种非常愚蠢的方式来做:
DeviceNode=$(dmesg | tac | grep "PocketPC PDA converter now attached to" | set -n 's/.*now attached to \([[:alnum:]]\{1,\}\).*/\1/p')
Run Code Online (Sandbox Code Playgroud)
所以我得到,例如
> echo $DeviceNode
ttyUSB1
>
Run Code Online (Sandbox Code Playgroud)
当然,问题之一是设备可能已经被拔掉了,我无法用这种幼稚的方法来判断。
有没有更好的办法?
编辑:所以我今天早上发现了这篇文章。我可以假设,在 /proc/tty/driver/usbserial 中,从第 2 行开始,每行的第一个数字是 ttyUSBx 之一的次要编号吗?
编辑 2:另一种(也许更好)的解决方案是获得持久的节点关联(例如,始终将具有已知供应商 ID 和已知产品 ID 的设备与 ttyUSB1 关联)。这可以在 devfs 中实现吗?