Como faço para o Ubuntu iniciar o fbterm no tty na inicialização?

11

Quando eu estava testando o openSUSE cerca de uma semana atrás, notei que tty1 (sim, apenas tty1) tinha o background do openSUSE. Eu quero fazer o mesmo no Ubuntu.

Eu encontrei uma maneira de usar o fbsplash. Não estou muito interessado nisso, pois envolve a modificação do kernel.

Então eu encontrei o fbterm, que permite que você use seu próprio background e não envolve a modificação do kernel.

Então, eu consegui trabalhar no meio do ano; Eu o configurei e agora posso executá-lo como eu (não como root) e funciona muito bem.

Agora tudo o que preciso é como começar no tty quando inicio o Ubuntu.

Edit: Ele também precisa agir como o getty quando eu iniciá-lo; caso contrário, não poderei fazer login.

biggles5107
fonte

Respostas:

7

Primeiro de tudo, você precisará editar seu arquivo inittab. No Debian, ele está localizado em /etc/inittab, e eu acho que pode ser algo semelhante no Ubuntu. O prompt TTY normal é gerenciado com um programa chamado getty, portanto, você precisará rolar para baixo até onde o programa está configurado. Você deve ver muitas linhas semelhantes a esta:

# 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

Em seguida, precisaremos de um programa chamado rungetty. Isso permite que você execute programas em um TTY como um usuário específico. fbtermrequer que você seja root para acessar o framebuffer, pelo by. Assim, você pode executar o fbtermTTY2 da seguinte maneira (traços duplos significam o fim dos switches rungetty):

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

Apenas um problema; você tem um belo terminal baseado em framebuffer, mas está logado como root! Ter um prompt raiz não autenticado é tão ruim quanto à segurança. Isso não serve.

Podemos usar um programa chamado loginpara contornar isso aceitando outro conjunto de credenciais do usuário e iniciando o bash ou zsh ou o que for que seu shell de login seja. Felizmente, fbtermpode aceitar um comando como argumento final (novamente, traços duplos impedem fbterme rungettyde obter argumentos misturados:

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

Com isso, você deve ter fbtermrodado em um dos seus TTYs.

Jacob Hume
fonte
Que tal em um sistema em que o utilitário "rungetty" não está disponível? Existe outro método para realizar o mesmo?
dtmland
@dtmland Parece que agetty e mingetty têm opções (-l e --login-prog, respectivamente) que podem ser úteis, mas eu mesmo não as testei. Você também pode tentar extrair os fontes rungetty do repositório de pacotes debian e construir no seu sistema.
Jacob Hume
A propósito, estou tendo problemas com o fbterm em geral - talvez sua experiência possa ser útil? superuser.com/questions/892028/…
dtmland 20/03/2015
1

Você poderá alterar o terminal tty editando:

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