c0dd058ae7
Fimeware Pre-Rooted, Builds & Flashes
70 lines
3.0 KiB
Markdown
70 lines
3.0 KiB
Markdown
# Ender-3 V3 KE Firmware Notes
|
|
|
|
## Stock firmware source
|
|
|
|
- Downloaded official image: `Ender-3_V3_KE_F005_ota_img_V1.1.0.17.img`
|
|
- Official version: `V1.1.0.17`
|
|
- Manifest layers inside the archive:
|
|
- `xImage` (`kernel`)
|
|
- `rootfs.squashfs` (`rootfs`)
|
|
- `zero.bin` (`rtos`)
|
|
|
|
## 7z archive password
|
|
|
|
The official Creality firmware archive is password-protected.
|
|
|
|
Password:
|
|
|
|
`$1$cxswfile$ZFd0RWFYkJQugbtKVGL9y0`
|
|
|
|
## Workspace layout
|
|
|
|
- Stock archive cache: `./Ender-3_V3_KE_F005_ota_img_V1.1.0.17.img`
|
|
- Overlay tree for our changes: `./overlay_rootfs/`
|
|
- Build cache: `./build/_toolcache/squashfs-tools-ng-1.3.2-mingw64/`
|
|
- Temporary build workspace: whichever directory you pass with `--build-dir`
|
|
|
|
## Useful edit points in the stock rootfs
|
|
|
|
- Klipper startup/service hook: `rootfs_extract/etc/init.d/S55klipper_service`
|
|
- WebRTC startup/service hook: `rootfs_extract/etc/init.d/S97webrtc`
|
|
- Stock printer profile:
|
|
- `rootfs_extract/usr/share/klipper/config/F005/printer.cfg`
|
|
- `rootfs_extract/usr/share/klipper/config/F005/gcode_macro.cfg`
|
|
- `rootfs_extract/usr/share/klipper/config/F005/printer_params.cfg`
|
|
- Runtime printer config is copied into `/usr/data/printer_data/config/` on the device
|
|
|
|
## Notes
|
|
|
|
- The shipped `.img` file is a 7z archive, not a raw flash image.
|
|
- The build flow starts from the stock archive, overlays `overlay_rootfs/`, and repacks the result.
|
|
- The helper uses native `rdsquashfs` and `gensquashfs` on Linux. Install
|
|
`squashfs-tools-ng` so those binaries are on `PATH`. On Windows it uses the
|
|
bundled `rdsquashfs.exe` / `gensquashfs.exe` tools from `squashfs-tools-ng`.
|
|
- The repack path is metadata-preserving: it reuses the stock SquashFS layout so symlinks and execute bits survive the round trip.
|
|
- `xImage.full` is a stock U-Boot `uImage` kernel blob. Its raw payload can be derived if kernel-side edits are needed.
|
|
- Stock-updater-facing version scheme in this workspace: `11034`
|
|
- UI/display version stays on the dotted printer-side label `v1.1.0.33`
|
|
- The display/version string is sourced from `overlay_rootfs/etc/ota_info`.
|
|
- The firmware image is intended to flash through the stock USB updater without any manual printer-side file edits.
|
|
- The helper build process keeps the stock updater happy by using the numeric package version and stock archive layout.
|
|
|
|
## Rebuild
|
|
|
|
Use the helper script:
|
|
|
|
```powershell
|
|
python .\tools\ke_firmware.py build --build-dir D:\DarKE_build --stock-archive .\Ender-3_V3_KE_F005_ota_img_V1.1.0.17.img --overlay-dir .\overlay_rootfs --output .\build\DarKE_KE_F005_ota_img_V11034.img
|
|
```
|
|
|
|
Compare the rebuilt rootfs against stock, allowing only the overlay tree to differ:
|
|
|
|
```powershell
|
|
python .\tools\ke_firmware.py compare --stock-archive .\Ender-3_V3_KE_F005_ota_img_V1.1.0.17.img --rebuilt-archive .\build\DarKE_KE_F005_ota_img_V11034.img --overlay-dir .\overlay_rootfs
|
|
```
|
|
|
|
## Stock-safe flash summary
|
|
|
|
- Put the generated `DarKE_KE_F005_ota_img_V11034.img` on a USB drive.
|
|
- Flash it with the printer's built-in updater.
|