0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

迅为RK3399开发板如何基于RTL8822CS模块实现Android7移植WiFi

北京迅为电子 2021-11-25 13:57 次阅读

近期需要把 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 开发板\02_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 源码,烧写镜像后,便可以进行调试。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发板
    +关注

    关注

    25

    文章

    4429

    浏览量

    93995
收藏 人收藏

    评论

    相关推荐

    【OpenHarmony鸿蒙实战】在RK3399开发板实现智能门禁人脸识别

    基于RK3399开发板,使用OpenHarmony3.0-LTS开发的应用。通过定时获取摄像头数据,实现人脸识别比对等功能。
    的头像 发表于 03-20 17:38 397次阅读
    【OpenHarmony鸿蒙实战】在<b class='flag-5'>RK3399</b><b class='flag-5'>开发板实现</b>智能门禁人脸识别

    rk3399移植Linux内核

    RK3399是一款由中国厂商瑞芯微推出的高性能处理器芯片,被广泛用于嵌入式系统开发。在进行应用程序开发之前,我们需要将Linux内核移植RK339
    的头像 发表于 01-08 09:56 343次阅读

    RK3399硬件设计指南

    设计的要点和注意事项,以帮助读者了解如何进行高效、稳定的设计。 首先,电源是RK3399硬件设计中的重要组成部分。为了满足处理器和外围设备的供电需求,需要选择合适的电源模块或为之设计定制的电源。在设计电源电路时,需要考虑电压稳定性、电流容量、电源
    的头像 发表于 12-28 10:59 455次阅读

    【手册上新】RK3588开发板多屏显示手册

    显、异显和异触,可有效提高行业定制的拓展性。 iTOP-RK3588开发板支持以下屏幕: LVDS 7 寸屏幕
    发表于 11-07 10:37

    标准系统:软通扬帆富设备开发板RK3399

    级别 标准系统 开发板名称(芯片型号) 软通扬帆富设备开发板RK3399) 芯片架构 瑞芯微RK3399 CPU频率 介绍(字数请控制在200字以内) 采用瑞芯微
    发表于 10-19 10:37

    RK3588开发板修改编译工具路径

    : NDK 在 ubuntu 上的路径/opt/tool_chain/android-ndk-r17c/,如下图所示。注意!!!ANDROID_NDK_PATH 修改的路径要和实际的路径一致。 更多文档可以查看 B站搜索-
    发表于 10-11 16:11

    Rockchip RK3399软件开发指南

    电子发烧友网站提供《Rockchip RK3399软件开发指南.pdf》资料免费下载
    发表于 10-09 14:30 6次下载
    Rockchip <b class='flag-5'>RK3399</b>软件<b class='flag-5'>开发</b>指南

    RK3588比RK3399强在哪里?如何选择

    RK3588和RK3399作为瑞芯微两款高性能的通用型SoC,有各自的特点和优势。香橙派的开发板都有采用这两款芯片,比如OrangePi5Plus用的RK3588,OrangePi4系
    的头像 发表于 10-09 13:48 1421次阅读
    <b class='flag-5'>RK</b>3588比<b class='flag-5'>RK3399</b>强在哪里?如何选择

    RK3399 VR Android参数配置和调试说明

    电子发烧友网站提供《RK3399 VR Android参数配置和调试说明.pdf》资料免费下载
    发表于 10-07 15:42 0次下载
    <b class='flag-5'>RK3399</b> VR <b class='flag-5'>Android</b>参数配置和调试说明

    RK3399 BOX开发板用户指南

    电子发烧友网站提供《RK3399 BOX开发板用户指南.pdf》资料免费下载
    发表于 09-15 15:37 1次下载
    <b class='flag-5'>RK3399</b> BOX<b class='flag-5'>开发板</b>用户指南

    视壮VS-RK3399六核64位高性能开发板ADC使用

    电子发烧友网站提供《视壮VS-RK3399六核64位高性能开发板ADC使用.pdf》资料免费下载
    发表于 09-15 15:37 0次下载
    视壮VS-<b class='flag-5'>RK3399</b>六核64位高性能<b class='flag-5'>开发板</b>ADC使用

    rk3399性能评测

    rk3399性能评测  RK3399 是一种由瑞芯微(Ruijie Micro)生产的超高性能、低功耗、多核 SoC(System on a chip)处理器,它采用了 ARM 公司的大臂架构
    的头像 发表于 08-21 17:32 5965次阅读

    rk3399和骁龙855参数对比

    rk3399和骁龙855参数对比 在当今移动设备市场上,rk3399和骁龙855是两个非常出色的芯片,它们都赢得了消费者的信任和喜爱。但是,这两款芯片的具体参数又有什么区别呢?下面就让我们来详细对比
    的头像 发表于 08-17 10:52 949次阅读

    rk3566和rk3399的区别

    rk3566和rk3399的区别 Rockchip是中国芯片设计企业,其旗下产品包括rk3566和rk3399芯片,这两种芯片都具有高性能和低成本的优点,但在一些细节上还是存在一定的差
    的头像 发表于 08-15 17:44 8429次阅读

    RK3568开发板2800页手册+220集视频

    itop-3568ubuntu使用手册 itop-3568开发板c应用编程手册 itop-3568开发板驱动开发指南 itop-rk3568官方a
    发表于 06-01 10:25