67 lines
1.9 KiB
Bash
67 lines
1.9 KiB
Bash
#!/bin/sh
|
|
# This script is called from the postinst of all libgl1-nvidia{,-legacy-*}-glx{,-ia32},
|
|
# xserver-xorg-video-nvidia* and libcuda1{,-ia32} packages.
|
|
set -e
|
|
|
|
. /usr/share/debconf/confmodule
|
|
|
|
package="nvidia-support"
|
|
templates="$(dpkg-query --control-path "$package" templates)"
|
|
if [ -n "$templates" ]; then
|
|
db_x_loadtemplatefile "$templates" "$package"
|
|
fi
|
|
|
|
|
|
# Upstream version of the newly installed driver.
|
|
new_version="$1"
|
|
|
|
test -n "$new_version" || exit 0
|
|
|
|
warn_nvidia=""
|
|
warn_nouveau=""
|
|
|
|
# Is an nvidia module currently loaded?
|
|
if [ -e /proc/driver/nvidia/version ]; then
|
|
|
|
running_version="$(grep NVRM /proc/driver/nvidia/version | awk '{ print $8 }')"
|
|
|
|
if [ -z "$running_version" ]; then
|
|
echo "ERROR: Cannot get version of currently loaded NVIDIA module." >&2
|
|
elif [ "$running_version" != "$new_version" ]; then
|
|
warn_nvidia="1"
|
|
fi
|
|
|
|
fi
|
|
|
|
# Is the nouveau module currently loaded?
|
|
if [ -x /bin/lsmod ] && [ -n "$(lsmod 2>/dev/null | grep nouveau)" ]; then
|
|
warn_nouveau="1"
|
|
fi
|
|
|
|
test -n "$warn_nvidia$warn_nouveau" || exit 0
|
|
|
|
# Allow preseeding to FALSE.
|
|
db_get nvidia-support/check-running-module-version
|
|
test "$RET" = "true" || exit 0
|
|
|
|
# Don't warn multiple times for the same version.
|
|
db_get nvidia-support/last-mismatching-module-version
|
|
test "$RET" != "$new_version" || exit 0
|
|
|
|
if [ "$warn_nvidia" ]; then
|
|
db_subst nvidia-support/warn-mismatching-module-version running-version "$running_version"
|
|
db_subst nvidia-support/warn-mismatching-module-version new-version "$new_version"
|
|
db_fset nvidia-support/warn-mismatching-module-version seen false
|
|
db_input high nvidia-support/warn-mismatching-module-version || true
|
|
fi
|
|
if [ "$warn_nouveau" ]; then
|
|
db_fset nvidia-support/warn-nouveau-module-loaded seen false
|
|
db_input high nvidia-support/warn-nouveau-module-loaded || true
|
|
fi
|
|
db_go || true
|
|
db_set nvidia-support/last-mismatching-module-version "$new_version"
|
|
|
|
|
|
exit 0
|
|
|