Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob

CYW4373 Wi-Fi Bring-up with x86 Platform

CYW4373 Wi-Fi Bring-up with x86 Platform

10 sign-ins First question asked 5 sign-ins

SW setup

  •   blob and bin (USB firmware needs to be packaged with NVRAM)

HW setup

  • PC platform
  • USB cable

HW configuration


SW setting

  • fmac support does not support all versions, and please keep Ubuntu kernel versions between 4.14 and 5.8.0
  • fmac download path:


  • NVRAM depends on whether you use our own EVB or which module factory's EVB. The EVB of the module factory needs to ask the module factory to provide their NVRAM. Our own EVB can be downloaded to NVRAM from here according to the format number:


  • Put cyfmac4373.clm_blob in cypress-firmware-v5.10.9-2022_0511.tar.gz and cyfmac4373.bin under /lib/firmware/cypress/
  • Update toolchain:

sudo apt-get update

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev libgl1-mesa-dev g++-multilib tofrodos python-markdown libxml2-utils xsltproc lzop

sudo apt-get install lzop

sudo apt-get install build-essential   device-tree-compiler patch   libp11-kit-dev

sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev subversion git-core gawk asciidoc libz-dev zlib1g-dev libssl-dev

  • Remove libmtp-common

sudo apt-get remove libmtp-common

  • ubuntu usually has drivers built into the kernel, making it impossible to build new drivers. It is necessary to change the name of the driver built in kernel and restart it again to ensure that the driver built in kernel will not be installed:

    sudo mv /lib/modules/`uname -r`/kernel/net/wireless/cfg80211.ko /lib/modules/`uname -r`/kernel/net/wireless/cfg80211.ko.bak

sudo mv /lib/modules/`uname -r`/kernel/drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil.ko.bak

sudo mv /lib/modules/`uname -r`/kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko.bak

  • In Linux (PC), UEFI enables secure boot to block non-kernel built ko. Therefore, secure boot needs to be changed to disable in BIOS
  • Drivers do not need to be specifically renamed, only firmware(.bin), NVRAM(.txt), clm(.cln.blob), and folders (/lib/firmware/cypress) need to be renamed: cyfmac or brcmfmac, keep consistent
  • Decompress cypress-backports-v5.10.9-2022_0511-module-src.tar.gz to get v5.10.9-backports. Go to the folder and run these two commands:

make KLIB=/lib/modules/`uname -r`/build/ KLIB_BUILD=/lib/modules/`uname -r`/build/ defconfig-brcmfmac

make KLIB=/lib/modules/`uname -r`/build/ KLIB_BUILD=/lib/modules/`uname -r`/build/ modules

  • Install command:

sudo rmmod brcmfmac
sudo rmmod brcmutil
sudo rmmod cfg80211
cd v5.10.9-backports/
sudo insmod compat/compat.ko
sudo insmod net/wireless/cfg80211.ko
sudo insmod drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil.ko
sudo insmod drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
wl up
wl scan
wl scanresult