驱动文件中如何读/sys/bus/usb/devices文件信息
时间: 2023-10-03 11:04:50 浏览: 77
在 Linux 系统中,可以通过读取/sys/bus/usb/devices目录下的文件来获取 USB 设备的相关信息,包括设备的供应商 ID、产品 ID、序列号等。
具体方法如下:
1. 打开/sys/bus/usb/devices目录。
2. 遍历该目录下的所有子目录,每个子目录代表一个 USB 设备。
3. 在每个 USB 设备的子目录中,可以读取以下文件来获取设备信息:
- idVendor:设备的供应商 ID。
- idProduct:设备的产品 ID。
- serial:设备的序列号。
- manufacturer:设备制造商。
- product:设备名称。
以 Python 代码为例,可以实现以下功能:
```python
import os
usb_dir = '/sys/bus/usb/devices'
def get_usb_devices():
devices = []
for subdir in os.listdir(usb_dir):
dev_dir = os.path.join(usb_dir, subdir)
if os.path.isdir(dev_dir):
vendor_id = read_file(os.path.join(dev_dir, 'idVendor')).strip()
product_id = read_file(os.path.join(dev_dir, 'idProduct')).strip()
serial = read_file(os.path.join(dev_dir, 'serial')).strip()
manufacturer = read_file(os.path.join(dev_dir, 'manufacturer')).strip()
product = read_file(os.path.join(dev_dir, 'product')).strip()
if vendor_id and product_id:
devices.append({
'vendor_id': vendor_id,
'product_id': product_id,
'serial': serial,
'manufacturer': manufacturer,
'product': product
})
return devices
def read_file(file_path):
with open(file_path) as f:
return f.read()
if __name__ == '__main__':
devices = get_usb_devices()
print(devices)
```
该代码会输出当前系统中所有 USB 设备的供应商 ID、产品 ID、序列号、制造商和名称。