『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
楼主: XCray

[技术探讨] 【23年7月更】Armbian 系统 RTL8761BTV 蓝牙的最正确食用方式

  [复制链接]

0

主题

18

帖子

182

积分

注册会员

Rank: 2

积分
182
金钱
164
HASS币
0
发表于 2022-12-1 13:07:55 | 显示全部楼层
本帖最后由 lkkme 于 2022-12-1 13:09 编辑

大佬们求助,我的M401A,2+16g,用的5.9的内核,dtb和解码的dts如附件所示。
我修改了dts,
  serial@24000 {
                                compatible = "amlogic,meson-gx-uart";
                                reg = <0x00 0x24000 0x00 0x18>;
                                interrupts = <0x00 0x1a 0x01>;
                                clocks = <0x19 0x02 0x1c 0x19>;
                                clock-names = "xtal\0pclk\0baud";
                                status = "okay";
                                fifosize = <0x80>;
                                pinctrl-names = "default";
                                pinctrl-0 = <0x30 0x31>;
                                uart-has-rtscts;
                                phandle = <0x126>;
                                bluetooth {
                                        compatible = "realtek,rtl8761btv";
                                };
                        };

重新编译后,下电重启后dmesg如下:
root@arm-64:~# dmesg|grep tty
[    0.000000] Kernel command line: root=LABEL=ROOT_EMMC rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0
[    0.000556] printk: console [tty0] enabled
[    1.842041] ff803000.serial: ttyAML0 at MMIO 0xff803000 (irq = 14, base_baud = 1500000) is a meson_uart
[    2.909273] printk: console [ttyAML0] enabled
[    2.914290] ffd24000.serial: ttyAML1 at MMIO 0xffd24000 (irq = 22, base_baud = 1500000) is a meson_uart
[    2.923021] serial serial0: tty port ttyAML1 registered
[    5.547912] systemd[1]: Created slice system-serial\x2dgetty.slice.
[    6.451309] systemd[1]: Found device /dev/ttyS2.
[    6.523436] systemd[1]: Found device /dev/ttyAML0.
root@arm-64:~# dmesg|grep serial
[    1.842041] ff803000.serial: ttyAML0 at MMIO 0xff803000 (irq = 14, base_baud = 1500000) is a meson_uart
[    2.914290] ffd24000.serial: ttyAML1 at MMIO 0xffd24000 (irq = 22, base_baud = 1500000) is a meson_uart
[    2.923021] serial serial0: tty port ttyAML1 registered
[    3.026630] meson-g12a-pinctrl ff634400.bus:pinctrl@40: pin GPIOC_0 already requested by ffd24000.serial; cannot claim for ffe05000.sd
[    5.547912] systemd[1]: Created slice system-serial\x2dgetty.slice.

识别到了蓝牙的串口,但是系统里ls /dev/ttyAML*找不到此设备,只能看到ttyAML0
感觉是不是还是pinctl-0写的有问题,试了<0x55 0x56>,dmesg会报错

u200-dtbdts.zip

18.72 KB, 下载次数: 0

回复

使用道具 举报

0

主题

18

帖子

182

积分

注册会员

Rank: 2

积分
182
金钱
164
HASS币
0
发表于 2022-12-1 23:55:59 | 显示全部楼层
换了22c的dtb后,可以识别蓝牙了,
root@arm-64:~# hciconfig -a
hci0:   Type: Primary  Bus: UART
        BD Address: xxxxxxxxxxx  ACL MTU: 1021:5  SCO MTU: 255:11
        DOWN 
        RX bytes:3340 acl:0 sco:0 events:155 errors:0
        TX bytes:32955 acl:0 sco:0 commands:155 errors:0
        Features: 0xff 0xff 0xff 0xfe 0xdb 0xfd 0x7b 0x87
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
        Link policy: RSWITCH HOLD SNIFF PARK 
        Link mode: SLAVE ACCEPT 

root@arm-64:~# 


但是执行hciconfig hci0 up会报错
root@arm-64:~# hciconfig hci0 up
Can't init device hci0: Invalid argument (22)
root@arm-64:~# dmesg|grep hci
[    6.998438] Bluetooth: hci0: RTL: examining hci_ver=0a hci_rev=000b lmp_ver=0a lmp_subver=8761
[    7.001859] Bluetooth: hci0: RTL: rom_version status=0 version=1
[    7.001865] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761b_fw.bin
[    7.006071] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761b_config.bin
[    7.027437] Bluetooth: hci0: RTL: cfg_sz 81, total sz 30005
[   10.366154] Bluetooth: hci0: RTL: fw version 0x0ca98a6b
[   30.637389] Bluetooth: hci0: RTL: examining hci_ver=0a hci_rev=0ca9 lmp_ver=0a lmp_subver=8a6b
[   30.637402] Bluetooth: hci0: RTL: unknown IC info, lmp subver 8a6b, hci rev 0ca9, hci ver 000a
[   30.637406] Bluetooth: hci0: RTL: no config loaded

回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
11445
金钱
8514
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2022-12-13 07:58:18 | 显示全部楼层
lkkme 发表于 2022-12-1 23:55
换了22c的dtb后,可以识别蓝牙了,

但是执行hciconfig hci0 up会报错

最后一行已经说清楚问题了,还不明白的话慢慢看帖吧
回复

使用道具 举报

0

主题

18

帖子

182

积分

注册会员

Rank: 2

积分
182
金钱
164
HASS币
0
发表于 2022-12-13 19:13:02 | 显示全部楼层
XCray 发表于 2022-12-13 07:58
最后一行已经说清楚问题了,还不明白的话慢慢看帖吧

感谢回复
不过看来你并没有仔细看我的帖子,以为大家都是不仔细看报错信息来浪费时间的。
您的帖子也仔细看了,各种操作都没有问题,之前5.9的armbian用了大半年了,不像重新刷系统,后来升级到了5.15的内核就好了。
网上目前能找到的驱动估计是和5.9的内核不兼容或者其他什么原因,想过把驱动源码在5.9编译一遍,后来不想折腾了。其他用5.9内核驱动蓝牙的朋友们可以参考
回复

使用道具 举报

0

主题

3

帖子

30

积分

新手上路

Rank: 1

积分
30
金钱
27
HASS币
0
发表于 2022-12-20 10:42:03 | 显示全部楼层
感谢!试看看
回复

使用道具 举报

7

主题

1072

帖子

3361

积分

论坛元老

Rank: 8Rank: 8

积分
3361
金钱
2289
HASS币
0
发表于 2022-12-20 11:50:42 | 显示全部楼层
回复

使用道具 举报

3

主题

295

帖子

2864

积分

金牌会员

Rank: 6Rank: 6

积分
2864
金钱
2569
HASS币
0
发表于 2022-12-31 11:54:44 | 显示全部楼层
隔壁的王叔叔 发表于 2022-12-20 11:50
https://github.com/ophub/amlogic-s9xxx-armbian/issues/742
大佬,再研究研究这个

有突破了吗?直接驱动3.5mm口确实方便很多,不用外挂转接器了
回复

使用道具 举报

7

主题

1072

帖子

3361

积分

论坛元老

Rank: 8Rank: 8

积分
3361
金钱
2289
HASS币
0
发表于 2022-12-31 21:49:44 | 显示全部楼层
iamhyde 发表于 2022-12-31 11:54
有突破了吗?直接驱动3.5mm口确实方便很多,不用外挂转接器了

没有突破,只会抄作业
回复

使用道具 举报

0

主题

14

帖子

124

积分

注册会员

Rank: 2

积分
124
金钱
110
HASS币
0
发表于 2023-2-1 15:58:51 | 显示全部楼层
XCray 发表于 2022-10-29 11:46
附:dtc简单用法
反编译,即由二进制dtb得到dts源码:
反编译出来的dts删除无用行:

小米盒子4,rtl8723ds蓝牙芯片,按这个思路,反编译dtb后增加连接蓝牙电路的串口uart_A,再编译报错,大佬知道咋整不?
root@arm-64:/home/elon# dtc -I dts -O dtb -o meson-gxl-s905x-p212.dtb target.dts
Error: target.dts:1661.1-8 Label or path uart_A not found
FATAL ERROR: Syntax error parsing input tree



回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
11445
金钱
8514
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2023-2-5 10:42:02 | 显示全部楼层
hu516 发表于 2023-2-1 15:58
小米盒子4,rtl8723ds蓝牙芯片,按这个思路,反编译dtb后增加连接蓝牙电路的串口uart_A,再编译报错,大 ...

语法错误
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-27 11:46 , Processed in 0.061312 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表