全志D1-H芯片 如何移植 rtl8821cu wifi 驱动到 Linux-5.4内核?
问题背景
移植 Linux-4.9 或之前的内核版本下的 wifi 驱动到 Linux-5.4 内核版本时会出现编译和运行错误,
该 FAQ 主要用于帮助开发人员解决驱动移植出现的问题。
问题分析
移植到 Linux-5.4 内核版本时出现如下编译错误:
WARNING: module 8821cu uses symbol kernel_read from namespace VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver, but does not import it.
出现该 WANRING 的原因是内核版本升级后文件系统存在差异,驱动调用了 kernel_read()和 kernel_write() 函数,需要进行 import VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver 处理。
移植到 Linux-5.4 内核版本时运行的错误:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qLYVUueE-1646285792029)(/assets/uploads/files/1638946891720-04e7d843b1934a02af9d0335885f837c.jfif)]
出现该问题的原因是 Linux-5.3 及以后版本 cfg80211.h 里结构体 wiphy_vendor_command 新增了变量 policy 和 maxattr。
解决方案
出现编译错误时解决方案如下:
diff --git a/drivers/net/wireless/rtl8821cu/os_dep/linux/os_intfs.c b/drivers/net/wireless/rtl8821cu/os_dep/linux/os_intfs.c
index c4b515763ac8..466a3b27f521 100644
--- a/drivers/net/wireless/rtl8821cu/os_dep/linux/os_intfs.c
+++ b/drivers/net/wireless/rtl8821cu/os_dep/linux/os_intfs.c
@@ -28,6 +28,8 @@ MODULE_LICENSE("GPL");MODULE_DESCRIPTION("Realtek Wireless Lan Driver");MODULE_AUTHOR("Realtek Semiconductor Corp.");MODULE_VERSION(DRIVERVERSION);
+MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
出现运行错误时解决方案为遍历驱动里所有使用 wiphy_vendor_command 结构体并修改如下:
diff --git a/drivers/net/wireless/rtl8821cu/os_dep/linux/rtw_cfgvendor.c b/drivers/net/wireless/rtl8821cu/os_dep/linux/rtw_cfgvendor.c
index 6bac27d37766..09e24dcc9480 100644
--- a/drivers/net/wireless/rtl8821cu/os_dep/linux/rtw_cfgvendor.c
+++ b/drivers/net/wireless/rtl8821cu/os_dep/linux/rtw_cfgvendor.c
@@ -1756,6 +1756,11 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = {},.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,.doit = rtw_cfgvendor_gscan_get_capabilities
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0))
+ ,
+ .policy = VENDOR_CMD_RAW_DATA,
+ .maxattr = 1
+#endif},
原贴链接:https://bbs.aw-ol.com/topic/756
全志在线开发者交流企鹅群(客服机器人24小时在线解答):498263967
资源获取、问题讨论可以到全志在线开发者社区进行:https://www.aw-ol.com/
全志及开发者最新动态可以关注全志在线微信公众号
全志D1-H芯片 如何移植 rtl8821cu wifi 驱动到 Linux-5.4内核?相关推荐
- 全志D1/D1s芯片:芒果派麻雀点RGB屏填坑
前言 最近全志推出了D1处理器,搭载平头哥玄铁906 RISC-V的应用处理器.于是准备入手玩一下,买了芒果派做了基于D1s的麻雀板,D1s是D1内封64M DDR的版本,去掉了hdmi输出,号称点屏 ...
- 十二、Hi3556移植RTL8189 WIFI驱动
Hi3556V200从代理拿到的SDK包中,是不包含RTL8189模块的驱动的.我们从某WIFI模块厂家要到了RTL8189的芯片驱动,于是开始着手移植驱动到平台上面. 一.Linux驱动添加RTL8 ...
- 三星S5PV210移植RTL8723BU WiFi驱动
硬件环境:Samsung s5pv210 软件环境:Linux kernel 2.6.35.7 1.编译生成生成.ko文件 驱动安装包下载地址请点击rtl8723bu wifi驱动 下载完成的驱动包先 ...
- GEC6818 移植 rtl8723bu wifi驱动
文章目录 1. 配置内核 2.RTL8723BU 模块驱动编译 2.1 下载解压 2.2 配置编译 3. openssl 移植 3.1 下载解压 3.2 配置 3.3 编译安装 4. libnl 移植 ...
- 移植MT7601 WIFI驱动(sta模式)到s5pv210开发板
1. 前期准备工作和移植环境搭建 1.1 移植环境的搭建 Ubuntu14.04(当然也可以用其他Ubuntu版本),作为源码编译环境,而且已经安装了交叉编译工具链: 用官方提供的内核源码,编译得到内 ...
- RK平台移植rtl8852bs wifi驱动
RK平台 android 12的内核里面没有rtl8852bs wifi驱动,找模组原厂要了驱动,看了一下是其他平台的...要放RK平台是编译不过的,要做一下相应的修改,有点坑! 首先,修改kerne ...
- 【实践驱动开发3-006】TI WL1835MODCOM8 在android的移植 - SDIO wifi驱动的注册步骤
说明之前:文档建立在实际的项目中: 硬件环境是三星x210,软件是android4.0 ubuntu13.04 EDITING AREA Linux的platform 机制简介 从 Linux ...
- linux内核wifi驱动,基于2.6.35内核的SDIO-WiFi驱动移植
一. 移植环境 [移植环境] 1. 主机:Ubuntu 10.10发行版 2. 目标机:FS_S5PC100平台 3. 交叉编译工具:arm-none-linux-gnueabi-4.5.1 4.wi ...
- Linux芯片级移植与底层驱动(基于3.7.4内核) --SMP多核启动以及CPU热插拔驱动
出处:http://21cnbao.blog.51cto.com/109393/1143518 在Linux系统中,对于多核的ARM芯片而言,Bootrom代码中,CPU0会率先起来,引导Bootlo ...
最新文章
- js模板字符串自定义类名_【Vue.js 入门到实战教程】07Vue 组件注册 | 基本使用和组件嵌套...
- angularjs 中的scope继承关系——(2)
- Linux学习之系统编程篇:互斥锁(pthread_mutex_init / lock / trylock / unlock / destroy)
- 作者:赵雷,山东农业大学硕士生。
- SpringBoot—jasypt加解密库的使用方法
- 【C语言】实参求值的顺序
- python实现表格_Python 自由定制表格的实现示例
- python用http协议传数据_《Python网络爬虫》1.3 HTTP协议基础知识
- Beautiful选择器/遍历文档树Day3-7
- abb机器人goto指令用法_abb机器人编程指令,机器人编程的程序指令
- 用 C#.NET 编写的一个完整字谜游戏
- 简述研究生阶段如何提高自己的学习能力
- Arduino白泽四足机器人——matlab逆运动学求解
- php模拟IP请求,如何在php中利用curl对ip进行模拟
- 魔镜魔镜告诉我谁是世界上最美的人 语音唤醒,百度语音识别。从装系统开始
- linux 下遍历文件夹下的所有文件
- APMServ 使用
- [ecshop 经验 ]transport.js run error 68ecshop 小京东 火狐提示 同源策略和跨域访问 68ecshop
- LeetCode每日一题——952. 按公因数计算最大组件大小
- 贾斯特里尼布鲁克斯,优质葡萄酒都有甄选法则
热门文章
- windows下的两个免费资源编辑器
- Lettuce连接redis集群
- Could not publish to the server tomcat version 8.5 requires java se7 or later......
- 14.2 爬虫爬取的长安十二时辰短评 微博热门月榜 明星微博
- 构建数据中台常用三把武器区别在哪?(Hadoop、Spark、Storm)
- [掌心网]苹果iPhone开发者的Windows Phone 7使用报告
- 4g网络设置dns地址_你还没搞明白凭啥就你的手机网络不佳连接超时?
- Altium designer软件使用
- 2015年第12本(英文第8本):the Old Man and the Sea 老人与海
- java 时间戳 timestamp