Can we use ros kinatic on nvidia jetson platfrom? - ros

I am using Ros kinetic. Now I am trying to use this in jetson nano, but jetson jetpack allows ubuntu 18.04, but kinetic allows 16.04.

The officially supported release for Jetson Nano is Ubuntu 18.04 right now. I'm also unaware of any 16.04 image that exists for the Nano. As you stated, you cannot use Kinetic with 18.04, however you can use Melodic; this would be my suggestion.

Jetson Nano supports Ubuntu 18 only. For Ubuntu 18 you can only install ROS Melodic. I am attaching some reference links:
https://forums.developer.nvidia.com/t/install-ubuntu-16-04-system-on-nano/122666
https://forums.developer.nvidia.com/t/installing-ros-on-nano/71845/9
http://wiki.ros.org/Distributions

Related

Vulkan is unable to detect Nvidia GPU from within a docker container when using the Nvidia Container Toolkit

My goal is to be able to run Vulkan application in a docker container using the Nvidia Container Toolkit. Ideally running Ubuntu 22.04 on the host and in the container.
I've created a git repo to allow others to better reproduce this issue: https://github.com/rickyjames35/vulkan_docker_test
The README explains my findings but I will reiterate them here.
For this test I'm running Ubuntu 22.04 on my host as well as in the container FROM ubuntu:22.04. For this test I'm seeing that the only device vulkaninfo is finding is llvmpipe which is a CPU based graphics driver. I'm also seeing that llvmpipe can't render when running vkcube both in the container and on the host for Ubuntu 22.04. Here is the container output for vkcube:
Selected GPU 0: llvmpipe (LLVM 13.0.1, 256 bits), type: 4
Could not find both graphics and present queues
On my host I can tell it to use llvmpipe:
vkcube --gpu_number 1
Selected GPU 1: llvmpipe (LLVM 13.0.1, 256 bits), type: Cpu
Could not find both graphics and present queues
As you can see they have the same error. What's interesting is if I swap the container to FROM ubuntu:20.04 then llvmpipe can render but this is moot since I do not wish to do CPU rendering. The main issue here is that Vulkan is unable to detect my Nvidia GPU from within the container when using the Nvidia Container Toolkit with NVIDIA_DRIVER_CAPABILITIES=all and NVIDIA_VISIBLE_DEVICES=all. I've also tried using nvidia/vulkan. When running vulkaninfo in this container I get:
vulkaninfo
ERROR: [Loader Message] Code 0 : vkCreateInstance: Found no drivers!
Cannot create Vulkan instance.
This problem is often caused by a faulty installation of the Vulkan driver or attempting to use a GPU that does not support Vulkan.
ERROR at /vulkan-sdk/1.3.236.0/source/Vulkan-Tools/vulkaninfo/vulkaninfo.h:674:vkCreateInstance failed with ERROR_INCOMPATIBLE_DRIVER
I'm suspecting this has to to with me running Ubuntu 22.04 on the host although the whole point of docker is the host OS generally should not affect the container.
In the test above I was using nvidia-driver-525 I've tried using different versions of the driver with the same results. At this point I'm not sure if I'm doing something wrong or if Vulkan is not supported in the Nvidia Container Toolkit for Ubuntu 22.04 even though it claims to be.
I had a similar problem when trying to set up a docker container using the nvidia/cuda:12.0.0-devel-ubuntu22.04 image.
I was able to get it to work using the unityci/editor image. This is the docker command I used.
docker run -dit -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix/ -v /dev:/dev --gpus='all,"capabilities=compute,utility,graphics,display"' unityci/editor:ubuntu-2022.2.1f1-base-1.0.1
After setting up the container, I had to apt install vulkan-utils and libnvidia-gl-525 then everything works.
Hope this helps!

containerd.io vs docker-ce-cli vs docker-ce: what are the differences and what does each package do?

I am trying to install docker on my laptop and I find that there are three packages from the repo:
containerd.io
docker-ce-cli
docker-ce
Can anyone explain to me in simple words what the differences are among these packages, what each one of them does, and what part of the docker architecture each corresponds to? Also, can they work independently on each other?
containerd.io : daemon containerd. It works independently on the docker packages, and it is required by the docker packages.
containerd is available as a daemon for Linux and Windows. It manages the complete container lifecycle of its host system, from image transfer and storage to container execution and supervision to low-level storage to network attachments and beyond.
docker-ce-cli : command line interface for docker engine, community edition
docker-ce : docker engine, community edition. Requires docker-ce-cli.

How to install openshift in RHEL 7.6 docker?

I downloaded a rhel 7.6 image from the Red Hat Container Catalog.
I followed this steps https://docs.openshift.com/container-platform/3.5/install_config/install/host_preparation.html
But when I tried this command yum install atomic-openshift-utils, it failed with this error:
No package atomic-openshift-utils available.
I need to install Open Shift Enterprise. How to do it in the docker ?
To install something with yum in a RH image you'll need the container running on a rhel with valid subscription data and the correct repositories configured.
To test openshift enterprise would be better to use rhel vms instead a docker image.
Regards.

Creating container image of old Centos

I need to create Centos 6.9 32bit system image. I found manual how to do that which contains link to script.
I suppose for this reason I need to run Centos 6.9 32bit, install docker in it and then run script.
Trying to install docker in Centos 6.9 and. Found that it is not possible to install on this system according to requarements in manual:
OS requirements
To install Docker CE, you need a maintained version of CentOS 7
How to create container for of old Centos 6.9 ?
There is already an official CentOS 6 32-bit image in Docker Hub, so you might not need to create your own. It can run on an x64 host.
There is no centos:6.9 tag but a quick test of the centos:6 tag shows that it is 6.9 anyway:
$ docker pull i386/centos:6
6: Pulling from i386/centos
6fe27d5f397b: Pull complete
Digest: sha256:af47b24bee01b29f3c86e484b716651f89c93d8ca73d88c1a74019c691e0d1e2
Status: Downloaded newer image for i386/centos:6
$ docker run -it i386/centos:6 bash
[root#508467e5637e /]# cat /etc/redhat-release
CentOS release 6.9 (Final)
Update
I see from your previous question that you had already found the official 32-bit CentOS 6 image but want it to run on a 32-bit host kernel.
According to the docker installation prerequisites, it needs a 64-bit host. Docker does have 32-bit packages but they only contain the docker client and not the daemon.
If you want to run a 32-bit version of the docker-daemon, you could try following this blog post which describes how to build it from source.

Raspberry Pi-Docker Simulation

I have a docker arm ubuntu image and simply want to test if it is running. However, seems like I cannot run the image on normal Desktop environment since the binaries are different for arm than x86_x64. Is there any way I can simulate this testing for ARM without actually getting a raspberry pi?
You can run Raspberry Pi in a VM. You can download a complete package with qemu and the image for Windows. For Ubuntu, you can probably apt-get install qemu qemu-system-arm, download the same package, and then do the same as run.bat but with correct paths for Linux:
qemu-system-arm -M versatilepb -cpu arm1176 -hda 2012-07-15-wheezy-raspbian.img -kernel kernel-qemu -m 192 -append "root=/dev/sda2"

Resources