feat(panic): FUCK [panic] mode=strict|fallback + realtest image variant

- UTSM panic_full returns in fallback mode (logs [PANIC:FALLBACK] + code + hit
  count); panic_halt keeps always-halt sites (CPU exception, VMM-E11 LA57,
  VMM-E15 DSK jump, UTSM-E42 test hook). Call sites given safe continuations.
- Mode passed to DSK/FirstInit/login/desktop via DSK_BOOT_FLAG_PANIC_FALLBACK;
  DKM kernel_api.panic / kern.log.panic return to driver; ext4 fatal aborts the
  op via setjmp/longjmp and DSK falls back to FAT32 ESP.
- build.ps1/Makefile: dev=strict, release=fallback, new realtest (release
  options + strict); default -Variant all; serialized iso packing under -j.
- Fix '*/' inside comments (dkm.h, kernel_api.h, bus.c) that broke the build.
- Includes pending work: dkm_bus service bus, mt7920/wlan drivers, desktop
  files/startmenu/prank, pe-tools, diskinfo, docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Linehu
2026-10-12 23:57:19 +08:00
co-authored by Cursor
parent a7e5b2bc7a
commit 8554a82677
84 changed files with 7325 additions and 484 deletions
+14 -5
View File
@@ -1,10 +1,11 @@
# Deshab-OS cross-platform build (F3: 疯不应绑 Windows)
#
# Linux/macOS (native or WSL):
# make dev # build kernels+apps+drivers, inject dev config, pack ISO/deshab-dev.img
# make release # same, release config -> ISO/deshab-release.img
# make realtest # real-machine test config
# make dev # build kernels+apps+drivers, inject dev config, pack ISO/deshab-dev.img (panic=strict)
# make release # same, release config -> ISO/deshab-release.img (panic=fallback)
# make realtest # real-machine test config, release options + panic=strict
# make both # dev + release
# make all # dev + release + realtest (SYSTEM restored to dev config)
# make kernels apps drivers # compile only
#
# Requirements: clang + ld.lld (LLVM), GNU make, python3 + Pillow (logo),
@@ -53,9 +54,17 @@ DRV_OUTS := $(foreach s,$(DRV_SRCS),$(ROOT)/$(word 2,$(subst :, ,$(s))))
inject-dev inject-release inject-realtest \
iso-dev iso-release iso-realtest clean
all: both
# iso-* 共享 SYSTEM/ 注入点,-j 下必须串行打包
all: kernels apps drivers
@$(MAKE) --no-print-directory iso-dev
@$(MAKE) --no-print-directory iso-release
@$(MAKE) --no-print-directory iso-realtest
@$(MAKE) --no-print-directory inject-dev
both: dev release
both: kernels apps drivers
@$(MAKE) --no-print-directory iso-dev
@$(MAKE) --no-print-directory iso-release
@$(MAKE) --no-print-directory inject-dev
kernels:
@for d in $(KERNELS); do echo "[build] $$d"; $(MAKE) -C $$d -f MAKEFILE CC="$(CC)" LD="$(LD)" || exit 1; done