diff --git a/meta-digi-dey/recipes-core/recovery/recovery-initramfs/recovery-initramfs-init b/meta-digi-dey/recipes-core/recovery/recovery-initramfs/recovery-initramfs-init index 7e7e2dd8b..a59cb846c 100644 --- a/meta-digi-dey/recipes-core/recovery/recovery-initramfs/recovery-initramfs-init +++ b/meta-digi-dey/recipes-core/recovery/recovery-initramfs/recovery-initramfs-init @@ -349,6 +349,19 @@ set_encryption_flag() { fi } +#------------------------------------------------------------------------------ +# Function - get_kernel_version +# +# Obtain the kernel version and return it in number format +# +# @return - kernel version +#------------------------------------------------------------------------------ +get_kernel_version() { + major="$(uname -r | cut -d'.' -f1)" + minor="$(uname -r | cut -d'.' -f2)" + echo $(((major << 8) + minor)) +} + # Main #------------------------------------------------------------------------------ # Setup the environment. @@ -381,8 +394,9 @@ mkdir -p /var/lock # Set kernel console loglevel. sysctl -q -w kernel.printk=4 -if [ "$(is_nand)" = "no" ]; then - # Launch 'rngd' to feed random data to kernel entropy pool +# Launch 'rngd' to feed random data to kernel entropy pool +# for kernels previous to v3.17 +if [ "$(get_kernel_version)" -lt "$(((3 << 8) + 17))" ]; then mkdir -p /var/run && rngd fi diff --git a/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/ccimx6/trustfence-initramfs-init b/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/ccimx6/trustfence-initramfs-init index d1d352671..d8eb73c0b 100644 --- a/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/ccimx6/trustfence-initramfs-init +++ b/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/ccimx6/trustfence-initramfs-init @@ -24,6 +24,22 @@ error() { sync && poweroff -f } +#------------------------------------------------------------------------------ +# Function - get_kernel_version +# +# Obtain the kernel version and return it in number format +# +# @return - kernel version +#------------------------------------------------------------------------------ +get_kernel_version() { + major="$(uname -r | cut -d'.' -f1)" + minor="$(uname -r | cut -d'.' -f2)" + echo $(((major << 8) + minor)) +} + +# Main +#------------------------------------------------------------------------------ +# Setup the environment. export PATH=/bin:/sbin:/usr/bin:/usr/sbin mkdir -p /proc /sys /dev @@ -36,7 +52,10 @@ LOGLEVEL="$(sysctl -n kernel.printk)" sysctl -q -w kernel.printk=4 # Launch 'rngd' to feed random data to kernel entropy pool -mkdir -p /var/run && rngd +# for kernels previous to v3.17 +if [ "$(get_kernel_version)" -lt "$(((3 << 8) + 17))" ]; then + mkdir -p /var/run && rngd +fi for arg in $(cat /proc/cmdline); do case "${arg}" in @@ -76,7 +95,9 @@ mount ${FSTYPE:+-t ${FSTYPE}} ${root} /newroot # - restore previous kernel console loglevel # - umount virtual filesystems # -pkill -9 rngd +if [ "$(get_kernel_version)" -lt "$(((3 << 8) + 17))" ]; then + pkill -9 rngd +fi [ -n "${LOGLEVEL}" ] && sysctl -q -w kernel.printk="${LOGLEVEL}" mount --move /dev /newroot/dev umount /sys /proc