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
54 lines
1.3 KiB
Makefile
54 lines
1.3 KiB
Makefile
# RadioControl out-of-tree kernel modules
|
|
#
|
|
# 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
|
|
|
|
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
|
|
obj-$(CONFIG_RC_DIAG_BRIDGE) += rc_diag_bridge.o
|
|
|
|
# Default: build all
|
|
CONFIG_RC_WIFI_MON ?= m
|
|
CONFIG_RC_SHANNON_CMD ?= m
|
|
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
|
|
|
|
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
|
|
|
|
# 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
|