精华内容
下载资源
问答
  • LinuxWiFi驱动开发——WiFi基础知识解析(转)
    千次阅读
    更多相关内容
  • 介绍am33xx+android平台,bcm4334模块的驱动框架,收悉wifi驱动工作流程
  • Linux内核WIFI驱动详细源码,Linux下wifi实现,通过它可以学习无线相关知识,用于实践。
  • Linux驱动开发|WiFi驱动

    千次阅读 2022-01-14 17:30:04
    WiFi驱动

    WiFi驱动

    一、WiFi驱动添加与编译

    I.MX6U-ALPHA 开发板目前支持两种接口的 WIFI:USB 和 SDIO,其中 USB WIFI 使用的芯片为 RTL8188EUS 或 RTL8188CUS, SDIO 接口的 WIFI 使用的芯片为 RTL8189FS。这两个都是 realtek 公司出品的 WIFI 芯片。 realtek 公司已经提供了 WIFI 驱动源码,因此只需要将 WIFI 驱动源码添加 到 Linux 内核中,然后通过图形化界面配置,将其编译成模块即可

    1.1 向内核添加 WIFI 驱动
    • rtl81xx 驱动文件: realtek 公司提供驱动文件 realtek 目录下存放着 RTL8188EUS 和 RTL8189FS 两个芯片的驱动源码
      在这里插入图片描述

    Kconfig 是 WIFI 驱动的配置界面文档,这样可以通过 Linux 内核图形化配置界面来选择是否编译 WIFI 驱动, 文件内容如下所示

    menuconfig REALTEK_WIFI
    	tristate "Realtek wifi"
    
    if REALTEK_WIFI
    
    choice
    	prompt "select wifi type"
    	default RTL8189FS
    
    config RTL8189FS
    	depends on REALTEK_WIFI
    	tristate "rtl8189fs/ftv sdio wifi"
    
    config RTL8188EUS
    	depends on REALTEK_WIFI
    	tristate "rtl8188eus usb wifi"
    
    config RTL8192CU
    	depends on REALTEK_WIFI
    	tristate "Realtek 8192C USB WiFi"
    
    endchoice
    endif
    

    Makefile 文件内容如下所示

    obj-$(CONFIG_RTL8188EUS) += rtl8188EUS/
    obj-$(CONFIG_RTL8189FS) += rtl8189FS/
    obj-$(CONFIG_RTL8192CU) += rtl8192CU/
    
    • 删除内核自带的 RTL8192CU 驱动:内核自带了 RTL8192CU/8188CUS 驱动,但是测试后发现自带的驱动不稳定,因此将其屏蔽

    打开 drivers/net/wireless/rtlwifi/Kconfig,找到下面所示内容然后删除掉:

    config RTL8192CU
    tristate "Realtek RTL8192CU/RTL8188CU USB Wireless Network Adapter"
    depends on USB
    select RTLWIFI
    select RTLWIFI_USB
    select RTL8192C_COMMON
    ---help---
    This is the driver for Realtek RTL8192CU/RTL8188CU 802.11n USB
    wireless network adapters.
    
    If you choose to build it as a module, it will be called rtl8192cu
    

    打开 drivers/net/wireless/rtlwifi/Makefile,找到下面所示内容然后删除掉:

    obj-$(CONFIG_RTL8192CU) += rtl8192cu/
    
    • 将 rtl81xx 驱动添加到 Linux 内核中:将 realtek 整个目录拷贝至内核源码中的 drivers/net/wireless 目录下
    • 修改 drivers/net/wireless/Kconfig:打开 Kconfig 文件,在末尾加入下面内容
    source "drivers/net/wireless/realtek/Kconfig
    
    • 修改 drivers/net/wireless/Makefile:打开 Makefile 文件,在末尾加入下面内容
    obj-y += realtek/
    
    1.2 配置内核

    在编译 RTL8188 和 RTL8189 驱动之前需要先配置 Linux 内核

    • 配置 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 device controller
    				-> [*] ChipIdea host controller
    
    • 配置支持 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
    
    • 配置支持 IEEE 802.11
    -> Networking support
    	-> -*- Wireless
    		-> [*] cfg80211 wireless extensions compatibility
    		-> <*> Generic IEEE 802.11 Networking Stack (mac80211)
    

    配置好以后重新编译 Linux 内核,之后使用新的 zImage 启动系统

    1.3 编译WiFi驱动
    • 执行make menuconfig命令,打开 Linux 内核配置界面,然后按照如下路径选择将 rtl81xx 驱动编译为模块:
    -> Device Drivers
    	-> Network device support (NETDEVICES [=y])
    		-> Wireless LAN (WLAN [=y])
    			-> Realtek wifi (REALTEK_WIFI [=m])
    				-> rtl8189ftv sdio wifi
    				-> rtl8188eus usb wifi
    				-> Realtek 8192C USB WiFi
    

    在这里插入图片描述

    • 执行make modules -j12命令,将上面选中的选项编译为模块
    • 编译完成后,rtl8188EUS、 rtl8189FS 和 rtl8192CU 文件夹下分别生成 8188eu.ko、8189fs.ko 和 8192cu.ko 三个.ko 文件,将这三个文件拷贝至开发板/lib/modules/4.1.15 目录下
    1.4 驱动加载测试

    将 RTL8188 WIFI 模块插到开发板的 USB HOST 接口上。进入到目录 lib/modules/4.1.15 中,输入如下命令加载驱动模块

    depmod 				//第一次加载驱动的时候需要运行此命令
    modprobe 8188eu.ko 	//RTL8188EUS 模块加载 8188eu.ko 模块
    modprobe 8192cu.ko 	//RTL8188CUS 模块加载 8192cu.ko 模块
    

    驱动加载成功,如下图所示:
    在这里插入图片描述
    输入“ifconfig -a”命令,查看 wlanX(X=0….n)网卡是否存在
    在这里插入图片描述

    二、wireless tools工具

    驱动测试正常,但是 WiFi 要想联网,需要移植一些其他第三方组件,否则无法连接路由器,接下来我们就移植这些第三方组件

    wireless tools 是操作 WIFI 的工具集合,包括以下工具:
    ①、 iwconfig:设置无线网络相关参数
    ②、 iwlist:扫描当前无线网络信息,获取 WIFI 热点
    ③、 iwspy:获取每个节点链接的质量
    ④、 iwpriv:操作 WirelessExtensions 特定驱动
    ⑤、 ifrename:基于各种静态标准命名接口

    • 将 iwlist_for_visteon-master.tar.bz2 源码拷贝到 Ubuntu 中创建的 tool 目录下
    • 解压后,进入该文件夹
    tar -vxjf iwlist_for_visteon-master.tar.bz2
    cd iwlist_for_visteon-master
    
    • 修改 Makefile 中的 CC、 AR 和 RANLIB 这三个变量

    在这里插入图片描述

    • 修改完成以后使用如下命令编译
    make clean 	//先清理一下工程
    make 		//编译
    
    • 编译完成后会在当前目录下生成 iwlist、 iwconfig、 iwspy、 iwpriv、 ifrename 这 5 个工
      具,以及 libiw.so.29 库文件。将这 5 个工具拷贝到开发板根文件系统下的 /usr/bin 目录中,将 libiw.so.29 库文件拷贝到开发板根文件系统下的 /usr/lib 目录中,命令如下:
    sudo cp iwlist iwconfig iwspy iwpriv ifrename /home/andyxi/linux/nfs/rootfs/usr/bin/ -f
    sudo cp libiw.so.29 /home/andyxi/linux/nfs/rootfs/usr/lib/ -f
    
    • wireless tools 工具测试

    输入 iwlist 命令,如果输出下图所示信息就表明 iwlist 工作正常

    在这里插入图片描述

    加载 RTL8188 驱动模块 8188eu.ko,驱动加载成功以后在打开 wlan0 网卡

    modprobe 8188eu.ko 	//加载 RTL8188 驱动模块
    ifconfig wlan0 up 	//打开 wlan0 网卡
    

    wlan0 网卡打开后就可以使用 iwlist 命令查找当前环境下的 WIFI 热点信息,即无线路由器

    iwlist wlan0 scan
    

    要想连接到指定的 WIFI 热点上就需要用到 wpa_supplicant 工具,下面介绍如何移植此工具

    三、wpa_supplicant工具

    3.1 openssl 移植

    wpa_supplicant 依赖于 openssl,因此需要先移植 openssl

    在 tool 目录下新建 “openssl” 文件夹,用于存放 openssl 的编译结果

    mkdir /home/andyxi/linux/tool/openssl
    

    将 openssl 源码拷贝到 Ubuntu 中创建的 tool 目录下,然后将其解压

    tar -vxzf openssl-1.1.1d.tar.gz
    

    进入到解压出来的 openssl-1.1.1d 目录中,进行配置、编译和安装

    ./Configure linux-armv4 shared no-asm 
    --prefix=/home/andyxi/linux/tool/openssl
    CROSS_COMPILE=arm-linux-gnueabihf-	//配置成功后,会生成Makefile
    make			//编译
    make install	//安装
    

    安装完成后,openssl 目录下会生成 lib 等5个文件夹,将 lib 目录下的 libcrypto 和 libssl 库拷贝到开发板根文件系统中的 /usr/lib 目录下

    sudo cp libcrypto.so* /home/andyxi/linux/nfs/rootfs/lib/ -af
    sudo cp libssl.so* /home/andyxi/linux/nfs/rootfs/lib/ -af
    
    3.2 libnl 库移植

    wpa_supplicant 也依赖于 libnl,因此还需要移植一下 libnl 库

    编译 libnl 之前先安装 biosn 和 flex,命令如下:

    sudo apt-get install bison
    sudo apt-get install flex
    

    在 tool 目录下新建 “libnl” 文件夹,用于存放 libnl 的编译结果

    mkdir /home/andyxi/linux/tool/libnl
    

    将 libnl 源码拷贝到 Ubuntu 中创建的 tool 目录下,然后将其解压

    tar -vxzf libnl-3.2.23.tar.gz
    

    进入到解压出来的 libnl-3.2.23 目录中,进行配置、编译和安装

    ./configure --host=arm-linux-gnueabihf 
    --prefix=/home/andyxi/linux/tool/libnl/		//配置
    make -j12		//编译
    make install	//安装
    

    安装完成后,libnl 目录下会生成 lib 等5个文件夹,将 lib 目录下的所有文件拷贝到开发板根文件系统中的 /usr/lib 目录下

    sudo cp lib/* /home/andyxi/linux/nfs/rootfs/usr/lib/ -rf
    
    3.3 wpa_supplicant 移植

    将 wpa_supplicant 源码拷贝到 Ubuntu 中创建的 tool 目录下,然后将其解压

    tar -vxzf wpa_supplicant-2.7.tar.gz
    

    进入到解压出来的 wpa_supplicant-2.7 目录中,再进入wpa_supplicant 目录下,然后进行配置: 将 defconfig 文件拷贝一份并重命名为.config

    cd wpa_supplicant/
    cp defconfig .config
    

    打开.config 文件,在里面指定交叉编译器、 openssl、 libnl 库和头文件路径,添加如下内容:

    CC = arm-linux-gnueabihf-gcc
    
    #openssl 库和头文件路径
    CFLAGS += -I/home/andyxi/linux/tool/openssl/include
    LIBS += -L/home/andyxi/linux/tool/openssl/lib -lssl -lcrypto
    
    #libnl 库和头文件路径
    CFLAGS += -I/home/andyxi/linux/tool/libnl/include/libnl3
    LIBS += -L/home/andyxi/linux/tool/libnl/lib
    

    在这里插入图片描述

    .config 文件配置好以后就可以编译 wpa_supplicant 了

    export PKG_CONFIG_PATH=/home/andyxi/linux/tool/libnl/lib/pkgconfig:$PKG_CONFIG_PATH 
    //指定 libnl 库 pkgconfig 包位置
    make -j12 //编译
    

    编译完成以后就会在本目录下生成 wpa_supplicant 和 wpa_cli 这两个软件,将这两个软件拷贝至开发板根文件系统的 /usr/bin 目录中

    sudo cp wpa_cli wpa_supplicant /home/andyxi/linux/nfs/rootfs/usr/bin/ -f
    

    重启开发板,输入“wpa_supplicant -v” 命令查看版本号,正常的话就会打印出版本号

    四、WiFi联网测试

    联网步骤如下:

    – 插上 WiFi 模块,如板子已经集成就忽略该步
    – 加载 RTL8188 驱动模块
    – 使用 ifconfig 命令打开对应的无线网卡,比如 wlan0 或 wlan1……
    – 无线网卡打开以后使用 iwlist 命令扫描一下当前环境下的 WiFi 热点
    – 使用 wpa_supplicant 将 WIFI 连接到指定的热点上,实现联网功能

    • 扫描到 WIFI 热点后就可以连接了,在开发板根文件系统的/etc 目录下创建一个名为“wpa_supplicant.conf”的配置文件,此文件用于配置要连接的 WiFi 热点以及秘密
    ctrl_interface=/var/run/wpa_supplicant
    ap_scan=1
    network={
     ssid="xxxx"		//要连接的WIFI热点名字
     psk="xxxxxxxx"	//要连接的WIFI热点密码
    }
    //注意:wpa_supplicant.conf 文件对于格式要求比较严格
    //“=”前后一定不能有空格,不可以用TAB键来缩进
    //ssid和psk行的缩进要采用空格,而不是TAB建
    
    • 在开发板根文件系统下创建一个 “/var/run/wpa_supplicant” 目录
    mkdir /var/run/wpa_supplicant -p
    
    • 输入以下命令,让 RTL8188 USB WIFI 连接到热点上
    wpa_supplicant -D wext -c /etc/wpa_supplicant.conf -i wlan0 &
    
    • 连接上 WIFI 热点后会输出如下图所示的信息
      在这里插入图片描述
    • 设置 wlan0 的 IP 地址,使用 udhcpc 命令从路由器申请 IP 地址,IP 地址获取成功以后会输出如下图所示的信息
    udhcpc -i wlan0 	//从路由器获取 IP 地址
    

    在这里插入图片描述

    • 可以使用 ifconfig wlan0 命令查看一下 wlan0 网卡的详细信息
    • 最后通过 ping 命令来测试USB WIFI 是否工作正常
    ping -I 192.168.1.126 www.baidu.com
    //-I 是指定执行ping操作的网卡IP地址
    
    展开全文
  • 一、什么是wifi 模块百度百科上这样定义:Wi-Fi模块又名串口Wi-Fi模块,属于物联网传输层,功能是将串口或TTL电平转为符合Wi-Fi无线网络通信标准的嵌入式模块,内置无线网络协议IEEE802.11b.g.n协议栈以及TCP/IP协议...

    一、什么是wifi 模块

    百度百科上这样定义:

    Wi-Fi模块又名串口Wi-Fi模块,属于物联网传输层,功能是将串口或TTL电平转为符合Wi-Fi无线网络通信标准的嵌入式模块,内置无线网络协议IEEE802.11b.g.n协议栈以及TCP/IP协议栈。传统的硬件设备嵌入Wi-Fi模块可以直接利用Wi-Fi联入互联网,是实现无线智能家居、M2M等物联网应用的重要组成部分。

    二、WiFi 模块主要分类

    Wi-Fi模块可分为三类:

    a – 通用Wi-Fi模块

    比如手机、笔记本、平板电脑上的USBorSDIO接口模块,Wi-Fi协议栈和驱动是在安卓、Windows、iOS的系统里跑的,是需要非常强大的CPU来完成应用;

    b – 路由器方案Wi-Fi模块

    典型的是家用路由器,协议和驱动是借助拥有强大Flash和Ram资源的芯片加Linux操作系统;

    c – 嵌入式Wi-Fi模块

    32位单片机,内置Wi-Fi驱动和协议,接口为一般的MCU接口如UART等。适合于各类智能家居或智能硬件单品。

    我觉得这里有必要了解一下普通Wi-Fi模块与嵌入式Wi-Fi模块的区别:

    我们都知道笔记本、手机、平板电脑等这类产品具有强大的CPU和大容量的存储器进行网络通信数据的处理和存储,因此在使用WIFI时不需要额外的MCU,完全借助其高速处理器和庞大的软件系统。但是对于家电,仪表,LED灯等智能家居产品,因为该类产品的主控芯片可能是成本很低、功能简单的MCU,因此这类产品无法支持普通Wi-Fi的功能。同时,还有一个重要的原因就是普通WIFI的功耗比较高,而嵌入式WIFI在功耗上做了很大的改善,比较适合对功耗要求高的无线家电设备。

    基于上述原因,各个无线厂商相继推出了嵌入式WIFI模块。嵌入式WIFI模块的特点是软硬件集成度高,整个嵌入式WIFI模块集成了射频收发器、MAC、WIFI驱动、所有WIFI协议、无线安全协议、一键连接等。总之,一句话:嵌入式WIFI应物联网而生!

    下面我们针对嵌入式WIFI与普通WIFI来进行对比,通过下表的对比,我们大致上可以理解到什么是嵌入式WIFI

    嵌入式WIFI模块

    普通WIFI模块

    适用范围

    无线家电、仪表、智能灯泡等智能家居设备

    笔记本、手机、平板电脑等

    主控芯片

    模块上集成的MCU

    x86 CPU、ARM等高速微处理器

    接口

    UART、SPI、I2C、SDIO

    USB、SDIO

    功耗

    产品

    TI的CC3200系列、MXCHIP系列、ASIX系列

    、Atheros的HF-LPA系列等

    瑞昱RTL81xx系列、威盛VT系列、雷凌RT系列、

    博通BCM、Marvell、高通Atheros等

    开发设计

    内置WIFI驱动、MAC、WIFI协议、无线安全协议等,

    所有的网络软件封装成一个UART或SPI接口的设备,

    使用简单,只需要往UART或者SPI收发数据即可。

    从整体软件层面上看,不属于网络设备。

    需要在主机添加WIFI驱动、同时需要依赖主机的网络协议栈等软件平台资源,

    从整体软件层面上看,属于网络设备,使用时需要遵循网络相关的协议。

    下面是笔者所用一款USB接口的WiFi模块原理图:

    62ee73667352996f39b32a7c52f7f6bf.png

    三、WiFi模块主要功能

    Wifi 模块 包括两种类型的拓扑形式:基础网(Infra)和自组网(Adhoc),要说明无线网络的拓扑形式,首先要了解两个基本概念:

    a – AP

    也就是无线接入点,是一个无线网络的创建者,是网络的中心节点。一般家庭或办公室使用的无线路由器就是一个AP。

    f3f56345b4016cb512dd953f1fe9b5ea.png

    b – STA站点

    每一个连接到无线网络中的终端(如笔记本电脑、PDA及其它可以联网的用户设备)都可称为一个站点。

    f957af77d804aeb1f4fb426e7181341c.png

    1、基于AP组建的基础无线网络(Infra)

    Infra:也称为基础网,是由AP创建,众多STA加入所组成的无线网络,这种类型的网络的特点是AP是整个网络的中心,网络中所有的通信都通过AP来转发完成。

    附:

    笔者所用WiFi模块有两种系统设置:无线网类型AP 和Infra

    AP是将wifi模块当路由器使用,这样手机和电脑就可以直接连接wifi模块了。

    Infra 是将wifi模块当基础设备使用,用于连接别的路由器。

    2、基于自组网的无线网络(Adhoc)

    Adhoc:也称为自组网,是仅由两个及以上STA自己组成,网络中不存在AP,这种类型的网络是一种松散的结构,网络中所有的STA都可以直接通信。

    3、安全机制

    本模块支持多种无线网络加密方式,能充分保证用户数据的安全传输,包括:WEP64/WEP128/ TKIP/CCMP(AES) WEP/WPA-PSK/WPA2-PSK。

    4、快速联网

    本模块支持通过指定信道号的方式来进行快速联网。在通常的无线联网过程中,会首先对当前的所有信道自动进行一次扫描,来搜索准备连接的目的AP创建的(或Adhoc)网络。本模块提供了设置工作信道的参数,在已知目的网络所在信道的条件下,可以直接指定模块的工作信道,从而达到加快联网速度的目的。

    5、地址绑定

    本模块支持在联网过程中绑定目的网络BSSID地址的功能。根据802.11协议规定,不同的无线网络可以具有相同的网络名称(也就是SSID/ESSID),但是必须对应一个唯一的BSSID 地址。非法入侵者可以通过建立具有相同的SSID/ESSID的无线网络的方法,使得网络中的STA联接到非法的AP上,从而造成网络的泄密。通过BSSID地址绑定的方式,可以防止STA 接入到非法的网络,从而提高无线网络的安全性。

    6、无线漫游

    本模块支持基于802.11协议的无线漫游功能。无线漫游指的是为了扩大一个无线网络的覆盖范围,由多个AP共同创建一个具有相同的SSID/ESSID的无线网络,每个AP用来覆盖不同的区域,接入到网络的STA可以根据所处位置的选择信号最强的AP接入,而且随着STA的移动自动在不同的AP之间切换。

    四、工作方式

    1、主动型串口设备联网

    主动型串口设备联网指的是由设备主动发起连接,并与后台服务器进行数据交互(上传或下载)的方式。典型的主动型设备,如无线POS机,在每次刷卡交易完成后即开始连接后台服务器,并上传交易数据。PUSH型串口设备联网的拓扑结构如右图所示。其中,后台服务器作为TCP Server端,设备通过无线AP/路由器接入到网络中,并作为TCP Client端。

    2、被动型串口设备联网

    被动型串口设备联网指的是,在系统中所有设备一直处于被动的等待连接状态,仅由后台服务器主动发起与设备的连接,并进行请求或下传数据的方式。典型的应用,如某些无线传感器网络,每个传感器终端始终实时的在采集数据,但是采集到的数据并没有马上上传,而是暂时保存在设备中。

    而后台服务器则周期性的每隔一段时间主动连接设备,并请求上传或下载数据。

    此时,后台服务器实际上作为TCP Client端,而设备则是作为TCP Server端主要特性2.4GHz, IEEE 802.11b/g内部PCB天线,可选外部天线支持基于AP的网络(Infrastructure)/对等网络Ad-Hoc (IBSS))/ 虚拟AP 模式 ,IPHONE/IPAD/Android 设备也能不用AP/路由器而直接连接支持802.11i加密方式:WEP-64/128,TKIP (WPA-PSK) and AES(WPA2-PSK)MCU内置TCP/IP协议栈3路UART串行接口(其中1路支持DMA 模式, 全功能串口,波特率最高支持921.6Kbps)SPI接口、I2S/PCM接口Digital Video端口高达24个GPIO口(部分GPIO将会和上述接口复用)全功能TCP/IP协议栈,TCP/IP传输带宽达到10Mbps以上支持三种带有定时自动唤醒功能的WiFi节能模式

    展开全文
  • 本篇文章来跟大家一起了解一下Android中的wifi框架 二、WIFI框架 整体框架图 1、Java应用层 原生机目录:packages/apps/Settings/src/com/android/settings/wifi/ 主要的类: WifiSettings.java 负责显示Wifi的设置...

    一、引言

    本篇文章来跟大家一起了解一下Android中的wifi框架

    小广告

    中间打个小广告,是本人的一个小小副业。

    大家有需要各种品牌的鞋(耐克、阿迪、斐乐、vans、匡威等),都可以加下面这个微信号,性价比巨高,质量绝对可靠,自己穿的也都是这买的,到手不喜欢,不影响二次销售可直接退货,希望大家能多多支持(暂时不想买的也欢迎添加,首双优惠!),全国包邮!

    vx:cp_shop12138

    二、WIFI框架

    整体框架图

    在这里插入图片描述
    1、Java应用层
    原生机目录:packages/apps/Settings/src/com/android/settings/wifi/
    主要的类:
    WifiSettings.java 负责显示Wifi的设置界面
    WifiEnabler.java 负责Wifi的开关逻辑
    WifiDialog.java 负责Wifi的对话框
    WifiInfo.java 表示Wifi的相关配置信息
    本文不详细描述

    2、Wifi Framework层
    位于: frameworks/ba

    展开全文
  • 一、WiFi相关基础概念 1、什么是wifi   我们看一下百度百科是如何定义的:  Wi-Fi是一种可以将个人电脑、手持设备(如pad、手机)等终端以无线方式互相连接的技术,事实上它是一个高频无线电信号。[1] 无线...
  • linux-wifi/bt调试

    2021-06-25 21:29:42
    wifi、bt开发指导 rockchip平台 rk wifi、bt调试 ap系列:ap6210、ap6212、ap6255、ap6256、ap6356 rtl系列:rtl8897、 rtl8811 ...wifi/bt 驱动 3>wifi/bt 加载 4>wifi/bt 上层调试工具 5>wifi/bt debu
  • WiFi驱动(1)框架解析

    万次阅读 2017-02-11 16:00:14
    本文从硬件结构到软件实现探究LinuxWiFi驱动框架,WiFi模块采用SDIO接口进行通信。
  • 本文从硬件结构到软件实现探究LinuxWiFi驱动框架。如下图: 硬件角度: CPUWiFi芯片,以rtl8723为例总线SDIO软件角度: 电源、GPIO:负责WiFi模组的电源管理、IO管理SDIO:数据通道WiFi驱动:负责WiFi规范实现...
  • Linux Wireless架构总结

    2021-05-17 14:41:56
    1、无线网络驱动(ath9k_htc)ath9k_htc是一个基于USB接口的SoftMAC无线网络适配器。为了其驱动能正常工作,首先必须调用usb_register来注册驱动定义的usb_driver,以借助USB Core的力量来处理与USB协议相关的事件。其...
  • 我们在上篇文章中给大家介绍了android中的wifi框架,也介绍了手动其wpa进程来测试wifi的方式。 在本篇文章中会和大家介绍从上层(java)层,也就是一般用界面上的wifi开关打开wifi的流程 二、JAVA层框架 1、界面开关 ...
  • Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析

    万次阅读 多人点赞 2016-04-10 21:33:08
    前面学习了SDIO接口的WiFi驱动,现在我们来学习一下USB接口的WiFi驱动,二者的区别在于接口不同。而USB接口的设备驱动,我们前面也有学习,比如USB摄像头驱动、USB鼠标驱动,同样都符合LinuxUSB驱动结构:  USB设备...
  • linux 下wifi 驱动开发 usb接口wifi驱动浅析.docx LINUXWIFI驱动开发(四)USB接口WIFI驱动浅析前面学习了SDIO接口的WIFI驱动,现在我们来学习一下USB接口的WIFI驱动,二者的区别在于接口不同。而USB接口的设备驱动...
  • Linux驱动框架

    2021-09-18 17:40:25
    1.linux 驱动分类 字符设备: 字符设备是能够像字节流一样被访问的设备。一般来说对硬件的IO操作可归结为字符设备。常见的字符设备有led,蜂鸣器,串口,键盘等等。...2.驱动框架 static int __init rukou_in
  • 文章目录1 驱动源码下载2 驱动移植2.1 源码的拷贝2.2 源代码的修改2.2.1 修改源码顶层目录的Makefile2.3 将wifi 驱动添加到内核中3 编译出错解决3.1 _seqdump 错误3.2 __DATE__ 和 __TIME__ 错误3.3 file_path相关...
  • linux sdio wifi驱动知识总结(一)

    万次阅读 2018-06-03 11:39:33
    这两周在tq imx6ul下调一个迈威88w8801sdio wifi模组,最后尴尬的发现tq imx6ul并不支持sdio wifi。至于不支持的原因会在后面简单说一下,小弟才疏学浅如果有大佬在tqimx6ul上成功移植过sdio wifi,也请多多指教,好...
  • Realtek rtl8188eus&rtl8188eu&rtl8188etv WiFi驱动程序 技术支持 安卓7 MESH支持 监控模式 框架注入 高达内核v5.8 + ...以及各种无线芯片组 如何建立/安装 您需要将另一个驱动程序列入黑名单,才能使用该驱动...
  • 文章目录1.1 在Linux内核中添加wifi驱动1.2 配置Linux内核1.3 Rtl8723 wifi模块驱动测试在迅为i.MX6UL终结者开发板上使用的是usb接口的RTL8723 wifi模块,原理图如图 1所示:可以看到RTL8723模块的接口非常简单,...
  •  mtk平台host驱动代码在drivers/mmc/host/mtk-sdio.c,sd card,mmc和sdio card的相关核心代码都存在drivers/mmc/目录中,本文只关心host是如果扫描到card的,下面分析host扫卡流程。 1,host驱动初始化  平台驱动...
  • 网络设备驱动linux内核中三大类设备 驱动之一,它用来完成高层网络协议的底 层数据传输及设备控制 � 网络设备与其他两种设备的区别: �网络接口不存在于Linux的文件系统中,及 /dev下没有设备文件,...
  • MT7688 wifi 驱动添加方法

    千次阅读 2015-09-25 16:06:13
    MT7688 wifi 驱动添加 这里和 RT5350 差不多,所以在这里不多说了唯一注意的地方就是在改kconfig 文件的时候不是修改那上面的两行。 具体步骤如下: 1、将网卡驱动解压到:RT288x_SDK/source/linux-...
  • 具体的框架之前分析过,不熟悉的朋友可以看我这篇文章 Linux驱动学习–DRM框架介绍及基于DRM框架的HDMI开发,这里就结合源码来实际讲解一下 1、内核驱动 识别到对应类型的设备,我们这里是USB蓝牙接口的BT芯片,调用...
  • 目录 一、引言 二、网络设备驱动架构介绍 三、网络设备框架常用接口介绍 ------>网络协议接口层 ------>...今天来和大家分析一下rtl88xx 系列网卡的驱动框架,该网卡是USB接口的,也就是结合了两种驱
  • Linux驱动开发: USB驱动开发

    千次阅读 多人点赞 2021-08-24 22:03:05
    idProduct 0x0047 bcdDevice 0x300 iManufacturer 0x01 iProduct 0x03 iSerialNumber 0x00 bNumConfigurations 0x01 Linux内核中定义的设备描述符结构: struct usb_device_descriptor { _ _u8 bLength; //描述符...
  • linux WIFI P2P

    2021-05-16 13:08:28
    For an introduction see theslidesforthe "Wi-Fi Peer-to-Peer on Linux" talk given by Johannes Bergduring the Linux Plumbers Conference 2010.BasicP2P Architecture Stack| +--------------------+| conne...
  • 在一众嵌入式Linux驱动书中笔者最推崇宋宝华的《Linux设备驱动开发详解》,但他完全可以更进一步上升到驱动框架个例(比如USBwifi模块驱动)和应用层调用。有些书从c语言基础谈起,真是莫名其妙,不懂C语言应该去学...
  • Linux MMC驱动架构浅析

    2022-03-03 20:57:02
    Linux MMC驱动架构浅析 MMC驱动模型 Linux内核设计了MMC子系统,用于管理MMC/SD等设备,MMC/SD存储设备是一种典型的块...如MMC/SD卡设备驱动按照 linux块设备驱动程序的框架实现一个MMC/SD卡的块设备驱动,在 block.c
  • Linux驱动——mmc概念与框架(一) 备注:   1. Kernel版本:5.4   2. 使用工具:Source Insight 4.0   3. 参考博客: Linux MMC framework(1)_软件架构 1. [mmc subsystem] 概念与框架 文章目录Linux驱动——...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,195
精华内容 2,878
关键字:

linux wifi驱动 框架