当前位置: 首页 > news >正文

木马派RV1106G3开发板驱动AIC8800DC USB WiFi模块

板子连线

串口接GND、RX2和TX2。
USB Type-C接口用来供电。

板子背面有一颗10脚芯片,嘉立创因为缺库存,没有给我贴,所以只能飞线,把RV1106G3芯片上的USB DP和DM与AIC8800DC WiFi模块的USB DP和DM相连,也就是3脚连9脚,4脚连8脚。
飞线后,板上的USB Type-C接口只能供电,没有USB功能。RV1106G3芯片的USB处于主机模式。

下载和编译幸狐官方系统镜像

虚拟机环境:Fedora 41 64位 (Fedora-Workstation-Live-x86_64-41-1.4.iso)
(为什么不用Ubuntu?因为我不喜欢Ubuntu修改后的unity风格的GNOME桌面环境,喜欢Fedora里面原生的GNOME环境)
下载代码:
cd ~/Documents
git clone https://gitee.com/LuckfoxTECH/luckfox-pico.git
cd luckfox-pico

安装编译工具:
sudo dnf install g++
sudo dnf install dtc
sudo dnf install openssl
sudo dnf install openssl-devel-engine
sudo dnf install flex
sudo dnf install bison
sudo dnf install makeinfo
sudo dnf install gperf
sudo dnf install cmake
sudo dnf install patch
sudo dnf install perl-English
sudo dnf install perl-ExtUtils-MakeMaker
sudo dnf install perl-Thread-Queue
sudo dnf install perl-FindBin
sudo dnf install lzma
(特别注意:编译前必须安装lzma,否则编译过程中不会提示错误,但烧录到板子上后uboot无法启动linux内核,报## Checking uboot 0x00200000 (lzma @0x00400000) ... sha256(e3b0c44298...) + uboot: decompress error, ret=1的错误)

编译:
./build.sh lunch
选择[5] RV1106_Luckfox_Pico_Pro
[1] SPI_NAND
[0] Buildroot
然后
./build.sh

(重要)解决make[1]: Entering directory '/home/oct1158/Documents/luckfox-pico/sysdrv/source/kernel'后长时间无输出,且编译内核失败时不显示错误信息的问题:
修改sysdrv/source/kernel/Makefile
删掉或注释掉下面的语句
ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
  quiet=silent_
endif

报错:Unknown option 'passive-ftp'
解决方案:用sed命令把buildroot生成的文件里面的--passive-ftp选项去掉。
cd sysdrv/source/buildroot/buildroot-2023.02.6
sed -i "s/wget --passive-ftp/wget/g" utils/genrandconfig Config.in output/build/buildroot-config/autoconf.h output/build/buildroot-config/auto.conf .config
cd ../../../../

报错:../src/tramp.c:262:22: error: implicit declaration of function 'open_temp_exec_file' [-Wimplicit-function-declaration]
解决方案:修改sysdrv/source/buildroot/buildroot-2023.02.6/output/build/host-libffi-3.4.4/src/tramp.c文件。在顶部添加一行
int open_temp_exec_file(void);

烧录镜像

在fedora虚拟机上安装samba服务器:
sudo setenforce 0
sudo systemctl stop firewalld
sudo dnf install samba

把/etc/samba/smb.conf里面的workgroup = SAMBA改成
workgroup = WORKGROUP
server min protocol = NT1
lanman auth = yes
ntlm auth = yes
(后面三句话是为了支持XP系统)

启动samba服务器:
sudo systemctl start smb
sudo systemctl start nmb
设置当前用户的文件共享密码(独立密码):
sudo smbpasswd -a $(whoami)

板子按住REV键上电。
在64位Windows 7 SP1系统下以管理员身份运行瑞芯微SocToolKit_v1.98_20240705_01_win烧录软件。
(该烧录软件不支持原版64位Windows XP SP2和64位Windows Vista SP2)

芯片选择RV1106。

搜索路径选择\\fedora\oct1158\Documents\luckfox-pico\output\image。

选择正确的串口号,波特率选择1500000。勾选所有文件(一共8个文件),点击下载按钮。

烧录完成后,板子按RST键重启,即可在串口中看到启动成功。登录用户名和密码分别是root和luckfox。

修改配置文件,添加对AIC8800DC USB WiFi模块的支持

[sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-pro.dts]
&usbdrd_dwc3 {
    status = "okay";
    dr_mode = "peripheral"; 改成 dr_mode = "host";
};

[project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk]
末尾添加
# enable rockchip wifi
export RK_ENABLE_WIFI=y
export RK_ENABLE_WIFI_CHIP=AIC8800DW_USB

# config wifi ssid and passwd
# this will generate /etc/wpa_supplicant.conf
export LF_WIFI_SSID="路由器名称"
export LF_WIFI_PSK="路由器密码"

[sysdrv/drv_ko/wifi/insmod_wifi.sh]
删除下列代码
#aic8800
if [ -n "$(cat /proc/device-tree/model | grep "W")" ]; then
    insmod cfg80211.ko
    insmod libarc4.ko
    insmod ctr.ko
    insmod ccm.ko
    insmod libaes.ko
    insmod aes_generic.ko
    insmod aic8800_bsp.ko
    sleep 0.2
    insmod aic8800_fdrv.ko
    sleep 2
    insmod aic8800_btlpm.ko
    sleep 0.1
fi
改成
#aic8800
if [ -f /oem/usr/ko/aic8800_fdrv.ko ]
then
    insmod /oem/usr/ko/cfg80211.ko
    insmod /oem/usr/ko/aic_load_fw.ko aic_fw_path=/oem/usr/ko/aic_fw
    insmod /oem/usr/ko/aic8800_fdrv.ko
fi

改完后重新编译并烧录,重启后板子已自动连上wifi。并且能ping通百度。
(整个过程完全不需要改内核的menuconfig)


瑞芯微工具套件v1.98的兼容性

瑞芯微SocToolKit_v1.98_20240705_01_win烧录软件在原版64位XP SP2系统下运行,会提示找不到comctl32.dll的LoadIconMetric函数,XP系统里面没有这个函数。

XP SP2系统打了one core api 4.0.1补丁后,可以运行这个烧录软件,但是无法选择文件夹路径(选择后路径不会填入文本框),只能自己手动输入路径。然而“搜索路径”按钮左边的文本框是个只读文本框,没有办法手动输入,所以这个功能没法用。

在64位Vista SP2系统下,因为Vista系统不支持CM_MapCrToWin32Err函数,所以软件无法运行。

所以,这个烧录软件最低需要64位的Win7系统才能运行。

生成的wpa_supplicant.conf配置文件内容

[root@luckfox root]# cat /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
update_config=1network={ssid="xxx"psk="xxx"key_mgmt=WPA-PSK
}
[root@luckfox root]#

相关文章:

  • 若依框架深度解析:企业级快速开发平台的设计哲学与实践
  • SwiftUI 1.Text介绍和使用
  • 基于缺失数据的2024年山东省专项债发行报告
  • Linux进程状态及转换关系
  • 电池大脑的基准测试及AI拓展
  • React性能优化
  • Linux避免文件误删详解(Linux Avoids File Deletion Errors with Detailed Explanation)
  • 前缀和相似题共赏
  • 天梯-这是字符串题
  • Unity 接入阿里的全模态大模型Qwen2.5-Omni
  • VS中回显109:对‘pthread_create’未定义的引用
  • 服务器如何修复SSL证书错误?
  • 【Java面试笔记:基础】9.对比Hashtable、HashMap、TreeMap有什么不同?
  • 模型上下文协议MCP
  • pycharm调试typescript
  • Oracle 数据库中的 JSON:性能注意事项
  • 【CSS】层叠,优先级与继承(四):层叠,优先级与继承的关系
  • Elasticsearch 集群节点下线方案
  • SwiftUI 3.Button介绍和使用
  • Kimi做内容社区,剑指小红书?
  • 【社论】高度警惕AI谣言对网络空间的污染
  • 国际货币基金组织:将今年美国经济增长预期下调0.9个百分点至1.8%
  • 中国房地产报:以改促治实现楼市多难并解
  • 解除近70家煤电厂有毒物质排放限制,特朗普能重振煤炭吗?
  • 上海浦东:顶尖青年人才最高可获700万元资助及1亿元项目补贴
  • 新消费观察 | 重点深耕,外资科技企业继续看好中国发展