diff options
Diffstat (limited to 'nvidia-fbcondecor.install')
-rwxr-xr-x | nvidia-fbcondecor.install | 44 |
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 } |