Konsolen login "howto" gesucht

FrankR

Member
Hallo Zusammen,

ich bin daran eine "Headless machine" aufzubauen, die nur über die serielle Konsole erreicht werden soll.
Die Konsole müsste bereits beim Booten des Rechners aktiv sein.
Erschwerend ist, dass der Server nur über USB Ports verfügt. Zur Verwendung kommt ein Adapter USB zu Seriell mit Ftdi Chip.
Das Setup der Verbindung wäre dann wie folgt: Server--USB-Seriell-Adapter---Null-Modem-Kabel---USB-Seriell-Adapter--Laptop mit putty oder Minicom
Auf der Seite der Konsole sollte die Verbindung i.o. sein wurde an einem Cisco Router, sowie an einem System mit Ubuntu 14.04 getestet.

Hier mal der output zu dem USB-ftdi Adapter:

uftdi0 on uhub3
uftdi0: <USB HS SERIAL CONVERTER> on usbus1

Bis jetzt ist es mir noch nicht gelungen eine tty Schnittstelle zu bekommen.
Hat jemand von Euch bereits einen Server so ansprechbar gemacht, bzw. kennt ein gutes Tutorial? :)
 
Der Adapter müsste dir mindestens ein /dev/ttyU* (mit großem U) Device zur Verfügung stellen. Das trägst du im Stil der in der Standardkonfiguration vorhandene Einträge für ttyu0 bis ttyu3 in die /etc/ttys ein und sendest init per kill -HUP 1 ein SIGHUP, damit es die geänderte Konfiguration einliest und getty auf den TTYs startet. Idealerweise geht es dann direkt.
 
Ich weiß nicht wie ads bei FreeBSD ist, aber ich kann mir nicht vorstellen das irgend ein *BSD, Linux oder sonst etwas bereits im Boot-Menü USB-Seriell adapter unterstützt. Auch die UEFI-Firmware wird das nicht unterstützen.

Der Login ins Betriebsystem sollte dagegen machbar sein - ich bin kein FreeBSD experte, aber letztlich sollte das was im Handbuch unter

27.3.1. Terminal Configuration​

Geschrieben ist da passen.


Sollte das nicht gehen, kannst du den Adapter denn mit cu -l /dev/cuauN als hmm "client" nutzen also zb um auf einen Cisco-Router zuzugreifen?
Was verwendet du als gegenstück, einen zweiten USB-RS-232-Adapter? Ist da ein Nullmodem-Kabel (Vertrauschte Sende/Empfangsrichtung) zwischen?

Viele Mainboards haben übrigens noch nen klassischen Comport auf dem Board, aber nicht auf der ATX-Blende ausgeführt, da könnte man ggf. auch mal schauen.
 
Ich weiß nicht wie ads bei FreeBSD ist, aber ich kann mir nicht vorstellen das irgend ein *BSD, Linux oder sonst etwas bereits im Boot-Menü USB-Seriell adapter unterstützt. Auch die UEFI-Firmware wird das nicht unterstützen.
USB könnte ein Problem sein, je nachdem wie das BIOS Einstelloptionen zur Verfügung stellt (emulate USB as oä.) vielleicht auch nicht.

An meinem Server habe ich z.B. in der loader.conf:
Code:
boot_multicons="YES"
hint.uart.0.flags="0x0"
hint.uart.1.flags="0x10"

Ich vermute auch, dass es mindestens noch einen com-Port auf dem Board gibt.
 
Achso, nicht nur Login nach dem Boot, sondern auch schon den Loader vor dem Boot? Das wird mit USB-Adaptern mindestens hakelig bis hin zu unmöglich, denn da müsste die Firmware mitspielen und das tut sie mit hoher Wahrscheinlichkeit nicht. Da bleibt nur ein COM-Header auf dem Board eine Lösung wie Serial over LAN, wenn das Board und sein BMC das können.
 
Für den Anfang wäre eine einfache Kommunikation mit dem usb to serial Adapter schon mal ein Erfolg. Hier komme ich nicht weiter.
Der Kernel scheint alle benütigten Module zu laden, nur wie bringe ich uftdi dazu tty zu aktivieren. Leider kenne ich mich mit der
Seriellen Kommunikation in BSD nicht gut aus, Anpassungen in /etec/ttys sind mir nicht klar. Diverse Einstellungen in "loader.conf" habe ich schon versucht. Der Server ist ein MacPro early 2008. Vermutlich wird es keinen UART auf dem Mainboard geben.
 
nur wie bringe ich uftdi dazu tty zu aktivieren.

Also in loader.conf
Code:
uftdi_load="YES"
ucom_load="YES"

Ersteres brauchst du nicht, uftdi0 hast du bereits, es schadet aber auch nicht. Dann mal gucken, was ucom so bereitstellt.

Sollte weiterhelfen:
 
Für den Anfang wäre eine einfache Kommunikation mit dem usb to serial Adapter schon mal ein Erfolg. Hier komme ich nicht weiter.
Der Kernel scheint alle benütigten Module zu laden, nur wie bringe ich uftdi dazu tty zu aktivieren. Leider kenne ich mich mit der
Seriellen Kommunikation in BSD nicht gut aus, Anpassungen in /etec/ttys sind mir nicht klar.
Okay, einmal anders: Kannst du uns für den Anfang einmal die Ausgabe von ls /dev mit eingestecktem Adapter geben? Daraus müssten sich die Devicenamen erkennen lassen. Oder wenigstens, ob der Adapter korrekt erkannt wurde.
 
Eine Zeile für ttyU0 in /etc/ttys sollte reiche, aber wenn ich mich recht entsinne reagiert init nicht von alleine auf hotplug events. Deswegen müsstest du ggf. ein kill -HUP 1 absetzten.
 
Inzwischen habe ich einige Einstellungen in /etc/ttys versucht. Beim recherchieren ist mir aufgefallen, dass der Prozess nur im Idle ist und nicht als Fordergrundprozess läuft?!
1056 - I 0:00.01 /usr/libexec/getty default ttyU0
da sollte 1056 - ls+ stehen? Ein Konsolen Login ist nach wie vor nicht möglich.
Wenn ich "cu -l /dev/ttyU0" auf einer mit null-modem Kabel verbundenen Maschine eingebe um mich auf dem Server einzuloggen bekomme ich "connect" aber keinen login prompt.
 
Endlich habe ich eine Verbindung. Habe sogar bei Putty ohne Enter taste einen Konsolen Prompt! :)
So sieht die Einstellung in "/etc/ttys" jetzt aus:

# The 'dialup' keyword identifies dialin lines to login, fingerd etc.
ttyU0 "/usr/libexec/getty 3wire" vt100 on secure
......
Nochmals als Zusammenfassung:
  • Prüfen ob ttyU0 in "/etc/ttys" auch richtig geschrieben ist, für die klassischen com Ports ist das "U" klein.
  • loader.conf: Kernel Treiber rechtzeitig laden mit
uftdi_load="YES"
ucom_load="YES"
werden die benötigten Module rechtzeitig geladen.
- Bei Putty/Minicom, muss noch die Flusskontrolle ausgeschaltet werden.
Vielen Dank für Eure Unterstützung!
 
Vermutlich willst du noch die Baudrate einstellen, denn FreeBSD verwendet gerne noch immer 9600 Baud als Voreinstellung....
 
Zurück
Oben