Wie verbinde ich ein serielles Terminal mit einer KVM-Instanz?

Wie verbinde ich ein serielles Terminal mit einer KVM-Instanz?

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:

  1. Welche Einstellungen sind für die FreeBSD-Gastdistribution am besten? (Es gibt viele!)
  2. 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:

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/inittabund hängen Sie die Zeile an, T0:S12345:respawn:/sbin/getty -hL ttyS0 115200 vt100um 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=0da 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 2im FreeBSD-Startoptionsbildschirm, um zur Ladeeingabeaufforderung zu gelangen
  • Typset console=comconsole
    • Wenn Sie an diesem Punkt die Interaktivität verlieren, überprüfen Sie, ob die virtuelle TTY-Baudrate 9600 beträgt
  • Typautoboot

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:

  • Typecho 'console="comconsole"' >> /boot/loader.conf
  • /etc/ttysin vi laden
  • Ändern Sie die Zeile, die mit ttyu0 beginnt (könnte bei anderen Versionen von FreeBSD ttyd0 sein).
    • Wechseln Sie in dieser Zeile dialupzu vt100und offzuon
  • 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.confdie Startmeldungen nur auf der seriellen Schnittstelle angezeigt werden. Ändern Sie diese Einstellung einfach, /etc/ttyswenn Sie das Startprotokoll nicht über die serielle Schnittstelle erhalten möchten.

Verweise

http://www.freebsd.org/doc/handbook/serialconsole-setup.html

http://www.freebsd.org/doc/handbook/term.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

  1. serial=tty0war nicht nötig
  2. die Verwendung von xterm statt vt100 /etc/inittabfunktioniert besser (Sie erhalten Farbe)

verwandte Informationen