diff --git a/mkinitrd b/mkinitrd index 00b5992..b76d06d 100755 --- a/mkinitrd +++ b/mkinitrd @@ -1471,6 +1471,16 @@ fi if [ $ncryptodevs -ne 0 ]; then inst /sbin/cryptsetup "$MNTIMAGE" + + # set up so we can load a keymap before prompting for passphrases + LOADKEYS=loadkeys + if [ "${LANG}" != "${LANG%%.UTF-8}" -o "${LANG}" != "${LANG%%.utf8}" ]; then + LOADKEYS="loadkeys -u" + fi + # this way we don't have to worry about includes, filenames or any of that + dumpkeys > "$MNTIMAGE/etc/keymap" + inst /bin/loadkeys "$MNTIMAGE" + KEYMAP=/etc/keymap fi echo -n >| $RCFILE @@ -1639,6 +1649,11 @@ if [ -n "$raiddevices" ]; then done fi +if [ -n "$LOADKEYS" -a -n "$KEYMAP" ]; then + emit "echo Loading keymap." + emit "$LOADKEYS $KEYMAP" +fi + emitcrypto() { emit "echo Setting up disk encryption: $1"