Improvements to the init scripts
This commit is contained in:
@@ -34,11 +34,11 @@ function download_driver {
|
||||
chown -R ${USER:?} "${USER_HOME:?}/Downloads"
|
||||
|
||||
if [[ ! -f "${USER_HOME:?}/Downloads/NVIDIA_${nvidia_host_driver_version:?}.run" ]]; then
|
||||
echo "Downloading driver v${nvidia_host_driver_version:?}"
|
||||
print_step_header "Downloading driver v${nvidia_host_driver_version:?}"
|
||||
wget -q --show-progress --progress=bar:force:noscroll \
|
||||
-O /tmp/NVIDIA.run \
|
||||
"http://download.nvidia.com/XFree86/Linux-x86_64/${nvidia_host_driver_version:?}/NVIDIA-Linux-x86_64-${nvidia_host_driver_version:?}.run"
|
||||
[[ $? -gt 0 ]] && echo "Error downloading driver. Exit!" && return 1
|
||||
[[ $? -gt 0 ]] && print_error "Unable to download driver. Exit!" && return 1
|
||||
|
||||
mv /tmp/NVIDIA.run "${USER_HOME:?}/Downloads/NVIDIA_${nvidia_host_driver_version:?}.run"
|
||||
fi
|
||||
@@ -52,7 +52,7 @@ function install_nvidia_driver {
|
||||
download_driver
|
||||
|
||||
if (($(echo $nvidia_host_driver_version | cut -d '.' -f 1) > 500)); then
|
||||
echo "Installing NVIDIA driver v${nvidia_host_driver_version:?} to match what is running on the host"
|
||||
print_step_header "Installing NVIDIA driver v${nvidia_host_driver_version:?} to match what is running on the host"
|
||||
chmod +x "${USER_HOME:?}/Downloads/NVIDIA_${nvidia_host_driver_version:?}.run"
|
||||
"${USER_HOME:?}/Downloads/NVIDIA_${nvidia_host_driver_version:?}.run" \
|
||||
--silent \
|
||||
@@ -73,7 +73,7 @@ function install_nvidia_driver {
|
||||
--no-install-libglvnd \
|
||||
> "${USER_HOME:?}/Downloads/nvidia_gpu_install.log" 2>&1
|
||||
else
|
||||
echo "Installing Legacy NVIDIA driver v${nvidia_host_driver_version:?} to match what is running on the host"
|
||||
print_step_header "Installing Legacy NVIDIA driver v${nvidia_host_driver_version:?} to match what is running on the host"
|
||||
chmod +x "${USER_HOME:?}/Downloads/NVIDIA_${nvidia_host_driver_version:?}.run"
|
||||
"${USER_HOME:?}/Downloads/NVIDIA_${nvidia_host_driver_version:?}.run" \
|
||||
--silent \
|
||||
@@ -104,13 +104,13 @@ function patch_nvidia_driver {
|
||||
(
|
||||
set +e
|
||||
if [ ! -f "${USER_HOME:?}/Downloads/nvidia-patch.${NVIDIA_PATCH_VERSION:?}.sh" ]; then
|
||||
echo "Fetch NVIDIA NVENC patch"
|
||||
print_step_header "Fetch NVIDIA NVENC patch"
|
||||
wget -q --show-progress --progress=bar:force:noscroll \
|
||||
-O "${USER_HOME:?}/Downloads/nvidia-patch.${NVIDIA_PATCH_VERSION:?}.sh" \
|
||||
"https://raw.githubusercontent.com/keylase/nvidia-patch/${NVIDIA_PATCH_VERSION:?}/patch.sh"
|
||||
fi
|
||||
if [ ! -f "${USER_HOME:?}/Downloads/nvidia-patch-fbc.${NVIDIA_PATCH_VERSION:?}.sh" ]; then
|
||||
echo "Fetch NVIDIA NvFBC patch"
|
||||
print_step_header "Fetch NVIDIA NvFBC patch"
|
||||
wget -q --show-progress --progress=bar:force:noscroll \
|
||||
-O "${USER_HOME:?}/Downloads/nvidia-patch-fbc.${NVIDIA_PATCH_VERSION:?}.sh" \
|
||||
"https://raw.githubusercontent.com/keylase/nvidia-patch/${NVIDIA_PATCH_VERSION:?}/patch-fbc.sh"
|
||||
@@ -119,13 +119,13 @@ function patch_nvidia_driver {
|
||||
"${USER_HOME:?}/Downloads/nvidia-patch.${NVIDIA_PATCH_VERSION:?}.sh" \
|
||||
"${USER_HOME:?}/Downloads/nvidia-patch-fbc.${NVIDIA_PATCH_VERSION:?}.sh"
|
||||
|
||||
echo "Install NVIDIA driver patches"
|
||||
print_step_header "Install NVIDIA driver patches"
|
||||
echo "/patched-lib" > /etc/ld.so.conf.d/000-patched-lib.conf
|
||||
mkdir -p "/patched-lib"
|
||||
PATCH_OUTPUT_DIR="/patched-lib" "${USER_HOME:?}/Downloads/nvidia-patch.${NVIDIA_PATCH_VERSION:?}.sh"
|
||||
PATCH_OUTPUT_DIR="/patched-lib" "${USER_HOME:?}/Downloads/nvidia-patch-fbc.${NVIDIA_PATCH_VERSION:?}.sh"
|
||||
|
||||
pushd "/patched-lib" &> /dev/null || { echo "Error: Failed to push directory to /patched-lib"; exit 1; }
|
||||
pushd "/patched-lib" &> /dev/null || { print_error "Failed to push directory to /patched-lib"; exit 1; }
|
||||
for f in * ; do
|
||||
suffix="${f##*.so}"
|
||||
name="$(basename "$f" "$suffix")"
|
||||
@@ -133,21 +133,21 @@ function patch_nvidia_driver {
|
||||
[ -h "$name" ] || ln -sf "$f" "$name.1"
|
||||
done
|
||||
ldconfig
|
||||
popd &> /dev/null || { echo "Error: Failed to pop directory out of /patched-lib"; exit 1; }
|
||||
popd &> /dev/null || { print_error "Failed to pop directory out of /patched-lib"; exit 1; }
|
||||
)
|
||||
else
|
||||
echo "Leaving NVIDIA driver stock without patching"
|
||||
print_step_header "Leaving NVIDIA driver stock without patching"
|
||||
fi
|
||||
}
|
||||
|
||||
function install_deb_mesa {
|
||||
if [ ! -f /tmp/init-mesa-libs-install.log ]; then
|
||||
echo " - Enable i386 arch"
|
||||
print_step_header "Enable i386 arch"
|
||||
dpkg --add-architecture i386
|
||||
echo " - Add Debian SID sources"
|
||||
print_step_header "Add Debian SID sources"
|
||||
echo "deb http://deb.debian.org/debian/ sid main" > /etc/apt/sources.list
|
||||
apt-get update &>> /tmp/init-mesa-libs-install.log
|
||||
echo " - Install mesa vulkan drivers"
|
||||
print_step_header "Install mesa vulkan drivers"
|
||||
echo "" >> /tmp/init-mesa-libs-install.log
|
||||
apt-get install -y --no-install-recommends \
|
||||
libvulkan1 \
|
||||
@@ -159,13 +159,13 @@ function install_deb_mesa {
|
||||
vulkan-tools \
|
||||
&>> /tmp/init-mesa-libs-install.log
|
||||
else
|
||||
echo " - Mesa has already been installed into this container"
|
||||
print_step_header "Mesa has already been installed into this container"
|
||||
fi
|
||||
}
|
||||
|
||||
function install_amd_gpu_driver {
|
||||
echo "Install AMD Mesa driver"
|
||||
if command -v pacman &> /dev/null; then
|
||||
print_step_header "Install AMD Mesa driver"
|
||||
pacman -Syu --noconfirm --needed \
|
||||
lib32-vulkan-icd-loader \
|
||||
lib32-vulkan-radeon \
|
||||
@@ -177,8 +177,8 @@ function install_amd_gpu_driver {
|
||||
}
|
||||
|
||||
function install_intel_gpu_driver {
|
||||
echo "Install Intel Mesa driver"
|
||||
if command -v pacman &> /dev/null; then
|
||||
print_step_header "Install Intel Mesa driver"
|
||||
pacman -Syu --noconfirm --needed \
|
||||
lib32-vulkan-icd-loader \
|
||||
lib32-vulkan-intel \
|
||||
@@ -191,28 +191,28 @@ function install_intel_gpu_driver {
|
||||
|
||||
# Intel Arc GPU or Intel CPU with possible iGPU
|
||||
if [ "${intel_gpu_model:-}X" != "X" ]; then
|
||||
echo "**** Found Intel device '${intel_gpu_model:?}' ****"
|
||||
print_header "Found Intel device '${intel_gpu_model:?}'"
|
||||
install_intel_gpu_driver
|
||||
elif [ "${intel_cpu_model:-}X" != "X" ]; then
|
||||
echo "**** Found Intel device '${intel_cpu_model:?}' ****"
|
||||
print_header "Found Intel device '${intel_cpu_model:?}'"
|
||||
install_intel_gpu_driver
|
||||
else
|
||||
echo "**** No Intel device found ****"
|
||||
print_header "No Intel device found"
|
||||
fi
|
||||
# AMD GPU
|
||||
if [ "${amd_gpu_model:-}X" != "X" ]; then
|
||||
echo "**** Found AMD device '${amd_gpu_model:?}' ****"
|
||||
print_header "Found AMD device '${amd_gpu_model:?}'"
|
||||
install_amd_gpu_driver
|
||||
else
|
||||
echo "**** No AMD device found ****"
|
||||
print_header "No AMD device found"
|
||||
fi
|
||||
# NVIDIA GPU
|
||||
if [ "${nvidia_pci_address:-}X" != "X" ]; then
|
||||
echo "**** Found NVIDIA device '${nvidia_gpu_name:?}' ****"
|
||||
print_header "Found NVIDIA device '${nvidia_gpu_name:?}'"
|
||||
install_nvidia_driver
|
||||
patch_nvidia_driver
|
||||
else
|
||||
echo "**** No NVIDIA device found ****"
|
||||
print_header "No NVIDIA device found"
|
||||
fi
|
||||
|
||||
echo "DONE"
|
||||
echo -e "\e[34mDONE\e[0m"
|
||||
|
||||
Reference in New Issue
Block a user