diff options
Diffstat (limited to 'external/poky/meta/recipes-core/initrdscripts')
8 files changed, 50 insertions, 9 deletions
diff --git a/external/poky/meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh b/external/poky/meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh index 9c4b263d..b351985a 100644 --- a/external/poky/meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh +++ b/external/poky/meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh @@ -27,7 +27,7 @@ do # Try sleeping here to avoid getting kernel messages # obscuring/confusing user sleep 5 - echo "Found drive at /dev/${device}. Do you want to install this image there ? [y/n]" + echo "Found drive at /dev/${device}. Do you want to install this image there? [y/n]" read answer if [ "$answer" = "y" ] ; then break diff --git a/external/poky/meta/recipes-core/initrdscripts/files/init-live.sh b/external/poky/meta/recipes-core/initrdscripts/files/init-live.sh index 65183d7e..b20660b6 100644..100755 --- a/external/poky/meta/recipes-core/initrdscripts/files/init-live.sh +++ b/external/poky/meta/recipes-core/initrdscripts/files/init-live.sh @@ -28,8 +28,7 @@ udev_daemon() { _UDEV_DAEMON=`udev_daemon` early_setup() { - mkdir -p /proc - mkdir -p /sys + mkdir -p /proc /sys /run /var/run mount -t proc proc /proc mount -t sysfs sysfs /sys mount -t devtmpfs none /dev @@ -37,9 +36,6 @@ early_setup() { # support modular kernel modprobe isofs 2> /dev/null - mkdir -p /run - mkdir -p /var/run - $_UDEV_DAEMON --daemon udevadm trigger --action=add } diff --git a/external/poky/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb b/external/poky/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb index 7ae7969f..29ec5ec2 100644 --- a/external/poky/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb +++ b/external/poky/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb @@ -9,8 +9,13 @@ S = "${WORKDIR}" do_install() { install -m 0755 ${WORKDIR}/init-boot.sh ${D}/init + + # Create device nodes expected by some kernels in initramfs + # before even executing /init. + install -d ${D}/dev + mknod -m 622 ${D}/dev/console c 5 1 } inherit allarch -FILES_${PN} += " /init " +FILES_${PN} += "/init /dev/console" diff --git a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/init b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/init index 3c7e0942..c71ce0ce 100755 --- a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/init +++ b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/init @@ -72,6 +72,7 @@ ROOTFS_DIR="/rootfs" # where to do the switch root MODULE_PRE_HOOKS="" # functions to call before running each module MODULE_POST_HOOKS="" # functions to call after running each module MODULES_DIR=/init.d # place to look for modules +EFI_DIR=/sys/firmware/efi # place to store device firmware information # make mount stop complaining about missing /etc/fstab touch /etc/fstab @@ -81,6 +82,10 @@ mkdir -p /proc /sys /run/lock /var/lock mount -t proc proc /proc mount -t sysfs sysfs /sys +if [ -d $EFI_DIR ];then + mount -t efivarfs none /sys/firmware/efi/efivars +fi + # populate bootparam environment for p in `cat /proc/cmdline`; do opt=`echo $p | cut -d'=' -f1` diff --git a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/lvm b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/lvm new file mode 100644 index 00000000..7deeccb9 --- /dev/null +++ b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/lvm @@ -0,0 +1,13 @@ +#!/bin/sh + +lvm_enabled() { + if ! lvscan |grep -i -w "inactive" &>/dev/null;then + return 1 + fi + return 0 +} + +lvm_run() { + lvm pvscan --cache --activate ay + udevadm trigger --action=add +} diff --git a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs index 76fa84d3..748c9391 100644 --- a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs +++ b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs @@ -27,8 +27,18 @@ rootfs_run() { fi if [ "`echo ${bootparam_root} | cut -c1-9`" = "PARTUUID=" ]; then - root_uuid=`echo $bootparam_root | cut -c10-` - bootparam_root="/dev/disk/by-partuuid/$root_uuid" + root_partuuid=`echo $bootparam_root | cut -c10-` + bootparam_root="/dev/disk/by-partuuid/$root_partuuid" + fi + + if [ "`echo ${bootparam_root} | cut -c1-10`" = "PARTLABEL=" ]; then + root_partlabel=`echo $bootparam_root | cut -c11-` + bootparam_root="/dev/disk/by-partlabel/$root_partlabel" + fi + + if [ "`echo ${bootparam_root} | cut -c1-10`" = "PARTLABEL=" ]; then + root_partlabel=`echo $bootparam_root | cut -c11-` + bootparam_root="/dev/disk/by-partlabel/$root_partlabel" fi if [ "`echo ${bootparam_root} | cut -c1-6`" = "LABEL=" ]; then diff --git a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/udev b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/udev index 87551ff4..4898b892 100644 --- a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/udev +++ b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/udev @@ -41,6 +41,9 @@ udev_run() { mkdir -p /run mkdir -p /var/run + # Workaround if console=null, systemd-udevd needs valid stdin, stdout and stderr to work + sh -c "exec 4< /dev/console" || { exec 0> /dev/null; exec 1> /dev/null; exec 2> /dev/null; } + $_UDEV_DAEMON --daemon udevadm trigger --action=add udevadm settle diff --git a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb index 660343ea..c53a0c03 100644 --- a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb +++ b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb @@ -17,6 +17,7 @@ SRC_URI = "file://init \ file://udev \ file://e2fs \ file://debug \ + file://lvm \ " S = "${WORKDIR}" @@ -45,6 +46,9 @@ do_install() { # debug install -m 0755 ${WORKDIR}/debug ${D}/init.d/00-debug + # lvm + install -m 0755 ${WORKDIR}/lvm ${D}/init.d/09-lvm + # Create device nodes expected by some kernels in initramfs # before even executing /init. install -d ${D}/dev @@ -59,6 +63,7 @@ PACKAGES = "${PN}-base \ initramfs-module-nfsrootfs \ initramfs-module-rootfs \ initramfs-module-debug \ + initramfs-module-lvm \ " FILES_${PN}-base = "/init /init.d/99-finish /dev" @@ -98,3 +103,7 @@ FILES_initramfs-module-rootfs = "/init.d/90-rootfs" SUMMARY_initramfs-module-debug = "initramfs dynamic debug support" RDEPENDS_initramfs-module-debug = "${PN}-base" FILES_initramfs-module-debug = "/init.d/00-debug" + +SUMMARY_initramfs-module-lvm = "initramfs lvm rootfs support" +RDEPENDS_initramfs-module-lvm = "${PN}-base" +FILES_initramfs-module-lvm = "/init.d/09-lvm" |