SuSE 8中如何找到我的设备对应的设备节点?

SuSE 8中如何找到我的设备对应的设备节点?

我被迫使用一堆运行 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')

所以我得到,例如

> echo $DeviceNode
ttyUSB1
>

当然,问题之一是设备可能已经被拔掉,我无法用这种简单的方法来判断。

还有更好的办法吗?

编辑:所以我发现本文今天早上。我是否可以假设,在 /proc/tty/driver/usbserial 中,从第二行开始,每行的第一个数字是其中一个 ttyUSBx 的次要编号?

编辑2:替代(也许更好)的解决方案是获取持久节点关联(例如,始终获取具有已知供应商ID 和已知产品ID 的设备与ttyUSB1 关联)。这在devfs中可以实现吗?

相关内容