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
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# 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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue