Backports

The backports package contains the kernel components needed to support the Sona IF573 and Sterling LWBx radios. These include the brcmfmac Wi-Fi driver, the cfg80211 driver, the Bluetooth kernel subsystem and bluetooth drivers. The backports package is created based on the latest Ezurio-supported kernel. The backports package supports the use of customer platforms using earlier kernel versions.

The set of components required from backports is specified in a defconfig file. The backports package includes a set of reference defconfigs for the various radios the backports package can support. These files are located in the defconfigs subdirectory in the root of the backports package. The Sona IF573 and Sterling LWBx radios use the lwb reference defconfig.

The kernel components included in the backports package must be the ones that are used on the target platform. Components built into the base kernel will take precedence over corresponding components from the backports package. Therefore it is important to ensure that these components are not marked as built-in (‘y’) in the base kernel configuration.

  • Wireless device drivers located at Device Drivers/Network device support/Wireless LAN
  • cfg80211 located at Networking support/Wireless
  • Bluetooth core and drivers located at Networking support/Bluetooth subsystem support

Kernel versions 5.19 and higher must include cfg80211 as a module (m) in the base platform kernel configuration. It must not be left out, and must not be included as built-in (y).

  • Networking support->Wireless->cfg80211 - wireless configuration API

Note: The backports package is a subset of kernel components that have been “backported” to earlier kernel versions. It does not include all dependencies needed for operation. Any dependencies must still be provided by the base kernel configuration for full functionality. In particular, the Bluetooth subsystem has dependencies on a number of crypto modules such as CRYPTO_ECDH. These must be explicitly included in the base kernel configuration if they are not already brought in as a dependency of another base kernel component. See the Help for the Bluetooth subsystem support in the Linux kernel menuconfig for a list of the items that are normally selected; these components must be explicitly included if necessary.

The procedure for building the backports package will depend on your build system. Ultimately it involves setting environment variables to specify the target Linux version, CPU architecture and cross compiler. The .config file is built from the desired defconfig, and then the binaries are built. See the following for an example:

set -a
CROSS_COMPILE=${CROSS_COMPILE}
ARCH=${TARGET_CPU}
KLIB_BUILD=${DEV_PATH}/${LINUX_DIR}
set +a
make defconfig-lwb
make

This is handled automatically by the Ezurio Yocto layer for those using the Yocto build system.

The backports build process will produce the following binaries that are needed to support the Wi-Fi subsystem on the Sona IF573 and LWBx series radios:

brcmfmac.ko ------ at ./drivers/net/wireless/broadcom/brcm80211/brcmfmac/
brcmutil.ko ------ at ./drivers/net/wireless/broadcom/brcm80211/brcmutil/
cfg80211.ko ------ at ./net/wireless/
compat.ko -------- at ./compat/

The following binaries are needed to support the Bluetooth subsystem on the LWBx series radios (depending on selected host interface):

bluetooth.ko ----- at ./net/bluetooth/
hci_uart.ko ------ at ./drivers/bluetooth/
btusb.ko --------- at ./drivers/bluetooth/
btbcm.ko --------- at ./drivers/bluetooth/
compat.ko -------- at ./compat/

Verify these binaries are present on the target platform to confirm the backports build process completed successfully.