Wireless-AX200
| ||
Overview
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
- 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.
- The native system of Raspberry Pi CM4 cannot work, and the kernel needs to be recompiled.
- AX210 hardware version is 006 by default.20230926 before version is 005
- 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 [email protected]:/ /mnt/pi-ext4 sudo sshfs [email protected]:/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: by clicking 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 system of the Jetson Xavier NX supports working with direct connection.
Windows
Download drivers
AX210: click here
AX200: click here
Choose the corresponding system:
Debug Notes
- Check the hardware connection first in the Linux environment, "lspci" can see that the device is marked and connected correctly.
- In the Linux environment, check the log "dmesg | grep iwlwifi" to confirm what driver files are missing.
- 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.
- In the Linux environment, check the Bluetooth startup status through "dmesg | grep bluetooth" and check whether the driver file is missing.
- The Linux environment uses "hciconfig" to ensure that the Bluetooth device works normally.
Support
Technical Support
If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)