详细记录丨Realtek RTL8188FU WiFi 驱动移植

1 参考资料

1、芯片数据手册:TL8188FCA.pdf

2、驱动移植手册:Quick_Start_Guide_for_Driver_Compilation_and_Installation.pdf

3、【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.3.pdf

4、Linux 添加 WiFi 驱动:

https://blog.csdn.net/sbddbfm/article/details/101222266

5、还有一些其他前辈的教程,十分感谢!

2 环境介绍

1、使用的新唐的 NUC980 系列 MCU ;

2、Linux 内核版本:4.4.179 ;

3、交叉编译链版本

arm-none-linux-gnueabi-gccgcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29)

4、供应商提供的 WiFi 模块驱动源码;

3 驱动移植

1、将 RTL8188FU 驱动添加到 Linux 内核中;

  • drivers/net/wireless 路径新建文件夹 realtek_new

  • 将驱动源码 RTL8188FU_Linux_v5.7.4_33085.20190626\driver\rtl8188FU_linux_v5.7.4_33085.20190419 解压后,放到 realtek_new 文件夹中;

  • 修改文件夹名字为 rtl8188fu

2、修改 drivers/net/wireless/Kconfig

  • 打开 drivers/net/wireless/Kconfig ,在文件最后一行添加

source "drivers/net/wireless/realtek_new/Kconfig"

3、修改 drivers/net/wireless/Makefile

  • 打开 drivers/net/wireless/Makefile ,在文件最后一行添加

obj-y += realtek_new/

4、新增文件 drivers/net/wireless/realtek_new/Makefile

  • 新增文件 Makefile ,添加以下内容,保存

obj-$(CONFIG_RTL8188FU) += rtl8188fu/

5、新增文件 drivers/net/wireless/realtek_new/Kconfig

  • 新增文件 Kconfig ,添加以下内容,保存

menuconfig REALTEK_WIFItristate "Realtek wifi" if REALTEK_WIFIchoice prompt "select wifi type"default RTL8189FUconfig RTL8188FUdepends on REALTEK_WIFItristate "Realtek 8188FU USB WiFi"
endchoice 
endif

6、关闭 Debug 功能

  • 打开文件 drivers/net/wireless/realtek_new/rtl8188fu/Makefile ;

  • 第 88 行,将宏定义 CONFIG_RTW_DEBUG=y 改为 CONFIG_RTW_DEBUG=n ;

  • 否则会打印很多调试信息,影响正常使用;

  • 修改之后如下图所示:

  87 ########################## Debug ###########################88 CONFIG_RTW_DEBUG = n89 # default log level is _DRV_INFO_ = 4,90 # please refer to "How_to_set_driver_debug_log_level.doc" to set the available level.91 CONFIG_RTW_LOG_LEVEL = 492 ######################## Wake On Lan ##########################

4 内核配置

1、配置 USB 支持设备

Device Drivers  ---> [*] USB support  ---><*>   Support for Host-side USB<*>     EHCI HCD (USB 2.0) support <*>     OHCI HCD (USB 1.1) support<*>   ChipIdea Highspeed Dual Role Controller           [*]     ChipIdea host controller            [*]     ChipIdea driver debug

2、配置支持 WiFi 设备

Device Drivers  ---> [*] 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

3、配置支持 IEEE 802.11

[*] Networking support  --->-*-   Wireless  --->[*]     cfg80211 wireless extensions compatibility <*>   Generic IEEE 802.11 Networking Stack (mac80211)

4、配置 RTL8188FU 驱动

  • 由于 RTL8188FU 无需加载额外的固件文件,故无需将驱动配置成模块;

  • 直接将驱动编译进内核,这样开机就会自动初始化 RTL8188FU ,不需要启动后再手工加载驱动模块;

Device Drivers  ---> [*] Network device support  ---> [*]   Wireless LAN  ---><*>   Realtek wifi  ---> --- Realtek wifi<*>   select wifi type (Realtek 8188FU USB WiFi)  --->  

5、在内核源码文件夹根路径,运行命令:

make uImage -j16

6、编译完成;

5 简单测试

1、将 WiFi 模块接入控制板;

2、使用新编译的内核,重新启动程序;

3、使用命令 ifconfig -a 测试;

4、如果可以看到 wlan0 网卡,则代表驱动可以正常工作;否则,请检查之前配置步骤是否有误;

5、我的测试结果如下:

[root]#ifconfig -a
dummy0    Link encap:Ethernet  HWaddr 12:DE:F0:8F:D4:1B  BROADCAST NOARP  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)eth0      Link encap:Ethernet  HWaddr 40:00:02:B3:D2:34  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:336 errors:0 dropped:138 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:95476 (93.2 KiB)  TX bytes:0 (0.0 B)lo        Link encap:Local Loopback  inet addr:127.0.0.1  Mask:255.0.0.0UP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1 RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)wlan0     Link encap:Ethernet  HWaddr 68:B9:D3:B2:90:C8  BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

好了,本期内容就是这样,祝您一切顺利,我们下期再见!


推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拆解1968年的美国军用电脑,真的怀疑是“穿越”啊!

来源&#xff1a;数码之家文 | 禅哥这台机器在本人的eBay收藏夹里呆了很久&#xff0c;某日无意间扫了一眼收藏夹&#xff0c;突然发现卖家大降价&#xff0c;只要15刀&#xff0c;还有best offer选项。15刀你买不了吃亏&#xff0c;15刀你买不了上当。事不宜迟果断下手。根据非…

ZJOI2018 Round2 游记

day0 高铁上颓了一部电影,然后闭上眼睛就到了 醒来之后发现被绑了艹,袖子被打了个结,搞了 \(20\) 分钟才解开,真想把绑我的人吊起来 \(xxx\) 公交车上碰到一位长者,被教育了一顿 长者:"你们大学生呐,戴着一副眼镜,肯定不是读书读出来的,玩游戏玩多了吧?" 我:".…

使用PWM实现语音播放

本文转自ARM中文社区&#xff0c;作者&#xff1a;Xiaoya链接&#xff1a;https://community.arm.com/cn/b/blog/posts/nucleof429-2-pwm事实上大部分MCU都可以实现语音播放下面是一段音频数据的波形局部放大图&#xff1a;以一定的速度采样&#xff08;ADC&#xff09;这些波形…

C小项目 —— 学生选课系统

C小项目 —— 学生选课系统#include<stdio.h> #include<windows.h> #include<stdlib.h> #include<conio.h>typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t;#define CLASS_CLS system("cl…

为了杀蚊子,他用树莓派DIY了一把激光枪!

本文经AI新媒体量子位&#xff08;公众号ID&#xff1a;QbitAI&#xff09;授权转载&#xff0c;转载请联系出处。世人苦蚊子久矣。尤其在夏夜&#xff0c;耳边嗡嗡作响&#xff0c;甚至还得与其“挑灯夜战”个三百回合。为此&#xff0c;一个国外博士便DIY了一种高端的杀蚊方式…

java获取操作系统信息

Java代码 import java.util.Properties; Properties propsSystem.getProperties(); //获得系统属性集 String osName props.getProperty("os.name"); //操作系统名称 String osArch props.getProperty("os.arch"); //操作系统构架 String osVe…

scp和sftp常用操作

文件异地直接复制&#xff1a; scp SCP的全称是secure copy (remote file copy program)&#xff0c;此命令是openssh-clients附带的,它的作用就是在机器之间实现拷贝&#xff0c;且机器之间的传输完全是加密的。 最简单的 scp 用法如下&#xff1a; [rootwww ~]# scp [-pr] [-…

SM7250(高通5G)平台LCD bringup

写在前面的话高通平台显示这一块&#xff0c;自从去年开始&#xff0c;高通全面使用SMxxxx命名的芯片比如高端系列&#xff1a;SM8350(骁龙888)&#xff0c;SM8250(骁龙865)&#xff0c;SM8150(骁龙855)中端系列&#xff1a;SM7250&#xff08;骁龙765g&#xff09;&#xff0c…

网络管理人员的未来?

这是流传已久的一张带讽刺性的照片。一名网络专业的学生的未来难道真会如此&#xff1f;或者&#xff0c;是某些人理解错了这个专业的诸多特性&#xff1f;转载于:https://blog.51cto.com/zhangbikai/166694

python笔记-1(import导入、time/datetime/random/os/sys模块)

python笔记-6&#xff08;import导入、time/datetime/random/os/sys模块&#xff09; 一、了解模块导入的基本知识 此部分此处不展开细说import导入&#xff0c;仅写几个点目前的认知即可。其它内容待日后有深入理解了再来细说 1、import可以导入的两种不同的内容 1.1 *.py文件…

嵌入式里如何给内存做压力测试?不妨试试memtester

大家好&#xff0c;我是痞子衡&#xff0c;是正经搞技术的痞子。今天痞子衡给大家介绍的是内存读写正确性压力测试程序memtester。在嵌入式系统中&#xff0c;内存(RAM)的重要性不言而喻&#xff0c;系统性能及稳定性都与内存息息相关。关于内存性能有很多个不同指标&#xff0…

一位嵌入式工程师的成长之路

有些事并不是因为有希望才去坚持&#xff0c;而是因为坚持了才有希望。分享一位嵌入式工程师的成长之路&#xff0c;希望能给朋友一点勉励。刚毕业找不着工作2008年大专毕业后&#xff0c;意气风发南下深圳找工作&#xff0c;想找一份电子技术员的工作&#xff0c;白天上班&…

分享GitHub上一些嵌入式相关的高星开源项目

关于GitHub&#xff0c;可能很多人误以为这是互联网人的专属&#xff0c;其实并不是&#xff0c;那上面嵌入式相关的开源项目是有很多的。现分享一些高星开源项目&#xff08;像RT-Thread、AWTK等大家都熟知的就不介绍了&#xff09;&#xff1a;Avem项目链接&#xff1a;https…

安全四部曲之一---***工具简单使用

所需工具&#xff1a;ASP小旋风5.asp(黑防)鸽子2006ie_xpsp2网马生成器##############Michael分割线################先给大家几个外网路由的地址你们进去捣乱捣乱,没事的,因为没有日志记录用户名密码 全都是admin,别搞太破坏哦如果改动里面的设置,记得把登录密码改了,否则他们…

第 8 章 配置listener监听器

第 8 章 配置listener监听器注意 还记得我们之前讲过的在线列表吗&#xff1f;第 4.2 节 “例子&#xff1a;在线列表”。我们曾经说过那个在线列表无法判断用户非法退出&#xff0c;很可能造成在线列表无限增大&#xff0c;现在我们可以用listener来弥补这一问题了。如果你不满…

集合(collection)

使用数组存放数据的弊端&#xff1a;长度不可变&#xff0c;而集合可以动态的添加值 java集合类不仅可以存储数量不等的多个对象&#xff0c;还可以保存具有映射关系的关联数组 /* * 1.存储对象可以考虑&#xff1a;①数组 ②集合 * 2.数组存储对象的特点&#xff1a;Student[]…

聊培训跳槽的事

■原来跟我沟通有压力这是我最近跟一个微信好友聊天才知道的事情&#xff0c;说跟我沟通还挺有压力的。实话说&#xff0c;我多少对这样的感觉感同身受&#xff0c;记得刚毕业那会&#xff0c;跟我师傅聊天说事情&#xff0c;总担心自己会说错了什么&#xff0c;有问题的时候也…

iOS开发针对对Masonry下的FPS优化讨论

今天博客的内容就系统的讨论一下Masonry对FSP的影响&#xff0c;以及如何更好的使用Masonry。如果你对iOS开发足够熟悉的话&#xff0c;那么对Masonry框架应该不陌生。简单的说&#xff0c;Masonry的诞生让AutoLayout的使用更为优雅&#xff0c;让控件的布局更为方便。使用辩证…

导师带学生卡Bug,这波操作~

本文来自知乎https://www.zhihu.com/question/455891395/answer/1847953969事情的起因是明尼苏达大学计算机科学&工程系的助理教授 Kangjie Lu 和他的 Ph. D. 学生 Qiushi Wu 的论文《通过伪君子提交在开源软件中隐蔽地引入漏洞的可行性》&#xff0c;据称将在 2021 年五月…

我想做个MP3,要怎么入手?

从我更新的频率&#xff0c;大家应该猜出来了&#xff0c;最近有点忙。忙完了设备调试的工作&#xff0c;又来了个画图的活。本来改动不大&#xff0c;但怎料...哎&#xff0c;一言难尽。今天回答一个粉丝的提问&#xff1a;看完这个回复&#xff0c;我依然没明白他到底想做哪部…