O Plymouth inicia a partir do initrd, muito antes de seus arquivos de configuração no diretório / etc serem acessados e lidos. Somente arquivos dentro do initrd podem ser acessados quando o plymouth solicitar a senha para descriptografar sua partição raiz.
Nenhuma das soluções clássicas para ativar o numlock com os arquivos de configuração mdm, lightdm, etc. funcionará. Porque essas saudações começam após Plymouth. Quando tentei soluções baseadas em "numlockx", nenhuma delas funciona. Então presumo que o plymouth, pelo menos nas versões recentes, comece antes do serverX.
Depois de ler algumas páginas man e muitas tentativas, finalmente consigo ativar o numlock quando o Plymouth solicita a senha. Por favor, note que eu sou um usuário Mint 17.3 e minha solução pode precisar de algumas adaptações dependendo da distribuição Linux (consulte as páginas de manual "initramfs-tools" e "setleds"). O Mint e o Ubuntu são muito próximos, então, na verdade, o procedimento descrito abaixo pode ser idêntico ou, pelo menos, muito semelhante.
Eu não sou um novato no Linux, mas mesmo assim eu não sou um especialista na fase "initramfs" ... então eu ficaria feliz de qualquer melhoria sugerida que pudesse tornar meu método mais seguro.
CUIDADO: Certifique-se de saber exatamente como iniciar seu sistema operacional a partir de um initrd alternativo ou de backup para evitar ficar preso se o initrd gerado pelas instruções a seguir se recusar a inicializar!
Usaremos o binário setleds para ativar o numlock. Portanto, devemos ter certeza de que está disponível dentro da imagem do initrd. Crie um arquivo "numlock" no diretório " / etc / initramfs-tools / hooks " (ou seu equivalente, de acordo com o seu Linux Distrib.) Com as seguintes linhas:
#! /bin/sh -e
PREREQ=""
prereqs () {
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
. /usr/share/initramfs-tools/hook-functions
# Add setleds to initrd
if test -x /usr/bin/setleds ; then
copy_exec /usr/bin/setleds /usr/bin/setleds
fi
exit 0
Marque este arquivo como executável:
# chmod 0755 numlock
O binário setleds estará acessível dentro do initrd nas próximas vezes que iremos reconstruir o "initramfs".
Agora, só precisamos escrever um pequeno script para usar setleds para ativar o numlock ... O principal problema é escolher o momento certo para executar o script. Se for executado em breve, eu acho que o tty onde o Plymouth avisa ainda não estará disponível ou a configuração do teclado corre o risco de sobrescrever o status do numlock. Se o script for executado após o prompt do Plymouth, o numlock será ativado tarde demais ...
De acordo com minhas próprias experiências, tudo ficará bem se o script for colocado no diretório "/ etc / initramfs-tools / scripts / init-top" com "console_setup" e "brltty" como pré-requisitos (não totalmente certos de que esses pré-requisitos são necessárias, mas funciona para mim. Possivelmente, corrija-o de acordo com os scripts de configuração de teclado que você tem em seu diretório "/ usr / share / initramfs-tools / scripts / init-top".
Basta criar em seu " / etc / initramfs-tools / scripts / init-top " um script "numlock" com as seguintes linhas:
#!/bin/sh
PREREQ="console_setup brltty"
prereqs()
{
echo "$PREREQ"
}
case $1 in
# get pre-requisites
prereqs)
prereqs
exit 0
;;
esac
if [ -x /usr/bin/setleds ] ; then
INITTY=/dev/tty[1-8]
for tty in $INITTY ; do
setleds -D +num < $tty
done
fi
exit 0
Claro, marque este arquivo como executável:
# chmod 0755 numlock
Re-construa seu initrd:
# update-initramfs -u
Se você tiver sorte, o numlock deve estar ativo automaticamente no prompt do plymouth na próxima vez que você inicializar. Nota: Eu reproduz com sucesso este método em poucos computadores de produção. Apenas um deles foi um pouco devagar na primeira reinicialização ... mas suspeito que isso ocorreu devido a outro pequeno bug nos arquivos de configuração do initramfs.