-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhwaccel-drivers.sh
executable file
·45 lines (41 loc) · 1.58 KB
/
hwaccel-drivers.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/env bash
#
# Installs drivers/libraries for hardware acceleration based on what is installed on the host.
#
set -e
APT_UPDATED=
if [ -s '/sys/module/nvidia/version' ]; then
NV_VERSION="$(</sys/module/nvidia/version)"
NV_MAJOR_VER="${NV_VERSION/.*/}"
NV_PKG_SUFFIX="-server"
NV_PKG_INSTALL=()
for NV_PKG in nvidia-headless-no-dkms nvidia-utils libnvidia-decode libnvidia-encode; do
if ! apt list --installed "${NV_PKG}-${NV_MAJOR_VER}${NV_PKG_SUFFIX}" 2>/dev/null | grep -q "${NV_VERSION}"; then
if [[ -z "${APT_UPDATED}" ]]; then
apt-get update
APT_UPDATED=1
fi
NV_PKG_VERSION="$(apt list -a "${NV_PKG}-${NV_MAJOR_VER}${NV_PKG_SUFFIX}" 2>/dev/null | grep -F "${NV_VERSION}" | head -n 1 | tr -s '[:space:]' | cut -d ' ' -f 2)"
if [ -n "${NV_PKG_VERSION}" ]; then
NV_PKG_INSTALL+=("${NV_PKG}-${NV_MAJOR_VER}${NV_PKG_SUFFIX}=${NV_PKG_VERSION}")
else
NV_PKG_VERSION="$(apt list -a "${NV_PKG}-${NV_MAJOR_VER}" 2>/dev/null | grep -F "${NV_VERSION}" | head -n 1 | tr -s '[:space:]' | cut -d ' ' -f 2)"
if [ -n "${NV_PKG_VERSION}" ]; then
NV_PKG_INSTALL+=("${NV_PKG}-${NV_MAJOR_VER}=${NV_PKG_VERSION}")
fi
fi
fi
done
# for SUPPORT_PKG in gpustat; do
# if ! apt list --installed "${SUPPORT_PKG}" 2>/dev/null | grep -q "${SUPPORT_PKG}"; then
# if [[ -z "${APT_UPDATED}" ]]; then
# apt-get update
# APT_UPDATED=1
# fi
# NV_PKG_INSTALL+=("${SUPPORT_PKG}")
# fi
# done
if [ -n "${NV_PKG_INSTALL}" ]; then
apt-get -y install "${NV_PKG_INSTALL[@]}"
fi
fi