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

 找回密码
 立即注册
查看: 11564|回复: 7

[基础教程] Ubuntu连接蓝牙音箱教程

[复制链接]

11

主题

246

帖子

1971

积分

金牌会员

Rank: 6Rank: 6

积分
1971
金钱
1725
HASS币
10
QQ
发表于 2017-10-3 23:44:57 | 显示全部楼层 |阅读模式
本帖最后由 KleinerSource 于 2017-10-3 23:53 编辑

最近想研究tts就从公司拿了个蓝牙音箱回来折腾.
发现 linux上连接蓝牙 简直麻烦.
尝试了 DSM6 发现极其简单. 可是 不知道为什么 凡是在docker下 跑的ha 总是卡在 小米网关连不上的问题..
于是放弃了 docker的念头 老老实实直接配.
坛子里的蓝牙教程 数量也不多 还有权限. 咱也看不到 . 自己折腾把.

我是用的ubuntu来做的 首先装好 ubuntu 然后把蓝牙适配器给插上.
系统装好后 直接用终端配置也行 要用ssh也行.
我不喜欢搞linux的图形界面 就全命令来处理了.

1. 系统更新 sudo apt update && sudo apt upgrade -y
2. 安装 blueman, sudo apt install blueman -y
3. 开始配置蓝牙设备 sudo bluetoothctl 打开蓝牙配置程序
4. 接下来按照步骤走  power on 开启蓝牙
5. scan on 扫描蓝牙设备 (此时命令行会显示出扫描出的蓝牙设备的 mac地址和名称,找到需要连接的蓝牙设备)
6. pair xx:xx:xx:xx:xx:xx (mac地址 全大写) 配对
7. trust xx:xx:xx:xx:xx:xx (mac地址 全大写) 信任设备
8. connect  xx:xx:xx:xx:xx:xx (mac地址 全大写) 连接设备
此时应该能够听到 蓝牙音箱连接成功的声音.
然后 exit 退出蓝牙配程序
但是这个时候音箱是不能播放音乐的. 还需要做其他操作
9. pulseaudio --start 然后 pacmd ls (这2个命令不能运行在root权限下)此时会在终端里出现很多类似以下字符串的内容.
    index: 0
        name: <bluez_card.xx_xx_xx_xx_xx_xx>
        driver: <module-bluez5-device.c>
        owner module: 26
        properties:
                device.description = "BS-01"
                device.string = "xx:xx:xx:xx:xx:xx"
                device.api = "bluez"
                device.class = "sound"
                device.bus = "bluetooth"
                device.form_factor = "headset"
                bluez.path = "/org/bluez/hci0/dev_xx_xx_xx_xx_xx_xx"
                bluez.class = "0x242404"
                bluez.alias = "BS-01"
                device.icon_name = "audio-headset-bluetooth"
                device.intended_roles = "phone"

在内容中 找到你的蓝牙音箱mac地址 name: <bluez_card.xx_xx_xx_xx_xx_xx> 或者 设备名称 device.description = "BS-01"
然后记住他前面的 index: 0  这里我的是0
然后接下来
10. pacmd set-card-profile 0 a2dp_sink
然后装个播放器试试? sudo apt install mplayer -y
mplayer /home/test.mp3

是不是出声了??

(如果pacmd ls中找不到你的蓝牙音箱的话, 可以 reboot一下 然后再重新sudo bluetoothctl   然后  connect  xx:xx:xx:xx:xx:xx 连接音箱(以后每次开机只需要连接一次即可  之前的操作无需重复)
至于开机自动连接音箱的方法我还在测试.


回复

使用道具 举报

11

主题

246

帖子

1971

积分

金牌会员

Rank: 6Rank: 6

积分
1971
金钱
1725
HASS币
10
QQ
 楼主| 发表于 2017-10-4 14:32:11 | 显示全部楼层
还发现个问题 似乎 要正常工作 必须要有 图形化界面支持才行
我重建了个 ubuntu server环境 测试的时候 发现  connect的时候 一直Failed to connect: org.bluez.Error.Failed

查了日志发现 a2dp-source profile connect failed for AA:BB:CC:11:22:33: Protocol not available
顺藤摸瓜发现好像和一个叫  module-bluetooth-discover的模块有关
但是这个模块无论如何都 无法加载
查日志好像是 要在 X下才能工作  纯tty下 工作不了..
回复

使用道具 举报

11

主题

246

帖子

1971

积分

金牌会员

Rank: 6Rank: 6

积分
1971
金钱
1725
HASS币
10
QQ
 楼主| 发表于 2017-10-4 21:51:04 | 显示全部楼层
然后我用archlinux 也重建了一次环境
发现archlinux下不需要  x也能正常工作
回复

使用道具 举报

32

主题

986

帖子

4233

积分

论坛元老

Rank: 8Rank: 8

积分
4233
金钱
3207
HASS币
110

教程狂人论坛风云人物

发表于 2017-10-4 23:33:10 | 显示全部楼层
不明觉厉
回复

使用道具 举报

75

主题

1976

帖子

8179

积分

元老级技术达人

积分
8179
金钱
6153
HASS币
430

活跃会员教程狂人

发表于 2017-12-7 14:15:12 | 显示全部楼层
需要相关资料,正在学习,多谢楼主。
所有过往,皆为序章。
回复

使用道具 举报

22

主题

359

帖子

3763

积分

元老级技术达人

积分
3763
金钱
3369
HASS币
100

教程狂人

发表于 2017-12-8 16:35:24 | 显示全部楼层
我在ha的虚拟环境下运行bluetoothctl 就卡住了,其他的账户就可以,不知道为啥
回复

使用道具 举报

20

主题

700

帖子

3106

积分

论坛元老

Rank: 8Rank: 8

积分
3106
金钱
2406
HASS币
0
发表于 2018-1-2 22:50:11 | 显示全部楼层
KleinerSource 发表于 2017-10-4 14:32
还发现个问题 似乎 要正常工作 必须要有 图形化界面支持才行
我重建了个 ubuntu server环境 测试的时候 发 ...

我也是这个问题,请问解决了吗?
回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16410
金钱
11664
HASS币
45
发表于 2018-12-24 00:27:18 | 显示全部楼层
KleinerSource 发表于 2017-10-4 14:32
还发现个问题 似乎 要正常工作 必须要有 图形化界面支持才行
我重建了个 ubuntu server环境 测试的时候 发 ...

天啊,google上搜这问题,竟然搜到自己这了~我也是server版的,一直出现这个错误:Failed to connect: org.bluez.Error.Failed,至今没解决。。有没有办法呀楼主
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 12:55 , Processed in 0.052091 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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