本节讨论如何配置 systemd-vconsole-setup 系统服务,它负责配置虚拟控制台字体和控制台键盘映射。
systemd-vconsole-setup
服务从 /etc/vconsole.conf
文件中读取配置信息。它根据配置确定使用的键映射和控制台字体。一些与特定语言相关的 HOWTO 文档可以帮助您进行配置,参阅
https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html。浏览
localectl list-keymaps
输出的可用控制台键映射列表。在 /usr/share/consolefonts
目录中寻找可用的控制台字体。
/etc/vconsole.conf
文件的每一行都应该符合格式:变量名=值
,有效的变量名包括:
该变量指定键盘的键映射表。如果没有设定,默认为 us
。
该变量可以用于配置第二切换键盘映射,没有默认设定值。
该变量指定虚拟控制台使用的字体。
该变量指定控制台字体映射。
该变量指定 Unicode 字体映射。
在第 9.7 节 “配置系统 Locale”中,我们会指定
C.UTF-8
为 Linux 控制台中交互会话的
locale。Kbd 软件包提供的,包含 C.UTF-8
locale 下程序输出消息中全部字符字形的控制台字体有 /usr/share/consolefonts
中的 LatArCyrHeb*.psfu.gz
,LatGrkCyr*.psfu.gz
,Lat2-Terminus16.psfu.gz
,以及 pancyrillic.f16.psfu.gz
(其他提供的字体缺失一些字符的字形,如 Unicode
左右引号和 Unicode 英文破折号)。因此将它们中的某个,例如 Lat2-Terminus16.psfu.gz
设为默认控制台字体:
echo FONT=Lat2-Terminus16
> /etc/vconsole.conf
下面的例子可以用于德文键盘和控制台:
cat > /etc/vconsole.conf << "EOF"
KEYMAP=de-latin1
FONT=Lat2-Terminus16
EOF
在系统运行时,可以使用 localectl 工具修改 KEYMAP 变量值:
localectl set-keymap MAP
请注意 localectl 命令在 chroot 环境无法工作。只有在使用 systemd 引导 LFS 系统后才能使用它。
也可以通过指定 localectl 工具的参数,修改 X11 键盘布局,模型,变体和选项设置:
localectl set-x11-keymap 布局 [模型] [变体] [选项]
如果需要列出可用的 localectl set-x11-keymap 参数值,可以使用下列参数运行 localectl 命令:
列出已知的 X11 键盘映射模型。
列出已知的 X11 键盘映射布局。
列出已知的 X11 键盘映射变体。
列出已知的 X11 键盘映射选项。
上面给出的参数都需要 BLFS 中的 XKeyboard-Config 软件包。