Skip to content

Commit 3203205

Browse files
authored
Improve checks for Nvidia libraries
1 parent da4d0ec commit 3203205

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

conty-start.sh

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,9 @@ nvidia_driver_handler () {
422422
rm -rf "${nvidia_drivers_dir}"/nvidia.run "${nvidia_drivers_dir}"/nvidia-driver
423423

424424
if [ -s /usr/lib/libGLX_nvidia.so."${nvidia_driver_version}" ] || \
425-
[ -s /usr/lib/libGL.so."${nvidia_driver_version}" ]; then
425+
[ -s /usr/lib/libGL.so."${nvidia_driver_version}" ] || \
426+
[ -s /usr/lib/libnvidia-glcore.so."${nvidia_driver_version}" ] || \
427+
[ -s /usr/lib/libnvidia-eglcore.so."${nvidia_driver_version}" ]; then
426428
cp /usr/lib/tls/libnvidia-tls.so.* /usr/lib &>/dev/null
427429
cp /usr/lib32/tls/libnvidia-tls.so.* /usr/lib32 &>/dev/null
428430
echo "${nvidia_driver_version}" > "${nvidia_drivers_dir}"/current-nvidia-version
@@ -1203,24 +1205,27 @@ if [ "$(ls "${mount_point}" 2>/dev/null)" ] || launch_wrapper "${mount_command[@
12031205
ldconfig -p > "${nvidia_drivers_dir}"/host_libs
12041206

12051207
if [ -s "${nvidia_drivers_dir}"/host_libs ]; then
1206-
grep -Ei "nvidia|libcuda" "${nvidia_drivers_dir}"/host_libs | cut -d ">" -f 2 >> "${nvidia_drivers_dir}"/host_nvidia_libs
1208+
grep -i "nvidia" "${nvidia_drivers_dir}"/host_libs | cut -d ">" -f 2 >> "${nvidia_drivers_dir}"/host_nvidia_libs
12071209

12081210
if [ -s "${nvidia_drivers_dir}"/host_nvidia_libs ]; then
12091211
echo "Copying Nvidia libraries from the host system, please wait..."
12101212

1213+
grep -i "libcuda" "${nvidia_drivers_dir}"/host_libs | cut -d ">" -f 2 >> "${nvidia_drivers_dir}"/host_nvidia_libs
1214+
12111215
for f in $(grep "libnv" "${nvidia_drivers_dir}"/host_libs | cut -d ">" -f 2); do
12121216
if strings "${f}" | grep -qi -m 1 "nvidia" &>/dev/null; then
12131217
echo "${f}" >> "${nvidia_drivers_dir}"/host_nvidia_libs
12141218
fi
12151219
done
12161220

1221+
nvidia_lib_copied=0
12171222
for f in $(cat "${nvidia_drivers_dir}"/host_nvidia_libs); do
12181223
libname="$(basename "${f}")"
12191224

12201225
if file "$(readlink -f "${f}")" | grep "32-bit" &>/dev/null; then
1221-
cp -L "${f}" "${overlayfs_dir}"/merged/usr/lib32/"${libname}"
1226+
cp -L "${f}" "${overlayfs_dir}"/merged/usr/lib32/"${libname}" 2>/dev/null
12221227
else
1223-
cp -L "${f}" "${overlayfs_dir}"/merged/usr/lib/"${libname}"
1228+
cp -L "${f}" "${overlayfs_dir}"/merged/usr/lib/"${libname}" 2>/dev/null && nvidia_lib_copied=1
12241229
fi
12251230
done
12261231

@@ -1248,8 +1253,14 @@ if [ "$(ls "${mount_point}" 2>/dev/null)" ] || launch_wrapper "${mount_command[@
12481253
fi
12491254
done
12501255

1251-
echo "${nvidia_driver_version}" > "${nvidia_drivers_dir}"/current-nvidia-version
1252-
fi
1256+
if [ "${nvidia_lib_copied}" = 1 ]; then
1257+
echo "${nvidia_driver_version}" > "${nvidia_drivers_dir}"/current-nvidia-version
1258+
else
1259+
echo "Failed to copy Nvidia libraries"
1260+
fi
1261+
else
1262+
echo "Nvidia libraries not found on the host system"
1263+
fi
12531264
fi
12541265
fi
12551266

0 commit comments

Comments
 (0)