Building and installing WFx kernel module from upstream branch
At this point you should have :
- Downloaded Kernel headers matching your running platform
- Downloaded Kernel sources matching your running platform
Building the wfx Kernel Object
Building the entire kernel takes too much time, so the below focuses on building the WFx module only
Once you have downloaded the sources navigate to the WFX driver :
cd linux-stable/drivers/net/wireless/silabs/wfx/
Once there simply build the module by calling make -C /lib/modules/$(uname -r)/build/ CONFIG_WFX=m M=$(pwd) modules
:
If $(uname -r)
does not return the proper header's directory, adjust to the correct value in the command instead
pi@raspberrypi:~/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx $ make -C /lib/modules/$(uname -r)/build/ CONFIG_WFX=m M=$(pwd) modules
make: Entering directory '/usr/src/linux-headers-6.1.21-v8+'
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/bh.o
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/hwio.o
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/fwio.o
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/hif_tx_mib.o
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/hif_tx.o
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/hif_rx.o
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/queue.o
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/data_tx.o
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/data_rx.o
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/scan.o
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/sta.o
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/key.o
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/main.o
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/debug.o
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/bus_spi.o
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/bus_sdio.o
LD [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/wfx.o
MODPOST /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/Module.symvers
CC [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/wfx.mod.o
LD [M] /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/wfx.ko
make: Leaving directory '/usr/src/linux-headers-6.1.21-v8+'
As seen in the console trace, the kernel module is built /home/pi/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx/wfx.ko
Installing the wfx Kernel Object
Still from the same directory now we will install the module on the running target by calling make -C /lib/modules/$(uname -r)/build/ CONFIG_WFX=m M=$(pwd) modules_install
as superuser
Again, if $(uname -r)
does not return the proper header's directory, adjust to the correct value in the command instead
pi@raspberrypi:~/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx $ sudo make -C /lib/modules/$(uname -r)/build/ CONFIG_WFX=m M=$(pwd) modules_install
make: Entering directory '/usr/src/linux-headers-6.1.21-v8+'
INSTALL /lib/modules/6.1.21-v8+/extra/wfx.ko
XZ /lib/modules/6.1.21-v8+/extra/wfx.ko.xz
DEPMOD /lib/modules/6.1.21-v8+
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make: Leaving directory '/usr/src/linux-headers-6.1.21-v8+'
Finally you might need to run depmod -a
as superuser manually afterwards if the warning shows up:
pi@raspberrypi:~/wfx_driver/linux-stable/drivers/net/wireless/silabs/wfx $ sudo depmod -A