./build-firmware.sh DM1701 builds OpenDM1701.bin with PLATFORM_RT84_DM1701 + PLATFORM_VARIANT_DM1701 (vs PLATFORM_MDUV380). Same firmware source, same GCC 14 toolchain and codec placement. Not officially tested on DM-1701 hardware yet. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
36 lines
1.3 KiB
Bash
Executable file
36 lines
1.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# Build the FreeTRX firmware in Docker. Nothing is installed on the host: the
|
|
# ARM toolchain lives only in the image.
|
|
#
|
|
# Usage: ./build-firmware.sh [MDUV380|DM1701] (default: MDUV380)
|
|
# MDUV380 -> TYT MD-UV380 / Retevis RT-3S -> MDUV380_firmware/build/OpenMDUV380.bin
|
|
# DM1701 -> Baofeng DM-1701 / Retevis RT-84 -> MDUV380_firmware/build/OpenDM1701.bin
|
|
set -euo pipefail
|
|
|
|
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
IMAGE=opengd77-mduv380-builder
|
|
|
|
PLATFORM="${1:-MDUV380}"
|
|
case "$PLATFORM" in
|
|
MDUV380) OUT="OpenMDUV380"; MODEL="MD-UV380" ;;
|
|
DM1701) OUT="OpenDM1701"; MODEL="DM-1701" ;;
|
|
*) echo "Unknown platform '$PLATFORM' (use MDUV380 or DM1701)"; exit 1 ;;
|
|
esac
|
|
|
|
echo "==> Building toolchain image ($IMAGE)"
|
|
docker build --platform linux/amd64 -t "$IMAGE" "$REPO_DIR/docker"
|
|
|
|
echo "==> Running build in container ($PLATFORM)"
|
|
docker run --rm --platform linux/amd64 \
|
|
-v "$REPO_DIR":/work \
|
|
"$IMAGE" \
|
|
bash /work/docker/build.sh "$PLATFORM"
|
|
|
|
echo
|
|
echo "==> Firmware ready:"
|
|
echo " $REPO_DIR/MDUV380_firmware/build/${OUT}.bin"
|
|
echo
|
|
echo "Flash it (with the radio in firmware-update mode) using:"
|
|
echo " ./MDUV380_firmware/tools/opengd77_stm32_firmware_loader.py \\"
|
|
echo " -m ${MODEL} -f MDUV380_firmware/build/${OUT}.bin"
|