前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >全志D1-H芯片 如何移植 rtl8821cu wifi 驱动到 Linux-5.4内核?

全志D1-H芯片 如何移植 rtl8821cu wifi 驱动到 Linux-5.4内核?

作者头像
阿志小管家
发布于 2024-02-02 07:46:53
发布于 2024-02-02 07:46:53
41900
代码可运行
举报
运行总次数:0
代码可运行

问题背景 移植 Linux-4.9 或之前的内核版本下的 wifi 驱动到 Linux-5.4 内核版本时会出现编译和运行错误, 该 FAQ 主要用于帮助开发人员解决驱动移植出现的问题。

问题分析 移植到 Linux-5.4 内核版本时出现如下编译错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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。

解决方案

出现编译错误时解决方案如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 结构体并修改如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【全志D1-H Lichee RV & WIFI】RTL8723DS & BS 的 WiFi 移植记录
移植方法的前提有两个,首先拿到全志公开的 SDK ,然后在 lichee/linux-5.4/drivers/net/wireless/rtl8723ds 里添加旧驱动升级上来。
阿志小管家
2024/02/29
2900
【全志D1-H Lichee RV & WIFI】RTL8723DS & BS 的 WiFi 移植记录
Tina_Linux_Wi-Fi_开发指南
介绍Allwinner 平台上Wi-Fi 驱动移植,介绍Tina Wi-Fi 管理框架,包括Station,Ap 以及Wi-Fi 常见问题。
韦东山
2023/02/25
5.1K0
Tina_Linux_Wi-Fi_开发指南
飞凌 OK113i-C 全志T113-i开发板初体验
板子做工精致很有份量,拿在手里沉甸甸的,各种接口一应俱全——USB、TF 卡座、SIM卡座、4G模块卡座、网口、RGB LCD接口、LVDS、RS485、CAN、各种音频口、TV-in/TV-Out,板上还自带一个RTL8723du wifi/蓝牙二合一模块,作为一块主打工业控制的主控板这些接口实属绰绰有余了。手里的板子是256MB内存+256MB nand flash版本(这个是低配版本,还有个512MB+8GB emmc的高配版本),飞凌开发文档中提到已经移植好了Qt5开发环境,所以这个内存跑跑Qt的UI程序是再合适不过了,可惜手里没有匹配的开箱即用的LCD显示屏不然接上直接能试试出厂自带的Qt测试程序了。
阿志小管家
2024/02/02
5180
飞凌 OK113i-C 全志T113-i开发板初体验
2.移植3.4内核-支持烧写yaffs2,裁剪内核并制作补丁
如上图,问题都是出在fs/yaffs2/下,很多error都讲述:调用的成员名,在struct mtd_info结构体里没有定义.
诺谦
2019/05/24
1.5K0
i.MX283开发板移植RTL8188ETV无线网卡驱动
开发板Linux内核版本:2.6.35 无线网卡型号:RTL8188ETV RTL8188驱动版本:rtl8188EUS_rtl8189ES_linux_v4.1.2_4787.20120803.tar.gz
知否知否应是绿肥红瘦
2025/02/19
2500
i.MX283开发板移植RTL8188ETV无线网卡驱动
飞凌OK113i-C全志T113-i开发板 rtl8723du WIFI 功能测试及蓝牙驱动移植
飞凌 OK113i-C 全志T113-i开发板板载一个RTL8723du wifi/蓝牙二合一模块,板子出厂已经移植好了WIFI驱动但是蓝牙驱动没有,所以这篇文章我们主要做蓝牙驱动的移植和功能验证。
阿志小管家
2024/02/02
6161
CentOS8中如何支持TL-WDN7200H无线USB网卡?
今日在笔记本电脑ThinkBook 14 IML接入TP-LINK的TL-WDN7200H AC 1900双频高增益无线USB网卡,支持2.4GHz 600Mbps+5GHz 1300Mbps。
技术训练营
2019/12/18
3K0
嵌入式Linux移植USB网卡驱动「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。 开发板:友善之臂smart210 操作系统:Ubuntu 12,04 交叉编译器:arm-none-linux-gnueabi gcc version 4.3.2 WIFI 模组:TP-LINK TL-WN725N 2.0
全栈程序员站长
2022/11/08
7.9K0
全志D1-H移植为7寸MIPI屏
到Tina根目录下make kernel_menuconfig将下面驱动配置上
阿志小管家
2024/02/02
2460
全志D1-H移植为7寸MIPI屏
全志D1-H (MQ-Pro)驱动 OV5640 摄像头
路径:lichee/linux-5.4/arch/riscv/boot/dts/sunxi/sun20iw1p1.dtsi
阿志小管家
2024/02/02
2640
全志D1-H (MQ-Pro)驱动 OV5640 摄像头
基于全志D1-H的Tina Linux SPI主从通信验证实录
SPI接口是一种高速的, 全双工, 同步的通信总线. 适配D1H芯片的Tina Linux的BSP-SDK(以下简称SDK)中已包含相关驱动文件: spi-sunxi.c. 它提供的了仅内核态下主从机的简易通信验证实验, 这或许是考虑到SPI通信速率比较高的特性. 验证操作
阿志小管家
2024/02/02
3410
基于全志D1-H的Tina Linux SPI主从通信验证实录
深度:一文看懂Linux内核!Linux内核架构和工作原理详解
Linux内核的作用是将应用程序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。目前支持模块的动态装卸(裁剪)。Linux内核就是基于这个策略实现的。
混说Linux
2022/11/18
3K0
深度:一文看懂Linux内核!Linux内核架构和工作原理详解
全志Tina Linux 系统裁剪 boot0裁剪 uboot裁剪 内核裁剪 文件系统裁剪 C库裁剪 文件系统压缩
嵌入式产品往往为了压缩成本而使用较小的flash存储器,因此可能需要对系统进行裁剪来减少对flash的占用。系统经过裁剪过后,通常也会提升启动速度以及减少内存占用。 本文介绍TinaLinux中系统裁剪的方法,为有裁剪需求的使用者提供参考。
韦东山
2022/12/28
9K0
3.移植驱动到3.4内核-移植DM9000C驱动
machid=16a(mach-smdk2440.c)的内核下输入ifconfig,发现该板卡的内核不支持DM9000,如下图所示:
诺谦
2019/05/24
1.1K0
全志D1-H Tina Linux LEDC开发指南
在tina 根目录下,执行makekernel_menuconfig,配置路径如下:
一牛网论坛
2022/12/13
1.7K0
联想 R9000 系列以及Realtek Semiconductor Co., Ltd. Device 88xx系列 Ubuntu WIFI 不能使用
打开主板系统,将security boot设置为disenable,我们接下来的操作会涉及到内核级别需要关闭。
风骨散人Chiam
2022/04/13
1.6K0
EC200&UC200_Linux&Android_USB驱动移植说明
UC200&EC200和其他高通模块,都是用usb-serial-option驱动,但是USB interface的顺序不同. 所以如果客户之前移植过EC20/EC25的代码,会导致UC200&EC200的PPP口识别不到。所以建议客户先还原drivers/usb/serial/option.c的修改,重新按照 EC200_UC200_usb_serial_option.patch移植。这个修改方法同时UC200&EC200和其他高通平台模块。
TSINGEYE清眸物联
2023/01/04
4.2K0
EC200&UC200_Linux&Android_USB驱动移植说明
一种快速移植 OpenHarmony Linux 内核的方法
本文面向希望将 OpenHarmony 移植到三方芯片平台硬件的开发者,介绍一种借助三方芯片平台自带 Linux 内核的现有能力,快速移植 OpenHarmony 到三方芯片平台的方法。
小帅聊鸿蒙
2024/07/28
2830
一种快速移植 OpenHarmony Linux 内核的方法
MQ-Quad 全志H616 主线内核编译调试记录(u-boot、kernel、buildroot)
/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
阿志小管家
2024/02/02
8010
Linux SPI 开发指南
SPI 是一种高速、高效率的串行接口技术。通常由一个主模块和一个或多个从模块组成,主模块选择一个从模块进行同步通信,从而完成数据的交换,被广泛应用于 ADC、LCD 等设备与 MCU 之间。全志的 spi 控制器支持以下功能:
韦东山
2023/02/25
9.4K0
Linux SPI 开发指南
推荐阅读
相关推荐
【全志D1-H Lichee RV & WIFI】RTL8723DS & BS 的 WiFi 移植记录
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档