summarylogtreecommitdiffstats
path: root/nvidia-fbcondecor.install
diff options
context:
space:
mode:
Diffstat (limited to 'nvidia-fbcondecor.install')
-rwxr-xr-xnvidia-fbcondecor.install44
1 files changed, 37 insertions, 7 deletions
diff --git a/nvidia-fbcondecor.install b/nvidia-fbcondecor.install
index 593e3a520922..acdc6e9954fe 100755
--- a/nvidia-fbcondecor.install
+++ b/nvidia-fbcondecor.install
@@ -1,15 +1,45 @@
+_depmod() {
+ _extramodules='extramodules-4.1-fbcondecor'
+
+ # Update module dependencies
+ depmod $(cat /usr/lib/modules/$_extramodules/version)
+}
+
+_rmmod() {
+ # Try unloading
+ if lsmod | grep -q nvidia; then
+ rmmod nvidia
+ fi
+
+ # What?
+ if [[ $? != 0 ]]; then
+ # X running?
+ if pidof Xorg >/dev/null; then
+ echo ":: Please reboot or exit X first."
+ fi
+ fi
+}
+
post_install() {
- EXTRAMODULES='extramodules-4.0-fbcondecor'
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
- echo 'In order to use nvidia module, reboot the system.'
+ _depmod
+
+ # X running?
+ if pidof Xorg >/dev/null; then
+ echo ":: Please reboot or exit X to unload the current module."
+ fi
}
post_upgrade() {
- EXTRAMODULES='extramodules-4.0-fbcondecor'
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
+ _depmod
+
+ # Not rebuilding?
+ if (( $(vercmp $1 $2) != 0 )); then
+ _rmmod
+ fi
}
post_remove() {
- EXTRAMODULES='extramodules-4.0-fbcondecor'
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
+ _depmod
+
+ _rmmod
}