Wie bringe ich Ubuntu dazu, beim Start fbterm in der tty zu starten?

11

Als ich openSUSE vor ungefähr einer Woche getestet habe, habe ich festgestellt, dass tty1 (ja, nur tty1) den openSUSE-Hintergrund hat. Ich möchte dasselbe in Ubuntu tun.

Ich habe einen Weg gefunden, fbsplash zu verwenden. Ich bin nicht besonders daran interessiert, da es darum geht, den Kernel zu modifizieren.

Dann habe ich fbterm gefunden, mit dem Sie Ihren eigenen Hintergrund verwenden können und den Kernel nicht ändern müssen.

Also habe ich fbterm gearbeitet; Ich habe es eingerichtet und jetzt kann ich es als ich selbst ausführen (nicht als root) und es funktioniert einwandfrei.

Jetzt brauche ich nur noch, wie ich es in tty starte, wenn ich Ubuntu starte.

Bearbeiten: Es muss sich auch so etwas wie getty verhalten, wenn ich es starte. Andernfalls kann ich mich nicht anmelden.

biggles5107
quelle

Antworten:

7

Zunächst müssen Sie Ihre inittab-Datei bearbeiten. Auf Debian befindet es sich in /etc/inittabund ich würde vermuten, dass es auf Ubuntu irgendwo ähnlich ist. Die normale TTY-Eingabeaufforderung wird mit einem Programm namens aufgerufen getty. Sie müssen also nach unten scrollen, wo das Programm eingerichtet ist. Sie sollten viele ähnliche Zeilen sehen:

# Note that on most Debian systems tty7 is used by the X Window System,
# so if you want to add more getty's go ahead but skip tty7 if you run X.
#
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

Als nächstes brauchen wir ein Programm namens rungetty. Auf diese Weise können Sie Programme auf einem TTY als bestimmter Benutzer ausführen. fbtermerfordert, dass Sie root sind, um auf den Framebuffer zugreifen zu können. Sie können fbtermalso wie folgt auf TTY2 ausgeführt werden (doppelte Striche bedeuten das Ende der Schalter für rungetty):

2:23:respawn:/sbin/rungetty -u root tty2 -- fbterm

Nur ein Problem; Sie haben ein wunderschönes Framebuffer-basiertes Terminal, sind aber als Root angemeldet! Eine nicht authentifizierte Root-Eingabeaufforderung ist für die Sicherheit ungefähr so ​​schlecht wie es nur geht. Das geht nicht.

Wir können ein Programm verwenden, das aufgerufen wird login, um dies zu umgehen, indem wir einen anderen Satz von Benutzeranmeldeinformationen akzeptieren und dann bash oder zsh oder was auch immer Ihre Anmeldeshell ist, starten. Glücklicherweise fbtermkann ein Befehl als letztes Argument akzeptieren (auch hier doppelte Striche verhindern fbtermund rungettyvon Argumenten gemischt bekommen:

2:23:respawn:/sbin/rungetty -u root tty2 -- fbterm -- login

Damit sollten Sie fbtermauf einem Ihrer TTYs laufen.

Jacob Hume
quelle
Wie wäre es mit einem System, in dem das Dienstprogramm "rungetty" nicht verfügbar ist? Gibt es eine andere Methode, um dasselbe zu erreichen?
dtmland
@dtmland Es sieht so aus, als hätten agetty und mingetty Optionen (-l bzw. --login - prog), die vielleicht hilfreich sind, aber ich habe sie selbst nicht ausprobiert. Sie können auch versuchen, die Rungetty-Quellen aus dem Debian-Paketarchiv abzurufen und auf Ihrem System aufzubauen.
Jacob Hume
Übrigens habe ich generell Probleme mit fbterm - vielleicht könnte sich Ihr Fachwissen als nützlich erweisen? superuser.com/questions/892028/...
dtmland
1

Sie sollten in der Lage sein, das tty-Terminal durch Bearbeiten zu ändern:

/etc/init/tty1.conf
drk.com.ar
quelle