无法通过 SSH 获取 Qemu 输出

无法通过 SSH 获取 Qemu 输出

简洁版本

我想使用 ssh 在远程计算机上运行 Qemu。使用此命令,我可以看到一些启动消息,但无法在本地终端中获取 vm 登录提示。

qemu-system-i386 -m 128 
-kernel bzImage -drive file=rootfs.ext2,if=virtio 
-append "console=ttyS0" 
-net nic,model=virtio 
-net user 
-nographic

我也尝试过-curses但没有成功

长版

我有一个带有 TinyCore 的树莓派,我想在 qemu 上运行(使用 SSH)BuildRoot 发行版。

当我在本地运行 qemu 时(没有 SSH)

  • 使用-nographic,我可以看到一些启动消息,但什么也看不到
  • 使用-curses,我看到VGA Graphic Mode,然后是一些启动消息,然后它显示1024 x 768 Graphic Mode,我无法再与它交互

当我远程运行 qemu(使用 SSH)时,我只能看到启动消息,而看不到其他内容。

我不想使用 VNC,我该怎么做?

编辑:

在远程主机(piCore)上我有这个/etc/inittab

tty1::respawn:/sbin/getty -nl /sbin/autologin 38400 tty1

在远程访客机器上我有这个/etc/inittab

tty1::respawn:/sbin/getty -L tty1 0 vt100 

答案1

使用 时-nographicqemu不会向 VM 添加虚拟显卡,仍然添加串行控制器,但串行端口连接到 qemu 的 stdin/stdout(而不是不使用时的 SDL 窗口-nographics)。

您告诉在该虚拟机中启动的 Linux 内核将其控制台输出发送到串行端口,这很好,但如果您还想在那里有登录提示,则需要getty在那里解决问题。

inittab因此,您需要在您的(或其他相关配置文件,具体取决于虚拟机中使用的初始化系统)中添加一行:

ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100

由于该虚拟机没有显卡,因此您还可以删除tty1仅用于虚拟 VGA 终端的线路。

答案2

我认为您想将 X11 隧道与 SSH 结合使用。

尝试运行“ssh -X -Y user@remot_host”。

然后检查变量 DISPLAY 是否已定义:“echo $DISPLAY”

如果这不起作用,您应该检查服务主机上“/etc/ssh/sshd_config”中 sshd 守护进程的配置。编辑它以允许 X11 转发,然后重新启动 sshd 守护进程。

运行“xclock”检查 X 是否已建立隧道。

然后 QEMU 应在 ssh 客户端显示其窗口。

相关内容