修改WiFi/BT模组—R329智能语音开发板入门
首发极术社区
如对Arm相关技术感兴趣,欢迎私信aijishu20加入技术微信群。
本节以修改WiFi/BT模组为例,演示修改替换一个模块的方法。
在部分版本的的R329 Tina中(如全志官方对外release的v0.5版本R329 Tina),EVB5方案配置的Realtek 8723D无线模组。如果我们要替换成全志的XR829无线模组要怎么做呢?大概需要如下几步:
修改内核配置
首先,我们先获取环境变量,选好方案:
source build/envsetup.sh
lunch
然后make kernel_menuconfig配置内核:
make kernel_menuconfig
进行无线模组配置选项:
Device Drivers > Network device support > Wireless LAN
可以看到当前选择的模组是Realtek 8723D
*表示编译成模块,可以在启动的时候实用启动脚本加载,<*>表示编译到内核。
我们将Realtek 8723D反选,并选上XR829:
修改Tina配置
make menuconfig
Firmware
进入Firmware目录,反选r8723ds-firmware,并选上xr829-firmware和xr829 with 40M sdd。xr829 with 40M sdd意思是XR829采用40MHz的外挂晶振。
<*> xr829-firmware..................................... Xradio xr829 firmware
[*] xr829 with 40M sdd
Wireless Driver
进入Kernel modules > Wireless Driver,反选kmod-net-rtl8723ds,并选上kmod-net-xr829和kmod-net-xrbtlpm,意思是启动的时候加载xr829模块。
重新编译打包烧写固件
make -j32
pack
烧写固件后,使用wifi扫描demo测试,就可以扫描到附近的wifi信号:
root@TinaLinux:/# wifi_scan_results_test*********************************
***Start scan!***
*********************************
bssid / frequency / signal level / flags / ssid
64:6e:97:5a:5a:e4 2462 -55 [WPA-EAP-CCMP+TKIP][WPA2-EAP-CCMP+TKIP][ESS] AWOffice
66:6e:97:1a:5a:e4 2462 -55 [WPA2-PSK-CCMP][ESS] AWTest
7e:b5:9b:2d:e1:63 2437 -56 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] AW-IT-Test
66:6e:97:1b:14:42 2462 -56 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] AWTest
7c:b5:9b:fd:e1:bd 2437 -58 [WPA-EAP-CCMP+TKIP][WPA2-EAP-CCMP+TKIP][ESS] AWOffice
7c:b5:9b:fd:e1:63 2437 -58 [WPA-EAP-CCMP+TKIP][WPA2-EAP-CCMP+TKIP][ESS] AWOffice
7e:b5:9b:1d:e1:63 2437 -58 [WPA2-PSK-CCMP][ESS] AWTest
7e:b5:9b:1d:e1:bd 2437 -61 [WPA2-PSK-CCMP][ESS] AWTest
88:d7:f6:88:8b:c0 2412 -37 [WPA2-PSK-CCMP][WPS][ESS] AW-PDC-PD4-316Test
90:67:1c:f8:11:ac 2437 -36 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] AW-PDC-RTOS-MUSIC
00:6b:8e:4e:c0:08 2412 -45 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] AW-PDC-PD4-315test
c8:4c:75:40:86:ff 2452 -54 [WPA-EAP-CCMP+TKIP][WPA2-EAP-CCMP+TKIP-preauth][ESS] Allwinner
c4:f0:81:63:9d:31 2437 -59 [WPA2-PSK-CCMP][ESS] \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
f0:c9:d1:b3:15:49 2412 -55 [WPA-PSK-TKIP][WPA2-PSK-CCMP][ESS] AP-XRADIO
64:6e:97:5b:14:42 2462 -64 [WPA-EAP-CCMP+TKIP][WPA2-EAP-CCMP+TKIP][ESS] AWOffice
bc:46:99:d6:62:7c 2462 -60 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] SochipR3
38:1c:1a:2e:b3:52 2437 -63 [WPA2-PSK-CCMP][ESS] AWTest
ec:6c:9f:af:89:79 2447 -63 [WPA2-PSK-CCMP][ESS] AW-APD-GMSipv6
74:a5:28:9a:fc:d4 2432 -65 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] AW-PTD-HK
04:d4:c4:b9:b9:f8 2437 -65 [WPA2-PSK-CCMP][WPS][ESS] ipv6
ac:e3:42:9c:7f:79 2437 -68 [WPA2-PSK-CCMP][WPS][ESS]
00:1c:a3:14:6a:de 2422 -73 [WPA2-PSK-CCMP][ESS] AW-PD4-R818
8c:be:be:24:6f:ff 2422 -70 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] AW-PTD-TEST
7e:b5:9b:1d:e1:a3 2462 -75 [WPA2-PSK-CCMP][ESS] AWTest
80:e8:6f:d9:fd:a1 2412 -73 [WPA-EAP-CCMP][WPA2-EAP-CCMP][ESS] AWOffice
80:e8:6f:d9:fd:a2 2412 -73 [WPA2-PSK-CCMP][ESS] AWTest
80:8f:1d:8a:36:76 2452 -60 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] AW-PDC-PD2-TEST
38:1c:1a:2e:b3:51 2437 -63 [WPA-EAP-CCMP][WPA2-EAP-CCMP][ESS] AWOffice
b8:55:10:94:90:b4 2427 -74 [WPA-PSK-CCMP][WPA2-PSK-CCMP][WPS][ESS] AW-ANC-TOTOLINK-N600RV2#34
80:e8:6f:d9:5d:62 2412 -75 [WPA2-PSK-CCMP][ESS] AWTest
80:e8:6f:d9:5d:61 2412 -76 [WPA-EAP-CCMP][WPA2-EAP-CCMP][ESS] AWOffice
******************************
Wifi get_scan_results: Success!
******************************
如果固件的模组不对应,使用wifi相关demo时会提示wifi打开失败:
root@TinaLinux:/# wifi_scan_results_test
connect wpa_supplicant failed,please check wifi driver!
wifi on failed
修改蓝牙配置
以上修改只是完成了模组wifi部分,bt部分这时候测试是会打开失败的:
root@TinaLinux:/# bt_test
root@TinaLinux:/# 58279.055755: [bt_manager_init:212]: enable default profile from bt config.
58279.055900: [bt_manager_enable:400]: bt manager version:Version:3.0.1.202012201630,builed time:Dec 29 2020-02:46:30
58279.055915: [bt_test_sta[ 144.123489] sunxi-bt soc@03000000:bt: block state already is 1
tus_cb:71]: bt is turnning on.
[ 145.135907] sunxi-bt soc@03000000:bt: set block: 058290.178476: [btmg_device_on:56]: detect hci0......
58293.179028: [btmg_device_on:56]: detect hci0......
58296.179372: [btmg_device_on:56]: detect hci0......
^C
root@TinaLinux:/# 58299.179802: [btmg_device_on:56]: detect hci0......
58302.180339: [btmg_device_on:56]: detect hci0......
58305.180866: [btmg_device_on:56]: detect hci0......
58308.181398: [btmg_device_on:61]: hci0 device available
58308.181471: [bt_test_status_cb:59]: BT is off
58308.181500: [bt_test_adapter_power_state_cb:43]: Failed to turn on bt
58308.181530: [bt_manager_enable:436]: init HCI device failed!
58308.181561: [bt_manager_gap_set_io_capability:1084]: Bt is off, This should not be called!(process:1559): GLib-GIO-CRITICAL **: g_dbus_connection_send_message_with_reply_sync: assertion 'G_IS_DBUS_CONNECTION (connection)' failed(process:1559): GLib-GIO-CRITICAL **: g_dbus_connection_send_message_with_reply_sync: assertion 'G_IS_DBUS_CONNECTION (connection)' failed
bt部分还需要修改相关配置文件 target/allwinner/r329-evb5/base-files/etc/bluetooth/bt_init.sh
#!/bin/sh
bt_hciattach="hciattach"start_hci_attach()
{h=`ps | grep "$bt_hciattach" | grep -v grep`[ -n "$h" ] && {killall "$bt_hciattach"sleep 1}#8723ds h5 initecho 0 > /sys/class/rfkill/rfkill0/state;sleep 1echo 1 > /sys/class/rfkill/rfkill0/state;sleep 1"$bt_hciattach" -n ttyS1 xradio >/dev/null 2>&1 &sleep 1wait_hci0_count=0while truedo[ -d /sys/class/bluetooth/hci0 ] && breaksleep 1let wait_hci0_count++[ $wait_hci0_count -eq 8 ] && {echo "bring up hci0 failed"exit 1}done
}start() {hcidump_xr=$(ps | grep "hcidump_xr" | grep -v grep | awk '{print $1}')if [ -n "$hcidump_xr" ] ;thenecho "hcidump_xr existed"elseecho "hcidump_xr start"hcidump_xr &fiif [ -d "/sys/class/bluetooth/hci0" ];thenecho "Bluetooth init has been completed!!"elsestart_hci_attachfid=`ps | grep bluetoothd | grep -v grep`[ -z "$d" ] && {/etc/bluetooth/bluetoothd startsleep 1}
}ble_start() {if [ -d "/sys/class/bluetooth/hci0" ];thenecho "Bluetooth init has been completed!!"elsestart_hci_attachfihci_is_up=`hciconfig hci0 | grep RUNNING`[ -z "$hci_is_up" ] && {hciconfig hci0 up}MAC_STR=`hciconfig | grep "BD Address" | awk '{print $3}'`LE_MAC=${MAC_STR/2/C}OLD_LE_MAC_T=`cat /sys/kernel/debug/bluetooth/hci0/random_address`OLD_LE_MAC=$(echo $OLD_LE_MAC_T | tr [a-z] [A-Z])if [ -n "$LE_MAC" ];thenif [ "$LE_MAC" != "$OLD_LE_MAC" ];thenhciconfig hci0 lerandaddr $LE_MACelseecho "the ble random_address has been set."fifi
}stop() {echo "nothing to do."
}case "$1" instart|"")start;;stop)stop;;ble_start)ble_start;;*)echo "Usage: $0 {start|stop}"exit 1
esac
R329 EVB5 XR829 bt_init.sh文件下载连接:bt_init.sh
make kernel_menuconfig内核配置选上:
Networking support > Bluetooth subsystem support > Bluetooth device drivers
<*> Xradio Bluetooth sleep driver support
<*> Xradio Bluetooth farmware debug interface support
[*] Xradio Bluetooth sleep driver support for bluedriod
重新编译打包烧录固件,用BT demo,成功打开蓝牙会有如下打印:
root@TinaLinux:/# bt_test
root@TinaLinux:/# 3407.938316: [bt_manager_init:212]: enable default profile from bt config.
3407.938454: [bt_manager_enable:400]: bt manager version:Version:3.0.1.202012201630,builed time:Dec 29 2020-02:46:30
3407.938468: [bt_test_status_cb:71]: bt is turnning on.
hcidump_xr start
Bluetooth init has been completed!!
/etc/bluetooth/bt_init.sh: line 99: hcidump_xr: not found
3408.306362: [bt_profile_global_init:356]: start bluealsa :1 times
3408.845050: [bt_test_adapter_power_state_cb:41]: Turn on bt successfully
3409.308667: [bt_test_status_cb:61]: BT is ON
[ 66.468094] [BH_WRN] miss interrupt!
以上,一个无线模组就修改好了。
*rtl8723ds和XR829模组是pin to pin的,所以无需修改引脚配置。
相关阅读:
- 录音和播放—R329智能语音开发板入门
- WiFi连网—R329智能语音开发板入门
修改WiFi/BT模组—R329智能语音开发板入门相关推荐
- WiFi连网—R329智能语音开发板入门
首发极术社区 如对Arm相关技术感兴趣,欢迎私信aijishu20加入技术微信群. R329 EVB5开发板上集成了全志自研的XR829无线芯片,支持2.4G wifi 和BT功能.Tina Linu ...
- 「全志科技R329智能语音开发板」简介
首发极术社区 如对Arm相关技术感兴趣,欢迎私信aijishu20加入技术微信群. 2020年4月,全志科技发布了搭载"ARM中国 周易AIPU"的智能语音专用处理器--R329, ...
- 用Java开发的【智能语音开发板MEGA ESP32AI】
有点激动 ~ ~ ~ 新鲜出炉,用视频看看效果哦 我们新研发出世的语音开发板MEGA ESP32AI,来看看吧,有点腻害哦!!!先演示下功能语音控制开关等.播报天气 戳下面链接看视频哦? MEGA E ...
- JAVA硬件开发板_用Java开发的【智能语音开发板MEGA ESP32AI】
有点激动 ~ ~ ~ 新鲜出炉,用视频看看效果哦 我们新研发出世的语音开发板MEGA ESP32AI,来看看吧,有点腻害哦!!!先演示下功能语音控制开关等.播报天气 戳下面链接看视频哦? 这些都是怎么 ...
- 为什么小小的智能语音开发板引起全球巨头的关注?
麦肯锡<人工智能,下一个数字前沿>报告中,不意外地,语音领域被麦肯锡重点划线了. 报告估计2016年,AI的年度外部投资总额在80亿美金到120亿美金之间,其中机器学习占了近60%的投资. ...
- 无线WiFi通信模组方案,智能家居无线物联网应用,ESP32芯片模组技术
近年来,技术进步大幅增加了智能家居的可用性.硬件方面,芯片算力的升级.通讯技术的更新以及传感器功能的增强为智能家居发展提供技术基础:软件方面,边缘计算.人工智能催生出新型IoT系统,以实现万物互联. ...
- 制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)
实现的功能: l APP控制月球灯 l 本地月球灯控制 l APP控制"大白"颜色,实现各种颜色变身 l 门状态传感器状态APP显示 l 网络状态指示灯,连接服务器长亮, ...
- ESP32无线WiFi芯片模组,智能家电无线通信应用
Wi-Fi技术应用于新型小家电已经成为目前智能家电设计的一个趋势.智能家电通过Wi-Fi技术.手机APP让家电更加的智能化. 为用户构建了多样化.基于场景联动的物联网服务应用,如内嵌无线WiFi模组的 ...
- wifi摄像模组连接手机远程监控的操作方法,家里监控怎么连接手机远程监控
WiFi摄像机种类有很多,比如无线WiFi模组摄像机,4G无线远程监控摄像机,移动WiFi加WiFi摄像机组合配置.看到WiFi一词,那么我们想到的就是无线远程监控.利用无线WiFi传输数据,在手机下 ...
- SIMCOM-4G模组-A7670C_FASL-SOC二次开发-MQTT-2
** SIMCOM-4G模组-A7670C_FASL-SOC二次开发 两路MQTT 看不清的同学:指南文档 本资料仅仅提供学习使用 两路MQTT同时使用 文章目录 SIMCOM-4G模组-A7670C ...
最新文章
- 邮件服务器 文件服务器,搭建邮件、终端和文件服务器应用方案_服务器_服务器x86服务器-中关村在线...
- hadoop的同类技术_Hadoop 气数已尽:逃离复杂性,拥抱云计算
- [De1CTF2019]Babylfsr
- Java设计模式——为什么要用枚举实现单例模式(避免反射、序列化问题)
- @RequestParam和@RequestBody
- java instantiation,Instantiation of List (Java)
- hdu4410(Boomerang)(计算几何)
- jtree和mysql_Jtable和JTree的写法示例代码
- HDU2094 产生冠军【set】
- Linux/Unix/Mac OS下的远程访问和文件共享方式
- Pr入门系列之十四:处理音频
- 计算机网络——集线器与交换机
- 多路视频直播播放器系统框架
- java面试项目中遇到难题,大量教程
- 历代显卡精彩演示DEMO赏析点评之NV篇
- 雅诗兰黛中国创新研发中心在上海揭幕;安联贸易任命中国区行政总裁 | 美通企业日报...
- Python连接MySQL insert插入语句
- oracle 19c的卸载与安装
- 运维必备的DevOps工具链大盘点
- 新年促销扎堆,8个邮件营销方法打动你的客户
热门文章
- python代码怎么保存为pdf_python把ipynb文件转换成pdf文件过程详解
- lede 内核 单 编_openwrt详细设置教程,lede固件设置中文
- 华为第1书:《华为交换机学习指南》当当网预售中
- Android GPS定位
- ToStringBuilder、HashCodeBuilder、EqualsBuilder、ToStringStyle、ReflectionToStringBuilder等学习...
- idea启动报错,插件报错:internal error please refre to http://jb.gg/ide/critical-starup-error
- 【Android智能硬件开发】【010】安卓读写串口
- 08版新精粹45集实战技巧视频教程免费下载wordExcel
- 二、列表(java)
- 计算机二级基础知识栈的计算,计算机二级考试公共基础知识点:栈及其基本运算.doc...