FIRSBOOT: add extra p5 for ROMS (use GPT) & add option for switching FS (#168)

* BOARD: firstboot:  use ext4 for p1 explicitly
* BOARD: /etc/main : update fsck scripts
* BOARD: inittab: 
 - add /roms in p5
 - mount RO /boot in async (default)
* BOARD: genimage.sh: gen ROMS EXT4 image
* BAORD: prebuild.sh: 
 - create mount point for ROMS
 - increase MAIN & ROMS block size
 - the size of /mnt is "hardcoded" after image creation
 - we need real space for backup manipulation in ROMS
* BOARD: mv roms upward
* BOARD: firstboot: add p5 ROMS and resize
* BOARD: genimage-sdcard.cfg: 
 - use GPT
 - add p5 for roms

* PACKAGE/BOARD: patch/genimage: down-size gpt table
* PACKAGE/DEFCONFIG: add `gptfdisk` package to shared
* BOARD: firstboot: allow for switching FS type in MAIN and ROMS
* README: update firstboot_procedure.drawio.png
  - add FS change boxes and IPK installer
* BOARD: firstboot: not mandatory to resize for IPK manager
* DEFCONFIG: add default kernel patching
* DEFCONFIG: uppercase rootfs label
* BOARD: umtpr: uppercas partition LABELS
* DEFCONFIG/PACKAGE: add RSYNC pkg
* BOARD: mount FAT p5 in async (default)

* BOARD: add ROMS icons for Win
Co-Authored-By: TriForce <triforce@gznetwork.com>
This commit is contained in:
Apaczer
2025-05-18 16:27:05 +02:00
committed by GitHub
parent ae9408c067
commit bb94014294
24 changed files with 348 additions and 126 deletions

View File

@@ -15,12 +15,14 @@
# Startup the system
::sysinit:/bin/mount -t proc proc /proc
::sysinit:/bin/mount -o remount,ro /
::sysinit:/bin/mkdir -p /dev/pts
::sysinit:/bin/mkdir -p /dev/shm
::sysinit:/bin/mount -a
::sysinit:/bin/hostname -F /etc/hostname
::sysinit:/bin/mount /dev/mmcblk0p4 /mnt -o commit=5,flushoncommit,noatime,nodiratime,exec
::sysinit:/bin/mount /dev/mmcblk0p1 /boot -t vfat -o ro,exec,sync,utf8
::sysinit:/bin/mount /dev/mmcblk0p5 /roms -o rw,noatime
::sysinit:/bin/mount /dev/mmcblk0p1 /boot -t vfat -o ro,exec,utf8
::sysinit:/sbin/swapon /dev/mmcblk0p3
# now run any rc scripts

View File

@@ -2,10 +2,11 @@
BOOTLOGO="boot-logo"
export HOME=/mnt
export ROMS=/roms
export BOOTDIR=/boot # we expect /dev/mmcblk0p1 has been mounted here read only, from inittab
export SDL_NOMOUSE=1
START="${HOME}/autoexec.sh"
BOOTDIR=/boot # we expect /dev/mmcblk0p1 has been mounted here read only, from inittab
LOGS=/dev/null
# check if it's first boot and turn on messages if yes
@@ -95,14 +96,37 @@ elif test -r "${HOME}/firstboot.completed"; then
rm "${HOME}/firstboot.completed"
fi
if !(grep -q FAT_CHECK\=\0 "${HOME}/options.cfg"); then
##Check if FAT16 is flagged as "dirty", and if so unmount, repair, remount
if !(grep -q FS_CHECK\=\0 "${HOME}/options.cfg"); then
##Check if BOOT (FAT16) is flagged as "dirty", and if so unmount, repair, remount
if dmesg | grep "mmcblk0p1" > /dev/null; then
echo -e "\e[31mDirty sectors detected.\e[0m"
echo -e "\e[32mChecking&Repairing FAT16 BOOT partition...\e[0m"
umount /dev/mmcblk0p1
fsck.vfat -y /dev/mmcblk0p1 > /dev/null;
mount /dev/mmcblk0p1 "${BOOTDIR}" -t vfat -o ro,exec,sync,utf8
mount /dev/mmcblk0p1 "${BOOTDIR}" -t vfat -o ro,exec,utf8
echo -e "\e[32mCheck complete.\e[0m"
fi
##Check if MAIN (EXT4) is flagged as "dirty", and if so unmount, repair, remount
if dmesg | grep "EXT4-fs (mmcblk0p4): warning: mounting fs with errors, running e2fsck is recommended" > /dev/null; then
echo -e "\e[31mUnclean shutdown detected.\e[0m"
echo -e "\e[32mChecking MAIN(EXT4) partition...\e[0m"
umount /dev/mmcblk0p4
e2fsck -y /dev/mmcblk0p4 > /dev/null;
mount /dev/mmcblk0p4 "${HOME}" -o rw,sync,exec
fi
##Check if ROMS (EXT4 or FAT32) is flagged as "dirty", and if so unmount, repair, remount
if dmesg | grep "EXT4-fs (mmcblk0p5): warning: mounting fs with errors, running e2fsck is recommended" > /dev/null; then
echo -e "\e[31mUnclean shutdown detected.\e[0m"
echo -e "\e[32mChecking ROMS(EXT4) partition...\e[0m"
umount /dev/mmcblk0p5
e2fsck -y /dev/mmcblk0p5 > /dev/null;
mount /dev/mmcblk0p5 "${ROMS}" -o rw,noatime
elif dmesg | grep "FAT-fs (mmcblk0p5): Volume was not properly unmounted. Some data may be corrupt. Please run fsck." > /dev/null; then
echo -e "\e[31mDirty sectors detected.\e[0m"
echo -e "\e[32mChecking&Repairing ROMS(FAT32) partition...\e[0m"
umount /dev/mmcblk0p5
fsck.vfat -y /dev/mmcblk0p5 > /dev/null;
mount /dev/mmcblk0p5 "${ROMS}" -t vfat -o rw,utf8
echo -e "\e[32mCheck complete.\e[0m"
fi
fi

View File

@@ -11,9 +11,10 @@ loop_on_disconnect 1
#storage command : Create add a storage entry point. Up to 16 entry points supported
#Syntax : storage "PATH" "NAME"
storage "/" "rootfs" "ro"
storage "/mnt" "main" "rw"
storage "/boot" "boot" "ro"
storage "/" "ROOTFS" "ro"
storage "/mnt" "MAIN" "rw"
storage "/roms" "ROMS" "rw"
storage "/boot" "BOOT" "ro"
#
# Uncomment the following line if you want to