Files
test0r e580126d84 Initial: BESser umbrella for BES2600 driver mainlining
Sets up the BES2600 mainlining work tree with:

- README: project overview, hardware target, driver lineage
  (CW1200 -> Bestechnic -> arjan-vlek -> Mobian/danctnix), patch series
  status, repo map, build/deploy workflow.

- patches/: c1 patch generated by git format-patch from
  marfrit/bes2600-dkms branch bes2600/factory-request-firmware
  (checkpatch.pl --no-tree --strict: 0 errors / 0 warnings / 0 checks).

- scripts/: build-bes2600-on-ohm.sh, deploy-c1-to-ohm.sh,
  backup-ohm-kernel.sh - reproducible build + deploy + backup.

- fw-analysis/: per-blob strings.txt + fnnames.txt extracted from the
  4 firmware blobs pulled from ohm 2026-04-21. Source binaries NOT
  committed (Bestechnic-proprietary).

- notes/: observed-bugs.md (4 known bug surfaces with file:line +
  patch-series cross-reference), source-map.md (every public driver
  source variant + their canonical role).

Companion work tree: marfrit/bes2600-dkms (Mobian DKMS fork) at
git.reauktion.de.

Signed-off-by: Markus Fritsche <fritsche.markus@gmail.com>
2026-04-22 10:13:23 +02:00

78 lines
3.9 KiB
Markdown

# BES2600 driver source map
Inventory of every public driver source variant we found (2026-04-21), their relationships, and where each fits in the patch workflow.
## The trees
### TuxThePenguin0 — pre-removal Android-provenance snapshot
- **URL**: `gitlab.com/TuxThePenguin0/bes2600`
- **Files**: 53, flat layout (no subdir)
- **HEAD**: `5316ef0 Merge branch 'master' into 'master'` (2023-07-14)
- **Provenance markers** (Android-only files):
- `bes2600_cfgvendor.c/.h` — Android nl80211 vendor-cmd HAL interface
- `bes2600_driver_mode.h` — Android normal/factory/cali mode switch
- `bes2600_log.c/.h` — Android-style ALOGx logger
- **Use**: reference for "what was originally shipped before community cleanup"
### arjan-vlek — historical home (sources removed)
- **URL**: `gitlab.com/arjanvlek/bes2600`
- **master tip**: `3230fbd Simplify README.md` (2024-10) — README only
- Sources removed in `e5055a3 "Removed sources from main branch"` (2024-10)
- Pre-removal tip: `a184728 Merge branch 'checkpatch-fixes' into 'master'` (same SHA as TuxThePenguin0's history point)
### Mobian DKMS — active maintained, primary PR target
- **URL upstream**: `salsa.debian.org/Mobian-team/devices/bes2600-dkms`
- **Our fork**: `git.reauktion.de/marfrit/bes2600-dkms`
- **Default branch**: `mobian`
- **Files**: 61 (Debian packaging layout: `Makefile.dkms` at root + `bes2600/*` source + `debian/`)
- **HEAD**: `fe73571 d/control: Fix packagename of fw dependency` (2025-12)
- Adds `Kconfig`, `Makefile`, `bes_pwr.c`, `itp.c`, `bes_log.h`, `bes_nl80211_testmode_msg.h` over TuxThePenguin0
- Drops Android-provenance files (cfgvendor, driver_mode, ALOG-style logger)
- **PR mechanism**: salsa.debian.org merge requests
### danctnix in-kernel
- **URL**: `codeberg.org/DanctNIX/linux-pinetab2`
- **Tag**: `v6.19.10-danctnix1` matches the running kernel on ohm
- **Path**: `drivers/staging/bes2600/` (54 files)
- Adds `bes2600_btuart.c` (Dang Huynh, 2025) + `h4_recv.h` (Intel mainline copy) + `wifi_testmode_cmd.c`
- Same factory.c / bes_pwr.c / bes2600_sdio.c content as Mobian (verified 0-hunk diffs)
- **Use**: build target for in-kernel deployment via `/lib/modules/<ver>/extra/`
### CW1200 mainline — ancestor
- **URL**: `github.com/torvalds/linux/tree/master/drivers/net/wireless/st/cw1200`
- 27 files, mainline-quality staging-cleaned
- Same author (Dmitry Tarnyagin / ST-Ericsson)
- Reference for upstream patterns; some BES2600 bugs may already be fixed in CW1200
### OpenHarmony device_soc_bestechnic — Chinese-ecosystem reference
- **URL**: `gitee.com/openharmony/device_soc_bestechnic`
- Apache-2.0 (CANNOT direct-copy to GPL kernel)
- LiteOS-M + HDF framework, not Linux driver
- **Use**: register-level reference, firmware interaction protocol docs
### Firmware mirrors (binary blobs only)
- `github.com/Herrie82/bes2600-firmware` — 2 blobs (boot + sdio main), v0.3.5_2023.0209
- `gitlab.com/pine64-org/bes2600-firmware` — same blobs
- **On ohm**: 5 files at `/lib/firmware/bes2600/` (adds `btrf` + `nosignal` variants + `bes2600_factory.txt`)
## Filename-level set diff
43 driver C/H files common across TuxThePenguin0 + Mobian + danctnix
(the CW1200-descended shared core).
| File | Status |
|------|--------|
| `bes2600_cfgvendor.c/.h` | TuxThePenguin0 only (Android HAL) |
| `bes2600_driver_mode.h` | TuxThePenguin0 only |
| `bes2600_log.c/.h` | TuxThePenguin0 (renamed → `bes_log.h` in Mobian + danctnix) |
| `dkms.conf`, `Kconfig` | Mobian only |
| `bes2600_btuart.c`, `h4_recv.h` | danctnix only (BT integrated in same dir) |
## Workflow
| Goal | Tree | Branch | PR via |
|------|------|--------|--------|
| Per-patch dev | `marfrit/bes2600-dkms` | `bes2600/<name>` | salsa MR to upstream Mobian |
| Live test on ohm | `~/bes2600-build/` (tar from danctnix tree, builds against `linux-pinetab2-headers`) | none | install to `/lib/modules/<ver>/extra/` |
| Eventual mainline | (rewrite as drivers/staging/bes2600/) | `staging-bes2600` | linux-wireless mailing list RFC |