Jak podłączyć terminal szeregowy do instancji KVM?

12

Być może nie rozumiem, do czego zdolny jest KVM, ale możliwość dodawania / usuwania sprzętu na maszynie wirtualnej sugeruje, że mogę dodać port szeregowy, który następnie działa jak terminal.

Tak więc moje pytania to:

  1. Jakie ustawienia są najlepsze dla gościnnej dystrybucji FreeBSD? (Jest wiele!)
  2. Jak uzyskać dostęp do wspomnianego terminala z mojego hosta Linux?
Caleb
źródło

Odpowiedzi:

5

Mogę teraz odpowiedzieć na własne pytanie na podstawie komentarza Stefana i dwóch powiązanych artykułów:

Oto rozwiązanie:

  • Nie musisz edytować niczego, co ma związek z konfiguracją hosta, pod warunkiem, że ma tam domyślne urządzenie szeregowe wskazujące na pty.
  • Upewnić się, że parametr startowy dla jądra jest to dołączone: serial=tty0 console=ttyS0,115200n8. Zwykle osiągane przez edycję/boot/grub/menu.lst
  • Skonfiguruj /etc/inittabi dołącz linię, T0:S12345:respawn:/sbin/getty -hL ttyS0 115200 vt100aby uruchomić getty i podać monit o zalogowanie.

Mogę potwierdzić, że działa dla mnie za pomocą systemu fedora (chociaż musiałem ustawić enforcing=0jako dodatkowy parametr, ponieważ omawiany system jest fedora rawhide z systemem SELinux MLS).

Myślę, że stamtąd prawdopodobnie mogę wymyślić, jak to zrobić dla Freebsd.

Dzięki Stefan!

Społeczność
źródło
Myślę, że serial=tty0to pomyłka i tak miało być console=tty0. Nie widzę parametru „serial” w żadnym dokumencie jądra. Określenie wielu konsol (w tym przypadku aktywnej konsoli wirtualnej i konsoli szeregowej) ma jednak dla mnie sens.
mattdm
2

W odpowiedzi na to, jak skonfigurować maszynę FreeBSD, istnieją dwa główne przypadki uzyskania numeru seryjnego. Jeśli instalujesz FreeBSD tylko z szeregowym, potrzebne będą instrukcje szeregowe bootloadera. Jeśli masz już konsolę i po prostu chcesz mieć dostęp szeregowy, postępuj zgodnie z instrukcjami seryjnymi po instalacji.

Numer seryjny bootloadera

  • Naciśnij 2na ekranie opcji rozruchu FreeBSD, aby przejść do monitu programu ładującego
  • rodzaj set console=comconsole
    • jeśli w tym momencie stracisz interaktywność, sprawdź, czy wirtualna prędkość transmisji tty wynosi 9600
  • rodzaj autoboot

Powinno to pozwolić na wykonanie reszty instalacji przez interfejs szeregowy. Jeśli chcesz nadal mieć dostęp szeregowy po zainstalowaniu FreeBSD, to przed ponownym uruchomieniem komputera pod koniec instalacji będziesz chciał przejść do wiersza poleceń.

Serial poinstalacyjny

Na konsoli:

  • rodzaj echo 'console="comconsole"' >> /boot/loader.conf
  • załaduj /etc/ttysvi
  • Zmodyfikuj linię zaczynając od ttyu0 (może być ttyd0 w innych wersjach FreeBSD)
    • Na tej linii zmień dialupna vt100i offnaon
  • po ponownym uruchomieniu terminal szeregowy powinien pokazywać proces rozruchu i kończyć się monitem logowania
    • Uwaga: Ustawienie console="comconsole"w /boot/loader.confmógłby komunikaty startowe pojawiają się tylko na interfejsie szeregowym. Po prostu zmodyfikuj, /etc/ttysjeśli nie chcesz, aby dziennik rozruchu był nadrzędny.

Bibliografia

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

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

Peter Olson
źródło
0

Cóż, oczywiście musisz emulować port szeregowy w emulatorze i mieć go dostępnym na hoście. System operacyjny gościa powinien umieścić coś na swoim „sprzętowym porcie szeregowym”, np. Monit o zalogowanie, np. Getty_ps. Teraz osobiście nie musiałem tego używać w ten sposób. Przeważnie emulowany port szeregowy w systemie-gościu służy do debugowania informacji (Haiku nadal używa go domyślnie), a następnie jest przechwytywany przez emulator (jak VMware) jako prosty plik tekstowy, aby mieć dostęp do informacji debugowania. Spróbuję tutaj, aby uruchomić coś na emulowanej konsoli szeregowej w qemu.

reiche
źródło
0

Odpowiedź OP działa, ale kiedy próbowałem z moim env (host Linux, klient Linux)

  1. serial=tty0 nie było potrzebne
  2. użycie xterm zamiast vt100 /etc/inittabdziała lepiej (dostajesz kolor)
Andy Song
źródło