I got Vero 4K for some time now and its great.
Altough there are some things that Im missing from OSMC on RPI2.
The bigest one is docker support.
Docker is not officially supported yet for aarch64 but it can be compiled from source.
Whats blocking me are some missing kernel modules/config.
Bellow Im pasting output of dockers check-config script.
Is it possible in foreseeable future to add those missing parts?
osmc@osmc:~/code$ sudo ./check-config.sh
warning: /proc/config.gz does not exist, searching other paths for kernel config ā¦
info: reading kernel config from /boot/config-3.14.29-8-osmc ā¦
I think aufs or overlay would be nice to have.
But from what I see there are also things missing in other sections.
Bellow I will paste the output only with missing values to be easier to read:
IPVS is only needed for Docker Swarm I believe, which is a little experimental at the moment.
Kernel is patched to 10000
Iāve added AUFS and updated the kernel to include most of the options youāve asked for. Iād appreciate it if you could build and test Docker out now.
Add the following line: deb http://apt.osmc.tv jessie-devel main
Run the following commands to update: sudo apt-get update && sudo apt-get dist-upgrade && reboot
Your system should have have received the update.
Please see if the issue is resolved.
I also recommend you edit /etc/apt/sources.list again and remove the line that you added after updating. This will return you to the normal update channel.
Thanks, I just checked it.
To make it faster I installed ready deb package: docker-hypriot_1.10.3-1_armhf.deb that I was using on RPi.
Only modification on my side was to make it to use aufs instead of overlay.
The result is that docker service started and I was able to execute docker run aarch64/hello-world without any errors.
To fully test if everything works (network etc) I will need some time to prepare new containers. The one that I was using was for armhf and I think I need to change them to aarch64 version.
Yes, you are right.
Previously I tried to run some random hello-world container that was described as armhf and it gave me bad exec format error. I think there was something wrong with this container. When I tried my old containers from rpi they started without any issues.
It looks like everything works for me.
Thanks again for your support.
Just a quick question - if I remove jessie-devel from sources - will I loose your changes on next āmainā OSMC update?
Just wanted to left a note for anyone that will try to setup docker on Vero 4K.
There is no need to compile sources to get latest docker version.
It is possible to use official docker installation script available here: https://get.docker.com/
Until they add support for aarch64 there is only one small hack needed:
In this script find line: architecture=$(uname -m)
and change it to: architecture="armv7l"
sudo docker run armhf/hello-world
osmc@osmc:/usr/share/menu$ sudo docker run armhf/hello-world
Hello from Docker on armhf!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
Good to know. Here the complete log from the systemctl.
root@osmc:/usr/share/menu# systemctl status docker -l
docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled)
Active: active (running) since Sat 2017-10-07 17:20:20 CEST; 3h 43min ago
Docs: https://docs.docker.com
Main PID: 19583 (dockerd)
CGroup: /system.slice/docker.service
|-19583 /usr/bin/dockerd -H fd://
`-19590 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc
Oct 07 17:20:19 osmc dockerd[19583]: , error: exit status 1"
Oct 07 17:20:19 osmc dockerd[19583]: time=ā2017-10-07T17:20:19.856333362+02:00ā level=warning msg=āCould not load necessary modules for IPSEC rules: Running modprobe xfrm_user failed with message: modprobe: WARNING: Module xfrm_user not found., error: exit status 1ā
Oct 07 17:20:19 osmc dockerd[19583]: time=ā2017-10-07T17:20:19.870744107+02:00ā level=info msg=āDefault bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP addressā
Oct 07 17:20:20 osmc dockerd[19583]: time=ā2017-10-07T17:20:20.142142824+02:00ā level=info msg=āLoading containers: done.ā
Oct 07 17:20:20 osmc dockerd[19583]: time=ā2017-10-07T17:20:20.147452732+02:00ā level=warning msg=āCouldnāt run auplink before unmount /var/lib/docker/tmp/docker-aufs-union698455484: exec: "auplink": executable file not found in $PATHā
Oct 07 17:20:20 osmc dockerd[19583]: time=ā2017-10-07T17:20:20.253623777+02:00ā level=info msg=āDocker daemonā commit=afdb6d4 graphdriver(s)=aufs version=17.09.0-ce
Oct 07 17:20:20 osmc dockerd[19583]: time=ā2017-10-07T17:20:20.254136451+02:00ā level=info msg=āDaemon has completed initializationā
Oct 07 17:20:20 osmc dockerd[19583]: time=ā2017-10-07T17:20:20.304331119+02:00ā level=info msg=āAPI listen on /var/run/docker.sockā
Oct 07 17:20:20 osmc systemd[1]: Started Docker Application Container Engine.
Oct 07 17:20:20 osmc systemd[1]: [/lib/systemd/system/docker.service:25] Unknown lvalue āDelegateā in section āServiceā
Oct 07 17:22:08 osmc dockerd[19583]: time=ā2017-10-07T17:22:08.182297640+02:00ā level=warning msg=āCouldnāt run auplink before unmount /var/lib/docker/aufs/mnt/979f90bc1fea2832022e6f39fd7d5fc7de296f9c285663cbaaf73eeda65504ae-init: exec: "auplink": executable file not found in $PATHā
Oct 07 17:22:08 osmc dockerd[19583]: time=ā2017-10-07T17:22:08.506322684+02:00ā level=warning msg=āCouldnāt run auplink before unmount /var/lib/docker/aufs/mnt/979f90bc1fea2832022e6f39fd7d5fc7de296f9c285663cbaaf73eeda65504ae: exec: "auplink": executable file not found in $PATHā
Oct 07 17:22:10 osmc dockerd[19583]: time=ā2017-10-07T17:22:10.843541133+02:00ā level=warning msg=āCouldnāt run auplink before unmount /var/lib/docker/aufs/mnt/979f90bc1fea2832022e6f39fd7d5fc7de296f9c285663cbaaf73eeda65504ae: exec: "auplink": executable file not found in $PATHā
Oct 07 17:32:56 osmc dockerd[19583]: time=ā2017-10-07T17:32:56.789800997+02:00ā level=warning msg=āCouldnāt run auplink before unmount /var/lib/docker/aufs/mnt/63fc19cca16bc18d547d82716428bd2eb84d6aec68ce7d0f42312a2adc1d4927-init: exec: "auplink": executable file not found in $PATHā
Oct 07 17:32:57 osmc dockerd[19583]: time=ā2017-10-07T17:32:57.151532859+02:00ā level=warning msg=āCouldnāt run auplink before unmount /var/lib/docker/aufs/mnt/63fc19cca16bc18d547d82716428bd2eb84d6aec68ce7d0f42312a2adc1d4927: exec: "auplink": executable file not found in $PATHā
Oct 07 17:32:59 osmc dockerd[19583]: time=ā2017-10-07T17:32:59.003504279+02:00ā level=warning msg=āCouldnāt run auplink before unmount /var/lib/docker/aufs/mnt/63fc19cca16bc18d547d82716428bd2eb84d6aec68ce7d0f42312a2adc1d4927: exec: "auplink": executable file not found in $PATHā
Oct 07 17:48:34 osmc dockerd[19583]: time=ā2017-10-07T17:48:34.823929119+02:00ā level=warning msg=āCouldnāt run auplink before unmount /var/lib/docker/aufs/mnt/4aada9c24b2cac804183494023d8915b26836c0d2331aa56db1c1ee5c77be5fd-init: exec: "auplink": executable file not found in $PATHā
Oct 07 17:48:35 osmc dockerd[19583]: time=ā2017-10-07T17:48:35.571962486+02:00ā level=warning msg=āCouldnāt run auplink before unmount /var/lib/docker/aufs/mnt/4aada9c24b2cac804183494023d8915b26836c0d2331aa56db1c1ee5c77be5fd: exec: "auplink": executable file not found in $PATHā
Oct 07 17:48:45 osmc dockerd[19583]: time=ā2017-10-07T17:48:45.303504222+02:00ā level=warning msg=āCouldnāt run auplink before unmount /var/lib/docker/aufs/mnt/4aada9c24b2cac804183494023d8915b26836c0d2331aa56db1c1ee5c77be5fd: exec: "auplink": executable file not found in $PATHā
Oct 07 17:55:57 osmc dockerd[19583]: time=ā2017-10-07T17:55:57.533646091+02:00ā level=error msg=āError setting up exec command in container 91eadf060eebb2401b68240cb4c33468262183939fb44499a023d2fb391fa1b5: Container 91eadf060eebb2401b68240cb4c33468262183939fb44499a023d2fb391fa1b5 is not runningā
Oct 07 17:56:10 osmc dockerd[19583]: time=ā2017-10-07T17:56:10.553691565+02:00ā level=warning msg=āCouldnāt run auplink before unmount /var/lib/docker/aufs/mnt/4aada9c24b2cac804183494023d8915b26836c0d2331aa56db1c1ee5c77be5fd: exec: "auplink": executable file not found in $PATHā
Oct 07 17:56:12 osmc dockerd[19583]: time=ā2017-10-07T17:56:12.507712125+02:00ā level=error msg=āError setting up exec command in container 91eadf060eebb2401b68240cb4c33468262183939fb44499a023d2fb391fa1b5: Container 91eadf060eebb2401b68240cb4c33468262183939fb44499a023d2fb391fa1b5 is not runningā
Oct 07 17:56:17 osmc dockerd[19583]: time=ā2017-10-07T17:56:17.472743037+02:00ā level=error msg=āError setting up exec command in container 91eadf060eebb2401b68240cb4c33468262183939fb44499a023d2fb391fa1b5: Container 91eadf060eebb2401b68240cb4c33468262183939fb44499a023d2fb391fa1b5 is not runningā
Oct 07 17:59:54 osmc dockerd[19583]: time=ā2017-10-07T17:59:54.713514135+02:00ā level=warning msg=āCouldnāt run auplink before unmount /var/lib/docker/aufs/mnt/4aada9c24b2cac804183494023d8915b26836c0d2331aa56db1c1ee5c77be5fd: exec: "auplink": executable file not found in $PATHā
Oct 07 18:01:21 osmc dockerd[19583]: time=ā2017-10-07T18:01:21.733606096+02:00ā level=warning msg=āCouldnāt run auplink before unmount /var/lib/docker/aufs/mnt/4aada9c24b2cac804183494023d8915b26836c0d2331aa56db1c1ee5c77be5fd: exec: "auplink": executable file not found in $PATHā
Iām attempting to install Docker on Vero running OSMC 2018.08-2 and followed the guide posted by @inahike, which failed. Log here.
Since there isnāt a raspbian stretch distro in the dockerproject repo, I replaced raspbian-jessie with debian-stretch in docker.list but it also failed. Log here.