From 8902128249f5cfd4f73fb5bad051c8790732be1c Mon Sep 17 00:00:00 2001 From: Johan Gunnarsson Date: Tue, 26 Mar 2019 21:20:09 +0100 Subject: [PATCH] Add Raspberry Pi support --- Dockerfile | 2 ++ build-boot-rpi | 44 ++++++++++++++++++++++++++++++++++ dockerfiles/Dockerfile.arm64v8 | 2 ++ rebuild | 1 + 4 files changed, 49 insertions(+) create mode 100755 build-boot-rpi diff --git a/Dockerfile b/Dockerfile index 2f899e8..0e4d20b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,6 +14,8 @@ RUN apt-get -y install debootstrap \ swig \ parted \ e2fsprogs \ + dosfstools \ + mtools \ pwgen ENV PATH="/debimg:${PATH}" COPY . /debimg diff --git a/build-boot-rpi b/build-boot-rpi new file mode 100755 index 0000000..9b329e6 --- /dev/null +++ b/build-boot-rpi @@ -0,0 +1,44 @@ +#!/bin/sh +# Build SD card image + +IMAGE="${1}" # For example "boot-bananapi.bin" +DEFCONFIG="${2}" # For example "Bananapi_defconfig" +TUPLE="${3}" # For example "arm-linux-gnueabihf" + +set -e + +# Create fresh empty directory +TMP=$(mktemp -d tmp.XXXXXX) +cd "${TMP}" + +build-image tmp.img +build-u_boot u-boot "${DEFCONFIG}" "${TUPLE}" + +# Write Raspberry Pi boot config +cat << EOF > config.txt +kernel=u-boot.bin +boot_delay=0 +boot_delay_ms=100 +gpu_mem=16 +EOF + +# Download Raspberry Pi boot files +FIRMWARE="https://github.com/raspberrypi/firmware/blob/stable" +wget "${FIRMWARE}/boot/fixup.dat" \ + "${FIRMWARE}/boot/start.elf" \ + "${FIRMWARE}/boot/bootcode.bin" + +# Create empty FAT partition +rm -f vfat.img +fallocate -l 31MiB vfat.img +mkfs.vfat vfat.img + +# Copy boot files to FAT partition +mcopy -v -i vfat.img u-boot/u-boot.bin config.txt fixup.dat start.elf bootcode.bin :: + +# Copy FAT partition to image +dd if=vfat.img of=tmp.img bs=1K seek=1K + +truncate -s 32M tmp.img +gzip tmp.img +cp tmp.img.gz "${IMAGE}.bin.gz" diff --git a/dockerfiles/Dockerfile.arm64v8 b/dockerfiles/Dockerfile.arm64v8 index 3ce7dcd..e190c31 100644 --- a/dockerfiles/Dockerfile.arm64v8 +++ b/dockerfiles/Dockerfile.arm64v8 @@ -14,6 +14,8 @@ RUN apt-get -y install debootstrap \ swig \ parted \ e2fsprogs \ + dosfstools \ + mtools \ pwgen ENV PATH="/debimg:${PATH}" COPY . /debimg diff --git a/rebuild b/rebuild index f00f98c..c3b8c5c 100755 --- a/rebuild +++ b/rebuild @@ -11,6 +11,7 @@ docker build -t debimg . # Build bootloaders docker run $DOCKEROPTS1 debimg build-boot-allwinner "/artifacts/boot-bananapi" "Bananapi_defconfig" "arm-linux-gnueabihf" +docker run $DOCKEROPTS1 debimg build-boot-rpi "/artifacts/boot-rpi2" "rpi_2_defconfig" "arm-linux-gnueabihf" # Build root filesystems docker run $DOCKEROPTS2 debimg build-debian "/artifacts/debian-stretch-armhf" "armhf" "stretch"