initrd contamination and explict PATH
cover initrd contamination and explict PATH
I ran into a bit of a nasty issue where EXTRA_IMAGE_FEATURES set in my local.conf was causing core-image-initramfs to pull a bunch of files into my initrd, including bash and a 100+MB vmlinux image. The 85M initrd caused some strange initial boot behavior, and bash in the initrd caused our init scripts to fail as bash has a different default PATH than busybox.
The following patches address these issues.
Live boot tested on 32 bit x86.
The following changes since commit bb4a5c44da23a1bb363f1f081cf1644fd7975957:
linux-yocto: remove emenlow from meta-yocto bbappend (2.6.37 version) (2011-09-15 11:27:22 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib dvhart/initrdscripts
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dvhart/initrdscripts
Darren Hart (2):
Set an explicit path for the initrd scripts Prevent IMAGE_FEATURES from contaminating initrd
.../images/core-image-minimal-initramfs.bb | 3 +++ meta/recipes-core/initrdscripts/files/init-boot.sh | 2 ++ .../initrdscripts/files/init-install.sh | 2 ++ meta/recipes-core/initrdscripts/files/init-live.sh | 4 +++- 4 files changed, 10 insertions(+), 1 deletions(-)
Signature · 1 line
1.7.6
PATCH 1/2 Set an explicit path for the initrd scripts
If we don't set PATH, then the shell will specify one for us. Busybox adds the sbin dirs, but bash does not. I hit an issue where bash (among other things) ended up in my initrd and the boot scripts failed due to a bad default PATH. While that is a separate issue, we should not be at the mercy of the shell's default PATH. Update the initrdscripts to all specify:
PATH=/sbin:/bin:/usr/sbin:/usr/bin
--- meta/recipes-core/initrdscripts/files/init-boot.sh | 2 ++ .../initrdscripts/files/init-install.sh | 2 ++ meta/recipes-core/initrdscripts/files/init-live.sh | 4 +++- 3 files changed, 7 insertions(+), 1 deletions(-)
meta/recipes-core/initrdscripts/files/init-boot.sh +2 -0
@@ -1,5 +1,7 @@ #!/bin/sh +PATH=/sbin:/bin:/usr/sbin:/usr/bin + mkdir /proc mkdir /sys mount -t proc proc /proc
meta/recipes-core/initrdscripts/files/init-install.sh +2 -0
@@ -5,6 +5,8 @@ # install.sh [device_name] [rootfs_name] [video_mode] [vga_mode] # +PATH=/sbin:/bin:/usr/sbin:/usr/bin + # We need 20 Mb for the boot partition boot_size=20
meta/recipes-core/initrdscripts/files/init-live.sh +3 -1
@@ -1,5 +1,7 @@ #!/bin/sh +PATH=/sbin:/bin:/usr/sbin:/usr/bin + ROOT_MOUNT="/rootfs/" ROOT_IMAGE="rootfs.img" MOUNT="/bin/mount"
@@ -12,7 +14,7 @@ early_setup() { mount -t proc proc /proc mount -t sysfs sysfs /sys udevd --daemon - /sbin/udevadm trigger --action=add + udevadm trigger --action=add } read_args() {
Signature · 1 line
1.7.6
PATCH 2/2 Prevent IMAGE_FEATURES from contaminating initrd
In reply to Darren HartSet IMAGE_FEATURES="" in core-image-initramfs to prevent the setting of things like EXTRA_IMAGE_FEATURES in local.conf from contaminating the initrd with features meant for the rootfs.
--- .../images/core-image-minimal-initramfs.bb | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
meta/recipes-core/images/core-image-minimal-initramfs.bb +3 -0
@@ -2,6 +2,9 @@ IMAGE_INSTALL = "initramfs-live-boot initramfs-live-install busybox udev base-passwd" +# Do not pollute the initrd image with rootfs features +IMAGE_FEATURES = "" + export IMAGE_BASENAME = "core-image-minimal-initramfs" IMAGE_LINGUAS = ""
Signature · 1 line
1.7.6
Richard Purdie
AppliedQuoted 22 lines · Darren Hart
I ran into a bit of a nasty issue where
EXTRA_IMAGE_FEATURESset in my local.conf was causing core-image-initramfs to pull a bunch of files into my initrd, including bash and a 100+MB vmlinux image. The 85M initrd caused some strange initial boot behavior, and bash in the initrd caused our init scripts to fail as bash has a different default PATH than busybox.The following patches address these issues.
Live boot tested on 32 bit x86.
The following changes since commit
bb4a5c44da23a1bb363f1f081cf1644fd7975957:linux-yocto: remove emenlow from meta-yocto bbappend (2.6.37 version) (2011-09-15 11:27:22 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contribdvhart/initrdscripts
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dvhart/initrdscriptsDarren Hart (2):
Set an explicit path for the initrd scripts PreventIMAGE_FEATURESfrom contaminating initrd
Quoted 5 lines
.../images/core-image-minimal-initramfs.bb | 3 +++ meta/recipes-core/initrdscripts/files/init-boot.sh | 2 ++ .../initrdscripts/files/init-install.sh | 2 ++ meta/recipes-core/initrdscripts/files/init-live.sh | 4 +++- 4 files changed, 10 insertions(+), 1 deletions(-)
Merged to master but I had to add PR bumps for the script PATH changes.
We shouldn't really be hardcoding the paths but using the expressions ${bindir} etc and making substitutions in the scripts too but we can leave that issue for another time (they already had other hardcoded issues).
Cheers,
Richard
Quoted 29 lines · Richard Purdie
Quoted 22 lines · Darren Hart
I ran into a bit of a nasty issue where
EXTRA_IMAGE_FEATURESset in my local.conf was causing core-image-initramfs to pull a bunch of files into my initrd, including bash and a 100+MB vmlinux image. The 85M initrd caused some strange initial boot behavior, and bash in the initrd caused our init scripts to fail as bash has a different default PATH than busybox.The following patches address these issues.
Live boot tested on 32 bit x86.
The following changes since commit
bb4a5c44da23a1bb363f1f081cf1644fd7975957:linux-yocto: remove emenlow from meta-yocto bbappend (2.6.37 version) (2011-09-15 11:27:22 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contribdvhart/initrdscripts
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dvhart/initrdscriptsDarren Hart (2):
Set an explicit path for the initrd scripts PreventIMAGE_FEATURESfrom contaminating initrdQuoted 5 lines
.../images/core-image-minimal-initramfs.bb | 3 +++ meta/recipes-core/initrdscripts/files/init-boot.sh | 2 ++ .../initrdscripts/files/init-install.sh | 2 ++ meta/recipes-core/initrdscripts/files/init-live.sh | 4 +++- 4 files changed, 10 insertions(+), 1 deletions(-)
Quoted 6 lines
Merged to master but I had to add PR bumps for the script PATH changes.
We shouldn't really be hardcoding the paths but using the expressions ${bindir} etc and making substitutions in the scripts too but we can leave that issue for another time (they already had other hardcoded issues).
ARG... Sorry about missing the PR. As for the ${bindir}, would you prefer a patch post 1.1 ? Or would you take one for 1.1 by EOD Monday?
Signature · 3 lines
Darren Hart Intel Open Source Technology Center Yocto Project - Linux Kernel