grub2: supports for x86 custom cmdline

This commit is contained in:
Liangbin Lian 2024-12-31 14:27:50 +08:00
parent 7770e69654
commit af02f432ff
4 changed files with 45 additions and 11 deletions

View File

@ -129,28 +129,28 @@ define Package/grub2/install
-O i386-pc \
-c $(PKG_BUILD_DIR)/grub-early.cfg \
-o $(STAGING_DIR_IMAGE)/grub2/gpt-core.img \
at_keyboard biosdisk boot chain configfile fat linux ls part_gpt reboot search serial test vga
at_keyboard biosdisk boot chain configfile echo fat linux loadenv ls part_gpt reboot search serial test vga
$(STAGING_DIR_HOST)/bin/grub-mkimage \
-d $(PKG_BUILD_DIR)/grub-core \
-p /boot/grub \
-O i386-pc \
-c ./files/grub-early.cfg \
-o $(STAGING_DIR_IMAGE)/grub2/generic-core.img \
at_keyboard biosdisk boot chain configfile ext2 linux ls part_msdos reboot search serial test vga
at_keyboard biosdisk boot chain configfile echo ext2 linux loadenv ls part_msdos reboot search serial test vga
$(STAGING_DIR_HOST)/bin/grub-mkimage \
-d $(PKG_BUILD_DIR)/grub-core \
-p /boot/grub \
-O i386-pc \
-c ./files/grub-early.cfg \
-o $(STAGING_DIR_IMAGE)/grub2/eltorito.img \
at_keyboard biosdisk boot chain configfile iso9660 linux ls part_msdos reboot search serial test vga
at_keyboard biosdisk boot chain configfile echo iso9660 linux loadenv ls part_msdos reboot search serial test vga
$(STAGING_DIR_HOST)/bin/grub-mkimage \
-d $(PKG_BUILD_DIR)/grub-core \
-p /boot/grub \
-O i386-pc \
-c ./files/grub-early.cfg \
-o $(STAGING_DIR_IMAGE)/grub2/legacy-core.img \
biosdisk boot chain configfile ext2 linux ls part_msdos reboot search serial vga
biosdisk boot chain configfile echo ext2 linux loadenv ls part_msdos reboot search serial vga
endef
define Package/grub2-efi/install
@ -161,14 +161,14 @@ define Package/grub2-efi/install
-O $(CONFIG_ARCH)-efi \
-c $(PKG_BUILD_DIR)/grub-early.cfg \
-o $(STAGING_DIR_IMAGE)/grub2/boot$(if $(CONFIG_x86_64),x64,ia32).efi \
at_keyboard boot chain configfile fat linux ls part_gpt reboot serial test efi_gop efi_uga
at_keyboard boot chain configfile echo fat linux loadenv ls part_gpt reboot search serial test efi_gop efi_uga
$(STAGING_DIR_HOST)/bin/grub-mkimage \
-d $(PKG_BUILD_DIR)/grub-core \
-p /boot/grub \
-O $(CONFIG_ARCH)-efi \
-c ./files/grub-early.cfg \
-o $(STAGING_DIR_IMAGE)/grub2/iso-boot$(if $(CONFIG_x86_64),x64,ia32).efi \
boot chain configfile fat iso9660 linux ls part_msdos part_gpt reboot serial test efi_gop efi_uga
boot chain configfile echo fat iso9660 linux loadenv ls part_msdos part_gpt reboot serial test efi_gop efi_uga
endef
define Package/grub2-efi-arm/install

View File

@ -60,6 +60,7 @@ define Build/grub-config
-e 's#@TERMINAL_CONFIG@#$(strip $(GRUB_TERMINAL_CONFIG))#g' \
-e 's#@ROOTPART@#root=$(ROOTPART) rootwait#g' \
-e 's#@GPT_ROOTPART@#root=$(GPT_ROOTPART) rootwait#g' \
-e 's#@BOOTOPTS@#$(BOOTOPTS)#g' \
-e 's#@CMDLINE@#$(BOOTOPTS) $(GRUB_CONSOLE_CMDLINE)#g' \
-e 's#@TIMEOUT@#$(GRUB_TIMEOUT)#g' \
-e 's#@TITLE@#$(GRUB_TITLE)#g' \

View File

@ -3,11 +3,29 @@
set default="0"
set timeout="@TIMEOUT@"
search -l kernel -s root
set rompart="@GPT_ROOTPART@"
if [ ! -e /boot/vmlinuz ]; then
search -l kernel -s root
fi
if [ -e /boot/grub/grubenv ]; then
load_env --file /boot/grub/grubenv
fi
if [ -e /boot/grub/grub.ext.cfg ]; then
source /boot/grub/grub.ext.cfg
fi
menuentry "@TITLE@" {
linux /boot/vmlinuz @GPT_ROOTPART@ @CMDLINE@ noinitrd
linux /boot/vmlinuz $rompart @BOOTOPTS@ noinitrd $cmdline_ext
}
menuentry "@TITLE@ (failsafe)" {
linux /boot/vmlinuz failsafe=true @GPT_ROOTPART@ @CMDLINE@ noinitrd
linux /boot/vmlinuz failsafe=true $rompart @BOOTOPTS@ noinitrd $cmdline_ext
}
menuentry "@TITLE@ (ttyS0)" {
linux /boot/vmlinuz $rompart @CMDLINE@ noinitrd $cmdline_ext
}
menuentry "@TITLE@ (ttyUSB0,115200)" {
linux /boot/vmlinuz $rompart @BOOTOPTS@ console=ttyUSB0,115200 noinitrd $cmdline_ext
}

View File

@ -4,10 +4,25 @@
set default="0"
set timeout="@TIMEOUT@"
set root='(hd0,msdos1)'
set rompart="@ROOTPART@"
if [ -e /boot/grub/grubenv ]; then
load_env --file /boot/grub/grubenv
fi
if [ -e /boot/grub/grub.ext.cfg ]; then
source /boot/grub/grub.ext.cfg
fi
menuentry "@TITLE@" {
linux /boot/vmlinuz @ROOTPART@ @CMDLINE@ noinitrd
linux /boot/vmlinuz $rompart @BOOTOPTS@ noinitrd $cmdline_ext
}
menuentry "@TITLE@ (failsafe)" {
linux /boot/vmlinuz failsafe=true @ROOTPART@ @CMDLINE@ noinitrd
linux /boot/vmlinuz failsafe=true $rompart @BOOTOPTS@ noinitrd $cmdline_ext
}
menuentry "@TITLE@ (ttyS0)" {
linux /boot/vmlinuz $rompart @CMDLINE@ noinitrd $cmdline_ext
}
menuentry "@TITLE@ (ttyUSB0,115200)" {
linux /boot/vmlinuz $rompart @BOOTOPTS@ console=ttyUSB0,115200 noinitrd $cmdline_ext
}