lsof
doesn't show anything with/dev/fb0
open.
Não vai. Existe um programa emulador de terminal embutido no kernel do Linux. Não se manifesta como um processo em execução com identificadores de arquivos abertos. É colocado sobre o framebuffer e o subsistema de eventos de entrada, que usa interfaces de kernel internas para acessar. Ele se apresenta para sistemas de modo aplicativo como uma série de dispositivos kernel virtual terminal , /dev/tty1
e assim por diante.
Um desses sistemas de modo de aplicativo é, naturalmente, o sistema getty
+ login
, que pode ser configurado para operar nesses terminais virtuais do kernel, e (como você encontrou) é por padrão. Você pode facilmente se livrar dos processos getty
usando mecanismos systemd documentados.
Em um sistema System 5 init
antigo, cada getty
seria um registro em /etc/inittab
. Em um sistema BSD init
, cada getty
é um registro em /etc/ttys
. Em um sistema systemd, as coisas são um pouco indiretas.
- O daemon "login",
logind
, sabe sobre coisas chamadas "lugares" na gíria systemd. "Assento" zero é aquele com o framebuffer primário e todos os terminais virtuais do kernel. - Para esse local,
logind
tenta iniciar N serviços systemd, denominados[email protected]
atéautovt@ttyN.service
. O valor de N é definido na configuraçãoNAutoVTs
em/etc/systemd/logind.conf
. - Esses serviços do systemd são criados a partir de uma unidade de modelo de serviço , denominada
[email protected]
. O parâmetro de modelo é, como acima, o nome do dispositivo do arquivo de dispositivo do terminal virtual do kernel , em/dev/
. -
[email protected]
é, na configuração padrão, um link simbólico para[email protected]
. - É
[email protected]
que descreve a execução de um programagetty
, configurado para fazer sua entrada / saída por meio do arquivo de dispositivo do terminal virtual do kernel.
Portanto, para parar tudo isso, visite /etc/systemd/logind.conf
e configure logind
para não iniciar automaticamente nenhum autovt
services (e não reservar terminais virtuais, se você quiser ser minucioso sobre isso).
No entanto, isso não é tudo. O programa emulador de terminal ainda está ativo no kernel, e tudo, desde mensagens de log direcionadas a um VT do kernel até o piscar regular do cursor, fará com que o emulador de terminal interfira no uso do framebuffer. Mas essa é uma questão de codificar o programa que você usa o framebuffer para negociar com o programa emulador de terminal do kernel, que já foi respondido aqui.
O login do console serial acontece por meio de uma rota bem diferente. Um gerador cria uma instância da unidade de modelo [email protected]
em um tempo de inicialização, instanciando-a uma vez para cada dispositivo de console do kernel que ele encontra ou é informado.
Leitura adicional
- Prática recomendada para ocultar o console virtual ao renderizar vídeo no framebuffer
- link
-
logind.conf
. páginas de manual do systemd. freedesktop.org. - "multiterminal" systemd. freedesktop.org.
-
systemd-getty-generator
. páginas de manual do systemd. freedesktop.org.