Compare commits

..

10 Commits

Author SHA1 Message Date
david cd9bece1fd qemu.sh: fallocate work-around for git CI on COW files systems.
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bookworm) (push) Failing after 12m13s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bullseye) (push) Successful in 1h27m39s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, sid) (push) Successful in 1h15m43s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, trixie) (push) Failing after 2h35m17s Details
sd-card-images CI / build docker images (push) Has been skipped Details
2024-05-13 19:00:36 +01:00
david 96b4e6e486 build-debian: fallocate work-around for git CI on COW files systems.
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bookworm) (push) Failing after 59m4s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bullseye) (push) Failing after 54m49s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, trixie) (push) Has been cancelled Details
sd-card-images CI / build docker images (push) Has been cancelled Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, sid) (push) Has been cancelled Details
2024-05-13 17:01:25 +01:00
david 0893f1209b build-debian: work-around for git CI on COW files systems.
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bookworm) (push) Failing after 8m30s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bullseye) (push) Failing after 8m3s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, sid) (push) Failing after 9m47s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, trixie) (push) Failing after 7m46s Details
sd-card-images CI / build docker images (push) Has been skipped Details
2024-05-13 16:26:42 +01:00
david 0084b4c11a README_devuan.md: Get Dockerfile.devuan directly from a git branch.
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bookworm) (push) Failing after 5m38s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bullseye) (push) Failing after 6m10s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, sid) (push) Failing after 10m8s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, trixie) (push) Failing after 10m37s Details
sd-card-images CI / build docker images (push) Has been skipped Details
2024-05-13 15:13:18 +01:00
david 9581e2e022 README_devuan.md: Get Dockerfile.devuan directly via git.
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bullseye) (push) Has been cancelled Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, sid) (push) Has been cancelled Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, trixie) (push) Has been cancelled Details
sd-card-images CI / build docker images (push) Has been cancelled Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bookworm) (push) Has been cancelled Details
2024-05-13 14:21:50 +01:00
david 109f5489da Increase ALL timeouts by 100 mins.
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bookworm) (push) Failing after 29m17s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bullseye) (push) Failing after 18m44s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, sid) (push) Failing after 19m14s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, trixie) (push) Failing after 18m53s Details
sd-card-images CI / build docker images (push) Has been skipped Details
2024-05-13 02:05:46 +01:00
david d9da51b30f Increase timeouts by 100 mins.
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bookworm) (push) Failing after 32m4s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bullseye) (push) Failing after 5m54s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, sid) (push) Failing after 5m49s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, trixie) (push) Failing after 5m32s Details
sd-card-images CI / build docker images (push) Has been skipped Details
2024-05-13 01:14:40 +01:00
david b7b3be32f9 Removed echo to test new runner image.
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bookworm) (push) Failing after 13m55s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bullseye) (push) Failing after 6m4s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, sid) (push) Failing after 6m26s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, trixie) (push) Failing after 6m21s Details
sd-card-images CI / build docker images (push) Has been skipped Details
2024-05-12 22:00:05 +01:00
david 5b052a2e55 Added "echo" to guarantee no error in ci.yaml.
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bookworm) (push) Failing after 6m40s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bullseye) (push) Failing after 41s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, sid) (push) Failing after 41s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, trixie) (push) Failing after 44s Details
sd-card-images CI / build docker images (push) Has been skipped Details
2024-05-12 20:30:31 +01:00
david 45bdd6e5ce README_devuan: what we want to implement.
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bookworm) (push) Failing after 6m11s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, bullseye) (push) Failing after 6m9s Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, trixie) (push) Has been cancelled Details
sd-card-images CI / build docker images (push) Has been cancelled Details
sd-card-images CI / test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.suite }} (i386, debian, sid) (push) Has been cancelled Details
2024-05-12 17:52:34 +01:00
17 changed files with 118 additions and 49 deletions

View File

@ -39,7 +39,7 @@ jobs:
steps:
- name: Install dependencies
timeout-minutes: 5
timeout-minutes: 105
env:
DEBIAN_FRONTEND: noninteractive
run: |
@ -78,7 +78,7 @@ jobs:
uses: actions/checkout@v4
- name: Build qemu_x86_virt
timeout-minutes: 5
timeout-minutes: 105
run: |
env PATH=$GITHUB_WORKSPACE/scripts:$PATH \
ARTIFACTS_DIR=$RUNNER_TEMP \
@ -90,7 +90,7 @@ jobs:
i686-linux-gnu
- name: Build ${{ matrix.suite }} ${{ matrix.arch }}
timeout-minutes: 5
timeout-minutes: 105
run: |
sudo env PATH=$GITHUB_WORKSPACE/scripts:$PATH \
ARTIFACTS_DIR=$RUNNER_TEMP \
@ -99,7 +99,7 @@ jobs:
$DEBIAN_SUITE
- name: Test qemu_x86_virt + ${{ matrix.suite }} ${{ matrix.arch }}
timeout-minutes: 15
timeout-minutes: 115
run: |
sudo ./test/qemu.sh $RUNNER_TEMP/boot-qemu_x86_virt.bin.gz \
$RUNNER_TEMP/${{ matrix.os }}-${{ matrix.suite }}-${{ matrix.arch }}-*.bin.gz
@ -114,15 +114,15 @@ jobs:
uses: actions/checkout@v4
- name: Set up QEMU
timeout-minutes: 1
timeout-minutes: 101
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
timeout-minutes: 1
timeout-minutes: 101
uses: docker/setup-buildx-action@v2
- name: Build
timeout-minutes: 30
timeout-minutes: 130
uses: docker/build-push-action@v3
with:
context: .

89
README_devuan.md Normal file
View File

@ -0,0 +1,89 @@
# Debian SD card images
This repository is a bunch of scripts to build SD card images that various [single-board computers](https://en.wikipedia.org/wiki/Single-board_computer) (SBC) can boot. Emphasis is on pureness; pure Debian and pure mainline U-boot.
## Pre-built images
Pre-built images ready for download are availble at [sd-card-images.johang.se](https://sd-card-images.johang.se).
## Usage
The generated SD card images are made up of two separate images:
- **boot-BOARD.bin**: Boot image that contains partition table, U-Boot and chip-specific code. The boot image will only work on the board it's built for. The filename indicates which board it's built for.
- **debian-ARCH-VERSION-PASSWORD.bin**: Debian ext4 root filesystem image that contains a complete Debian installation, including kernel, initrd and device tree. This Debian image is generic and will work on all chips and boards with the CPU architecture it's built for. The filename indicates Debian version, CPU architecture and default root password.
These two images are the concatenated to a single image, which is then written to SD card, for example like this:
$ zcat boot-raspberrypi_3b.bin.gz debian-buster-arm64-XXXXXX.bin.gz > sd-card.img
# dd if=sd-card.img of=/dev/sdXXX
### Build your own Devuan boot image
#### To build a boot image for Raspberry Pi 3 B:
```bash
docker build -t devuan/sd-images -f Dockerfile.devuan https://git2.ring-zero.co.uk/cyteen/sd-card-images.git#testing_branch
mkdir -p /tmp/sd-images
docker run --rm -v /tmp/sd-images:/artifacts sd-images build-boot raspberrypi_3b bcm2837 rpi_3_defconfig aarch64-linux-gnu
```
The image will end up in /tmp/sd-images on the host.
#### To build a boot image for Pine64 Rockpro64:
```bash
docker build -t devuan/sd-images -f ./Dockerfile.devuan .
mkdir -p /tmp/sd-images
docker run --rm \
-v /tmp/sd-images:/artifacts \
devuan/sd-images \
build-boot ROCKPro64 rk3399 rockpro64-rk3399_defconfig aarch64-linux-gnu
```
The image will end up in /tmp/sd-images on the host.
#### To build a boot image for Sinovoip Banana Pi M2 Zero
```bash
docker build -t devuan/sd-images -f ./Dockerfile.devuan .
mkdir -p /tmp/sd-images
docker run --rm \
-v /tmp/sd-images:/artifacts \
devuan/sd-images \
build-boot banana_pi_m2_zero allwinner-h2+ bananapi_m2_zero_defconfig arm-linux-gnueabihf
```
The image will end up in /tmp/sd-images on the host.
### Build your own Debian ext4 root filesystem image
#### To build a Devuan ext4 root filesystem image for arm64:
```bash
docker build -t devuan/sd-images -f ./Dockerfile.devuan .
mkdir -p /tmp/sd-images
docker run --rm \
-v /tmp/sd-images:/artifacts \
-v `pwd`:/debimg \
--privileged \
devuan/sd-images \
build-debian devuan arm64 daedalus
```
The image will end up in /tmp/sd-images on the host.
#### To build a Devuan ext4 root filesystem image for armhf:
```bash
docker build -t devuan/sd-images -f ./Dockerfile.devuan .
mkdir -p /tmp/sd-images
docker run --rm \
-v /tmp/sd-images:/artifacts \
-v `pwd`:/debimg \
--privileged \
devuan/sd-images \
build-debian devuan armhf daedalus
```
The image will end up in /tmp/sd-images on the host.

View File

@ -194,7 +194,6 @@ radxa_zero,Zero,Radxa,meson-g12a,radxa-zero_defconfig,aarch64-linux-gnu,meson-g1
amlogic_u200,U200,Amlogic,meson-g12a,u200_defconfig,aarch64-linux-gnu,meson-g12a-u200
banana_pi_m2s,Banana Pi M2S,Sinovoip,meson-g12b,bananapi-m2s_defconfig,aarch64-linux-gnu,meson-g12b-a311d-bananapi-m2s
banana_pi_cm4io,Banana Pi CM4IO,Sinovoip,meson-g12b,bananapi-cm4-cm4io_defconfig,aarch64-linux-gnu,meson-g12b-bananapi-cm4-cm4io
khadas_vim3,VIM3,Khadas,meson-g12b,khadas-vim3_defconfig,aarch64-linux-gnu,meson-g12b-a311d-khadas-vim3
beelink_gt_king_x,GT-King X,Beelink,meson-g12b,beelink-gsking-x_defconfig,aarch64-linux-gnu,meson-g12b-gsking-x
beelink_gt_king,GT-King,Beelink,meson-g12b,beelink-gtking_defconfig,aarch64-linux-gnu,meson-g12b-gtking

1 Board ID Board name Board maker Chip ID U-Boot defconfig Build tuple Device tree
194 qemu_aarch64_virt qemu_x86_virt QEMU aarch64 virt QEMU x86 virt QEMU qemu-aarch64 qemu-x86 qemu_arm64_defconfig qemu-x86_defconfig aarch64-linux-gnu i686-linux-gnu N/A
195 qemu_x86_virt qemu_x86_64_virt QEMU x86 virt QEMU x86_64 virt QEMU qemu-x86 qemu-x86_64 qemu-x86_defconfig qemu-x86_64_defconfig i686-linux-gnu x86_64-linux-gnu N/A
196
197
198
199

View File

@ -1,8 +1,8 @@
OS,Dist,Arch,Name,Exp
debian,bullseye,armhf,"Debian oldstable/11.10 (""bullseye"")",False
debian,bullseye,arm64,"Debian oldstable/11.10 (""bullseye"")",False
debian,bookworm,armhf,"Debian stable/12.6 (""bookworm"")",False
debian,bookworm,arm64,"Debian stable/12.6 (""bookworm"")",False
debian,bullseye,armhf,"Debian oldstable/11.9 (""bullseye"")",False
debian,bullseye,arm64,"Debian oldstable/11.9 (""bullseye"")",False
debian,bookworm,armhf,"Debian stable/12.5 (""bookworm"")",False
debian,bookworm,arm64,"Debian stable/12.5 (""bookworm"")",False
debian,trixie,armhf,"Debian testing (""trixie"")",False
debian,trixie,arm64,"Debian testing (""trixie"")",False
debian,sid,armhf,"Debian unstable (""sid"")",False
@ -17,5 +17,4 @@ ubuntu,mantic,armhf,"Ubuntu 23.10 (""mantic"")",False
ubuntu,mantic,arm64,"Ubuntu 23.10 (""mantic"")",False
ubuntu,noble,armhf,"Ubuntu 24.04 LTS (""noble"")",False
ubuntu,noble,arm64,"Ubuntu 24.04 LTS (""noble"")",False
ubuntu,oracular,armhf,"Ubuntu 24.10 (""oracular"")",True
ubuntu,oracular,arm64,"Ubuntu 24.10 (""oracular"")",True

1 OS Dist Arch Name Exp
2 debian bullseye armhf Debian oldstable/11.10 ("bullseye") Debian oldstable/11.9 ("bullseye") False
3 debian bullseye arm64 Debian oldstable/11.10 ("bullseye") Debian oldstable/11.9 ("bullseye") False
4 debian bookworm armhf Debian stable/12.6 ("bookworm") Debian stable/12.5 ("bookworm") False
5 debian bookworm arm64 Debian stable/12.6 ("bookworm") Debian stable/12.5 ("bookworm") False
6 debian trixie armhf Debian testing ("trixie") False
7 debian trixie arm64 Debian testing ("trixie") False
8 debian sid armhf Debian unstable ("sid") False
17 ubuntu mantic arm64 Ubuntu 23.10 ("mantic") False
18 ubuntu noble armhf Ubuntu 24.04 LTS ("noble") False
19 ubuntu noble arm64 Ubuntu 24.04 LTS ("noble") False
ubuntu oracular armhf Ubuntu 24.10 ("oracular") True
20 ubuntu oracular arm64 Ubuntu 24.10 ("oracular") True

View File

@ -1,8 +1,8 @@
OS,Dist,Arch,Name,Exp
debian,bullseye,i386,"Debian oldstable/11.10 (""bullseye"")",False
debian,bullseye,amd64,"Debian oldstable/11.10 (""bullseye"")",False
debian,bookworm,i386,"Debian stable/12.6 (""bookworm"")",False
debian,bookworm,amd64,"Debian stable/12.6 (""bookworm"")",False
debian,bullseye,i386,"Debian oldstable/11.9 (""bullseye"")",False
debian,bullseye,amd64,"Debian oldstable/11.9 (""bullseye"")",False
debian,bookworm,i386,"Debian stable/12.5 (""bookworm"")",False
debian,bookworm,amd64,"Debian stable/12.5 (""bookworm"")",False
debian,trixie,i386,"Debian testing (""trixie"")",False
debian,trixie,amd64,"Debian testing (""trixie"")",False
debian,sid,i386,"Debian unstable (""sid"")",False

1 OS Dist Arch Name Exp
2 debian bullseye i386 Debian oldstable/11.10 ("bullseye") Debian oldstable/11.9 ("bullseye") False
3 debian bullseye amd64 Debian oldstable/11.10 ("bullseye") Debian oldstable/11.9 ("bullseye") False
4 debian bookworm i386 Debian stable/12.6 ("bookworm") Debian stable/12.5 ("bookworm") False
5 debian bookworm amd64 Debian stable/12.6 ("bookworm") Debian stable/12.5 ("bookworm") False
6 debian trixie i386 Debian testing ("trixie") False
7 debian trixie amd64 Debian testing ("trixie") False
8 debian sid i386 Debian unstable ("sid") False

View File

@ -1,13 +0,0 @@
---
layout: board
title: Banana Pi CM4IO SD card images
description: "Minimal, pure and up-to-date vanilla Debian/Ubuntu arm64 SD card images for Banana Pi CM4IO by Sinovoip, SoC: Amlogic S922X/A311D, CPU ISA: armv8"
board_id: banana_pi_cm4io
board_dtb_name: meson-g12b-bananapi-cm4-cm4io
board_name: Banana Pi CM4IO
board_maker_name: Sinovoip
board_soc_name: Amlogic S922X/A311D
board_cpu_name: ARM Cortex A73/A53 (armv8)
board_cpu_arch_isa: armv8
board_cpu_arch_debian: arm64
---

View File

@ -2,6 +2,6 @@
os: debian
dist: bullseye
arch: armhf
name: Debian oldstable/11.10 ("bullseye")
name: Debian oldstable/11.9 ("bullseye")
exp: False
---

View File

@ -2,6 +2,6 @@
os: debian
dist: bullseye
arch: arm64
name: Debian oldstable/11.10 ("bullseye")
name: Debian oldstable/11.9 ("bullseye")
exp: False
---

View File

@ -2,6 +2,6 @@
os: debian
dist: bookworm
arch: armhf
name: Debian stable/12.6 ("bookworm")
name: Debian stable/12.5 ("bookworm")
exp: False
---

View File

@ -2,6 +2,6 @@
os: debian
dist: bookworm
arch: arm64
name: Debian stable/12.6 ("bookworm")
name: Debian stable/12.5 ("bookworm")
exp: False
---

View File

@ -1,7 +0,0 @@
---
os: ubuntu
dist: oracular
arch: armhf
name: Ubuntu 24.10 ("oracular")
exp: True
---

View File

@ -44,9 +44,6 @@ libretech_s912_pc*)
beelink_gt_king*)
BOARD=beelink-s922x
;;
banana_pi_cm4io)
BOARD=bananapi-cm4io
;;
*)
# X_Y_defconfig -> x-y
BOARD=`echo "${DEFCONFIG%_defconfig}" | tr _ -`

View File

@ -73,7 +73,8 @@ sed -i -e "s/BOOT_UART=0/BOOT_UART=1/" bootcode.bin
# Create empty FAT partition
rm -f vfat.img
fallocate -l 28MiB vfat.img
# fallocate fails on some (git CI) COW filesystems, so have a coreutils alternative.
fallocate -l 28MiB vfat.img || truncate --size 28MiB vfat.img
mkfs.vfat vfat.img
# Copy boot files to FAT partition

View File

@ -197,7 +197,8 @@ mv debian/tmp/versions.csv versions.csv
# >>> ((3800000000 - 32 * 1024 * 1024) // (1024 * 1024)) * (1024 * 1024)
# 3765436416
rm -f ext4.img
fallocate -l 3765436416 ext4.img
# fallocate fails on some (git CI) COW filesystems, so have a coreutils alternative.
fallocate -l 3765436416 ext4.img || truncate --size=3765436416 ext4.img
mkfs.ext4 -d debian ext4.img
pigz ext4.img

View File

@ -14,7 +14,8 @@ if [ $IMAGE_SIZE -lt 1000000000 ]; then
exit 1
fi
rm -f "${IMAGE}"
fallocate -v -l "${IMAGE_SIZE}" "${IMAGE}" # 3,800,000,000 bytes
# fallocate fails on some (git CI) COW filesystems, so have a coreutils alternative.
fallocate -v -l "${IMAGE_SIZE}" "${IMAGE}" || truncate --size "${IMAGE_SIZE}" "${IMAGE}" # 3,800,000,000 bytes
parted -s "${IMAGE}" mklabel msdos
parted -s "${IMAGE}" mkpart primary fat32 -- 4MiB 32MiB # 28 MiB (29,360,128 bytes)
@ -23,7 +24,8 @@ parted -s "${IMAGE}" set 2 boot on
# Create empty FAT partition
rm -f vfat.img
fallocate -l 28MiB vfat.img
# fallocate fails on some (git CI) COW filesystems, so have a coreutils alternative.
fallocate -l 28MiB vfat.img || truncate --size 28MiB vfat.img
mkfs.vfat vfat.img
# Leave a friendly note about this partition

View File

@ -31,7 +31,8 @@ LOOP1=$(losetup -f -P --show image.bin) && {
}
# Assume 8GB virtual disk
fallocate -l 8GB image.bin
# fallocate fails on some (git CI) COW filesystems, so have a coreutils alternative.
fallocate -l 8GB image.bin || truncate --size 8GB image.bin
# Extend second partition
parted -s -a opt image.bin "resizepart 2 100%"