forked from negativo17/nvidia-driver
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnvidia-generate-tarballs.sh
executable file
·74 lines (57 loc) · 1.71 KB
/
nvidia-generate-tarballs.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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/sh
set -e
VERSION=${VERSION:-390.25}
DL_SITE=${DL_SITE:-http://us.download.nvidia.com/XFree86}
TEMP_UNPACK=${TEMP_UNPACK:-temp}
get_run_file() {
printf "Downloading installer for ${VERSION} ${ARCH}... "
[[ -f $RUN_FILE ]] || wget -c -q ${DL_SITE}/${PLATFORM}/${VERSION}/$RUN_FILE
printf "OK\n"
}
extract_run_file() {
sh ${RUN_FILE} --extract-only --target ${TEMP_UNPACK}
}
create_tarball() {
printf "Creating tarballs for ${VERSION} ${ARCH}... "
KMOD=nvidia-kmod-${VERSION}-${ARCH}
DRIVER=nvidia-driver-${VERSION}-${ARCH}
mkdir ${KMOD} ${DRIVER}
cd ${TEMP_UNPACK}
# Compiled from source
rm -f \
nvidia-xconfig* \
nvidia-persistenced* \
nvidia-modprobe* \
libnvidia-gtk* nvidia-settings* \
libGLESv1_CM.so.* libGLESv2.so.* libGL.la libGLdispatch.so.* libOpenGL.so.* libGLX.so.* libGL.so.1* libEGL.so.1* \
libnvidia-egl-wayland.so.* \
libOpenCL.so.1*
# Non GLVND libraries
rm -f libGL.so.${VERSION} libEGL.so.${VERSION}
# Useless with packages
rm -f nvidia-installer* .manifest make* mk* tls_test*
# useless on modern distributions
rm -f libnvidia-wfb*
# Use correct tls implementation
mv -f tls/libnvidia-tls.so* .
rm -fr tls
mv kernel ../${KMOD}/
mv * ../${DRIVER}/
cd ..
rm -fr ${TEMP_UNPACK}
tar --remove-files -cJf ${KMOD}.tar.xz ${KMOD}
tar --remove-files -cJf ${DRIVER}.tar.xz ${DRIVER}
printf "OK\n"
}
ARCH=i386
PLATFORM=Linux-x86
RUN_FILE=NVIDIA-${PLATFORM}-${VERSION}.run
get_run_file
extract_run_file
create_tarball
ARCH=x86_64
PLATFORM=Linux-${ARCH}
RUN_FILE=NVIDIA-${PLATFORM}-${VERSION}-no-compat32.run
get_run_file
extract_run_file
create_tarball