2016-04-28 21:14:42 +00:00
|
|
|
#!/bin/bash
|
|
|
|
# This script will attempt to load one of the NVIDIA driver version which
|
|
|
|
# present in this script, otherwise it will try to fallback to the Generic
|
|
|
|
# OpenGL driver (libgl1-mesa-glx)
|
2016-04-26 23:10:49 +00:00
|
|
|
|
2016-04-28 21:14:42 +00:00
|
|
|
# The list of Nvidia Supported Driver Version which present in this container
|
|
|
|
NSDV="361 340 304"
|
|
|
|
|
|
|
|
# Try to load the Generic OpenGL driver (libgl1-mesa-glx)
|
|
|
|
# Return 0 on success
|
|
|
|
function testGeneric {
|
|
|
|
export LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu/mesa
|
|
|
|
glxinfo >/dev/null 2>&1
|
|
|
|
return $?
|
|
|
|
}
|
|
|
|
|
|
|
|
# Try to load the NVIDIA driver
|
|
|
|
# Return 0 on success
|
|
|
|
function testNvidiaVer {
|
|
|
|
export LD_LIBRARY_PATH=/usr/lib/nvidia-$1
|
|
|
|
[ -e "$LD_LIBRARY_PATH/libGL.so.1" ] && glxinfo >/dev/null 2>&1
|
|
|
|
return $?
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
|
|
|
# Go through all available in this container versions of the NVIDIA drivers and
|
|
|
|
# return the version which worked.
|
|
|
|
# If none of the NVIDIA drivers worked, then try to load the Generic OpenGL
|
|
|
|
# driver.
|
|
|
|
#
|
|
|
|
# Return 0 on success
|
|
|
|
# Return 1 if none of the graphic drivers worked, including the Generic OpenGL
|
|
|
|
#
|
|
|
|
function detectNvidiaDriver {
|
|
|
|
echo "Attempting to load one of the supported NVIDIA drivers: "
|
|
|
|
for ver in $NSDV; do
|
|
|
|
echo -n " Trying to load NVIDIA driver version: $ver ... "
|
|
|
|
testNvidiaVer $ver
|
|
|
|
RC=$?
|
|
|
|
if [ $RC -eq 0 ]; then
|
|
|
|
echo "SUCCESS"
|
|
|
|
return $ver
|
|
|
|
else
|
|
|
|
echo "FAILURE"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
echo "Attempting to load the Generic OpenGL driver ..."
|
|
|
|
testGeneric
|
|
|
|
RC=$?
|
|
|
|
return $RC
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
|
|
|
# START
|
|
|
|
#
|
|
|
|
detectNvidiaDriver
|
|
|
|
RC=$?
|
|
|
|
if [ $RC -eq 0 ]; then
|
|
|
|
echo "NVIDIA drivers could not be loaded."
|
|
|
|
echo "Generic OpenGL driver will be used"
|
|
|
|
elif [ $RC -eq 1 ]; then
|
|
|
|
echo "None of the supported NVIDIA drivers worked :/"
|
|
|
|
echo "Please try installing one of the supported NVIDIA drivers"
|
|
|
|
echo "Supported NVIDIA driver version are: $NSDV"
|
|
|
|
fi
|
|
|
|
|
|
|
|
export LD_LIBRARY_PATH
|
|
|
|
echo "LD_LIBRARY_PATH is set to: $LD_LIBRARY_PATH"
|
|
|
|
|
|
|
|
# This script understands the "glxdebug" argument
|
|
|
|
if [ "$1" == "glxdebug" ]; then
|
|
|
|
linux32 glxgears -info
|
|
|
|
else
|
|
|
|
linux32 steam $@
|
|
|
|
fi
|