我有一个意大利语键盘,我想在 GRUB shell 中设置正确的布局。
我在网上找到了许多使用grub-kbdcomp
或 的教程grub-mklayout
,但这些命令不适用于我的发行版。
如何设置正确的布局?
答案1
grub-kbdcomp
只是一个 shell 脚本,它是 Debianckbcomp
实用程序和grub-mklayout
.尽管有一个 Gentoo Portage 软件包可以安装在 Sabayon linux 中并如下所示使用,但不存在用于 ckbcomp 的 Sabayon Linux Entropy 软件包。
- 由于没有 Entropy 包
ckbcomp
,因此通过 Portage 安装它。
1.1 安装Gentoo的Portage覆盖管理器。
# equo install git
# equo install layman
1.2 同步Gentoo Portage 包ebuild 树。
# emerge --sync # Do not update portage if told to do so.
1.3 同步Sabayon发行版的Gentoo Portage覆盖包ebuild树。
# layman -S
1.4 添加 Sabayon 发行版的 Gentoo Portage 覆盖层。
# layman -a sabayon-distro
1.5 同步Sabayon发行版的Gentoo Portage覆盖包ebuild树。
# layman -S
1.6sys-apps/ckbcomp
由于没有 Entropy 包,因此通过 Portage 安装。
# emerge -1v ckbcomp # Ignore any Gentoo news items.
1.7 告诉 Entropy 你通过 Portage 做了什么。
# equo rescue spmsync
创建一个新的子目录来存储 GRUB 键盘布局文件。
# mkdir /boot/grub/layouts
将 X11 键盘映射转换为 GRUB 键盘映射。 X11 键映射
/usr/share/X11/xkb/symbols/it
必须存在才能正常工作。# ckbcomp it nodeadkeys | grub2-mklayout -o /boot/grub/layouts/it.gkb Unknown keyboard scan code 0x54 Unknown keyboard scan code 0x65 Unknown keyboard scan code 0x7f
将 ' 附加
GRUB_TERMINAL_INPUT=at_keyboard
到/etc/default/grub
.# nano /etc/default/grub # tail -n 1 /etc/default/grub GRUB_TERMINAL_INPUT=at_keyboard
添加
insmod
和keymap
线,如下所示。# nano /etc/grub.d/40_custom # tail -n 2 /etc/grub.d/40_custom insmod keylayouts keymap $prefix/layouts/it.gkb
检查哪些区域设置可用。
# locale --all-locales | grep -i it
(仅)更改/添加区域设置,
/etc/default/sabayon-grub
如下所示。保留其他条目(如果有),保持GRUB_CMDLINE_LINUX
原样。# nano /etc/default/sabayon-grub # grep locale /etc/default/sabayon-grub GRUB_CMDLINE_LINUX="locale=it_IT dolvm rd.lvm.lv=sabayon_sabayon/swap rd.lvm.lv=sabayon_sabayon/root resume=/dev/mapper/sabayon_sabayon-swap splash vconsole.keymap=it rd.vconsole.keymap=it quiet"
重新生成
grub.cfg
文件。# grub2-mkconfig -o /boot/grub/grub.cfg
检查是否
grub.cfg
已进行相应修改:# grep terminal_input /boot/grub/grub.cfg terminal_input at_keyboard # grep gkb /boot/grub/grub.cfg keymap $prefix/layouts/it.gkb # grep layouts /boot/grub/grub.cfg insmod keylayouts keymap $prefix/layouts/it.gkb
如果计算机使用 UEFI 而不是 PC BIOS,请更新 EFI 目录中的 GRUB 文件。
# grub2-install --efi-directory=/boot/efi
重新启动以检查是否
it
已为 GRUB shell 加载键盘映射。# systemctl reboot