rk3568 baseline build (vanilla) — dosbox-x ffmpeg 8.1.2 fix + sanity-check build log - #2
Draft
Pyohwan wants to merge 2 commits into
Draft
rk3568 baseline build (vanilla) — dosbox-x ffmpeg 8.1.2 fix + sanity-check build log#2Pyohwan wants to merge 2 commits into
Pyohwan wants to merge 2 commits into
Conversation
PR batocera-linux#16042 bumped ffmpeg to 8.1.2 and updated Kodi/kodi-inputstream-ffmpegdirect patches accordingly, but dosbox-x also links against libavcodec directly and was missed. Its video capture code (src/hardware/hardware.cpp) still used APIs removed in ffmpeg 8: - avcodec_close() — removed; the surrounding avcodec_free_context() calls already close+free, so the redundant avcodec_close() calls are dropped - AVFrame::key_frame — removed; replaced with the AV_FRAME_FLAG_KEY flag - FF_PROFILE_AAC_LOW — renamed to AV_PROFILE_AAC_LOW Verified: dosbox-x (v2025.02.01) now builds and installs successfully for the rk3568 board with this patch applied.
Per maintainer feedback: with the parallel build system, ffmpeg isn't actually present in dosbox-x's per-package host at build time, so it builds without capture support by default anyway - patching the source to compile against ffmpeg 8.1.2 was solving a problem the build doesn't actually have. --disable-avcodec matches what the build already does in practice, until ffmpeg is properly wired up as a dependency and dosbox-x gets updated.
Pyohwan
added a commit
that referenced
this pull request
Jul 25, 2026
… need SPL needs U-Boot in a GPT entry literally named "uboot" (locates it by label, per Hardkernel's wiki - not "SPL doesn't care about the partition table", which an earlier commit on this branch mistakenly concluded from seeing "Trying fit image at 0x4000 sector" without checking what happens if the named entry is absent). Petitboot's device scan only finds a bootable OS on partition #1 (confirmed live: with the boot partition at #2, entries are parsed correctly - "boot option ... is unresolved" is gone - but Petitboot still lists nothing at all). Both are satisfied simultaneously by declaring the boot partition first in genimage.cfg: genimage numbers GPT entries by declaration order, not by on-disk offset (confirmed by reading genimage's own overlap-checking code, which only rejects actual overlaps). So the boot partition becomes GPT #1 for Petitboot while "uboot" keeps its own named entry (now #3) at its original 8M offset for the SPL. Physical layout on the card is unchanged either way. Verified end to end on hardware in this exact image: SPL finds u-boot.itb fine at GPT #3 ("Trying fit image at 0x4000 sector" -> all atf/fdt checks OK), U-Boot's bootstd sees the boot partition as "part 1" and boots extlinux.conf's "batocera-vu8m" label correctly (VU8M active, correctly rotated), and Petitboot lists and boots "batocera.linux" from the same card. All three requirements hold in the same image at last.
Pyohwan
added a commit
that referenced
this pull request
Jul 26, 2026
… need SPL needs U-Boot in a GPT entry literally named "uboot" (locates it by label, per Hardkernel's wiki - not "SPL doesn't care about the partition table", which an earlier commit on this branch mistakenly concluded from seeing "Trying fit image at 0x4000 sector" without checking what happens if the named entry is absent). Petitboot's device scan only finds a bootable OS on partition #1 (confirmed live: with the boot partition at #2, entries are parsed correctly - "boot option ... is unresolved" is gone - but Petitboot still lists nothing at all). Both are satisfied simultaneously by declaring the boot partition first in genimage.cfg: genimage numbers GPT entries by declaration order, not by on-disk offset (confirmed by reading genimage's own overlap-checking code, which only rejects actual overlaps). So the boot partition becomes GPT #1 for Petitboot while "uboot" keeps its own named entry (now #3) at its original 8M offset for the SPL. Physical layout on the card is unchanged either way. Verified end to end on hardware in this exact image: SPL finds u-boot.itb fine at GPT #3 ("Trying fit image at 0x4000 sector" -> all atf/fdt checks OK), U-Boot's bootstd sees the boot partition as "part 1" and boots extlinux.conf's "batocera-vu8m" label correctly (VU8M active, correctly rotated), and Petitboot lists and boots "batocera.linux" from the same card. All three requirements hold in the same image at last.
Pyohwan
added a commit
that referenced
this pull request
Jul 27, 2026
… need SPL needs U-Boot in a GPT entry literally named "uboot" (locates it by label, per Hardkernel's wiki - not "SPL doesn't care about the partition table", which an earlier commit on this branch mistakenly concluded from seeing "Trying fit image at 0x4000 sector" without checking what happens if the named entry is absent). Petitboot's device scan only finds a bootable OS on partition #1 (confirmed live: with the boot partition at #2, entries are parsed correctly - "boot option ... is unresolved" is gone - but Petitboot still lists nothing at all). Both are satisfied simultaneously by declaring the boot partition first in genimage.cfg: genimage numbers GPT entries by declaration order, not by on-disk offset (confirmed by reading genimage's own overlap-checking code, which only rejects actual overlaps). So the boot partition becomes GPT #1 for Petitboot while "uboot" keeps its own named entry (now #3) at its original 8M offset for the SPL. Physical layout on the card is unchanged either way. Verified end to end on hardware in this exact image: SPL finds u-boot.itb fine at GPT #3 ("Trying fit image at 0x4000 sector" -> all atf/fdt checks OK), U-Boot's bootstd sees the boot partition as "part 1" and boots extlinux.conf's "batocera-vu8m" label correctly (VU8M active, correctly rotated), and Petitboot lists and boots "batocera.linux" from the same card. All three requirements hold in the same image at last.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Documents the vanilla
rk3568shared-target sanity-check build (no kernel/GPU changes, just confirming the buildroot environment itself works before branching off for ODROID-M1-specific work inodroid-m1-bsp-kernel).Draft PR against my own fork for documentation purposes only. The actual fix here was already contributed upstream and accepted: batocera-linux#16060 (maintainer
dmanlfcconfirmed the original source-patch approach was wrong and--disable-avcodecwas the correct fix, givenparallel_buildisolation means ffmpeg isn't actually present in dosbox-x's per-package host at official CI build time).What's in this branch
dosbox-x:--disable-avcodecadded toDOSBOX_X_CONF_OPTS(the earlier source-patch commit in this branch's history was reverted per maintainer feedback).Baseline build log (2026-07-13 ~ 2026-07-16, LG gram)
rk3568target build (all boards: odroid-m1, odroid-m1s, rock-3a/3c, anbernic-rgxx3/rg-ds, firefly-station-m2/p2, orangepi-3b, powkiddy-x55, radxa-zero-3w), 1102 packages, ~3 days wall time across multiple sessions (survived 2 reboots + 1 OOM crash + a docker GID mismatch that broke final image packaging until traced to inconsistentsg dockerusage).batocera-rk3568-odroid-m1-44-20260716.img.gz(2.53GB), SD-card-verified on real hardware.Known gap
This baseline image still ships the original (maintainer-deemed-incorrect) dosbox-x source patch, not the
--disable-avcodecfix in this branch — a full rebuild with this fix applied hasn't been done yet (not urgent, deferred).🤖 Generated with Claude Code
https://claude.ai/code/session_f66fcf92-a0dc-4745-94a0-4fa46afc8b55