diff --git a/source/include/kernel-module.install b/source/include/kernel-module.install index 2ed98e6..4583384 100644 --- a/source/include/kernel-module.install +++ b/source/include/kernel-module.install @@ -1,6 +1,6 @@ post_install() { - depmod -a + depmod -a $_F_kernelmod_uname } post_upgrade() diff --git a/source/include/kernel-module.sh b/source/include/kernel-module.sh index f361517..8c7f978 100644 --- a/source/include/kernel-module.sh +++ b/source/include/kernel-module.sh @@ -50,6 +50,7 @@ Finclude kernel-version # info. # # == OPTIONS +# * _F_kernelmod_scriptlet: the kernel module install script # * _F_kernelmod_name: build module for a custom kernel - built using # _F_kernel_name (optional, defaults to "") # * _F_kernelmod_ver: kernel version (required if _F_kernelmod_name is set) @@ -63,6 +64,9 @@ Finclude kernel-version # * makedepends() # * install ### +if [ -z "$_F_kernelmod_scriptlet" ]; then + _F_kernelmod_scriptlet="src/kernel-module.install" +fi if [ -z "$_F_kernelmod_name" ]; then _F_kernelmod_ver="$_F_kernelver_ver" _F_kernelmod_rel="$_F_kernelver_rel" @@ -72,7 +76,7 @@ _F_kernelmod_pkgver=$_F_kernelmod_ver-$_F_kernelmod_rel _F_kernelmod_dir=/lib/modules/$_F_kernelmod_uname depends=("kernel$_F_kernelmod_name=$_F_kernelmod_pkgver") makedepends=("kernel$_F_kernelmod_name-source=$_F_kernelmod_pkgver") -install=$Fincdir/kernel-module.install +install=$_F_kernelmod_scriptlet ### # == APPENDED VARIABLES @@ -81,6 +85,16 @@ install=$Fincdir/kernel-module.install options=(${options[@]} 'scriptlet') ### +# * Fbuild_kernelmod_scriptlet() generates a scriptlet for the given package from +# the template according to the declared options +### +Fbuild_kernelmod_scriptlet() +{ + cp $Fincdir/kernel-module.install $Fsrcdir + Fsed '$_F_kernelmod_uname' "$_F_kernelmod_uname" ${Fsrcdir%/src}/$_F_kernelmod_scriptlet +} + +### # == PROVIDED FUNCTIONS # * Fcheckkernel: Checks if the version of the running kernel equals to the # installed one, this is required if the crosscompilation is not verified. diff --git a/source/x11-extra/nvidia/FrugalBuild b/source/x11-extra/nvidia/FrugalBuild index 192aaa4..edac691 100644 --- a/source/x11-extra/nvidia/FrugalBuild +++ b/source/x11-extra/nvidia/FrugalBuild @@ -16,10 +16,9 @@ echo "$CARCH" | grep -q 'i.86' && jarch=x86 && sha1=1427c18afd1cae198bee5d321f0a source=(http://us.download.nvidia.com/XFree86/Linux-$jarch/$pkgver/NVIDIA-Linux-$jarch-$pkgver-pkg$pkgnum.run) sha1sums=($sha1) options=('nostrip' 'force') +_F_kernelmod_scriptlet=$pkgname.install Finclude kernel-module depends=(${depends[@]} 'xorg-server>=1.1.0') -unset install -install=$pkgname.install build() { nvdir=NVIDIA-Linux-$jarch-$pkgver-pkg$pkgnum @@ -80,4 +79,6 @@ build() { Fdoc $nvdir/LICENSE Fcpr $nvdir/usr/share/doc/* /usr/share/doc/$pkgname-$pkgver/ Fln "$pkgname-$pkgver" "/usr/share/doc/$pkgname" + + Fbuild_kernelmod_scriptlet } diff --git a/source/x11-extra/nvidia/nvidia.install b/source/x11-extra/nvidia/nvidia.install index cae4fc4..9960800 100644 --- a/source/x11-extra/nvidia/nvidia.install +++ b/source/x11-extra/nvidia/nvidia.install @@ -10,8 +10,10 @@ post_install() { if [ "$exist" -eq 0 ]; then echo nvidia >> /etc/sysconfig/modules fi - /sbin/depmod -a - /sbin/modprobe nvidia + /sbin/depmod -a $_F_kernelmod_uname + if [ "`uname -r`" = "$_F_kernelmod_uname" ]; then + /sbin/modprobe nvidia + fi } post_upgrade() { @@ -37,7 +39,7 @@ pre_remove() { } post_remove() { - depmod -a + depmod -a $_F_kernelmod_uname echo "*** Nvidia driver is removed now. To have a working Xorg Server again run : ***" echo "*** pacman-g2 -S libgl libglx ****" }