linux rtl8723bu 蓝牙,RTL8723BU(wifi Bluetooth) 移植
源码: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) 移植相关推荐
- realtek+wifi+linux驱动下载,RealTek wifi 驱动移植说明_V1.0 PDF 下载
1. 驱动修改说明: 1. 修改驱动入口函数 一般来说,RealTek 的驱动,只需修改适合 RK 平台的入口函数就可以正常运行了,以下 分别对 USB WIFI 和 SDIO WIFI 驱动需要修改 ...
- RTL8723BU(wifi Bluetooth) 移植
源码:RTL8723BU_WiFi_linux_v4.4.2_18635_BTCOEX20151228-664a.20161006.zip 下载地址:https://download.csdn.net ...
- 博通蓝牙驱动linux,基于Android8.1的博通bcm89342蓝牙驱动的驱动移植记录-Go语言中文社区...
说明 本文档是基于Android 8.1版本的一款博通蓝牙的驱动移植全过程记录.本驱动是通过/dev/ttyS2和蓝牙进行通信.因为较android以前的版本有很大变化尤其是上层关于蓝牙协议栈的部分, ...
- 嵌入式linux usb wifi驱动移植
文档名称:嵌入式linux usb wifi驱动移植 版本历史 版本号 时间 内容 v1.0b001 2012-6-18 初始版本,介绍在嵌入式 ...
- linux无线网卡蓝牙连接不上,Linux如何解决英特尔无线网卡WiFi网速慢、WiFi蓝牙无法共存等问题...
使用本教程前,请先确认你机器里有英特尔无线网卡.该教程只适用于英特尔无线网卡.其他无线网卡修改iwlwifi.conf没有任何效果! 无线网卡的型号可以在"设备管理器"应用中查看, ...
- Linux环境下使用WIFI模块:WIFI驱动移植
WIFI驱动移植 实验平台 内核版本:Linux-4.19.5 开发板:SAMSUNG JZ2440 WIFI模块:Ralink rt3070 查看WIFI设备的PID 直接将WIFI模块接到电脑的U ...
- 嵌入式linux 系统支持usb wifi BL-R8723BT1
目前,在消费电子或商业电子领域,许多产品跑的是Android系统;而在工控等行业,应用linux,Ubuntu系统,也是十分普遍;当前很多主流的开发平台,如全志,瑞星微,三星,官方提供的多是Andro ...
- 图文讲解 WiFi 驱动移植过程,很肝~
关注.星标公众号,直达精彩内容 来源:嵌入式基础学习 作者:小二 本篇文章打算对WiFi 驱动移植文章进行一次系统性的总结.复盘,分享一下自己的思考过程,遇到的问题等. 希望对您有点帮助??????? ...
- 全网最便宜的OpenHarmony开发板和模组Neptune问世(基于联盛德W800的SoC),9.9元带蓝牙和wifi功能还包邮
这是我见过的全网最便宜的开发板.功能一点儿也不弱,带蓝牙和wifi功能,竟只要9.9元还包邮,果断的买了块儿研究研究.它还支持HarmonyOS和freeRTOS嵌入式操作系统,也可以接入鸿蒙生态. ...
最新文章
- 强化学习:10种真实的奖励与惩罚应用
- RecyclerView添加头条目显示空白的解决方案
- 正在研究d2010的dcu格式
- jerseycom.sun.jersey.api.client.UniformInterfaceException
- Objective-C中block的底层原理
- 人体的血管连起来竟能绕地球两圈!?| 今日最佳
- python模块实例化_python中zipfile模块实例化解析
- html5 lang en 乱码,CSS中的html [lang =“en”]和html:lang(en)有什么区别?
- node.js webpack html-webpack-plugin
- Tripwire安装
- 克罗谈投资策略02_赢家和输家
- Sentence-BERT实战
- 台州学院计算机科学与技术专业怎么样,台州学院数学与信息工程学院
- 传说中的世界500强面试题-情商
- JAVA WEB_HTML的初步(2)
- 【论文笔记】Poison Frogs! Targeted Clean-Label Poisoning Attacks on Neural Networks
- 【Shader进阶】Shader的Lod
- 利用报废主板制作SPD刷内存编程器座子
- VMware12下安装Windows7虚拟机---详细多图教程(沙盒环境)
- Network of Thrones --基于社区发现算法和图分析Neo4j解读《权力的游戏》(详细!)
热门文章
- GitLab基础:备份与恢复指南
- 【大数据开发】SparkSQL——Spark对接Hive、Row类、SparkSQL函数、UDF函数(用户自定义函数)、UDAF函数、性能调优、SparkSQL解决数据倾斜
- 官网稳定版微信小程序下载地址
- Python闭包和装饰器
- 微信如何通过ip访问服务器项目,vue2.0 在微信端如何使用本地IP访问项目
- vue+js数据处理,对数组重新构造
- GetLocalTime 和 GetSystemTime 的区别
- 像微信一样简单的智能健身房
- Kubernetes Scheduler源码分析--启动过程与多队列缓存(续)
- Must call super constructor in derived class before accessing 'this' or returning from derived const