如工控机为4个以上串口,而Linux系统安装后最多默认只识别出com1~4这4个串口,com5后面的几个则没有识别出来,此时无法做相应的串口测试、应用,操作步骤如下:
1、 在BIOS下查看串口的地址和中断(IRQ)信息
工控机启动后按住键盘上的DEL键,进入BIOS,使用à方向键选择Advanced-->Super IO Configuration,在出现的串口信息里面记录各串口的信息,如下图:
此图仅为示意,以实际显示的值为准
2、 需使用root用户权限,具体修改方法如下:
2.1 修改 /etc/grub.conf 文件
在此行: kernel /boot/vminuz-2.6.23.1-42.fc8 ro root=LABEL=/ 后面增加 8250.nr_uarts=14,14是串口数量,依工控机情况来进行设置
修改后此行显示如下:
Kernel /boot/vminuz-2.6.23.1-42.fc8 ro root=LABEL=/ 8250.nr_uarts=14 selinux=0 acpi=force apm=off pnpacpi=off
2.2 修改 /etc/rc.local 文件
在文件最后增加下面语句:
setserial /dev/ttyS0 port 0x200 irq 10 uart 16550a baud_base 115200
setserial /dev/ttyS1 port 0x208 irq 10 uart 16550a baud_base 115200
setserial /dev/ttyS2 port 0x210 irq 10 uart 16550a baud_base 115200
setserial /dev/ttyS3 port 0x218 irq 10 uart 16550a baud_base 115200
setserial /dev/ttyS4 port 0x220 irq 11 uart 16550a baud_base 115200
setserial /dev/ttyS5 port 0x228 irq 11 uart 16550a baud_base 115200
setserial /dev/ttyS6 port 0x230 irq 11 uart 16550a baud_base 115200
setserial /dev/ttyS7 port 0x238 irq 11 uart 16550a baud_base 115200
Linux系统下串口的排序是从ttyS0开始,即ttyS0=com1、ttyS1=com2、ttyS2=com3,com1、2、3是物理串口排序,以此类推。