重新映射 Linux 串行端口设备名称

重新映射 Linux 串行端口设备名称

我有一台运行 Debian Linux 的服务器,它有一个内置串行端口,该端口作为 ttyS0 出现。我有一块插入式 PCI 卡,上面有两个串行端口,它们在 Linux 中注册为 ttyS2 和 ttyS3。

不幸的是,我正在尝试运行一些假定 ttyS0 和 ttyS1 可用的软件。是否可以重新映射串行端口设备名称(使用 udev 规则?),以使 ttyS0 保持原样,而 ttyS2 变为 ttyS1?

答案1

你可以使用 udev 来实现这一点。创建一个文件/etc/udev/rules.d/90-rename-serial-ports.rule包含

ACTION=="add" KERNEL=="ttyS2" NAME="ttyS1"

应该可以(未经测试)。请注意“==”和“=”之间的区别。

答案2

那普通的呢mv /dev/ttyS2 /dev/ttyS1?毕竟大多数设备只是位于 下的一个文件/dev

LE:每次启动时您都需要进行重命名。

答案3

你不应该像这样摆弄这些名字。使用setserial取消映射 ttyS2 并将 ttyS1 映射到其资源。然后你应该找到编写该代码的人并向他们介绍你的手背。他们现在真的应该更了解了。

答案4

尝试这个:

sudo ln -s /dev/ttys2 /dev/ttys1

它将 ttys1 链接到真实的 ttys2。

经过测试,可以在 Ubuntu Lucid 上带有 USB 转串行适配器 (/dev/ttyUSB0) 的 minicom 等应用程序上运行。

除非你将其添加到脚本中(例如:大多数 Linux 发行版中的 /etc/rc.local),否则它不会在重启后继续存在。

相关内容