Hello. Docker that’s exactly what I want (a Khadas VIM Pro Docker Swarm : ) I have 5 VIMs in front and me and the Android performance/integration is great… but now, I want to run ubuntu server or something similar on these little boxes and enable docker.
Have you tried to install and run the latest docker successfully? Was it difficult in some way? Have you experienced any kernel compatibility issues with docker? Did you follow the official docker guidelines (Redirecting…)?
I’ve written a small How-To explaining the necessary steps to get Docker up and running on ARM.
The most crucial part is to build a custom kernel, which fulfils the necessary Docker requirements.
Once the VIM board has arrived I can test it by myself.
gouwa@Server:~/project/khadas/ubuntu/linux$ make ARCH=arm64 kvim_defconfig
KBUILD_CFLAGS_MODULE:-DMODULE
drivers/net/wireless/bcmdhd/Kconfig:50:warning: defaults for choice values not supported
#
# configuration written to .config
#
gouwa@Server:~/project/khadas/ubuntu/linux$ make -j8 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image kvim.dtb modules
KBUILD_CFLAGS_MODULE:-DMODULE -mfix-cortex-a53-835769
KBUILD_CFLAGS_MODULE:-DMODULE
scripts/kconfig/conf --silentoldconfig Kconfig
drivers/net/wireless/bcmdhd/Kconfig:50:warning: defaults for choice values not supported
KBUILD_CFLAGS_MODULE:-DMODULE -mfix-cortex-a53-835769
CHK include/generated/uapi/linux/version.h
Build time: Wed Feb 22 17:11:21 CST 2017
Khadas: Something a little different!
CHK include/generated/utsrelease.h
make[1]: `arch/arm64/boot/dts/kvim.dtb' is up to date.
CALL scripts/checksyscalls.sh
<stdin>:1232:2: warning: #warning syscall renameat2 not implemented [-Wcpp]
CHK include/generated/compile.h
CC mm/memcontrol.o
CC mm/page_cgroup.o
mm/memcontrol.c: In function ‘mem_cgroup_allow_attach’:
mm/memcontrol.c:7116:2: error: passing argument 1 of ‘subsys_cgroup_allow_attach’ from incompatible pointer type [-Werror]
return subsys_cgroup_allow_attach(css->cgroup, tset);
^
In file included from include/linux/memcontrol.h:22:0,
from mm/memcontrol.c:29:
include/linux/cgroup.h:860:5: note: expected ‘struct cgroup_subsys_state *’ but argument is of type ‘struct cgroup *’
int subsys_cgroup_allow_attach(struct cgroup_subsys_state *css,
^
cc1: all warnings being treated as errors
make[1]: *** [mm/memcontrol.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [mm] Error 2
make: *** Waiting for unfinished jobs....
GZIP kernel/config_data.gz
CHK kernel/config_data.h
UPD kernel/config_data.h
CC kernel/configs.o
LD kernel/built-in.o
LD drivers/amlogic/built-in.o
LD drivers/built-in.o
gouwa@Server:~/project/khadas/ubuntu/linux$ git log
commit 2a0514c9fd3e33415f48bad590ff9df82105d875
Author: Uli Middelberg <uli@middelberg.de>
Date: Thu Feb 16 23:30:29 2017 +0000
Khadas VIM: Docker support added
I was able to get rid of the compiler errors and I’ll update the PR on GitHub in a couple of minutes. Now I have an idea why you’ve build all drivers as build-in modules, but I was able to fix this as well. To accomplish this I needed to disable some of the previously enabled kernel options. IMHO the kernel sources aren’t in a very good shape. If you have the chance to, you might try to combine the HK sources with your device tree.
Yes, it’s not a good idea to built all drivers into kernel directly, some drivers should be as modules. We did it as the Amlogic official linux source with built-in one, we will take some time on that for testing first at next build.
Due to gcc-5 compilation errors I needed to disable the brcm WiFi drivers. So I have to figure out the root cause for these errors before enabling them again.
Yes I know, but this is the easy part. The harder part is building a custom kernel with aufs support and other necessary kernel options (if you cannot go for mainline). Igor pays much attention to shipping Armbian images with Docker ready kernels.
All the latest images Armbian for Amlogic S9xxx, at the core of everything is already enabled for Docker. You only need to install “docker.io” the system by regular means (through synaptic or apt-get).
at this time the ODROID-C2 is the only S905 board officially supported by the the Armbian team (and HK has added Docker support to their kernel tree). The Armbian build toolset is quite versatile, so with sources for u-boot and kernel it’s quite easy to build ready to use images for other boards. As your image is build out of tree, please point me to the source you’ve taken to build the kernel (and additional patches, if present). If you have used GitHub - khadas/linux: Linux kernel for Khadas VIMs & Edges the Docker service won’t start, although you will be able to install the package.