Initial commit.
This commit is contained in:
commit
8888c9e15c
|
|
@ -0,0 +1,7 @@
|
|||
# Previous component images
|
||||
partition.img.gz
|
||||
firmware.*.img.gz
|
||||
*_combined-image.img
|
||||
|
||||
# Previous combined images
|
||||
old_images/
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
This directory provides installer images in the form of a device-specific
|
||||
part (containing the partition table and the system firmware) and a
|
||||
device-independent part (containing the actual installer), which can be
|
||||
unpacked and concatenated together to build a complete installer image.
|
||||
|
||||
The device-specific part is named firmware.<board_name>.img.gz
|
||||
and the device-independent part is named partition.img.gz.
|
||||
|
||||
In addition to providing several firmware.<board_name>.img.gz files for
|
||||
a number of devices with device-specific system firmware, we also
|
||||
provide a firmware.none.img.gz file (containing the partition table but
|
||||
without any system firmware) to provide generic installer images for
|
||||
devices for which no firmware.<board_name>.img.gz file is provided.
|
||||
|
||||
To create a complete image from the two parts on Linux systems, you can
|
||||
use zcat as follows:
|
||||
|
||||
zcat firmware.<board_name>.img.gz partition.img.gz > complete_image.img
|
||||
|
||||
On Windows systems, you have to first decompress the two parts separately,
|
||||
which can be done e.g. by using 7-Zip, and then concatenate the decompressed
|
||||
parts together by running the command
|
||||
|
||||
copy /b firmware.<board_name>.img + partition.img complete_image.img
|
||||
|
||||
in a Windows CMD.exe window.
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
# Debian Installer Image Builder for RockPro64 RK3399
|
||||
|
||||
A shell script that automates downloading and combining Debian installer images for arm64 boards, supporting both release and daily builds.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Features](#features)
|
||||
- [Requirements](#requirements)
|
||||
- [Usage](#usage)
|
||||
- [Configuration](#configuration)
|
||||
- [Output Files](#output-files)
|
||||
- [License](#license)
|
||||
|
||||
## Features
|
||||
|
||||
- Downloads firmware and partition images from official Debian repositories
|
||||
- Supports both release and daily build versions
|
||||
- Automatically combines downloaded images
|
||||
- Timestamp-based naming for daily builds
|
||||
- Cleans up old image files
|
||||
|
||||
## Requirements
|
||||
|
||||
- Bash shell
|
||||
- wget utility
|
||||
- zcat utility (part of gzip package)
|
||||
|
||||
## Usage
|
||||
|
||||
Save the script as `debian-image-builder.sh`, make it executable, and run:
|
||||
|
||||
```bash
|
||||
chmod +x debian-image-builder.sh
|
||||
./debian-image-builder.sh
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The script uses the following variables:
|
||||
|
||||
```bash
|
||||
BOARD=rockpro64-rk3399 # Hardware board identifier
|
||||
RELEASE=forky # Debian release (bookworm/trixie/forky)
|
||||
IMAGE_TYPE=daily # Type of image (daily/release)
|
||||
TIMESTAMP=$(date "+%Y%m%d%H%M%S")
|
||||
```
|
||||
|
||||
```
|
||||
Where BOARD can be:
|
||||
* a64-olinuxino
|
||||
* firefly-rk3399
|
||||
* nanopi_neo2
|
||||
* none
|
||||
* orangepi_one_plus
|
||||
* orangepi_zero_plus2
|
||||
* pine64_plus
|
||||
* pinebook-pro-rk3399
|
||||
* pinebook
|
||||
* puma-rk3399
|
||||
* rock-pi-4-rk3399
|
||||
* rock64-rk3328
|
||||
* rockpro64-rk3399
|
||||
* teres_i
|
||||
|
||||
## Output Files
|
||||
Based on the
|
||||
:
|
||||
- Release builds: `${BOARD}-${RELEASE}_combined-image.img`
|
||||
- Daily builds: `${BOARD}-${TIMESTAMP}-${RELEASE}_combined-image.img`
|
||||
|
||||
Old combined images are moved to the
|
||||
directory.
|
||||
|
||||
## License
|
||||
[MIT License](LICENSE)
|
||||
```
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
BOARD=rockpro64-rk3399
|
||||
# RELEASE=bookworm
|
||||
# RELEASE=trixie
|
||||
RELEASE=forky
|
||||
IMAGE_TYPE=daily # or release
|
||||
TIMESTAMP=$(date "+%Y%m%d%H%M%S")
|
||||
|
||||
# remove the old image
|
||||
rm partition.img.gz
|
||||
rm firmware."${BOARD}".img.gz
|
||||
mv *_combined-image.img old_images
|
||||
|
||||
# if statement to set urls based on IMAGE_TYPE
|
||||
if [ "${IMAGE_TYPE}" = "release" ]; then
|
||||
BOARD_URL=http://ftp.debian.org/debian/dists/"${RELEASE}"/main/installer-arm64/current/images/netboot/SD-card-images/firmware."${BOARD}".img.gz
|
||||
PARTITION_URL=http://ftp.debian.org/debian/dists/"${RELEASE}"/main/installer-arm64/current/images/netboot/SD-card-images/partition.img.gz
|
||||
wget "${BOARD_URL}"
|
||||
wget "${PARTITION_URL}"
|
||||
zcat firmware."${BOARD}".img.gz partition.img.gz >"${BOARD}-${RELEASE}"_combined-image.img
|
||||
else
|
||||
PARTITION_URL=https://d-i.debian.org/daily-images/arm64/daily/netboot/SD-card-images/partition.img.gz
|
||||
BOARD_URL=https://d-i.debian.org/daily-images/arm64/daily/netboot/SD-card-images/firmware.${BOARD}.img.gz
|
||||
wget "${PARTITION_URL}"
|
||||
wget "${BOARD_URL}"
|
||||
zcat firmware."${BOARD}".img.gz partition.img.gz >"${BOARD}-${TIMESTAMP}-${RELEASE}"_combined-image.img
|
||||
fi
|
||||
Loading…
Reference in New Issue