WiFi/BT Guide

Laird Wifi Module

Warning

Make sure to order the right Laird Wifi Module card. There are many different versions available.

Part Number: ST60-2230C-P
(Laird 60-2230C-P Series)

It is the only correct working and supported version on our QSBASE3!

Introduction

../../_images/laird_overview.jpg

You have two options using the Laird WiFi module on QSX(M|P) on QSBASE3:

  • There are precompiled FlashImages in our Download Area with which you can use it out of the box.
  • To enable WiFi / BT support in Yocto see local.conf section in NXP Yocto BSP.

Setup

  1. Mount the Laird PCIe WiFi module to our QSBASE3 baseboard:
../../_images/laird_installed.jpg

Devicetree

When your Yocto build has finished you will get different dtbs in deploy directory.

The following table gives an overview.

Module WiFi Supported .dtb Files
qsxp-ml81 on qsbase3 Laird 60-2230C-P Series imx8mp-qsxp-ml81-qsbase3-laird.dtb
qsxp-mm60 on qsbase3 Laird 60-2230C-P Series imx8mm-qsxm-mm60-qsbase3-laird.dtb

Use the specific dtb file when booting Linux.

Also make sure you load the RootFS corresponding to the Kernel you built, because it includes the WiFi firmware you need!

Note

You can change the baseboard variable in U-Boot to get the specific dtb loaded from eMMC.

EXAMPLE

QSXP U-Boot > setenv baseboard qsbase3-laird
Notice: 'fdt_file' changed from 'imx8mp-qsxp-ml81-qsbase3.dtb' to 'imx8mp-qsxp-ml81-qsbase3-laird.dtb'

Ath9k Wifi Module

Devicetree

When your Yocto build has finished you will get different dtbs in deploy directory.

The following table gives an overview.

Note

Silex module is just an example and was tested by us. Any other PCIe module with an ath9k wifi chip should also work.

Module WiFi Supported .dtb Files
tx8m-1620 on lvds-mb Silex SX-PCEAN2 imx8mm-tx8m-1620-lvds-mb-wifi.dtb
tx8m-1610 on mipi-mb Silex SX-PCEAN2 imx8mm-tx8m-1610-mipi-mb-wifi.dtb

Use the specific dtb file when booting Linux.

Also make sure you load the RootFS corresponding to the Kernel you built, because it includes the WiFi firmware you need!

Note

You can change the baseboard variable in U-Boot to get the specific dtb loaded from eMMC.

EXAMPLE

TX8M U-Boot > setenv baseboard mipi-mb-wifi
Notice: 'fdt_file' changed from 'imx8mm-tx8m-1610-mipi-mb.dtb' to 'imx8mm-tx8m-1610-mipi-mb-wifi.dtb'

Connecting WiFi

See our Linux WiFi Setup.

Set Up Bluetooth

With the devictree the specific UART is enabled to be used as HCI device.

Module tty for HCI
qsxm-mm60 /dev/ttymxc1
qsxp-ml81 /dev/ttymxc2

Warning

If there’s a getty session running on the desired tty you will have to disable it. Otherwise the tty will not be accessible for hci.

Find all running getty sessions (example):

# ps | grep getty
1652 root     /sbin/getty -L 115200 ttymxc1 linux
1653 root     /sbin/getty -L 115200 ttymxc2 linux
1660 root     grep getty

You could disable the desired tty by commenting out the line in /etc/inittab:

(...)
# Serial consoles on the standard serial ports
s0:123:respawn:/sbin/getty -L 115200 ttymxc0 linux
# s1:123:respawn:/sbin/getty -L 115200 ttymxc1 linux
# s2:123:respawn:/sbin/getty -L 115200 ttymxc2 linux
(...)

After saving reboot the system.


Attach the Serial Port as HCI device.

# hciattach /dev/ttymxc2 any 115200 flow
Setting TTY to N_HCI line discipline
Device setup complete

View the attached device.

# hciconfig
hci0:   Type: Primary  Bus: UART
     BD Address: C0:EE:40:45:59:33  ACL MTU: 1021:7  SCO MTU: 120:6
     DOWN
     RX bytes:704 acl:0 sco:0 events:39 errors:0
     TX bytes:450 acl:0 sco:0 commands:39 errors:0

Bring the device up.

# hciconfig hci0 up

Enable e.g. your phone’s BT and scan Bluetooth.

# hcitool scanning
Scanning ...
     55:44:33:11:22:66       elmeg D130
     FF:AA:BB:CC:DD:EE       Pixel 4