Google Chat: zj734465502@gmail.com
+86-0755-88291180
sales01@spotpear.com
dragon_manager@163.com
services01@spotpear.com
manager01@spotpear.com
WhatsApp:13246739196
This product adopts the 7th generation Intel wireless protocol, supporting the IEEE 802.11a/b/g/n/ac/be/ax wireless standards
Test using CM4-DUAL-ETH-WIFI6-BASE
You can click this link for more details
An Ubuntu system is required to compile the kernel
The following tests will be conducted using 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
Operating on Ubuntu:
#Install the dependency
sudo apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev
#Install the compilation tool
sudo apt install neovim
#Create a 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
#At the end of .bashrc add the following: export PATH=$PATH:~/cm4/gcc-linaro/bin
#Refresh environment variables
source ~/.bashrc
#Clone a Linux repo (or a fork, or a different branch):
git clone --depth=1 https://github.com/raspberrypi/linux/...
#This command is invalid, and 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
#Unzip linux-rpi-6.6.y.zip (different kernel versions use different commands)
#Run the following command to create a .config file:
cd linux
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig
#Create a .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 (press Enter to continue, space to select)
Device Drivers --->
Network device support --->
Wireless LAN --->
Intel devices
Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)
[M]Intel Wireless WiFi DVM Firmware support
[M]Intel Wireless WiFi MVM Firmware support
#Compile the kernel. It takes a long time
make -j8 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs
Operating on Raspberry Pi:
sudo su passwd #Set a password sudo nano /etc/ssh/sshd_config #Change PermitRootLogin prohibit password to PermitRootLogin yes sudo reboot
Operating on Ubuntu:
Using sshfs
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 address of 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 address is linked multiple times and then the system is replaced, you encounter an error: "read: Connection reset by peer
Just delete ssh public key authentication
ssh-keygen -f "/root/.ssh/known_hosts" -R 192.168.x.x #192.168.x.x is the IP address of Raspberry Pi
The above compilation of the kernel uses "ARCH=arm64" for 64-bit architecture
Add in /boot/config.txt in Raspberry Pi arm_64bit=1 kernel=kernel8.img #Reboot sudo reboot
The module requires the addition of an antenna to have a signal. Please note to add an antenna before use
Due to the large number of Wi-Fi supported by the "intel wireless wifi MVM" driver, it is not limited to AX210 or AX200 or BE200. If the kernel is compiled with "intel wireless wifi MVM" enabled, and "arm_64bit=1 kernel=kernel8.img" is added to /boot/config.txt, then a reboot is performed. Then check the log to see if it shows:
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 indicates the missing driver file, you can click here to download the firmware (the firmware of different modules is different)
You can click here to download more firmwares (It is recommended to download the latest firmware)
Copy the firmware to the /lib/firmware/ directory
Check the logs
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 .....................
The above content indicates that the corresponding file is missing (for example, the log above shows the lack of the "ibt-12-16.sfi" driver file in "/lib/firmware/intel"). You can download the latest driver from the internet, or use the driver file we provide. In the firmware/intel directory, simply 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
The UP RUNNING state indicates normal operation, while DOWN signifies it is not working properly, possibly due to being closed or lacking driver files
If it is DOWN, you can try to execute it, and if there is insufficient permissions, add sudo
hciconfig hci0 up More commands Turn off Bluetooth: hciconfig hci0 down Reset Bluetooth: hciconfig hci0 reset Scan Bluetooth devices: hcitool scan
Among these, hci0 is the Bluetooth device ID. If your CM4 comes with a WiFi Bluetooth module, then pay attention to observe whether Bus: is followed by USB or UART. The Bluetooth device of AX200 is a USB Bluetooth
Driver download
BE200: Click here to download
AX210: Click here to download
AX200: Click here to download
Select the corresponding system
1. In a Linux environment, first check the hardware connections. "lspci" can be used to see if the devices are correctly connected
2. Check the log "dmesg| grep iwlwifi" in a Linux environment to confirm what driver files are missing
3. If there is no output when running "dmesg | grep iwlwifi" in a Linux environment, you can try restarting or checking the Linux kernel version to ensure it is greater than or equal to 5.11
4. In a Linux environment, you can check the status of Bluetooth startup and verify if the driver file is missing by using the command "dmesg | grep bluetooth”
5. The Linux environment ensures that the Bluetooth device is working properly via "HCICONFIG"
Monday-Friday (9:30-6:30) Saturday (9:30-5:30)
Email: services01@spotpear.com