可以用Serial Spliter 串口虚拟;
例如PLC占用物理串口com1,你可以将com1改名到com11,然后用Serial Spliter 将com11 拆成两个虚拟端口com1和com12,PLC仍用com1,你监听com12,就可以。
基本只能打开一次,参考资料:http://stackoverflow.com/questions/9358216/using-same-serial-port-data-received-event-on-two-different-forms
首先确认/dev/ttyS0(既串口com)是否被识别,如果被xen占用,需要修改启动参数,重启系统。然后配置serial port参数,设置完成后即可通过串口通信。
步骤:
第一步:确认/dev/ttyS0(既串口com)被识别:
# dmesg |grep ttyS0
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0c: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
以上输出说明串口被识别。
# dmesg|grep ttyS0
Xen virtual console successfully installed as ttyS0
以上输出则说明串口被xen服务占用,我们需要修改启动参数,指定xen服务使用别的console。
安装redhat系统时,如果安装了虚拟机(Xen-enabled host。Xen is a virtual machine monitor (VMM) for x86-compatible computers. Xen can securely execute multiple virtual machines, each running its own OS, on a single physical system with close-to-native performance. ),则xen可能会占用/dev/ttyS0,要想使用串口,我们需要修改启动设置,指定xen使用别的console(或是不使用任何console,我倾向于这种选择)。
修改启动设置,指定xen使用的console的方法如下:
a)确定系统版本,以便找到需要修改的启动项:
# uname -r
Linux gic-ftp-lin-001.genotec.ch 2.6.18-8.el5xen
从上面的输出,我们可以看出,现在系统版本是2.6.18-8。
b)找到相应的启动配置(对应版本2.6.18-8的那项配置),对呀安装了grub的redhat,在/boot/grub/menu.lst中会有如下的配置项:
title Red Hat Enterprise Linux Server (2.6.18-8.el5xen)
root (hd0,0)
kernel /boot/xen.gz-2.6.18-8.el5
module /boot/vmlinuz-2.6.18-8.el5xen ro root=LABEL=/
module /boot/initrd-2.6.18-8.el5xen.img
c)添加“xencons”参数。注意,要紧跟在“root=LABEL=/"后面,如下:
title Red Hat Enterprise Linux Server (2.6.18-8.el5xen)
root (hd0,0)
kernel /boot/xen.gz-2.6.18-8.el5
module /boot/vmlinuz-2.6.18-8.el5xen ro root=LABEL=/ xencons=off
module /boot/initrd-2.6.18-8.el5xen.img
说明:
在这里,我设置“xencons=off”,既xen不使用任何console,可选的“xencons”参数有:
xencons=off#disable console at all
xencons=ttyX #attach console to /dev/ttyX
xencons=ttySX #attach console to /dev/ttySX
xencons=xvcX#attach console to /dev/xvcX
现在,/dev/ttyS0是可用的了,我们配置minicom后即可使用串口。
第二步:配置minicom
a)进入minicom配置界面,输入:
#minicom -s
你会看到下面的画面:
┌—————[configuration]——————┐│ Filenames and paths ││ File transfer protocols ││ Serial port setup ││ Modem and dialing ││ Screen and keyboard ││ Save setup as dfl ││ Save setup as.. ││ Exit│└——————————————————┘
b)配置串口连接参数。用上下箭头移动光标,选择:
Serial port setup
你会看到下面的界面:
┌————————————————————————————————————┐│ A -Serial Device : /dev/ttyS0││ B - Lockfile Location : /var/lock ││ C - Callin Program : ││ D - Callout Program : ││ E -Bps/Par/Bits : 9600 8N1 ││ F - Hardware Flow Control : Yes ││ G - Software Flow Control : No││ ││Change which setting? │└————————————————————————————————————┘
这里配置”serial device“为/dev/ttyS0(即com口1);波特率为9600,数据位8位,奇偶校验无,停止位1(既典型的9600 8N1配置);硬件数据流控制(hardware flow control):有;软件数据流控制(software flow control):无。
按ESC返回,选择:
Save setup as dfl
保持为默认设置,然后退出。
c)使用minicom连接串口设备。输入minicom,如果配置成功,会看到消息:
Initializing modem
然后会看到下面的画面:
Welcome to minicom 2.1
OPTIONS: History Buffer, F-key Macros, Search History Buffer, I18n
Compiled on Jul 26 2006, 06:38:09.
Press CTRL-A Z for help on special keys
按回车,就会有login提示符,登录即可。
参考资料:
[1].Xen console grabbded /dev/ttyS0
[2].configure cisco switch with linux COM1 terminal
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)