Patchwork [2/2] grub-2.00: remove our 40_custom

mail settings
Date June 6, 2014, 8:26 a.m.
Message ID <>
Download mbox | patch
Permalink /patch/73387/
State Accepted
Commit e5f6dc48930c8ff35df5cff3550ec2ee86641faf
Headers show

Comments - June 6, 2014, 8:26 a.m.
From: Roy Li <>

We have this in recipes-bsp/grub/grub/40_custom:

menuentry "Linux" {
    set root=(hd0,1)
    linux /vmlinuz root=__ROOTFS__ rw __CONSOLE__ __VIDEO_MODE__ __VGA_MODE__ quiet

These lines are only for initrdscripts/files/, the side
effect is that it would make the target's grub-mkconfig doesn't work
well since the 40_custom will be installed to /etc/grub.d/40_custom, the
grub-mkconfig will run the 40_custom, and there will always be a
'menuentry "Linux"' menu in grub.cfg no matter it is valid or not, we
can do this in rather than grub to fix the problem,
which is also much simpler.

We have done the related work in, now we need remove our own
40_custom, and use grub's own 40_custom which is the right one.

Signed-off-by: Robert Yang <>
Signed-off-by: Roy Li <>
 .../initrdscripts/files/         |   16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)


diff --git a/meta/recipes-core/initrdscripts/files/ b/meta/recipes-core/initrdscripts/files/
index 26e1fb3..116a6b7 100644
--- a/meta/recipes-core/initrdscripts/files/
+++ b/meta/recipes-core/initrdscripts/files/
@@ -167,18 +167,16 @@  umount /src_root
 # Handling of the target boot partition
 mount $bootfs /boot
 echo "Preparing boot partition..."
-if [ -f /etc/grub.d/40_custom ] ; then
+if [ -f /etc/grub.d/00_header ] ; then
     echo "Preparing custom grub2 menu..."
     mkdir -p $(dirname $GRUBCFG)
-    cp /etc/grub.d/40_custom $GRUBCFG
-    sed -i "s@__ROOTFS__@$rootfs $rootwait@g" $GRUBCFG
-    sed -i "s/__VIDEO_MODE__/$3/g" $GRUBCFG
-    sed -i "s/__VGA_MODE__/$4/g" $GRUBCFG
-    sed -i "s/__CONSOLE__/$5/g" $GRUBCFG
-    sed -i "/#/d" $GRUBCFG
-    sed -i "/exec tail/d" $GRUBCFG
+    cat >$GRUBCFG <<_EOF 
+menuentry "Linux" {
+    set root=(hd0,1)
+    linux /vmlinuz root=$rootfs $rootwait rw $5 $3 $4 quiet
     # Add the test label
     echo -ne "\nmenuentry 'test' {\nlinux /test-kernel root=$testfs rw $rootwait quiet\n}\n" >> $GRUBCFG