硬件:韦老师的开发板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) - 百问网嵌入式问答社区...相关推荐

  1. Linux运行911,韦东山-Linux下编写GT911触摸驱动 - 百问网嵌入式问答社区

    源码在最下面 问题一:资源获取Gt911数据手册 在韦老师给的资料里,路径为\06_Datasheet\Extend_modules\7寸LCD模块\电容触控芯片GT911 Datasheet_121 ...

  2. linux nand 坏块_韦东山-NAND 上面都是坏块怎么办啊? - 百问网嵌入式问答社区

    好像还是不行,:~ 启动内核信息如下: Bad eraseblock 4073 at 0x03fa4000 Bad eraseblock 4074 at 0x03fa8000 Bad eraseblo ...

  3. 韦东山 android 淘宝,韦东山-android音频子系统中audio_policy.conf的usb声卡理解 - 百问网嵌入式问答社区...

    第四期视频->音频系统->5-(4/4)_项目实战1_耳麦拔插_切换声音通道流程 1.韦老师讲的声卡是指的音频编解码芯片(比如tiny4412上面指的是WM8960编解码芯片)? usb声 ...

  4. 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: ...

  5. 韦东山Linux视频第1期

    我用阿里云盘分享了「韦东山Linux视频第1期 S3C6410版本」,你可以不限速下载

  6. Mastering Embedded Linux Programming 学习 (五)在百问网157开发板上,解决网络配置问题

    Mastering Embedded Linux Programming 学习 (五)在百问网157开发板上,解决网络配置问题 思考.参考 搜索发现,需要配置设备树,参考这个链接 修改设备树 找到百问 ...

  7. Mastering Embedded Linux Programming 学习 (二)在百问网157开发板上,编译构建u-boot

    Mastering Embedded Linux Programming 学习 (二)在百问网157开发板上,编译构建u-boot 一.下载u-boot源码 git clone https://git ...

  8. Mastering Embedded Linux Programming 学习 (三)在百问网157开发板上,编译构建linux内核

    Mastering Embedded Linux Programming 学习 (三)在百问网157开发板上,编译构建linux内核 一.下载内核源码 wget http://ftp.sjtu.edu ...

  9. 韦东山百问网freeRTOS教程

    欢迎阅读韦东山百问网freeRTOS教程! - 韦东山百问网freeRTOS教程 文档 (100ask.net)

最新文章

  1. 裴健等9名华人当选加拿大皇家学会院士
  2. 给你的博客添加个看电影的频道
  3. Google搜索技巧-从入门到精通(从此学习进步、工作顺心)
  4. 一步步实施 DevOps (三)
  5. python删除符合条件的行_这十道经典Python笔试题,全做对算我输
  6. [改善Java代码]若有必要,使用变长数组
  7. vue radio双向绑定_Vue 双向绑定
  8. scala基础之函数和闭包
  9. 如何通俗易懂地解释卷积?(2)
  10. ffmpeg使用说明书
  11. 空气质量监测管理系统
  12. 手游封包辅助开发教程
  13. 学生信息管理系统—流程图
  14. python给pdf加图片签名_如何在PDF中添加文本和图像(例如签名)?
  15. Heartbeat高可用软件服务--1.Heartbeat介绍(2)
  16. 花18块买了腾讯的幻核 NFT,里面到底有什么?
  17. 【转载】损失函数 - 交叉熵损失函数
  18. DOS中del和rd的区别
  19. 基于FPGA的HDB3编译码verilog实现,结合MATLAB进行辅助验证
  20. 李宏毅机器学习课程作业-HW1

热门文章

  1. 局域网实现pc间使用ftp传输文件
  2. vue的生命周期 (11个钩子函数)看了都能懂的
  3. 挺好农牧亮相(2020)科大讯飞1024全球开发者节:用AIOT重新定义未来智慧畜牧
  4. 使用C语言写一个三子棋
  5. 使用mysql workbench新建数据库
  6. 平行空间--打造自己的开场动画
  7. php 爬课程表信息,Ruby爬取教务系统生成课程表
  8. 实战篇:Linux7 安装 Oracle 19C RAC 详细图文教程
  9. log4j日志打印详解实战
  10. c语言程序设计模板图片,C语言程序设计课设报告_模板(样例).doc