如何将串行终端连接到KVM实例?


12

也许我误解了KVM的功能,但是在VM上添加/删除硬件的功能似乎意味着我可以添加一个串行端口,然后将其用作终端。

因此,我的问题是:

  1. 哪些设置最适合来宾FreeBSD发行版?(有许多!)
  2. 如何从Linux主机访问所述终端?

Answers:


5

现在,我可以根据Stefan的评论和两篇链接的文章回答我自己的问题:

解决方法如下:

  • 您无需编辑与主机配置有关的任何内容,只要主机配置中具有指向pty的默认串行设备即可。
  • 确保您的内核的引导参数附加了以下内容:serial=tty0 console=ttyS0,115200n8。通常通过编辑来实现/boot/grub/menu.lst
  • 配置/etc/inittab并附加该行T0:S12345:respawn:/sbin/getty -hL ttyS0 115200 vt100以启动getty并给您登录提示。

我可以使用fedora系统为我确认这项工作(尽管我确实必须设置enforcing=0为其他参数,因为相关系统是运行SELinux MLS的fedora rawhide)。

我认为从那里我可能可以弄清楚freebsd的操作方法。

谢谢斯蒂芬!


我认为这serial=tty0是一个错误,并且注定是错误的console=tty0。我在任何内核文档中都没有看到“串行”参数。不过,指定多个控制台(在本例中为活动的虚拟控制台加上串行控制台)对我来说很有意义。
mattdm

2

为了回答如何设置FreeBSD机器的问题,有两种主要的获取串行的情况。如果您仅使用串行安装FreeBSD,则将需要引导程序串行说明。如果您已经有一个控制台,并且只想拥有串行访问权限,那么请遵循安装后的串行说明。

引导程序序列

  • 2在FreeBSD引导选项屏幕上按,以退出到加载程序提示
  • 类型 set console=comconsole
    • 如果此时失去交互性,请检查虚拟tty波特率是否为9600
  • 类型 autoboot

这应该允许其余的安装通过串行接口完成。如果要在安装FreeBSD之后继续进行串行访问,那么在安装结束后重新引导之前,您需要进入命令提示符。

安装后序列

在控制台上:

  • 类型 echo 'console="comconsole"' >> /boot/loader.conf
  • /etc/ttys在vi中加载
  • 修改以ttyu0开头的行(在其他版本的FreeBSD上可能是ttyd0)
    • 在该行的变化dialup,以vt100offon
  • 重新启动后,串行终端应显示启动过程,并以登录提示结束
    • 注:在设置console="comconsole"/boot/loader.conf可以使引导信息只出现在串行接口上。/etc/ttys如果您不想通过串行启动日志,只需进行修改。

参考文献

http://www.freebsd.org/doc/handbook/serialconsole-setup.html

http://www.freebsd.org/doc/handbook/term.html


0

好吧,您当然必须在仿真器中仿真一个串行端口,并且可以在主机上对其进行访问。来宾操作系统应在其“硬件串行端口”上放置一些内容,例如通过getty_ps等登录提示。现在,我个人没有必要以这种方式使用它。通常,来宾OS上的仿真串行端口用于调试信息(Haiku默认仍使用该端口),然后由仿真器(如VMware)将其捕获为简单的文本文件,以提供调试信息。请尝试在这里使某些东西在qemu中的模拟串行控制台上运行。


0

OP的答案有效,但是当我尝试使用环境时(Linux主机,Linux客户端)

  1. serial=tty0 不需要
  2. 在使用xterm而不是vt100时/etc/inittab效果更好(获得颜色)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.