layout | title | category | order | technology | product | status |
---|---|---|---|---|---|---|
page |
LWB5+ Dongle i.MX 8M Plus Yocto Integration |
Sterling-LWB5+ Tutorials |
2 |
wifi |
Sterling-LWB5+ |
publish |
This tutorial will show you how to integrate the LWB5+ Dongle on an i.MX 8M Plus Yocto platform. To watch video tutorial, click here.
- LWB5+ Dongle (Part No. 450-00137)
- i.MX 8M Plus EVK (Part No. 8MPLUSLPD4-EVK)
- Linux PC with a Yocto Build Environment. As a prerequisite for this tutorial, we are going to assume that you know how to setup a Yocto build environment. This is covered very well in NXP's documentation ( i.e. see i.MX_Yocto_Project_User's_Guide.pdf, Rev. L5.4.70_2.3.0 — 31 December 2020 for details on how to install the required host packages and the repo utility, and how to setup git); so we will not cover it here. We will focus on how to add Ezurio's external layer into a Yocto build.
We will flash our image into a micro SD card. If you prefer, you can use the onboard eMMC, but for this tutorial. we will boot from a micro SD card. The LWB5+ Dongle will plug into J7. Power will be applied via J5, and J23 will be used to connect to a serial terminal (115200, N, 8, 1). If the build works, the drivers will automatically load on power up. We will then connect to an AP and do a ping to demonstrate that Wi-Fi works. For Bluetooth, we will do a scan to show that the module can detect devices that are discoverable or advertising.
-
Download the i.MX Yocto Project Community BSP recipe layers
Reminder: Prior to proceeding, make sure the required host packages and repo utility are installed. Git must also be configured properly. Refer to i.MX_Yocto_Project_User's_Guide.pdf, Rev. L5.4.70_2.3.0 — 31 December 2020 for details.
mkdir ~/projects/imx8mp cd ~/projects/imx8mp repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-kirkstone -m imx-5.15.32-2.0.0.xml && repo sync
-
Setup build configuration
DISTRO=fsl-imx-wayland MACHINE=imx8mpevk source imx-setup-release.sh -b build-imx8p-wayland
-
Modify the ~/projects/imx8mp/build-imx8p-wayland/conf/bblayers.conf file. Add the line below to the file.
BBLAYERS += "${BSPDIR}/sources/meta-summit-radio/meta-summit-radio"
Note: for Yocto projects 3.3 (Hardknott) and earlier the line you add would be
BBLAYERS += "${BSPDIR}/sources/meta-summit-radio/meta-summit-radio-pre-3.4"
-
Modify the ~/projects/imx8mp/build-imx8p-wayland/conf/local.conf file. Add the lines below to the file.
PREFERRED_PROVIDER_wpa-supplicant = "sterling-supplicant" PREFERRED_PROVIDER_wpa-supplicant-cli = "sterling-supplicant" PREFERRED_PROVIDER_wpa-supplicant-passphrase = "sterling-supplicant" BBMASK += " \ meta-summit-radio/meta-summit-radio/recipes-packages/openssl \ meta-summit-radio/meta-summit-radio/recipes-packages/.*/.*openssl10.* \ " PREFERRED_RPROVIDER_wireless-regdb-static = "wireless-regdb" LWB_REGDOMAIN = "US"
Note: for Yocto projects 3.3 (Hardknott) and earlier you would add:
PREFERRED_PROVIDER_wpa-supplicant = "sterling-supplicant"
PREFERRED_PROVIDER_wpa-supplicant-cli = "sterling-supplicant"
PREFERRED_PROVIDER_wpa-supplicant-passphrase = "sterling-supplicant"
BBMASK += " \
meta-summit-radio/meta-summit-radio-pre-3.4/recipes-packages/openssl \
meta-summit-radio/meta-summit-radio-pre-3.4/recipes-packages/.*/.*openssl10.* \
"
PREFERRED_RPROVIDER_wireless-regdb-static = "wireless-regdb"
LWB_REGDOMAIN = "US"
-
Clone the meta-summit-radio layer into ~/projects/imx8mp/sources directory
cd ~/projects/imx8mp/sources git clone https://github.com/LairdCP/meta-summit-radio
-
Edit the ~/projects/imx8mp/sources/meta-summit-radio/meta-summit-radio/recipes-packages/images/sample-image-cp-lwb5plus.bb recipe by replacing lwb5plus-sdio-div-firmware with lwb5plus-usb-sa-firmware and adding laird-networkmanager. Then save it as mylwb5p.bb. A snippet of the saved file is shown below.
IMAGE_INSTALL += "\ iproute2 \ rng-tools \ ca-certificates \ tzdata \ alsa-utils \ htop \ ethtool \ iperf3 \ tcpdump \ iw \ kernel-module-lwb5p-backports-summit \ lwb5plus-usb-sa-firmware \ sterling-supplicant-lwb \ summit-networkmanager-st60 \ "
-
Next go to the build directory and run menuconfig to configure the Kernel.
cd ../build-imx8p-wayland bitbake -c menuconfig virtual/kernel
-
Build the image
bitbake mylwb5p
-
Flash image into SD card. Note: for this particular tutorial the SD card is on /dev/mmcblk0. It may be different for your setup; so make sure you change the command below per your setup.
bzip2 -dc ~/projects/imx8mp/build-imx8p-wayland/tmp/deploy/images/imx8mpevk/mylwb5p-imx8mpevk.wic.bz2 | sudo dd bs=512K iflag=fullblock oflag=direct status=progress conv=fsync of=/dev/mmcblk0 sync
-
Connect EVK to Serial Terminal via J23 (115200, N, 8, 1). Note for this tutorial we use /dev/ttyUSB2 port to connect. Your Linux PC might use a different port. Boot device and login as root.
-
Test Wi-Fi. Create a connection profile with nmcli. Then connect to the AP and ping a website.
nmcli con add con-name "YourProfile" ifname wlan0 type wifi ssid "YourAP" wifi-sec.key-mgmt wpa-psk wifi-sec.psk "YourPassword" nmcli c u "YourProfile" ping www.google.com
-
Test Bluetooth. Launch bluetoothctl. Then on the bluetoothctl prompt, type power on and then scan on.
- https://github.com/LairdCP/meta-summit-radio
- The modified files on this tutorial
- https://www.nxp.com/imx8mplusevk