Compare commits
10 Commits
master
...
test_devua
| Author | SHA1 | Date |
|---|---|---|
|
|
cd9bece1fd | |
|
|
96b4e6e486 | |
|
|
0893f1209b | |
|
|
0084b4c11a | |
|
|
9581e2e022 | |
|
|
109f5489da | |
|
|
d9da51b30f | |
|
|
b7b3be32f9 | |
|
|
5b052a2e55 | |
|
|
45bdd6e5ce |
|
|
@ -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: .
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
@ -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,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,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,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
|
||||
---
|
||||
|
|
@ -2,6 +2,6 @@
|
|||
os: debian
|
||||
dist: bullseye
|
||||
arch: armhf
|
||||
name: Debian oldstable/11.10 ("bullseye")
|
||||
name: Debian oldstable/11.9 ("bullseye")
|
||||
exp: False
|
||||
---
|
||||
|
|
|
|||
|
|
@ -2,6 +2,6 @@
|
|||
os: debian
|
||||
dist: bullseye
|
||||
arch: arm64
|
||||
name: Debian oldstable/11.10 ("bullseye")
|
||||
name: Debian oldstable/11.9 ("bullseye")
|
||||
exp: False
|
||||
---
|
||||
|
|
|
|||
|
|
@ -2,6 +2,6 @@
|
|||
os: debian
|
||||
dist: bookworm
|
||||
arch: armhf
|
||||
name: Debian stable/12.6 ("bookworm")
|
||||
name: Debian stable/12.5 ("bookworm")
|
||||
exp: False
|
||||
---
|
||||
|
|
|
|||
|
|
@ -2,6 +2,6 @@
|
|||
os: debian
|
||||
dist: bookworm
|
||||
arch: arm64
|
||||
name: Debian stable/12.6 ("bookworm")
|
||||
name: Debian stable/12.5 ("bookworm")
|
||||
exp: False
|
||||
---
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
os: ubuntu
|
||||
dist: oracular
|
||||
arch: armhf
|
||||
name: Ubuntu 24.10 ("oracular")
|
||||
exp: True
|
||||
---
|
||||
|
|
@ -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 _ -`
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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%"
|
||||
|
|
|
|||
Loading…
Reference in New Issue