# Based on l4t-base image Dockerfiles but without copying cuda...and rather use the packages # Starting with Jetpack 4.4 the ccp (compatibility checking packge) is included # in l4t-core --> previously we could install a dummy package providing the ccp package to disable it. # Now as it seems we can provide a file that disables compatiblity checking #TODO: It would be nicer to run a compatiblity check on container start or create # Although they may get overriden in a container if using nvidia-runtime due to the container csvs FROM arm64v8/ubuntu:18.04 ARG RELEASE=r32.4 ARG CUDA=10.2 ARG PLATFORM=t194 ENV DEBIAN_FRONTEND=noninteractive ENV NVIDIA_DRIVER_CAPABILITIES=all ENV NVIDIA_VISIBLE_DEVICES=all ENV PATH=/usr/local/cuda-$CUDA/bin:/usr/local/cuda/bin:${PATH} COPY jetson-ota-public.key /etc/jetson-ota-public.key RUN apt-get update && apt-get install --no-install-recommends -y ca-certificates gnupg lsb-release && \ apt-key add /etc/jetson-ota-public.key && apt-get clean && rm -rf /var/lib/apt/lists/* #we could also install the apt-source pacakge (but we need those repos to install it anyway) RUN echo "deb https://repo.download.nvidia.com/jetson/common $RELEASE main" >> /etc/apt/sources.list.d/nvidia-l4t-apt-source.list && \ echo "deb https://repo.download.nvidia.com/jetson/$PLATFORM $RELEASE main" >> /etc/apt/sources.list.d/nvidia-l4t-apt-source.list && \ apt-get update && apt-get install -qq -y --no-install-recommends \ bc \ bzip2 \ can-utils \ freeglut3-dev \ gstreamer1.0-alsa \ gstreamer1.0-libav \ gstreamer1.0-plugins-bad \ gstreamer1.0-plugins-base \ gstreamer1.0-plugins-good \ gstreamer1.0-plugins-ugly \ gstreamer1.0-tools \ i2c-tools \ iw \ kbd \ language-pack-en-base \ libapt-inst2.0 \ libcanberra-gtk3-module \ libgles2 \ libglu1-mesa-dev \ libglvnd-dev \ libgtk-3-0 \ libpython2.7 \ libudev1 \ libvulkan1 \ libzmq5 \ mtd-utils \ parted \ pciutils \ python \ python-pexpect \ python3-distutils \ sox \ udev \ vulkan-utils \ wget \ wireless-tools wpasupplicant \ mesa-utils-extra libglfw3-dev libglew-dev libv4l-dev && \ rm -rf /var/lib/apt/lists/* && apt-get clean #disable ccp TODO: keep afterwards? RUN mkdir -p /opt/nvidia/l4t-packages/ && touch /opt/nvidia/l4t-packages/.nv-l4t-disable-boot-fw-update-in-preinstall && \ apt-get update && apt-get install -y --no-install-recommends \ nvidia-l4t-wayland nvidia-l4t-core nvidia-l4t-weston nvidia-l4t-x11 nvidia-l4t-3d-core nvidia-l4t-cuda && \ apt-get clean && rm -rf /var/lib/apt/lists/* && \ rm /opt/nvidia/l4t-packages/.nv-l4t-disable-boot-fw-update-in-preinstall && (rmdir /opt/nvidia/l4t-packages || true) RUN find /usr/lib -name "tegra*" -type d >> /etc/ld.so.conf.d/nvidia-tegra.conf #or install full toolkit if necessary RUN CUDAPKG=$(echo $CUDA | sed 's/\./-/'); \ apt-get update && apt-get install -y --no-install-recommends \ cuda-libraries-$CUDAPKG \ cuda-nvtx-$CUDAPKG \ cuda-libraries-dev-$CUDAPKG \ cuda-minimal-build-$CUDAPKG \ cuda-license-$CUDAPKG \ cuda-command-line-tools-$CUDAPKG && \ apt-get clean && rm -rf /var/lib/apt/lists/* #nvinfer depends on cudnn so it will get installed automatically RUN apt-get update && apt-get install -y --no-install-recommends \ nvidia-l4t-multimedia-utils nvidia-l4t-multimedia nvidia-l4t-gstreamer \ nvidia-l4t-jetson-multimedia-api libnvinfer-plugin-dev libnvinfer-dev && \ apt-get clean && rm -rf /var/lib/apt/lists/*