声明:
由于固件、软件、镜像等持续更新,本文仅代表当前所使用版本的流畅安装记录。行文略长,关键代码处会配以截图展示,请自行对比是否存在差异导致安装失败!如有疏忽之处,还请见谅!刷机有风险,请慎重选择,一切源于本文造成的后果自负,笔者概不负责!
Linux反编译
根据XCray大佬文章需要换用启用了串口uart_A的dtb,网上找或自己编译(我是没有找到只能自己编译);原来的dtb默认都是禁用了这个串口。换dtb后ls /dev/tty*确认串口已出现在系统里。比如ttyAML1;
经过这几天的研究反编译修改meson-gxl-s905l3b-m302a.dtb,串口已经出现ttyAML6
感觉貌似是修复成功了!!!!我需要再测试看看有什么BUG。
操作步骤
首先了解自己是机顶盒用的是那款芯片,我的是螃蟹rtl8761btv。
1.更新系统内核及软件
我是重新安装 的armbian系统,第一步更新系统内核及软件(国外源我没有注释掉,我也没有测试国内镜像源是否会影响蓝牙修复)
命令处输入apt update && apt upgrade -y
2.安装蓝牙软件
在命令行输入armbian-config
回车
下面选择箭头所指的选项按回车
等待一下
选择箭头所指的选项按回车
安装完毕
看到这个界面退出即可
3.上传meson-gxl-s905l3b-m302a.dtb文件
将编译好的meson-gxl-s905l3b-m302a.dtb文件上传到以下目录
/boot/dtb/amlogic目录下,原始文件自己备份后,就可以删除上传自己编译的meson-gxl-s905l3b-m302a.dtb文件
4.上传rtl8761b_config文件
将2m波特率的config文件复制到/lib/firmware/rtl_bt/rtl8761b_config.bin
,系统自带的config文件备份后删除。
5.查询蓝牙状态
命令处输入systemctl status bluetooth
图示为蓝牙未启动,命令处输入systemctl start bluetooth
启动蓝牙,再次查询systemctl status bluetooth
手动按机顶盒开关机键,重启后命令处输入systemctl status bluetooth
命令处输入hciconfig
,用于配置和管理蓝牙适配器参数。可以使用hciconfig命令来查看蓝牙适配器的状态
查看蓝牙日志是否正常命令
dmesg | grep Bluetooth
正常的如下
下图是不正常的
下图是检查蓝牙是否正常命令
bluetoothctl 进入蓝牙终端控制界面
show 查看设备具体信息包括MAC和UUID
arent on
scan on 扫描周围蓝牙设备
史上最全的蓝牙调试工具【集合汇总】https://zhuanlan.zhihu/p/537174819
提取Android盒子中兴ZXV10 B860AV3.2-M dtb文件,查询GPIO编号
将668-中兴B860AV3.2-M_S905L3_9.0_EmotnUI艾蒙顿线刷固件包(内有教程及短接点)【亲测】.zip这个文件进行解压,得到中兴B860AV3.2-M_S905L3_9.0线刷包.img
文件
提取boot.img
1.将中兴B860AV3.2-M_S905L3_9.0线刷包.img
用解包工具进行解包,得到以下文件
2.解压boot.img,使用解包工具对boot.img
进行解包得到以下文件
3.boot.img-second
文件是gzip压缩后的dt.img,也就是dtb文件
4.将解压后的boot文件修改重命名为dt.img
提取独立的dtb文件
1.Linux系统下,由于包含了当前设备所有的dtb文件,故解压后需要利用extract-dtb提取独立的dtb文件
pip install extract-dtb #安装extract-dtb
extract-dtb dt.img #提取dtb文件
命令执行完毕,在执行路径会创建名字为dtb的目录,目录下的文件列表如下
2.转成dts文件
dtc -I dtb -O dts -o 01_dtbdump_Amlogic.dts 01_dtbdump_Amlogic.dtb
就会得到以下文件
3.查询01_dtbdump_Amlogic.dts文件中GPIO编号
XCray大佬原文如下:
其中<0x19>是bank@ff6346c0的phandle,0x53我就猜测是一个引脚编号。
(仿照这个放到armbian的dtb里,没有什么效果。)
然后armbian里用gpioinfo查看,这个bank里有85个引脚,编号0-84,0x53转换成10进制是83,感觉应该是它,于是就各种折腾它,没任何收获。
都快要放弃的时候,忽然注意到之前记录的安卓的/sys/kernel/debug/gpio显示为gpiochip1: GPIOs 410-495,这是86个呀,比armbian里的85多了一个,于是抱着试一下的想法试了试82,果真就是它!
按照大佬的思路,<0x15>是bank@4b0的phandle
然后armbian里用gpioinfo
查看,这个bank里有100个引脚,编号0-99,0x63转换成10进制是99
这里500-401也是100
在开心电视助手中连接机顶盒安卓系统,使用ADB Shell中输入 cat /sys/kernel/debug/gpio
安卓的/sys/kernel/debug/gpio显示为gpiochip1: GPIOs 398-500,这是103个呀,比armbian里的100多了三个!
最新进展:s905l3b机顶盒reboot重启蓝牙可以使用,测试正常。
测试正常
按照如下所示修改meson-gxl-s905l3b-m302a.dts
文件
将dts文档编译成dtb文档后,上传至/boot/dtb/amlogic/
目录下
参照XCray大佬的文档方法编辑bluetooth.service
文件
即可实现reboot命令后,蓝牙模块正常重启使用。(不明白的地方多看XCray大佬的文档!!!!!!)
参考文档:以下都是
XCray大佬文档
https://bbs.hassbian/thread-17377-1-1.html
https://bbs.hassbian/thread-17392-1-1.html
https://bbs.hassbian/thread-17335-1-1.html
https://bbs.hassbian/thread-18366-1-1.html
https://zhuanlan.zhihu/p/623245459?utm_id=0
https://zhuanlan.zhihu/p/675179282?utm_id=0
设备树学习文档
https://cloud.tencent/developer/article/2008640
https://wwwblogs/mjyrise/p/17919978.html
https://zhuanlan.zhihu/p/656691650
.dtb dtbo.img 转换成dts
由dtb反编译dts:
一、安装dtc
sudo apt-get install device-tree-compiler -y
二、转换.dtb格式的dtb
dtc -I dtb -O dts -o xxx.dts xxx.dtb
三、转换dtbo.img 为dts,
1、首先cd out/host/linux-x86/bin/
./mkdtimg dump dtbo.img -b xxx.dtb
2、然后在按照步骤二转换
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn/tengfeidx/article/details/122931107
提取Android盒子(CM201-1 YS)dtb文件
https://blog.csdn/qq_38189542/article/details/133758437
魔百盒m401a安装homeassistant(supervioser)
https://blog.csdn/weixin_47581951/article/details/130200370
CM311-1a安装HomeAssistant Supervisor (Hassio)&修复蓝牙—让你的电视盒子身价翻倍!
https://www.bilibili/read/cv18747183/
参考了众多的资料文档,经过这段时间的钻研,我收获了很多,技术提升需要时间慢慢积累钻研,而不是像小白一样到处询问,只要自己有钻研的精神问题总会被解决!!!
以下是我安装Home Assistant Supervised截图
已安装Home Assistant Supervised测试蓝牙正常。
声明:
由于固件、软件、镜像等持续更新,本文仅代表当前所使用版本的流畅安装记录。行文略长,关键代码处会配以截图展示,请自行对比是否存在差异导致安装失败!如有疏忽之处,还请见谅!刷机有风险,请慎重选择,一切源于本文造成的后果自负,笔者概不负责!
Linux反编译
根据XCray大佬文章需要换用启用了串口uart_A的dtb,网上找或自己编译(我是没有找到只能自己编译);原来的dtb默认都是禁用了这个串口。换dtb后ls /dev/tty*确认串口已出现在系统里。比如ttyAML1;
经过这几天的研究反编译修改meson-gxl-s905l3b-m302a.dtb,串口已经出现ttyAML6
感觉貌似是修复成功了!!!!我需要再测试看看有什么BUG。
操作步骤
首先了解自己是机顶盒用的是那款芯片,我的是螃蟹rtl8761btv。
1.更新系统内核及软件
我是重新安装 的armbian系统,第一步更新系统内核及软件(国外源我没有注释掉,我也没有测试国内镜像源是否会影响蓝牙修复)
命令处输入apt update && apt upgrade -y
2.安装蓝牙软件
在命令行输入armbian-config
回车
下面选择箭头所指的选项按回车
等待一下
选择箭头所指的选项按回车
安装完毕
看到这个界面退出即可
3.上传meson-gxl-s905l3b-m302a.dtb文件
将编译好的meson-gxl-s905l3b-m302a.dtb文件上传到以下目录
/boot/dtb/amlogic目录下,原始文件自己备份后,就可以删除上传自己编译的meson-gxl-s905l3b-m302a.dtb文件
4.上传rtl8761b_config文件
将2m波特率的config文件复制到/lib/firmware/rtl_bt/rtl8761b_config.bin
,系统自带的config文件备份后删除。
5.查询蓝牙状态
命令处输入systemctl status bluetooth
图示为蓝牙未启动,命令处输入systemctl start bluetooth
启动蓝牙,再次查询systemctl status bluetooth
手动按机顶盒开关机键,重启后命令处输入systemctl status bluetooth
命令处输入hciconfig
,用于配置和管理蓝牙适配器参数。可以使用hciconfig命令来查看蓝牙适配器的状态
查看蓝牙日志是否正常命令
dmesg | grep Bluetooth
正常的如下
下图是不正常的
下图是检查蓝牙是否正常命令
bluetoothctl 进入蓝牙终端控制界面
show 查看设备具体信息包括MAC和UUID
arent on
scan on 扫描周围蓝牙设备
史上最全的蓝牙调试工具【集合汇总】https://zhuanlan.zhihu/p/537174819
提取Android盒子中兴ZXV10 B860AV3.2-M dtb文件,查询GPIO编号
将668-中兴B860AV3.2-M_S905L3_9.0_EmotnUI艾蒙顿线刷固件包(内有教程及短接点)【亲测】.zip这个文件进行解压,得到中兴B860AV3.2-M_S905L3_9.0线刷包.img
文件
提取boot.img
1.将中兴B860AV3.2-M_S905L3_9.0线刷包.img
用解包工具进行解包,得到以下文件
2.解压boot.img,使用解包工具对boot.img
进行解包得到以下文件
3.boot.img-second
文件是gzip压缩后的dt.img,也就是dtb文件
4.将解压后的boot文件修改重命名为dt.img
提取独立的dtb文件
1.Linux系统下,由于包含了当前设备所有的dtb文件,故解压后需要利用extract-dtb提取独立的dtb文件
pip install extract-dtb #安装extract-dtb
extract-dtb dt.img #提取dtb文件
命令执行完毕,在执行路径会创建名字为dtb的目录,目录下的文件列表如下
2.转成dts文件
dtc -I dtb -O dts -o 01_dtbdump_Amlogic.dts 01_dtbdump_Amlogic.dtb
就会得到以下文件
3.查询01_dtbdump_Amlogic.dts文件中GPIO编号
XCray大佬原文如下:
其中<0x19>是bank@ff6346c0的phandle,0x53我就猜测是一个引脚编号。
(仿照这个放到armbian的dtb里,没有什么效果。)
然后armbian里用gpioinfo查看,这个bank里有85个引脚,编号0-84,0x53转换成10进制是83,感觉应该是它,于是就各种折腾它,没任何收获。
都快要放弃的时候,忽然注意到之前记录的安卓的/sys/kernel/debug/gpio显示为gpiochip1: GPIOs 410-495,这是86个呀,比armbian里的85多了一个,于是抱着试一下的想法试了试82,果真就是它!
按照大佬的思路,<0x15>是bank@4b0的phandle
然后armbian里用gpioinfo
查看,这个bank里有100个引脚,编号0-99,0x63转换成10进制是99
这里500-401也是100
在开心电视助手中连接机顶盒安卓系统,使用ADB Shell中输入 cat /sys/kernel/debug/gpio
安卓的/sys/kernel/debug/gpio显示为gpiochip1: GPIOs 398-500,这是103个呀,比armbian里的100多了三个!
最新进展:s905l3b机顶盒reboot重启蓝牙可以使用,测试正常。
测试正常
按照如下所示修改meson-gxl-s905l3b-m302a.dts
文件
将dts文档编译成dtb文档后,上传至/boot/dtb/amlogic/
目录下
参照XCray大佬的文档方法编辑bluetooth.service
文件
即可实现reboot命令后,蓝牙模块正常重启使用。(不明白的地方多看XCray大佬的文档!!!!!!)
参考文档:以下都是
XCray大佬文档
https://bbs.hassbian/thread-17377-1-1.html
https://bbs.hassbian/thread-17392-1-1.html
https://bbs.hassbian/thread-17335-1-1.html
https://bbs.hassbian/thread-18366-1-1.html
https://zhuanlan.zhihu/p/623245459?utm_id=0
https://zhuanlan.zhihu/p/675179282?utm_id=0
设备树学习文档
https://cloud.tencent/developer/article/2008640
https://wwwblogs/mjyrise/p/17919978.html
https://zhuanlan.zhihu/p/656691650
.dtb dtbo.img 转换成dts
由dtb反编译dts:
一、安装dtc
sudo apt-get install device-tree-compiler -y
二、转换.dtb格式的dtb
dtc -I dtb -O dts -o xxx.dts xxx.dtb
三、转换dtbo.img 为dts,
1、首先cd out/host/linux-x86/bin/
./mkdtimg dump dtbo.img -b xxx.dtb
2、然后在按照步骤二转换
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn/tengfeidx/article/details/122931107
提取Android盒子(CM201-1 YS)dtb文件
https://blog.csdn/qq_38189542/article/details/133758437
魔百盒m401a安装homeassistant(supervioser)
https://blog.csdn/weixin_47581951/article/details/130200370
CM311-1a安装HomeAssistant Supervisor (Hassio)&修复蓝牙—让你的电视盒子身价翻倍!
https://www.bilibili/read/cv18747183/
参考了众多的资料文档,经过这段时间的钻研,我收获了很多,技术提升需要时间慢慢积累钻研,而不是像小白一样到处询问,只要自己有钻研的精神问题总会被解决!!!
以下是我安装Home Assistant Supervised截图
已安装Home Assistant Supervised测试蓝牙正常。