源码: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:小端模式;

ARCH: arm 平台;

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-PSK

pairwise=TKIP CCMP

group=CCMP TKIP

psk="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

编译完成后,会生成hostapd、hostapd_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

linux rtl8723bu 蓝牙,RTL8723BU(wifi Bluetooth) 移植相关推荐

  1. realtek+wifi+linux驱动下载,RealTek wifi 驱动移植说明_V1.0 PDF 下载

    1. 驱动修改说明: 1. 修改驱动入口函数 一般来说,RealTek 的驱动,只需修改适合 RK 平台的入口函数就可以正常运行了,以下 分别对 USB WIFI 和 SDIO WIFI 驱动需要修改 ...

  2. RTL8723BU(wifi Bluetooth) 移植

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

  3. 博通蓝牙驱动linux,基于Android8.1的博通bcm89342蓝牙驱动的驱动移植记录-Go语言中文社区...

    说明 本文档是基于Android 8.1版本的一款博通蓝牙的驱动移植全过程记录.本驱动是通过/dev/ttyS2和蓝牙进行通信.因为较android以前的版本有很大变化尤其是上层关于蓝牙协议栈的部分, ...

  4. 嵌入式linux usb wifi驱动移植

    文档名称:嵌入式linux usb wifi驱动移植 版本历史 版本号        时间        内容 v1.0b001        2012-6-18        初始版本,介绍在嵌入式 ...

  5. linux无线网卡蓝牙连接不上,Linux如何解决英特尔无线网卡WiFi网速慢、WiFi蓝牙无法共存等问题...

    使用本教程前,请先确认你机器里有英特尔无线网卡.该教程只适用于英特尔无线网卡.其他无线网卡修改iwlwifi.conf没有任何效果! 无线网卡的型号可以在"设备管理器"应用中查看, ...

  6. Linux环境下使用WIFI模块:WIFI驱动移植

    WIFI驱动移植 实验平台 内核版本:Linux-4.19.5 开发板:SAMSUNG JZ2440 WIFI模块:Ralink rt3070 查看WIFI设备的PID 直接将WIFI模块接到电脑的U ...

  7. 嵌入式linux 系统支持usb wifi BL-R8723BT1

    目前,在消费电子或商业电子领域,许多产品跑的是Android系统;而在工控等行业,应用linux,Ubuntu系统,也是十分普遍;当前很多主流的开发平台,如全志,瑞星微,三星,官方提供的多是Andro ...

  8. 图文讲解 WiFi 驱动移植过程,很肝~

    关注.星标公众号,直达精彩内容 来源:嵌入式基础学习 作者:小二 本篇文章打算对WiFi 驱动移植文章进行一次系统性的总结.复盘,分享一下自己的思考过程,遇到的问题等. 希望对您有点帮助??????? ...

  9. 全网最便宜的OpenHarmony开发板和模组Neptune问世(基于联盛德W800的SoC),9.9元带蓝牙和wifi功能还包邮

    这是我见过的全网最便宜的开发板.功能一点儿也不弱,带蓝牙和wifi功能,竟只要9.9元还包邮,果断的买了块儿研究研究.它还支持HarmonyOS和freeRTOS嵌入式操作系统,也可以接入鸿蒙生态. ...

最新文章

  1. 强化学习:10种真实的奖励与惩罚应用
  2. RecyclerView添加头条目显示空白的解决方案
  3. 正在研究d2010的dcu格式
  4. jerseycom.sun.jersey.api.client.UniformInterfaceException
  5. Objective-C中block的底层原理
  6. 人体的血管连起来竟能绕地球两圈!?| 今日最佳
  7. python模块实例化_python中zipfile模块实例化解析
  8. html5 lang en 乱码,CSS中的html [lang =“en”]和html:lang(en)有什么区别?
  9. node.js webpack html-webpack-plugin
  10. Tripwire安装
  11. 克罗谈投资策略02_赢家和输家
  12. Sentence-BERT实战
  13. 台州学院计算机科学与技术专业怎么样,台州学院数学与信息工程学院
  14. 传说中的世界500强面试题-情商
  15. JAVA WEB_HTML的初步(2)
  16. 【论文笔记】Poison Frogs! Targeted Clean-Label Poisoning Attacks on Neural Networks
  17. 【Shader进阶】Shader的Lod
  18. 利用报废主板制作SPD刷内存编程器座子
  19. VMware12下安装Windows7虚拟机---详细多图教程(沙盒环境)
  20. Network of Thrones --基于社区发现算法和图分析Neo4j解读《权力的游戏》(详细!)

热门文章

  1. GitLab基础:备份与恢复指南
  2. 【大数据开发】SparkSQL——Spark对接Hive、Row类、SparkSQL函数、UDF函数(用户自定义函数)、UDAF函数、性能调优、SparkSQL解决数据倾斜
  3. 官网稳定版微信小程序下载地址
  4. Python闭包和装饰器
  5. 微信如何通过ip访问服务器项目,vue2.0 在微信端如何使用本地IP访问项目
  6. vue+js数据处理,对数组重新构造
  7. GetLocalTime 和 GetSystemTime 的区别
  8. 像微信一样简单的智能健身房
  9. Kubernetes Scheduler源码分析--启动过程与多队列缓存(续)
  10. Must call super constructor in derived class before accessing 'this' or returning from derived const