Comment puis-je faire Ubuntu démarrer fbterm dans le tty au démarrage?


11

Lorsque je testais openSUSE il y a environ une semaine, j'ai remarqué que tty1 (oui, juste tty1) avait le fond openSUSE. Je veux faire de même dans Ubuntu.

J'ai trouvé un moyen d'utiliser fbsplash. Je ne suis pas trop intéressé par cela car cela implique de modifier le noyau.

Ensuite, j'ai trouvé fbterm, qui vous permet d'utiliser votre propre arrière-plan et cela n'implique pas de modifier le noyau.

J'ai donc réussi à faire travailler fbterm; Je l'ai installé et maintenant je peux l'exécuter en tant que moi-même (pas en tant que root) et cela fonctionne très bien.

Maintenant, tout ce dont j'ai besoin est de savoir comment le faire démarrer dans le tty lorsque je démarre Ubuntu.

Edit: Il doit également agir comme Getty lorsque je le démarre; sinon je ne pourrai pas me connecter.

Réponses:


7

Tout d'abord, vous devrez modifier votre fichier inittab. Sur Debian, il est situé dans /etc/inittab, et je suppose que cela pourrait être quelque part similaire sur Ubuntu. L'invite TTY normale est gérée avec un programme appelé getty, vous devrez donc faire défiler jusqu'à l'emplacement d'installation de ce programme. Vous devriez voir beaucoup de lignes similaires à ceci:

# 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

Ensuite, nous aurons besoin d'un programme appelé rungetty. Cela vous permet d'exécuter des programmes sur un TTY en tant qu'utilisateur particulier. fbtermvous oblige à être root pour accéder au framebuffer, par le by. Vous pouvez donc exécuter fbtermTTY2 comme cela (les doubles tirets signifient la fin des commutateurs pour rungetty):

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

Un seul problème; vous avez un beau terminal basé sur framebuffer, mais vous êtes connecté en tant que root! Avoir une invite racine non authentifiée est à peu près aussi mauvais pour la sécurité que possible. Ça ne marchera pas.

Nous pouvons utiliser un programme appelé loginpour contourner ce problème en acceptant un autre ensemble d'informations d'identification utilisateur, puis en démarrant bash ou zsh ou quel que soit votre shell de connexion. Heureusement, fbtermpeut accepter une commande comme argument final (encore une fois, les doubles tirets empêchent fbtermet rungettymélangent les arguments:

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

Avec cela, vous devriez avoir fbtermexécuté sur l'un de vos ATS.


Que diriez-vous d'un système où l'utilitaire "rungetty" n'est pas disponible? Existe-t-il une autre méthode pour accomplir la même chose?
dtmland

@dtmland Il semble que agetty et mingetty aient des options (-l et --login-prog respectivement) qui peuvent être utiles, mais je ne les ai pas essayées moi-même. Vous pouvez également essayer d'extraire les sources rungetty de l'archive du paquet debian et de construire sur votre système.
Jacob Hume

Soit dit en passant, j'ai des problèmes avec fbterm en général - peut-être que votre expertise pourrait être utile? superuser.com/questions/892028/…
dtmland

1

Vous devriez pouvoir changer le terminal tty en éditant:

/etc/init/tty1.conf
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.