docs/fhs-mapping.md: full audit (297 unique /storage paths classified
across 7 classes A-G + Z special cases), seven-phase plan, rules of
the road. Phase 0 introduces the vocabulary (vars in
/etc/profile.d/archr-fhs.sh) without moving any data. Each subsequent
phase ends in a commit with grep + boot validation before the next
one starts. User data (saves, ROMs) is phase 6, only after all other
phases survived at least one release on the stable channel.
.gitignore: whitelist docs/fhs-mapping.md so the plan stays tracked
alongside improvements.md and release-policy.md while the rest of
docs/ remains user-local.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
.gitignore had docs/* blocking everything; the rest of the directory
remains user-local notes, so whitelist only the two files that belong
to the project: improvements.md (Arch-ification roadmap, with the
architectural decision that LibreELEC overlay is by design) and
release-policy.md (semver-RC until v2.0, YYYY.MM.PATCH after, three
release channels mapped to updates.branch).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The Y3506 family (V03/V04/V05 soysauce variants) ships without an
external speaker amplifier on the PCB; the rk817 SPKO line drives
the mono speaker directly. The vendor BSP 4.4 hides this with
hardcoded DAPM widgets and routes in rk817_codec.c, but mainline
ASoC respects the DT strictly, so the speaker stayed muted on every
Y3506 board even though the hardware path exists.
Changes:
config/archr-dts/rk3326-gameconsole-r36s.dts
Adds three pre-defined sound card variants with status=disabled:
rk817-sound-amplified (external amp gated by GPIO)
rk817-sound-simple (external amp on regulator, no GPIO gate)
rk817-sound-spko-direct (no external amp, SPKO straight to speaker)
The default rk817-sound stays active with the historic amp routing,
so any board the overlay generator cannot positively re-classify
keeps working as it did in v2.0-rc3.
config/mipi-generator/archr-dtbo.py
- Picks one of the three variants based on flags + vendor signals:
NAm flag -> spko-direct (Y3506 family)
spk-con-gpio / spk-ctl-gpios detected -> amplified
SRs flag without GPIO -> simple
otherwise -> keep base DTS default (amp routing)
- Accepts simple-audio-card,hp-det-gpio as a fallback to hp-det-gpio
so V05 boards that use the canonical mainline name are no longer
silently skipped by the audio block.
- Tolerates missing /pinctrl/headphone/hp-det in the vendor DTB
(some boards bind via the codec phandle only).
- Short-circuit branch (odroidgo3 + SDORIG) now still toggles the
sound card variant when NAm is set, so the six Soysauce batches
that go through that early return still get spko-direct.
- Fallback branch when the audio block crashes still applies
spko-direct when NAm is set (covers six Y3506 V03/V04 batches
where the vendor DTB omits hp-det-gpio entirely).
config/mipi-generator/generator.sh
- Appends NAm to every overlay generated under soysauce/, in
stable order with the existing SDORIG and variant flags.
Audit of all 44 vendor DTBs after the change:
18 clones -> default (amp routing preserved)
15 original -> default (amp routing preserved)
11 soysauce -> spko-direct (V03/V04/V05 all classes covered)
Reported by gemstoned via Discord: Soysauce V05 speaker would not
play under v2.0-rc3 even with HPi/SRs overlay flags toggled. Root
cause traced to (a) the variant nodes referenced by archr-dtbo.py
only existing in eeclone.dts and not in r36s.dts, and (b) the
vendor BSP rk817_codec.c hardcoded DAPM that mainline ASoC ignores.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Bump Mesa version from 26.0.3 to 26.0.5 with updated SHA256 checksum.
- Modify RK3326 device tree to increase regulator max voltage for ARM.
- Update OPP settings in RK3326 DTS patch for improved performance.
- Add Python3 and xz to PortMaster dependencies.
- Enhance PortMaster startup script for better directory handling and cleanup.
- Implement HDMI resolution check with timeout in autostart script.
- Add turbo mode configuration to system settings.
- Refactor CPU frequency functions to utilize available frequencies more effectively.
- Update Dolphin emulator scripts to improve gptokeyb process handling.
- Introduce new systemd configuration for timesyncd to optimize polling intervals.
- Set uinput permissions in udev rules for better controller input handling.
- Adjust emulator package.mk to optimize performance for RK3326.
- Modify mkimage script to ensure proper FAT32 formatting and filesystem checks.
- Enhance benchmark script to auto-detect device-specific paths and improve logging.