381ff6ab1d
Fixes problems found by set -eu and pipefail, including: -Many unset variables -Commands that can fail under normal circumstances, which breaks with set -e. This change swallows those expected errors to allow our existing error code to handle them. -The dkms element was not finding Fedora kernel versions correctly. This may be an issue for other distros too, but since Fedora was working fine without this functionality I only changed it to print a warning message rather than failing the build when it happens. -The ramdisk init script will not be set -eu because if it fails the result is a kernel panic, which can be tricky to debug. However, in testing with set -e a few failing commands were found and have been fixed in this patch. Change-Id: I44cf98dfc80cfcaec54b88cc83be80a3dbf2cec3
26 lines
736 B
Bash
Executable file
26 lines
736 B
Bash
Executable file
#!/bin/bash
|
|
# Trigger a run of dkms for all the modules installed
|
|
# to ensure we have valid modules build for all.
|
|
|
|
modules=$(dkms status | tr ',:' ' ' | awk '{ print $1 "/" $2 }')
|
|
kernels=$(ls /usr/src/linux-headers-*-*-* -d | sed -e 's|/usr/src/linux-headers-||' || echo "")
|
|
# NOTE(bnemec): On Fedora, the versions can be found in /usr/src/kernels
|
|
if [ -z "$kernels" ]; then
|
|
kernels=$(ls /usr/src/kernels/* -d | sed -e 's|/usr/src/kernels/||' || echo "")
|
|
fi
|
|
if [ -z "$kernels" ]; then
|
|
echo "Warning: No kernel versions found for DKMS"
|
|
fi
|
|
__ARCH=$ARCH
|
|
unset ARCH
|
|
|
|
for module in $modules ; do
|
|
for kernel in $kernels ; do
|
|
dkms build $module -k $kernel
|
|
dkms install $module -k $kernel
|
|
done
|
|
done
|
|
|
|
ARCH=$__ARCH
|
|
|
|
dkms status
|