mirror of
https://github.com/Le0xFF/VoidLinuxInstaller.git
synced 2024-09-11 18:47:17 +03:00
46 lines
1.7 KiB
Bash
46 lines
1.7 KiB
Bash
#! /bin/sh
|
|
#
|
|
# Create grubx64.efi containing custom keyboard layout
|
|
# Requires: ckbcomp, grub2, xkeyboard-config
|
|
#
|
|
|
|
if [ ! -f /boot/efi/EFI/$bootloader_id/ORIG_grubx64.efi_ORIG ] ; then
|
|
if [ ! -d /boot/grub/ ] || [ ! -f /boot/efi/EFI/$bootloader_id/grubx64.efi ] ; then
|
|
echo -e -n "\nFIle /boot/efi/EFI/$bootloader_id/grubx64.efi not found, install GRUB2 first!\n"
|
|
exit 1
|
|
else
|
|
mv /boot/efi/EFI/$bootloader_id/grubx64.efi /boot/efi/EFI/$bootloader_id/ORIG_grubx64.efi_ORIG
|
|
fi
|
|
fi
|
|
|
|
for file in $user_keyboard_layout.gkb early-grub.cfg grubx64_ckb.efi memdisk_ckb.tar ; do
|
|
if [ -f /boot/grub/\$file ] ; then
|
|
rm -f /boot/grub/\$file
|
|
fi
|
|
done
|
|
|
|
grub-kbdcomp --output=/boot/grub/$user_keyboard_layout.gkb $user_keyboard_layout 2> /dev/null
|
|
|
|
tar --create --file=/boot/grub/memdisk_ckb.tar --directory=/boot/grub/ $user_keyboard_layout.gkb 2> /dev/null
|
|
|
|
cat << EndOfGrubConf >> /boot/grub/early-grub.cfg
|
|
set gfxpayload=keep
|
|
loadfont=unicode
|
|
terminal_output gfxterm
|
|
terminal_input at_keyboard
|
|
keymap (memdisk)/$user_keyboard_layout.gkb
|
|
|
|
${root_line}/@
|
|
set prefix=\\\$root/boot/grub
|
|
|
|
configfile \\\$prefix/grub.cfg
|
|
EndOfGrubConf
|
|
|
|
grub-mkimage --config=/boot/grub/early-grub.cfg --output=/boot/grub/grubx64_ckb.efi --format=x86_64-efi --memdisk=/boot/grub/memdisk_ckb.tar diskfilter gcry_rijndael gcry_sha256 ext2 memdisk tar at_keyboard keylayouts configfile gzio part_gpt all_video efi_gop efi_uga video_bochs video_cirrus echo linux font gfxterm gettext gfxmenu help reboot terminal test search search_fs_file search_fs_uuid search_label cryptodisk luks lvm btrfs
|
|
|
|
if [ -f /boot/efi/EFI/$bootloader_id/grubx64.efi ] ; then
|
|
rm -f /boot/efi/EFI/$bootloader_id/grubx64.efi
|
|
fi
|
|
|
|
cp /boot/grub/grubx64_ckb.efi /boot/efi/EFI/$bootloader_id/grubx64.efi
|