#!/bin/bash # Сборка emmc.img = Boot1 + Boot2 + RPMB + User. WIP без orig FFU. set -e BOOT_MB=${BOOT_MB:-4} RPMB_MB=${RPMB_MB:-4} USER_MB=${USER_MB:-7456} OUT=${1:-images/emmc.img} FW_DIR=fw usage() { echo "usage: $0 [--help] [out.img]"; echo " Нужны fw/orig.ffu или fw/dump.bin. Без них — нулевой WIP-образ для проверки геометрии."; } if [ "$1" == "--help" ] || [ "$1" == "-h" ]; then usage; exit 0; fi mkdir -p "$(dirname "$OUT")" # WIP: пока нет orig FFU (2GB не влезет в 4.1G на сервере) — строим нулевой образ верной геометрии # Boot1/Boot2 кратно 128K, одинаковые. User кратно 512B. echo "[build-emmc] WIP: orig FFU не найден в $FW_DIR — строю нулевой образ геометрии" echo "[build-emmc] Положи в fw/orig.ffu и перезапусти для реальной GPT40" echo "[build-emmc] Boot=${BOOT_MB}M RPMB=${RPMB_MB}M User=${USER_MB}M -> $OUT" BOOT_KB=$((BOOT_MB*1024)); RPMB_KB=$((RPMB_MB*1024)); USER_KB=$((USER_MB*1024)) TOTAL_KB=$((BOOT_KB*2+RPMB_KB+USER_KB)) dd if=/dev/zero of="$OUT" bs=1K count=1024 status=none truncate -s "${TOTAL_KB}K" "$OUT" echo "[build-emmc] OK: $OUT ($(du -h "$OUT" | cut -f1)) — НУЛЕВОЙ, не шить в прод!" echo "[build-emmc] TODO: mkemmc.sh + ffureader GPT + CID Samsung + EXT_CSD REV5"