Linux 如何确定设备 class?
How does Linux determine a device class?
Linux新手问题。
只是想知道 Linux 如何确定 class 设备是哪个设备?具体来说,当我插入条形码扫描器时,它如何知道它是一个 ttyACM 设备?我有一个与我的 Linux OS 配合使用的扫描仪,但无法识别新型号,所以我想知道我是否可以更改系统中某处的文件,告诉它将该扫描仪识别为 ttyACM0并使用现有的驱动程序。
USB 设备(我假设你的扫描仪是 USB)由 vendorId 和 productId(两个 16 位整数)标识,每个驱动程序填写一个包含支持的 vendor/prods id 列表的数组(创建关系 vendor:prod->driver),我想在编译时数组中的所有 id 都合并在一个列表中,然后用于插入设备时查找搜索。
通常您可以在插入设备后立即使用 dmesg
命令(或使用 lsusb
)查看连接设备的供应商和产品 ID。
对于 ttyACM
,请参见 drivers/usb/class/cdc-acm.c
中的 acm_ids[]
小心 摆弄设备驱动程序,即使是 ttyACM
终端接口,仅当接口 tty-> 硬件实现不佳时,某些命令可能会破坏硬件。
也许这个问题应该在Unix & Linux stackexchange
Linux新手问题。
只是想知道 Linux 如何确定 class 设备是哪个设备?具体来说,当我插入条形码扫描器时,它如何知道它是一个 ttyACM 设备?我有一个与我的 Linux OS 配合使用的扫描仪,但无法识别新型号,所以我想知道我是否可以更改系统中某处的文件,告诉它将该扫描仪识别为 ttyACM0并使用现有的驱动程序。
USB 设备(我假设你的扫描仪是 USB)由 vendorId 和 productId(两个 16 位整数)标识,每个驱动程序填写一个包含支持的 vendor/prods id 列表的数组(创建关系 vendor:prod->driver),我想在编译时数组中的所有 id 都合并在一个列表中,然后用于插入设备时查找搜索。
通常您可以在插入设备后立即使用 dmesg
命令(或使用 lsusb
)查看连接设备的供应商和产品 ID。
对于 ttyACM
,请参见 drivers/usb/class/cdc-acm.c
acm_ids[]
小心 摆弄设备驱动程序,即使是 ttyACM
终端接口,仅当接口 tty-> 硬件实现不佳时,某些命令可能会破坏硬件。
也许这个问题应该在Unix & Linux stackexchange