如何在Linux中固定ttyUSB设备 (linux 固定ttyu)
USB串口是用于连接电脑和其他设备的电缆接口,可以用于连接串口、打印机等各种外部设备。在Linux系统中,串口设备通常被挂载在“/dev/ttyUSBx”目录下,其中x代表端口号。但是,每次拔插USB设备时,该设备可能会随机分配一个ttyUSB端口,这可能会给使用该设备的程序带来困扰。因此,本文将介绍。
一、查看当前ttyUSB设备
要查看当前系统中可用的ttyUSB设备,可以在终端中运行以下命令:
“`
ls /dev/ttyUSB*
“`
该命令会列出当前系统中所有的ttyUSB设备,结果类似于“/dev/ttyUSB0 /dev/ttyUSB1”等。请记住这些设备的名称,因为我们将在后面的步骤中使用它们。
二、创建udev规则
要将ttyUSB设备与固定的名称关联起来,需要创建一个udev规则。udev是一个处理Linux内核中设备事件的系统工具,可以用于设置设备的权限、名称等信息。在这里,我们将使用udev规则来为特定的ttyUSB设备创建符号链接,以确保它们总是分配到相同的设备文件名。
1.在终端中运行以下命令创建udev规则文件:
“`
sudo nano /etc/udev/rules.d/01-u-serial.rules
“`
该命令将打开一个空的文本编辑器,并为新的udev规则文件指定了一个名称“/etc/udev/rules.d/01-u-serial.rules”。
2.在编辑器中输入以下内容:
“`
SUBSYSTEM==”tty”, ATTRS{idVendor}==””, ATTRS{idProduct}==””, SYMLINK+=”ttyUSB_”
“`
请注意,上述命令中的“”和“”应分别替换为您的USB设备的供应商ID和产品ID。这些值可以使用以下命令在终端中获取:
“`
udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)
“`
该命令将返回一个包含供应商ID和产品ID的长列表。您需要仔细查找列表,以找到与您的设备匹配的ID值,并将其替换为上面的命令中的占位符。
此外,您还需要将“”替换为您要为设备创建的符号链接的名称。例如,如果您希望将设备命名为“modem”,则应将命令中的“”替换为“modem”。
3.保存文件并退出编辑器。
4.在终端中运行以下命令,以重新加载udev规则文件:
“`
sudo udevadm control –reload-rules
“`
现在,每次插入您的USB设备时,udev都会为它创建一个符号链接“/dev/ttyUSB_”,而不是随机地址。
三、测试符号链接
1.插入您的USB设备,并运行以下命令以查看新符号链接是否已创建:
“`
ls -l /dev/ttyUSB*
“`
您应该会看到一个带有您为设备指定的名称的符号链接文件(例如“/dev/ttyUSB_modem”)。
2.将USB设备从计算机上拔出,并重新插入它。再次运行相同的命令,以确保相应的符号链接(例如“/dev/ttyUSB_modem”)已恢复。