I'm trying to configure a Debian Linux (ARMHF 3.8.13-bone20) on a BeagleBone Black to use German as the default language and keyboard layout, which does not work, and I can't see why. I'm talking about the console settings, not X or Gnome etc. Here are my settings and what I did so far:
dpkg-reconfigure localesHere I chose de_DE.UTF-8 UTF-8 and unselected en_US.UTF-8 UTF-8.
Output from locale:
LANG=de_DE.UTF-8
LANGUAGE=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=Content of /etc/default/locale:
LANG=de_DE.UTF-8
LANGUAGE=de_DE.UTF-8Content of /etc/default/keyboard:
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL="pc105"
XKBLAYOUT="de"
XKBVARIANT="nodeadkeys"
XKBOPTIONS="terminate:ctrl_alt_bksp"
BACKSPACE="guess"I ran setupcon after making these settings and it didn't change anything, the layout still was en_US.
After that, I ran
dpkg-reconfigure keyboard-configurationand set German - no dead keys as keyboard layout. Still no change, neither at once nor after a reboot.
Next, I tried
dpkg-reconfigure console-dataHere I chose
Choose layout from entire listand then
pc / quertz / German / Standard / latin1 - no dead keysThe output after that was:
Looking for keymap to install:
de-latin1-nodeadkeys
#At this moment, the correct keyboard layout is present, but unfortunately things revert to the English (US) keyboard layout after reboot.
What can I do to permanently change the keyboard layout? As far as I can see the correct keymap must be present as it can get loaded, but only until the next reboot. What am I missing here?
Update: When connecting via SSH the German keymap gets loaded.
37 Answers
You might try to add the boot parameters of debian-installer/keymap=de and keymap=de.
Also, the answer at the thread Keyboard layout HELP says :
Go to the webmin and do this SYSTEM -> SOFTWARE PACKADGES -> UPGRADE ALL
(I don't recall if the order was this) Go to the console and do the following:
apt-get install console-data
apt-get install console-setup
apt-get install console-locales
apt-get install keyboard-configurationDo the dpkg-reconfigure for each of the packets above. REBOOT.
So maybe your problem is that you haven't done all of them before rebooting.
6After dpkg-reconfigure keyboard-configuration, you need to run
setupcon3NAME setupcon - sets up the font and the keyboard on the console SYNOPSIS setupcon [OPTION]... [VARIANT] DESCRIPTION setupcon is a program for fast and easy setup of the font and the key‐ board on the console. Most of the time you invoke setupcon without arguments. The keyboard configuration is specified in ~/.keyboard or /etc/default/keyboard. The font configuration is specified in ~/.con‐ sole-setup or /etc/default/console-setup. Consult keyboard(5) and con‐ sole-setup(5) for instructions how to configure these two files.
On Stretch you'll need console-setup (in addition to keyboard-configuration), which includes the necessary systemd-service keyboard-setup:
apt-get install keyboard-configuration console-setup 1 dpkg-reconfigure keyboard-configuration
udevadm trigger --subsystem-match=input --action=change 3 The solution for me was to comment out all the locale relevant variables at /etc/profile
#export LANG="de_DE.utf8"
#export LANGUAGE="de_DE.utf8"
#export LC_ALL="de_DE.utf8"(I wanted to get rid off the German :))
and then set my locale as I wish within /etc/default/locale
The debian wiki page was the most helpfull document I found.
1To change the german keyboard in Kali Linux 2020.02 (Debian) do the following:
dpkg-reconfigure localesChoose
de_DE.UTF-8 UTF-8and unselecten_US.UTF-8 UTF-8(by pressing Space)dpkg-reconfigure keyboard-configurationChoose your keyboard hardware
For Kali Linux 2020.2 (Debian) goto GUI
Settings/Settings Editor
To Channel Keyboard-layout
Under Line XkbLayout String change the value to
de(deleteus)
This permanently changes the layout to the german keyboard.
The combination of commands that worked for me were:
$ sudo dpkg-reconfigure keyboard-configuration
$ setupcon
$ sudo update-initramfs -uAnd then reboot.
The last command rebuilds your GRUB boot settings. I don't know for sure if the keyboard layout is set in the boot image, but I noticed that the prompt for the full-disk encryption passphrase uses my system keyboard layout setting. At the point that prompt appears the keyboard settings couldn't be loaded from /etc because the root partition hasn't been decrypted yet. That led me to believe that there is probably a setting written into the boot partition, thus the motivation to run update-initramfs.