赞
踩
由于固件、软件、镜像等持续更新,本文仅代表当前所使用版本的流畅安装记录。行文略长,关键代码处会配以截图展示,请自行对比是否存在差异导致安装失败!如有疏忽之处,还请见谅!刷机有风险,请慎重选择,一切源于本文造成的后果自负,笔者概不负责!
根据XCray大佬文章需要换用启用了串口uart_A的dtb,网上找或自己编译(我是没有找到只能自己编译);原来的dtb默认都是禁用了这个串口。换dtb后ls /dev/tty*确认串口已出现在系统里。比如ttyAML1;
经过这几天的研究反编译修改meson-gxl-s905l3b-m302a.dtb,串口已经出现ttyAML6
感觉貌似是修复成功了!!!!我需要再测试看看有什么BUG。
首先了解自己是机顶盒用的是那款芯片,我的是螃蟹rtl8761btv。
我是重新安装 的armbian系统,第一步更新系统内核及软件(国外源我没有注释掉,我也没有测试国内镜像源是否会影响蓝牙修复)
命令处输入apt update && apt upgrade -y
在命令行输入armbian-config
回车
下面选择箭头所指的选项按回车
等待一下
选择箭头所指的选项按回车
安装完毕
看到这个界面退出即可
将编译好的meson-gxl-s905l3b-m302a.dtb文件上传到以下目录
/boot/dtb/amlogic目录下,原始文件自己备份后,就可以删除上传自己编译的meson-gxl-s905l3b-m302a.dtb文件
将2m波特率的config文件复制到/lib/firmware/rtl_bt/rtl8761b_config.bin
,系统自带的config文件备份后删除。
命令处输入systemctl status bluetooth
图示为蓝牙未启动,命令处输入systemctl start bluetooth
启动蓝牙,再次查询systemctl status bluetooth
手动按机顶盒开关机键,重启后命令处输入systemctl status bluetooth
命令处输入hciconfig
,用于配置和管理蓝牙适配器参数。可以使用hciconfig命令来查看蓝牙适配器的状态
查看蓝牙日志是否正常
正常的如下
下图是不正常的
下图是检查蓝牙是否正常命令
将668-中兴B860AV3.2-M_S905L3_9.0_EmotnUI艾蒙顿线刷固件包(内有教程及短接点)【亲测】.zip这个文件进行解压,得到中兴B860AV3.2-M_S905L3_9.0线刷包.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
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编号
其中<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多了三个!
按照大佬说的方法多次测试,各种折腾无果。这是我参照大佬的帖子,目前无法测试出reboot命令重启机顶盒正常使用蓝牙的方法。
https://github.com/ophub/amlogic-s9xxx-armbian/issues/639
https://bbs.hassbian.com/thread-17392-1-1.html
https://bbs.hassbian.com/thread-18366-1-1.html
目前正在研究dts文件中,我怀疑我编辑的dts文档有问题!!!!!!!
https://cloud.tencent.com/developer/article/2008640
http://www.360doc.com/content/19/0308/16/496343_820109770.shtml
可是我不知道怎么去“拉低”这个引脚(根据安卓dts判断好像是gpiochip0的83号)。 gpiod装了,试过gpioset,不行(原来没用过这个)。
经过苦苦思索和搜索,搜索和思索,外加尝试,终于搞定了。具体方法见65楼。这样直接reboot重启蓝牙也可以继续工作了。
(以上是大佬原文中问题的解决办法)
1.无法通过reboot命令实现重启时复位蓝牙电路的问题,手动按开关机键可以复位蓝牙电路,实现重启后才可以继续操控蓝牙。
reboot蓝牙用不了
手动按开关机键后蓝牙正常
查询了半天资料,没有公开的资料,感觉只能靠猜测试GPIO的编号!!我提取盒子内的安卓系统dtb,目前GPIO编号已获得还未开展测试。(测试了一段时间我解决不了)
已安装Home Assistant Supervised测试蓝牙正常。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。