Layout do teclado ignorado no initramfs desde o kernel 4.4.0-34. Como usar o layout fora dos EUA?

2

Eu uso um layout de teclado alemão e um disco rígido com luks no meu 16.04 atualizado. Eu poderia inserir minha senha luks usando meu layout de teclado alemão sem problemas até que eu instalei a atualização mais recente do kernel 4.4.0-34-generic. Agora o layout é en_US para o cryptsetup na inicialização, mas depois disso é tudo alemão (por exemplo, para login).

Eu ainda posso selecionar para inicializar o kernel antigo 4.4.0-31-genérico e ter o layout de teclado alemão em cryptsetup.

Eu tentei adicionar "KEYMAP = y" ao meu /etc/initramfs-tools/initramfs.conf e reconstruir meu initramfs com "sudo update-initramfs -u", mas isso não ajudou.

Como posso definir um layout de teclado no cryptsetup com o kernel mais novo?

    
por vollkorn 11.08.2016 / 14:21

2 respostas

1

KEYMAP=y é um mecanismo somente do Debian e, portanto, somente utilizável no Debian. Ele é passado em /usr/share/initramfs-tools/hooks/keymap localizado em initramfs-tools package e gera o/etc/boottime.kmap.gz usado mais tarde.

initramfs-tools no Ubuntu fornece ganchos completamente diferentes e eles não usam KEYMAP=y . Mas esses scripts sempre tentam carregar o mapa de teclado local configurado. /usr/share/initramfs-tools/hooks/console_setup copia o /etc/console-setup/cached.kmap.gz existente para o pequeno ambiente do busybox. Posteriormente, /usr/share/initramfs-tools/scripts/init-top/console_setup carregará este mapa de teclado.

Entre. parece que /usr/share/initramfs-tools/scripts/init-top/keymap também tentará carregar da mesma maneira /etc/boottome.kmap.gz , mas este arquivo não existe (foi usado em tempos antigos).

No entanto, /usr/share/initramfs-tools/hooks/console_setup não gera /etc/console-setup/cached.kmap.gz e apenas usa o existente, em contraste com o Debian. Eu suponho que a geração tem que fazer uma vez certo e então deve funcionar novamente e depois chamar ´update-initramfs -u '.

No entanto, parece que não consegui fazer isso corretamente. O que funcionou é um pouco decepcionante: eu tive que instalar o sistema operacional inteiro novamente. Certifique-se de ter selecionado o layout de teclado correto durante o processo de instalação e execute o comando ´update-initramfs -u 'em um ambiente chroot do novo sistema após o processo de instalação, mas antes de inicializar no novo sistema instalado (testei isso em btw). / p>     

por F.Raab 19.03.2017 / 19:40
1

Eu tive o mesmo problema em uma nova instalação do Ubuntu 17.10.

Esta informação da F.Raab mostrou-se muito útil:

However /usr/share/initramfs-tools/hooks/console_setup do not generate /etc/console-setup/cached.kmap.gz and just use the existing one, in contrast to Debian. I assume that the generation has to do once right and then it should work again and then call ´update-initramfs -u'.

Parece que o arquivo /etc/console-setup/cached.kmap.gz estava faltando no meu sistema e, aparentemente, os programas responsáveis não o criaram.

As etapas que funcionaram no meu sistema:

  1. cd /etc/console-setup
  2. Encontre um arquivo para usar como modelo: ls | grep kmap (procure por nomes de arquivos contendo 'kmap' na pasta atual). Eu escolho cached_UTF-8_del.kmap.gz .
  3. Crie uma cópia do arquivo de modelo e chame-a de cached.kmap.gz : sudo cp cached_UTF-8_del.kmap.gz cached.kmap.gz (exceto os drivers NVIDIA ativados via software e atualizações e o respingo silencioso do grub desativado devido a erro de desligamento )
  4. executar sudo update-initramfs -u so cached.kmap.gz pode ser integrado na sequência de inicialização.

(Eu testei que cached.kmap.gz estava sendo usado executando stat cached.kmap.gz antes e depois da etapa 4 e comparando os registros de data e hora de acesso.)

Após a reinicialização, o cryptsetup aceitaria minha frase-senha LUKS no meu layout de teclado preferido, em vez de QUERTY.

(Isso significa que cached_UTF-8_del.kmap.gz já continha o layout correto. Se o método acima não funcionar para você, você pode tentar a sua sorte com um dos comandos em Alterar o layout do teclado (inglês do Reino Unido) na linha de comando para inglês dos EUA ou link )

Estou no kernel 4.13.0-32-generic' (check using uname -r '). A atualização do kernel também pode atenuar o problema , mas eu não queria fazer isso, pois temia que isso resultasse em conflitos com o driver NVIDIA novamente. (Por que eu tive que deixar o Fedora; depois de quase todas as atualizações do kernel, meu sistema se tornaria instável novamente, e eu não tenho as habilidades e tempo para resolver isso.)

* exceto os drivers NVIDIA habilitados via software & atualizações e respingos silenciosos do grub desativados por causa do erro de desligamento

    
por c0d0g3n 04.02.2018 / 17:31