QEMU-KVM Linux-Virtualisierung in der Befehlszeile

7

Ich habe kürzlich herausgefunden, dass dies qemu-kvmeine sehr vielversprechende -cursesOption ist, die anstelle des Startens eines X-Fensters eine nette ncurses-Ausgabe des Gasts anzeigt, die für die Verwaltung eines Linux-Gasts über die Befehlszeile (oder zufriedenstellender innerhalb einer Bildschirmsitzung oder sogar) geeignet ist über ssh).

Also habe ich das ausprobiert und festgestellt, dass mein Arch Linux-Gast in einen "Grafikmodus" wechselt, wodurch diese Funktion unbrauchbar wird. Nach dem, was ich feststellen konnte, ist das Problem, dass der Gastkern einen Framebuffer initialisiert, um eine Auflösung von mehr als 80 x 60 Zeichen (und hübsche Grafiken) zu ermöglichen. Also machte ich mich auf die Suche nach einem Weg, um zu verhindern, dass der Gastkern den Framebuffer startet. Ich habe eine Vielzahl von Kernel - Parametern versucht, nomodeset, fb=false, vga=0x0FF, vga=ask(und anschließend eine Auswahl VGAeher als ein VESA, ohne Erfolg Modus): jedesmal , wenn qemu-kvm -cursesBerichte in einem „Grafikmodus“ auf dem Gast zu sein (nach dem ersten Boot - Menü) und I Ich kann nicht über ein Befehlszeilenterminal auf dem Host mit dem Gast interagieren.

Gibt es eine einfache Möglichkeit, den Gastkern im gleichen Modus zu halten, in dem er gestartet wurde (kein Framebuffer), ohne einen Kernel-Build-Parameter zu ändern? Wenn nicht, welche Kernel-Build-Optionen sollte ich ändern, um einen Kernel ohne Framebuffer-Unterstützung zu kompilieren? Gibt es eine bessere Möglichkeit, eine VM-Anmeldung von einem Terminal auf dem Host im Reintextmodus (z. B. für die Ausführung in einer Bildschirmsitzung auf dem Host geeignet) abzurufen, ohne sshd auf dem Gast auszuführen?

malloc47
quelle

Antworten:

5

Das zugrunde liegende Modul, das deaktiviert werden muss, ist fbconjedoch, dass der Kernel von Arch es nicht als Modul kompiliert und es daher auf die schwarze Liste setzt. Es ist möglicherweise weiterhin möglich, den zu startenden Treiber zu identifizieren und zu deaktivieren, fbconaber kein solcher Treiber wird von aufgelistet lsmod, sodass qemu-kvmder Treiber in Arch kompiliert wird. Um sich fbconselbst zu deaktivieren , müssen Sie eine eigene seltsame Startoptionssyntax verwenden:

fbcon=map:99

Dabei 99handelt es sich nur um eine beliebig große Anzahl, die größer ist als die Anzahl der Framebuffer-Geräte im System (normalerweise 1-2).

Weitere Informationen finden Sie in der Datei fbcon.txt .

malloc47
quelle
1

vga16fb.modeset=0hat in der Vergangenheit für mich gearbeitet (in Ubuntu). Auch in Ubuntu funktionierte das Blacklisting aller Framebuffer-Module (einschließlich vga16fb).

sendmoreinfo
quelle
vga16fb.modeset=0schien in Arch nichts zu tun. Ich werde versuchen, Framebuffer-Module auf die schwarze Liste zu setzen, wie Sie vorschlagen. Gibt es eine gute Referenz zum Nachschlagen von Modulen (insbesondere Framebuffer-Modulen), damit ich keine verpasse?
Malloc47
Ubuntu hat /etc/modprobe.d/blacklist-framebuffer.conf
sendmoreinfo
Vielen Dank! Fand es (oder es etwas annähert) hier . Kann es zusätzlich zum Deaktivieren ausprobieren, um fbconzu sehen, wohin es mich bringt.
Malloc47
0

Versuchen Sie es so:

TERM=dumb qemu-kvm -curses ...
Teddy
quelle
1
Kein Glück. Das Problem scheint darin zu liegen, dass der Gastkern den Modus ändert und nicht das Host-Terminal.
Malloc47
@ malloc47: Ah; dann ist das Problem mit Arch Linux, mit dem ich Ihnen nicht helfen kann.
Teddy