本节讨论如何配置 console 启动脚本,该脚本用于设置键盘映射和控制台字体。如果不会使用非 ASCII 字符(例如,英镑符号和欧元字符)并且键盘是美式键盘,请跳过本节。如果没有配置文件,console 启动脚本将不会执行任何操作。
console 脚本读取/etc/sysconfig/console文件以获取配置信息。确定将使用哪个键盘映射和屏幕字体。各种特定于语言的 HOWTO 也可以对此提供帮助(请参阅 http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html)。LFS-Bootscripts 软件包安装了一个预制/etc/sysconfig/console文件,其中包含几个已知国家的设置,因此如果支持该国家/地区,则可以取消注释相关部分。如果仍然不确定,请在/usr/share/kbd目录中查找有效的键盘映射和屏幕字体。阅读loadkeys(1)和setfont(8)以确定这些程序的正确参数。一旦确定,使用以下命令创建配置文件
cat >/etc/sysconfig/console <<"EOF" KEYMAP="[arguments for loadkeys]" FONT="[arguments for setfont]" EOF
例如,对于也想使用欧元字符(可通过按 AltGr+E 访问)的西班牙用户,以下设置是正确的
cat >/etc/sysconfig/console <<"EOF" KEYMAP="es euro2" FONT="lat9-16 -u iso01" EOF
上面的FONT行仅对 ISO 8859-15 字符集有效。如果使用 ISO 8859-1,因此使用英镑符号而不是欧元,则正确的FONT行将是
FONT="lat1-16"
如果KEYMAP或FONT变量未设置,则 console initscript 将不会运行相应的程序。
在某些键盘映射中,Backspace 和 Delete 键发送的字符与内核中内置的默认键盘映射中的字符不同。这会使某些应用程序感到困惑。例如,当按下 Backspace 键时,Emacs 会显示其帮助(而不是擦除光标之前的字符)。要检查正在使用的键盘映射是否受到影响(这仅适用于 i386 键盘映射)
zgrep '\W14\W' [/path/to/your/keymap]
如果键码 14 是 Backspace 而不是 Delete,请创建以下键盘映射代码段以解决此问题
mkdir -pv /etc/kbd && cat > /etc/kbd/bs-sends-del <<"EOF" keycode 14 = Delete Delete Delete Delete alt keycode 14 = Meta_Delete altgr alt keycode 14 = Meta_Delete keycode 111 = Remove altgr control keycode 111 = Boot control alt keycode 111 = Boot altgr control alt keycode 111 = Boot EOF
告诉 console 脚本在主键盘映射之后加载此代码段
cat >>/etc/sysconfig/console <<"EOF" KEYMAP_CORRECTIONS="/etc/kbd/bs-sends-del" EOF
要将键盘映射直接编译到内核中,而不是每次都从 console 启动脚本设置它,请按照 第 8.3 节“Linux-2.6.11.12” 中给出的说明进行操作。这样做可以确保键盘始终按预期工作,即使在启动到维护模式时(通过将 init=/bin/sh 传递给内核),因为在那种情况下不会运行 console 启动脚本。此外,内核不会自动设置屏幕字体。这不应造成太多问题,因为 ASCII 字符将被正确处理,并且用户不太可能在维护模式下需要依赖非 ASCII 字符。
由于内核将设置键盘映射,因此可以省略KEYMAP变量从/etc/sysconfig/console配置文件中。如果需要,也可以保留它,而不会产生任何后果。如果运行几个不同的内核,并且难以确保键盘映射被编译到每个内核中,则保留它可能是有益的。