问题背景
移植 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内核?相关推荐

  1. 全志D1/D1s芯片:芒果派麻雀点RGB屏填坑

    前言 最近全志推出了D1处理器,搭载平头哥玄铁906 RISC-V的应用处理器.于是准备入手玩一下,买了芒果派做了基于D1s的麻雀板,D1s是D1内封64M DDR的版本,去掉了hdmi输出,号称点屏 ...

  2. 十二、Hi3556移植RTL8189 WIFI驱动

    Hi3556V200从代理拿到的SDK包中,是不包含RTL8189模块的驱动的.我们从某WIFI模块厂家要到了RTL8189的芯片驱动,于是开始着手移植驱动到平台上面. 一.Linux驱动添加RTL8 ...

  3. 三星S5PV210移植RTL8723BU WiFi驱动

    硬件环境:Samsung s5pv210 软件环境:Linux kernel 2.6.35.7 1.编译生成生成.ko文件 驱动安装包下载地址请点击rtl8723bu wifi驱动 下载完成的驱动包先 ...

  4. GEC6818 移植 rtl8723bu wifi驱动

    文章目录 1. 配置内核 2.RTL8723BU 模块驱动编译 2.1 下载解压 2.2 配置编译 3. openssl 移植 3.1 下载解压 3.2 配置 3.3 编译安装 4. libnl 移植 ...

  5. 移植MT7601 WIFI驱动(sta模式)到s5pv210开发板

    1. 前期准备工作和移植环境搭建 1.1 移植环境的搭建 Ubuntu14.04(当然也可以用其他Ubuntu版本),作为源码编译环境,而且已经安装了交叉编译工具链: 用官方提供的内核源码,编译得到内 ...

  6. RK平台移植rtl8852bs wifi驱动

    RK平台 android 12的内核里面没有rtl8852bs wifi驱动,找模组原厂要了驱动,看了一下是其他平台的...要放RK平台是编译不过的,要做一下相应的修改,有点坑! 首先,修改kerne ...

  7. 【实践驱动开发3-006】TI WL1835MODCOM8 在android的移植 - SDIO wifi驱动的注册步骤

     说明之前:文档建立在实际的项目中: 硬件环境是三星x210,软件是android4.0 ubuntu13.04 EDITING AREA Linux的platform 机制简介 从 Linux ...

  8. linux内核wifi驱动,基于2.6.35内核的SDIO-WiFi驱动移植

    一. 移植环境 [移植环境] 1. 主机:Ubuntu 10.10发行版 2. 目标机:FS_S5PC100平台 3. 交叉编译工具:arm-none-linux-gnueabi-4.5.1 4.wi ...

  9. Linux芯片级移植与底层驱动(基于3.7.4内核) --SMP多核启动以及CPU热插拔驱动

    出处:http://21cnbao.blog.51cto.com/109393/1143518 在Linux系统中,对于多核的ARM芯片而言,Bootrom代码中,CPU0会率先起来,引导Bootlo ...

最新文章

  1. js模板字符串自定义类名_【Vue.js 入门到实战教程】07Vue 组件注册 | 基本使用和组件嵌套...
  2. angularjs 中的scope继承关系——(2)
  3. Linux学习之系统编程篇:互斥锁(pthread_mutex_init / lock / trylock / unlock / destroy)
  4. 作者:赵雷,山东农业大学硕士生。
  5. SpringBoot—jasypt加解密库的使用方法
  6. 【C语言】实参求值的顺序
  7. python实现表格_Python 自由定制表格的实现示例
  8. python用http协议传数据_《Python网络爬虫》1.3 HTTP协议基础知识
  9. Beautiful选择器/遍历文档树Day3-7
  10. abb机器人goto指令用法_abb机器人编程指令,机器人编程的程序指令
  11. 用 C#.NET 编写的一个完整字谜游戏
  12. 简述研究生阶段如何提高自己的学习能力
  13. Arduino白泽四足机器人——matlab逆运动学求解
  14. php模拟IP请求,如何在php中利用curl对ip进行模拟
  15. 魔镜魔镜告诉我谁是世界上最美的人 语音唤醒,百度语音识别。从装系统开始
  16. linux 下遍历文件夹下的所有文件
  17. APMServ 使用
  18. [ecshop 经验 ]transport.js run error 68ecshop 小京东 火狐提示 同源策略和跨域访问 68ecshop
  19. LeetCode每日一题——952. 按公因数计算最大组件大小
  20. 贾斯特里尼布鲁克斯,优质葡萄酒都有甄选法则

热门文章

  1. windows下的两个免费资源编辑器
  2. Lettuce连接redis集群
  3. Could not publish to the server tomcat version 8.5 requires java se7 or later......
  4. 14.2 爬虫爬取的长安十二时辰短评 微博热门月榜 明星微博
  5. 构建数据中台常用三把武器区别在哪?(Hadoop、Spark、Storm)
  6. [掌心网]苹果iPhone开发者的Windows Phone 7使用报告
  7. 4g网络设置dns地址_你还没搞明白凭啥就你的手机网络不佳连接超时?
  8. Altium designer软件使用
  9. 2015年第12本(英文第8本):the Old Man and the Sea 老人与海
  10. java 时间戳 timestamp