fix kernel version detection in config/scripts/
authorMichael Prokop <mika@grml.org>
Thu, 27 Oct 2011 21:23:40 +0000 (23:23 +0200)
committerMichael Prokop <mika@grml.org>
Thu, 27 Oct 2011 21:23:43 +0000 (23:23 +0200)
It's bullshit to use /lib/modules for kernel version
detection. If a module is still present but the according
linux-image has been removed the config/scripts will fail
since they run depmod for non-existing kernel versions.
So use /boot/vmlinuz-* instead.

Related to issue1069

etc/grml/fai/config/scripts/GRMLBASE/16-depmod
etc/grml/fai/config/scripts/GRML_SMALL/98-clean-chroot

index 65241f3..fb8578c 100755 (executable)
@@ -21,8 +21,8 @@ if [ -n "${depmod_version:-}" ] ; then
   dpkg --compare-versions "$depmod_version" lt "3.13" && NEEDS_CHECK=true
 fi
 
-for kernel in $(find $target/lib/modules/ -maxdepth 1 -type d -name [0-9]*) ; do
-  kernelversion=$(basename $kernel)
+for kernel in ${target}/boot/vmlinuz-* ; do
+  kernelversion=${kernel##/boot/vmlinuz-}
 
   # provide verbose error message regarding the annoying
   # kernel x.y-grml[64] <-> module-init-tools v3.12 situation
index bfa9db9..223b342 100755 (executable)
@@ -17,8 +17,8 @@ rm -f $target/usr/share/ssh/blacklist.DSA-1024 $target/usr/share/ssh/blacklist.R
 
 # get rid of large kernel modules:
 echo "Removing some very large kernel drivers:"
-for kernel in $(find $target/lib/modules/ -maxdepth 1 -type d -name [0-9]*) ; do
-  kernelversion=$(basename $kernel)
+for kernel in ${target}/boot/vmlinuz-* ; do
+  kernelversion=${kernel##/boot/vmlinuz-}
   if [ -r "${target}/lib/modules/${kernelversion}/kernel/fs/ocfs2/ocfs2.ko" ] ; then
     echo "Removing /lib/modules/${kernelversion}/kernel/fs/ocfs2/ocfs2.ko"
     rm -f "${target}/lib/modules/${kernelversion}/kernel/fs/ocfs2/ocfs2.ko"