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

12

Vielleicht verstehe ich falsch, wozu KVM in der Lage ist, aber die Fähigkeit, Hardware auf der VM hinzuzufügen / zu entfernen, scheint zu implizieren, dass ich einen seriellen Port hinzufügen kann, der dann als Terminal fungiert.

Meine Fragen lauten also:

  1. Welche Einstellungen eignen sich am besten für die FreeBSD-Distribution? (Da sind viele!)
  2. Wie greife ich von meinem Linux-Host auf dieses Terminal zu?
Caleb
quelle

Antworten:

5

Ich kann jetzt meine eigene Frage beantworten, basierend auf dem Kommentar von Stefan und den beiden verlinkten Artikeln:

Hier ist die Lösung:

  • Sie müssen nichts bearbeiten, um mit der Host-Konfiguration zu tun zu haben, vorausgesetzt, das standardmäßige serielle Gerät zeigt auf pty.
  • Stellen Sie sicher, dass der Boot-Parameter für Ihren Kernel Folgendes enthält: serial=tty0 console=ttyS0,115200n8 . In der Regel durch Bearbeitung erreicht/boot/grub/menu.lst
  • Konfigurieren Sie /etc/inittabdie Zeile T0:S12345:respawn:/sbin/getty -hL ttyS0 115200 vt100und hängen Sie sie an, um ein getty zu starten, und geben Sie die Anmeldeaufforderung an.

Ich kann bestätigen, dass dies für mich mit einem Fedora-System funktioniert (obwohl ich dies enforcing=0als zusätzlichen Parameter festlegen musste, da das betreffende System Fedora Rawhide ist, auf dem SELinux MLS ausgeführt wird).

Ich denke, von dort aus kann ich wahrscheinlich herausfinden, wie ich dasselbe für freebsd machen kann.

Danke Stefan!

Gemeinschaft
quelle
Ich denke serial=tty0ist ein Fehler und sollte es sein console=tty0. In keinem der Kernel-Dokumente wird ein "serial" -Parameter angezeigt. Die Angabe mehrerer Konsolen (in diesem Fall der aktiven virtuellen Konsole und der seriellen Konsole) ist für mich jedoch sinnvoll.
Mattdm
2

Als Antwort auf die Einrichtung Ihres FreeBSD-Rechners gibt es zwei Hauptfälle, um seriell zu werden. Wenn Sie FreeBSD nur mit der seriellen Version installieren, werden die seriellen Anweisungen des Bootloaders benötigt. Wenn Sie bereits über eine Konsole verfügen und auch nur seriellen Zugriff haben möchten, befolgen Sie die Anweisungen nach der Installation.

Bootloader seriell

  • Drücken Sie 2 auf dem FreeBSD-Startbildschirm, um zur Eingabeaufforderung des Loaders zu gelangen
  • Art set console=comconsole
    • Wenn Sie zu diesem Zeitpunkt die Interaktivität verlieren, überprüfen Sie, ob die virtuelle Tty-Baudrate 9600 beträgt
  • Art autoboot

Dies sollte ermöglichen, dass der Rest der Installation über die serielle Schnittstelle erfolgt. Wenn Sie nach der Installation von FreeBSD weiterhin seriellen Zugriff haben möchten, sollten Sie vor dem Neustart nach Abschluss der Installation zur Eingabeaufforderung wechseln.

Seriennummer nach der Installation

An der Konsole:

  • Art echo 'console="comconsole"' >> /boot/loader.conf
  • Belastung /etc/ttys in vi
  • Ändern Sie die Zeile, die mit ttyu0 beginnt (möglicherweise ttyd0 in anderen FreeBSD-Versionen).
    • In dieser Zeile wechseln Sie dialupzu vt100und offzuon
  • Nach dem Neustart sollte das serielle Terminal den Startvorgang anzeigen und mit einer Anmeldeaufforderung enden
    • Hinweis: Einstellung console="comconsole"in /boot/loader.confkönnte die Boot - Meldungen nur auf der seriellen Schnittstelle erscheinen. Ändern /etc/ttysSie einfach, wenn Sie nicht möchten, dass das Startprotokoll über die Seriennummer übertragen wird.

Verweise

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

http://www.freebsd.org/doc/handbook/term.html

Peter Olson
quelle
0

Nun, Sie müssen natürlich eine serielle Schnittstelle im Emulator emulieren und diese auf dem Host verfügbar machen. Das Gastbetriebssystem sollte etwas auf seinen 'Hardware Serial Port' legen, wie eine Anmeldeaufforderung über zB getty_ps. Jetzt musste ich es persönlich nicht mehr so ​​benutzen. Meist wird die emulierte serielle Schnittstelle des Gastbetriebssystems zum Debuggen von Informationen verwendet (Haiku verwendet diese weiterhin standardmäßig). Anschließend wird sie vom Emulator (wie VMware) als einfache Textdatei erfasst, damit die Debuginformationen verfügbar sind. Ich werde hier versuchen, etwas auf der emulierten seriellen Konsole in QEMU zum Laufen zu bringen.

Reiche
quelle
0

OPs Antwort funktioniert aber als ich es mit meinem env versuchte (Linux Host, Linux Client)

  1. serial=tty0 wurde nicht benötigt
  2. Verwenden von xterm statt vt100 /etc/inittabfunktioniert besser (Sie erhalten Farbe)
Andy Song
quelle