获取两个Linux(虚拟)机箱,它们通过串行端口进行通信
设置一个Linux设备在其串行端口上侦听传入连接的最佳方法是什么?我在谷歌上搜索了很多次,但是我找不到正确的命令组合来让他们说话获取两个Linux(虚拟)机箱,它们通过串行端口进行通信,linux,serial-port,virtualization,kvm,qemu,Linux,Serial Port,Virtualization,Kvm,Qemu,设置一个Linux设备在其串行端口上侦听传入连接的最佳方法是什么?我在谷歌上搜索了很多次,但是我找不到正确的命令组合来让他们说话 我的主要目标是为kvm/qemu虚拟机的运行实例提供一个串行接口。它们目前只有一个VNC接口(它们位于无头服务器上,没有X)。我可以通过使用-serial file:flag启动虚拟机来创建一个串行设备,但是如何与它通信是另一个问题。两个盒子都运行Ubuntu 8.04。我假设您使用“空调制解调器”电缆连接两个串行端口 使用像minicom这样的程序与远程系统通信——
我的主要目标是为kvm/qemu虚拟机的运行实例提供一个串行接口。它们目前只有一个VNC接口(它们位于无头服务器上,没有X)。我可以通过使用-serial file:flag启动虚拟机来创建一个串行设备,但是如何与它通信是另一个问题。两个盒子都运行Ubuntu 8.04。我假设您使用“空调制解调器”电缆连接两个串行端口 使用像minicom这样的程序与远程系统通信——您可能需要设置通信参数,并可能关闭硬件流量控制(如果您的电缆没有连接流量控制线路)。通常有很多关于串行通信的详细信息。更具体的是,如果您希望能够像在控制台一样使用串行端口登录到虚拟化系统,您真正需要的是什么。正如Hein所指出的,您需要一根零调制解调器电缆,并且需要在远程终端上运行minicom
Linux控制台有两种使用方式,每种方式都必须单独配置以供串行使用。您可以将内核配置为通过串行端口复制其消息,这对于观看系统引导来说偶尔是有趣的,如果您正在进行内核调试,这几乎是必不可少的。(这需要内核支持和更新引导参数,以便内核知道您需要串行输出;请参阅第二部分的内容。)您可能更感兴趣的是通过串行端口登录,这需要在引导后在串行端口上运行getty(就像引导后系统已经在虚拟终端上运行getty一样),在howto中详细描述了这一点。假设您正在/dev/tty1上执行此操作 在外壳中
chown *youruser* /dev/tty1
open PORT, "</dev/tty1" || die "Can't open port: $!";
while (defined ($_ = <PORT>))
{
do_something($_);
}
close PORT;
然后在名为example.pl的Perl脚本中
chown *youruser* /dev/tty1
open PORT, "</dev/tty1" || die "Can't open port: $!";
while (defined ($_ = <PORT>))
{
do_something($_);
}
close PORT;
open-PORT,“Hein,谢谢你的回答,但是你的意思有点不明确?minicom要连接到哪个特定的守护进程?还是两端都是minicom?