4

Background: I have been able to build and run ROS kinetic and ROS2 eloquent containers in my Raspberry Pi4 in the past.

I am trying to build and run ROS noetic. However I am getting an error. To show this I do the most simple things

docker pull ros:noetic

then I do

docker image ls

and I can see that the image is there

but when I do

docker run -it ros:noetic

I get

Fatal Python error: pyinit_main: can't initialize time
Python runtime state: core initialized
PermissionError: [Errno 1] Operation not permitted

Current thread 0xb6ff1460 (most recent call first):
<no Python frame>

I wonder what is happening and how to solve this

My suspicion is that since noetic is using Python 3 and not 2, something is failing due to versions

Comments: I know that ROS kinetic uses python 2 but I assumed ROS2 eloquent used Python 3! Now I found that it uses python 2 too!

MORE Information:

I have been able to build and run ROS noetic containers in my Ubuntu desktop machine. So I imagine it is a raspberry pi problem. However it seems that it is possible to install noetic natively on RPi, so I wonder if it is a problem with the Noetic Docker image...

4 Answers 4

7

I had the exact same issue and the following workaround worked:

docker run --privileged

Docker documentation on --privileged switch

Sign up to request clarification or add additional context in comments.

1 Comment

this removes any notion of security from running in a container. Use the answer above about upgrading libseccomp2
3

Next commands on host machine, helped me out:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC 648ACFD622F3D138
echo "deb http://deb.debian.org/debian buster-backports main" | sudo tee -a /etc/apt/sources.list.d/buster-backports.list
sudo apt update
sudo apt install -t buster-backports libseccomp2 

1 Comment

This did the trick for me as well. But could you please write 2-3 lines what this exactly does and why it fixes the permissions :) ?
0

It's not a docker issue, since it works if you do that in another machine. It's an issue related to how it get time.

Maybe it can helps you:

Fatal Python error: Py_Initialize: can't initialize sys standard streams LookupError: unknown encoding: 65001

Comments

0

After a bunch of googling, and trying different solutions, I installed a 64-bit version of ubuntu onto my rpi4, and it worked perfectly after that. The rpi installer is a quick and easy way to flash the new os: https://www.raspberrypi.com/software/

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.