bmpotter / qemu-cross-build

qemu-based cross build automation for arm, aarch64, ppc64, x86_64 horizon agbot/anax

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Horizon .deb cross build and test

Prereq

Ubuntu 16.04 x86_64 with 8 virtual (4 physical) cores and 4 GB RAM.

echo "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu xenial edge" >/etc/apt/sources.list.d/docker.list
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -qq - >/dev/null
apt-get update
apt-get install -y qemu-kvm docker-ce make git

Build

As root:

git clone https://github.com/open-horizon/qemu-cross-build
cd qemu-cross-build

32-bit ARM:

time make loot ARCH=arm     2>&1 | tee make.log     # ETA: 412 min

Example output:

bluehorizon_2.10.0~ppa~debian.jessie_armhf.deb
bluehorizon_2.10.0~ppa~debian.sid_armhf.deb
bluehorizon_2.10.0~ppa~raspbian.jessie_armhf.deb
bluehorizon_2.10.0~ppa~raspbian.sid_armhf.deb
bluehorizon_2.10.0~ppa~ubuntu.xenial_armhf.deb
bluehorizon_2.10.0~ppa~ubuntu.yakkety_armhf.deb
bluehorizon-ui_2.10.0~ppa~debian.jessie_armhf.deb
bluehorizon-ui_2.10.0~ppa~debian.sid_armhf.deb
bluehorizon-ui_2.10.0~ppa~raspbian.jessie_armhf.deb
bluehorizon-ui_2.10.0~ppa~raspbian.sid_armhf.deb
bluehorizon-ui_2.10.0~ppa~ubuntu.xenial_armhf.deb
bluehorizon-ui_2.10.0~ppa~ubuntu.yakkety_armhf.deb
horizon_2.10.0~ppa~debian.jessie_armhf.deb
horizon_2.10.0~ppa~debian.sid_armhf.deb
horizon_2.10.0~ppa~raspbian.jessie_armhf.deb
horizon_2.10.0~ppa~raspbian.sid_armhf.deb
horizon_2.10.0~ppa~ubuntu.xenial_armhf.deb
horizon_2.10.0~ppa~ubuntu.yakkety_armhf.deb

64-bit ARM:

time make loot ARCH=aarch64 2>&1 | tee -a make.log  # ETA: 344 min

Example output:

bluehorizon_2.10.0~ppa~ubuntu.xenial_arm64.deb
bluehorizon_2.10.0~ppa~ubuntu.yakkety_arm64.deb
bluehorizon-ui_2.10.0~ppa~ubuntu.xenial_arm64.deb
bluehorizon-ui_2.10.0~ppa~ubuntu.yakkety_arm64.deb
horizon_2.10.0~ppa~ubuntu.xenial_arm64.deb
horizon_2.10.0~ppa~ubuntu.yakkety_arm64.deb

PPC64:

time make loot ARCH=ppc64le 2>&1 | tee -a make.log  # ETA: 340 min

Example output:

bluehorizon_2.10.0~ppa~ubuntu.xenial_ppc64el.deb
bluehorizon_2.10.0~ppa~ubuntu.yakkety_ppc64el.deb
bluehorizon-ui_2.10.0~ppa~ubuntu.xenial_ppc64el.deb
bluehorizon-ui_2.10.0~ppa~ubuntu.yakkety_ppc64el.deb
horizon_2.10.0~ppa~ubuntu.xenial_ppc64el.deb
horizon_2.10.0~ppa~ubuntu.yakkety_ppc64el.deb

x86_64:

time make loot ARCH=x86_64  2>&1 | tee -a make.log  # ETA: 18 min (KVM, bare-metal 4 virtual cores)
                                                    # ETA: 339 min (non-KVM, VM w/ 8 virtual cores)

Example output:

bluehorizon_2.10.0~ppa~ubuntu.xenial_amd64.deb
bluehorizon_2.10.0~ppa~ubuntu.yakkety_amd64.deb
bluehorizon-ui_2.10.0~ppa~ubuntu.xenial_amd64.deb
bluehorizon-ui_2.10.0~ppa~ubuntu.yakkety_amd64.deb
horizon_2.10.0~ppa~ubuntu.xenial_amd64.deb
horizon_2.10.0~ppa~ubuntu.yakkety_amd64.deb

Get loot

ls -l targets/*/loot

About

qemu-based cross build automation for arm, aarch64, ppc64, x86_64 horizon agbot/anax

License:Apache License 2.0


Languages

Language:Makefile 51.6%Language:Shell 48.4%