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:
@@ -46,13 +46,13 @@ Configuration – build.conf
|
||||
- FIRMWARE_TAG optional for reproducible firmware flist naming.
|
||||
|
||||
Absolute Path Normalization
|
||||
- Location: [bash.common.sh](scripts/lib/common.sh:225)
|
||||
- Location: [bash.common.sh](scripts/lib/common.sh:236)
|
||||
- After sourcing build.conf, the following variables are normalized to absolute paths anchored at PROJECT_ROOT:
|
||||
- INSTALL_DIR, COMPONENTS_DIR, KERNEL_DIR, DIST_DIR
|
||||
- Rationale: Prevents path resolution errors when CWD changes (e.g., when kernel build operates in /workspace/kernel/current, validation now resolves to /workspace/initramfs instead of /workspace/kernel/current/initramfs).
|
||||
|
||||
Build Pipeline – High Level
|
||||
- Orchestrator: [bash.main_build_process()](scripts/build.sh:213)
|
||||
- Orchestrator: [bash.main_build_process()](scripts/build.sh:214)
|
||||
- Stage list:
|
||||
- alpine_extract
|
||||
- alpine_configure
|
||||
@@ -92,16 +92,16 @@ Initramfs Assembly – Key Functions
|
||||
- Binary size optimization: [bash.initramfs_strip_and_upx()](scripts/lib/initramfs.sh:491)
|
||||
- Final customization: [bash.initramfs_finalize_customization()](scripts/lib/initramfs.sh:575)
|
||||
- See “Branding behavior” below.
|
||||
- Create archive: [bash.initramfs_create_cpio()](scripts/lib/initramfs.sh:662)
|
||||
- Create archive: [bash.initramfs_create_cpio()](scripts/lib/initramfs.sh:688)
|
||||
- Calls finalize, runs sanity checks, and creates initramfs.cpio.xz.
|
||||
- Validate: [bash.initramfs_validate()](scripts/lib/initramfs.sh:790)
|
||||
- Validate: [bash.initramfs_validate()](scripts/lib/initramfs.sh:799)
|
||||
- Ensures essential items exist, logs debug info:
|
||||
- Prints “Validation debug:” lines showing input, PWD, PROJECT_ROOT, INSTALL_DIR, and resolved path.
|
||||
|
||||
Kernel Integration
|
||||
- Get full kernel version: [bash.kernel_get_full_version()](scripts/lib/kernel.sh:13)
|
||||
- Apply config (embed initramfs): [bash.kernel_apply_config()](scripts/lib/kernel.sh:81)
|
||||
- Updates CONFIG_INITRAMFS_SOURCE to the archive’s absolute path via [bash.kernel_modify_config_for_initramfs()](scripts/lib/kernel.sh:129).
|
||||
- Updates CONFIG_INITRAMFS_SOURCE to the archive’s absolute path via [bash.kernel_modify_config_for_initramfs()](scripts/lib/kernel.sh:130).
|
||||
- Build kernel: [bash.kernel_build_with_initramfs()](scripts/lib/kernel.sh:173)
|
||||
- Build and install modules in container: [bash.kernel_build_modules()](scripts/lib/kernel.sh:228)
|
||||
- Installs modules to /lib/modules/$FULL_VERSION in container, runs depmod -a.
|
||||
@@ -139,8 +139,8 @@ Validation Diagnostics and Triage
|
||||
- Root cause:
|
||||
- INSTALL_DIR re-sourced in a different CWD and interpreted as relative.
|
||||
- Fix:
|
||||
- Absolute path normalization of INSTALL_DIR/COMPONENTS_DIR/KERNEL_DIR/DIST_DIR after sourcing build.conf in [bash.common.sh](scripts/lib/common.sh:225).
|
||||
- Additional “Validation debug” prints added in [bash.initramfs_validate()](scripts/lib/initramfs.sh:790).
|
||||
- Absolute path normalization of INSTALL_DIR/COMPONENTS_DIR/KERNEL_DIR/DIST_DIR after sourcing build.conf in [bash.common.sh](scripts/lib/common.sh:236).
|
||||
- Additional “Validation debug” prints added in [bash.initramfs_validate()](scripts/lib/initramfs.sh:799).
|
||||
- Expected logs now:
|
||||
- “Validation debug: input='initramfs' PWD=/workspace PROJECT_ROOT=/workspace INSTALL_DIR=/workspace/initramfs”
|
||||
- Resolves correctly even if called from a different stage CWD.
|
||||
@@ -172,10 +172,10 @@ File Pointers (quick jump)
|
||||
- Orchestrator: [scripts/build.sh](scripts/build.sh)
|
||||
- Common and config loading: [bash.common.sh](scripts/lib/common.sh:1)
|
||||
- Finalization hook: [bash.initramfs_finalize_customization()](scripts/lib/initramfs.sh:575)
|
||||
- Passwordless deletion: [bash.initramfs_finalize_customization()](scripts/lib/initramfs.sh:616)
|
||||
- Validation entry: [bash.initramfs_validate()](scripts/lib/initramfs.sh:790)
|
||||
- CPIO creation: [bash.initramfs_create_cpio()](scripts/lib/initramfs.sh:662)
|
||||
- Kernel embed config: [bash.kernel_modify_config_for_initramfs()](scripts/lib/kernel.sh:129)
|
||||
- Passwordless deletion: [bash.initramfs_finalize_customization()](scripts/lib/initramfs.sh:592)
|
||||
- Validation entry: [bash.initramfs_validate()](scripts/lib/initramfs.sh:799)
|
||||
- CPIO creation: [bash.initramfs_create_cpio()](scripts/lib/initramfs.sh:688)
|
||||
- Kernel embed config: [bash.kernel_modify_config_for_initramfs()](scripts/lib/kernel.sh:130)
|
||||
- RFS packers: [bash.pack-modules.sh](scripts/rfs/pack-modules.sh:1), [bash.pack-firmware.sh](scripts/rfs/pack-firmware.sh:1)
|
||||
|
||||
Change Log
|
||||
|
||||
Reference in New Issue
Block a user