ci/docker: add pi zero 2w build

This commit is contained in:
itsmattkc
2025-12-30 15:52:38 -08:00
parent f50df6290d
commit c808e834de
5 changed files with 143 additions and 1 deletions
+4 -1
View File
@@ -30,6 +30,9 @@ jobs:
- os: raspberrypi0w
arch: armv6l
artifact: vanilla-raspberrypi0w-image.zip
- os: raspberrypizero2w
arch: aarch64
artifact: vanilla-raspberrypizero2w-image.zip
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
@@ -62,7 +65,7 @@ jobs:
tar czf ${{ matrix.platform.artifact }} -C "${{ github.workspace }}/build" .
- name: Archive (Windows/macOS/Raspberry Pi)
if: ${{ matrix.platform.os == 'windows' || matrix.platform.os == 'macos' || matrix.platform.os == 'raspberrypi0w' }}
if: ${{ matrix.platform.os == 'windows' || matrix.platform.os == 'macos' || matrix.platform.os == 'raspberrypi0w' || matrix.platform.os == 'raspberrypizero2w' }}
run: |
cd build
zip -r ../${{ matrix.platform.artifact }} .
@@ -0,0 +1,26 @@
start_file=start.elf
fixup_file=fixup.dat
kernel=Image
# To use an external initramfs file
#initramfs rootfs.cpio.gz
# Disable overscan assuming the display supports displaying the full resolution
# If the text shown on the screen disappears off the edge, comment this out
disable_overscan=1
# How much memory in MB to assign to the GPU on Pi models having
# 256, 512 or 1024 MB total memory
gpu_mem_256=100
gpu_mem_512=100
gpu_mem_1024=100
# Enable UART0 for serial console on ttyAMA0
dtoverlay=miniuart-bt
# enable 64bits support
arm_64bit=1
# Enable KMSDRM
dtoverlay=vc4-kms-v3d
@@ -0,0 +1,63 @@
BR2_aarch64=y
BR2_ARM_FPU_VFPV4=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
BR2_GLOBAL_PATCH_DIR="board/raspberrypi/patches"
BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
# BR2_TARGET_GENERIC_GETTY is not set
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_VANILLA_PATH)/rootfs"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypizero2w-64/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypizero2w-64/post-image.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,ac69f097e1fba94502cbd36278db204120a37943)/linux-ac69f097e1fba94502cbd36278db204120a37943.tar.gz"
BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
BR2_LINUX_KERNEL_CUSTOM_LOGO_PATH="$(BR2_EXTERNAL_VANILLA_PATH)/boot.png"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2710-rpi-zero-2-w"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
BR2_PACKAGE_XZ=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4=y
BR2_PACKAGE_MESA3D_OPENGL_ES=y
BR2_PACKAGE_SDL2=y
BR2_PACKAGE_SDL2_KMSDRM=y
BR2_PACKAGE_SDL2_OPENGLES=y
BR2_PACKAGE_SDL2_IMAGE=y
BR2_PACKAGE_SDL2_TTF=y
BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y
BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y
BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y
BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="$(BR2_EXTERNAL_VANILLA_PATH)/board/raspberrypi/config_zero2w_64bit.txt"
BR2_PACKAGE_ALSA_LIB=y
BR2_PACKAGE_OPENSSL=y
BR2_PACKAGE_LIBXML2=y
BR2_PACKAGE_LIBNL=y
BR2_PACKAGE_LIBEVDEV=y
BR2_PACKAGE_KMOD_TOOLS=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
# BR2_TARGET_ROOTFS_TAR is not set
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_KMOD_XZ=y
BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_RPI_FFMPEG=y
# BR2_PACKAGE_RPI_FFMPEG_FFMPEG is not set
BR2_PACKAGE_RPI_FFMPEG_SWSCALE=y
BR2_PACKAGE_RPI_FFMPEG_ENCODERS="png"
BR2_PACKAGE_RPI_FFMPEG_DECODERS="h264_v4l2m2m"
BR2_PACKAGE_RPI_FFMPEG_MUXERS="mp4 image2"
BR2_PACKAGE_RPI_FFMPEG_DEMUXERS=""
BR2_PACKAGE_RPI_FFMPEG_PARSERS=""
BR2_PACKAGE_RPI_FFMPEG_BSFS=""
BR2_PACKAGE_RPI_FFMPEG_PROTOCOLS=""
BR2_PACKAGE_RPI_FFMPEG_FILTERS=""
# BR2_PACKAGE_RPI_FFMPEG_INDEVS is not set
# BR2_PACKAGE_RPI_FFMPEG_OUTDEVS is not set
BR2_PACKAGE_VANILLA=y
+39
View File
@@ -0,0 +1,39 @@
FROM debian:bookworm
ARG ARCH=x86_64
ENV ARCH=${ARCH}
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Etc/UTC
RUN apt -y update
RUN apt -y install which \
sed \
make \
binutils \
build-essential \
diffutils \
gcc \
g++ \
bash \
patch \
gzip \
bzip2 \
perl \
tar \
cpio \
unzip \
rsync \
file \
bc \
findutils \
gawk \
wget \
git
RUN git clone --depth 1 --branch 2025.11-rc2 https://github.com/buildroot/buildroot.git /buildroot
ENV FORCE_UNSAFE_CONFIGURE=1
ENTRYPOINT [ "/vanilla/docker/raspberrypi0w/build.sh" ]
+11
View File
@@ -0,0 +1,11 @@
#!/bin/bash
set -e
make -C /buildroot O=/build BR2_EXTERNAL=/vanilla/buildroot vanilla_raspberrypi0w_defconfig
/buildroot/utils/config --file /build/.config -e BR2_PACKAGE_VANILLA_USE_LOCAL
/buildroot/utils/config --file /build/.config --set-str BR2_PACKAGE_VANILLA_LOCAL_PATH /vanilla
make -C /buildroot O=/build
cd /build/images
mv /build/images/sdcard.img /install/