Notes.md, absolute path normalizing
- edit NOTES.md for updating line numbers - add check for using normalized path in initramfs normalization
This commit is contained in:
@@ -10,22 +10,22 @@ Mission
|
||||
Repository map (jump-points)
|
||||
- Build entrypoint and stages:
|
||||
- [scripts/build.sh](scripts/build.sh)
|
||||
- Orchestrator main: [bash.main_build_process()](scripts/build.sh:213)
|
||||
- Orchestrator main: [bash.main_build_process()](scripts/build.sh:214)
|
||||
- Kernel build stage wrapper: [bash.stage_kernel_build()](scripts/build.sh:398)
|
||||
- Initramfs create stage: [bash.stage_initramfs_create()](scripts/build.sh:374)
|
||||
- Initramfs test stage: [bash.stage_initramfs_test()](scripts/build.sh:385)
|
||||
- Stages infra: [bash.stage_run()](scripts/lib/stages.sh:99), [scripts/lib/stages.sh](scripts/lib/stages.sh)
|
||||
- Common utilities and config:
|
||||
- Config load, logging, path normalization: [bash.common.sh](scripts/lib/common.sh:1)
|
||||
- Absolute path normalization for INSTALL_DIR, COMPONENTS_DIR, KERNEL_DIR, DIST_DIR: [bash.common.sh](scripts/lib/common.sh:225)
|
||||
- Absolute path normalization for INSTALL_DIR, COMPONENTS_DIR, KERNEL_DIR, DIST_DIR: [bash.common.sh](scripts/lib/common.sh:236)
|
||||
- Initramfs assembly:
|
||||
- All initramfs functions: [scripts/lib/initramfs.sh](scripts/lib/initramfs.sh)
|
||||
- Final customization hook (branding, dirs, ntp): [bash.initramfs_finalize_customization()](scripts/lib/initramfs.sh:575)
|
||||
- Create archive (pre-CPIO checks, call finalize): [bash.initramfs_create_cpio()](scripts/lib/initramfs.sh:680)
|
||||
- Validate contents (with new diagnostics): [bash.initramfs_validate()](scripts/lib/initramfs.sh:791)
|
||||
- Create archive (pre-CPIO checks, call finalize): [bash.initramfs_create_cpio()](scripts/lib/initramfs.sh:688)
|
||||
- Validate contents (with new diagnostics): [bash.initramfs_validate()](scripts/lib/initramfs.sh:799)
|
||||
- Kernel integration:
|
||||
- Kernel helpers: [scripts/lib/kernel.sh](scripts/lib/kernel.sh)
|
||||
- Embed initramfs in config: [bash.kernel_modify_config_for_initramfs()](scripts/lib/kernel.sh:129)
|
||||
- Embed initramfs in config: [bash.kernel_modify_config_for_initramfs()](scripts/lib/kernel.sh:130)
|
||||
- Zinit config and init scripts (inside initramfs):
|
||||
- zinit YAML/services: [config/zinit/](config/zinit/)
|
||||
- Modules mount script: [sh.modules.sh](config/zinit/init/modules.sh:1)
|
||||
@@ -44,7 +44,7 @@ High-priority behaviors and policies
|
||||
|
||||
2) Path normalization (prevents “resolved under kernel/current” errors)
|
||||
- After loading [config/build.conf](config/build.conf), key directories are normalized to absolute paths:
|
||||
- [bash.common.sh](scripts/lib/common.sh:225)
|
||||
- [bash.common.sh](scripts/lib/common.sh:236)
|
||||
- Prevents validation resolving INSTALL_DIR relative to CWD (e.g., /workspace/kernel/current/initramfs).
|
||||
|
||||
3) Initramfs essential directories guarantee
|
||||
@@ -97,8 +97,8 @@ Diagnostics-first workflow (strict)
|
||||
- Example: rm -f .build-stages/validation.done && DEBUG=1 ./scripts/build.sh --skip-tests
|
||||
- Use existing diagnostics:
|
||||
- Branding debug lines: [bash.initramfs_finalize_customization()](scripts/lib/initramfs.sh:575)
|
||||
- Validation debug lines (input, PWD, PROJECT_ROOT, INSTALL_DIR, resolved): [bash.initramfs_validate()](scripts/lib/initramfs.sh:791)
|
||||
- Pre-CPIO sanity listing and essential checks: [bash.initramfs_create_cpio()](scripts/lib/initramfs.sh:680)
|
||||
- Validation debug lines (input, PWD, PROJECT_ROOT, INSTALL_DIR, resolved): [bash.initramfs_validate()](scripts/lib/initramfs.sh:799)
|
||||
- Pre-CPIO sanity listing and essential checks: [bash.initramfs_create_cpio()](scripts/lib/initramfs.sh:688)
|
||||
- Only after validation confirms the hypothesis, apply the minimal fix.
|
||||
|
||||
Common tasks and commands
|
||||
@@ -122,13 +122,13 @@ A) Diagnose “passwordless root not working”
|
||||
- Extract dist/initramfs.cpio.xz to a temp dir and grep '^root:' etc/shadow; expect root::
|
||||
- If not present:
|
||||
- Ensure passwd is available in container (comes from shadow package): [Dockerfile](Dockerfile)
|
||||
- Check we use chroot ${initramfs_dir} passwd -d root (not --root or direct file edits): [bash.initramfs_finalize_customization()](scripts/lib/initramfs.sh:589)
|
||||
- Check we use chroot ${initramfs_dir} passwd -d root (not --root or direct file edits): [bash.initramfs_finalize_customization()](scripts/lib/initramfs.sh:592)
|
||||
|
||||
B) Fix “Initramfs directory not found: initramfs (resolved: /workspace/kernel/current/initramfs)”
|
||||
- Confirm absolute path normalization after config load:
|
||||
- [bash.common.sh](scripts/lib/common.sh:225)
|
||||
- [bash.common.sh](scripts/lib/common.sh:236)
|
||||
- Confirm validation prints “Validation debug:” with resolved absolute path:
|
||||
- [bash.initramfs_validate()](scripts/lib/initramfs.sh:791)
|
||||
- [bash.initramfs_validate()](scripts/lib/initramfs.sh:799)
|
||||
|
||||
C) INITRAMFS_ARCHIVE unbound during kernel build stage
|
||||
- stage_kernel_build now defaults INITRAMFS_ARCHIVE if unset:
|
||||
@@ -154,9 +154,9 @@ Project conventions
|
||||
|
||||
Key files to keep in sync with behavior decisions
|
||||
- Branding and finalization: [bash.initramfs_finalize_customization()](scripts/lib/initramfs.sh:575)
|
||||
- Validation diagnostics: [bash.initramfs_validate()](scripts/lib/initramfs.sh:791)
|
||||
- Archive creation (pre-CPIO checks): [bash.initramfs_create_cpio()](scripts/lib/initramfs.sh:680)
|
||||
- Path normalization after config: [bash.common.sh](scripts/lib/common.sh:225)
|
||||
- Validation diagnostics: [bash.initramfs_validate()](scripts/lib/initramfs.sh:799)
|
||||
- Archive creation (pre-CPIO checks): [bash.initramfs_create_cpio()](scripts/lib/initramfs.sh:688)
|
||||
- Path normalization after config: [bash.common.sh](scripts/lib/common.sh:236)
|
||||
- Modules/firmware remote fallback: [sh.modules.sh](config/zinit/init/modules.sh:1), [sh.firmware.sh](config/zinit/init/firmware.sh:1)
|
||||
- Kernel stage defaulting for archive: [bash.stage_kernel_build()](scripts/build.sh:398)
|
||||
- Operational notes: [docs/NOTES.md](docs/NOTES.md)
|
||||
|
||||
Reference in New Issue
Block a user