IMX6ULL开发板Linux_WIFI驱动实验

发布者:闪耀星空最新更新时间:2025-03-05 来源: cnblogs关键字:Linux  WIFI驱动 手机看文章 扫描二维码
随时随地手机看文章

1.在迅为i.MX6ULL开发板上使用的是 usb 接口的 RTL8723 wifi 模块,原理图如下所示:

可以看到 RTL8723 模块的接口非常简单,只有 DP1 和 DM1 连接到 usb HUB 芯片上,就可以完成通信电路
RTL8723 是 realtek 公司的 wifi 芯片,已经提供了 wifi 驱动源码,就不需要我们自己去编写了,只需要将提
供的 wifi 驱动源码添加到 Linux 内核中进行编译就可以了。

1.1在Linux内核中添加wifi驱动
首先获取 wifi 驱动源码,放到 Linux 内核 drivers/net/wireless 目录下,如下所示:

rtl8723BU 目录下内容如下所示:

其中 Kconfig 文件是 rtl8723 驱动的配置文件,这样可以通过 Linux 内核图形化配置界面来选择是否编译
WIFI 驱动,Kconfig 文件内容如下所示:
config RTL8723BU
tristate 'Realtek 8723B USB WiFi'
depends on USB
---help---
Help message of RTL8723BU
当添加完 rtl8723 wifi 驱动时,需要修改上一级的 Kconfig 和 Makefile。
修改 drivers/net/wireless/Kconfig,添加如下内容:
source 'drivers/net/wireless/rtl8723BU/Kconfig'
添加完成后如下所示:

添加完成后,在 Linux 内核的驱动配置界面上才会出现 rtl8723 的配置选项。
修改 drivers/net/wireless/Makefile 文件,添加如下内容:
obj-$(CONFIG_RTL8723BU) += rtl8723BU/
修改后如下所示:


1.2  配置 Linux 内核
添加好 rtl8723 wifi 驱动并修改完配置文件后,需要在 Linux 内核中在进行配置。
1、配置支持 USB 设备
Linux 内核配置路径如下:
Device Drivers --->

    • USB support --->
      <*> EHCI HCD (USB 2.0) support
      <*> ChipIdea Highspeed Dual Role Controller

    • ChipIdea device controller

    • ChipIdea host controller
      配置完成如下图所示:



      2、配置支持 wifi 设备
      Linux 内核配置路径如下:
      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
      Linux 内核配置路径如下:

    • Networking support --->
      -*- Wireless --->

    • cfg80211 wireless extensions compatibility
      <*> Generic IEEE 802.11 Networking Stack (mac80211)
      配置完成如下图所示:



      4、配置 rtl8723 wifi 驱动
      Linux 内核配置路径如下:
      Device Drivers --->

    • Network device support --->

    • Wireless LAN --->
      <*> Realtek 8723B USB WiFi
      配置结果如图所示:


      直接将 rtl8723 wifi 模块的驱动编译到内核中去。
      以上 Linux 内核配置完成后,重新编译内核生成 zImage,使用新的 zImage 启动开发板。

      1.3 rtl8723 wifi  模块驱动测试
      使用新的 zImage 镜像启动开发板,系统启动过程中会有如下信息打印:

      上图说明在 Linux 系统启动过程中使用了 rtl8723 wifi 模块的驱动程序。当启动完成驱动后使用“ifconfig -a”
      命令查看 wlan 网卡是否存在,结果如下图所示:


      可以看到存在一个 wlan0 设备,这个就是 rtl8723 wifi 模块对应的网卡设备。说明驱动程序测试正常,但是
      如果要联网的话,还需要第三方组件才可以。下面就来看一下如何使用第三方组件进行联网测试。


关键字:Linux  WIFI驱动 引用地址:IMX6ULL开发板Linux_WIFI驱动实验

上一篇:iTOP-imx6开发板之QtE必备知识介绍
下一篇:FFmpeg移植-迅为IMX6ULL开发板

推荐阅读最新更新时间:2026-03-25 11:11

IMX6ULL开发板Linux设备树实验
在上一节迅为IMX6ULL开发板已经对DTS的语法做了比较详细的介绍,在本节中根据前面讲解的语法,从头到尾编写一个小型的设备树文件。我们会以一个虚拟的设备作为参考,提前假设一些外部设备和功能。当然这个虚拟的设备没有任何的意思,只是为了复习掌握前面学习的设备树语法。在实际产品的开发过程中,我们不需要从头编写一个dts设备树文件,一般都是使用soc厂商提供的dts文件,我们只需要根据自己的实际情况修改添加自己的内容即可。 下面这个假设的设备,制造商为“Acme”,并命名为“Coyote's Revenge”,具体功能如下: l 一个32位ARM CPU l 处理器本地总线连接到内存映射的串行口、spi 总线控制器、i2c
[单片机]
迅为IMX6ULL开发板Linux驱动初探-最简单的设备驱动-helloworld
经过前面的学习,我们了解了驱动开发的框架,本章节将带领大家实验操作,写最简单的驱动-helloworld。 Linux 设备驱动会以内核模块的形式出现,因为 linux 内核的整体架构就非常庞大,包含的组件也非常多,如果把所有的功能都编译到 linux 内核中会使得内核非常臃肿,为了解决这个问题,更方便地新增和删除功能,linux 提供了这样的机制,这种机制被称为模块。为了大家对模块有一个感性的认识,我们先来看一个最简单的驱动-helloworld。 驱动分为四个部分:  头文件  驱动模块的入口函数和出口函数  声明信息  功能实现 我们在 windows 上面新建一个 helloworld.c 文件,这里使用 sour
[单片机]
迅为<font color='red'>IMX6ULL</font>开发板<font color='red'>Linux</font><font color='red'>驱动</font>初探-最简单的设备<font color='red'>驱动</font>-helloworld
迅为IMX6ULL开发板Linux 4G通信实验
前面的章节中学习了如何使用有线网络或者使用 wifi,但是使用无线网络或者 wifi 有许多环境限制,这种时候就可以使用 4G 模块来上网。在本章中学习一下如何使用 4G 模块实现上网功能。 56.1 4G 网络连接 对于 嵌入式 Linux 而言,4G 网络连接是一个比较容易实现的功能,大多数的 4G 模块接口都是 MiniPCIE接口,但是深入了解一下就会发现,4G 模块的通信接口都是 USB ,所以 4G 模块的驱动就是 USB 驱动,只要 USB 驱动正常,4G 模块在硬件上就能正常通信。下面看一下 4G 模块的硬件原理图: 在原理图中,U25 是 4G 模块的 MiniPCIE 接口,然后通信引脚会接到 U15 的
[单片机]
迅为<font color='red'>IMX6ULL</font>开发板<font color='red'>Linux</font> 4G通信实验
IMX6ULL学习笔记】十二、Linux新字符设备
一、新字符设备驱动原理 1.1 分配和释放设备号 使用 register_chrdev 函数注册字符设备的时候只需要给定一个主设备号即可,但是这样会带来两个问题: ①、需要我们事先确定好哪些主设备号没有使用。 ②、会将一个主设备号下的所有次设备号都使用掉 解决办法就是在要使用设备号的时候向 Linux 内核申请。 如果没有指定设备号的话就使用如下函数来申请设备号,定义在 /fs/char_dev.c 中文件中: int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, const char *name) 在注册字符设备之前先申请一个设备号
[单片机]
IMX6ULL学习笔记】十四、Linux调用设备树
一、设备树在系统中的体现 Linux 内核启动的时候会解析设备树中各个节点的信息,并且在根文件系统的 /proc/device/tree 目录下根据节点名字创建不同文件夹,如图所示: 上图就是目录/proc/device-tree 目录下的内容,/proc/device-tree 目录下是根节点“/”的所有属性和子节点。 1、根节点“/”各个属性 根节点属性属性表现为一个个的文件(图中细字体文件),如图中的“#address-cells”、“#size-cells”、“compatible”、“model”和“name”这 5 个文件,它们在设备树中就是根节点的 5 个属性。可以输入 cat 命令来查看 model 和
[单片机]
【<font color='red'>IMX6ULL</font>学习笔记】十四、<font color='red'>Linux</font>调用设备树
迅为IMX6ULL开发板Qt for Android搭建开发环境
搭建开发环境 1.安装 JDK,选择默认路径,一路点击下一步即可。 安装完成后进入相应的路径查看: 需要注意的问题: (1)建议使用我们提供的版本,如果自己下载可能会出现问题。 (2)建议大家安装到 C 盘下面,不要有中文路径。 2.安装 sdk 和 ndk,直接解压即可,解压的路径不要有中文路径。我这里是解压到了 JDK 的安装路径, 如果 C 盘空间不够可以解压到其他盘,但要记住位置,下面需要用到。 3.配置环境 打开 QTCreator,打开工具- 选项,选择如下图内容: 设置 JDK,SDK.NDK 的路径,如下图: 设置完成以后,我们点击 apply 和 ok 即可。
[单片机]
迅为<font color='red'>IMX6ULL</font>开发板Qt for Android搭建开发环境
迅为IMX6ULL开发板Buildroot文件系统构建-配置Busybox
Buildroot 也是基于 busybox 制作的文件系统,所以我们 buildroot 里的 busybox 也可以进行配置。首先我们在 buildroot 源码目录下,使用命令“ make busybox-menuconfig”,如下图所示: 在这里我们可以看到 busybox 版本是 1.29.3,然后就是我们之前看到过得 busybox 配置界面了,用户可根据自己需要配置。如下图所示: 然后我们使用命令“make busybox”即可单独编译 busybox。如下图所示: 最后编译完成以后使用命令“make”重新编译 buildroot,主要是对其进行打包,如下图所示: 重新编译完成以后查看 output/ima
[单片机]
迅为<font color='red'>IMX6ULL</font>开发板Buildroot文件系统构建-配置Busybox
迅为IMX6ULL开发板交叉编译器的安装和使用
本章内容对应视频讲解链接(在线观看): ignore_js_op 我们写了 linux 上第一个 c 程序 heollo world ,是使用 gcc 编译器进行代码的编译,编译得到的可执行文件只能在 X86 结构的 PC 上运行,我们来看下,在我的 ubuntu 的 test 目录下有一个 hello.c ,这个程序也非常简单,就是一个 hello world ,我们来编译一下,然后运行下可执行文件,这个可执行文件是可以在 PC上运行的。如下图所示。 然后我们使用 file 命令来看下这个文件,这个文件是可以在 X86 上运行的,但是它不能在 ARM 上运行,因为它这里写的是 X86。如下图所示。 如果我们想在 ARM 上
[单片机]
迅为<font color='red'>IMX6ULL</font>开发板交叉编译器的安装和使用
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved