feat: FS-E strict filesystem mode - ext4 rw driver, FAT32 big-disk fix, forced re-login
- CODE/dsk/ext4.c: minimal full ext4 read/write (GPT probe, feature gate, extent depth 0/1 rw, block/inode alloc-free, dir insert, write-verify); boot selftest PASS on p2. Unsupported features panic (FS-E2x), zero fallback. - DSK fat32 write: on-demand FAT entry RMW + chunked free-cluster scan (fixes "no free clusters" on 5.3G ESP); rec_len shrink offset (+4) and chunk alignment fixes. USER.CONF write-verify ok, firstInit flip ok. - First-boot: wizard -> persist -> forced login (FS-E06 if skipped/failed) -> desktop. login.elf loaded via system/user/use fallback. - FirstInit network page: Connect now panics NET-E01 (no wlan stack); Save (config only) is the only path forward. - FirstInit/DSK fatal: ohMyLogo lotus fatal screen (NET-E01 / FS-E series). - Boot screen: Logo.png image removed, "DESHAB P01" text centered only; dcp/xj logos regenerated from TEXTURES/. - run_qemu.bat: main GPT image on SATA ide.0 (AHCI provider must see ext4).
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Generate panic_logo_data.inc from ohMyLogo.png (root).
|
||||
#!/usr/bin/env python3
|
||||
"""Generate RGBA8888 C array from a PNG (panic screen / login intro logo).
|
||||
|
||||
- Downscale logo to 384px wide (keep aspect), RGBA8888
|
||||
- Sample the 4 corners (averaged) as the panic-screen background color
|
||||
Usage: python gen_panic_logo.py <ohMyLogo.png> <panic_logo_data.inc>
|
||||
- Downscale logo to target width (keep aspect), RGBA8888
|
||||
- Sample the 4 corners (averaged) as background color
|
||||
Usage: python gen_panic_logo.py <src.png> <out.c> [target_width]
|
||||
"""
|
||||
import sys
|
||||
from PIL import Image
|
||||
@@ -16,10 +16,11 @@ TARGET_W = 384
|
||||
def main() -> None:
|
||||
src = sys.argv[1] if len(sys.argv) > 1 else SRC
|
||||
dst = sys.argv[2] if len(sys.argv) > 2 else DST
|
||||
target_w = int(sys.argv[3]) if len(sys.argv) > 3 else TARGET_W
|
||||
im = Image.open(src).convert("RGBA")
|
||||
w0, h0 = im.size
|
||||
scale = TARGET_W / w0
|
||||
w, h = TARGET_W, max(1, round(h0 * scale))
|
||||
scale = target_w / w0
|
||||
w, h = target_w, max(1, round(h0 * scale))
|
||||
im = im.resize((w, h), Image.LANCZOS)
|
||||
px = im.load()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user