完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
近期需要把 wifi 无线网络功能(RTL8822CS 模块)移植到 iTOP-3399 开发板,经过一段时间研究, 调试,终于成功的将 wifi 功能移植到开发板上面。
移植的环境: 1. iTOP-3399 开发板+ RTL8822CS 模块 2. Android 7.0 3. 搭建好编译环境的 ubuntu16.04 64Bit 开发环境 移植步骤 80.3.1 增加设备树节点 在 /home/topeet/rk3399_7.1_industry/kernel/arch/arm64/boot/dts/rockchip/rk3399-topeet.dtsi 设 备 树 中 添加 WiFi 节点,如下图所示: wifi_chip_type 属性表示 WiFi 器件的类型为 rtl8822cs。 查找 sdio0 节点,注释掉下面的语句,注释掉这句是因为注册 sdio 设备时,会注册不上。 80.3.2 修改内核驱动 修改驱动的思路: 1) 将驱动文件拷贝内核中 2) 在内核中加载上添加的驱动 3) 我们提前了解下配置 wifi 固件一般是在源码 drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c,wifi 模块驱动在源码 net/rfkill/rfkill-wlan.c 第一步,我们拷贝光盘资料下“ iTOP-3399 开发板 2_iTOP-3399 开发资料汇总(不含光盘内容)13_ 嵌入式 Linux 开发指南(RK3399)手册配套资料6.Android 底层驱动Android7wifi 移植原厂 wifi 驱动” RTL8822CS_WiFi_linux_v5.12.1.1-0.20210125.tar.gz,此驱动是 wifi 模组的厂家提供的,我们将其放入内核目 录 drivers/net/wireless/rockchip_wlan/下,并修改文件夹名称为 rtl8822cs,如下图所示: 接着修改以下文件: (1)修改 drivers/net/wireless/rockchip_wlan/Makefile 文件,添加以下内容: obj-$(CONFIG_RTL8822CS) += rtl8822cs/ (2)修改 drivers/net/wireless/rockchip_wlan/Kconfig 文件,添加 source "drivers/net/wireless/rockchip_wlan/rtl8822cs/Kconfig" (3)修改 drivers/net/wireless/rockchip_wlan/Kconfig/rtl8822cs 下的 Makefile 文件 将文件中的 CONFIG_PLATFORM_I386_PC 的值修改为 n 将文件中的 ONFIG_PLATFORM_ARM_RK3188 的值修改为 y 如下图所示: 将如下图所示所示的修改为 MODULE_NAME := 8822cs 如下图所示,可以打开或关闭 debug 信息。 (4)修改 drivers/net/wireless/rockchip_wlan/Kconfig/rtl8822cs 下的 Kconfig 文件 将第一行的 RTL8822BS 修改为 RTL8822CS,这里是厂家的源码写错了,不改正的话不会编译到这个源码目录。 (5)然后在内核目录下(也就是 kernel 目录下)输入以下命令配置加载驱动。 (6)输入以下命令,将保存好的.config 文件复制替换默认的内核配置 defconfig 文件 cp .config arch/arm64/configs/rockchip_defconfig (7)然后修改/home/topeet/rk3399_7.1_industry/kernel/net/rfkill/rfkill-wlan.c 文件,添加如下所示内容。 } else if (strcmp(wifi_chip_type_string, "rtl8822cs") == 0) { type = WIFI_RTL8822CS; ( 8)然后修改/home/topeet/rk3399_7.1_industry/kernel/include/linux/rfkill-wlan.h 文件,添加如下内容, 如下图所示: WIFI_RTL_8822CS 80.3.3 修改 HAl 层 (1)我们修改/home/topeet/rk3399_7.1_industry/hardware/libhardware_legacy/wifi/rk_wifi_ctrl.c 文件, 添加如下所示代码,如下图所示: {"RTL8822CS", "024c:c822"}, (2)将 strcpy(recoginze_wifi_chip, "APXXX");注释掉,修改为 strcpy(recoginze_wifi_chip, "RTL8822CS"); strcpy(recoginze_wifi_chip, "RTL8822CS") (3)修改/home/topeet/rk3399_7.1_industry/hardware/libhardware_legacy/wifi/wifi.c 文件,添加代码 #define RTL8822CS_DRIVER_MODULE_PATH "/system/lib/modules/8822cs.ko" 添加代码,如下图所示。 #define RTL8822CS_DRIVER_MODULE_NAME "8822cs" 添加代码,如下图所示: {"RTL8822CS", RTL8822CS_DRIVER_MODULE_NAME, UNKKOWN_DRIVER_MODULE_ARG}, 80.3.4APP 层 Android 桌面“设置”APP 里面连接 WiFi 的程序在源码: packages/apps/Settings/src/com/android/settings/wifi/目录下。此部分不需要修改。 经过上面的修改,然后重新编译 Android7 源码,烧写镜像后,便可以进行调试。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1988 浏览 1 评论
synopsys 的design ware:DW_fpv_div,浮点数除法器,默认32位下,想提升覆盖率(TMAX),如果用功能case去提升覆盖率呢?
2490 浏览 1 评论
RK3588 GStreamer调试四路鱼眼摄像头四宫格显示报错
5272 浏览 1 评论
【飞凌嵌入式OK3576-C开发板体验】RKNN神经网络-YOLO图像识别
254 浏览 0 评论
【飞凌嵌入式OK3576-C开发板体验】SSH远程登录网络配置及CAN通讯
1336 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 10:20 , Processed in 0.961782 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号