0

我已设置在我自己的 ubuntu 桌面 14.04 上运行 pintos。现在它可以在桌面上完美运行,如下图所示。

qemu 在 ubuntu 桌面上工作

也使用这个 ubuntu 作为服务器,我希望我也可以通过 ssh 运行 QEMU。我知道可以通过 ssh 运行 bochs,但是 QEMU 也可以这样做吗?

我认为必须有一种方法可以将 qemu 作为命令行界面(如 bochs)运行。

qemu 不能在 ssh 终端上工作

其实这里就是pintos脚本中运行qemu的脚本。我认为 pintos 应该在 ssh 上使用 $vga eq 'none' 运行,但似乎不是。

# Runs QEMU.
sub run_qemu {
    print "warning: qemu doesn't support --terminal\n"
      if $vga eq 'terminal';
    print "warning: qemu doesn't support jitter\n"
      if defined $jitter;
    my (@cmd) = ('qemu');
    for my $iface (0...3) {
    my ($option) = ('-hda', '-hdb', '-hdc', '-hdd')[$iface];
    push (@cmd, $option, $disks_by_iface[$iface]{FILE_NAME})
      if defined $disks_by_iface[$iface]{FILE_NAME};
    }
    push (@cmd, '-m', $mem);
    push (@cmd, '-net', 'none');
    push (@cmd, '-nographic') if $vga eq 'none';
    push (@cmd, '-serial', 'stdio') if $serial && $vga ne 'none';
    push (@cmd, '-S') if $debug eq 'monitor';
    push (@cmd, '-s', '-S') if $debug eq 'gdb';
    push (@cmd, '-monitor', 'null') if $vga eq 'none' && $debug eq 'none';
    run_command (@cmd);
}

任何帮助将不胜感激。

4

1 回答 1

0

我找到了解决我自己问题的方法。无论 $vga 变量是什么,您只需要提供 -nographic 选项。$vga 变量可以是“无”、“终端”、“窗口”之一。所以你可以添加push (@cmd, '-nographic') if $vga eq 'window';到 pintos perl 脚本。

我仍然想知道他们如何确定我是否在终端上运行,以及他们为什么会出错。如果您有任何想法,请告诉我。

于 2016-01-25T18:58:45.630 回答