我有一台运行 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),否则它不会在重启后继续存在。