From be99db321b66ccf64f2db0b95ca13211324430a5 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Fri, 24 May 2013 11:42:36 +0100 Subject: [PATCH] Build all dkms modules near the end of the image build. Work around ordering issues that cause dkms modules to not always be built for all installed kernels, add a post-install.d script to the base element that will force the issue. (Note that any module/kernel pairs with a pre-existing valid module will not be rebuilt, so this should not impact performance unnecessarily) Change-Id: Iccea14c6318014cc7e1fec77e71c14a224f7b76e --- elements/base/post-install.d/99-dkms | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100755 elements/base/post-install.d/99-dkms diff --git a/elements/base/post-install.d/99-dkms b/elements/base/post-install.d/99-dkms new file mode 100755 index 000000000..02ff606fe --- /dev/null +++ b/elements/base/post-install.d/99-dkms @@ -0,0 +1,19 @@ +#!/bin/sh +# 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-||') +__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