Skip to content

Commit

Permalink
Revert "Build rootfs with docker"
Browse files Browse the repository at this point in the history
This reverts commit 0483bad.
  • Loading branch information
ayufan committed Jun 13, 2017
1 parent 9a0276a commit c12e06c
Show file tree
Hide file tree
Showing 7 changed files with 555 additions and 152 deletions.
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ node('docker && linux-build') {

def environment = docker.build('build-environment:build-rock64-image', 'environment')

environment.inside("--privileged -u 0:0 -v /var/run/docker.sock:/var/run/docker.sock") {
environment.inside("--privileged -u 0:0") {
withEnv([
"USE_CCACHE=true",
"RELEASE_NAME=$VERSION",
Expand Down
97 changes: 59 additions & 38 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ export RELEASE ?= 1
export BOOT_TOOLS_BRANCH ?= master
export BUILD_ARCH ?= armhf

ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))

all: linux-rock64

package/rtk_bt/rtk_hciattach/rtk_hciattach:
Expand Down Expand Up @@ -33,42 +31,65 @@ linux-rock64-package-$(RELEASE_NAME).deb: package package/rtk_bt/rtk_hciattach/r
%.img.xz: %.img
pxz -f -3 $<

rootfs/linux-package.deb: linux-rock64-package-$(RELEASE_NAME).deb
cp "$<" "$@"

%-system.img: rootfs/linux-package.deb rootfs/Dockerfile
docker build \
--tag=$(BUILD_SUITE)_$(BUILD_VARIANT)_$(BUILD_MODEL) \
--build-arg BUILD_ARCH=$(BUILD_ARCH) \
--build-arg BUILD_SUITE=$(BUILD_SUITE) \
--build-arg BUILD_VARIANT=$(BUILD_VARIANT) \
--build-arg BUILD_VARIANT_PACKAGES="$(BUILD_VARIANT_PACKAGES)" \
--build-arg BUILD_ADDITIONAL_PACKAGES="$(BUILD_ADDITIONAL_PACKAGES)" \
--build-arg BUILD_MODEL=$(BUILD_MODEL) \
rootfs/
touch $@.tmp
docker run --rm -v $(ROOT_DIR):$(ROOT_DIR) $(BUILD_SUITE)_$(BUILD_VARIANT)_$(BUILD_MODEL) \
$(shell readlink -f $@.tmp) /rootfs -l $(BUILD_SIZE)
mv $@.tmp $@

xenial-minimal-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: BUILD_SUITE=xenial
xenial-minimal-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: BUILD_VARIANT=minimal
xenial-minimal-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: BUILD_MODEL=rock64
xenial-minimal-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: BUILD_SIZE=1G

xenial-i3-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: BUILD_SUITE=xenial
xenial-i3-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: BUILD_VARIANT=i3
xenial-i3-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: BUILD_MODEL=rock64
xenial-i3-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: BUILD_SIZE=2G
xenial-i3-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: BUILD_ADDITIONAL_PACKAGES=aisleriot geany gnomine gnome-sudoku mplayer scratch smplayer smplayer-themes smtube chromium-browser
xenial-i3-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: BUILD_VARIANT_PACKAGES=xserver-xorg-input-all xfonts-base slim rxvt-unicode-lite i3 i3status i3lock suckless-tools network-manager pulseaudio

xenial-mate-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: BUILD_SUITE=xenial
xenial-mate-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: BUILD_VARIANT=mate
xenial-mate-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: BUILD_MODEL=rock64
xenial-mate-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: BUILD_SIZE=6G
xenial-mate-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: BUILD_ADDITIONAL_PACKAGES=aisleriot geany gnomine gnome-sudoku mplayer scratch smplayer smplayer-themes smtube chromium-browser
xenial-mate-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: BUILD_VARIANT_PACKAGES=ubuntu-mate-core ubuntu-mate-desktop ubuntu-mate-lightdm-theme ubuntu-mate-wallpapers-xenial lightdm
xenial-minimal-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: linux-rock64-package-$(RELEASE_NAME).deb
sudo bash export ./build-system-image.sh \
$(shell readlink -f $@) \
$(shell readlink -f $<) \
"" \
$(shell readlink -f linux-rock64-package-$(RELEASE_NAME).deb) \
xenial \
rock64 \
minimal \
"" \
"${BUILD_ARCH}"

xenial-minimal-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: linux-rock64-package-$(RELEASE_NAME).deb
cd rootfs/ && sudo bash ./build-system-image.sh \
$(shell readlink -f $@) \
"" \
"" \
$(shell readlink -f linux-rock64-package-$(RELEASE_NAME).deb) \
xenial \
rock64 \
minimal \
"" \
"${BUILD_ARCH}"

xenial-mate-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: linux-rock64-package-$(RELEASE_NAME).deb
cd rootfs/ && sudo bash ./build-system-image.sh \
$(shell readlink -f $@) \
"" \
"" \
$(shell readlink -f linux-rock64-package-$(RELEASE_NAME).deb) \
xenial \
rock64 \
mate \
7300 \
"${BUILD_ARCH}"

xenial-i3-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: linux-rock64-package-$(RELEASE_NAME).deb
cd rootfs/ && sudo bash ./build-system-image.sh \
$(shell readlink -f $@) \
"" \
"" \
$(shell readlink -f linux-rock64-package-$(RELEASE_NAME).deb) \
xenial \
rock64 \
i3 \
"" \
"${BUILD_ARCH}"

stretch-i3-rock64-$(RELEASE_NAME)-$(RELEASE)-$(BUILD_ARCH)-system.img: linux-rock64-package-$(RELEASE_NAME).deb
cd rootfs/ && sudo export BUILD_ARCH=$(BUILD_ARCH) bash rootfs/build-system-image.sh \
$(shell readlink -f $@) \
"" \
"" \
$(shell readlink -f linux-rock64-package-$(RELEASE_NAME).deb) \
stretch \
rock64 \
i3 \
"" \
"${BUILD_ARCH}"

out/kernel/Image out/kernel/rk3328-rock64.dtb: kernel/arch/arm64/configs/rockchip_linux_defconfig
build/mk-kernel.sh rk3328-rock64
Expand Down
3 changes: 0 additions & 3 deletions environment/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ RUN apt-get install -y libssl-dev parted live-build linaro-image-tools

RUN gem install fpm

RUN curl -L https://get.docker.com/builds/Linux/x86_64/docker-17.05.0-ce.tgz | tar -C /tmp -zx && \
mv /tmp/docker/docker /usr/local/bin/

RUN curl -L https://github.com/aktau/github-release/releases/download/v0.6.2/linux-amd64-github-release.tar.bz2 | tar -C /tmp -jx && \
mv /tmp/bin/linux/amd64/github-release /usr/local/bin/

Expand Down
1 change: 0 additions & 1 deletion rootfs/.dockerignore

This file was deleted.

109 changes: 0 additions & 109 deletions rootfs/Dockerfile

This file was deleted.

82 changes: 82 additions & 0 deletions rootfs/build-system-image.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
#!/bin/sh
#
# This scripts takes a simpleimage and a kernel tarball, resizes the
# secondary partition and creates a rootfs inside it. Then extracts the
# Kernel tarball on top of it, resulting in a full Pine64 disk image.

OUT_IMAGE="$1"
SIMPLEIMAGE="$2"
KERNELTAR="$3"
PACKAGEDEB="$4"
DISTRO="$5"
MODEL="$6"
VARIANT="$7"
SIZE="${8:-3650}"
BUILD_ARCH="$9"
if [[ -z "$MODEL" ]]; then
MODEL="rock64"
fi
if [[ -z "$BUILD_ARCH" ]]; then
BUILD_ARCH="arm64"
fi
export MODEL
export BUILD_ARCH

if [ -z "$VARIANT" ]; then
echo "Usage: $0 <result.img> <simpleimage.img.xz> <kernel.tar.xz> <package.deb> [distro] [model] [variant: mate, i3, empty] [size (MiB)] [build_arch]"
exit 1
fi

if [ "$(id -u)" -ne "0" ]; then
echo "This script requires root."
exit 1
fi

if [ -z "$DISTRO" ]; then
DISTRO="xenial"
fi

SIMPLEIMAGE=$(readlink -f "$SIMPLEIMAGE")
[[ -n "$KERNELTAR" ]] && KERNELTAR=$(readlink -f "$KERNELTAR")

PWD=$(readlink -f .)
TEMP=$(mktemp -p $PWD -d -t "$MODEL-build-XXXXXXXXXX")
IMAGE="$(basename "$OUT_IMAGE")"
echo "> Building in $TEMP ..."

cleanup() {
local arg=$?
echo "> Cleaning up ..."
umount $TEMP/image/* || true
umount "$TEMP/image" || true
rm -r "$TEMP"
exit $arg
}
trap cleanup EXIT

set -ex

# Create folders
mkdir -p "$TEMP/rootfs" "$TEMP/boot" "$TEMP/image"

# Create image
./make_rootfs.sh "$TEMP/rootfs" "$KERNELTAR" "$PACKAGEDEB" "$DISTRO" "$TEMP/boot" "$MODEL" "$VARIANT"

# Create
dd if=/dev/zero of="$TEMP/$IMAGE" bs=1M seek=$(($SIZE-1)) count=1

# Make filesystem
mkfs.ext4 "$TEMP/$IMAGE"

# Mount filesystem
mount "$TEMP/$IMAGE" "$TEMP/image"

# Copy all files
sudo cp -rfp $TEMP/rootfs/* "$TEMP/image"

# Umount filesystem
umount "$TEMP/image"

sleep 2

mv -v "$TEMP/$IMAGE" "$OUT_IMAGE"
Loading

0 comments on commit c12e06c

Please sign in to comment.