Як змусити Ubuntu запустити fbterm в tty при запуску?


11

Коли я тестував openSUSE близько тижня тому, я помітив, що tty1 (так, просто tty1) мав фон openSUSE. Я хочу зробити те ж саме в Ubuntu.

Я знайшов спосіб за допомогою fbsplash. Я не надто захоплююсь тим, що це стосується зміни ядра.

Тоді я знайшов fbterm, який дозволяє використовувати власний фон, і він не передбачає зміни ядра.

Так я працював fbterm; Я його налаштував і тепер я можу запустити його як сам (не як root), і він працює чудово.

Тепер все, що мені потрібно, це як змусити його запуститися в tty, коли я запускаю Ubuntu.

Редагувати: Коли я його запускаю, він також повинен діяти щось на кшталт getty; інакше я не зможу увійти.

Відповіді:


7

Перш за все, вам потрібно буде відредагувати свій файл inittab. У Debian він розміщений у /etc/inittab, і я б припустив, що він може бути десь схожий на Ubuntu. Звичайний запит TTY управляється програмою під назвою getty, тому вам потрібно буде прокрутити вниз туди, де ця програма налаштована. Ви повинні побачити багато рядків, подібних до цього:

# 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

Далі нам знадобиться програма під назвою rungetty. Це дозволяє запускати програми на TTY як конкретний користувач. fbtermвимагає, щоб ви мали root права для доступу до фреймбуфера, автор: Таким чином, ви можете працювати fbtermна TTY2 так (подвійні тире означають кінець комутаторів rungetty):

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

Лише одна проблема; у вас прекрасний термінал на базі фреймбуфера, але ви зареєстровані як root! Наявність несанкціонованого кореневого підказки настільки ж погано для безпеки, як і отриманого. Це не зробить.

Ми можемо використовувати програму, яку називають, loginщоб обійти цю проблему, прийнявши інший набір облікових даних користувачів, а потім запустити bash або zsh або все, що відбувається з вашою оболонкою для входу. На щастя, fbtermможна прийняти команду як свій остаточний аргумент (знову ж таки, подвійні тире запобігають fbtermта rungettyне змішують аргументи:

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

З цим ви повинні fbtermпрацювати на одному зі своїх TTY.


Як щодо системи, де утиліта "rungetty" недоступна? Чи є інший спосіб досягти того ж?
dtmland

@dtmland Схоже, що у agetty та mingetty є варіанти (-l та --login-prog відповідно), які можуть бути корисними, але я сам не пробував їх. Ви також можете спробувати витягнути джерела rungetty з архіву пакунків debian та створити вашу систему.
Яків Юм

До речі, у мене проблеми з fbterm взагалі - можливо, ваш досвід може стати в нагоді? superuser.com/questions/892028/…
dtmland

1

Ви повинні мати можливість змінити термінал tty, відредагувавши:

/etc/init/tty1.conf
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.