Linux下USB固定端口设置实现简介 (linux u 固定端口)
USB(Universal Serial Bus)是一种广泛应用于计算机及其他电子设备中的串口总线。USB的出现推动了PC周边设备市场的快速发展,同时也让人们的生活更加便捷。然而,随着USB设备的不断增多,设备之间的端口映射会发生变化,使得设备无法正确识别,从而影响其正常使用。为了解决这一问题,Linux下提供了USB固定端口设置,本文将对其实现方法进行简单介绍。
一、USB端口编号
在Linux系统下,USB总线上的每个设备都会被分配一个唯一的端口号。USB总线上的端口通常被命名为“/dev/u/X”,其中X表示端口号。例如,之一个插入的USB设备通常被分配为“/dev/u/1”,第二个则为“/dev/u/2”,以此类推。
二、USB固定端口设置
USB固定端口设置是指将USB设备与特定的USB端口相对应,从而在设备断开重连或系统重启后,可以保持相同的端口分配。这可以避免因为端口映射变化而造成的设备无法识别问题,从而提高设备的可靠性。
在Linux下,可以通过udev规则进行USB固定端口设置。udev是Linux系统中处理硬件设备的管理程序,它与kernel紧密结合,可以动态地对设备进行管理。在udev中,可以针对特定的USB设备,设置对应的USB端口号。
三、USB固定端口设置实现步骤
1. 查看USB设备信息
在终端中输入命令“lsu -t”,可以查看系统中所有USB设备的信息及其连接关系。
$ lsu -t
/: Bus 02.Port 1: Dev 1, Class=root\_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 1: Dev 2, If 1, Class=Video, Driver=uvcvideo, 480M
/: Bus 01.Port 1: Dev 1, Class=root\_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 2: Dev 9, If 1, Class=Wireless, Driver=uhid, 12M
|__ Port 2: Dev 9, If 0, Class=Wireless, Driver=uhid, 12M
|__ Port 3: Dev 10, If 0, Class=Storage, Driver=u-storage, 480M
|__ Port 4: Dev 11, If 0, Class=Human Interface Device, Driver=uhid, 1.5M
可以看到,在当前的系统中有两个USB总线(Bus 01和Bus 02),在各自的总线上都有不同的端口,每个端口下可能有一个或多个设备。根据这个信息,可以确定要设置固定端口的USB设备所处的总线及端口号。
2. 编写udev规则
在终端中输入命令“sudo nano /etc/udev/rules.d/99-u.rules”,创建udev规则文件。
$ sudo nano /etc/udev/rules.d/99-u.rules
按照以下格式编写规则,其中,之一行为规则说明,第二行为匹配USB设备的属性,第三行为对应的USB端口号。
# USB Device rules
SUBSYSTEMS==”u”, ATTRS{idVendor}==”0403″, ATTRS{idProduct}==”6015″, SYMLINK+=”ttyu0″, MODE=”0666″, GROUP=”dialout”, ENV{ID_SERIAL_SHORT}=”0602″
KERNEL==”1-1.1.1″, SYSFS{idVendor}==”0403″, SYSFS{idProduct}==”6015″, NAME=”ttyUSB0″, MODE=”0666″, GROUP=”dialout”
其中,之一行可省略,只是为了方便管理。
ATTRS{idVendor}和ATTRS{idProduct}是USB设备的厂商ID和产品ID。可以使用命令“lsu -v”查看USB设备的详细信息,从中获取相关的信息。
第二种方式的规则匹配的是USB端口的属性。在例子中,1-1.1.1表示USB总线1上的之一个端口下的之一个设备(在“lsu -t”命令中可以看到),匹配到后,会将其命名为ttyUSB0端口,并设置相应的权限和分组。
3. 重启udev服务
在终端中输入命令“sudo service udev restart”,重启udev服务,让新的udev规则生效。
$ sudo service udev restart
至此,USB固定端口设置已经完成。
四、
USB固定端口设置可以避免USB设备由于端口映射变化而产生的不可预测性,提高设备的可靠性。在Linux系统下,可以通过udev规则进行USB固定端口设置,具体实现步骤包括查看USB设备信息、编写udev规则以及重启udev服务。通过这些简单的步骤,可以方便地对USB设备进行端口固定设置,提高设备的可靠性和稳定性。