ophub / amlogic-s9xxx-armbian

Support for Armbian in Amlogic, Rockchip and Allwinner boxes. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, rk3568, rk3399, rk3328, h6, etc.
GNU General Public License v2.0
5.45k stars 1.74k forks source link

N1 5.15.100 蓝牙无法使用 #1202

Closed tangos closed 1 year ago

tangos commented 1 year ago

Standard chat template, no routine, no chat. 标准聊天模板,无套路不聊天。

Device Information | 设备信息

Armbian Version | 系统版本

Describe the bug | 问题描述 Can't read local name on hci0: Connection timed out (110)

root@armbian:/lib/firmware/brcm# dmesg | grep Blue [ 11.500565] Bluetooth: Core ver 2.22 [ 11.500617] Bluetooth: Starting self testing [ 11.520386] Bluetooth: ECDH test passed in 14645 usecs [ 11.538692] Bluetooth: SMP test passed in 17741 usecs [ 11.538964] Bluetooth: Finished self testing [ 11.547729] Bluetooth: HCI device and connection manager initialized [ 11.564627] Bluetooth: HCI socket layer initialized [ 11.567193] Bluetooth: L2CAP socket layer initialized [ 11.572270] Bluetooth: SCO socket layer initialized [ 11.694824] Bluetooth: HCI UART driver ver 2.3 [ 11.694881] Bluetooth: HCI UART protocol H4 registered [ 11.714584] Bluetooth: HCI UART protocol BCSP registered [ 11.715046] Bluetooth: HCI UART protocol LL registered [ 11.720101] Bluetooth: HCI UART protocol ATH3K registered [ 11.734916] Bluetooth: HCI UART protocol Three-wire (H5) registered [ 11.737540] Bluetooth: HCI UART protocol Intel registered [ 11.741784] Bluetooth: HCI UART protocol Broadcom registered [ 11.761698] Bluetooth: HCI UART protocol QCA registered [ 11.773689] Bluetooth: HCI UART protocol AG6XX registered [ 11.780516] Bluetooth: HCI UART protocol Marvell registered [ 12.136691] Bluetooth: hci0: BCM: chip id 107 [ 12.140741] Bluetooth: hci0: BCM: features 0x2f [ 12.146409] Bluetooth: hci0: BCM4345C0 [ 12.148657] Bluetooth: hci0: BCM4345C0 (003.001.025) build 0000 [ 12.163458] Bluetooth: hci0: BCM4345C0 'brcm/BCM4345C0.hcd' Patch [ 12.993989] Bluetooth: hci0: BCM4345C0 UART 37.4 MHz wlbga_ref_iLNA_iTR_eLG [Baseline: 0143] [ 12.996892] Bluetooth: hci0: BCM4345C0 (003.001.025) build 0230 [ 23.936764] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 23.941082] Bluetooth: BNEP filters: protocol multicast [ 23.946269] Bluetooth: BNEP socket layer initialized [ 985.212716] Bluetooth: hci0: command 0x0c14 tx timeout

root@armbian:~# hciconfig -a hci0: Type: Primary Bus: UART BD Address: 43:45:C0:00:1F:AC ACL MTU: 1021:8 SCO MTU: 64:1 UP RUNNING RX bytes:4470 acl:0 sco:0 events:438 errors:0 TX bytes:68926 acl:0 sco:0 commands:439 errors:0 Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: RSWITCH SNIFF Link mode: SLAVE ACCEPT Can't read local name on hci0: Connection timed out (110) root@armbian:~#

root@armbian:~# bluetoothctl Agent registered [CHG] Controller 43:45:C0:00:1F:AC Pairable: yes [bluetooth]# power on Changing power on succeeded [bluetooth]# agent on Agent is already registered [bluetooth]# default-agent Default agent request successful [bluetooth]# scan on Failed to start discovery: org.bluez.Error.InProgress [bluetooth]#

之前只有windows 用过蓝牙 没有其它系统的经验, 请指教!

13584452567 commented 1 year ago

固件版本问题,需要firmware仓库更新固件。

是我记错了,AP6255在5.15内核加载蓝牙固件貌似都会报错超时

ophub commented 1 year ago

armbian-update 更新到最新内核试试

ophub commented 1 year ago

@13584452567 之前版本wifi有问题,最新版内核修复了这个问题,你把h6的内核也升级到最新版吧。

13584452567 commented 1 year ago

@13584452567 之前版本wifi有问题,最新版内核修复了这个问题,你把h6的内核也升级到最新版吧。

嗯,好

tangos commented 1 year ago

armbian-update -K 6.1.18 系统重启 进不了系统,卡到开机LOGO界面,

重新下载了 Armbian_23.05.0_amlogic_s905d_bullseye_5.15.103_server_2023.03.21.img Armbian_23.05.0_amlogic_s905d_bullseye_6.1.20_server_2023.03.21.img 两个U盘分别写入两个镜像

6.1.20 无法启动, 界面如下: 3555c6f0660ae99203c6a8e4efe5cf1

5.15.103 可以启动, 正在 apt update, aptupgrade 中 一会再接着尝试蓝牙

tangos commented 1 year ago

Armbian_23.05.0_amlogic_s905d_bullseye_6.1.20_server_2023.03.21.img 直接写U盘 不能启动,

另一个U盘 5.15.103 同样蓝牙超, armbian-update -k 6.1.20

启动也出现,上面那图中的信息, 一闪而过,可以正常启动

root@armbian:~# hciconfig -a hci0: Type: Primary Bus: UART BD Address: 43:45:C0:00:1F:AC ACL MTU: 1021:8 SCO MTU: 64:1 UP RUNNING RX bytes:4471 acl:0 sco:0 events:437 errors:0 TX bytes:68916 acl:0 sco:0 commands:437 errors:0 Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: RSWITCH SNIFF Link mode: SLAVE ACCEPT Name: 'armbian' Class: 0x000000 Service Classes: Unspecified Device Class: Miscellaneous, HCI Version: 4.2 (0x8) Revision: 0xe6 LMP Version: 4.2 (0x8) Subversion: 0x6119 Manufacturer: Broadcom Corporation (15)

blutoochctl scan on

[CHG] Controller 43:45:C0:00:1F:AC Discovering: yes [NEW] Device 62:1E:E7:35:B0:35 62-1E-E7-35-B0-35 [NEW] Device 59:3C:A5:65:9F:02 59-3C-A5-65-9F-02 [CHG] Device 40:24:B2:45:B9:7C RSSI: -80 [CHG] Device 40:24:B2:45:B9:7C ManufacturerData Key: 0x00cc [CHG] Device 40:24:B2:45:B9:7C ManufacturerData Value: 43 43 84 2c 80 eb 9a 9b 0b CC.,..... [NEW] Device 4F:AE:0D:0D:33:51 4F-AE-0D-0D-33-51 [CHG] Device 42:B6:2B:61:20:61 RSSI: -88 [DEL] Device 7E:F0:F0:D8:06:81 7E-F0-F0-D8-06-81 [DEL] Device 46:B8:39:87:2A:AF 46-B8-39-87-2A-AF

有节选,要不太多行了 NEW 了之后,马上以DEL了

[bluetooth]# default-agent Default agent request successful [bluetooth]# scan on Discovery started [bluetooth]# scan on Failed to start discovery: org.bluez.Error.InProgress

dmesg | grep Blue 以出现下面的错误 [ 202.135709] Bluetooth: hci0: command 0x200c tx timeout [ 202.135709] Bluetooth: hci0: Opcode 0x200c failed: -110 [ 202.135737] Bluetooth: hci0: Unable to disable scanning: -110 [ 204.183657] Bluetooth: hci0: command 0x0401 tx timeout [ 204.183657] Bluetooth: hci0: Opcode 0x 401 failed: -110 [ 542.483994] Bluetooth: hci0: command 0x200c tx timeout [ 542.483994] Bluetooth: hci0: Opcode 0x200c failed: -110 [ 542.484025] Bluetooth: hci0: Unable to disable scanning: -110 [ 547.315870] Bluetooth: hci0: command 0x0401 tx timeout

重启,再试 情况一样,大概可以扫描到设备 2分钟左右 就再次出现 timeout

tangos commented 1 year ago

armbian-update -k 6.1.21 -b no 内核升级到6.1.21 问题依旧, 刚开始蓝牙可以搜索, 没有多久,以timeout 需要更新DTB吗

virusdefender commented 1 year ago

同样的问题,重启后能用一会,然后 hciconfig hci0 up 之类的就 timeout 了

最新的系统 Armbian_23.05.0_amlogic_s905d_bullseye_5.15.108_server_2023.04.22.img.gz

kuoruan commented 1 year ago

换了个树莓派的蓝牙驱动,现在正常了: https://github.com/RPi-Distro/bluez-firmware/raw/master/broadcom/BCM4345C0.hcd

替换 /lib/firmware/brcm 下的同名文件

ophub commented 1 year ago

Snip20230505_10 Snip20230505_11

https://github.com/ophub/firmware/tree/main/firmware/brcm 我把你从树莓派下载的文件和我仓库里的文件进行了sha256sum比较,是完全相同的文件。

kuoruan commented 1 year ago

@ophub 老文件我 hash 过,不是一样的

我用的 5 月 2 号的 bullseye Armbian_23.05.0_amlogic_s905d_bullseye_6.1.27_server_2023.05.02.img.gz

ophub commented 1 year ago

肯定一样,我刚才先是上传你的这个文件提交下firmware更新,结果提示无更新,然后我就sha256sum比较了下我下载你的这个和服务器的,结果一样。

ophub commented 1 year ago

https://github.com/ophub/firmware/raw/main/firmware/brcm/BCM4345C0.hcd https://github.com/RPi-Distro/bluez-firmware/raw/master/broadcom/BCM4345C0.hcd 你下载比较下 sha256sum BCM4345C0.hcd

kuoruan commented 1 year ago

@ophub 刚刚重新刷了一个 Ubuntu Armbian_23.05.0_amlogic_s905d_bullseye_6.1.27_server_2023.05.05.img.gz

里边的 BCM4345C0.hcd 也不对,蓝牙用一段时间就超时了 image

image

  1. 文件权限值为 755,修改时间为 2 月 11 号
  2. 文件的 hash 值为:8bbf245399e66f68304ba0f9185159dd1d557c48b534f2e7be75e2e0f4cb4a9a
ophub commented 1 year ago

终于找到原因了。Armbian底包里自带了2个*.hcd文件,正好就是N1的这个蓝牙驱动,我把这个移动到brcm覆盖了正常文件导致了这个bug。现在我已经更正了处理,删除上层错误文件了。 很久以前这个驱动是放在上层目录的,后来我在brcm里添加了,忘记删除上层过期文件了。

https://github.com/ophub/amlogic-s9xxx-armbian/commit/e6bb084d7350902dbcc6ecc7ebae64335de13b0a

Snip20230506_4