请选择 进入手机版 | 继续访问电脑版

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

 找回密码
 立即注册
查看: 1144|回复: 14

尝试斐讯N1在armbian系统连接蓝牙音箱

[复制链接]

5

主题

71

帖子

456

积分

论坛分享达人

积分
456
金钱
385
HASS币
10
发表于 2021-1-15 14:29:08 | 显示全部楼层 |阅读模式
想尝试用N1连接蓝牙音箱,系统是armbian 5.99,登陆进去的欢迎语写的是Debian Buster with Armbian Linux 5.3.0-aml-g12,固件来源itcommander。也尝试过更换低版本系统,以下为尝试记录,都失败了。方法一:pulseaudio
我参考的帖子有:
https://bbs.hassbian.com/thread-30-1-1.html
https://bbs.hassbian.com/thread-8668-1-1.html
http://niminghao.com/post/raspberry-pi-with-bluetooth-speaker/
https://aisoa.cn/post-2832.html
https://bbs.hassbian.com/forum.php?mod=viewthread&tid=2684
1.登录N1的ssh,输入:
armbian-config
选择network,BTinstall,安装蓝牙组件。2.安装pulseaudio
sudo apt install pulseaudio-module-bluetooth
3.安装完成后执行重启pulseaudio。启动的时候用的是非root账户。
sudo killall pulseaudio
pulseaudio --start
4.查看蓝牙控制器信息
sudo hciconfig -a
正常,可以获取到蓝牙地址
[email protected]:~# sudo hciconfig -a
hci1:        Type: Primary  Bus: SDIO
        BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
        DOWN 
        RX bytes:0 acl:0 sco:0 events:0 errors:0
        TX bytes:0 acl:0 sco:0 commands:0 errors:0
        Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
        Packet type: DM1 DH1 HV1 
        Link policy: 
        Link mode: SLAVE ACCEPT 

hci0:        Type: Primary  Bus: UART
        BD Address: 43:45:C0:00:1F:AC  ACL MTU: 1021:8  SCO MTU: 64:1
        UP RUNNING PSCAN 
        RX bytes:3940 acl:0 sco:0 events:396 errors:0
        TX bytes:61070 acl:0 sco:0 commands:396 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: 'hassio'
        Class: 0x2c041c
        Service Classes: Rendering, Capturing, Audio
        Device Class: Audio/Video, Portable Audio
        HCI Version: 5.0 (0x9)  Revision: 0x122
        LMP Version: 5.0 (0x9)  Subversion: 0x6119
        Manufacturer: Cypress Semiconductor Corporation (305)
输入
sudo hciconfig hci0 up


5.打开蓝牙管理器
bluetoothctl
一切正常,配对成功,音箱播报配对成功,系统显示音箱名字,输入Info,可以查看音箱配对信息。 输入exit退出。
<blockquote>[小爱音箱-0088]# info
查看声卡信息
pacmd list-sinks
提示:
[email protected]:~# pacmd list-sinks
1 sink(s) available.
  * index: 0
        name: <auto_null>
        driver: <module-null-sink.c>
        flags: DECIBEL_VOLUME LATENCY FLAT_VOLUME DYNAMIC_LATENCY
        state: IDLE
        suspend cause: (none)
        priority: 1000
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        base volume: 65536 / 100% / 0.00 dB
        volume steps: 65537
        muted: no
        current latency: 1122.93 ms
        max request: 344 KiB
        max rewind: 344 KiB
        monitor source: 0
        sample spec: s16le 2ch 44100Hz
        channel map: front-left,front-right
                     Stereo
        used by: 0
        linked by: 0
        configured latency: 2000.00 ms; range is 0.50 .. 2000.00 ms
        module: 14
        properties:
                device.description = "Dummy Output"
                device.class = "abstract"
                device.icon_name = "audio-card"
根本没有读取到蓝牙音箱信息。
pactl list sinks

不管查询什么信息都是0声卡。
[email protected]:~# pactl list sinks
Sink #0
        State: SUSPENDED
        Name: auto_null
        Description: Dummy Output
        Driver: module-null-sink.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 14
        Mute: no
        Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        Base Volume: 65536 / 100% / 0.00 dB
        Monitor Source: auto_null.monitor
        Latency: 0 usec, configured 0 usec
        Flags: DECIBEL_VOLUME LATENCY 
        Properties:
                device.description = "Dummy Output"
                device.class = "abstract"
                device.icon_name = "audio-card"
        Formats:
                pcm

[email protected]:~# pactl info
Server String: /run/user/0/pulse/native
Library Protocol Version: 32
Server Protocol Version: 32
Is Local: yes
Client Index: 36
Tile Size: 65472
User Name: root
Host Name: hassio
Server Name: pulseaudio
Server Version: 12.2
Default Sample Specification: s16le 2ch 44100Hz
Default Channel Map: front-left,front-right
Default Sink: auto_null
Default Source: auto_null.monitor
Cookie: bc15:2647
[email protected]:~# systemctl status bluetooth
● bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2021-01-15 05:36:41 UTC; 20min ago
     Docs: man:bluetoothd(8)
 Main PID: 780 (bluetoothd)
   Status: "Running"
    Tasks: 1 (limit: 1081)
   Memory: 1.6M
   CGroup: /system.slice/bluetooth.service
           └─780 /usr/lib/bluetooth/bluetoothd --noplugin=sap

Jan 15 05:38:16 hassio bluetoothd[780]: Endpoint registered: sender=:1.90 path=/MediaEndpoint/A2DPSink/sbc
Jan 15 05:38:16 hassio bluetoothd[780]: Endpoint registered: sender=:1.90 path=/MediaEndpoint/A2DPSource/sbc
Jan 15 05:50:29 hassio bluetoothd[780]: /org/bluez/hci0/dev_9C_9D_7E_35_D1_D3/fd0: fd(24) ready
Jan 15 05:53:15 hassio bluetoothd[780]: Endpoint registered: sender=:1.196 path=/MediaEndpoint/A2DPSource
Jan 15 05:53:15 hassio bluetoothd[780]: Endpoint registered: sender=:1.196 path=/MediaEndpoint/A2DPSink
Jan 15 05:53:16 hassio bluetoothd[780]: RFCOMM server failed for Headset Voice gateway: rfcomm_bind: Address already in use (98)
Jan 15 05:53:55 hassio bluetoothd[780]: Endpoint registered: sender=:1.252 path=/MediaEndpoint/A2DPSource
Jan 15 05:53:55 hassio bluetoothd[780]: Endpoint registered: sender=:1.252 path=/MediaEndpoint/A2DPSink
Jan 15 05:53:55 hassio bluetoothd[780]: RFCOMM server failed for Headset Voice gateway: rfcomm_bind: Address already in use (98)
Jan 15 05:53:55 hassio bluetoothd[780]: RFCOMM server failed for :1.252/Profile/HSPHSProfile/00001108-0000-1000-8000-00805f9b34fb: rfc
蓝牙状态确实有问题,有报错,但是换低版本系统,换外置蓝牙模块,重装pulseaudio均无法解决。
但是如果断开蓝牙,插USB声卡,执行播放命令是有声音的,pulseaudio尝试结束。


方法二:bluealsa
参考链接:
https://leeyr.com/327.html
https://bbs.hassbian.com/thread-5375-1-1.html
https://blog.csdn.net/weixin_45820944/article/details/104236412
https://forum.armbian.com/topic/6480-bluealsa-bluetooth-audio-using-alsa-not-pulseaudio/
https://www.sigmdel.ca/michel/ha/opi/opipc2_bluetooth_en.html
http://niminghao.com/post/raspberry-pi-with-bluetooth-speaker/
https://blog.csdn.net/lee_jimmy/article/details/96739656

1.输入
sudo apt-get install bluealsa
很不幸的是bluealsa好像树莓派里面才有,斐讯N1是没有的,网上所谓换源等方法都没有用,你只能得到报错
E: Unable to locate package bluealsa
2.那么就尝试编译bluealsa,我找到了如何在香橙派上面编译bluealsa的参考资料
sudo apt install libtool -y
中间遇到过缺少文件的报错,我第二次运行编译的时候就不报错了。更详细的信息请进参考链接https://www.sigmdel.ca/michel/ha/opi/opipc2_bluetooth_en.html里面查看。
3.运行bluealsa
sudo bluealsa &


此时进行bluetoothctl等一系列蓝牙配对操作,同样的配对成功。
输入
alsamixer -D bluealsa
可以看到配对音箱的信息,应该是OK了。
4.添加用户到蓝牙组
sudo usermod -aG bluetooth penny
5.测试发声
nano /etc/asound.conf

编辑内容:
pcm.!default {
      type plug
      slave.pcm {
              type bluealsa
              device "蓝牙音箱MAC地址"
              profile "a2dp"
      }
      hint {
              show on
              description "BT Speaker"
      }
}
sudo reboot
通过winscp拷贝了一个example.wav文件,路径是/root/example.wav。
重连蓝牙设备,检查alsamixer -D bluealsa里面是不是仍然有蓝牙音箱信息,运行下列代码。
aplay example.wav


此时蓝牙音箱发声成功!
但是并没有完,我输入
speaker-test
蓝牙音箱并没有声音,证明默认输出设备始终不是蓝牙音箱。我暂且搁置,安装mopidy,采取了论坛里常用的mopidy安装教程,也修改了相关的配置信息。
在使用pulseaudio和hassio的add-on mopidy情况下,有一次能在hassio的输出设备里面看到蓝牙音箱,不过并没有发出声音。
之后再尝试pulseaudio,bluealsa,add-on版本mopidy,或者直接安装mopidy,都没有在输出音频设备里读取蓝牙音箱成功过,所以也没有发声成功。

总结:虽然我尝试了两种蓝牙音箱连接N1方式,也成功发出过声音,但是还是都失败了。
排除mopidy:我认为和mopidy的安装无关,因为speaker-test命令从蓝牙音箱发生失败。而且输入查看蓝牙状态的命令,虽然有提示运行,但是始终都有部分报错。
排除蓝牙音箱问题:我尝试更换过两个不同品牌的蓝牙音箱,情况一样。
排除N1蓝牙硬件故障:尝试添加外置USB蓝牙模块,问题存在。
我查询到了其他人N1连接成功的记录,所以我更倾向于是armbian系统的问题。不过我也尝试过低版本的armbian,仍然存在这个问题,所以暂时搁置N1的蓝牙音箱连接计划。

评分

参与人数 2金钱 +40 HASS币 +10 收起 理由
+ 20 + 10 给楼主点辛苦分~
neroxps + 20

查看全部评分

回复

使用道具 举报

6

主题

217

帖子

1521

积分

金牌会员

Rank: 6Rank: 6

积分
1521
金钱
1304
HASS币
0
发表于 2021-1-15 20:49:17 | 显示全部楼层
关注一下
回复

使用道具 举报

0

主题

17

帖子

52

积分

注册会员

Rank: 2

积分
52
金钱
35
HASS币
0
发表于 2021-1-15 23:41:46 | 显示全部楼层
先关注,再好好学习学习!避免走弯路
回复

使用道具 举报

0

主题

29

帖子

192

积分

注册会员

Rank: 2

积分
192
金钱
163
HASS币
0
发表于 2021-2-3 12:25:28 | 显示全部楼层
本帖最后由 justme90 于 2021-2-3 15:28 编辑

用第一种方法,把N1的蓝牙连接到了小音箱上了,可以播放了,谢谢楼主的线索。

因为在systemctl status bluetooth中,最后2行也出现了下面这样的情况:
Jan 15 05:53:55 hassio bluetoothd[780]: RFCOMM server failed for Headset Voice gateway: rfcomm_bind: Address already in use (98)

所以去百度了一下,有篇国外的论坛找到答案(Bluetooth-Error: RFCOMM Server Adresse already in use,在最后),也不知道是不是这几个命令起作用了。

再查看systemctl status bluetooth时,好像还是以前的状态。
不过,再按照其他博客上的指导(在Linux终端命令行下播放音乐的命令),安装了播放软件 sox 。
apt-get install sox
apt-get install sox libsox-fmt-all
play Fire.mp3


在ssh终端下运行就是这个效果,最下方还用动态的=号表示电平大小
snapshot1.png

如果想一边播放一边做别的事情,就再开一个终端呗!
回复

使用道具 举报

9

主题

319

帖子

1141

积分

金牌会员

Rank: 6Rank: 6

积分
1141
金钱
822
HASS币
0
发表于 2021-2-28 09:59:40 | 显示全部楼层
感谢分享 期待成功的消息。
回复

使用道具 举报

7

主题

62

帖子

269

积分

中级会员

Rank: 3Rank: 3

积分
269
金钱
207
HASS币
0
发表于 2021-4-10 15:01:43 来自手机 | 显示全部楼层
大佬,可以把armbian 5.99地址分享下么,谢谢
回复

使用道具 举报

5

主题

71

帖子

456

积分

论坛分享达人

积分
456
金钱
385
HASS币
10
 楼主| 发表于 2021-4-10 16:01:14 | 显示全部楼层
793919425 发表于 2021-4-10 15:01
大佬,可以把armbian 5.99地址分享下么,谢谢

https://sumju.net/?p=3572
回复

使用道具 举报

7

主题

62

帖子

269

积分

中级会员

Rank: 3Rank: 3

积分
269
金钱
207
HASS币
0
发表于 2021-4-10 21:03:52 | 显示全部楼层
tangli159 发表于 2021-4-10 16:01
https://sumju.net/?p=3572

谢谢。我下载安装看看
回复

使用道具 举报

0

主题

16

帖子

188

积分

注册会员

Rank: 2

积分
188
金钱
172
HASS币
0
发表于 2021-4-15 07:20:16 | 显示全部楼层
同样的固件,我的N1可以连上蓝牙音箱,但是我mopidy没装对,请教大神如何正确安装mopidy,论坛上查了一些方法,都不行
回复

使用道具 举报

5

主题

71

帖子

456

积分

论坛分享达人

积分
456
金钱
385
HASS币
10
 楼主| 发表于 2021-4-15 16:06:56 | 显示全部楼层
skasoka 发表于 2021-4-15 07:20
同样的固件,我的N1可以连上蓝牙音箱,但是我mopidy没装对,请教大神如何正确安装mopidy,论坛上查了一些方 ...

你是用的方法几连接蓝牙
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2021-5-7 18:24 , Processed in 0.090648 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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