The attached patch ensures that keyboard in emergency shell more closely corresponds to live system. I am not sure about UNIKEYTABLE which console_init checks as well - if it is not artifact, it can be easily added as well. -andrey
--- Begin Message ---
- Subject: [PATCH] Ensure UNICODE keyboard layout is functional in emergency shell
- From: Andrey Borzenkov <arvidjaar@xxxxxxx>
/lib/udev/cosole_init will load either non-unicode or unicode versions of keyboard layout for the same value of KEYMAP depending on language setting. The simplest solution is to install both versions in initrd; it does not take much space. While on it, copy some additional maps to ensure emergency shell has the same keyboard layout as full system. Signed-off-by: Andrey Borzenkov <arvidjaar@xxxxxxx> --- modules.d/10redhat-i18n/install | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) diff --git a/modules.d/10redhat-i18n/install b/modules.d/10redhat-i18n/install index 9f74cf7..3cdd57d 100755 --- a/modules.d/10redhat-i18n/install +++ b/modules.d/10redhat-i18n/install @@ -27,12 +27,20 @@ install_local() KEYMAP=/etc/sysconfig/console/default.kmap else . /etc/sysconfig/keyboard - [[ $KEYTABLE && -d /lib/kbd/keymaps ]] && KEYMAP="$KEYTABLE.map" + if [[ $KEYTABLE && -d /lib/kbd/keymaps ]]; then + [[ $KEYTABLE =~ *.uni ]] && UNIKEYMAP="$KEYTABLE.map" \ + || UNIKEYMAP="$KEYTABLE.uni.map" + KEYMAP="$KEYTABLE.map" + fi fi if [[ $KEYMAP ]]; then [ -f /etc/sysconfig/keyboard ] && inst /etc/sysconfig/keyboard inst loadkeys findkeymap $KEYMAP + [[ $UNIKEYMAP ]] && findkeymap $UNIKEYMAP + [[ $GRP_TOGGLE ]] && findkeymap $GRP_TOGGLE.map + findkeymap delete.map + findkeymap backspace.map for FN in $KEYMAPS; do if [ -L $FN ]; then
--- End Message ---
Attachment:
signature.asc
Description: This is a digitally signed message part.