源码:RTL8723BU_WiFi_linux_v4.4.2_18635_BTCOEX20151228-664a.20161006.zip

下载地址:https://download.csdn.net/download/qq_22902919/10471522

硬件:imx6q
软件:linux3.x

Wifi移植:

1.内核配置

首先需要配置内核, 支持USB设备, 支持wifi设备, 支持IEEE802.11等。

1.1 支持 USB 设备:

[*] USB support  --->   
    <*>   Support for Host-side USB 
    <*>     EHCI HCD (USB 2.0) support 
    <*>     OHCI HCD (USB 1.1) support    
    <*>     USB Mass Storage support
    <*>   ChipIdea Highspeed Dual Role Controller   
    [*]     ChipIdea device controller
    [*]     ChipIdea host controller

1. 2. 支持 wifi 设备:

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

1. 3. 支持 IEEE 802.11:

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

2.sta 模式驱动编译与实现

usb wifi &bt模块采用的核心为rtl8723bu,平台为NXP的IMX6Q。根据提供的驱动为
RTL8723BU_WiFi_linux_v4.4.2_18635_BTCOEX20151228-664a.20161006.tar.bz2。

2.1. 源码路径

2.1.1 解压源码包并重命名:

$ tar jxvf RTL8723BU_WiFi_linux_v4.4.2.tar.bz2
$ ls
RTL8723BU_WiFi_linux_v4.4.2_18635_BTCOEX20151228-664a.20161006
$ mv RTL8723BU_WiFi_linux_v4.4.2_18635_BTCOEX20151228-664a.20161006  rtl8723bu 

2.1.2 拷贝源码:

把源码拷贝到到linux-imx/drivers/net/wireless/下

2.2. 驱动源码的修改

解压进入驱动目录,修改rtl8723bu文件夹下的 Makefile, 增加平台类型,默认为 I386_PC,这

里增加 CONFIG_PLATFORM_TI_AM3354 = y并将其他所有都配置为 n

在Platform Related中添加:CONFIG_PLATFORM_ARM__IMX6Q = y 
   增加CONFIG_PLATFORM_ARM__IMX6Q相关配置(在ifeq($(CONFIG_PLATFORM_I386_PC), y)之后添加):

ifeq ($(CONFIG_PLATFORM_ARM__IMX6Q), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
#CROSS_COMPILE := arm-poky-linux-gnueabi-
CROSS_COMPILE := /opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi-
KVER  := 3.14.28
KSRC := /home/james/work/linux-imx-3.14.28
endif

其中
EXTRA_CFLAGS小端模式
ARCHarm 平台
CROSS_COMPILE交叉编译器
KVER内核版本号
KSRC内核所在目录

2.3 驱动加载

在make menuconfig中使rtl8723编译进内核

[*] Network device support  --->
[*]   Wireless LAN  --->
<*>   Realtek 8723B USB WiFi

2.4 编译

2.4.1 编译命令

$  make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi-

2.4.2 错误

2.4.2.1 编译过程有可能发生的errors

最后编译内核,出现macro "__TIME__" might prevent reproducible builds [-Werror=date-time]错误,
只需在相应的Makefile中添加EXTRA_CFLAGS += -Wno-error=date-time (不把该行为当成错误)

2.4.2.2 调试过程有可能发生的errors

在调试中发现驱动一直在循环重启,只需在rtl8723bu/include/autoconf.h中屏蔽#define CONFIG_DEBUG这个宏.

2.5 模块的应用调试

2.5.1 启动wifi模块

$ ifconfig -a
$ ifconfig wlan0 up
$ ifconfig

2.5.2 扫描热点

$ iwlist wlan0 scanning

2.5.3 模块连接到路由器

因为现在的无线wifi网络大多是wpa 加密。没有wpa_supplicant工具的请移植wpa_supplicant

2.5.3.1 建立wpa_supplicant.conf

$ vim /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
update_config=1
ctrl_interface_group=root
ap_scan=1
network={ssid="Baidu9519"key_mgmt=WPA-PSKpairwise=TKIP CCMPgroup=CCMP TKIPpsk="19360439"
}$mkdir -p /var/run/wpa_supplicant

2.5.3.2 连接到路由器

$ wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf &

2.5.2 给模块分配ip有两种模式

自动分配

$ udhcpc -i wlan0

手动分配必须知道热点IP的分配范围

$ ifconfig wlan0 192.168.95.2

2.5.3 ping

2.5.3.1 ping网关

$ ping 192.168.95.1

注意如果使用小度WiFi或者其他等随身WiFi时,把Windows的防火墙关闭,否则ping不通网关。

2.5.3.2 ping百度

$ echo nameserver 202.96.134.33 >> /etc/resolv.conf
$ ping www.baidu.com

3. SOFTAP实现

3.1 加载驱动

$ ifconfig wlan0 up
$ ifconfig wlan0 192.168.0.2

3.2 编译hostap

编译hostap,解压wpa_supplicant_hostapd-0.8_rtw_r7475.20130812.tar.gz

3.2.1 进入hsotapd

$ cd wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/hsotapd

3.2.2 编译hsotapd

$ make CC=arm-poky-linux-gnueabi-gcc

编译完成后,会生成hostapdhostapd_cli等命令
使用hsotapd时“编译的bin文件No such file or directory”问题
文件是存在,但是该文件所需要的一些库文件,是不存在的。这个时候就需要静态链接。
修改Makefile

LDFLAGS += -rdynamic

修改为

LDFLAGS  += -static

3.3 拷贝文件

拷贝hostapd、hostapd_cli等命令及配置文件rtl_hostapd_2G.conf到开发板中的/bin下,拷
贝 rtl_hostapd_2G.conf到开发板/etc下,

3.4 启动 hostap

$ hostapd /etc/rtl_hostapd_2G.conf – B

此时,可以用笔记本检测到 wifi信号rtwap,并可以连接上,需要配置静态 IP 地址,

3.5 支持 DHCP

3.5.1. udhcpd.conf文件

从 busybox 源码里的 example/dhcp/下复制 udhcpd.conf文件到我们的文件系统/etc下, 修改里面的interface为wlan0;

3.5.2 开启udhcpd服务

$ udhcpd -fS /etc/udhcpd.conf

Bluetooth移植:

1. 配置驱动

1.1 解压源码

拷贝我们提供的驱动包的 Linux_BT_USB_3.1.20150526_8723BU_BTCOEX_20150119-5844.rar
驱动源码到工作目录,解压源码;

1. 2 拷贝驱动文件

拷贝 blutooth_usb_driver 目录下驱动文件 blutooth_usb_driver/ rtk_bt.c, rtk_bt.h,
rtk_coex.c, rtk_coex.h 到 内核
/linux/linux-3.2.0-psp04.06.00.11/drivers/bluetooth 目录下,

1. 3 修改内核中 Makefile 和 Kconfig 文件

修改 kernel 目录下的 drivers/bluetooth 下的 Makefile 和 Kconfig 文件,
在 Makefile 中添加如下定义:

obj-$(CONFIG_BT_RTKBTUSB) += rtk_btusb.o
rtk_btusb-y := rtk_coex.o rtk_bt.o

在 Kconfig 中添加如下定义

config BT_RTKBTUSB
tristate "RTK HCI USB driver"
depends on USB
help
RTK Bluetooth HCI USB driver.

1.4 复制固件

将8723B目录下rtl8723b_fw,rtl8723bu_config拷贝到开发板的/lib/firmware/目录下

2. 配置内核

2.1 选择蓝牙相关的配置,配置RTL8723为编译到内核中并配置其他辅助配置

[*] Networking support  --->  
<*>   Bluetooth subsystem support  --->   
                                              
[*]   Bluetooth Classic (BR/EDR) features                                                      
<*>     RFCOMM protocol support                                                                
[*]       RFCOMM TTY support                                                                   
<*>     BNEP protocol support                                                                  
[*]       Multicast filter support                                                            
[*]       Protocol filter support                                                             
<*>     HIDP protocol support                                                                 
[*]   Bluetooth Low Energy (LE) features                                                      
[ ]   Bluetooth self testing support                                                          
[*]   Export Bluetooth internals in debugfs                                                   
Bluetooth device drivers  --->
[*]   HCILL protocol support   
 <*> RTK HCI USB driver

2.2 返回Networking support 配置界面,RF switch subsystem support配置

[*] Networking support  --->                                                                       
  <*>   RF switch subsystem support  ---> 
  [*]   RF switch input support

2.3 进入Input Device Suppor 配置界面,Miscellaneous devices配置

Device Drivers  --->   
Input device support  --->
[*]   Miscellaneous devices  --->  
<*>   User level driver support

2.4 进入Generic Driver Options配置页面,Userspace firmwareloading support配置

Generic Driver Options  --->
-*- Userspace firmware loading support                                                     
  [*]   Include in-kernel firmware blobs in kernel binary

3. 编译内核

$ make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi-

4. 蓝牙驱动测试

4.1 启动蓝牙设备

$ hciconfig hci0 up

4.2 查看蓝牙设备

$ hciconfig

4.3 扫描设备

$ hcitool scan

4.4 开启可检测性和连接

$ hciconfig hci0 up piscan

这样,其他设备可通过扫描检测到设备;

4.5 ping测试

$ l2ping xx: xx: xx: xx: xx: xx

RTL8723BU(wifi Bluetooth) 移植相关推荐

  1. linux rtl8723bu 蓝牙,RTL8723BU(wifi Bluetooth) 移植

    源码:RTL8723BU_WiFi_linux_v4.4.2_18635_BTCOEX20151228-664a.20161006.zip 下载地址:https://download.csdn.net ...

  2. GEC6818 移植 rtl8723bu wifi驱动

    文章目录 1. 配置内核 2.RTL8723BU 模块驱动编译 2.1 下载解压 2.2 配置编译 3. openssl 移植 3.1 下载解压 3.2 配置 3.3 编译安装 4. libnl 移植 ...

  3. rtl8723bu linux wifi驱动移植教程

    rtl8723bu linux 驱动移植教程 将文件 rtl8723BU_WiFi_linux_v4.3.9.3_13200.20150106_BTCOEX20140929-5443.tar.gz 拷 ...

  4. RTL8723BU WiFi—蓝牙 模块移植

    硬件:imx6q 操作系统:Android4.4.2 本次修改基于厂商提供的RTL8723BU_WiFi_linux_v4.3.16_14189.20150519_BTCOEX2015119-5844 ...

  5. 三星S5PV210移植RTL8723BU WiFi驱动

    硬件环境:Samsung s5pv210 软件环境:Linux kernel 2.6.35.7 1.编译生成生成.ko文件 驱动安装包下载地址请点击rtl8723bu wifi驱动 下载完成的驱动包先 ...

  6. iMX6ULL RTL8723BU WiFi蓝牙模块

    iMX6ULL RTL8723BU WiFi蓝牙模块 1. 介绍 2. 配置Linux内核 2.1 配置支持USB 设备 2.2 配置支持WiFi设备 2.3 配置支持IEEE 802.11 2.4 ...

  7. I.MX6 WIFI wireless_tools 移植

    /********************************************************************************* I.MX6 WIFI wirele ...

  8. 乐鑫代理启明云端用图文带你一分钟快速了解ESP32-S3的功能特性:支持AI加速,更好的应用于图像、语音等识别,集成Wi-Fi + Bluetooth LE 5.0和高达44 个可编程 GPIO 管脚

    乐鑫代理-启明云端用图文带你一分钟快速了解ESP32-S3的功能特性: 支持 AI 加速 ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instruc ...

  9. wifi模块服务器项目心得,一次关于WiFi 驱动移植的总结复盘

    1 简介 WiFi 是什么?能用来做什么? 都 2021 年了,相信您对 WiFi 一定不陌生了. 可以参考这里的百度百科释义:[百度百科 - WiFi(https://baike.baidu.com ...

最新文章

  1. php 验证码 扩展,使用 Captcha 扩展包 为 Laravel 5 应用生成验证码
  2. C#实现javascript的escape
  3. opengl加载显示3D模型CSM类型文件
  4. 网站开启Gzip压缩-apache
  5. python expect_python--pexpect
  6. java常用api简单统计
  7. localStorage、sessionStorage详解,以及storage事件使用
  8. 倒排索引Inverted index
  9. 计算机专业实训是干什么,计算机系实习目的是什么
  10. 【MTSP】遗传和粒子群算法求解多旅行商问题【Matlab 1156期】
  11. SAP系统中的几种系统级消息(用户登录后消息弹窗SM02,TH_POPUP,以及系统邮件)
  12. html图片查看代码实现,如何用HTML5实现图片预览和查看原图的功能
  13. 产品概念之3/4:五层次理论 —— 消费者体验视角的产品概念
  14. Android属于绑定服务特点是,Android P HIDL服务绑定模式与直通模式的分析 (原创)
  15. Spring的bean定义 2 : 通用bean定义逻辑 -- AbstractBeanDefinition
  16. 基于Dockerfile制作镜像
  17. 百度地图 - 绘制驾车路线图
  18. ZYNQ之路--搞清楚Xilinx开发软件之间的关系
  19. signature=ba9e6379d20ccbc5c357c7ca83db9b63,来用百度密语吧!!!
  20. footer的各种写法

热门文章

  1. win10 android驱动问题,win10的usb驱动问题
  2. 北京居住登记卡——寄住/借住证明
  3. 天正建筑lisp编程接口_用lisp开发博客客户端
  4. 摄像机 第一视角和第三视角的切换
  5. 超详细图文保姆级教程:App开发新手入门(三)
  6. Unity性能优化之内存篇(上)
  7. 私企招聘:思特威社会招聘
  8. 新闻栏目分类解决方案
  9. RS422 ABYZ信号与DB9信号的连接
  10. C# 自动按比例裁剪去除图片色边(一般是黑边或者白边)