2026-03-31 04:27:24 -07:00
|
|
|
# RadioControl out-of-tree kernel modules
|
v1.1.0: Complete kernel modules, fix WebUI bugs
Kernel modules fully implemented for kernel 6.6/Tensor G5:
- rc_wifi_mon: kprobes kallsyms, bcmdhd iovar monitor/promisc/allmulti,
sysfs status at /sys/kernel/rc_wifi_mon/, clean unpatch on unload
- rc_shannon_cmd: ioctl interface (AT_CMD, GET_URC, SET_TIMEOUT,
GET_STATUS, FLUSH), URC ring buffer (64 entries), modem probe on init
- rc_diag_bridge: HDLC decode with CRC-16 validation, FTM ioctl,
EFS read/write/stat/unlink, version query, subsystem dispatch
- rc_ioctl.h: shared userspace header for all ioctl definitions
- All modules handle class_create() API change in kernel 6.4+
WebUI fixes:
- Fix malformed WiFi firmware JSON output
- Add vonr/vt/apn/nradv to carrier config read endpoint
- Fix carrier toggle state loading in frontend
- Fix redundant replace in kmod toggle logic
Makefile: single-module build (MOD=), make package target
uninstall.sh: unload kernel modules before cleanup
2026-03-31 20:25:44 -07:00
|
|
|
#
|
|
|
|
|
# Build all:
|
|
|
|
|
# make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- KERNEL_DIR=/path/to/kernel
|
|
|
|
|
#
|
|
|
|
|
# Build specific module:
|
|
|
|
|
# make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- KERNEL_DIR=/path/to/kernel MOD=rc_wifi_mon
|
|
|
|
|
#
|
|
|
|
|
# Target: Pixel 10 Pro Fold (rango), Tensor G5, kernel 6.6.102
|
2026-03-31 04:27:24 -07:00
|
|
|
|
|
|
|
|
KERNEL_DIR ?= /lib/modules/$(shell uname -r)/build
|
|
|
|
|
|
|
|
|
|
obj-$(CONFIG_RC_WIFI_MON) += rc_wifi_mon.o
|
|
|
|
|
obj-$(CONFIG_RC_SHANNON_CMD) += rc_shannon_cmd.o
|
v1.1.0: Complete kernel modules, fix WebUI bugs
Kernel modules fully implemented for kernel 6.6/Tensor G5:
- rc_wifi_mon: kprobes kallsyms, bcmdhd iovar monitor/promisc/allmulti,
sysfs status at /sys/kernel/rc_wifi_mon/, clean unpatch on unload
- rc_shannon_cmd: ioctl interface (AT_CMD, GET_URC, SET_TIMEOUT,
GET_STATUS, FLUSH), URC ring buffer (64 entries), modem probe on init
- rc_diag_bridge: HDLC decode with CRC-16 validation, FTM ioctl,
EFS read/write/stat/unlink, version query, subsystem dispatch
- rc_ioctl.h: shared userspace header for all ioctl definitions
- All modules handle class_create() API change in kernel 6.4+
WebUI fixes:
- Fix malformed WiFi firmware JSON output
- Add vonr/vt/apn/nradv to carrier config read endpoint
- Fix carrier toggle state loading in frontend
- Fix redundant replace in kmod toggle logic
Makefile: single-module build (MOD=), make package target
uninstall.sh: unload kernel modules before cleanup
2026-03-31 20:25:44 -07:00
|
|
|
obj-$(CONFIG_RC_DIAG_BRIDGE) += rc_diag_bridge.o
|
2026-03-31 04:27:24 -07:00
|
|
|
|
|
|
|
|
# Default: build all
|
|
|
|
|
CONFIG_RC_WIFI_MON ?= m
|
|
|
|
|
CONFIG_RC_SHANNON_CMD ?= m
|
v1.1.0: Complete kernel modules, fix WebUI bugs
Kernel modules fully implemented for kernel 6.6/Tensor G5:
- rc_wifi_mon: kprobes kallsyms, bcmdhd iovar monitor/promisc/allmulti,
sysfs status at /sys/kernel/rc_wifi_mon/, clean unpatch on unload
- rc_shannon_cmd: ioctl interface (AT_CMD, GET_URC, SET_TIMEOUT,
GET_STATUS, FLUSH), URC ring buffer (64 entries), modem probe on init
- rc_diag_bridge: HDLC decode with CRC-16 validation, FTM ioctl,
EFS read/write/stat/unlink, version query, subsystem dispatch
- rc_ioctl.h: shared userspace header for all ioctl definitions
- All modules handle class_create() API change in kernel 6.4+
WebUI fixes:
- Fix malformed WiFi firmware JSON output
- Add vonr/vt/apn/nradv to carrier config read endpoint
- Fix carrier toggle state loading in frontend
- Fix redundant replace in kmod toggle logic
Makefile: single-module build (MOD=), make package target
uninstall.sh: unload kernel modules before cleanup
2026-03-31 20:25:44 -07:00
|
|
|
CONFIG_RC_DIAG_BRIDGE ?= m
|
|
|
|
|
|
|
|
|
|
# Allow building a single module via MOD=name
|
|
|
|
|
ifdef MOD
|
|
|
|
|
CONFIG_RC_WIFI_MON = n
|
|
|
|
|
CONFIG_RC_SHANNON_CMD = n
|
|
|
|
|
CONFIG_RC_DIAG_BRIDGE = n
|
|
|
|
|
CONFIG_$(shell echo $(MOD) | tr a-z A-Z) = m
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# Extra compiler flags for Android/ARM64
|
|
|
|
|
ccflags-y += -Wno-unused-function
|
|
|
|
|
ccflags-y += -DCONFIG_RADIOCONTROL
|
2026-03-31 04:27:24 -07:00
|
|
|
|
|
|
|
|
all:
|
|
|
|
|
$(MAKE) -C $(KERNEL_DIR) M=$(CURDIR) modules
|
|
|
|
|
|
|
|
|
|
clean:
|
|
|
|
|
$(MAKE) -C $(KERNEL_DIR) M=$(CURDIR) clean
|
|
|
|
|
|
|
|
|
|
install:
|
|
|
|
|
$(MAKE) -C $(KERNEL_DIR) M=$(CURDIR) modules_install
|
v1.1.0: Complete kernel modules, fix WebUI bugs
Kernel modules fully implemented for kernel 6.6/Tensor G5:
- rc_wifi_mon: kprobes kallsyms, bcmdhd iovar monitor/promisc/allmulti,
sysfs status at /sys/kernel/rc_wifi_mon/, clean unpatch on unload
- rc_shannon_cmd: ioctl interface (AT_CMD, GET_URC, SET_TIMEOUT,
GET_STATUS, FLUSH), URC ring buffer (64 entries), modem probe on init
- rc_diag_bridge: HDLC decode with CRC-16 validation, FTM ioctl,
EFS read/write/stat/unlink, version query, subsystem dispatch
- rc_ioctl.h: shared userspace header for all ioctl definitions
- All modules handle class_create() API change in kernel 6.4+
WebUI fixes:
- Fix malformed WiFi firmware JSON output
- Add vonr/vt/apn/nradv to carrier config read endpoint
- Fix carrier toggle state loading in frontend
- Fix redundant replace in kmod toggle logic
Makefile: single-module build (MOD=), make package target
uninstall.sh: unload kernel modules before cleanup
2026-03-31 20:25:44 -07:00
|
|
|
|
|
|
|
|
# Copy built modules to the module package directory
|
|
|
|
|
package:
|
|
|
|
|
@mkdir -p ../../common/kmod_out
|
|
|
|
|
@for ko in *.ko; do \
|
|
|
|
|
if [ -f "$$ko" ]; then \
|
|
|
|
|
cp "$$ko" ../../common/kmod_out/; \
|
|
|
|
|
echo "Packaged: $$ko"; \
|
|
|
|
|
fi; \
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
.PHONY: all clean install package
|