Tina上移植RTL8188FTV WiFi模块

零、概述

2024年年中的时候画了一块T113的开发板,采用了核心板和可替换底板设计,为了学习WiFi相关内容,选了RTL8188FTV作为WiFi模块(网上最便宜的,不过大家适配比较少,所以坑很多),花了一段时间将这部分移植成功了,做出如下记录以供参考。
驱动链接在此:点击即可

一、前期准备

我们的目的是适配一款新的WiFi模块,所以一开始系统什么的需要先准备好,不在本文探讨的范畴。需要做出如下准备:

  1. RTL8188FTV模块(USB款)
  2. 运行Linux的开发板(虽然我是在Tina上完成的,但是原理通用于Linux),我使用的芯片是T113
  3. 虚拟机Tina4.0开发环境
  4. 对应版本的RTL8188FTV驱动(这个是最难搞到的部分,因为RTL8188FTV的驱动不好找,我随后会发出)

二、移植过程

1.内核中加入rtl8188ftv驱动

(1).添加驱动到内核中

在Tina4.0中可以将wif模块的驱动放在linux-5.4/drivers/staging或者是linux-5.4/drivers/net/wireless,我选择放在staging中,尽量不要去修改原生的目录,包括Tina5.0就开始使用bsp目录,专门管理全志特性的东西,尽量不修改到Linux原生的目录,后续编译的时候通过链接的方式整合到一起。

好了,话说回来,现在需要在staging中新建对应目录,并将驱动解压进去。
在这里插入图片描述
解压后的rtl8188ftv目录如下:
在这里插入图片描述
然后接下来需要让Linux能够识别到,需要做两项修改,一个是Kconfig,另一个是Makefile,修改这两处目的如下:

  • Kconfig:可以让make kernel_menuconfig的时候识别到。
  • Makefile:可以让Linux编译到驱动代码。

(2).修改Kconfig

可以查看一下rtl8188ftv中的Kconfig的内容,如下:
在这里插入图片描述

然后需要到staging进行修改Kconfig,让其包括rtl8188ftv下的Kconfig,如下:
在这里插入图片描述

这样就可以在Linux下的menuconfig中找到这个驱动文件的配置。

(3).修改Makefile

接下来修改staging的Makefile,使Linux可以找到rtl8188ftv下的Makefile,如下:
在这里插入图片描述

还记得最开始看的rtl8188ftv下的Kconfig嘛,就是里面有一个对应开启的宏,在Makefile中添加上前缀CONFIG,就作为Makefile的参数,所以当Kconfig的配置被选中后,CONFIG_RTL8188FU就有对应的变化,就会识别到rtl8188ftv的路径。

现在执行m kernel_menuconfig就可以找到对应的设置,如下:
在这里插入图片描述

2.修改驱动配置

现在需要对驱动,也就是rtl8188ftv的Makefile进行修改,主要修改这几项:

  • 修改WIFI IC,也就是型号,这边如下:
    在这里插入图片描述

  • 修改Interface,因为是USB模块,所以选到USB即可,如下:
    在这里插入图片描述

  • 修改Platform Related,我使用的是T133,所以选择ARM_SUNxI,如下:
    在这里插入图片描述

  • 修改对应编译链和编译目录,如下:

这是原来的:
在这里插入图片描述

修改为:
在这里插入图片描述

这里面的几个参数分别是:

  • CROSS_COMPILE:就是Tina编译链位置
  • KVER:Linux的版本
  • KSRC:Linux源码的路径

3.解决编译错误问题

上面配置后就可以开始尝试编译,可以看到正在正常编译:
在这里插入图片描述

距离成功有进一步了!!but,马上出问题了:

  1. fatal error: mach/sys_config.h: No such file or directory
    在这里插入图片描述

这个问题好解,参考网上可以看到只要修改成linux下的sys_config.h即可,但是然而内核中也没有对应文件,我查了一下这个头文件主要是提供一个用于读取配置的操作,再看看drivers/staging/rtl8188ftv/platform/platform_ARM_SUNxI_usb.c内容,会发现这个其实是和模块上下电有关的,不过我现在是常供电,所以完全没必要。

其实即使解决了这个问题,还会报一些缺少sw_usb_enable_hcd、sw_usb_disable_hcd、script_parser_fetch等的问题。我这边直接给出我的解决办法–取消编译且在初始化源码中注释上下电操作!

  • 取消编译
    在这里插入图片描述

  • 注释相关代码
    在这里插入图片描述
    在这里插入图片描述

随后即可编译通过!!
在这里插入图片描述

但是仔细看看log或是拿到板子上去跑一下就会发现报一个错,就是log中提到的:
在这里插入图片描述

这个是由于内核命名空间未导入的原因,如下修改:
在这里插入图片描述

理论上到此就可以直接结束了,把ko文件拿到板子上insmod即可,但是这是在Tina呢,需要再修改一下openwert,让系统自动加到rootfs中。

4.修改openwrt

修改一下对应的mk文件,在通过软件包的形式将驱动安装到rootfs中。首先修改wireless.mk文件将对应ko文件写一个软件包,路径是/home/book/T113/tina/package/kernel/linux/modules/wireless.mk,如下:
在这里插入图片描述

然后再执行m menuconfig,找到rtl8188ftv相关选项,然后选上即可。
在这里插入图片描述

这样就会自动加载rootfs中了。

三、驱动验证

烧写新编译的固件,然后在/lib/modules/5.4.61下可以看到对应驱动
在这里插入图片描述

使用insmod命令就可以将驱动加载了,如下:
在这里插入图片描述
此时,ifconfig -a大概率是可以看到wlan0的,随后的操作自由发挥吧。

整个移植过程还算顺利,当然也有查看一些大佬写的文章,我只是学到了然后也分享出来,以后大家有遇到可以进行参考,同时也给自己做一个笔记。

至此,分享结束,谢谢大家!!73 😎

### RTL8188FTV 芯片概述 RTL8188FTV 是一款由 Realtek 生产的无线网络模块,支持 IEEE 802.11 b/g/n 协议标准[^1]。这款芯片广泛应用于各种嵌入式设备中,因其高集成度和低功耗特性而受到欢迎。 #### 技术规格 - **协议支持**: 支持IEEE 802.11b/g/n Wi-Fi标准 - **频率范围**: 双频操作模式(2.4GHz 和 5GHz),具体取决于产品型号 - **传输速率**: 最大可达150Mbps (对于单流配置下的n模式) - **接口类型**: USB 接口用于连接主机系统;SPI 或 SDIO 接口可用于与其他微控制器通信 - **电源管理**: 内置多种省电机制以延长电池寿命 - **安全性**: 提供 WPA/WPA2 加密功能保障数据安全传输 #### 应用场景 由于其紧凑的设计以及良好的性能表现,RTL8188FTV 成为了众多物联网(IoT) 设备的理想选择之一: - 家庭自动化控制系统中的网关节点可以利用此模块实现远程控制家电等功能; - 智能穿戴类产品如智能手表也可以借助于该模块来保持与手机或其他终端之间的持续联网状态; - 工业级应用领域里,则可能被用来构建稳定的无线传感网络来进行环境监测等工作. #### 开发资料 针对希望基于 RTL8188FTV 进行二次开发的技术人员来说,官方及相关社区提供了大量有价值的参考资料和支持工具: - 文档方面涵盖了从硬件设计指导书到软件编程手册在内的全套说明文件; - 对于特定平台上的移植工作, 如全志 A40i 平台, 存在一个专门编写的 Linux 驱动移植指南可供参考[^2]; - 此外还有关于如何移除原有内核中存在的冲突驱动程序的具体步骤描述等实用技巧分享[^3]; ```bash # 示例命令:获取更多有关 NXP i.MX6ULL 上移植 RTL8188WiFi 模块的信息 git clone https://gitcode.com/open-source-toolkit/3d511 cd 3d511 make menuconfig # 使用 Kconfig 文件定制所需选项 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值