通过串行端口获取两个Linux(虚拟)盒
设置一个Linux机器以在其串行端口上侦听传入连接的最佳方法是什么?我已经做了大量的谷歌搜索工作,但是我找不到正确的命令组合来实际让他们交流!
我的主要目标是为运行kvm / qemu VM的实例提供一个串行接口。它们当前仅具有VNC接口(它们位于无头服务器上,没有X)。我可以通过使用-serial file:标志启动它来使VM创建串行设备,但是如何与之交谈则是另一个问题。两个盒子都运行Ubuntu 8.04.
解决方案
回答
我假设我们使用"空调制解调器"电缆连接两个串行端口。
使用minicom之类的程序与远程系统对话-我们可能需要设置通信参数并可能关闭硬件流控制(如果电缆未连接流控制线)。
回答
通常,Linux Serial HOWTO具有许多有关串行通信的详细信息。如果我们希望能够像使用控制台一样使用串行端口登录虚拟化系统,那么我们真正要寻找的是更具体的Linux Remote Serial Console HOWTO。正如Hein指出的那样,我们将需要使用调制解调器电缆,并且需要在远程终端上运行minicom。
Linux控制台有两种使用方式,必须分别配置每种方式以供串行使用。我们可以配置内核以通过串行端口复制其消息,这对于观察系统启动有时会很有趣,并且在进行内核调试时几乎是必不可少的。 (这需要内核支持并更新引导参数,以便内核知道我们要串行输出;请参阅第二篇方法手册的第5章。)我们可能对通过串行端口登录更感兴趣,这需要在串行端口上运行getty。引导后(就像系统在引导后已经在虚拟终端上运行了getty一样),在操作方法的第6章中对此进行了详细说明。
回答
假设我们正在/ dev / tty1上执行此操作。
在壳里
chown *youruser* /dev/tty1
然后在一个名为example.pl的Perl脚本中
open PORT, "</dev/tty1" || die "Can't open port: $!"; while (defined ($_ = <PORT>)) { do_something($_); } close PORT;
显然,如果我们希望自动启动并在发生错误时重生,则还有更多工作要做,依此类推。但是基本思想是像文件一样从串行端口读取。