Skip to content

Commit

Permalink
Update build scripts to make them useable for Rock64
Browse files Browse the repository at this point in the history
  • Loading branch information
ayufan committed Jun 10, 2017
1 parent 1db2bed commit 11767ca
Show file tree
Hide file tree
Showing 15 changed files with 71 additions and 2,312 deletions.
87 changes: 0 additions & 87 deletions Jenkinsfile

This file was deleted.

155 changes: 33 additions & 122 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,72 +1,29 @@
export RELEASE_NAME ?= 0.1~dev
export RELEASE ?= 1
export LINUX_BRANCH ?= my-hacks-1.2
export BOOT_TOOLS_BRANCH ?= master
LINUX_LOCALVERSION ?= -ayufan-$(RELEASE)

all: linux-pinebook linux-pine64 linux-sopine

linux/.git:
git clone --depth=1 --branch=$(LINUX_BRANCH) --single-branch \
https://github.com/ayufan-pine64/linux-pine64.git linux

linux/.config: linux/.git
make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" clean CONFIG_ARCH_SUN50IW1P1=y
make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" sun50iw1p1smp_linux_defconfig
touch linux/.config

linux/arch/arm64/boot/Image: linux/.config
make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 LOCALVERSION=$(LINUX_LOCALVERSION) Image
make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 LOCALVERSION=$(LINUX_LOCALVERSION) modules
make -C linux LOCALVERSION=$(LINUX_LOCALVERSION) M=modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali \
ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" \
CONFIG_MALI400=m CONFIG_MALI450=y CONFIG_MALI400_PROFILING=y \
CONFIG_MALI_DMA_BUF_MAP_ON_ATTACH=y CONFIG_MALI_DT=y \
EXTRA_DEFINES="-DCONFIG_MALI400=1 -DCONFIG_MALI450=1 -DCONFIG_MALI400_PROFILING=1 -DCONFIG_MALI_DMA_BUF_MAP_ON_ATTACH -DCONFIG_MALI_DT"

busybox/.git:
git clone --depth 1 --branch 1_24_stable --single-branch git://git.busybox.net/busybox busybox

busybox: busybox/.git
cp -u kernel/pine64_config_busybox busybox/.config
make -C busybox ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 oldconfig

busybox/busybox: busybox
make -C busybox ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4

kernel/initrd.gz: busybox/busybox
cd kernel/ && ./make_initrd.sh

boot-tools/.git:
git clone --single-branch --depth=1 --branch=$(BOOT_TOOLS_BRANCH) https://github.com/ayufan-pine64/boot-tools

boot-tools: boot-tools/.git

linux-pine64-$(RELEASE_NAME).tar: linux/arch/arm64/boot/Image boot-tools kernel/initrd.gz
cd kernel && \
bash ./make_kernel_tarball.sh $(shell readlink -f "$@")
all: linux-rock64

package/rtk_bt/.git:
git clone --single-branch --depth=1 https://github.com/NextThingCo/rtl8723ds_bt package/rtk_bt

package/rtk_bt/rtk_hciattach/rtk_hciattach: package/rtk_bt/.git
make -C package/rtk_bt/rtk_hciattach CC="ccache aarch64-linux-gnu-gcc"

linux-pine64-package-$(RELEASE_NAME).deb: package package/rtk_bt/rtk_hciattach/rtk_hciattach
fpm -s dir -t deb -n linux-pine64-package -v $(RELEASE_NAME) \
linux-rock64-package-$(RELEASE_NAME).deb: package package/rtk_bt/rtk_hciattach/rtk_hciattach
fpm -s dir -t deb -n linux-rock64-package -v $(RELEASE_NAME) \
-p $@ \
--deb-priority optional --category admin \
--force \
--deb-compression bzip2 \
--after-install package/scripts/postinst.deb \
--before-remove package/scripts/prerm.deb \
--url https://gitlab.com/ayufan-pine64/linux-build \
--url https://gitlab.com/ayufan-rock64/linux-build \
--description "GitLab Runner" \
-m "Kamil Trzciński <[email protected]>" \
--license "MIT" \
--vendor "Kamil Trzciński" \
-a arm64 \
--config-files /var/lib/alsa/asound.state \
package/root/=/ \
package/rtk_bt/rtk_hciattach/rtk_hciattach=/usr/local/sbin/rtk_hciattach

Expand All @@ -76,120 +33,74 @@ linux-pine64-package-$(RELEASE_NAME).deb: package package/rtk_bt/rtk_hciattach/r
%.img.xz: %.img
pxz -f -3 $<

simple-image-pine64-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools
cd simpleimage && \
export boot0=../boot-tools/boot/pine64/boot0-pine64-plus.bin && \
export uboot=../boot-tools/boot/pine64/u-boot-pine64-plus.bin && \
bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz)

simple-image-sopine-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools
cd simpleimage && \
export boot0=../boot-tools/boot/pine64/boot0-pine64-sopine.bin && \
export uboot=../boot-tools/boot/pine64/u-boot-pine64-sopine.bin && \
bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz)

simple-image-pinebook-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools
cd simpleimage && \
export boot0=../boot-tools/boot/pine64/boot0-pine64-pinebook.bin && \
export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook.bin && \
bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz)

xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pine64-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools
sudo bash ./build-pine64-image.sh \
xenial-minimal-rock64-$(RELEASE_NAME)-$(RELEASE).img: linux-rock64-package-$(RELEASE_NAME).deb
sudo bash ./build-rock64-image.sh \
$(shell readlink -f $@) \
$(shell readlink -f $<) \
$(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \
$(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \
"" \
$(shell readlink -f linux-rock64-package-$(RELEASE_NAME).deb) \
xenial \
pine64 \
rock64 \
minimal

xenial-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-sopine-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools
sudo bash ./build-pine64-image.sh \
xenial-minimal-rock64-$(RELEASE_NAME)-$(RELEASE).img: linux-rock64-package-$(RELEASE_NAME).deb
sudo bash ./build-rock64-image.sh \
$(shell readlink -f $@) \
$(shell readlink -f $<) \
$(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \
$(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \
xenial \
sopine \
minimal

xenial-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools
sudo bash ./build-pine64-image.sh \
$(shell readlink -f $@) \
$(shell readlink -f $<) \
$(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \
$(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \
$(shell readlink -f linux-rock64-$(RELEASE_NAME).tar.xz) \
$(shell readlink -f linux-rock64-package-$(RELEASE_NAME).deb) \
xenial \
pinebook \
minimal

xenial-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools
sudo bash ./build-pine64-image.sh \
xenial-mate-rock64-$(RELEASE_NAME)-$(RELEASE).img: linux-rock64-package-$(RELEASE_NAME).deb
sudo bash ./build-rock64-image.sh \
$(shell readlink -f $@) \
$(shell readlink -f $<) \
$(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \
$(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \
"" \
$(shell readlink -f linux-rock64-package-$(RELEASE_NAME).deb) \
xenial \
pinebook \
mate \
7300

xenial-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools
sudo bash ./build-pine64-image.sh \
xenial-i3-rock64-$(RELEASE_NAME)-$(RELEASE).img: linux-rock64-package-$(RELEASE_NAME).deb
sudo bash ./build-rock64-image.sh \
$(shell readlink -f $@) \
$(shell readlink -f $<) \
$(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \
$(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \
"" \
$(shell readlink -f linux-rock64-package-$(RELEASE_NAME).deb) \
xenial \
pinebook \
i3

stretch-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools
sudo bash ./build-pine64-image.sh \
stretch-i3-rock64-$(RELEASE_NAME)-$(RELEASE).img: linux-rock64-package-$(RELEASE_NAME).deb
sudo bash ./build-rock64-image.sh \
$(shell readlink -f $@) \
$(shell readlink -f $<) \
$(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \
$(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \
"" \
$(shell readlink -f linux-rock64-package-$(RELEASE_NAME).deb) \
stretch \
pinebook \
i3

.PHONY: kernel-tarball
kernel-tarball: linux-pine64-$(RELEASE_NAME).tar.xz

.PHONY: linux-package
linux-package: linux-pine64-package-$(RELEASE_NAME).deb

.PHONY: simple-image-pinebook-$(RELEASE_NAME).img
simple-image-pinebook: simple-image-pinebook-$(RELEASE_NAME).img
linux-package: linux-rock64-package-$(RELEASE_NAME).deb

.PHONY: xenial-minimal-pinebook
xenial-minimal-pinebook: xenial-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz
xenial-minimal-rock64: xenial-minimal-pinebook-$(RELEASE_NAME)-$(RELEASE).img.xz

.PHONY: xenial-mate-pinebook
xenial-mate-pinebook: xenial-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz
xenial-mate-rock64: xenial-mate-pinebook-$(RELEASE_NAME)-$(RELEASE).img.xz

.PHONY: xenial-i3-pinebook
xenial-i3-pinebook: xenial-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz
xenial-i3-rock64: xenial-i3-pinebook-$(RELEASE_NAME)-$(RELEASE).img.xz

.PHONY: stretch-i3-pinebook
stretch-i3-pinebook: stretch-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz
stretch-i3-rock64: stretch-i3-pinebook-$(RELEASE_NAME)-$(RELEASE).img.xz

.PHONY: xenial-pinebook
xenial-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook

.PHONY: linux-pinebook
linux-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook

.PHONY: xenial-minimal-pine64
xenial-minimal-pine64: xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz

.PHONY: linux-pine64
linux-pine64: xenial-minimal-pine64

.PHONY: xenial-minimal-sopine
xenial-minimal-sopine: xenial-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz
xenial-rock64: xenial-minimal-rock64 xenial-mate-rock64 xenial-i3-rock64

.PHONY: linux-sopine
linux-sopine: xenial-minimal-sopine
.PHONY: linux-rock64
linux-rock64: xenial-rock64
51 changes: 20 additions & 31 deletions build-pine64-image.sh → build-rock64-image.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@
# 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.
#
# Latest stuff can be found at the following locations:
# - https://www.stdin.xyz/downloads/people/longsleep/pine64-images/simpleimage-pine64-latest.img.xz
# - https://www.stdin.xyz/downloads/people/longsleep/pine64-images/linux/linux-pine64-latest.tar.xz"

OUT_IMAGE="$1"
SIMPLEIMAGE="$2"
Expand All @@ -17,7 +13,7 @@ MODEL="$6"
VARIANT="$7"
SIZE="${8:-3650}"
if [[ -z "$MODEL" ]]; then
MODEL="pine64"
MODEL="rock64"
fi
export MODEL

Expand Down Expand Up @@ -47,11 +43,8 @@ echo "> Building in $TEMP ..."
cleanup() {
local arg=$?
echo "> Cleaning up ..."
umount "$TEMP/boot" || true
umount $TEMP/rootfs/* || true
umount "$TEMP/rootfs" || true
kpartx -sd "$TEMP/$IMAGE" || true
kpartx -sd "$OUT_IMAGE" || true
umount $TEMP/image/* || true
umount "$TEMP/image" || true
rmdir "$TEMP/boot"
rmdir "$TEMP/rootfs"
rm -r "$TEMP"
Expand All @@ -61,31 +54,27 @@ trap cleanup EXIT

set -ex

# Unpack
unxz -k --stdout "$SIMPLEIMAGE" > "$TEMP/$IMAGE"
# Enlarge
dd if=/dev/zero bs=1M seek=$(($SIZE-1)) count=1 of="$TEMP/$IMAGE"
# Resize
echo ",+,L" | sfdisk -N 2 -L -uS --force "$TEMP/$IMAGE"
# 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

# Device
mkdir "$TEMP/boot"
mkdir "$TEMP/rootfs"
DEVICE=$(losetup --show --find "$TEMP/$IMAGE")
DEVICENAME=$(basename $DEVICE)
echo "> Device is $DEVICE ..."
kpartx -avs $DEVICE
# Make filesystem
mkfs.ext4 "$TEMP/$IMAGE"

# Resize filesystem
resize2fs /dev/mapper/${DEVICENAME}p2 || true
# Mount filesystem
mount "$TEMP/$IMAGE" "$TEMP/image"

# Mount
mount /dev/mapper/${DEVICENAME}p1 "$TEMP/boot"
mount /dev/mapper/${DEVICENAME}p2 "$TEMP/rootfs"
# Copy all files
sudo cp -rfp $TEMP/$IMAGE/rootfs/* "$TEMP/image"

# Umount filesystem
umount "$TEMP/image"

sleep 2
(cd simpleimage && sh ./make_rootfs.sh "$TEMP/rootfs" "$KERNELTAR" "$PACKAGEDEB" "$DISTRO" "$TEMP/boot" "$MODEL" "$VARIANT")

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

fstrim "$TEMP/rootfs"
Loading

0 comments on commit 11767ca

Please sign in to comment.