From 4fdf9162b4f536d51e748efbaedfbd8e519001a8 Mon Sep 17 00:00:00 2001 From: Daniel Martin Date: Mon, 25 May 2026 17:32:39 +1000 Subject: [PATCH] allows nice grub2 menus for selection options --- boot/grub2/grub2.mk | 25 ++++++++++++++++++++++++- package/dejavu/dejavu.mk | 12 ++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/boot/grub2/grub2.mk b/boot/grub2/grub2.mk index fdf274d9aa6..574af61c184 100644 --- a/boot/grub2/grub2.mk +++ b/boot/grub2/grub2.mk @@ -153,15 +153,22 @@ GRUB2_CONF_ENV = \ TARGET_OBJCOPY="$(TARGET_OBJCOPY)" \ TARGET_STRIP="$(TARGET_CROSS)strip" +# batocera - add host-freetype +HOST_GRUB2_DEPENDENCIES += host-freetype + +# batocera - --enable-grub-mkfont HOST_GRUB2_CONF_OPTS = \ --with-platform=none \ - --disable-grub-mkfont \ + --enable-grub-mkfont \ --enable-efiemu=no \ ac_cv_lib_lzma_lzma_code=no \ --enable-device-mapper=no \ --enable-libzfs=no \ --disable-werror +# batocera - add dejavu dependency +GRUB2_DEPENDENCIES += dejavu + define GRUB2_CONFIGURE_CMDS $(foreach tuple, $(GRUB2_TUPLES-y), \ @$(call MESSAGE,Configuring $(tuple)) @@ -193,6 +200,7 @@ define GRUB2_BUILD_CMDS ) endef +# batocera - add manual font build & automatic grubenv creation define GRUB2_INSTALL_IMAGES_CMDS $(foreach tuple, $(GRUB2_TUPLES-y), \ @$(call MESSAGE,Installing $(tuple) to images directory) @@ -211,6 +219,21 @@ define GRUB2_INSTALL_IMAGES_CMDS $(BINARIES_DIR)/grub-eltorito.img ) \ ) + @$(call MESSAGE,Manually compiling dejavu-mono.pf2 font) + $(HOST_DIR)/bin/grub-mkfont -s 28 -o $(@D)/dejavu-mono.pf2 \ + $(STAGING_DIR)/usr/share/fonts/dejavu/DejaVuSansMono.ttf + @$(call MESSAGE,Creating blank grubenv environment block) + $(HOST_DIR)/bin/grub-editenv $(@D)/grubenv create + if [ -d $(BINARIES_DIR)/efi-part ]; then \ + mkdir -p $(BINARIES_DIR)/efi-part/EFI/BOOT && \ + cp $(@D)/dejavu-mono.pf2 $(BINARIES_DIR)/efi-part/EFI/BOOT/dejavu-mono.pf2 && \ + cp $(@D)/grubenv $(BINARIES_DIR)/efi-part/EFI/BOOT/grubenv; \ + fi + if [ -d $(BINARIES_DIR)/boot-part ]; then \ + mkdir -p $(BINARIES_DIR)/boot-part/grub && \ + cp $(@D)/dejavu-mono.pf2 $(BINARIES_DIR)/boot-part/grub/dejavu-mono.pf2 && \ + cp $(@D)/grubenv $(BINARIES_DIR)/boot-part/grub/grubenv; \ + fi endef ifeq ($(BR2_TARGET_GRUB2_INSTALL_TOOLS),y) diff --git a/package/dejavu/dejavu.mk b/package/dejavu/dejavu.mk index 9b57f0992ef..0c1e1a7d27b 100644 --- a/package/dejavu/dejavu.mk +++ b/package/dejavu/dejavu.mk @@ -9,6 +9,9 @@ DEJAVU_SITE = https://sourceforge.net/projects/dejavu/files/dejavu/$(DEJAVU_VERS DEJAVU_SOURCE = dejavu-fonts-ttf-$(DEJAVU_VERSION).tar.bz2 DEJAVU_LICENSE_FILES = LICENSE +# batocera - install staging +DEJAVU_INSTALL_STAGING = YES + DEJAVU_FONTS_INSTALL = DEJAVU_FONTCONFIG_CONF_INSTALL = @@ -50,6 +53,15 @@ define DEJAVU_FONTCONFIG_CONF_INSTALL_CMDS endef endif +# batocera - staging +define DEJAVU_INSTALL_STAGING_CMDS + mkdir -p $(STAGING_DIR)/usr/share/fonts/dejavu/ + for i in $(DEJAVU_FONTS_INSTALL) ; do \ + $(INSTALL) -m 0644 $(@D)/ttf/$$i \ + $(STAGING_DIR)/usr/share/fonts/dejavu/ || exit 1 ; \ + done +endef + define DEJAVU_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/share/fonts/dejavu/ for i in $(DEJAVU_FONTS_INSTALL) ; do \