10. Wireless support¶
JAGUAR SBC-RK3588-AMR features an M.2 Key-E socket (Fig. 2.1 Jaguar interfaces overview) which can be used for adding WiFi and Bluetooth support. This chapter shows how to connect to an existing WiFi network and how to scan Bluetooth devices.
10.1. Recommended adapter¶
CHERRY Embedded Solutions recommends using an Intel PCIe wireless adapter due to good Linux support. The following Intel PCIe wireless adapters are widely available and have been tested successfully on JAGUAR SBC-RK3588-AMR:
Intel 9260 (Example distributor: https://www.mouser.com/ProductDetail/607-9260.NGWG.NV )
Intel AX210 (Example distributor: https://www.mouser.com/ProductDetail/607-AX210.NGWG.NV )
Warning
Some Intel wireless adapters use the proprietary CNVio interface instead of standard PCIe. These CNVio adapters usually have a “1” at the end of their model number. CNVio adapters do not work on JAGUAR SBC-RK3588-AMR!
Examples of CNVio adapters: Intel AX211, Intel AX411, Intel BE201.
If a non-Intel adapter is used, this section can be skipped.
Intel adapters require non-free firmware so the following needs to be done on Debian:
echo deb http://deb.debian.org/debian/ trixie main non-free-firmware \
> /etc/apt/sources.list.d/non-free-firmware.list
apt-get update
apt-get install firmware-iwlwifi
reboot
Note
In Yocto, linux-firmware-ibt-18 and linux-firmware-iwlwifi-9260 packages
should be installed. They are installed by default in our cherry-es-extended-image
image.
Additionally, make sure the following Kconfig symbols are set in the kernel defconfig (they are already set this way in the default defconfig):
CONFIG_IWLWIFI=m
CONFIG_IWLDVM=m
CONFIG_IWLMVM=m
CONFIG_BT_HCIBTUSB=m
so that the drivers are built as modules. Finally, ensure that the following files exist in your root file system:
$ ls -1 /lib/modules/*/kernel/drivers/net/wireless/intel/iwlwifi/{dvm/,mvm/,}*.ko
/lib/modules/5.10.160-g13643c184ca4/kernel/drivers/net/wireless/intel/iwlwifi/dvm/iwldvm.ko
/lib/modules/5.10.160-g13643c184ca4/kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
/lib/modules/5.10.160-g13643c184ca4/kernel/drivers/net/wireless/intel/iwlwifi/mvm/iwlmvm.ko
$ ls -1 /lib/modules/*/kernel/drivers/bluetooth/btusb.ko
/lib/modules/5.10.160-g13643c184ca4/kernel/drivers/bluetooth/btusb.ko
The name of the directory in /lib/modules should match exactly the one
returned by:
$ uname --kernel-release
5.10.160-g13643c184ca4
Note
To install the kernel driver modules into the rootfs on Debian, compile the
kernel following the instructions from Section 5.4 Compile the Linux kernel
and either copy the files to the running system with the rsync command
listed in that section and reboot or regenerate a debos image following
instructions from Section 5.5 Building the debos image.
If everything went well, a m2wifi device should appear when executing:
ip address show m2wifi
10.2. Installing software dependencies¶
apt-get install network-manager wpasupplicant bluez
# Disable systemd-networkd and systemd-resolved to let NetworkManager handle everything
systemctl disable --now systemd-networkd
systemctl disable --now systemd-resolved
systemctl enable --now NetworkManager
10.3. Connecting to a Wifi network¶
You can show the available wifi networks using:
nmcli dev wifi
Connect to a network using the following command (replace the network name and password as appropriate):
nmcli dev wifi connect "CHERRY Example Wifi" password "hello-jaguar"
You should get a message like:
Device 'm2wifi' successfully activated with '79ef39fc-8f49-4719-a8d9-4d6d789bb815'.
You should have connectivity over Wifi now. You can check the IP address you received using:
ip address show dev m2wifi
Note
By default, nmcli is not available in our Yocto core-image-minimal image. However, it is
available in our Yocto cherry-es-extended-image image.
10.4. Scanning Bluetooth devices¶
First set the HCI device up:
hciconfig hci0 up
Then scan devices:
hcitool scan