initramfs: launch rngd depending on kernel version
Use the kernel version to decide to launch the rngd tool for kernels previous to v3.17 https://jira.digi.com/browse/DEL-5362 https://jira.digi.com/browse/DEL-5363 Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
This commit is contained in:
parent
b8d04da22a
commit
d76db197e1
|
|
@ -349,6 +349,19 @@ set_encryption_flag() {
|
||||||
fi
|
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
|
# Main
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Setup the environment.
|
# Setup the environment.
|
||||||
|
|
@ -381,8 +394,9 @@ mkdir -p /var/lock
|
||||||
# Set kernel console loglevel.
|
# Set kernel console loglevel.
|
||||||
sysctl -q -w kernel.printk=4
|
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
|
mkdir -p /var/run && rngd
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,22 @@ error() {
|
||||||
sync && poweroff -f
|
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
|
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
|
||||||
|
|
||||||
mkdir -p /proc /sys /dev
|
mkdir -p /proc /sys /dev
|
||||||
|
|
@ -36,7 +52,10 @@ LOGLEVEL="$(sysctl -n kernel.printk)"
|
||||||
sysctl -q -w kernel.printk=4
|
sysctl -q -w kernel.printk=4
|
||||||
|
|
||||||
# Launch 'rngd' to feed random data to kernel entropy pool
|
# 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
|
for arg in $(cat /proc/cmdline); do
|
||||||
case "${arg}" in
|
case "${arg}" in
|
||||||
|
|
@ -76,7 +95,9 @@ mount ${FSTYPE:+-t ${FSTYPE}} ${root} /newroot
|
||||||
# - restore previous kernel console loglevel
|
# - restore previous kernel console loglevel
|
||||||
# - umount virtual filesystems
|
# - 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}"
|
[ -n "${LOGLEVEL}" ] && sysctl -q -w kernel.printk="${LOGLEVEL}"
|
||||||
mount --move /dev /newroot/dev
|
mount --move /dev /newroot/dev
|
||||||
umount /sys /proc
|
umount /sys /proc
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue