27 lines
1.4 KiB
Bash
Executable File
27 lines
1.4 KiB
Bash
Executable File
#!/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"
|