简洁版本
我想使用 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
使用 时-nographic
,qemu
不会向 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 客户端显示其窗口。