最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

4.机顶盒晶晨s905l3b芯片--armbian系统Homeassistant蓝牙修复篇

业界 admin 13浏览 0评论

声明:

由于固件、软件、镜像等持续更新,本文仅代表当前所使用版本的流畅安装记录。行文略长,关键代码处会配以截图展示,请自行对比是否存在差异导致安装失败!如有疏忽之处,还请见谅!刷机有风险,请慎重选择,一切源于本文造成的后果自负,笔者概不负责!

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测试蓝牙正常。


发布评论

评论列表 (0)

  1. 暂无评论