diff --git a/recipes-sota/ostree-initrd/files/0001-Remove-log-info-from-init.patch b/recipes-sota/ostree-initrd/files/0001-Remove-log-info-from-init.patch new file mode 100644 index 0000000..a234abc --- /dev/null +++ b/recipes-sota/ostree-initrd/files/0001-Remove-log-info-from-init.patch @@ -0,0 +1,52 @@ +diff --git a/init.sh +index 4818a07..c2b2c64 100644 +--- a/init.sh ++++ b/init.sh +@@ -3,20 +3,17 @@ set -eu + + # ------------------------------------------- + +-log_info() { echo "$0[$$]: $*" >&2; } + log_error() { echo "$0[$$]: ERROR $*" >&2; } + + do_mount_fs() { +- log_info "mounting FS: $*" + [[ -e /proc/filesystems ]] && { grep -q "$1" /proc/filesystems || { log_error "Unknown filesystem"; return 1; } } + [[ -d "$2" ]] || mkdir -p "$2" +- [[ -e /proc/mounts ]] && { grep -q -e "^$1 $2 $1" /proc/mounts && { log_info "$2 ($1) already mounted"; return 0; } } ++ [[ -e /proc/mounts ]] && { grep -q -e "^$1 $2 $1" /proc/mounts && { return 0; } } + mount -t "$1" "$1" "$2" + } + + bail_out() { + log_error "$@" +- log_info "Rebooting..." + #exec reboot -f + exec sh + } +@@ -34,7 +31,6 @@ get_ostree_sysroot() { + + export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/lib/ostree + +-log_info "Starting OSTree initrd script" + + do_mount_fs proc /proc + do_mount_fs sysfs /sys +@@ -58,14 +54,13 @@ ostree_sysroot=$(get_ostree_sysroot) + mount "$ostree_sysroot" /sysroot || { + # The SD card in the R-Car M3 takes a bit of time to come up + # Retry the mount if it fails the first time +- log_info "Mounting $ostree_sysroot failed, waiting 5s for the device to be available..." + sleep 5 + mount "$ostree_sysroot" /sysroot || bail_out "Unable to mount $ostree_sysroot as physical sysroot" + } + +-ostree-prepare-root /sysroot ++ostree-prepare-root /sysroot > /dev/null 2>&1 ++ + +-log_info "Switching to rootfs" + exec switch_root /sysroot /sbin/init + + bail_out "Failed to switch_root to $ostree_sysroot" + diff --git a/recipes-sota/ostree-initrd/files/init.sh b/recipes-sota/ostree-initrd/files/init.sh deleted file mode 100644 index 53e3077..0000000 --- a/recipes-sota/ostree-initrd/files/init.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh -set -eu - -# ------------------------------------------- - -log_error() { echo "$0[$$]: ERROR $*" >&2; } - -do_mount_fs() { - [[ -e /proc/filesystems ]] && { grep -q "$1" /proc/filesystems || { log_error "Unknown filesystem"; return 1; } } - [[ -d "$2" ]] || mkdir -p "$2" - [[ -e /proc/mounts ]] && { grep -q -e "^$1 $2 $1" /proc/mounts && { return 0; } } - mount -t "$1" "$1" "$2" -} - -bail_out() { - log_error "$@" - #exec reboot -f - exec sh -} - -get_ostree_sysroot() { - for opt in $(cat /proc/cmdline); do - arg=$(echo "$opt" | cut -d'=' -f1) - if [ "$arg" == "ostree_root" ]; then - echo "$opt" | cut -d'=' -f2- - return - fi - done - echo "LABEL=otaroot" -} - -export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/lib/ostree - - -do_mount_fs proc /proc -do_mount_fs sysfs /sys -do_mount_fs devpts /dev/pts -do_mount_fs tmpfs /dev/shm -do_mount_fs tmpfs /tmp -do_mount_fs tmpfs /run - -# check if smack is active (and if so, mount smackfs) -grep -q smackfs /proc/filesystems && { - do_mount_fs smackfs /sys/fs/smackfs - - # adjust current label and network label - echo System >/proc/self/attr/current - echo System >/sys/fs/smackfs/ambient -} - -mkdir -p /sysroot -ostree_sysroot=$(get_ostree_sysroot) - -mount "$ostree_sysroot" /sysroot || { - # The SD card in the R-Car M3 takes a bit of time to come up - # Retry the mount if it fails the first time - sleep 5 - mount "$ostree_sysroot" /sysroot || bail_out "Unable to mount $ostree_sysroot as physical sysroot" -} -ostree-prepare-root /sysroot > /dev/null 2>&1 - -# move mounted devices to new root -cd /sysroot -for x in dev proc run; do - mount -o move "/$x" "$x" -done - -# switch to new rootfs -mkdir -p run/initramfs - -pivot_root . run/initramfs || bail_out "pivot_root failed." - -chattr -i / -[[ -e /etc/nmhw-auto-part/data-partition ]] && mkdir -p data && mount $(cat /etc/nmhw-auto-part/data-partition) /data && \ -[[ -e /etc/nmhw-auto-part/overlay ]] && mount -t overlay -o lowerdir=/usr,upperdir=/data/overlay,workdir=/data/.work overlay /usr - -exec chroot . sh -c 'umount /run/initramfs/tmp; umount /run/initramfs/sys; umount /run/initramfs; exec /sbin/init' \ - dev/console 2>&1 diff --git a/recipes-sota/ostree-initrd/ostree-initrd.bbappend b/recipes-sota/ostree-initrd/ostree-initrd.bbappend index 746c3c5..2cc2213 100644 --- a/recipes-sota/ostree-initrd/ostree-initrd.bbappend +++ b/recipes-sota/ostree-initrd/ostree-initrd.bbappend @@ -1,3 +1,3 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/files:" -SRC_URI += "file://init.sh" +SRC_URI += "file://0001-Remove-log-info-from-init.patch"