
Vielleicht verstehe ich die Fähigkeiten von KVM falsch, aber die Möglichkeit, Hardware auf der VM hinzuzufügen/zu entfernen, scheint zu bedeuten, dass ich einen seriellen Port hinzufügen kann, der dann als Terminal fungiert.
Meine Fragen sind also:
- Welche Einstellungen sind für die FreeBSD-Gastdistribution am besten? (Es gibt viele!)
- Wie greife ich von meinem Linux-Host aus auf das besagte Terminal zu?
Antwort1
Ich kann mir jetzt meine Frage selbst beantworten, basierend aufStefan's Kommentar und die beiden verlinkten Artikel:
- https://askubuntu.com/questions/1733/what-reason-could-prevent-console-output-from-virsh-c-qemu-system-console-gu
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507650#29
Hier ist die Lösung:
- Sie müssen an der Hostkonfiguration nichts ändern, vorausgesetzt, dass dort das standardmäßige serielle Gerät vorhanden ist, das auf pty verweist.
- Stellen Sie sicher, dass der Boot-Parameter für Ihren Kernel Folgendes enthält:
serial=tty0 console=ttyS0,115200n8
. Normalerweise wird dies durch Bearbeiten erreicht/boot/grub/menu.lst
- Konfigurieren
/etc/inittab
und hängen Sie die Zeile an,T0:S12345:respawn:/sbin/getty -hL ttyS0 115200 vt100
um ein Getty zu starten und Ihnen die Anmeldeaufforderung anzuzeigen.
Ich kann bestätigen, dass dies bei mir mit einem Fedora-System funktioniert (obwohl ich es als zusätzlichen Parameter festlegen musste, enforcing=0
da es sich bei dem betreffenden System um Fedora Rawhide mit SELinux MLS handelt).
Ich denke, von dort aus kann ich wahrscheinlich herausfinden, wie ich dasselbe für FreeBSD machen kann.
Danke Stefan!
Antwort2
Zur Einrichtung Ihres FreeBSD-Rechners gibt es zwei Hauptfälle, in denen Sie eine serielle Verbindung erhalten. Wenn Sie FreeBSD nur mit einer seriellen Verbindung installieren, benötigen Sie die Anweisungen für die serielle Verbindung des Bootloaders. Wenn Sie bereits eine Konsole haben und nur seriellen Zugriff wünschen, befolgen Sie die Anweisungen für die serielle Verbindung nach der Installation.
Bootloader-Seriell
- Drücken Sie
2
im FreeBSD-Startoptionsbildschirm, um zur Ladeeingabeaufforderung zu gelangen - Typ
set console=comconsole
- Wenn Sie an diesem Punkt die Interaktivität verlieren, überprüfen Sie, ob die virtuelle TTY-Baudrate 9600 beträgt
- Typ
autoboot
Damit sollte der Rest der Installation über die serielle Schnittstelle erfolgen können. Wenn Sie nach der Installation von FreeBSD weiterhin seriellen Zugriff haben möchten, wechseln Sie vor dem Neustart am Ende der Installation zur Eingabeaufforderung.
Nach der Installation der Seriennummer
An der Konsole:
- Typ
echo 'console="comconsole"' >> /boot/loader.conf
/etc/ttys
in vi laden- Ändern Sie die Zeile, die mit ttyu0 beginnt (könnte bei anderen Versionen von FreeBSD ttyd0 sein).
- Wechseln Sie in dieser Zeile
dialup
zuvt100
undoff
zuon
- Wechseln Sie in dieser Zeile
- Nach dem Neustart sollte das serielle Terminal den Startvorgang anzeigen und mit einer Anmeldeaufforderung enden
- Hinweis: Durch die Einstellung
console="comconsole"
können/boot/loader.conf
die Startmeldungen nur auf der seriellen Schnittstelle angezeigt werden. Ändern Sie diese Einstellung einfach,/etc/ttys
wenn Sie das Startprotokoll nicht über die serielle Schnittstelle erhalten möchten.
- Hinweis: Durch die Einstellung
Verweise
http://www.freebsd.org/doc/handbook/serialconsole-setup.html
Antwort3
Nun, Sie müssen natürlich einen seriellen Port im Emulator emulieren und dafür sorgen, dass dieser auf dem Host zugänglich ist. Das Gastbetriebssystem sollte etwas auf seinen „Hardware-Seriellen Port“ setzen, wie z. B. eine Anmeldeaufforderung über getty_ps. Ich persönlich musste es noch nicht auf diese Weise verwenden. Meistens wird der emulierte serielle Port auf dem Gastbetriebssystem für Debuginformationen verwendet (Haiku verwendet diesen immer noch standardmäßig) und dann wird er vom Emulator (wie VMware) als einfache Textdatei erfasst, um die Debuginformationen verfügbar zu haben. Ich werde hier versuchen, etwas auf der emulierten seriellen Konsole innerhalb von qemu zum Laufen zu bringen.
Antwort4
Die Antwort des OP funktioniert, aber als ich es mit meiner Umgebung (Linux-Host, Linux-Client) versuchte
serial=tty0
war nicht nötig- die Verwendung von xterm statt vt100
/etc/inittab
funktioniert besser (Sie erhalten Farbe)