Last active
March 3, 2021 05:15
-
-
Save suda/7c993ac750e7c774bd50351b9a7b47f8 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Nvidia 430.26 installer, BETA. | |
SERVER="http://159.203.46.64" | |
ETHOSVERSION="1.3.3" | |
VERSION="430.26" | |
function f.checkdpkg(){ | |
DPKGLOCKED=$(lsof /var/lib/dpkg/lock 2>/dev/null | grep -c "/var/lib/dpkg/lock"); WAITCOUNT="0" | |
if [ "$DPKGLOCKED" -ge "1" ];then | |
until [ "$DPKGLOCKED" = "0" ] || [ "$WAITCOUNT" = "60" ]; do | |
DPKGLOCKED=$(lsof /var/lib/dpkg/lock 2>/dev/null | grep -c "/var/lib/dpkg/lock"); ((WAITCOUNT++)) | |
done | |
fi | |
if [ "$WAITCOUNT" -ge "120" ]; then echo "Timed out waiting on dpkg lock to clear."; echo "manually clearing dpkg lock"; rm -f /var/lib/dpkg/lock; fi | |
} | |
echo "Nvidia $VERSION driver package for ethos 1.2.9/1.3.0/1.3.1/1.3.2/1.3.3" | |
if [[ "$EUID" -ne "0" ]]; then | |
echo "This script must be run as root, please rerun as \"sudo install-nv-beta\"" | |
exit 1 | |
fi | |
echo "Downloading necessary packages...." | |
wget $SERVER/packages/$ETHOSVERSION-nvidia-$VERSION/nvidia-$VERSION-files.tar.xz -O /tmp/nvidia-$VERSION-files.tar.xz | |
if [ "$?" != "0" ]; then | |
echo "Failed to download package archive. please check your internet connection and retry." | |
exit 1 | |
fi | |
DIR="/tmp/nvidia-$VERSION-files" | |
cd /tmp | |
tar xf /tmp/nvidia-$VERSION-files.tar.xz | |
if [ "$?" != "0" ]; then | |
echo "Failed to extract package archive. please check your internet connection and retry." | |
exit 1 | |
fi | |
echo "updating package database" | |
f.checkdpkg; /usr/bin/apt-get -qq update | |
f.checkdpkg; /usr/bin/apt-get -f -y install | |
f.checkdpkg; /usr/bin/apt-get -o Dpkg::Options::="--force-confold" -fy install pkg-config | |
PKGLIST=$(dpkg -l | tr -s " " | cut -d" " -f2 | xargs) | |
REMOVED_PACKAGES=( libcuda1-384 nvidia-384 nvidia-384-dev nvidia-libopencl1-384 nvidia-opencl-icd-384 nvidia-settings libxnvctrl0 libxnvctrl-dev libcuda1-390 nvidia-390 nvidia-390-dev nvidia-libopencl1-390 nvidia-opencl-icd-390 nvidia-396 libcuda1-396 nvidia-396-dev nvidia-libopencl1-396 nvidia-opencl-icd-396 nvidia-410 nvidia-410-dev nvidia-libopencl1-410 nvidia-opencl-icd-410 nvidia-415 nvidia-libopencl1-415 nvidia-opencl-icd-415 ) | |
REQUIRED_PACKAGES=( pkg-config ) | |
for i in "${REQUIRED_PACKAGES[@]}"; do | |
if [ $(echo "$PKGLIST" | grep -c "$i") = "0" ]; then PACKAGES_ADD+=( "$i" ); fi | |
done | |
for i in "${REMOVED_PACKAGES[@]}"; do | |
if [ $(echo "$PKGLIST" | grep -c "$i") -gt "0" ]; then PACKAGES_PURGE+=( "$i" ); fi | |
done | |
if [[ -n "${PACKAGES_PURGE[*]}" ]]; then | |
f.checkdpkg; /usr/bin/apt-get -fy purge "${PACKAGES_PURGE[@]}" | |
fi | |
if [[ -n "${PACKAGES_ADD[*]}" ]]; then | |
f.checkdpkg; /usr/bin/apt-get -o Dpkg::Options::="--force-confold" -fy install "${PACKAGES_ADD[@]}" | |
fi | |
f.checkdpkg | |
dpkg -i $DIR/libcuda1-430_430.26-ethos19_amd64.deb $DIR/libxnvctrl0_430.26-ethos19_amd64.deb $DIR/libxnvctrl-dev_430.26-ethos19_amd64.deb $DIR/nvidia-430_430.26-ethos19_amd64.deb $DIR/nvidia-430-dev_430.26-ethos19_amd64.deb $DIR/nvidia-libopencl1-430_430.26-ethos19_amd64.deb $DIR/nvidia-opencl-icd-430_430.26-ethos19_amd64.deb $DIR/nvidia-settings_430.26-ethos19_amd64.deb | |
#killall -9 ethos-smi | |
#cp $DIR/updates/ethos-smi /opt/ethos/bin/ethos-smi | |
#service ethos-gpu-stats-daemon restart | |
#cp $DIR/updates/pci.ids /usr/share/misc/pci.ids | |
ldconfig | |
update-initramfs -u | |
echo "Driver update complete, syncing disks and waiting 30 seconds, then the system will reboot." | |
sync | |
sleep 30 | |
reboot |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment