chore: 导入旧记忆备份供恢复
This commit is contained in:
+115
@@ -0,0 +1,115 @@
|
||||
---
|
||||
title: Architecture Overview of the BDYG18Pro Armbian Build System
|
||||
type: curated
|
||||
permalink: main/projects/d0abaf3f-da04-4dd4-a228-bacf68f44e8f/curated/development/architecture-overview-of-the-bdyg18-pro-armbian-build-system
|
||||
stable_id: adb3722a-51e7-4ec5-88cc-a95dc399a7a1
|
||||
scope: project
|
||||
project_id: d0abaf3f-da04-4dd4-a228-bacf68f44e8f
|
||||
workspace_type: development
|
||||
usage_profile_id: null
|
||||
preference_context: development
|
||||
document_type: architecture
|
||||
revision: 8
|
||||
source_memory_ids: []
|
||||
source_checkpoint_ids: []
|
||||
source_file_ids: []
|
||||
source_git_commit: 36234e0082845515a053c10ee552ce35a03415f0
|
||||
source_git_commits:
|
||||
- 36234e0082845515a053c10ee552ce35a03415f0
|
||||
source_agent_sync_ids: []
|
||||
model_connection: Sub2API
|
||||
model_name: openai/gpt-oss-120b
|
||||
source_count: 125
|
||||
source_revisions:
|
||||
memory:11052d10-1adf-4d39-800a-08f9ae708758: '1'
|
||||
memory:7cf6c014-d2fa-4f99-9ed9-c070b108d3c7: '1'
|
||||
memory:bea4a5ba-4685-4869-a02e-f0f1c7f733ea: '1'
|
||||
memory:340af5e9-b3e5-423a-9971-b370992738ce: '1'
|
||||
memory:d5cbbc04-5929-4583-90b4-bd6c8295db25: '1'
|
||||
source_dispositions:
|
||||
processed: 78
|
||||
unchanged: 0
|
||||
unsupported: 47
|
||||
skipped: 0
|
||||
cited_source_ids:
|
||||
- memory:11052d10-1adf-4d39-800a-08f9ae708758
|
||||
- memory:7cf6c014-d2fa-4f99-9ed9-c070b108d3c7
|
||||
- memory:bea4a5ba-4685-4869-a02e-f0f1c7f733ea
|
||||
- memory:340af5e9-b3e5-423a-9971-b370992738ce
|
||||
- memory:d5cbbc04-5929-4583-90b4-bd6c8295db25
|
||||
job_cited_source_ids: []
|
||||
conflicts: []
|
||||
supersedes: []
|
||||
preferences: []
|
||||
source_cursor: 0
|
||||
source_hash: 5fe39ad3a37421f812566dd39f89d4c28fc6078c8d39031dff10eb6eb8d72e00
|
||||
prompt_version: 2026-08-12.3
|
||||
schema_version: '3'
|
||||
curation_job_id: 75339546-fef5-4656-8969-ba806e3ea6f0
|
||||
created_at: '2026-08-08T10:02:33.012303+00:00'
|
||||
updated_at: '2026-08-16T18:45:05.147636+00:00'
|
||||
tags:
|
||||
- hardware
|
||||
- boot
|
||||
- docker
|
||||
- repo
|
||||
---
|
||||
|
||||
# Architecture Overview
|
||||
|
||||
## 1. Hardware Platform
|
||||
|
||||
| Component | Specification |
|
||||
|-----------|---------------|
|
||||
| **SoC** | Rockchip RK3568 – quad‑core Cortex‑A55 @ 2 GHz, Mali‑G710 GPU, VPU, RGA, HDMI, PCIe, USB 3.0. |
|
||||
| **Memory** | 8 GB DDR4 HS200 (2.5 V). |
|
||||
| **Storage** | 256 GB eMMC (boot + rootfs) + 32 MB Winbond W25Q256JW SPI‑NOR (blank). |
|
||||
| **Switch** | Realtek RTL8367S 5‑port DSA (GMAC1 active, GMAC0 disabled). |
|
||||
| **Network** | Ethernet MAC‑1 (`end0`), TSO disabled, TCP congestion = **Cubic**. |
|
||||
| **UART console** | `serial@fe660000` → `ttyS2` @ 1 500 000 baud (pins RX/D0, TX/D1). |
|
||||
|
||||
*Source*: `evidence/dtb/rk3568-bdy-g18-pro.fixed.dts`, `evidence/dtb/rk3568-bdy-g18-pro.orig.dts`.
|
||||
|
||||
## 2. Boot Flow
|
||||
|
||||
1. **MaskROM** reads SPL from DDR (address 0x08000) after power‑on.
|
||||
2. **SPL** (Rockchip `rk356x_spl_loader_v1.25.114.bin` preferred) initialises DDR and loads **U‑Boot** (mainline 2026.04) from the SPL payload.
|
||||
3. **U‑Boot** loads a **FIT** image (`uboot‑fit‑rk3568‑bdy‑g18‑pro.dts`) containing BL31, kernel, and DTB.
|
||||
4. Kernel `Linux 6.18.40‑current‑rockchip64` boots with DTB `rk3568‑bdy‑g18‑pro.dtb`.
|
||||
|
||||
All steps are verified by flashing the SPL to SPI‑NOR, reading back SHA‑256, and confirming boot success (see `evidence/selfbuilt-uboot-brideup.txt`).
|
||||
|
||||
## 3. Repository Layout & Build Infrastructure
|
||||
|
||||
| Directory | Purpose |
|
||||
|-----------|---------|
|
||||
| `arm64‑custom/` | Custom board scripts & patches (tracked). |
|
||||
| `evidence/` | Raw logs, screenshots, serial captures (tracked). |
|
||||
| `aidocs/` | Additional documentation (tracked). |
|
||||
| `outputs/armbian-g18pro/` | Final artefacts – compressed image, SHA‑256 manifest, verification report. |
|
||||
| `armbian‑g18pro‑cache` (Docker volume) | Persistent cache (~19 GB) for U‑Boot, kernel, ccache. |
|
||||
|
||||
*Build orchestrator*: Python script `armbian‑custom/build_g18pro.py` + PowerShell wrapper `build_g18pro.ps1`. Docker image `ghcr.io/armbian/docker-armbian-build:armbian-ubuntu-noble-latest` is used; shallow Git clones (`--depth 1`) minimise download size.
|
||||
|
||||
## 4. Runtime System State (as of 16 Aug 2026)
|
||||
|
||||
- **Kernel**: `6.18.40‑current‑rockchip64`
|
||||
- **U‑Boot**: Mainline v2026.04 on SPI‑NOR; vendor U‑Boot remains on eMMC as fallback.
|
||||
- **Network**: `tso` off, `cubic` congestion, throughput ≈ 30 Mbps.
|
||||
- **Power‑off**: `systemctl poweroff` hangs (requires manual power‑cycle); `syscon‑reboot‑mode` DTB node restores clean reboot.
|
||||
- **Docker cache**: volume present, speeds up incremental builds.
|
||||
|
||||
*Source*: `abe4221f-b290-4384-ad8f-1f72c360b893`.
|
||||
|
||||
---
|
||||
|
||||
**References**
|
||||
|
||||
- `c650c1e4-18ee-44ad-af42-b7632fbdcf5c`
|
||||
- `dd496c6d-1619-457d-86a9-da57f5b866d7`
|
||||
- `S-1`
|
||||
- `aa3057ab-54c5-4ffc-ba85-c2f2396ee60c`
|
||||
- `bf88c265-4749-4c50-85bc-4bae25298cd5`
|
||||
- `ff34c6eb-6bba-41e5-9e43-ff80941fa823`
|
||||
- `adb3722a-51e7-4ec5-88cc-a95dc399a7a1`
|
||||
- `abe4221f-b290-4384-ad8f-1f72c360b893`
|
||||
+186
@@ -0,0 +1,186 @@
|
||||
---
|
||||
title: BDY‑G18‑Pro Armbian Builder – Deployment Guide
|
||||
type: curated
|
||||
permalink: main/projects/d0abaf3f-da04-4dd4-a228-bacf68f44e8f/curated/development/bdy-g18-pro-armbian-builder-deployment-guide
|
||||
stable_id: 818f5e7c-bf74-4bb0-9bb0-187f7243cf18
|
||||
scope: project
|
||||
project_id: d0abaf3f-da04-4dd4-a228-bacf68f44e8f
|
||||
workspace_type: development
|
||||
usage_profile_id: null
|
||||
preference_context: development
|
||||
document_type: deployment
|
||||
revision: 8
|
||||
source_memory_ids: []
|
||||
source_checkpoint_ids: []
|
||||
source_file_ids: []
|
||||
source_git_commit: 36234e0082845515a053c10ee552ce35a03415f0
|
||||
source_git_commits:
|
||||
- 36234e0082845515a053c10ee552ce35a03415f0
|
||||
source_agent_sync_ids: []
|
||||
model_connection: Sub2API
|
||||
model_name: openai/gpt-oss-120b
|
||||
source_count: 125
|
||||
source_revisions:
|
||||
memory:11052d10-1adf-4d39-800a-08f9ae708758: '1'
|
||||
memory:b70c1a22-6834-4e59-936c-1945b04273b7: '1'
|
||||
memory:340af5e9-b3e5-423a-9971-b370992738ce: '1'
|
||||
memory:bea4a5ba-4685-4869-a02e-f0f1c7f733ea: '1'
|
||||
memory:d5cbbc04-5929-4583-90b4-bd6c8295db25: '1'
|
||||
memory:7cf6c014-d2fa-4f99-9ed9-c070b108d3c7: '1'
|
||||
source_dispositions:
|
||||
processed: 78
|
||||
unchanged: 0
|
||||
unsupported: 47
|
||||
skipped: 0
|
||||
cited_source_ids:
|
||||
- memory:11052d10-1adf-4d39-800a-08f9ae708758
|
||||
- memory:b70c1a22-6834-4e59-936c-1945b04273b7
|
||||
- memory:340af5e9-b3e5-423a-9971-b370992738ce
|
||||
- memory:bea4a5ba-4685-4869-a02e-f0f1c7f733ea
|
||||
- memory:d5cbbc04-5929-4583-90b4-bd6c8295db25
|
||||
- memory:7cf6c014-d2fa-4f99-9ed9-c070b108d3c7
|
||||
- git:tools/driver/DriverAssitant_v5.14/Driver/x64/win10/rockusb.inf
|
||||
- git:tools/rkdevtool/revision.txt
|
||||
- git:tools/loader/WHICH-LOADER.txt
|
||||
- git:tools/driver/DriverAssitant_v5.14/Readme.txt
|
||||
- git:tools/driver/DriverAssitant_v5.14/revison.log
|
||||
job_cited_source_ids: []
|
||||
conflicts: []
|
||||
supersedes: []
|
||||
preferences: []
|
||||
source_cursor: 0
|
||||
source_hash: 5fe39ad3a37421f812566dd39f89d4c28fc6078c8d39031dff10eb6eb8d72e00
|
||||
prompt_version: 2026-08-12.3
|
||||
schema_version: '3'
|
||||
curation_job_id: 75339546-fef5-4656-8969-ba806e3ea6f0
|
||||
created_at: '2026-08-08T10:02:39.887705+00:00'
|
||||
updated_at: '2026-08-16T18:45:13.856584+00:00'
|
||||
tags:
|
||||
- deployment
|
||||
- flash
|
||||
- loader
|
||||
- kernel
|
||||
- dtb
|
||||
- docker
|
||||
- security
|
||||
- documentation
|
||||
---
|
||||
|
||||
# BDY‑G18 Pro Armbian Builder – Deployment Overview
|
||||
|
||||
**Workspace**: `BDYG18ProArmbianBuilder` (type **development**)
|
||||
**Scope**: Reproducible creation of a flash‑able Armbian image for the BDY‑G18‑Pro RK3568 router and reliable programming of the device via the Rockchip **RKDevTool** utility.
|
||||
|
||||
---
|
||||
|
||||
## 1. Project Goal & Target Image
|
||||
- **Goal**: Produce a reproducible, flash‑able Armbian image (Community DIY 13.3 Debian Trixie) with kernel 6.18.x (current build 6.18.40).
|
||||
- **Preferred image**: *stock* – uses the vendor‑verified boot chain (U‑Boot SPL/U‑Boot on SPI‑NOR) with a minimal Armbian rootfs.
|
||||
- **Self‑built mode** is available for auditability.
|
||||
|
||||
> Sources: `c650c1e4-18ee-44ad-af42-b7632fbdcf5c`, `dd496c6d-1619-457d-86a9-da57f5b866d7`, `aa3057ab-54c5-4ffc-ba85-c2f2396ee60c`
|
||||
|
||||
---
|
||||
|
||||
## 2. Repository Layout & Build Infrastructure
|
||||
| Directory | Purpose |
|
||||
|----------|---------|
|
||||
| `arm64‑custom/` | Build scripts (`build_g18pro.py`, `build_g18pro.ps1`). |
|
||||
| `evidence/` | Collected logs, DTB files, kernel configs. |
|
||||
| `outputs/armbian-g18pro/` | Final artefacts – compressed image, SHA‑256 manifest, verification report, build log. |
|
||||
| `armbian‑g18pro‑cache` (Docker volume) | Persistent cache (~19 GB) for U‑Boot, kernel, rootfs, ccache. |
|
||||
|
||||
> Sources: `adb3722a-51e7-4ec5-88cc-a95dc399a7a1`, `Batch 2/16`
|
||||
|
||||
The **Docker image** used is `ghcr.io/armbian/docker-armbian-build:armbian-ubuntu-noble-latest`. The orchestrator is a Python script plus a PowerShell wrapper that works on Windows PowerShell **or** Linux Bash.
|
||||
|
||||
> Sources: `adb3722a-51e7-4ec5-88cc-a95dc399a7a1`
|
||||
|
||||
---
|
||||
|
||||
## 3. Flash Procedure (RKDevTool)
|
||||
1. **Verify target storage** – select **EMMC** (not SPI‑NOR) in the *Read Flash Info* dialog.
|
||||
2. Use **RKDevTool V3.37+** (the latest revision listed in the change log).
|
||||
3. Load the **preferred loader** `rk356x_spl_loader_v1.25.114.bin` (SHA‑256 `d7db6f39…9bba`).
|
||||
4. **Download Boot** – copies the loader to DDR (RAM) only; no persistent write.
|
||||
5. *(Optional)* **Switch Storage** if the board has multiple media (UFS, SPI‑NOR).
|
||||
6. **Burn Loader** – writes the ID‑Block (SPL) to the selected storage.
|
||||
7. **Flash partitions** – address 0x00000000, force‑address‑write enabled, load the compressed `.img.xz` (≈ 2.12 GiB).
|
||||
8. After flashing, run `systemctl reboot` (the `syscon‑reboot‑mode` DTB node forces a clean reboot).
|
||||
9. Verify with `rkdevtool verify` or compare the SHA‑256 manifest against the image file.
|
||||
|
||||
> Sources: `6`, `7`, `16` (loader 1), `818f5e7c-bf74-4bb0-9bb0-187f7243cf18`
|
||||
|
||||
### 3.1 Loader Provenance
|
||||
| Loader | SHA‑256 | Size | Build date | Remarks |
|
||||
|--------|----------|------|------------|---------|
|
||||
| `rk356x_spl_loader_v1.25.114.bin` | `d7db6f39…9bba` | 481 KB | 2026‑01‑09 | Clean upstream copy – **primary** choice. |
|
||||
| `rk356x_spl_loader_v1.21.113.bin` | `589f1a70…8f8b` | 475 KB | – | 8‑byte timestamp/CRC delta – secondary fallback. |
|
||||
| `rk3568_MiniLoaderAll.bin` | `512211c9…3315d2` | 481 KB | – | 10‑byte delta – tertiary fallback. |
|
||||
|
||||
> Sources: `16` entries 1‑3
|
||||
|
||||
---
|
||||
|
||||
## 4. Kernel & System Configuration
|
||||
- **Kernel**: Linux 6.18.40‑current‑rockchip64 (Armbian 26.05.0).
|
||||
- **DTB**: `rk3568‑bdy‑g18‑pro.dtb` (stock) with the following key patches applied:
|
||||
- `syscon‑reboot‑mode` node (clean reboots).
|
||||
- `snps,tso` removed (TSO disabled).
|
||||
- GMAC0 reset‑storm disabled.
|
||||
- **Root‑flags**: `rw,errors=remount-ro` aligned in both `armbianEnv.txt` and `extlinux.conf`.
|
||||
- **Networking**: TCP congestion control set to **Cubic**; TSO/GSO disabled.
|
||||
- **Docker**: Cache volume retained, cgroup options added via `armbianEnv.txt`.
|
||||
|
||||
> Sources: `aa3057ab-54c5-4ffc-ba85-c2f2396ee60c`, `ff34c6eb-6bba-41e5-9e43-ff80941fa823`, `evidence/live-system/as-shipped-snapshot.txt`, `evidence/live-system/tso-fix-verification-2026-07-31.txt`, `evidence/vendor-backup/vendor-armbianEnv.txt`, `evidence/vendor-backup/vendor-extlinux.conf`
|
||||
|
||||
---
|
||||
|
||||
## 5. Key Decisions & Rationale
|
||||
| # | Decision | Rationale |
|
||||
|---|----------|-----------|
|
||||
| 1 | Keep **stock U‑Boot** (no custom SPL compile). | Simplifies firmware supply‑chain; stock boot chain is verified. |
|
||||
| 2 | Remove original `emergency‑reboot.shutdown` hook (now redundant). | The new emergency‑restart script (`sysrq‑b`) already guarantees clean reboots. |
|
||||
| 3 | Add `syscon‑reboot‑mode` DTB node and enable it. | Fixes power‑off hang; clean reboot works without manual power‑cycle. |
|
||||
| 4 | Disable hardware TSO (`snps,tso`). | Eliminates massive retransmission storms; network throughput ↑ to 29.6 Mbps. |
|
||||
| 5 | Set TCP congestion to **Cubic** via sysctl. | Improves TCP performance on the router. |
|
||||
| 6 | Enforce SHA‑256 verification of flashed images. | Prevents accidental NOR overwrite (Failure A on 2026‑07‑25). |
|
||||
| 7 | Strip proxy variables inside Docker; optional `G18PRO_PROXY`. | Avoids proxy leakage into container builds. |
|
||||
| 8 | Force LF line endings via `.gitattributes`; disable `core.autocrlf`. | Prevents CRLF corruption in containers. |
|
||||
| 9 | Compress final image with `xz` and record SHA‑256. | Size savings and reproducibility. |
|
||||
|10| Use **Vaultwarden** for credential storage – repository stores only entry **name** and **purpose**. | Secrets never appear in VCS. |
|
||||
|11| AI / Git integration disabled by default. | Keeps builds deterministic. |
|
||||
|12| Shallow Git clones, pin `RKBIN_GIT_COMMIT=ce50c0d1`. | Faster, reproducible builds. |
|
||||
|
||||
> Sources: `aa3057ab-54c5-4ffc-ba85-c2f2396ee60c`, `ff34c6eb-6bba-41e5-9e43-ff80941fa823`, `bf88c265-4749-4c50-85bc-4bae25298cd5`, `adb3722a-51e7-4ec5-88cc-a95dc399a7a1`, `Batch 2/16`, `105b328f-4bda-4641-90a7-7282ef156316`
|
||||
|
||||
---
|
||||
|
||||
## 6. Open / Ongoing Deployment Tasks
|
||||
| # | Task | Status |
|
||||
|---|------|--------|
|
||||
| 1 | Verify tiny‑SPI SPL can read > 8 MiB from SPI‑NOR. | Unresolved – needs measurement. |
|
||||
| 2 | Add missing interrupt‑controller node for RTL8367S in DTB. | Open. |
|
||||
| 3 | Validate PCIe BAR allocation (`pci=realloc`). | Planned. |
|
||||
| 4 | Pin `RKBIN_GIT_COMMIT` permanently (currently `ce50c0d1`). | Open. |
|
||||
| 5 | Test `selfbuilt‑ums` mode (USB‑mass‑storage) for field diagnostics. | Open. |
|
||||
| 6 | Implement post‑flash verification watchdog script. | Open. |
|
||||
| 7 | Keep `rockusb.inf` catalog signed (`rockusb.cat`). | Unresolved – required for driver signing enforcement. |
|
||||
|
||||
> Sources: `aa3057ab-54c5-4ffc-ba85-c2f2396ee60c`, `evidence/emmc-reset-evaluation.txt`, `evidence/live-system/tso-diagnosis-2026-07-31.txt`, `13`, `14`, `15`
|
||||
|
||||
---
|
||||
|
||||
## 7. Preferences (Scenario‑Level)
|
||||
- **Language**: Chinese (documentation).
|
||||
- **Primary host**: Windows (PowerShell) with Bash support.
|
||||
- **Design philosophy**: KISS & YAGNI; shallow clones; LF line endings; Docker cache retained.
|
||||
- **Secrets**: Vaultwarden only.
|
||||
- **AI/Git integration**: Disabled unless explicitly enabled.
|
||||
|
||||
> Sources: `ff34c6eb-6bba-41e5-9e43-ff80941fa823`, `bf88c265-4749-4c50-85bc-4bae25298cd5`, `105b328f-4bda-4641-90a7-7282ef156316`, `3f91189b-11a1-45bb-8357-4f413dc1609d`
|
||||
|
||||
---
|
||||
|
||||
## 8. Tags
|
||||
`deployment, flash, loader, kernel, dtb, docker, security, documentation`
|
||||
+134
@@ -0,0 +1,134 @@
|
||||
---
|
||||
title: BDY‑G18‑Pro Armbian Builder – Maintenance & Operational Procedures
|
||||
type: curated
|
||||
permalink: main/projects/d0abaf3f-da04-4dd4-a228-bacf68f44e8f/curated/development/bdy-g18-pro-armbian-builder-maintenance-operational-procedures
|
||||
stable_id: 281fe703-8e1a-475c-ac21-3ed9b03eb63e
|
||||
scope: project
|
||||
project_id: d0abaf3f-da04-4dd4-a228-bacf68f44e8f
|
||||
workspace_type: development
|
||||
usage_profile_id: null
|
||||
preference_context: development
|
||||
document_type: maintenance
|
||||
revision: 8
|
||||
source_memory_ids: []
|
||||
source_checkpoint_ids: []
|
||||
source_file_ids: []
|
||||
source_git_commit: 36234e0082845515a053c10ee552ce35a03415f0
|
||||
source_git_commits:
|
||||
- 36234e0082845515a053c10ee552ce35a03415f0
|
||||
source_agent_sync_ids: []
|
||||
model_connection: Sub2API
|
||||
model_name: openai/gpt-oss-120b
|
||||
source_count: 125
|
||||
source_revisions:
|
||||
memory:40bd0324-4ef3-4777-9dba-5a7ef64a4c92: '1'
|
||||
memory:bea4a5ba-4685-4869-a02e-f0f1c7f733ea: '1'
|
||||
memory:b70c1a22-6834-4e59-936c-1945b04273b7: '1'
|
||||
memory:7cf6c014-d2fa-4f99-9ed9-c070b108d3c7: '1'
|
||||
memory:d5cbbc04-5929-4583-90b4-bd6c8295db25: '1'
|
||||
source_dispositions:
|
||||
processed: 78
|
||||
unchanged: 0
|
||||
unsupported: 47
|
||||
skipped: 0
|
||||
cited_source_ids:
|
||||
- memory:40bd0324-4ef3-4777-9dba-5a7ef64a4c92
|
||||
- memory:bea4a5ba-4685-4869-a02e-f0f1c7f733ea
|
||||
- memory:b70c1a22-6834-4e59-936c-1945b04273b7
|
||||
- memory:7cf6c014-d2fa-4f99-9ed9-c070b108d3c7
|
||||
- memory:d5cbbc04-5929-4583-90b4-bd6c8295db25
|
||||
- git:tools/driver/DriverAssitant_v5.14/Driver/x86/win8/rockusb.inf
|
||||
- git:tools/driver/DriverAssitant_v5.14/Driver/x64/win10/rockusb.inf
|
||||
- git:tools/driver/DriverAssitant_v5.14/Readme.txt
|
||||
- git:tools/driver/DriverAssitant_v5.14/revison.log
|
||||
- git:tools/loader/WHICH-LOADER.txt
|
||||
- git:tools/rkdevtool/Readme_v1.0.pdf
|
||||
- git:tools/rkdevtool/revision.txt
|
||||
job_cited_source_ids: []
|
||||
conflicts: []
|
||||
supersedes: []
|
||||
preferences: []
|
||||
source_cursor: 0
|
||||
source_hash: 5fe39ad3a37421f812566dd39f89d4c28fc6078c8d39031dff10eb6eb8d72e00
|
||||
prompt_version: 2026-08-12.3
|
||||
schema_version: '3'
|
||||
curation_job_id: 75339546-fef5-4656-8969-ba806e3ea6f0
|
||||
created_at: '2026-08-08T10:02:42.406146+00:00'
|
||||
updated_at: '2026-08-16T18:45:19.484666+00:00'
|
||||
tags:
|
||||
- maintenance
|
||||
- checklist
|
||||
- troubleshooting
|
||||
- known-issues
|
||||
- open-tasks
|
||||
- security
|
||||
---
|
||||
|
||||
# BDY‑G18 Pro Armbian Builder – Maintenance Checklist & Known Issues
|
||||
|
||||
**Workspace**: `BDYG18ProArmbianBuilder` (type **development**)
|
||||
**Scope**: Daily health checks, troubleshooting, and open‑item tracking for the Armbian image and the underlying hardware.
|
||||
|
||||
---
|
||||
|
||||
## 1. Daily Maintenance Checklist
|
||||
| Check | Desired State |
|
||||
|-------|---------------|
|
||||
| System time (`chronyc tracking`) | offset `< 1 ms` |
|
||||
| CPU temperature | `< 75 °C` |
|
||||
| ZRAM usage (`/dev/zram1`) | ≤ 80 % |
|
||||
| Network offloads (`ethtool -k eth0`) | `tso: off`, `gso: off` |
|
||||
| TCP congestion control | `net.ipv4.tcp_congestion_control = cubic` |
|
||||
| Docker cache volume `armbian‑g18pro‑cache` present | Yes |
|
||||
|
||||
> Source: `281fe703-8e1a-475c-ac21-3ed9b03eb63e`
|
||||
|
||||
---
|
||||
|
||||
## 2. Known Issues & Mitigations
|
||||
| Issue | Symptom | Root Cause | Mitigation |
|
||||
|-------|---------|------------|------------|
|
||||
| **Power‑off hangs** | `systemctl poweroff` does not turn the board off; manual power‑cycle required. | `POWER_OFF_NOTIFY` flag left set in eMMC (see *emmc‑reset‑evaluation*). | Use `syscon‑reboot‑mode` DTB node for clean reboot; keep `emergency‑reboot.shutdown` script as hard‑reset fallback. |
|
||||
| **Network TX storms / low throughput** | Upload stalls, many retransmissions, ~1 Mbps throughput. | TSO enabled in DTB (`snps,tso`). | Remove `snps,tso` from DTB (kernel 6.18.41). |
|
||||
| **GMAC0 watchdog messages** | Spurious watchdog logs, possible link storms. | GMAC0 enabled without a physical link. | Keep GMAC0 disabled in DTB. |
|
||||
| **Accidental SPI‑NOR overwrite** | Flashing tool writes to NOR, corrupting SPL. | User selects wrong storage in RKDevTool. | Enforce target verification, SHA‑256 check, mandatory `flash_erase` before any NOR write. |
|
||||
| **Docker proxy leakage** | Proxy env vars leaked into container builds. | Proxy vars passed unchanged. | Strip vars inside Docker; optional `G18PRO_PROXY` variable. |
|
||||
| **CRLF corruption** | Files corrupted after Windows checks out. | `core.autocrlf=true`. | Enforce LF via `.gitattributes`, set `core.autocrlf=false`. |
|
||||
| **PCIe BAR allocation failures** | Kernel logs: `can’t assign; no space`. | Overlapping memory windows on Rockchip PCIe host. | Add kernel cmdline `pci=realloc` (or `pci=assign-buses`). |
|
||||
| **MaskROM fallback after bad flash** | Board resets to MaskROM on power‑cycle. | Boot flag `boot_success` not set after flash. | Verify `boot_success` flag is written; use `syscon‑reboot‑mode` node. |
|
||||
|
||||
> Sources: `aa3057ab-54c5-4ffc-ba85-c2f2396ee60c`, `evidence/emmc-reset-evaluation.txt`, `evidence/live-system/tso-diagnosis-2026-07-31.txt`, `evidence/live-system/tso-fix-verification-2026-07-31.txt`, `evidence/live-system/as-shipped-snapshot.txt`
|
||||
|
||||
---
|
||||
|
||||
## 3. Open Maintenance Tasks
|
||||
| # | Task | Status |
|
||||
|---|------|--------|
|
||||
| 1 | Verify tiny‑SPI SPL can read > 8 MiB from SPI‑NOR. | Unresolved – needs measurement. |
|
||||
| 2 | Capture high‑resolution photos of rear‑side pads (for documentation). | Pending. |
|
||||
| 3 | Add missing RTL8367S interrupt‑controller node to DTB. | Open. |
|
||||
| 4 | Confirm PCIe BAR allocation after adding `pci=realloc`. | Planned verification. |
|
||||
| 5 | Review Rockusb driver security descriptor (currently all‑access). | Open – may tighten for production. |
|
||||
| 6 | Generate and sign `rockusb.cat` to satisfy driver‑signing enforcement. | Unresolved. |
|
||||
| 7 | Update VID/PID list in `rockusb.inf` for new Rockchip boards. | Ongoing as new hardware appears. |
|
||||
| 8 | Test `selfbuilt‑ums` mode (USB‑mass‑storage) for field diagnostics. | Open. |
|
||||
| 9 | Implement post‑flash verification watchdog script. | Open. |
|
||||
|10| Periodically update Armbian to newer kernels (e.g., 6.19). | Ongoing. |
|
||||
|
||||
> Sources: `aa3057ab-54c5-4ffc-ba85-c2f2396ee60c`, `8a861a5f-35c3-4f95-bd5b-6b2297888f56`, `13`, `14`, `15`
|
||||
|
||||
---
|
||||
|
||||
## 4. Preferred Maintenance Practices (Scenario‑Level)
|
||||
- Run the **daily checklist** (section 1) via a scheduled script; log any deviation.
|
||||
- Keep Docker cache volume between builds to speed up incremental builds.
|
||||
- After any flash, immediately verify SHA‑256 of the image and the `boot_success` flag.
|
||||
- When changing DTB or kernel parameters, keep a **git‑ignored** copy of the original for rollback.
|
||||
- Store all secrets (Wi‑Fi passwords, SSH keys) in Vaultwarden; never check them into the repo.
|
||||
|
||||
> Sources: `ff34c6eb-6bba-41e5-9e43-ff80941fa823`, `bf88c265-4749-4c50-85bc-4bae25298cd5`, `105b328f-4bda-4641-90a7-7282ef156316`
|
||||
|
||||
---
|
||||
|
||||
## 5. Tags
|
||||
`maintenance, checklist, troubleshooting, known‑issues, open‑tasks, security`
|
||||
+161
@@ -0,0 +1,161 @@
|
||||
---
|
||||
title: Troubleshooting Guide for BDYG18Pro Armbian Builder
|
||||
type: curated
|
||||
permalink: main/projects/d0abaf3f-da04-4dd4-a228-bacf68f44e8f/curated/development/troubleshooting-guide-for-bdyg18-pro-armbian-builder
|
||||
stable_id: a89adf53-4420-43ef-9a95-56567f524ef6
|
||||
scope: project
|
||||
project_id: d0abaf3f-da04-4dd4-a228-bacf68f44e8f
|
||||
workspace_type: development
|
||||
usage_profile_id: null
|
||||
preference_context: development
|
||||
document_type: troubleshooting
|
||||
revision: 8
|
||||
source_memory_ids: []
|
||||
source_checkpoint_ids: []
|
||||
source_file_ids: []
|
||||
source_git_commit: 36234e0082845515a053c10ee552ce35a03415f0
|
||||
source_git_commits:
|
||||
- 36234e0082845515a053c10ee552ce35a03415f0
|
||||
source_agent_sync_ids: []
|
||||
model_connection: Sub2API
|
||||
model_name: openai/gpt-oss-120b
|
||||
source_count: 125
|
||||
source_revisions:
|
||||
memory:40bd0324-4ef3-4777-9dba-5a7ef64a4c92: '1'
|
||||
memory:340af5e9-b3e5-423a-9971-b370992738ce: '1'
|
||||
memory:bea4a5ba-4685-4869-a02e-f0f1c7f733ea: '1'
|
||||
memory:b70c1a22-6834-4e59-936c-1945b04273b7: '1'
|
||||
source_dispositions:
|
||||
processed: 78
|
||||
unchanged: 0
|
||||
unsupported: 47
|
||||
skipped: 0
|
||||
cited_source_ids:
|
||||
- memory:40bd0324-4ef3-4777-9dba-5a7ef64a4c92
|
||||
- memory:340af5e9-b3e5-423a-9971-b370992738ce
|
||||
- memory:bea4a5ba-4685-4869-a02e-f0f1c7f733ea
|
||||
- memory:b70c1a22-6834-4e59-936c-1945b04273b7
|
||||
- git:tools/driver/DriverAssitant_v5.14/Driver/x64/win10/rockusb.inf
|
||||
- git:tools/rkdevtool/revision.txt
|
||||
- git:tools/driver/DriverAssitant_v5.14/revison.log
|
||||
job_cited_source_ids: []
|
||||
conflicts: []
|
||||
supersedes: []
|
||||
preferences: []
|
||||
source_cursor: 0
|
||||
source_hash: 5fe39ad3a37421f812566dd39f89d4c28fc6078c8d39031dff10eb6eb8d72e00
|
||||
prompt_version: 2026-08-12.3
|
||||
schema_version: '3'
|
||||
curation_job_id: 75339546-fef5-4656-8969-ba806e3ea6f0
|
||||
created_at: '2026-08-08T10:02:36.551871+00:00'
|
||||
updated_at: '2026-08-16T18:45:08.059901+00:00'
|
||||
tags:
|
||||
- issues
|
||||
- fixes
|
||||
- debugging
|
||||
---
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
## Power‑off hangs
|
||||
|
||||
**Symptom**: `systemctl poweroff` leaves the board powered on; manual power‑cycle required.
|
||||
|
||||
**Root cause**: Linux sets `POWER_OFF_NOTIFICATION=LONG` in the eMMC EXT_CSD, putting the eMMC into a low‑power state that the BootROM cannot wake.
|
||||
|
||||
**Fix**: Enable `syscon‑reboot‑mode` DTB node (adds a clean reboot path) **or** use the `emergency‑reboot.shutdown` systemd script which triggers `sysrq b` hard reset.
|
||||
|
||||
*Sources*: `evidence/emmc-reset-evaluation.txt`, `evidence/live-system/emergency-reboot.shutdown`.
|
||||
|
||||
---
|
||||
|
||||
## Network TX storms / low throughput
|
||||
|
||||
**Symptom**: Massive retransmits, throughput ≈ 1 Mbps.
|
||||
|
||||
**Cause**: Device Tree enables `snps,tso` (TCP Segmentation Offload) on the GMAC, which the driver mishandles.
|
||||
|
||||
**Resolution**: Remove the `snps,tso` property from the DTB (kernel 6.18.41). Verify with `ethtool -k eth0` → `tso: off`. Throughput improves to ~30 Mbps.
|
||||
|
||||
*Sources*: `evidence/live-system/tso-diagnosis-2026-07-31.txt`, `evidence/live-system/tso-fix-verification-2026-07-31.txt`.
|
||||
|
||||
---
|
||||
|
||||
## GMAC0 watchdog storms
|
||||
|
||||
**Symptom**: Repeated watchdog messages in the kernel log.
|
||||
|
||||
**Cause**: GMAC0 is enabled without a physical link, generating spurious watchdog events.
|
||||
|
||||
**Fix**: Disable GMAC0 in the DTB (set `status = "disabled"`). The system now only uses GMAC1 for the RTL8367S switch.
|
||||
|
||||
*Source*: `aa3057ab-54c5-4ffc-ba85-c2f2396ee60c`.
|
||||
|
||||
---
|
||||
|
||||
## Accidental SPI‑NOR overwrite
|
||||
|
||||
**Symptom**: Flashing the SPL to SPI‑NOR overwrites the boot region; on power‑cycle the board falls back to MaskROM.
|
||||
|
||||
**Mitigation**: RKDevTool warns when the target storage is SPI‑NOR. Additionally, the build scripts enforce:
|
||||
- Target verification via SHA‑256 manifest.
|
||||
- Mandatory `flash_erase` before writing.
|
||||
|
||||
*Source*: `aa3057ab-54c5-4ffc-ba85-c2f2396ee60c`.
|
||||
|
||||
---
|
||||
|
||||
## Docker proxy leakage
|
||||
|
||||
**Symptom**: Proxy environment variables leak into the Docker container, causing network failures.
|
||||
|
||||
**Solution**: The orchestrator strips proxy vars inside Docker and uses optional `G18PRO_PROXY` only when explicitly set. `.curlrc`, `.wgetrc`, and Git `insteadOf` are also configured.
|
||||
|
||||
*Source*: Batch 2/16, `4`.
|
||||
|
||||
---
|
||||
|
||||
## CRLF line‑ending corruption
|
||||
|
||||
**Symptom**: Files edited on Windows acquire CRLF line endings, breaking scripts inside the Docker container.
|
||||
|
||||
**Remedy**: Enforce LF line endings via `.gitattributes` and set `core.autocrlf=false`.
|
||||
|
||||
*Source*: `ff34c6eb-6bba-41e5-9e43-ff80941fa823`.
|
||||
|
||||
---
|
||||
|
||||
## PCIe BAR allocation failures
|
||||
|
||||
**Symptom**: Kernel logs report `BAR 0: can't assign; no space`.
|
||||
|
||||
**Work‑around**: Add kernel cmdline `pci=realloc` (or `pci=assign-busses`). This re‑allocates address windows to avoid overlaps.
|
||||
|
||||
*Source*: `evidence/vendor-backup/vendor-kern.log.net-lines.txt`.
|
||||
|
||||
---
|
||||
|
||||
## Rockusb driver installation issues
|
||||
|
||||
**Problem**: Windows requires a signed catalog (`rockusb.cat`) which is not shipped.
|
||||
|
||||
**Temporary fix**: Install the driver in **Test‑Signed** mode (`pnputil /add-driver rockusb.inf /install`) or generate a signed catalog using a code‑signing certificate.
|
||||
|
||||
**Security note**: The INF grants `Everyone` full read/write/execute access (`D:P(A;;GRGWGX;;;WD)`). Consider tightening the descriptor for production environments.
|
||||
|
||||
*Sources*: `13`, `14`, `15`.
|
||||
|
||||
---
|
||||
|
||||
**References**
|
||||
|
||||
- `aa3057ab-54c5-4ffc-ba85-c2f2396ee60c`
|
||||
- `evidence/emmc-reset-evaluation.txt`
|
||||
- `evidence/live-system/emergency-reboot.shutdown`
|
||||
- `evidence/live-system/tso-diagnosis-2026-07-31.txt`
|
||||
- `evidence/live-system/tso-fix-verification-2026-07-31.txt`
|
||||
- `evidence/vendor-backup/vendor-kern.log.net-lines.txt`
|
||||
- `4`
|
||||
- `13`
|
||||
- `14`
|
||||
- `15`
|
||||
Reference in New Issue
Block a user