linux 提取网卡驱动,韦东山-Linux下移植wifi网卡驱动(RTL8723) - 百问网嵌入式问答社区...
硬件:韦老师的开发板IMX6ULL
内核版本:4.15(自己移植)
这次实验是在自己移植的内核上面加入RTL8723驱动
问题一:如何获取RTL8723驱动?
在韦老师给我们的程序中能够使用wifi,因此韦老师肯定是移植好了wifi驱动,我们可以直接在韦老师提供的内核中找到RTL8723的驱动文件。、
路径为:\drivers\net\wireless\rtl8723BU
所以我们要做的是把rtl8723BU文件夹拷贝到我们移植的内核中去。
问题二:如何使RTL8723驱动生效?
拷贝后我们就要让内核加载这个驱动,或者我们把它编译成模块。
因此我们就需要修改\drivers\net\wireless\这个目录下的Makefile和Kconfig文件
观察韦老师提供的内核我么可以发现只需要做简单的修改
在Kconfig文件中添加以下部分
source "drivers/net/wireless/rtl8723BU/Kconfig"
这样我们就可以在make menuconfig中配置这个驱动
在Makefile文件中添加以下部分
obj-$(CONFIG_RTL8723BU) += rtl8723BU/
问题三:接下来是不是要make menuconfig?
如题,我们接下来就make menuconfig
但是我们不仅要加载这个驱动,还需要配置内核使其支持wifi和usb,因为RTL8723是通过USB接在IMX6UL上面的
1.支持USB设备
2.支持WIFI设备
3.支持无线网络IEEE 802.11
最后是我们的RTL8723
我们选择将其编译为模块
路径位Device Drivers
Network device support
Wireless LAN
Realtek 8723B USB WiFi
然后我们编译内核
make XXXconfig(XXXconfig是你自己的配置文件)
make zImage
make modules就会生成8723bu.ko
问题四:如何加载?
把上一步生成的8723bu.ko和zImage文件放到板子上去
重启执行insmod 8723bu.ko
然后ifconfig -a
如果出现 wlan0则移植成功
当然一般是不会出现 wlan0,也就是说一般不会成功
问题五:为何不成功?
观察电路图就会发现wifi的3.3V受74HC595控制
拿电压表测量就会发现RTL8723没有电压,因此我们就要控制74HC595。
问题六:如何控制74HC595?
通过学习发现这个芯片控制也很简单。
于是我就自己写了一个驱动,编译,加载,一套操作下来RTL8723是有电了,但是USB芯片复位了。
也就是说由于我操作这个芯片导致USB复位。
解决方法肯定是在加载USB驱动前控制这个芯片。
韦老师是怎么做的呢。
观察设备树发现以下内容
也就是说我们发现内核好像使用了这个74HC595芯片
这下就简单了,我们全局搜索compatible属性
搜索 fairchild,74hc595 发现gpio-74x164.c这个文件下使用了这个节点
然后我们试着在probe函数下增加打印信息看内核启动是否用到这个文件。
启动发现并没有用到这个文件。
原因是没有将这个驱动配置进内核。
我们make menuconfig 观察一下
Device Drivers
GPIO Support
SPI GPIO expanders
发现74x164 serial-in/parallel-out 8-bits shift register 没有被选中
然后我们将其选中
同样
Device Drivers
SPI support
User mode SPI device driver support
将User mode SPI device driver support 选中
然后重新编译内核,启动加载,发现
printk("cd %s\n",__FUNCTION__);
这条消息执行了
因此我们就可以修改gpio-74x164.c这个文件达到在USB驱动加载之前控制74HC595的目的
幸运的是gpio-74x164.c这个文件帮我们做好了,我们可以直接使用,因为这个时候wifi已经有电了
加载wifi驱动
ifconfig -a
就会发现已经有wlan0了
问题七:如何测试WIFI?
移植wpa_supplicant
这个网上教程比较多所以就不做介绍了。
linux 提取网卡驱动,韦东山-Linux下移植wifi网卡驱动(RTL8723) - 百问网嵌入式问答社区...相关推荐
- Linux运行911,韦东山-Linux下编写GT911触摸驱动 - 百问网嵌入式问答社区
源码在最下面 问题一:资源获取Gt911数据手册 在韦老师给的资料里,路径为\06_Datasheet\Extend_modules\7寸LCD模块\电容触控芯片GT911 Datasheet_121 ...
- linux nand 坏块_韦东山-NAND 上面都是坏块怎么办啊? - 百问网嵌入式问答社区
好像还是不行,:~ 启动内核信息如下: Bad eraseblock 4073 at 0x03fa4000 Bad eraseblock 4074 at 0x03fa8000 Bad eraseblo ...
- 韦东山 android 淘宝,韦东山-android音频子系统中audio_policy.conf的usb声卡理解 - 百问网嵌入式问答社区...
第四期视频->音频系统->5-(4/4)_项目实战1_耳麦拔插_切换声音通道流程 1.韦老师讲的声卡是指的音频编解码芯片(比如tiny4412上面指的是WM8960编解码芯片)? usb声 ...
- android ramdisk.img 编译,韦东山-tiny4412(android 5.0.2)编译生成的 ramdisk.img 无法启动 - 百问网嵌入式问答社区...
tiny4412(android 5.0.2)编译生成的 ramdisk.img 无法启动 [ 3.760726] dm962x: [Analysis.2] 0xF2, D[5] 0 EP1: ...
- 韦东山Linux视频第1期
我用阿里云盘分享了「韦东山Linux视频第1期 S3C6410版本」,你可以不限速下载
- Mastering Embedded Linux Programming 学习 (五)在百问网157开发板上,解决网络配置问题
Mastering Embedded Linux Programming 学习 (五)在百问网157开发板上,解决网络配置问题 思考.参考 搜索发现,需要配置设备树,参考这个链接 修改设备树 找到百问 ...
- Mastering Embedded Linux Programming 学习 (二)在百问网157开发板上,编译构建u-boot
Mastering Embedded Linux Programming 学习 (二)在百问网157开发板上,编译构建u-boot 一.下载u-boot源码 git clone https://git ...
- Mastering Embedded Linux Programming 学习 (三)在百问网157开发板上,编译构建linux内核
Mastering Embedded Linux Programming 学习 (三)在百问网157开发板上,编译构建linux内核 一.下载内核源码 wget http://ftp.sjtu.edu ...
- 韦东山百问网freeRTOS教程
欢迎阅读韦东山百问网freeRTOS教程! - 韦东山百问网freeRTOS教程 文档 (100ask.net)
最新文章
- 裴健等9名华人当选加拿大皇家学会院士
- 给你的博客添加个看电影的频道
- Google搜索技巧-从入门到精通(从此学习进步、工作顺心)
- 一步步实施 DevOps (三)
- python删除符合条件的行_这十道经典Python笔试题,全做对算我输
- [改善Java代码]若有必要,使用变长数组
- vue radio双向绑定_Vue 双向绑定
- scala基础之函数和闭包
- 如何通俗易懂地解释卷积?(2)
- ffmpeg使用说明书
- 空气质量监测管理系统
- 手游封包辅助开发教程
- 学生信息管理系统—流程图
- python给pdf加图片签名_如何在PDF中添加文本和图像(例如签名)?
- Heartbeat高可用软件服务--1.Heartbeat介绍(2)
- 花18块买了腾讯的幻核 NFT,里面到底有什么?
- 【转载】损失函数 - 交叉熵损失函数
- DOS中del和rd的区别
- 基于FPGA的HDB3编译码verilog实现,结合MATLAB进行辅助验证
- 李宏毅机器学习课程作业-HW1