无法将额外的串行端口连接到具有 8 个串行端口的 RHEL6 服务器

无法将额外的串行端口连接到具有 8 个串行端口的 RHEL6 服务器

我有一台连接了 8 个串行端口的 RHEL6.9 服务器。RHEL 已将其中 4 个配置为 /dev/ttyS0-3,它们具有地址和 IRQ。

我一直在使用 mknod 命令创建设备 /dev/ttyS[0-3]。我知道 IRQ 5 和 7 是空闲的(我没有使用任何并行端口)

我一直在使用类似

mknod -m 666 /dev/ttyS4 c 4 64

但是,它似乎只是用相同的地址和 IRQ 复制了 /dev/ttyS0,但是,当我将其更改为 2 5 时,我只收到“没有这样的设备或地址”

 setserial -g /dev/ttyS[0-9] 

手册页显示最后 2 个参数 (4 64) 是版本。我天真地以为 4 映射到 IRQ。

我是否以正确的方式处理这个问题,假设我可以创建新的串行设备并分配地址和 IRQ?

如果是这样(警告后续问题),我可以从正在运行的 Linux 系统的某个地方获取地址吗?

提前谢谢了

答案1

您需要增加mknod命令中的第二个数字,但保留第一个数字不变。例如...

mknod -m 666 /dev/ttyS4 c 4 68
mknod -m 666 /dev/ttyS5 c 4 69
mknod -m 666 /dev/ttyS6 c 4 70
mknod -m 666 /dev/ttyS7 c 4 71

这两个数字分别是主设备号和次设备号。对于同一类型的设备,主设备号将保持不变。对于每个实例,次设备号将发生变化。

由于您使用的是 RHEL 6.x,因此您可以等效地使用MAKEDEV为您计算数字的命令...

$ cd /dev
$ sudo MAKEDEV -vx ttyS4
create ttyS4                          c   4  68 root:uucp 660 system_u:object_r:tty_device_t:s0
$ ls -l ttyS4
crw-rw----. 1 root uucp 4, 68 Apr 26 12:02 ttyS4

注意:你不需要这个-v标志,这只会让事情变得冗长,但你想要-x标志(精确),否则MAKEDEV将创建任何与给定字符串匹配的设备(所以 ttyS40、ttyS41 等)

相关内容