0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

迅為RK3399開發(fā)板如何基于RTL8822CS模塊實(shí)現(xiàn)Android7移植WiFi

北京迅為電子 ? 2021-11-25 13:57 ? 次閱讀

近期需要把 wifi 無(wú)線網(wǎng)絡(luò)功能(RTL8822CS 模塊)移植到 iTOP-3399 開發(fā)板,經(jīng)過一段時(shí)間研究, 調(diào)試,終于成功的將 wifi 功能移植到開發(fā)板上面。

移植的環(huán)境:

1. iTOP-3399 開發(fā)板+ RTL8822CS 模塊

2. Android 7.0

3. 搭建好編譯環(huán)境的 ubuntu16.04 64Bit 開發(fā)環(huán)境

移植步驟

80.3.1 增加設(shè)備樹節(jié)點(diǎn)

在 /home/topeet/rk3399_7.1_industry/kernel/arch/arm64/boot/dts/rockchip/rk3399-topeet.dtsi 設(shè) 備 樹 中 添加 WiFi 節(jié)點(diǎn),如下圖所示:

wifi_chip_type 屬性表示 WiFi 器件的類型為 rtl8822cs。

查找 sdio0 節(jié)點(diǎn),注釋掉下面的語(yǔ)句,注釋掉這句是因?yàn)樽?cè) sdio 設(shè)備時(shí),會(huì)注冊(cè)不上。

80.3.2 修改內(nèi)核驅(qū)動(dòng)

修改驅(qū)動(dòng)的思路:

1) 將驅(qū)動(dòng)文件拷貝內(nèi)核中

2) 在內(nèi)核中加載上添加的驅(qū)動(dòng)

3) 我們提前了解下配置 wifi 固件一般是在源碼

drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c,wifi 模塊驅(qū)動(dòng)在源碼 net/rfkill/rfkill-wlan.c

第一步,我們拷貝光盤資料下“

iTOP-3399 開發(fā)板\02_iTOP-3399 開發(fā)資料匯總(不含光盤內(nèi)容)\13_

嵌入式 Linux 開發(fā)指南(RK3399)手冊(cè)配套資料\6.Android 底層驅(qū)動(dòng)\Android7wifi 移植\原廠 wifi 驅(qū)動(dòng)” RTL8822CS_WiFi_linux_v5.12.1.1-0.20210125.tar.gz,此驅(qū)動(dòng)是 wifi 模組的廠家提供的,我們將其放入內(nèi)核目 錄 drivers/net/wireless/rockchip_wlan/下,并修改文件夾名稱為 rtl8822cs,如下圖所示:

接著修改以下文件:

(1)修改 drivers/net/wireless/rockchip_wlan/Makefile 文件,添加以下內(nèi)容:

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

如下圖所示,可以打開或關(guān)閉 debug 信息

(4)修改 drivers/net/wireless/rockchip_wlan/Kconfig/rtl8822cs 下的 Kconfig 文件

將第一行的 RTL8822BS 修改為 RTL8822CS,這里是廠家的源碼寫錯(cuò)了,不改正的話不會(huì)編譯到這個(gè)源碼目錄。

(5)然后在內(nèi)核目錄下(也就是 kernel 目錄下)輸入以下命令配置加載驅(qū)動(dòng)。

(6)輸入以下命令,將保存好的.config 文件復(fù)制替換默認(rèn)的內(nèi)核配置 defconfig 文件

cp .config arch/arm64/configs/rockchip_defconfig

(7)然后修改/home/topeet/rk3399_7.1_industry/kernel/net/rfkill/rfkill-wlan.c 文件,添加如下所示內(nèi)容。

} 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 文件,添加如下內(nèi)容, 如下圖所示: 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 桌面“設(shè)置”APP 里面連接 WiFi 的程序在源碼:

packages/apps/Settings/src/com/android/settings/wifi/目錄下。此部分不需要修改。

經(jīng)過上面的修改,然后重新編譯 Android7 源碼,燒寫鏡像后,便可以進(jìn)行調(diào)試。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4771

    瀏覽量

    96171
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RK3588!黑神話悟空,啟動(dòng)?-電子RK3588開發(fā)板

    RK3588!黑神話悟空,啟動(dòng)?-電子RK3588開發(fā)板
    的頭像 發(fā)表于 08-30 14:13 ?260次閱讀
    <b class='flag-5'>RK</b>3588!黑神話悟空,啟動(dòng)?-<b class='flag-5'>迅</b><b class='flag-5'>為</b>電子<b class='flag-5'>RK</b>3588<b class='flag-5'>開發(fā)板</b>

    RK3588開發(fā)板運(yùn)行openkylin麒麟系統(tǒng)

    RK3588開發(fā)板移植了銀河麒麟和開放麒麟系統(tǒng)
    發(fā)表于 08-19 10:38

    探索巔峰性能 | RK3588開發(fā)板深度剖析

    探索巔峰性能 | RK3588開發(fā)板深度剖析
    的頭像 發(fā)表于 08-12 14:07 ?561次閱讀
    探索巔峰性能 | <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK</b>3588<b class='flag-5'>開發(fā)板</b>深度剖析

    鴻蒙OpenHarmony南向/北向快速開發(fā)教程-RK3568開發(fā)板

    大家期待已久的RK3568開發(fā)板終于迎來(lái)了鴻蒙4.1系統(tǒng)的強(qiáng)勢(shì)支持!想知道如何實(shí)現(xiàn)快速開發(fā)學(xué)
    發(fā)表于 07-23 10:44

    RK3588開發(fā)部可移植銀河麒麟和開放麒麟系統(tǒng)

    RK3588開發(fā)板移植了銀河麒麟和開放麒麟系統(tǒng)
    發(fā)表于 07-03 11:24

    國(guó)產(chǎn)四核RK3562開發(fā)板底板硬件接口原理說(shuō)明

    國(guó)產(chǎn)四核RK3562開發(fā)板底板硬件接口原理說(shuō)明
    的頭像 發(fā)表于 06-14 15:27 ?895次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>國(guó)產(chǎn)四核<b class='flag-5'>RK</b>3562<b class='flag-5'>開發(fā)板</b>底板硬件接口原理說(shuō)明

    RK3588S邊緣計(jì)算開發(fā)板Android13系統(tǒng)功能

    RK3588S邊緣計(jì)算開發(fā)板Android13系統(tǒng)功能
    的頭像 發(fā)表于 04-10 15:43 ?641次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK</b>3588S邊緣計(jì)算<b class='flag-5'>開發(fā)板</b><b class='flag-5'>Android</b>13系統(tǒng)功能

    【OpenHarmony鴻蒙實(shí)戰(zhàn)】在RK3399開發(fā)板實(shí)現(xiàn)智能門禁人臉識(shí)別

    基于RK3399開發(fā)板,使用OpenHarmony3.0-LTS開發(fā)的應(yīng)用。通過定時(shí)獲取攝像頭數(shù)據(jù),實(shí)現(xiàn)人臉識(shí)別比對(duì)等功能。
    的頭像 發(fā)表于 03-20 17:38 ?932次閱讀
    【OpenHarmony鴻蒙實(shí)戰(zhàn)】在<b class='flag-5'>RK3399</b><b class='flag-5'>開發(fā)板實(shí)現(xiàn)</b>智能門禁人臉識(shí)別

    iTOP-RK3588開發(fā)板Buildroot系統(tǒng)功能測(cè)試

    iTOP-RK3588開發(fā)板Buildroot系統(tǒng)功能測(cè)試
    的頭像 發(fā)表于 03-14 15:42 ?913次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>iTOP-<b class='flag-5'>RK</b>3588<b class='flag-5'>開發(fā)板</b>Buildroot系統(tǒng)功能測(cè)試

    RK3568開發(fā)板驅(qū)動(dòng)開發(fā)指南-輸入子系統(tǒng)

    RK3568開發(fā)板驅(qū)動(dòng)開發(fā)指南-輸入子系統(tǒng)
    的頭像 發(fā)表于 02-23 15:11 ?590次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK</b>3568<b class='flag-5'>開發(fā)板</b>驅(qū)動(dòng)<b class='flag-5'>開發(fā)</b>指南-輸入子系統(tǒng)

    RK3588開發(fā)板-智慧能源行業(yè)的解決方案

    RK3588開發(fā)板-智慧能源行業(yè)的解決方案
    的頭像 發(fā)表于 01-24 15:26 ?444次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK</b>3588<b class='flag-5'>開發(fā)板</b>-智慧能源行業(yè)的解決方案

    RK3568開發(fā)板助力智能車載產(chǎn)業(yè)快速發(fā)展

    RK3568開發(fā)板助力智能車載產(chǎn)業(yè)快速發(fā)展
    的頭像 發(fā)表于 01-23 13:59 ?391次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK</b>3568<b class='flag-5'>開發(fā)板</b>助力智能車載產(chǎn)業(yè)快速發(fā)展

    rk3399移植Linux內(nèi)核

    RK3399是一款由中國(guó)廠商瑞芯微推出的高性能處理器芯片,被廣泛用于嵌入式系統(tǒng)開發(fā)。在進(jìn)行應(yīng)用程序開發(fā)之前,我們需要將Linux內(nèi)核移植RK339
    的頭像 發(fā)表于 01-08 09:56 ?807次閱讀

    RK3399硬件設(shè)計(jì)指南

    設(shè)計(jì)的要點(diǎn)和注意事項(xiàng),以幫助讀者了解如何進(jìn)行高效、穩(wěn)定的設(shè)計(jì)。 首先,電源是RK3399硬件設(shè)計(jì)中的重要組成部分。為了滿足處理器和外圍設(shè)備的供電需求,需要選擇合適的電源模塊或?yàn)橹O(shè)計(jì)定制的電源。在設(shè)計(jì)電源電路時(shí),需要考慮電壓穩(wěn)定性、電流容量、電源
    的頭像 發(fā)表于 12-28 10:59 ?1092次閱讀

    RK3399 VR Android參數(shù)配置和調(diào)試說(shuō)明

    電子發(fā)燒友網(wǎng)站提供《RK3399 VR Android參數(shù)配置和調(diào)試說(shuō)明.pdf》資料免費(fèi)下載
    發(fā)表于 10-07 15:42 ?0次下載
    <b class='flag-5'>RK3399</b> VR <b class='flag-5'>Android</b>參數(shù)配置和調(diào)試說(shuō)明