[Buildroot] [PATCH 07/12] fs/iso9660: prepare cleaner kernel/initrd path handling

Yann E. MORIN yann.morin.1998 at free.fr
Fri Jun 5 21:43:42 UTC 2015


Thomas, All,

On 2015-06-04 17:05 +0200, Thomas Petazzoni spake thusly:
> The iso9660.mk modifies the menu.lst file from Grub to set the correct
> initrd/kernel image locations. However, with the upcoming support of
> other bootloaders for iso9660 filesystems, we need to modify a bit
> this logic.
> 
> Instead of relying on the specific details of the grub menu.lst
> syntax, we introduce the __KERNEL_PATH__ and __INITRD_PATH__ magic
> keywords, which iso9660.mk will replace by the appropriate
> values. They can therefore be used where needed in grub menu.lst, and
> in similar configuration files of other bootloaders, as will be
> supported in the following commits.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>

Acked-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>

Regards,
Yann E. MORIN.

> ---
>  fs/iso9660/Config.in  |  5 +++++
>  fs/iso9660/iso9660.mk | 11 ++++++++---
>  fs/iso9660/menu.lst   |  4 ++--
>  3 files changed, 15 insertions(+), 5 deletions(-)
> 
> diff --git a/fs/iso9660/Config.in b/fs/iso9660/Config.in
> index 9d00ab8..111158b 100644
> --- a/fs/iso9660/Config.in
> +++ b/fs/iso9660/Config.in
> @@ -13,6 +13,11 @@ if BR2_TARGET_ROOTFS_ISO9660
>  config BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU
>  	string "Boot menu.lst file"
>  	default "fs/iso9660/menu.lst"
> +	help
> +	  Use this option to provide a custom Grub menu.lst file. Note
> +	  that the strings __KERNEL_PATH__ and __INITRD_PATH__ will
> +	  automatically be replaced by the path to the kernel and
> +	  initrd images respectively.
>  
>  endif
>  
> diff --git a/fs/iso9660/iso9660.mk b/fs/iso9660/iso9660.mk
> index 80971d3..2a8a447 100644
> --- a/fs/iso9660/iso9660.mk
> +++ b/fs/iso9660/iso9660.mk
> @@ -22,12 +22,14 @@ endif
>  
>  ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
>  define ROOTFS_ISO9660_INITRD
> -	$(SED) '/initrd/d'  $(ROOTFS_ISO9660_TARGET_DIR)/boot/grub/menu.lst
> +	$(SED) '/__INITRD_PATH__/d'  $(ROOTFS_ISO9660_TARGET_DIR)/boot/grub/menu.lst
>  endef
>  else
>  define ROOTFS_ISO9660_INITRD
>  	$(INSTALL) -D -m 0644 $(BINARIES_DIR)/rootfs.cpio$(ROOTFS_CPIO_COMPRESS_EXT) \
> -		$(ROOTFS_ISO9660_TARGET_DIR)/initrd
> +		$(ROOTFS_ISO9660_TARGET_DIR)/boot/initrd
> +	$(SED) "s%__INITRD_PATH__%/boot/initrd%" \
> +		$(ROOTFS_ISO9660_TARGET_DIR)/boot/grub/menu.lst
>  endef
>  endif
>  
> @@ -36,7 +38,10 @@ define ROOTFS_ISO9660_PREPARATION
>  		$(ROOTFS_ISO9660_TARGET_DIR)/boot/grub/stage2_eltorito
>  	$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_BOOT_MENU) \
>  		$(ROOTFS_ISO9660_TARGET_DIR)/boot/grub/menu.lst
> -	$(INSTALL) -D -m 0644 $(LINUX_IMAGE_PATH) $(ROOTFS_ISO9660_TARGET_DIR)/kernel
> +	$(INSTALL) -D -m 0644 $(LINUX_IMAGE_PATH) \
> +		$(ROOTFS_ISO9660_TARGET_DIR)/boot/$(LINUX_IMAGE_NAME)
> +	$(SED) "s%__KERNEL_PATH__%/boot/$(LINUX_IMAGE_NAME)%" \
> +		$(ROOTFS_ISO9660_TARGET_DIR)/boot/grub/menu.lst
>  	$(ROOTFS_ISO9660_SPLASHSCREEN)
>  	$(ROOTFS_ISO9660_INITRD)
>  endef
> diff --git a/fs/iso9660/menu.lst b/fs/iso9660/menu.lst
> index fd5c76a..8e8309f 100644
> --- a/fs/iso9660/menu.lst
> +++ b/fs/iso9660/menu.lst
> @@ -12,8 +12,8 @@ foreground 	000000
>  background 	cccccc
>  
>  title		Buildroot ISO9660 image
> -kernel		/kernel
> -initrd		/initrd
> +kernel		__KERNEL_PATH__
> +initrd		__INITRD_PATH__
>  
>  title		Hard Drive (first partition)
>  rootnoverify	(hd0)
> -- 
> 2.1.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'



More information about the buildroot mailing list