• sales

    +86-0755-88291180

Wireless-AX200 / AX210 User Guide

Introduction

Intel Wi-Fi 6 wireless NIC adopts Intel's sixth-generation wireless protocol AX standard, which enhances performance and compatibility compared to the previous generation 802.11AC protocol while reducing power consumption and increasing service life.

Feature

  • Adopts Intel's sixth-generation wireless protocol AX standard, which enhances performance and compatibility compared to the previous generation 802.11AC protocol, while reducing power consumption and increasing service life
  • Supports 2.4G/5GHz coexistence, with rates up to 574Mbps in the 2.4GHz band and 2400Mbps in the 5G/6GHz band
  • Support Bluetooth 5.2 standard, longer transmission distance, and better transmission stability
  • Adopts NGFF (M.2 A/E Key) interface
  • The new generation of MU-MIMO wireless technology is adopted to significantly improve the network quality, increase the Internet speed by more than three times, and the transmission and download efficiency is higher
  • Support Linux, Windows 10/8.1/8/7, and other operating systems

Notes

  1. In the Linux environment, you need to use a kernel of no less than 5.11 to work normally. If you only need WIFI without Bluetooth, the 5.10 kernel can also work.
  2. The native system of Raspberry Pi CM4 cannot work, and the kernel needs to be recompiled.
  3. AX210 hardware version is 005 by default.
  4. Connection method: The connection method of WIFI is PCIe, and the connection method of Bluetooth is USB.

User Guides

RPI CM4

Use CM4-DUAL-ETH-WIFI6-BASE to test.

Compile Kernel

You can refer to here.
Ubuntu system is required for kernel compilation.
Test by the following command: Ubuntu-20.04.2.0-desktop-amd64 :
Confirm the specific Raspberry Pi system version you need before compiling the environment: https://github.com/raspberrypi/linux

On the Ubuntu:

#Install dependencies
sudo apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev
#Install compilation tools
sudo apt install neovim
# create folder
mkdir cm4
cd cm4
mkdir gcc-linaro
#Download the GCC compiler
wget https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
mv gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu gcc-linaro
#Modify environment variables
nvim ~/.bashrc
Add after .bashrc: export PATH=$PATH:~/cm4/gcc-linaro/bin
# Refresh environment variables
source ~/.bashrc
#Clone the linux repo (or clone a fork or a different branch):
git clone --depth=1 https://github.com/raspberrypi/linux/…
#This command is an invalid command, the following github link needs to be changed to the kernel version you need https://github.com/raspberrypi/linux
#Or download it yourself and copy it in
# Run the following command to make a .config file: .
cd linux
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-bcm2711_defconfig
#Generate .config file:
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-menuconfig
#Configure the .config file, add the kernel driver you want to add here
Add (Enter to enter, space to select)
device drivers > network device support > wireless LAN > intel devices > intel wireless wifi next gen agn(iwlwifi)
device drivers > network device support > wireless LAN > intel devices > intel wireless wifi next gen agn(iwlwifi) > intel wireless wifi MVM
# Compile the kernel. need to wait a long time
make -j8 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs

On the Raspberry Pi:

sudo su
passwd
#Set password
sudo nano /etc/ssh/sshd_config
#Modify PermitRootLogin prohibit-password to
#PermitRootLogin yes
sudo reboot

On the Ubuntu:

sudo sshfs root@192.168.x.x:/ /mnt/pi-ext4
sudo sshfs root@192.168.x.x:/boot /mnt/pi-fat32
#192.168.x.x is the IP of the Raspberry Pi
sudo env PATH=$PATH make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=/mnt/pi-ext4 modules_install
sudo cp arch/arm64/boot/Image /mnt/pi-fat32/kernel8.img
sudo cp arch/arm64/boot/dts/broadcom/*.dtb /mnt/pi-fat32/
sudo cp arch/arm64/boot/dts/overlays/*.dtb* /mnt/pi-fat32/overlays/
sudo cp arch/arm64/boot/dts/overlays/README /mnt/pi-fat32/overlays/

If an IP is connected multiple times and the system is changed, a read: Connection reset by peer error occurs:
Just delete the ssh public key authentication.

ssh-keygen -f "/root/.ssh/known_hosts" -R 192.168.x.x
  #192.168.x.x is the IP of Raspberry Pi

Install Driver

The kernel compiled above uses "ARCH=arm64" 64-bit

Add in /boot/config.txt of Raspberry Pi
arm_64bit=1 kernel=kernel8.img
#reboot
sudo reboot

The module needs to add an antenna to have a signal, please pay attention to adding an antenna before use.

WiFi

Since the "intel wireless wifi MVM" driver supports many WIFIs, it is not limited to AX210 or AX200. If the kernel is compiled with "intel wireless wifi MVM" enabled, and arm_64bit=1 kernel=kernel8.img is added to /boot/config.txt, and then restarted, then check whether the log will appear as follows:

dmesg | grep iwlwifi
[    4.574560] iwlwifi 0000:01:00.0: enabling device (0000 -> 0002)
.....................
[    4.586465] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-59.ucode failed with error -2
[    4.586562] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-59.ucode failed with error -2
.....................

Among them, iwlwifi-ty-a0-gf-a0-59.ucode represents the missing driver file, you can download the firmware: click here.
For more firmware downloads: click here.

Bluetooth

Check log:

dmesg | grep hci
.....................
[    6.301299] bluetooth hci0: loading /lib/firmware/intel/ibt-12-16.sfi failed with error -20
[    6.301321] bluetooth hci0: Direct firmware load for intel/ibt-12-16.sfi failed with error -20
.....................

If the above content appears, it means that the corresponding file is missing (for example, the above log indicates that the "/lib/firmware/intel/ibt-12-16.sfi" driver file is missing), you can download the latest driver on the Internet by yourself, or you can use our provided Driver file, in the firmware/intel folder, just copy /lib/firmware/intel
Execute hciconfig

pi@raspberrypi:~ $ hciconfig 
hci0:	Type: Primary  Bus: USB
	BD Address: D8:3B:BF:46:2B:1A  ACL MTU: 1021:4  SCO MTU: 96:6
	UP RUNNING 
	RX bytes:813 acl:0 sco:0 events:62 errors:0
	TX bytes:3683 acl:0 sco:0 commands:62 errors:0

Among them, the UP RUNNING state means normal operation, and the DOWN state does not work normally, which may be closed or lack of driver files If it is DOWN, you can try to execute it. If there is insufficient permission, please add sudo

hciconfig hci0 up
more commands
turn off bluetooth hciconfig hci0 down
reset bluetooth hciconfig hci0 reset
Scan for bluetooth devices hcitool scan

Among them, hci0 is the number of Bluetooth devices. If your cm4 comes with a WIFI Bluetooth module, then pay attention to observe the Bus: the back is USB or UART, and the Bluetooth device of AX200 is USB Bluetooth.


Jetson Xavier NX

The latest Jetson Xavier NX system works with a straight connection.

Windows

Download drivers
AX210: click here
AX200: click here
Choose the corresponding system:

Debug Notes

  1. Check the hardware connection first in the linux environment, "lspci" can see that the device is marked and connected correctly.
  2. In the Linux environment, check the log "dmesg | grep iwlwifi" to confirm what driver files are missing.
  3. Linux environment If there is no output from "dmesg | grep iwlwifi", you can try to restart or check the Linux kernel version to ensure that the Linux kernel version is greater than or equal to 5.11.
  4. In the Linux environment, check the Bluetooth startup status through "dmesg | grep bluetooth" and check whether the driver file is missing.
  5. The Linux environment uses "hciconfig" to ensure that the Bluetooth device works normally.