Невозможно запустить pintos в Ubuntu QEMU с помощью ssh, поскольку он "не может инициализировать SDL (нет доступных видеоустройств)"
Я настроил запуск пинто на своем рабочем столе Ubuntu 14.04. На данный момент он отлично работает на рабочем столе, как показано на рисунке ниже.
Используя эту Ubuntu в качестве сервера, я хотел бы также запустить QEMU через ssh. Я знаю, что можно запускать bochs через ssh, но возможно ли это сделать и с QEMU?
Я предполагаю, что должен быть способ запустить qemu в качестве интерфейса командной строки (например, bochs).
Фактически, вот скрипт для запуска qemu в сценарии pintos. Я предполагаю, что pintos должен работать с $vga eq 'none' в ssh, но, похоже, нет.
# 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 ответ
Я нашел решение своей проблемы. Вам просто нужно указать опцию -nographic независимо от того, какая переменная $ vga. Переменная $ vga может принимать одно из следующих значений: "нет", "терминал", "окно". Чтобы вы могли добавить push (@cmd, '-nographic') if $vga eq 'window';
Пинтош Perl скрипт.
Мне все еще интересно, как они определяют, работаю ли я на терминале, и почему они ошибаются. Пожалуйста, дайте мне знать, если у вас есть идеи.