Running Docker on roc-rk3328-cc
I've built a custom kernel containing all the prerequisite kernel config options necessary to run docker containers.
I used the procedures outlined here (to build a kernel);
http://wiki.t-firefly.com/ROC-RK3328-CC/linux_compile_firmware.html
And a variation of the procedures here (to build an Ubuntu 18.04 rootfs);
http://wiki.t-firefly.com/ROC-RK3328-CC/linux_build_rootfilesystem.html#building-ubuntu-root-filesystem
Getting all the kernel CONFIG_xxxx options was a tedious task.
If others out there wanna a copy of my kernel configs, I put mine here;
https://gist.github.com/pdfruth/b3546f3d01660d3525b31a5a5247dd97
To use it;
- Git clone the kernel source
- Download the content of the above mentioned kernel config. Save it to a file.
- Then copy it to
arch/arm64/configs/fireflyrk3328_linux_defconfig
in the kernel directory structure - Compile your kernel
- Copy the new kernel
Image
andrk3328-roc-cc.dtb
files over to the board (they live in the /dev/mmcblk1p4 partition on my eMMC) - Reboot
- Profit
So far, I've only run a few Docker images (ie. hello-world, nginx), but they seem to be working well.
Docker version output:
Client:
Version: 18.05.0-ce
API version: 1.37
Go version: go1.9.5
Git commit: f150324
Built: Wed May 9 22:10:21 2018
OS/Arch: linux/arm64
Experimental: false
Orchestrator: swarm
Server:
Engine:
Version: 18.05.0-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.5
Git commit: f150324
Built: Wed May 9 22:08:19 2018
OS/Arch: linux/arm64
Experimental: false
Docker info output:
Containers: 2
Running: 0
Paused: 0
Stopped: 2
Images: 2
Server Version: 18.05.0-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 773c489c9c1b21a6d78b5c538cd395416ec50f88
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Security Options:
seccomp
Profile: default
Kernel Version: 4.4.114
Operating System: Ubuntu 18.04 LTS
OSType: linux
Architecture: aarch64
CPUs: 4
Total Memory: 3.833GiB
Name: renegade
ID: UW4H:RKKE:SWUK:7A6N:6UCI:374Y:M2OS:FW35:J66X:CXMB:UCB6:F347
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
PS. I installed Docker CE 18.05 by manually downloading and installing.
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh
See -> https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-using-the-convenience-script
Comments
Hi
Thanks for sharing the information. My roc-rk3328-cc board is on its way. And I'm planning to run docker engine on it.
I'm trying to build uboot, kernel myself following your configuration. However, when I build kernel, I keep get error complaining it failed to build net/wireless/realtek or something. I'm wondering how did you compile it?
I'm doing build on ubuntu 18.04 btw.
Thanks
Thanks I think you just made this POS soc useful!
CC drivers/gpu/drm/drm_panel.o
drivers/gpu/arm/midgard/ipa/mali_kbase_ipa.c:582:22: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
error, forbidden warning:mali_kbase_ipa.c:582
.get_static_power = &kbase_get_static_power,
^
drivers/gpu/arm/midgard/ipa/mali_kbase_ipa.c:582:22: note: (near initialization for 'kbase_ipa_power_model_ops.get_static_power')
drivers/gpu/arm/midgard/ipa/mali_kbase_ipa.c:583:23: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
error, forbidden warning:mali_kbase_ipa.c:583
.get_dynamic_power = &kbase_get_dynamic_power,
^
drivers/gpu/arm/midgard/ipa/mali_kbase_ipa.c:583:23: note: (near initialization for 'kbase_ipa_power_model_ops.get_dynamic_power')
scripts/Makefile.build:277: recipe for target 'drivers/gpu/arm/midgard/ipa/mali_kbase_ipa.o' failed
make[4]: *** [drivers/gpu/arm/midgard/ipa/mali_kbase_ipa.o] Error 1
scripts/Makefile.build:484: recipe for target 'drivers/gpu/arm/midgard' failed
make[3]: *** [drivers/gpu/arm/midgard] Error 2
scripts/Makefile.build:484: recipe for target 'drivers/gpu/arm' failed
make[2]: *** [drivers/gpu/arm] Error 2
make[2]: *** Waiting for unfinished jobs....
CC drivers/gpu/drm/drm_of.o
scripts/Makefile.build:484: recipe for target 'drivers/gpu' failed
make[1]: *** [drivers/gpu] Error 2
Makefile:1031: recipe for target 'drivers' failed
make: *** [drivers] Error 2
make: *** Waiting for unfinished jobs....
CC lib/fonts/font_8x8.o
MAKE KERNEL IMAGE FAILED.