|
|
@@ -1,9 +1,4 @@
|
|
|
#!/bin/bash
|
|
|
-set -e
|
|
|
-
|
|
|
-trap "echo TRAPed signal" HUP INT QUIT KILL TERM
|
|
|
-
|
|
|
-echo "user:$VNCPASS" | sudo chpasswd
|
|
|
|
|
|
# Install NVIDIA drivers, including X graphic drivers by omitting --x-{prefix,module-path,library-path,sysconfig-path}
|
|
|
export DRIVER_VERSION=$(head -n1 </proc/driver/nvidia/version | awk '{ print $8 }')
|
|
|
@@ -25,17 +20,33 @@ sudo ./nvidia-installer --silent \
|
|
|
sudo rm -rf /tmp/NVIDIA*
|
|
|
cd ~
|
|
|
|
|
|
+set -e
|
|
|
+
|
|
|
+trap "echo TRAPed signal" HUP INT QUIT KILL TERM
|
|
|
+
|
|
|
+echo "user:$VNCPASS" | sudo chpasswd
|
|
|
+
|
|
|
sudo sed -i "s/allowed_users=console/allowed_users=anybody/;$ a needs_root_rights=yes" /etc/X11/Xwrapper.config
|
|
|
|
|
|
-if ! sudo nvidia-smi --id="$(echo "$NVIDIA_VISIBLE_DEVICES" | cut -d ',' -f1)" -q | grep -q "Tesla"; then
|
|
|
+# If NVIDIA_VISIBLE_DEVICES is empty or all set GPU_SELECT to first GPU visible
|
|
|
+if [ "$NVIDIA_VISIBLE_DEVICES" == "all" ]; then
|
|
|
+ export GPU_SELECT=$(sudo nvidia-smi --query-gpu=uuid --format=csv | sed -n 2p)
|
|
|
+elif [ -z "$NVIDIA_VISIBLE_DEVICES" ]; then
|
|
|
+ export GPU_SELECT=$(sudo nvidia-smi --query-gpu=uuid --format=csv | sed -n 2p)
|
|
|
+# Else set GPU_SELECT to first GPU in NVIDIA_VISIBLE_DEVICES
|
|
|
+else
|
|
|
+ export GPU_SELECT=$(sudo nvidia-smi --id=$(echo "$NVIDIA_VISIBLE_DEVICES" | cut -d ',' -f1) --query-gpu=uuid --format=csv | sed -n 2p)
|
|
|
+fi
|
|
|
+
|
|
|
+if ! sudo nvidia-smi --id="$GPU_SELECT" -q | grep -q "Tesla"; then
|
|
|
DISPLAYSTRING="--use-display-device=None"
|
|
|
fi
|
|
|
|
|
|
-HEX_ID=$(sudo nvidia-smi --query-gpu=pci.bus_id --id="$(echo "$NVIDIA_VISIBLE_DEVICES" | cut -d ',' -f1)" --format=csv | sed -n 2p)
|
|
|
+HEX_ID=$(sudo nvidia-smi --query-gpu=pci.bus_id --id="$GPU_SELECT" --format=csv | sed -n 2p)
|
|
|
IFS=":." ARR_ID=($HEX_ID)
|
|
|
unset IFS
|
|
|
BUS_ID=PCI:$((16#${ARR_ID[1]})):$((16#${ARR_ID[2]})):$((16#${ARR_ID[3]}))
|
|
|
-sudo nvidia-xconfig --virtual="${SIZEW}x${SIZEH}" --depth="$CDEPTH" --allow-empty-initial-configuration --enable-all-gpus --no-use-edid-dpi --busid="$BUS_ID" --only-one-x-screen "$DISPLAYSTRING"
|
|
|
+sudo nvidia-xconfig --virtual="${SIZEW}x${SIZEH}" --depth="$CDEPTH" --mode="${SIZEW}x${SIZEH}" --allow-empty-initial-configuration --no-use-edid-dpi --busid="$BUS_ID" --only-one-x-screen "$DISPLAYSTRING"
|
|
|
|
|
|
if [ "x$SHARED" == "xTRUE" ]; then
|
|
|
export SHARESTRING="-shared"
|
|
|
@@ -44,7 +55,7 @@ fi
|
|
|
shopt -s extglob
|
|
|
for TTY in /dev/tty+([0-9]); do
|
|
|
if [ -w "$TTY" ]; then
|
|
|
- Xorg tty"$(echo "$TTY" | grep -Eo '[0-9]+$')" :0 &
|
|
|
+ Xorg :0 &
|
|
|
break
|
|
|
fi
|
|
|
done
|
|
|
@@ -57,7 +68,7 @@ sleep 1
|
|
|
sleep 1
|
|
|
|
|
|
export DISPLAY=:0
|
|
|
-UUID_CUT=$(sudo nvidia-smi --query-gpu=uuid --id="$(echo "$NVIDIA_VISIBLE_DEVICES" | cut -d ',' -f1)" --format=csv | sed -n 2p | cut -c 5-)
|
|
|
+UUID_CUT=$(sudo nvidia-smi --query-gpu=uuid --id="$GPU_SELECT" --format=csv | sed -n 2p | cut -c 5-)
|
|
|
if vulkaninfo | grep "$UUID_CUT" | grep -q ^; then
|
|
|
VK=0
|
|
|
while true; do
|
|
|
@@ -69,11 +80,10 @@ if vulkaninfo | grep "$UUID_CUT" | grep -q ^; then
|
|
|
VK=$((VK + 1))
|
|
|
done
|
|
|
else
|
|
|
- echo "Vulkan not available for the current GPU."
|
|
|
+ echo "Vulkan is not available for the current GPU."
|
|
|
fi
|
|
|
|
|
|
mate-session &
|
|
|
-sleep 1
|
|
|
|
|
|
pulseaudio --start
|
|
|
|