* [PATCH 0/3] Fixes for grub EFI
@ 2016-04-01 9:14 Robert Yang
2016-04-01 9:14 ` [PATCH 1/3] init-install.sh: fix disk_size Robert Yang
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Robert Yang @ 2016-04-01 9:14 UTC (permalink / raw)
To: openembedded-core
The following changes since commit 322904f62f11e794543362f04212242567c556a0:
selftest/signing: Use packagedata to obtain PR value for signing test (2016-03-31 23:55:13 +0100)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib rbt/efi
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=19f9e2e1bf005d885453ec2d5ead37de78c6bd0c
Robert Yang (3):
init-install.sh: fix disk_size
init-install-efi.sh: remove all root=foo from grub.cfg
grub-efi.bbclass: don't use APPEND
meta/classes/grub-efi.bbclass | 12 ++++++------
.../initrdscripts/files/init-install-efi-testfs.sh | 2 +-
meta/recipes-core/initrdscripts/files/init-install-efi.sh | 4 ++--
meta/recipes-core/initrdscripts/files/init-install.sh | 2 +-
4 files changed, 10 insertions(+), 10 deletions(-)
--
2.8.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/3] init-install.sh: fix disk_size
2016-04-01 9:14 [PATCH 0/3] Fixes for grub EFI Robert Yang
@ 2016-04-01 9:14 ` Robert Yang
2016-04-01 9:14 ` [PATCH 2/3] init-install-efi.sh: remove all root=foo from grub.cfg Robert Yang
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Robert Yang @ 2016-04-01 9:14 UTC (permalink / raw)
To: openembedded-core
It mis-matched "SanDisk" or "Disk Flags" before, which caused unexpected
error.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh | 2 +-
meta/recipes-core/initrdscripts/files/init-install-efi.sh | 2 +-
meta/recipes-core/initrdscripts/files/init-install.sh | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh b/meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh
index 7a0b4d4..b562109 100644
--- a/meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh
+++ b/meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh
@@ -69,7 +69,7 @@ umount /dev/${device}* 2> /dev/null || /bin/true
mkdir -p /tmp
cat /proc/mounts > /etc/mtab
-disk_size=$(parted /dev/${device} unit mb print | grep Disk | cut -d" " -f 3 | sed -e "s/MB//")
+disk_size=$(parted /dev/${device} unit mb print | grep '^Disk .*: .*MB' | cut -d" " -f 3 | sed -e "s/MB//")
testfs_size=$((disk_size*testfs_ratio/100))
rootfs_size=$((disk_size-boot_size-testfs_size))
diff --git a/meta/recipes-core/initrdscripts/files/init-install-efi.sh b/meta/recipes-core/initrdscripts/files/init-install-efi.sh
index 0443a9d..3531158 100644
--- a/meta/recipes-core/initrdscripts/files/init-install-efi.sh
+++ b/meta/recipes-core/initrdscripts/files/init-install-efi.sh
@@ -120,7 +120,7 @@ if [ ! -e /etc/mtab ]; then
cat /proc/mounts > /etc/mtab
fi
-disk_size=$(parted ${device} unit mb print | grep Disk | cut -d" " -f 3 | sed -e "s/MB//")
+disk_size=$(parted ${device} unit mb print | grep '^Disk .*: .*MB' | cut -d" " -f 3 | sed -e "s/MB//")
swap_size=$((disk_size*swap_ratio/100))
rootfs_size=$((disk_size-boot_size-swap_size))
diff --git a/meta/recipes-core/initrdscripts/files/init-install.sh b/meta/recipes-core/initrdscripts/files/init-install.sh
index 1925d90..c5623ee 100644
--- a/meta/recipes-core/initrdscripts/files/init-install.sh
+++ b/meta/recipes-core/initrdscripts/files/init-install.sh
@@ -116,7 +116,7 @@ if [ ! -L /etc/mtab ]; then
cat /proc/mounts > /etc/mtab
fi
-disk_size=$(parted ${device} unit mb print | grep Disk | cut -d" " -f 3 | sed -e "s/MB//")
+disk_size=$(parted ${device} unit mb print | grep '^Disk .*: .*MB' | cut -d" " -f 3 | sed -e "s/MB//")
grub_version=$(grub-install -v|sed 's/.* \([0-9]\).*/\1/')
--
2.8.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/3] init-install-efi.sh: remove all root=foo from grub.cfg
2016-04-01 9:14 [PATCH 0/3] Fixes for grub EFI Robert Yang
2016-04-01 9:14 ` [PATCH 1/3] init-install.sh: fix disk_size Robert Yang
@ 2016-04-01 9:14 ` Robert Yang
2016-04-01 9:14 ` [PATCH 3/3] grub-efi.bbclass: don't use APPEND Robert Yang
2016-04-02 6:28 ` [PATCH 0/3] Fixes for grub EFI Robert Yang
3 siblings, 0 replies; 6+ messages in thread
From: Robert Yang @ 2016-04-01 9:14 UTC (permalink / raw)
To: openembedded-core
There might be more than one root=/dev/foo in the config file which
would cause unepected errros on the installed target, so remove all of
them.
[YOCTO #9354]
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
meta/recipes-core/initrdscripts/files/init-install-efi.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-core/initrdscripts/files/init-install-efi.sh b/meta/recipes-core/initrdscripts/files/init-install-efi.sh
index 3531158..d58826a 100644
--- a/meta/recipes-core/initrdscripts/files/init-install-efi.sh
+++ b/meta/recipes-core/initrdscripts/files/init-install-efi.sh
@@ -217,7 +217,7 @@ if [ -f /run/media/$1/EFI/BOOT/grub.cfg ]; then
# Delete any LABEL= strings
sed -i "s/ LABEL=[^ ]*/ /" $GRUBCFG
# Delete any root= strings
- sed -i "s/ root=[^ ]*/ /" $GRUBCFG
+ sed -i "s/ root=[^ ]*/ /g" $GRUBCFG
# Add the root= and other standard boot options
sed -i "s@linux /vmlinuz *@linux /vmlinuz root=PARTUUID=$root_part_uuid rw $rootwait quiet @" $GRUBCFG
fi
--
2.8.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/3] grub-efi.bbclass: don't use APPEND
2016-04-01 9:14 [PATCH 0/3] Fixes for grub EFI Robert Yang
2016-04-01 9:14 ` [PATCH 1/3] init-install.sh: fix disk_size Robert Yang
2016-04-01 9:14 ` [PATCH 2/3] init-install-efi.sh: remove all root=foo from grub.cfg Robert Yang
@ 2016-04-01 9:14 ` Robert Yang
2016-04-01 10:01 ` Robert Yang
2016-04-02 6:28 ` [PATCH 0/3] Fixes for grub EFI Robert Yang
3 siblings, 1 reply; 6+ messages in thread
From: Robert Yang @ 2016-04-01 9:14 UTC (permalink / raw)
To: openembedded-core
APPEND is a keyword of syslinux, grub should not use it, use GRUB_ROOT
to instead of it.
[YOCTO #9354]
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
meta/classes/grub-efi.bbclass | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/meta/classes/grub-efi.bbclass b/meta/classes/grub-efi.bbclass
index 3d8ff11..f80a3cc 100644
--- a/meta/classes/grub-efi.bbclass
+++ b/meta/classes/grub-efi.bbclass
@@ -11,9 +11,9 @@
# ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional)
# ${GRUB_GFXSERIAL} - set this to 1 to have graphics and serial in the boot menu
# ${LABELS} - a list of targets for the automatic config
-# ${APPEND} - an override list of append strings for each label
# ${GRUB_OPTS} - additional options to add to the config, ';' delimited # (optional)
# ${GRUB_TIMEOUT} - timeout before executing the deault label (optional)
+# ${GRUB_ROOT} - grub's root device.
do_bootimg[depends] += "${MLPREFIX}grub-efi:do_deploy"
do_bootdirectdisk[depends] += "${MLPREFIX}grub-efi:do_deploy"
@@ -26,7 +26,7 @@ GRUB_TIMEOUT ?= "10"
GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
EFIDIR = "/EFI/BOOT"
-APPEND_prepend = " ${ROOT} "
+GRUB_ROOT ?= "${ROOT}"
# Need UUID utility code.
inherit fs-uuid
@@ -131,12 +131,12 @@ python build_efi_cfg() {
lb = "install-efi"
cfgfile.write('linux /vmlinuz LABEL=%s' % (lb))
- append = localdata.getVar('APPEND', True)
+ root = localdata.getVar('GRUB_ROOT', True)
initrd = localdata.getVar('INITRD', True)
- if append:
- append = replace_rootfs_uuid(d, append)
- cfgfile.write('%s' % (append))
+ if root:
+ root = replace_rootfs_uuid(d, root)
+ cfgfile.write(' %s' % (root))
cfgfile.write(' %s' % btype[1])
cfgfile.write('\n')
--
2.8.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] grub-efi.bbclass: don't use APPEND
2016-04-01 9:14 ` [PATCH 3/3] grub-efi.bbclass: don't use APPEND Robert Yang
@ 2016-04-01 10:01 ` Robert Yang
0 siblings, 0 replies; 6+ messages in thread
From: Robert Yang @ 2016-04-01 10:01 UTC (permalink / raw)
To: openembedded-core
For patch 3/3, RP said that changing APPEND may break some other BSP
layers, I will update this patch.
// Robert
On 04/01/2016 05:14 PM, Robert Yang wrote:
> APPEND is a keyword of syslinux, grub should not use it, use GRUB_ROOT
> to instead of it.
>
> [YOCTO #9354]
>
> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> ---
> meta/classes/grub-efi.bbclass | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/meta/classes/grub-efi.bbclass b/meta/classes/grub-efi.bbclass
> index 3d8ff11..f80a3cc 100644
> --- a/meta/classes/grub-efi.bbclass
> +++ b/meta/classes/grub-efi.bbclass
> @@ -11,9 +11,9 @@
> # ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional)
> # ${GRUB_GFXSERIAL} - set this to 1 to have graphics and serial in the boot menu
> # ${LABELS} - a list of targets for the automatic config
> -# ${APPEND} - an override list of append strings for each label
> # ${GRUB_OPTS} - additional options to add to the config, ';' delimited # (optional)
> # ${GRUB_TIMEOUT} - timeout before executing the deault label (optional)
> +# ${GRUB_ROOT} - grub's root device.
>
> do_bootimg[depends] += "${MLPREFIX}grub-efi:do_deploy"
> do_bootdirectdisk[depends] += "${MLPREFIX}grub-efi:do_deploy"
> @@ -26,7 +26,7 @@ GRUB_TIMEOUT ?= "10"
> GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
>
> EFIDIR = "/EFI/BOOT"
> -APPEND_prepend = " ${ROOT} "
> +GRUB_ROOT ?= "${ROOT}"
>
> # Need UUID utility code.
> inherit fs-uuid
> @@ -131,12 +131,12 @@ python build_efi_cfg() {
> lb = "install-efi"
> cfgfile.write('linux /vmlinuz LABEL=%s' % (lb))
>
> - append = localdata.getVar('APPEND', True)
> + root = localdata.getVar('GRUB_ROOT', True)
> initrd = localdata.getVar('INITRD', True)
>
> - if append:
> - append = replace_rootfs_uuid(d, append)
> - cfgfile.write('%s' % (append))
> + if root:
> + root = replace_rootfs_uuid(d, root)
> + cfgfile.write(' %s' % (root))
> cfgfile.write(' %s' % btype[1])
> cfgfile.write('\n')
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/3] Fixes for grub EFI
2016-04-01 9:14 [PATCH 0/3] Fixes for grub EFI Robert Yang
` (2 preceding siblings ...)
2016-04-01 9:14 ` [PATCH 3/3] grub-efi.bbclass: don't use APPEND Robert Yang
@ 2016-04-02 6:28 ` Robert Yang
3 siblings, 0 replies; 6+ messages in thread
From: Robert Yang @ 2016-04-02 6:28 UTC (permalink / raw)
To: openembedded-core
Hello,
I updated patch 3/3 in the repo, now APPEND is stilled kept for
syslinux and grub-efi.
Here are the patches:
git://git.openembedded.org/openembedded-core-contrib rbt/efi
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rbt/efi
Patch 1 and 2 are the same, here is patch 3:
commit 4d56b6768748368a1a792c0d9e29ddfa2f87d2aa
Author: Robert Yang <liezhi.yang@windriver.com>
Date: Fri Apr 1 00:32:55 2016 -0700
grub-efi.bbclass: use GRUB_ROOT rather than APPEND for root device
Use APPEND for grub's root device may cause confusion, for example, when
building efi + pcbios, there maybe be two root=/dev/ram0, one of them
would be carried to the installed target, and the target would fail to
boot. Use GRUB_ROOT to fix the problem, and remove SYSLINUX_ROOT from
APPEND will fix the problem.
[YOCTO #9354]
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
diff --git a/meta/classes/grub-efi.bbclass b/meta/classes/grub-efi.bbclass
index 3d8ff11..4ce3d28 100644
--- a/meta/classes/grub-efi.bbclass
+++ b/meta/classes/grub-efi.bbclass
@@ -14,6 +14,7 @@
# ${APPEND} - an override list of append strings for each label
# ${GRUB_OPTS} - additional options to add to the config, ';' delimited #
(optional)
# ${GRUB_TIMEOUT} - timeout before executing the deault label (optional)
+# ${GRUB_ROOT} - grub's root device.
do_bootimg[depends] += "${MLPREFIX}grub-efi:do_deploy"
do_bootdirectdisk[depends] += "${MLPREFIX}grub-efi:do_deploy"
@@ -26,7 +27,8 @@ GRUB_TIMEOUT ?= "10"
GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
EFIDIR = "/EFI/BOOT"
-APPEND_prepend = " ${ROOT} "
+GRUB_ROOT ?= "${ROOT}"
+APPEND ?= ""
# Need UUID utility code.
inherit fs-uuid
@@ -108,6 +110,10 @@ python build_efi_cfg() {
else:
cfgfile.write('timeout=50\n')
+ root = d.getVar('GRUB_ROOT', True)
+ if not root:
+ raise bb.build.FuncFailed('GRUB_ROOT not defined')
+
if gfxserial == "1":
btypes = [ [ " graphics console", "" ],
[ " serial console", d.getVar('GRUB_SERIAL', True) or "" ] ]
@@ -131,6 +137,8 @@ python build_efi_cfg() {
lb = "install-efi"
cfgfile.write('linux /vmlinuz LABEL=%s' % (lb))
+ cfgfile.write(' %s' % replace_rootfs_uuid(d, root))
+
append = localdata.getVar('APPEND', True)
initrd = localdata.getVar('INITRD', True)
diff --git a/meta/classes/syslinux.bbclass b/meta/classes/syslinux.bbclass
index 7d324c3..defad73 100644
--- a/meta/classes/syslinux.bbclass
+++ b/meta/classes/syslinux.bbclass
@@ -33,7 +33,7 @@ AUTO_SYSLINUXMENU ?= "1"
SYSLINUX_ROOT ?= "${ROOT}"
SYSLINUX_CFG_VM ?= "${S}/syslinux_vm.cfg"
SYSLINUX_CFG_LIVE ?= "${S}/syslinux_live.cfg"
-APPEND_prepend = " ${SYSLINUX_ROOT} "
+APPEND ?= ""
# Need UUID utility code.
inherit fs-uuid
@@ -164,6 +164,10 @@ python build_syslinux_cfg () {
btypes = [ [ "Graphics console ", syslinux_default_console ],
[ "Serial console ", syslinux_serial_tty ] ]
+ root= d.getVar('SYSLINUX_ROOT', True)
+ if not root:
+ raise bb.build.FuncFailed('SYSLINUX_ROOT not defined')
+
for btype in btypes:
cfgfile.write('LABEL %s%s\nKERNEL /vmlinuz\n' % (btype[0], label))
@@ -174,17 +178,15 @@ python build_syslinux_cfg () {
append = localdata.getVar('APPEND', True)
initrd = localdata.getVar('INITRD', True)
- if append:
- cfgfile.write('APPEND ')
+ append = root + " " + append
+ cfgfile.write('APPEND ')
- if initrd:
- cfgfile.write('initrd=/initrd ')
+ if initrd:
+ cfgfile.write('initrd=/initrd ')
- cfgfile.write('LABEL=%s '% (label))
- append = replace_rootfs_uuid(d, append)
- cfgfile.write('%s %s\n' % (append, btype[1]))
- else:
- cfgfile.write('APPEND %s\n' % btype[1])
+ cfgfile.write('LABEL=%s '% (label))
+ append = replace_rootfs_uuid(d, append)
+ cfgfile.write('%s %s\n' % (append, btype[1]))
cfgfile.close()
}
// Robert
On 04/01/2016 05:14 PM, Robert Yang wrote:
> The following changes since commit 322904f62f11e794543362f04212242567c556a0:
>
> selftest/signing: Use packagedata to obtain PR value for signing test (2016-03-31 23:55:13 +0100)
>
> are available in the git repository at:
>
> git://git.openembedded.org/openembedded-core-contrib rbt/efi
> http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=19f9e2e1bf005d885453ec2d5ead37de78c6bd0c
>
> Robert Yang (3):
> init-install.sh: fix disk_size
> init-install-efi.sh: remove all root=foo from grub.cfg
> grub-efi.bbclass: don't use APPEND
>
> meta/classes/grub-efi.bbclass | 12 ++++++------
> .../initrdscripts/files/init-install-efi-testfs.sh | 2 +-
> meta/recipes-core/initrdscripts/files/init-install-efi.sh | 4 ++--
> meta/recipes-core/initrdscripts/files/init-install.sh | 2 +-
> 4 files changed, 10 insertions(+), 10 deletions(-)
>
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-04-02 6:28 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-01 9:14 [PATCH 0/3] Fixes for grub EFI Robert Yang
2016-04-01 9:14 ` [PATCH 1/3] init-install.sh: fix disk_size Robert Yang
2016-04-01 9:14 ` [PATCH 2/3] init-install-efi.sh: remove all root=foo from grub.cfg Robert Yang
2016-04-01 9:14 ` [PATCH 3/3] grub-efi.bbclass: don't use APPEND Robert Yang
2016-04-01 10:01 ` Robert Yang
2016-04-02 6:28 ` [PATCH 0/3] Fixes for grub EFI Robert Yang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.