reference/: vendor kernel drivers as git submodules#229
Merged
Conversation
Replace 1.2 GB of gitignored full clones under reference/ with pinned git submodules so contributors share the same fork+commit ground-truth without committing driver source into devourer's history (parent gains only gitlinks). Forks (one dir per driver): - rtl8812au / rtl88x2bu / rtl88x2cu / rtl88x2eu -> josephnef forks of OpenHD on a devourer-kbuild branch (pinned upstream + one kernel-6.x kbuild-compat patch: ccflags-y, from_timer->timer_container_of) so the reference .ko builds on modern host/VM kernels. - 8821cu -> morrownr/8821cu-20210916 @ main. - rtl88x2eu-5mhz -> libc0607/rtl88x2eu-20230815 @ 5mhz_bw: the only fork with the working R_0x9b4 5 MHz DAC-divider, kept as the Jaguar3 narrowband ground-truth (was rtl88x2eu-2023-5mhz). OpenHD is the maintained mainline; its lineage dropped the narrowband branch, so both are tracked. OpenHD chosen over aircrack-ng (pentest) / morrownr (managed-AP) because it is the FPV/wifibroadcast lineage matching devourer (runtime TX-power-index + raw injection). Rationale + layout in reference/README.md. Move chip-id / kernel-bind helpers out of reference/ root into tests/ (chipid_probe.c, read_8821c_chipid.sh, 8821cu_hwtest.sh); drop the committed compiled probe binary. read_8821c_chipid.sh builds into a tempdir; 8821cu_hwtest.sh resolves the .ko via the submodule path. Verified: tools/extract_*.py reproduce hal/ byte-for-byte from the submodule checkouts; 15/15 ctest pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
What
Replaces the 1.2 GB of gitignored full clones under
reference/with pinned git submodules, so contributors share the same fork+commit ground-truth without committing driver source into devourer's history — the parent repo gains only gitlinks (+29 lines total).Fork choices (one dir per driver)
rtl8812au,rtl88x2bu,rtl88x2cu,rtl88x2eujosephnef/*forks of OpenHD @devourer-kbuild8821cumainrtl88x2eu-5mhz5mhz_bwR_0x9b45 MHz DAC-divider, the Jaguar3 narrowband ground-truth fortests/jaguar3_eu_kernel_5mhz_sdr.sh+jaguar3_eu_5mhz_mirror_ab.sh. OpenHD's lineage dropped this branch, so both are tracked. (wasrtl88x2eu-2023-5mhz)Build patches preserved
The four OpenHD drivers need small kernel-6.x kbuild-compat patches (
EXTRA_CFLAGS→ccflags-y,from_timer→timer_container_of) to build their.koon modern host/VM kernels. These live as one patch commit on eachdevourer-kbuildbranch (= pinned upstream commit + patch), so everyone builds the reference.koidentically.Housekeeping
reference/→tests/(chipid_probe.c,read_8821c_chipid.sh,8821cu_hwtest.sh); committed compiled probe binary dropped.read_8821c_chipid.shbuilds into a tempdir;8821cu_hwtest.shresolves the.kovia the submodule path.git submodule update --init --recursivedocumented inreference/README.md, pointer added toCLAUDE.md.Verification
reference/*is a mode-160000 gitlink — zero driver source in devourer history.tools/extract_*.pyreproducehal/byte-for-byte from the submodule checkouts (fork content = ground-truth).bash -n;chipid_probe.ccompiles; build clean; 15/15 ctest pass.reference/1.2 G → 272 M (shallow); smaller for fresh consumer inits.Note for reviewers
The
devourer-kbuild/5mhz_bwsubmodule branches are non-default, so init needs--recursive(branches are recorded in.gitmodules). Fetch with:🤖 Generated with Claude Code