Как сделать так, чтобы Ubuntu запускал fbterm в tty при запуске?

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

Я нашел способ, используя fbsplash. Я не слишком заинтересован в этом, поскольку он включает в себя модификацию ядра.

Затем я нашел fbterm, который позволяет вам использовать свой собственный фон и не требует модификации ядра.

Так что я получил работу fbterm; Я установил его, и теперь я могу запустить его как сам (не как root), и он работает просто отлично.

Теперь все, что мне нужно, это как запустить его в tty, когда я запускаю Ubuntu.

Изменить: Это также должно действовать что-то вроде getty, когда я запускаю его; иначе я не смогу войти.

2 ответа

Решение

Прежде всего, вам нужно отредактировать файл 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 для доступа к фреймбуферу, by. Чтобы ты мог бежать 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.

Вы должны иметь возможность изменить терминал tty, отредактировав:

/etc/init/tty1.conf
Другие вопросы по тегам