Slackware – docker + nvidia

TL;DR
1. grab Slackbuild
2. as root:

source /etc/profile.d/go.sh
./docker.SlackBuild
docker run

Mods necessary to jump with the current Slackbuild to a 19.03.5:

version
githash

install -D -m 0755 $(readlink -f bundles/latest/dynbinary-daemon/dockerd) $PKG/usr/bin/dockerd
install -D -m 0755 $(readlink -f bundles/dynbinary-daemon/dockerd) $PKG/usr/bin/dockerd

If you encounter:

...
docker-ce-19.03.5/components/packaging/static/
docker-ce-19.03.5/components/packaging/static/Makefile
docker-ce-19.03.5/components/packaging/static/gen-static-ver
docker-ce-19.03.5/components/packaging/static/hash_files
docker-ce-19.03.5/components/packaging/static/scripts/
docker-ce-19.03.5/components/packaging/static/scripts/build-cli-plugins
docker-ce-19.03.5/components/packaging/systemd/
docker-ce-19.03.5/components/packaging/systemd/docker.service
docker-ce-19.03.5/components/packaging/systemd/docker.socket

Removing bundles/

---> Making bundle: dynbinary (in bundles/dynbinary)
Building: bundles/dynbinary-daemon/dockerd-19.03.5
GOOS="" GOARCH="" GOARM=""
../../build/src/github.com/docker/docker/vendor/github.com/containerd/containerd/plugin/plugin_go18.go:24:2: cannot find package "plugin" in any of:
        /tmp/SBo/docker-ce-19.03.5/build/src/github.com/docker/docker/vendor/plugin (vendor tree)
        /usr/lib64/go1.11.4/go/src/plugin (from $GOROOT)
        /tmp/SBo/docker-ce-19.03.5/build/src/plugin (from $GOPATH)

are you sure you are using a correct Go language?

To use the correct Go load the profile first:

bash-5.0# source /etc/profile.d/go.sh

and then ./docker

Just after installation I got and error:

bash-5.0$ nvidia-container-cli list
nvidia-container-cli: initialization error: cuda error: unknown error

Always just check if the GPU is recognised correctly:

bash-5.0$ nvidia-smi
Mon Jan 13 19:06:33 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.56       Driver Version: 418.56       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 106...  Off  | 00000000:09:00.0  On |                  N/A |
|  0%   39C    P8     7W / 120W |    155MiB /  6078MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1552      G   /usr/libexec/Xorg                             90MiB |
|    0      2101      G   ...uest-channel-token=11770869894647010056    58MiB |
|    0      3439      G   /usr/lib64/firefox/firefox                     1MiB |
|    0      7189      G   /usr/lib64/firefox/firefox                     1MiB |
+-----------------------------------------------------------------------------+

There is already a very friendly issue on github – https://github.com/NVIDIA/libnvidia-container/issues/3

So the workaround should be:

nvidia-container-cli -k -d /dev/tty list

First test:

bash-5.0$ nvidia-container-cli -k -d /dev/tty list

-- WARNING, the following logs are for debugging purposes only --

I0113 18:07:49.545046 10732 nvc.c:281] initializing library context (version=1.0.5, build=13b836390888f7b7c7dca115d16d7e28ab15a836)
I0113 18:07:49.545099 10732 nvc.c:255] using root /
I0113 18:07:49.545110 10732 nvc.c:256] using ldcache /etc/ld.so.cache
I0113 18:07:49.545119 10732 nvc.c:257] using unprivileged user 1000:100
W0113 18:07:49.546423 10733 nvc.c:186] failed to set inheritable capabilities
W0113 18:07:49.546478 10733 nvc.c:187] skipping kernel modules load due to failure
I0113 18:07:49.546718 10734 driver.c:133] starting driver service
I0113 18:07:49.552637 10732 driver.c:233] driver service terminated with signal 15
nvidia-container-cli: initialization error: cuda error: unknown error

Not working because it must be run as ROOT:

bash-5.0$ su
Password: 
bash-5.0# nvidia-container-cli -k -d /dev/tty list

-- WARNING, the following logs are for debugging purposes only --

I0113 18:08:02.527160 10737 nvc.c:281] initializing library context (version=1.0.5, build=13b836390888f7b7c7dca115d16d7e28ab15a836)
I0113 18:08:02.527223 10737 nvc.c:255] using root /
I0113 18:08:02.527232 10737 nvc.c:256] using ldcache /etc/ld.so.cache
I0113 18:08:02.527264 10737 nvc.c:257] using unprivileged user 65534:65534
I0113 18:08:02.528461 10738 nvc.c:191] loading kernel module nvidia
I0113 18:08:02.528769 10738 nvc.c:203] loading kernel module nvidia_uvm
I0113 18:08:02.546766 10738 nvc.c:211] loading kernel module nvidia_modeset
I0113 18:08:02.547172 10748 driver.c:133] starting driver service
I0113 18:08:02.570611 10737 nvc_info.c:437] requesting driver information with ''
I0113 18:08:02.571753 10737 nvc_info.c:151] selecting /usr/lib64/vdpau/libvdpau_nvidia.so.418.56
I0113 18:08:02.573226 10737 nvc_info.c:151] selecting /usr/lib64/libnvoptix.so.418.56
I0113 18:08:02.573285 10737 nvc_info.c:151] selecting /usr/lib64/libnvidia-tls.so.418.56
I0113 18:08:02.574052 10737 nvc_info.c:151] selecting /usr/lib64/libnvidia-rtcore.so.418.56
I0113 18:08:02.574844 10737 nvc_info.c:151] selecting /usr/lib64/libnvidia-ptxjitcompiler.so.418.56
I0113 18:08:02.575457 10737 nvc_info.c:151] selecting /usr/lib64/libnvidia-opticalflow.so.418.56
I0113 18:08:02.576094 10737 nvc_info.c:151] selecting /usr/lib64/libnvidia-opencl.so.418.56
I0113 18:08:02.576139 10737 nvc_info.c:151] selecting /usr/lib64/libnvidia-ml.so.418.56
I0113 18:08:02.576754 10737 nvc_info.c:151] selecting /usr/lib64/libnvidia-ifr.so.418.56
I0113 18:08:02.577564 10737 nvc_info.c:151] selecting /usr/lib64/libnvidia-glvkspirv.so.418.56
I0113 18:08:02.578243 10737 nvc_info.c:151] selecting /usr/lib64/libnvidia-glsi.so.418.56
I0113 18:08:02.578300 10737 nvc_info.c:151] selecting /usr/lib64/libnvidia-glcore.so.418.56
I0113 18:08:02.578896 10737 nvc_info.c:151] selecting /usr/lib64/libnvidia-fbc.so.418.56
I0113 18:08:02.578957 10737 nvc_info.c:151] selecting /usr/lib64/libnvidia-fatbinaryloader.so.418.56
I0113 18:08:02.579617 10737 nvc_info.c:151] selecting /usr/lib64/libnvidia-encode.so.418.56
I0113 18:08:02.580277 10737 nvc_info.c:151] selecting /usr/lib64/libnvidia-eglcore.so.418.56
I0113 18:08:02.580768 10737 nvc_info.c:151] selecting /usr/lib64/libnvidia-compiler.so.418.56
I0113 18:08:02.581414 10737 nvc_info.c:151] selecting /usr/lib64/libnvidia-cfg.so.418.56
I0113 18:08:02.581981 10737 nvc_info.c:151] selecting /usr/lib64/libnvcuvid.so.418.56
I0113 18:08:02.583050 10737 nvc_info.c:151] selecting /usr/lib64/libcuda.so.418.56
I0113 18:08:02.583747 10737 nvc_info.c:151] selecting /usr/lib64/libGLX_nvidia.so.418.56
I0113 18:08:02.584218 10737 nvc_info.c:151] selecting /usr/lib64/libGLESv2_nvidia.so.418.56
I0113 18:08:02.584747 10737 nvc_info.c:151] selecting /usr/lib64/libGLESv1_CM_nvidia.so.418.56
I0113 18:08:02.585198 10737 nvc_info.c:151] selecting /usr/lib64/libEGL_nvidia.so.418.56
W0113 18:08:02.585234 10737 nvc_info.c:306] missing compat32 library libnvidia-ml.so
W0113 18:08:02.585239 10737 nvc_info.c:306] missing compat32 library libnvidia-cfg.so
W0113 18:08:02.585245 10737 nvc_info.c:306] missing compat32 library libcuda.so
W0113 18:08:02.585251 10737 nvc_info.c:306] missing compat32 library libnvidia-opencl.so
W0113 18:08:02.585257 10737 nvc_info.c:306] missing compat32 library libnvidia-ptxjitcompiler.so
W0113 18:08:02.585264 10737 nvc_info.c:306] missing compat32 library libnvidia-fatbinaryloader.so
W0113 18:08:02.585269 10737 nvc_info.c:306] missing compat32 library libnvidia-compiler.so
W0113 18:08:02.585275 10737 nvc_info.c:306] missing compat32 library libvdpau_nvidia.so
W0113 18:08:02.585280 10737 nvc_info.c:306] missing compat32 library libnvidia-encode.so
W0113 18:08:02.585285 10737 nvc_info.c:306] missing compat32 library libnvidia-opticalflow.so
W0113 18:08:02.585291 10737 nvc_info.c:306] missing compat32 library libnvcuvid.so
W0113 18:08:02.585295 10737 nvc_info.c:306] missing compat32 library libnvidia-eglcore.so
W0113 18:08:02.585300 10737 nvc_info.c:306] missing compat32 library libnvidia-glcore.so
W0113 18:08:02.585305 10737 nvc_info.c:306] missing compat32 library libnvidia-tls.so
W0113 18:08:02.585310 10737 nvc_info.c:306] missing compat32 library libnvidia-glsi.so
W0113 18:08:02.585315 10737 nvc_info.c:306] missing compat32 library libnvidia-fbc.so
W0113 18:08:02.585319 10737 nvc_info.c:306] missing compat32 library libnvidia-ifr.so
W0113 18:08:02.585324 10737 nvc_info.c:306] missing compat32 library libnvidia-rtcore.so
W0113 18:08:02.585329 10737 nvc_info.c:306] missing compat32 library libnvoptix.so
W0113 18:08:02.585333 10737 nvc_info.c:306] missing compat32 library libGLX_nvidia.so
W0113 18:08:02.585338 10737 nvc_info.c:306] missing compat32 library libEGL_nvidia.so
W0113 18:08:02.585343 10737 nvc_info.c:306] missing compat32 library libGLESv2_nvidia.so
W0113 18:08:02.585347 10737 nvc_info.c:306] missing compat32 library libGLESv1_CM_nvidia.so
W0113 18:08:02.585351 10737 nvc_info.c:306] missing compat32 library libnvidia-glvkspirv.so
I0113 18:08:02.585602 10737 nvc_info.c:232] selecting /usr/bin/nvidia-smi
I0113 18:08:02.585618 10737 nvc_info.c:232] selecting /usr/bin/nvidia-debugdump
I0113 18:08:02.585632 10737 nvc_info.c:232] selecting /usr/bin/nvidia-persistenced
I0113 18:08:02.585646 10737 nvc_info.c:232] selecting /usr/bin/nvidia-cuda-mps-control
I0113 18:08:02.585660 10737 nvc_info.c:232] selecting /usr/bin/nvidia-cuda-mps-server
I0113 18:08:02.585682 10737 nvc_info.c:369] listing device /dev/nvidiactl
I0113 18:08:02.585688 10737 nvc_info.c:369] listing device /dev/nvidia-uvm
I0113 18:08:02.585695 10737 nvc_info.c:369] listing device /dev/nvidia-uvm-tools
I0113 18:08:02.585701 10737 nvc_info.c:369] listing device /dev/nvidia-modeset
W0113 18:08:02.585721 10737 nvc_info.c:277] missing ipc /var/run/nvidia-persistenced/socket
W0113 18:08:02.585739 10737 nvc_info.c:277] missing ipc /tmp/nvidia-mps
I0113 18:08:02.585744 10737 nvc_info.c:493] requesting device information with ''
I0113 18:08:02.591879 10737 nvc_info.c:523] listing device /dev/nvidia0 (GPU-e192d6ed-e546-7303-8c48-e0e8619d0905 at 00000000:09:00.0)
/dev/nvidiactl
/dev/nvidia-uvm
/dev/nvidia-uvm-tools
/dev/nvidia-modeset
/dev/nvidia0
/usr/bin/nvidia-smi
/usr/bin/nvidia-debugdump
/usr/bin/nvidia-persistenced
/usr/bin/nvidia-cuda-mps-control
/usr/bin/nvidia-cuda-mps-server
/usr/lib64/libnvidia-ml.so.418.56
/usr/lib64/libnvidia-cfg.so.418.56
/usr/lib64/libcuda.so.418.56
/usr/lib64/libnvidia-opencl.so.418.56
/usr/lib64/libnvidia-ptxjitcompiler.so.418.56
/usr/lib64/libnvidia-fatbinaryloader.so.418.56
/usr/lib64/libnvidia-compiler.so.418.56
/usr/lib64/vdpau/libvdpau_nvidia.so.418.56
/usr/lib64/libnvidia-encode.so.418.56
/usr/lib64/libnvidia-opticalflow.so.418.56
/usr/lib64/libnvcuvid.so.418.56
/usr/lib64/libnvidia-eglcore.so.418.56
/usr/lib64/libnvidia-glcore.so.418.56
/usr/lib64/libnvidia-tls.so.418.56
/usr/lib64/libnvidia-glsi.so.418.56
/usr/lib64/libnvidia-fbc.so.418.56
/usr/lib64/libnvidia-ifr.so.418.56
/usr/lib64/libnvidia-rtcore.so.418.56
/usr/lib64/libnvoptix.so.418.56
/usr/lib64/libGLX_nvidia.so.418.56
/usr/lib64/libEGL_nvidia.so.418.56
/usr/lib64/libGLESv2_nvidia.so.418.56
/usr/lib64/libGLESv1_CM_nvidia.so.418.56
/usr/lib64/libnvidia-glvkspirv.so.418.56
I0113 18:08:02.591920 10737 nvc.c:318] shutting down library context
I0113 18:08:02.592367 10748 driver.c:192] terminating driver service
I0113 18:08:02.618151 10737 driver.c:233] driver service terminated successfully
bash-5.0#