为ELF 2开发板适配AX200NGW Wi-Fi 6模块,是开发者在嵌入式设备中实现高速无线联网的实际需求,更是解锁其全场景无线通信能力的关键升级。针对ARM架构需要手动适配的特性,本文将提供清晰的步骤,指导屏幕前的小伙伴完成这一适配过程。
方法一:重新制作镜像文件
该方法是在SDK源码中,将内核编译生成的模块文件部署到文件系统中,打包生成新的系统镜像update.img,重新烧写系统镜像后WiFi模块驱动自动加载。
1. 准备工作
方法一的所有操作均在开发环境的SDK中进行,实施前需要将SDK完整拷贝至开发环境并解压。具体操作步骤可参考《ELF 2开发板编译手册》第四章的详细说明。

2. 创建挂载目录
在源码根目录下创建用于挂载文件系统的文件夹 mnt_dir。
elf@ubuntu:~/work/ELF2-linux-source$ mkdir mnt_dir
3. 挂载文件系统
将ubuntu目录下的jammy-rootfs.img文件拷贝到源码根目录下。
elf@ubuntu:~/work/ELF2-linux-source$ cp ubuntu/jammy-rootfs.img ./
执行如下命令将jammy-rootfs.img文件系统挂载到mnt_dir/目录下。
elf@ubuntu:~/work/ELF2-linux-source$ sudo mount jammy-rootfs.img mnt_dir/
4. 编译和安装内核模块
选择平台和文件系统类型,输入1选择elf2平台,再输入1选择desktop文件系统。
elf@ubuntu:~/work/ELF2-linux-source$ ./build.sh chip
编译内核。
elf@ubuntu:~/work/ELF2-linux-source$ ./build.sh kernel
安装模块到挂载的文件系统。
elf@ubuntu:~/work/ELF2-linux-source$ sudo make -C /home/elf/work/ELF2-linux-source/kernel/ CROSS_COMPILE=prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- ARCH=arm64 modules_install INSTALL_MOD_PATH=$(pwd)/mnt_dir
5. 部署必要文件
将WiFi连接脚本cmddemo_wifi.sh以及热点创建脚本cmddemo_hostap.sh拷贝到文件系统中。
elf@ubuntu:~/work/ELF2-linux-source$ sudo cp cmddemo_wifi.sh ./mnt_dir/usr/bin/ elf@ubuntu:~/work/ELF2-linux-source$ sudo cp cmddemo_hostap.sh ./mnt_dir/usr/bin/
给予文件可执行权限。
elf@ubuntu:~/work/ELF2-linux-source$ sudo chroot ./mnt_dir /bin/bash -c "chmod +x /usr/bin/cmddemo_wifi.sh" elf@ubuntu:~/work/ELF2-linux-source$ sudo chroot ./mnt_dir /bin/bash -c "chmod +x /usr/bin/cmddemo_hostap.sh"
6. 卸载和烧录
修改完成后,取消挂载文件系统。
elf@ubuntu:~/work/ELF2-linux-source$ sudo umount ./mnt_dir
参考《ELF 2开发板编译手册》“5.3 单独更新内核”章节,将修改后的jammy-rootfs.img烧录到开发板。
(注意: jammy-rootfs.img镜像文件的烧录起始地址应设置为0x00078000。)

7. lsmod查看是否有模块加载
开发板断电,将AX200NGW 模块安装到 M.2 接口,连接天线开发板上电。使用lsmod查看是否有模块加载,有模块加载说明上述操作没有问题。
root@elf2-desktop:/usr/lib/modules# sync root@elf2-desktop:/usr/lib/modules# reboot //重启之后使用lsmod查看 root@elf2-desktop:~# lsmod Module Size Used by iwlmvm 331776 0 iwlwifi 286720 1 iwlmvm btusb 57344 0 btrtl 24576 1 btusb btbcm 24576 1 btusb btintel 28672 1 btusb

8. 测试
查看有模块加载后,执行如下命令测试 WiFi 连接。
//root@elf2-desktop:~# cmddemo_wifi.sh -s SSID -p password //SSID:热点名称; password:热点密码。 root@elf2-desktop:~# cmddemo_wifi.sh -s forlinx -p 03123102650 Device 'wlan0' successfully activated with '81a9889a-44e1-4c47-9b49-c90850ca96ff'. //拨号成功之后ping下elfboard官网,能ping通说明WiFi可以正常使用 root@elf2-desktop:~# ping www.elfboard.com -c 5 PING www.elfboard.com (211.149.236.219) 56(84) bytes of data. 64 bytes from 211.149.236.219 (211.149.236.219): icmp_seq=1 ttl=53 time=32.2 ms 64 bytes from 211.149.236.219 (211.149.236.219): icmp_seq=2 ttl=53 time=32.0 ms 64 bytes from 211.149.236.219 (211.149.236.219): icmp_seq=3 ttl=53 time=32.0 ms 64 bytes from 211.149.236.219 (211.149.236.219): icmp_seq=4 ttl=53 time=31.9 ms 64 bytes from 211.149.236.219 (211.149.236.219): icmp_seq=5 ttl=53 time=32.3 ms --- www.elfboard.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4005ms rtt min/avg/max/mdev = 31.948/32.074/32.266/0.140 ms

方法二:拷贝模块到文件系统
方法二采用模块化部署方案,通过将生成的模块文件直接拷贝至文件系统完成部署。需特别注意的是,若重新烧写系统,则需要重新执行完整的模块部署流程。
1. 在文件系统解压
将内核模块归档文件5.10.209.tar通过u盘拷贝到Ubuntu系统的/usr/lib/modules/路径下,然后提取归档内容:
root@elf2-desktop:~# cp /run/media/sda1/5.10.209.tar /usr/lib/modules root@elf2-desktop:~# cd /usr/lib/modules root@elf2-desktop:/usr/lib/modules# tar xvf 5.10.209.tar
2. 完成之后保存重启
root@elf2-desktop:/usr/lib/modules# sync root@elf2-desktop:/usr/lib/modules# reboot
3. lsmod查看是否有模块加载
开发板断电,将AX200NGW模块安装到M.2接口,连接天线开发板上电。 使用lsmod查看是否有模块加载,有模块加载说明上述操作没有问题。
//重启之后使用lsmod查看 root@elf2-desktop:~# lsmod Module Size Used by iwlmvm 331776 0 iwlwifi 286720 1 iwlmvm btusb 57344 0 btrtl 24576 1 btusb btbcm 24576 1 btusb btintel 28672 1 btusb

4. 测试
拷贝拨号脚本cmddemo_wifi.sh到/usr/bin下面,执行拨号脚本。
root@elf2-desktop:~# cp /run/media/sda1/cmddemo_wifi.sh /usr/bin/ //root@elf2-desktop:~# cmddemo_wifi.sh -s SSID -p password //SSID:热点名称; password:热点密码。 root@elf2-desktop:~# cmddemo_wifi.sh -s forlinx -p 03123102650 Device 'wlan0' successfully activated with '81a9889a-44e1-4c47-9b49-c90850ca96ff'. //拨号成功之后ping下elfboard官网,能ping通说明WiFi可以正常使用 root@elf2-desktop:~# ping www.elfboard.com -c 5 PING www.elfboard.com (211.149.236.219) 56(84) bytes of data. 64 bytes from 211.149.236.219 (211.149.236.219): icmp_seq=1 ttl=53 time=32.2 ms 64 bytes from 211.149.236.219 (211.149.236.219): icmp_seq=2 ttl=53 time=32.0 ms 64 bytes from 211.149.236.219 (211.149.236.219): icmp_seq=3 ttl=53 time=32.0 ms 64 bytes from 211.149.236.219 (211.149.236.219): icmp_seq=4 ttl=53 time=31.9 ms 64 bytes from 211.149.236.219 (211.149.236.219): icmp_seq=5 ttl=53 time=32.3 ms --- www.elfboard.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4005ms rtt min/avg/max/mdev = 31.948/32.074/32.266/0.140 ms

通过上述标准化流程,即可在ELF 2开发板上实现适配AX200NGW Wi-Fi 6模块。期待本文所分享的技术实践,能为从事嵌入式开发的工程师与高校师生提供有价值的参考,如果在实践中遇到问题,欢迎随时交流探讨!
-
嵌入式开发
+关注
关注
18文章
1078浏览量
48954 -
瑞芯微
+关注
关注
25文章
617浏览量
52559 -
嵌入式开发板
+关注
关注
5文章
93浏览量
19207 -
RK3588
+关注
关注
7文章
428浏览量
6009
发布评论请先 登录
ElfBoard技术贴|如何在NXP源码基础上适配ELF 1开发板的UART功能

ElfBoard技术贴|ELF 1开发板适配摄像头详解

ElfBoard技术贴|如何在ELF 2开发板上部署v4l2loopback

飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之wifi
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之wifi
ELF2开发板的ubuntu系统的ax200 wifi配网
ELF 1技术贴|在NXP源码基础上适配ELF 1开发板的LED功能

ELF技术贴|如何在开发板上实现对Java的支持

ElfBoard技术贴|在NXP源码基础上适配ELF 1开发板的按键功能

ElfBoard技术贴|如何在ELF 1开发板上搭建流媒体服务器

为RK3576开发板适配AX210NGW Wi-Fi 6E模块,让无线网络快人一步

ElfBoard技术贴|如何在ELF 1开发板上交叉移植Qt

ElfBoard技术贴|【RK3588】ELF 2开发板开机自启动详解

评论