Skip to content

Instantly share code, notes, and snippets.

@suda
Last active March 3, 2021 05:15
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save suda/7c993ac750e7c774bd50351b9a7b47f8 to your computer and use it in GitHub Desktop.
Save suda/7c993ac750e7c774bd50351b9a7b47f8 to your computer and use it in GitHub Desktop.
#!/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