无法使用ssh在ubuntu QEMU上运行pintos,因为它“无法初始化SDL(没有可用的视频设备)”

时间:2016-01-25 18:28:35

标签: ubuntu ssh virtualization qemu pintos

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

qemu working on ubuntu desktop

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

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

qemu not working on ssh terminal

实际上,这是在pintos脚本中运行qemu的脚本。我认为pint应该在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);
}

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我找到了解决自己问题的方法。 无论$ vga变量是什么,你只需要给出-nographic选项。 $ vga变量可以是'none','terminal','window'之一。因此,您可以将push (@cmd, '-nographic') if $vga eq 'window';添加到pintos perl脚本。

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