RTL_8821CU WIFI模块驱动移植解析
最近在尝试移植wifi模块驱动,wifi模块型号为RTL_8821CU,具体移植步骤如下
一 内核配置
需要配置内核将无线网络支持打开
进入内核源码顶层目录,使用make menuconfig 命令
进入 Device Driver-->Network device support-->wireless LAN
然后做如下配置
IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)
Support downloading firmware images with Host AP driver
Support for non-volatile firmware download
上述配置完成后,返回图形化界面顶层目录
进入Networking support>wireless
做如下配置
*cfg80211 - wireless configuration API
*cfg80211 wireless extensions compatibility
*Generic IEEE 802.11 Networking Stack (mac80211)
*Enable mac80211 mesh networking (pre-802.11s) support
重新编译内核即可
二 下载RTL_8821CU驱动源码
https://github.com/brektrou/rtl8821CU
修改顶层MakeFile
新增配置 CONFIG_PLATFORM_ARM_SS626DV100 =y(注意:根据自己想移植的开发板来新增)
同时将原始的CONFIG_PLATFORM_AML_S905 = y 改为 =n(按照实际情况而定)
查找 CONFIG_PLATFORM_ZTE_ZX296716 的配置
根据该配置仿写一份新的配置
ARCH为架构选择;
CROSS_COMPILE为交叉编译器前缀;
KSRC目录为目标linux内核的地址;
KVER是目标内核的版本;
MODULE_NAME是结果文件名,这些需要根据实际需要更改
编译成ko文件
通过make 编译ko文件
三 烧写内核以及将ko文件传入板端
将新配置好的内核烧入开发板中,将ko文件通过nfs传入板端
使用insmod 命令加载驱动
四 可能出现的错误
问题一 Unknown symbol wireless_send_event (err -2)
出现该错误的可能原因为 内核没有配置好,建议检查内核配置是否正确
问题二 [000001c00011c856] address between user and kernel address ranges
出现类似报错,并导致内核停止,可能的原因为 在配置内核之前先编译的ko文件,解决方式是重新再编译一遍ko文件
- 分享
- 举报
-
浏览量:1230次2023-07-27 10:33:06
-
浏览量:1725次2018-11-05 20:15:02
-
浏览量:1571次2023-11-06 11:04:59
-
浏览量:1299次2023-06-12 14:35:43
-
浏览量:5631次2021-04-12 16:15:46
-
浏览量:6250次2021-01-15 17:26:20
-
浏览量:2269次2022-07-09 08:47:55
-
浏览量:2622次2020-08-13 11:47:44
-
浏览量:1378次2024-01-12 17:56:48
-
浏览量:1642次2024-03-16 10:01:36
-
浏览量:1021次2024-01-24 18:28:37
-
浏览量:1840次2019-01-29 18:35:51
-
浏览量:2272次2018-08-06 09:15:01
-
2023-10-18 14:44:59
-
浏览量:7186次2021-01-16 14:52:44
-
浏览量:7957次2021-06-04 16:25:58
-
浏览量:1478次2024-01-12 15:17:33
-
浏览量:6259次2021-04-20 16:37:57
-
浏览量:1726次2023-11-23 14:03:06
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
易百纳用户53690
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明