Running Docker on roc-rk3328-cc

pdfpdf
edited June 2018 in 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 and rk3328-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!

  • edited June 2019
    Following the steps on Ubuntu 18.04 I got this error:
    CC      fs/nfs/dir.o
      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
    drivers/gpu/drm/built-in.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.
    Please, share a video, I want to see your steps --I don't believe you.




Sign In or Register to comment.