summaryrefslogtreecommitdiffstats
path: root/source/installer/sources/initrd/etc/rc.d/rc.S
diff options
context:
space:
mode:
Diffstat (limited to 'source/installer/sources/initrd/etc/rc.d/rc.S')
-rwxr-xr-xsource/installer/sources/initrd/etc/rc.d/rc.S18
1 files changed, 15 insertions, 3 deletions
diff --git a/source/installer/sources/initrd/etc/rc.d/rc.S b/source/installer/sources/initrd/etc/rc.d/rc.S
index ce8c32d5c..dec350d0a 100755
--- a/source/installer/sources/initrd/etc/rc.d/rc.S
+++ b/source/installer/sources/initrd/etc/rc.d/rc.S
@@ -250,11 +250,23 @@ if ! cat /proc/cmdline | grep -q 'kbd=' 2> /dev/null ; then
else
for ARG in `cat /proc/cmdline` ; do
if [ "`echo $ARG | cut -f1 -d=`" = "kbd" ]; then
- BMAP="`echo $ARG | cut -f2 -d=`.bmap"
+ # A keymap was specified on the kernel command line such as: kbd=azerty
+ MAPSELECT="$(echo $ARG | cut -f2 -d=)"
+ # If it ends in .gz, strip that off:
+ if [ "$(echo $MAPSELECT | rev | cut -f 1 -d . | rev)" = "gz" ]; then
+ MAPSELECT=$(basename $MAPSELECT .gz)
+ fi
+ # If it doesn't end in .map, add that:
+ if [ ! "$(echo $MAPSELECT | rev | cut -f 1 -d . | rev)" = "map" ]; then
+ MAPSELECT=${MAPSELECT}.map
+ fi
+ # Load the keymap:
+ loadkeys -q $MAPSELECT
+ # Let the setup script know about this:
+ echo $MAPSELECT > /tmp/Pkeymap
+ unset MAPSELECT
fi
done
- tar xzOf /etc/keymaps.tar.gz $BMAP | loadkmap
- unset BMAP
fi
clear