Jak sprawić, aby Ubuntu uruchamiał fbterm w tty podczas uruchamiania?

11

Kiedy testowałem openSUSE około tydzień temu, zauważyłem, że tty1 (tak, tylko tty1) ma tło openSUSE. Chcę zrobić to samo w Ubuntu.

Znalazłem sposób, używając fbsplash. Nie przepadam za tym, ponieważ wiąże się to ze zmianą jądra.

Potem znalazłem fbterm, który pozwala ci używać własnego tła i nie wymaga modyfikacji jądra.

Więc zacząłem działać; Skonfigurowałem i teraz mogę uruchomić go jako siebie (nie jako root) i działa dobrze.

Teraz wszystko, czego potrzebuję, to jak zacząć w tty po uruchomieniu Ubuntu.

Edycja: Musi także działać jak getty, kiedy go uruchamiam; w przeciwnym razie nie będę mógł się zalogować.

biggles5107
źródło

Odpowiedzi:

7

Przede wszystkim musisz edytować plik inittab. W Debianie jest on zlokalizowany /etc/inittabi domyślam się, że może to być coś podobnego na Ubuntu. Normalnym monitem TTY zarządza się przy użyciu programu o nazwie getty, dlatego należy przewinąć w dół do miejsca, w którym ten program jest skonfigurowany. Powinieneś zobaczyć wiele linii podobnych do tego:

# 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

Następnie potrzebujemy programu o nazwie rungetty. Umożliwia to uruchamianie programów na TTY jako określony użytkownik. fbtermwymaga roota, aby uzyskać dostęp do bufora ramki. Możesz więc działać fbtermna TTY2 tak (podwójne myślniki oznaczają koniec przełączników rungetty):

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

Tylko jeden problem; masz piękny terminal oparty na buforze ramki, ale jesteś zalogowany jako root! Posiadanie nieuwierzytelnionego roota jest tak samo szkodliwe dla bezpieczeństwa, jak to tylko możliwe. To się nie uda.

Możemy użyć programu wywoływanego w logincelu obejścia tego problemu, akceptując inny zestaw poświadczeń użytkownika, a następnie uruchamiając bash lub zsh lub cokolwiek, co dzieje się w powłoce logowania. Na szczęście, fbtermmożna przyjąć komendę jako ostatecznego argumentu (ponownie, podwójne kreski zapobiec fbtermi rungettyz coraz argumenty pomieszane:

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

Dzięki temu powinieneś mieć fbtermuruchomioną na jednym ze swoich TTY.

Jacob Hume
źródło
Co powiesz na system, w którym narzędzie „rungetty” nie jest dostępne? Czy istnieje inna metoda osiągnięcia tego samego?
dtmland
@dtmland Wygląda na to, że agetty i mingetty mają opcje (odpowiednio -l i --login-prog), które mogą być pomocne, ale sam ich nie wypróbowałem. Możesz także spróbować pobrać źródła rungetty z archiwum pakietów debiana i rozbudować system.
Jacob Hume,
Nawiasem mówiąc, ogólnie mam problemy z fbterm - może twoja wiedza może się przydać? superuser.com/questions/892028/…
dtmland
1

Powinieneś być w stanie zmienić terminal tty, edytując:

/etc/init/tty1.conf
drk.com.ar
źródło