Repository navigation
Releases
Release v2.0.2
Changes in v2.0.2:
🚀 Amlogic Warm Reboot Fix, Systemd Shutdown Script & ZTE B860H V5 Support
This release introduces critical fixes for warm reboot deadlocks on Amlogic TV boxes with Always-On power rails (specifically ZTE ZXV10 B860H V5), resolves a silent failure in mt7668-shutdown.service, and includes an officially tested DTB.
Added
- Official ZTE ZXV10 B860H V5 DTB Suite (
meson-g12a-b860h-v5.dtb&meson-g12a-b860h-v5-v1.dtb):- Added standard pre-compiled binary DTB, source DTS, and patch (
no-1-8-v;) resolving the hardware Always-On power rail warm reboot lockup on ZTE B860H V5. - Added specialized eMMC DTB (
meson-g12a-b860h-v5-v1.dtb) with 48 MB TrustZone Memory Shield (secmon@5300000no-map) preventing kernel panic (Synchronous External Abort 0x96000010) on direct internal eMMC boot under Linux 6.12+, while maintaining full SDR104 100 MHz SDIO performance. - Added bilingual installation guides (
dtb/README.mdanddtb/README.id.md) for Armbian users.
- Added standard pre-compiled binary DTB, source DTS, and patch (
- Dedicated Shutdown Helper Script (
/usr/sbin/mt7668-shutdown.sh):- Implemented standalone POSIX shell script installed with
755permissions to cleanly unloadwlan_mt7668and unbind the SDIO host controller (ffe03000*) before reboot or shutdown targets.
- Implemented standalone POSIX shell script installed with
- Single Source of Truth (SSOT) Version Synchronization (
sync-version.sh):- Added automation script to ensure atomic, verified synchronization of version numbers and release asset links across all package metadata and documentation.
Fixed
- Systemd Inline Syntax Silent Failure in
mt7668-shutdown.service:- Fixed a syntax bug where systemd interpreted
${d##*/}as an internal variable evaluating to an empty string"", causing unbind commands to be rejected by the kernel. Now cleanly invokes/usr/sbin/mt7668-shutdown.sh.
- Fixed a syntax bug where systemd interpreted
- Amlogic Always-On Power Rail Warm Reboot Deadlock (
error -22):- Identified root cause of
meson-gx-mmc: no support for card's voltsandCard stuck being busy!: Always-On rails keep MT7668 locked in 1.8V mode while SoC reboots at 3.3V. Enforcing 3.3V signaling viano-1-8-v;in the B860H V5 DTB eliminates voltage mismatch and guarantees 100% stable warm reboots.
- Identified root cause of
Release v2.0.1
Changes in v2.0.1:
🛠️ Multi-Kernel Stability & UsrMerge Compliance Release
This maintenance and stability release ports critical data-plane and multi-kernel fixes from the upstream MT7663 ecosystem, resolving kernel oops on station association across LTS kernels and enforcing modern UsrMerge filesystem compliance.
Added
- Full Co-existence & Driver Isolation with MT7663:
- Renamed SDIO driver instance in
os/linux/hif/sdio/sdio.cfrom generic"wlan"to"wlan_mt7668"to prevent kerneldriver_register-EBUSYcollision when both MT7663 and MT7668 modules are loaded. - Isolated kernel
/proc/net/debug and MET trace directories towlan_mt7668(os/linux/gl_proc.c) andwlan_mt7668_met(os/linux/gl_kal.c), eliminating kernelproc_register"already registered" warnings and call traces during multi-driver boot. - Blacklisted obsolete distro-provided MT7668 driver (
wlan_mt76x8_sdio) inblacklist-mt7668-bluetooth.confanddebian/postinstto preventudev-workerfrom binding competing legacy drivers on Ophub Armbian kernels. - Namespaced system integration files to
99-mt7668-throughput.conf,99-mt7668-performance.rules, andmt7668-irq-tune.shto allow seamless parallel installation withmt7663-dkmson universal OS images. - Added module active guard (
if lsmod | grep -q "^wlan_mt7668"; then ... fi) tomt7668-shutdown.serviceso unbind operations only execute when MT7668 hardware is active.
- Renamed SDIO driver instance in
- Global Station Record Lookup Fallback (
cnmGetAnyStaRecByAddress):- Implemented
cnmGetAnyStaRecByAddress()inmgmt/cnm_mem.cand declared ininclude/mgmt/cnm_mem.hto look up active station records across all BSS indices. - Added fallback in
nicEventAddPkeyDone(nic/nic_cmd_event.candnic/nic_rx.c) preventing BSS index mismatches on virtual interfaceap0from dropping pairwise key completion notifications.
- Implemented
- WPA2/WPA3 Data-Plane Queue Unlocking (
fgIsTxKeyReady):- Explicitly unlocked the transmission queue (
fgIsTxKeyReady = TRUE) and updated station queues (qmUpdateStaRec) immediately upon pairwise key installation inos/linux/gl_p2p_cfg80211.c(mtk_p2p_cfg80211_add_key). - Resolves connection loops where client stations authenticate successfully but experience zero data throughput ("connected without internet").
- Explicitly unlocked the transmission queue (
- Universal SDIO Controller Device Matching (
ffe03000*):- Updated
mt7668-shutdown.serviceto discover and unbind/sys/bus/platform/drivers/meson-gx-mmc/ffe03000*dynamically using wildcard matching, withTimeoutStartSec=2. - Ensures clean SDIO reset and reliable warm reboots on FiberHome HG680-FJ regardless of whether the device label is
.sdor.mmc.
- Updated
Fixed
- Multi-Kernel Station Update Compatibility (
kalP2PGOStationUpdate):- Added preprocessor guard
#if (CFG80211_VERSION_CODE >= KERNEL_VERSION(6, 14, 0))inos/linux/gl_p2p_kal.c. - Passes
struct net_device *(aprRoleHandler) on Linux kernels < 6.14 (including Linux 5.10 LTS and 6.12 LTS Ophub), andstruct wireless_dev *(ieee80211_ptr) on Linux 6.14+. - Fixes fatal kernel oops and
main_threadcrash when stations associate or disconnect.
- Added preprocessor guard
- Accurate Linux Mainline 6.12+
cfg80211_cac_eventBoundary:- Corrected macro guard in
os/linux/gl_p2p_kal.cto#if KERNEL_VERSION(6, 12, 0) <= CFG80211_VERSION_CODE. - Resolves compilation error (
too many arguments to function ‘cfg80211_cac_event’) on intermediate Linux kernels (such as Ubuntu 6.8 LTS).
- Corrected macro guard in
- Key Index Bitmask Authenticator Check (
wlanoidSetAddKey):- Explicitly permitted
IS_AUTHENTICATOR(BIT(28)) incommon/wlan_oid.ckey index exception validation.
- Explicitly permitted
- UsrMerge Packaging Compliance (
build-deb.sh):- Relocated firmware installation destination from
./lib/firmware/to./usr/lib/firmware/in Debian package build process. - Prevents
dpkg -xmanual extractions from breaking the modern Debian/Armbian/lib -> usr/libsymlink and causing boot panics.
- Relocated firmware installation destination from
Release v2.0.0
Changes in v2.0.0:
🚀 Major Architectural Leap (Elsangithub Production Release)
This release represents a major evolutionary jump for the MediaTek MT7668 SDIO Wi-Fi driver, bringing it to full functional, throughput, and packaging parity with the acclaimed mt7663-driver ecosystem. The headline capability is the porting and introduction of Dedicated AP Mode (ap_mode / ap0), turning FiberHome HG680-FJ (Amlogic S905X2 / Meson G12A) TV boxes into enterprise-grade 5 GHz 802.11ac Hotspot Routers and Wi-Fi Repeaters.
Added
- Dedicated AP Mode & Modular Kernel Parameter (
ap_mode):- Implemented dynamic runtime module parameter
ap_modeinos/linux/gl_init.c:ap_mode=0(Default): Pure client station mode (wlan0only). Zero overhead, maximum stability for general desktop/server deployments.ap_mode=1: Dedicated SoftAP mode. Automatically registers and instantiates the virtual interfaceap0alongsidewlan0at driver probe time. Ideal for companion routing packages likemt7663-router-webuiand standalonehostapd.ap_mode=2: Dual AP mode (dual AP virtual interfaces).ap_mode=3: P2P + AP concurrent mode.
- Added configuration template file
/etc/modprobe.d/mt7668.conf.
- Implemented dynamic runtime module parameter
- Native SMP Multi-Core CPU Affinity in Kernel C (
gl_kal.c):- Implemented
set_cpus_allowed_ptronhif_thread,rx_thread, andmain_threaddirectly inside kernel thread entry points. - Automatically isolates all network traffic processing from CPU0 (
cpumask_clear_cpu(0, &mask)), balancing worker threads dynamically across CPU 1, 2, and 3 to prevent CPU0 bottlenecks.
- Implemented
- FIFO Underflow & Overflow Fast-Path (
nic/nic.c):- Implemented instant hardware interrupt acknowledgement and fast-path clearing for
WASR_RX0_UNDER_FLOW,WASR_RX1_UNDER_FLOW, andWASR_TX1_OVER_FLOW. - Prevents SDIO bus stalls and chip panic resets (
glResetTrigger) during heavy bidirectional traffic floods.
- Implemented instant hardware interrupt acknowledgement and fast-path clearing for
- Dynamic Hardware IRQ Balancing & RPS Rules:
- Bundled
/usr/lib/udev/wlan-irq-tune.shand/etc/udev/rules.d/99-wlan-performance.rules. - Automatically migrates SDIO hardware interrupts (
ffe03000.mmc) to CPU 2 and 3 (smp_affinity_list: 2,3). - Activates Receive Packet Steering (RPS mask
e/0b1110) onwlan0to offload TCP/IP network stack processing to CPU 1, 2, and 3.
- Bundled
- Hard Dummy Bluetooth Driver Blacklist:
- Enforced
install btmtksdio /bin/true,install btmtk /bin/true, and in-treemt76driver blacklists in/etc/modprobe.d/blacklist-mt7668-bluetooth.confto completely prevent SDIO bus collision on boot.
- Enforced
- Automatic Firmware Backup & Clean Firmware Bundle:
- Bundled clean, verified firmware files in
system/lib/firmware/(EEPROM_MT7668.bin,TxPwrLimit_MT76x8.dat,WIFI_RAM_CODE_MT7668.bin,WIFI_RAM_CODE2_SDIO_MT7668.bin,mt7668_patch_e2_hdr.bin,wifi.cfg). - Added automated preinst safety routine creating
/lib/firmware/backup_stock_mt7668/before package extraction.
- Bundled clean, verified firmware files in
- Modern Debian Packaging Architecture (
debian/):- Standardized versioned
debian/directory structure (control,preinst,postinst,prerm). - Automated DKMS self-healing in
postinst(detects and cleans legacy versions, auto-rebuildsmodpostif host glibc toolchain mismatches). - Automated CI/CD release workflow via GitHub Actions (
.github/workflows/release.yml).
- Standardized versioned
Changed
- Balanced Thermal Profile (
wifi.cfg):- Fine-tuned queue loops (
HifTxLoop 16,OsTxLoop 8) and disabled unnecessary VHT beamforming/STBC calculation for cooler daily operation (~53 °C).
- Fine-tuned queue loops (
- DKMS Configuration (
dkms.conf):- Upgraded
PACKAGE_VERSIONto"2.0.0".
- Upgraded
- Kernel 6.8+ & Modern Upstream Compatibility:
- Updated
cfg80211_cac_eventsignature handling inos/linux/gl_p2p_kal.cacross Linux kernels (distinguishing 4-arg in 6.8+, 5-arg in 6.1..6.7, and 4-arg in 3.14..6.0). - Updated
cfg80211_ch_switch_notifysignature handling inmgmt/p2p_func.cto support puncturing bitmap parameters in Linux 6.8+ and 6.12+. - Safely guarded unexported
kallsyms_on_each_symbolinos/linux/gl_kal.con Linux 5.7+ when kernelCONFIG_LIVEPATCHis active.
- Updated
Removed
- Pruned obsolete and unused
.bakfiles from source tree (gl_init.c.bak,sdio.c.bak).