Linux: 启用Wi-Fi的Pi3蓝牙音频卡口

创建于 2016-04-11  ·  143评论  ·  资料来源: raspberrypi/linux

你好,

我正在在Pi3上通过蓝牙使用a2dp对流音乐进行测试。 启用Wifi时,我会在Pulseaudio的情况下获得恒定的缓冲区欠载(Blueman显示的下行速度约为34kB / s)。 一旦我禁用Wifi接口(ifdown wlan0),音频就会开始正常播放,并且下行速度约为42kB / s(如果看到http://soundexpert.org/news/-/,这是正确的高质量立体声音频)博客/蓝牙音频质量-a2dp)。
还尝试使缓冲区更大,更改重采样类型,实时调度等。还尝试了最新的Pulseaudio,没有区别。 似乎是一个Raspberry问题。

首先认为这是因为Wifi和蓝牙都使用UART,但事实并非如此(如果Wifi超过921600波特,如果​​我看得正确的话,它将太慢)。 他们仍然共享同一芯片(BCM43438)。 我(也听到其他人)遇到此问题,是否有已知原因?

Bluetooth Issue Bug Waiting for internal comment Wifi Issue

最有用的评论

我决定稍微研究一下驾驶员。 通读代码可以使我深入了解所支持的某些模块参数,并且通过一些实验和a弹枪方法,我似乎已经使蓝牙+ wifi可以完美地相互配合使用。

我能够通过wifi在pi上进行速度测试,而我的手机通过pi播放了A2DP音频,但我一无所获。

我创建了一个文件/etc/modules.d/bt-wifi-fix.conf

options brcmfmac fcmode=2
options brcmfmac feature_disable=0x96
#options brcmfmac debug=0x00000004

debug=0x00000004启用信息级别日志记录,这并不是真正必要的。

fcmode=2似乎可以启用某种硬件流控制,这似乎会使情况变得更好一些,但仍然不是很好。

feature_disable=0x96是看起来确实可以解决的选项。 我不确定,但是我_think_ 0x96试图禁用所有可选功能,因此为什么我在上面说了“ shot弹枪法”。 稍有耐心,就有可能将其范围缩小到一小部分功能。

到目前为止,这对我来说非常有效-如果我能够进一步缩小范围,我会报告。

编辑:当我第一次开始播放流媒体时,我会出现一些小故障,但是似乎没有任何东西依赖于我是否正在使用wifi。

所有143条评论

我一直有完全相同的问题。 禁用WLAN0可解决音频问题。 但是,我非常希望能够使用wifi ...

同样在这里。 花了我3天的2个发行版来弄清楚这是WiFi中的构建。 当我直接在USB端口使用WiFi棒时,也会出现相同的错误。 当我将USB连接电缆与USB记忆棒一起使用时,一切正常。 因此,我只是认为这是由于内置天线导致两种2.4 GHz服务相互干扰。 :-/

我可以通过禁用板载wifi并使用Wi-Pi USB适配器而无需任何扩展电缆来使A2DP正常工作。

这就提出了一个相当有趣的问题:板上WiFi芯片是否支持蓝牙共存,驱动程序是否支持它并正确运行? 根据我从多个来源看到的信息,当您禁用板载WiFi或禁用板载蓝牙并改用USB适配器时,延迟会大为改善,这听起来像板载芯片无法正确实现BT共存,或者驱动程序未正确支持它。

BCM43438在WiFi和蓝牙接口之间具有共存接口-无需软件支持。

@Ferroin根据我的经验,我会说/ fundamentally /是的,尽管我不是权威人士,并且我对蓝牙方面的要求也不高....虽然在Pi 3上开发了蓝牙LE中央和外围应用程序运行VNC X会话,2x SSH会话并通过WiFi挂载NFS共享,一切正常。

就像我今晚才发现的+1。 调低wlan0,音频播放正常。 自八月以来,有没有人对这里发生的事情以及是否有解决办法有了新的说法?

我也+1,“ ifdown wlan0”和pulseaudio流通过a2dp很好

+1(今天刚刚更新)使用了Anker Sound Core蓝牙扬声器。 如果关闭wifi,播放效果很好,但这是一个很大的解决方法。 这个项目很烦人,但可行(好的,我将通过hdmi而不是vncserver进行连接 ),但我也正在等待修复,因为它严重限制了我使项目可移动的能力。 VNCserver是必须的。

+1让我头疼,发现了这个问题!

我需要WiFi,所以我只是:
1)使用USB加密狗作为WiFi适配器
2)在/ etc / network / interfaces中禁用板载WiFi适配器

不再有声音问题。

看到任何进展,我感到很高兴,但是提醒您,您可以订阅此线程,并对原始帖子添加反应。 建议发布+1响应。

同意没有Wi-Fi会破坏基础Pi3。 添加USB加密狗会破坏板载WiFi / BT的Pi3带来的一大收获。 :-(

我还测试了行为,并面临此处报告的相同问题。 计划添加其他USB WiFi适配器以解决该问题。 希望pi将支持第二个WiFi,而不会出现太大问题。

我猜零零会遭受与蓝牙和WLAN相同的问题,因为它使用同一芯片?
但是,使用USB设备作为变通办法,使用Zero W并非易事。

这在所有人的Raspberry Pi上发生吗? 音乐如何播放? (Pi hat DAC,声卡,BCM?)您将Wifi用于什么用途?

因为,我的Pi3没有任何问题

两者都进行时只是一个问题。 WiFi会主动传输,然后尝试使用蓝牙。 蓝牙+ LAN没问题。 因此,大多数人和应用程序都不会看到此问题。

我添加了辅助WiFi接收器,并使其成为主要接收器,并使用嵌入式WiFi作为蓝牙接收器。 这是使此工作最便宜的方法。

蓝牙+ LAN没问题。

请给我看Pi0W上的LAN端口。

有没有人尝试过脉冲化脉冲音频具有更高的优先级?

是的,我以更高的优先级进行了尝试,但结果没有明显差异。

你好
如果可以的话,请让我知道一种可行的配置
上面的问题,即Wifi-需要,A2DP中的蓝牙扬声器配对
模式。
从您的个人资料来看,您似乎在其中
区。

谢谢。


干杯,
普拉迪普
http://pradeepclicks.com/

在2017年3月6日星期一9:29 PM,Brett Reinhard [email protected]
写道:

有没有人尝试过脉冲化脉冲音频具有更高的优先级?

-
您收到此邮件是因为您发表了评论。
直接回复此电子邮件,在GitHub上查看
https://github.com/raspberrypi/linux/issues/1402#issuecomment-284439625
或使线程静音
https://github.com/notifications/unsubscribe-auth/ADb1rV3_oFd2_qM8-2yHoDdLGeFK3d5dks5rjC1ngaJpZM4IExoX

我也在尝试解决这个问题。 不同的BT扬声器/耳机之间的断断续续似乎有所变化,但是仍然使用WiFi加密狗并禁用板载WiFi。 即使使用BT加密狗,在播放本地mp3或使用Pithos(Pandora)时,抖动仍然存在。 我还使用了较低比特率的mp3文件,并且断断续续得到了改善。

我下载了一些从16到64kbps的示例文件,并在RPi3上使用VLC进行了播放。 我正在运行Pulseaudio并连接到一些廉价的蓝牙耳塞。
http://www.digitalprosound.com/Htm/WebAudio/2000/Oct/MP3bitrates3.htm

仅通过后台WiFi活动,每个文件都播放了,但是随着比特率的增加确实表现出一些断断续续的状态。 然后,我运行了apt-get更新,它在运行时播放了16k文件。 非常动荡。 其他的也一样。 实际上,wifi活动的影响远大于文件的比特率。

现在连接一个WiFi加密狗并禁用板载Wifi(sudo ifdown wlan0)。 再试一次。
所有文件完全流畅。 通过Wifi执行下载该怎么办? 也可以以64kbps的速度平滑播放。
运行Pithos(Pandora)? 光滑。 昨晚不是这种情况,所以我不相信自己有一个可靠的解决方案。

我遇到同样的问题。

我通过使用蓝牙加密狗解决了该问题,并取得了圆满成功。
可插拔技术USB-BT4LE

但是,对此仍然不满意,拥有无法使用的功能的意义何在?

您必须确保的一件事是,在bluetoothctl提示符下关闭蓝牙扫描(关闭扫描)。 这解决了我的问题,我能够使用内置的wifi / BT和Pi Zero + redbear IoT PiHat与Pi Zero W,Pi3进行流畅的串流。

@Michiman :我100%确信我尝试过它而没有同时扫描。 仍然有问题。 我正在使用rpi3。

+1
同样,这里绝对是板载wifi +蓝牙的组合。
设置:pi零w + phat dac

板载蓝牙+ WiFi启用->音频结结非常严重
板载wifi已禁用->音频播放完美而不会卡死

我想我需要开始研究所有这些工作是如何在低水平上进行的,这对正确学习这构成了一个很好的挑战

尝试使用基于pulseaudio的a2dp教程流音频时,我也遇到了可怕的声音问题。
我尝试了有关调整缓冲区大小和禁用内部WLAN的建议。
声音质量得到了很大的改善,但仍然无法达到我将其用作真正的聆听设备的目的-充其量我每隔几秒钟就会听到一声砰砰声或口吃声。

我找到了另一个github项目,它通过完全避免使用pulseaudio来克服了这个问题:
https://github.com/lukasjapan/bt-speaker
禁用内部WLAN后,使用该方法的音频相当合理,并且无需在启动时登录(我让它在我的追溯映像的背景中运行)。

@maklotski ,我们已经确定问题是由于同时打开Wi-Fi和蓝牙而引起的。 是的,如果您不需要WiFi,那么解决方案是禁用此功能。 但是,我需要从在线流式传输音频,因此WiFi至关重要。 我很惊讶RPF迄今为止尚未发布有关此问题的任何有用信息。

我们已经发布了所有有用的信息,即不是很多。 赛普拉斯(曾是Broadcom)有两个并行的驱动程序堆栈-dhd和brcmfmac。 据推测,它们已经接近完成更新的dhd驱动程序,从而改善了共存性,但是a)仍在测试中,b)我们使用brcmfmac。 一旦有了改进的brcmfmac驱动程序,我们将把它推出。

仅向此问题中添加+1是没有用的。 它只是无缘无故地增加了评论列表。 一旦我们有任何信息,它将被发布。

+1继续关注此问题,并希望逐步提高优先级
修复

当与该问题相关的信息可用时,将更新此github线程。 我们在某种程度上依赖Broadcom(现在为Cypress)提供驱动程序更新,因为片上共存支持取决于芯片固件或固件设置。

用垃圾邮件响应来降低线程的信噪比只是令人讨厌。 对于围绕调查或问题解决的讨论没有任何帮助的评论可能会被删除。

如果蓝牙连接/断开连接,我写了一个小脚本使用inotify来打开和关闭wlan0。 好吧是
解决方法,但我可以接受。

`#!/ bin / bash

虽然真实

RES = inotifywait -q -e CREATE,DELETE /dev/input/
案例“ $ RES”在
“ / dev / input / DELETE event1”)
ifconfig wlan0向上
;;
“ / dev / input / CREATE event1”)
ifconfig wlan0关闭
;;
埃萨克
完成&
`

所以这是我一直希望分享的工作(始终),但要以被嘲笑为代价。
在后台运行pacat /dev/zero
现在播放一些音频,并且在ling啪声停止+ -30秒之后,再播放更多音频并享受清晰的播放,直到停止pacat。
如果您担心蓝牙上飞过的所有零点,那么可以考虑使用以下命令安装“ pv”:
sudo apt-get install pv
在后台运行以下命令,而不是在cat /dev/zero | pv -qL 2k | pacat中将零限制为特定的比特率。
想知道这对您如何工作。

有趣,所有人。 我一直在研究无头Pi Zero / W-否X11。 而且我可以在无线网络中使用两个/三个ssh外壳,而蓝牙则尽可能干净。 我确实注意到蓝牙设备的过多轮询(即获取蓝牙信息)会导致结结。 您是否尝试过仅启动cli?

好吧,我刚刚意识到,以下注释没有上下文并没有真正的帮助。 抱歉,整晚都在敲击键盘----

1-Pi Zero / W和Pi 3在蓝牙/ Wifi方面相同,至少就内核而言是相同的。
2-运行Jessie Lite-最近更新,并且内核4.9.29+
3-在桌面上运行NetBeans,在Pi上运行远程调试。
4 –压力测试TFT显示屏的帧速率---真正启动了SPI总线。
5-轮询触摸屏的输入事件并将结果转储到stderr,然后将其通过管道传输到NetBeans-在触摸屏上测试抖动
6-通过蓝牙从mpg123 tarball运行mpg123_to_out123示例程序,播放SD卡中Billy Joel的“ An Innocent Man”。
7-看不到X11。

像馅饼一样光滑,覆盆子味。 这样做时间太长了,我在睡觉时哼着比利·乔尔。
已经注意到,强制查询蓝牙连接状态会使事情变糟。

建议消除尽可能多的“其他”代码。

你好
PI(Zero W)蓝牙肯定存在严重问题。

我将一个可通过蓝牙检测手机的Python脚本从CHIP移到了Pi ZeroW。
结果很疯狂,当访问蓝牙时,它塞住了我的整个家用Wifi :-(

该脚本使用以下命令来检测电话是否在范围内:
结果= bluetooth.lookup_name(mac,超时= 5)

我用两部手机循环运行。 循环每15秒开始一次,并测试两部手机。
我首先通知a)设置Pi Zero W后,有时Wifi上的SSH无法响应,并且b)有时我的WiFi LED灯没有响应。
奇怪,所以我尝试对Wifi灯执行ping操作,结果是:每15秒超时约5秒。
然后我尝试对PI Zero W执行ping操作:在这5秒钟的窗口中,ping操作的时间约为2000-4000ms,有时甚至超时。

因此,我禁用了运行蓝牙检测的脚本:一切都很好。
重新启动脚本:再次发生超时。

这太疯狂了! 手机的蓝牙扫描(基本上是配对设备的“你在吗?”)基本上破坏了我的整个家庭无线网络。
我知道蓝牙和Wifi频率相同。 但是蓝牙已标准化为使用广泛的跳频来防止此类干扰。 Pi Zero W上不是这样吗?

绝对是可复制的,只需尝试以下python脚本即可。

我对原因的最佳猜测:蓝牙无线电会干扰Wifi,而不是相反。 原因可能是蓝牙堆栈中有关跳频的问题。 这也可以解释所报告的蓝牙音频问题:当蓝牙确实保留在一个频率上时,wifi更有可能干扰其信号。
但是,我可能错了,我很了解WiFi,就像我在处理有关Wiifi的Phy层的主题上攻读博士学位一样,但是我不是Bluetooth Phy的专家。


简短的python测试脚本,再现了问题。 只需在运行Pi时对其进行ping操作。

导入时间
进口蓝牙
mac =“ 00:00:00:00:00:00”
而True:
打印(“搜索蓝牙以查找%s ...”%mac)
尝试:
结果= bluetooth.lookup_name(mac,超时= 5)
除了bluetooth.btcommon.BluetoothError如e:
print(“ \ nERORR:蓝牙请求失败,错误:%s”%e)
print(“结果:%s是:%s”%(mac,结果))
时间。睡眠(15)

明天(美国东部标准时间星期一晚上),如果您愿意,我会发布一个YouTube,说明其效果如何。 但是,只需进行两次/三次确认(就在5分钟前)----唯一的问题发生在“可发现”和“扫描”期间。 如果您使设备不可发现并且无法主动扫描(发现)WiFi和蓝牙,那么在Pi Zero W上可以正常工作。通过蓝牙和ssh进行连接时,我会在WiFi上稳定4-5毫秒ping。 需要弄清楚如何录制youtube视频的声音,但是我可以清楚地听到它没有抖动。

FWIW-我正在开发Bluetooth Audio应用程序,所以这确实令我感到担忧。 在我的应用程序中,我正在轮询所连接设备的信息以获取RSSI等。由于这里已有太多人注意到的问题,我不得不进行轮询。

除非您控制会话中所有可能在蓝牙连接上进行轮询(D-Bus)的应用程序,否则不能排除它们是问题的同谋。 我没有运行X11-因此,我离硬件和发生的事情更近了。 当然,PulseAudio仍然是一个“黑匣子”,但除此之外,我基本上控制了整个交易,并且效果很好。

现在,我并不是说固件没有问题,但实际上,应该更好地表现应用程序。

嘿,
如果您有时间,我会对youtube视频真的很感兴趣:)
我也使用的是Pi Zero W,但是当我禁用Wifi时,门槛会有些发呆...

嗨,只是个笔记-我的Zero W遇到了同样的问题-通过wifi流传输时跳过了BT音频-甚至对于9.1 / Stretch版本的Raspbian

赛普拉斯希望改善WiFi和BT之间的“共存”,但是他们一直首先关注一些WiFi稳定性问题。

嗨,对此有任何更新吗?

从最新的Raspbian Stretch图像开始,运行:

sudo apt-get update
sudo apt-get install bluez bluez-firmware

这将引入一个新的蓝牙固件和一个更新的BlueZ,它们将共同改善WiFi和蓝牙的共存性。

在使用时,获取最新的内核以提高蓝牙的可靠性:

sudo apt-get install raspberrypi-bootloader raspberrypi-kernel

我很想看一下BT / WiFi性能的并排视频
一起。 如果某人还没有做到,那我就得继续努力。

在2017年11月7日下午12:15,“ Phil Elwell” [email protected]写道:

在使用时,获取最新的内核以改进蓝牙
可靠性:

sudo apt-get install raspberrypi-bootloader raspberrypi-kernel

-
您收到此邮件是因为有人提到您。
直接回复此电子邮件,在GitHub上查看
https://github.com/raspberrypi/linux/issues/1402#issuecomment-342554756
或使线程静音
https://github.com/notifications/unsubscribe-auth/AZCYY6u0Q45M19rAdGFM0WP4q6VXP0Zeks5s0JBOgaJpZM4IExoX

@pelwell我按照您的建议将bluez bluez固件raspberrypi -kernel升级到了最新版本。

但是,当wifi开启时,我仍然会遇到声音从蓝牙流到覆盆子零W的问题。 如果我关闭wifi( sudo iwconfig wlan0 txpower off ),它可以正常工作,不会再发生任何crack啪声。

如果可以提供帮助,请告诉我。

我正在使用bt扬声器。 此处报告了相关问题: https :

您是说没有任何改善吗?

不幸的是,没有任何改善:(

@pelwell,供您了解,以下是已安装的版本:

bluez              5.43-2+rpt2+deb9u2
bluez-firmware              1.2-3+rpt1
raspberrypi-kernel              1.20171029-1
raspberrypi-bootloader          1.20171029-1

是否有人在rpi 3上启用了WiFi的Retropie上使用PS3控制器(通过蓝牙)遇到相同类型的问题? 我似乎是随机干扰,有时控制器工作正常,有时好像根本没有按下任何按钮。 这样玩游戏有点困难!

今天,我将Pi Zero W更新为所有最新版本,可以确认问题仍然存在。
pi<strong i="6">@raspberrypi</strong>:~ $ dpkg -l | grep -i bluetooth ii bluealsa 0.6 armhf Bluetooth ALSA Audio backend ii bluez 5.43-2+rpt2+deb9u2 armhf Bluetooth tools and daemons ii bluez-firmware 1.2-3+rpt2 all Firmware for Bluetooth devices ii libbluetooth3:armhf 5.43-2+rpt2+deb9u2 armhf Library to use the BlueZ Linux Bluetooth stack ii lxplug-bluetooth 0.4 armhf Bluetooth plugin for lxpanel ii pi-bluetooth 0.1.6 armhf Raspberry Pi 3 bluetooth ii pulseaudio-module-bluetooth 10.0-1+deb9u1 armhf Bluetooth module for PulseAudio sound server

BCM43438似乎在使用BT + WiFi或两个BT连接的多个连接中存在问题:

关闭WiFi( ifconfig wlan0 downdtparam=pi3-disable-wifi )时,蓝牙A2DP音频效果很好。 但是,当连接两个设备时,音频开始严重卡顿。

使用外部USB蓝牙适配器,多个设备可以通过A2DP连接并同时传输事件的音频。

因此,我认为这是芯片的局限性,而不是软件的问题……(但我希望在以后的内核更新中被证明是错误的)

确保您使用的是最新的BT固件( sudo apt-get update; sudo apt-get install bluez-firmware )-进行了一些改进。

我上次做这件事是在2天前,自那以后有变化吗?

罗恩


来自:菲尔·埃尔韦尔[email protected]
发送:2018年1月24日星期三5:32 AM
至:raspberrypi / linux
抄送:Ron Kuper; 手册
主题:[外部]回复:[raspberrypi / linux]启用了Wifi的Pi3蓝牙声卡(#1402)

确保您使用的是最新的BT固件(sudo apt-get更新; sudo apt-get安装bluez-firmware)-进行了一些改进。

-
您收到此消息是因为您已订阅此线程。
直接回复此电子邮件,在GitHub https://github.com/raspberrypi/linux/issues/1402#issuecomment-360088465上查看,或忽略线程https://github.com/notifications/unsubscribe-auth/AC8KdHhcuhMFBE5j42nTMhwc5NJTfxocks5tNwahgaJpZM4IEx

否-这将是最新的(1.2-3 + rpt1)。

谢谢! 同时,我购买了USB wifi加密狗作为解决方法。

是否有人碰巧知道芯片组驱动程序是否(理论上​​)应该采取措施避免这两个无线电之间的射频干扰?

罗恩


来自:菲尔·埃尔韦尔[email protected]
发送:2018年1月24日星期三上午7:20
至:raspberrypi / linux
抄送:Ron Kuper; 手册
主题:[外部]回复:[raspberrypi / linux]启用了Wifi的Pi3蓝牙声卡(#1402)

否-这将是最新的(1.2-3 + rpt1)。

-
您收到此消息是因为您已订阅此线程。
直接回复此电子邮件,在GitHub https://github.com/raspberrypi/linux/issues/1402#issuecomment-360113610上查看,或使线程https://github.com/notifications/unsubscribe-auth/AC8KdIfVVwDf2lOlcGQTppx5A0jxxzvbks5tNyIEWWxpxM4

它应该(在同一包装中的本质上是两个单独的设备之间存在一个共存通道),并且该固件相对于原始装运固件而言是一项重大改进,但是共享天线似乎是一个挑战。

@spalthammer编写了一个脚本,可以作为一个不错的解决方法:

如果蓝牙连接/断开连接,我写了一个小脚本使用inotify来打开和关闭wlan0。 好吧是
解决方法,但我可以接受。

`#!/ bin / bash

虽然真实

RES = inotifywait -q -e CREATE,DELETE / dev / input /
案例“ $ RES”在
“ / dev / input / DELETE event1”)
ifconfig wlan0向上
;;
“ / dev / input / CREATE event1”)
ifconfig wlan0关闭
;;
埃萨克
完成&
`
有人可以向新手解释如何实现此脚本吗? 这对我非常有用,因为在播放蓝牙时不需要wifi。 但是,我仍然希望能够在BT设备断开连接时为Pi3使用ssh / vnc。

@lexanix

安装inotify
cmd:sudo apt-get安装inotify-tools
cp inotify.txt到/etc/inet.d/inotify(从inotify.txt重命名为inotify!)

inotify.txt

使它可执行
cmd:sudo chmod u + x /etc/init.d/inotify
创建符号链接以在启动时启动脚本
cmd:sudo update-rc.d inotify默认值

希望这可以帮助。

@spalthammer谢谢您的回复! 不幸的是,这似乎对我不起作用。 我做了你所说的一切,但什么都没发生。 我的Pi3上的inotify-tools是最新的。

我试图做的是:
(我显然将“ inet.d”的拼写更改为init.d)
-仅由于u + x不起作用,才用chmod + x使其可执行
-试图直接从终端执行脚本(无需重新启动),因为我添加了一行以返回回显,所以脚本确实可以正常工作
-使其从/etc/rc.local启动
但是,当我通过蓝牙连接手机时,wifi仍然保持打开状态。

我正在运行Raspbian的最新版本。 我的手机通过BT将音乐流传输到Pi,然后将其作为FM信号输出到GPIO。 在那段时间里,我不需要启用任何wifi功能,因为音乐开始发呆。 但是,为了在禁用wifi后仍然能够通过SSH / VNC重新连接到我的Pi,我做了一个小脚本“ sudo ifconfig wlan0 up”,它在切断电源并重启后会自动启用。 这似乎暂时可行,但我想运行更优雅的inotify脚本,直到我们知道BT + WiFi芯片组出了什么问题。

@lexanix
抱歉打错了。
sudo chmod u+x /etc/init.d/inotify应该可以。 请确保/etc/init.d/inotify由root拥有并可执行。
如果您连接了多个输入设备,例如键盘,鼠标和USB声卡,则输入设备的编号可能会不同。 在脚本中,我正在等待input1上的事件,这适合我的设置。 请使用以下命令停止脚本
sudo killall -9 inotify
并运行
sudo inotifywait -q -e CREATE,DELETE /dev/input
连接到蓝牙设备并记下输入设备的号码。 更改脚本并重新启动。
我仔细检查了脚本。 即使它不是完美的,也可以按预期工作。

问候

在A2DP播放期间BT连接不稳定。 BT通常会断开连接,并且需要重新启动系统才能恢复。
你能给出解决方案吗?

@spalthammer太好了! 您的脚本按预期工作
对我来说是完美的解决方案(带扬声器的Zero W;现在可以同时使用内部蓝牙和WiFi接口)
音乐播放时不再有裂痕:-)

新的Raspberry Pi 3 B +会更好吗?

@spalthammer

感谢您的出色解决方法。 这正是我所需要的。

即使我只有一个蓝牙连接,当我执行以下操作时,也会收到以下信息:

root<strong i="9">@Ipad2GMA</strong>:/etc/init.d# sudo inotifywait -q -e CREATE,DELETE /dev/input
/dev/input/ CREATE event0

因此,按照您的建议,我编辑了inotify并将其从event1更改为event0。 现在效果很好!

但是,我担心这种变化。 如果我只有一个BT连接,它将始终为event0吗?

谢谢!

@davthomaspilot

eventX中的数字X取决于输入设备的数量,而不取决于蓝牙连接的数量。 因此,除非您更改硬件设置,否则如果您不添加其他输入设备(例如USB声卡或键盘),则该数字不应更改。 如果您想了解有关已连接输入设备的更多信息,请执行以下命令:

cat /proc/bus/input/devices

将给您一个概述。

拉加兹。

这个解决方法对我来说非常有用! 但是,由于某种原因,我似乎不再需要它了-

我刚得到另一个pi零w。 下载了jessie拉伸图像并进行了更新,升级。 我正在使用pHat DAC和来自此处的蓝牙设置说明:

[https://www.sigmdel.ca/michel/ha/rpi/bluetooth_01_en.html]

我在升级或更新中是否有修复程序? 或者,也许我的新RPI有硬件修复?

我正在克隆不打结的pi上的图像,并尝试在需要spalthammer解决方法的图像上进行尝试。 并且,我将尝试在新硬件上的口吃rpi中的映像,并禁用解决方法,以查看新硬件是否随该映像而口吃。

我发现只有让bluetoothctl运行时才有问题。 在新的硬件/“软件”和旧的硬件上,除非我处于bluetoothctl,否则我都不会中断蓝牙A2DP流。

这是轻弹式的,没有脉冲音频。 也许那很重要。

@pelwell ,是否可以解决此处所述的赛普拉斯新WiFi固件的问题?
https://www.raspberrypi.org/forums/viewtopic.php?f=117&t=208090
问候,

@StudentSA似乎不喜欢。 至少不是全部。 我在运行2018-04-18-raspbian-stretch-lite的Zero W上遇到此问题。

bluez                  5.43-2+rpt2+ armhf
bluez-firmware         1.2-3+rpt5   all
raspberrypi-bootloader 1.20180417-1 armhf
raspberrypi-kernel     1.20180417-1 armhf

可能是永远不会解决的问题之一...

我决定稍微研究一下驾驶员。 通读代码可以使我深入了解所支持的某些模块参数,并且通过一些实验和a弹枪方法,我似乎已经使蓝牙+ wifi可以完美地相互配合使用。

我能够通过wifi在pi上进行速度测试,而我的手机通过pi播放了A2DP音频,但我一无所获。

我创建了一个文件/etc/modules.d/bt-wifi-fix.conf

options brcmfmac fcmode=2
options brcmfmac feature_disable=0x96
#options brcmfmac debug=0x00000004

debug=0x00000004启用信息级别日志记录,这并不是真正必要的。

fcmode=2似乎可以启用某种硬件流控制,这似乎会使情况变得更好一些,但仍然不是很好。

feature_disable=0x96是看起来确实可以解决的选项。 我不确定,但是我_think_ 0x96试图禁用所有可选功能,因此为什么我在上面说了“ shot弹枪法”。 稍有耐心,就有可能将其范围缩小到一小部分功能。

到目前为止,这对我来说非常有效-如果我能够进一步缩小范围,我会报告。

编辑:当我第一次开始播放流媒体时,我会出现一些小故障,但是似乎没有任何东西依赖于我是否正在使用wifi。

这是一个很好的数据点,感谢您的关注,请随时向我们更新。

@pelwell Phil,您看到了吗? 可能值得向赛普拉斯报告。

这看起来非常简单-如果赛普拉斯对此感到满意,并且它是如此有效,我们可以将其设置为Pi内核的默认值。

仅使用您指定的内容创建/etc/modules.d/bt-wifi-fix.conf就足够了吗? 或者,我是否必须更改其他内容才能使其生效?

只需按照说明创建文件并重新启动即可。

好的,我用Google搜索并找到了/etc/modules-load.d的东西,但没有找到/etc/modules.d的东西

我将文件添加到Pi Zero W上。我将通过蓝牙流播放一会儿,看看在连接wifi时是否听到卡顿现象。

除了测试“没有打ic”以外,是否有办法检查bt-wifi-fix.conf是否被使用?

谢谢!

如果包括options brcmfmac debug=0x00000004 (不带注释# ),那么您应该在内核日志中看到一些诊断输出,如dmesg所查看。

好的,我尝试了这个:

 dmesg | grep brcmfmac
[   11.083290] brcmfmac: F1 signature read @0x18000000=0x1541a9a6
[   11.103157] brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43430-sdio.bin for chip 0x00a9a6(43430) rev 0x000001
[   11.103836] usbcore: registered new interface driver brcmfmac
[   11.563229] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Oct 23 2017 03:55:53 version 7.45.98.38 (r674442 CY) FWID 01-e58d219f
[   11.575677] brcmfmac: brcmf_c_preinit_dcmds: CLM version = API: 12.2 Data: 7.11.15 Compiler: 1.24.2 ClmImport: 1.24.1 Creation: 2014-05-26 10:53:55 Inc Data: 9.10.39 Inc Compiler: 1.29.4 Inc ClmImport: 1.36.3 Creation: 2017-10-23 03:47:14
[   18.913833] brcmfmac: power management disabled
[   27.484932] brcmfmac: power management disabled

因此,

电源管理已禁用

消息指示正在提取.conf?

如果没有,还有什么我可以grep的吗?

在运行4.14.41内核(自定义操作系统)的ZeroW上进行了测试,虽然好很多倍,但仍然有些卡顿.....但是几乎可以忍受。

播放a2dp流时,我将iperf3返回我的服务器...。
在iperf3上约为30MBit / s。

计划在pi3和pi3b +上进行测试(如果在5Ghz通道上连接了wifi,则3b +已经可以很好地播放了)

@davthomaspilot我现在自己尝试一下,建议的文件内容看起来正确,但是尽管目录名看起来很熟悉,但在我的Raspbian系统上却不存在- /lib/modprobe.d是常用的(也许是_correct_)位置-因此我建议使用文件名/lib/modprobe.d/bt-wifi-fix.conf

从已注释掉的fcmodefeature_disable行开始,然后从dmesg | cut -c16- | grep brcmfmac获取输出。 然后取消注释其中一个或两个,重新启动并比较dmesg输出(和流质量)。

谢谢! 我会去做的。

我希望这比在/etc/rc.local中执行“ iwconfig wlan0电源关闭”有更多帮助。

禁用wifi节能功能后,流式传输卡顿现象可能每隔一两分钟发生一次。 这只不过是wifi上的ssh会话。
需要一些“统计数据”来查看是否还有进一步的改进。 我将尝试使用Pi ZeroW。

这是一个差异比较,当注释行与不注释行时(使用/lib/modprobe.d,而非/etc/modules.d:

> brcmfmac: brcmf_feat_attach Features: 0x96, disable: 0x96
34c35,36
< brcmfmac: brcmf_fws_attach FWS queueing will be avoided
---
> brcmfmac: brcmf_fws_attach added MAC-OTHER
> brcmfmac: brcmf_fws_attach enabled bdcv2 tlv signaling [4f]
50,51d51
< brcmfmac: brcmf_p2p_add_vif adding vif "p2p-dev-wlan0" (type=10)
< brcmfmac: brcmf_add_if allocate non-netdev interface
54c54
< brcmfmac: brcmf_cfg80211_connect ie (d949d258), ie_len (22)
---
> brcmfmac: brcmf_cfg80211_connect ie (d96ac658), ie_len (22)

现在测试流质量...

仍然结结巴巴。 真的很难说它是否比我现有的要好得多。 每两分钟一次结结巴。

同样,这是启用wifi的,但实际上没有wifi流量。

目前,我的解决方法是在连接蓝牙时禁用wifi。 当我连接wifi时,我真的不在乎口吃,但是无需先断开蓝牙连接就可以进行wifi连接。

在2.4Ghz通道上使用pi3B +进行测试。

一旦BT开始通过蓝牙连接推送数据,参数“ options brcmfmac fcmode = 2”会使pi3B +上的wifi驱动程序崩溃。 使用A2DP配置文件。

我在pi3B +上只使用了brcmfmac feature_disable = 0x96选项,它非常稳定,除非我用iperf推动wifi连接,否则我确实会感到口吃。 在5Ghz通道上时,此参数没有明显的影响。 蓝牙在这种情况下非常稳定,而iperf3的推速为120Mbit / s

因此,不要在工作中使用扳手,但老实说,我无法在bluez固件更新和bluetoothctr更新的Stretch最新img上重现此问题。 我有2张SD卡,自从我于2017年4月最初发布时运行Jessie和PulseAudio以来,就有一张。 我今天创建了第二张SD卡,运行的是Stretch(9.4)和ALSA蓝色。

在Stretch上,一切都很完美,我通过100%的蓝牙扬声器播放在线视频流(即使用wifi)。 Wlan0启动时,带有Jessie的旧卡仍然无法正常发声。

感谢这位花花公子,他详细介绍了设置中的一些技巧:
米歇尔

我使用vlc进行了测试,因此您需要像这样指定要使用的alsa设备:
--aout = alsa --alsa-audio-device =“ bluealsa”

请有人可以从全新安装开始尝试并提出建议。

bluez 5.43-2 + rpt2 + deb9u2 armhf
bluez-固件1.2-3 + rpt6全部
bluealsa 0.7扶手椅
蓝牙:5.49
raspberrypi-bootloader 1.20180417-1 armhf
树莓派内核1.20180417-1 armhf

不要忘记在重启或自动启动后启动bluealsa:sudo systemctl enable bluealsa)

您如何安装bluetoothctl:5.49的? 希望不要从源代码编译。

是的,从源头开始(按链接共享),为什么要为此担心?

我只想使用存储库进行更新,也可以避免仅用于构建它的软件包。 您的帖子中的链接在哪里?

实际上在7周前发布了5.50版本。 如果您沿着这条路线走,可能值得一试。 但是,是的,我们将需要等待5.49+才能进入官方apt-get流程。

我可以确认它与Bluez 5.50互不干扰。

凉。 我将研究升级Raspbian构建所需要的内容。

步骤如下:

  1. 安装依赖项。
    sudo apt install libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev
  1. 下载最新版本的BlueZ源代码。
    wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.50.tar.xz

  2. 解压缩下载的文件。
    tar -xf bluez-5.49.tar.xz && cd bluez-5.50/

  3. 配置。
    ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable-experimental

  4. 编译源代码。
    make -j4

  5. 安装。
    sudo make install

  6. 需要将用户添加到蓝牙组。
    sudo adduser pi bluetooth

  7. 需要还原在BlueZ安装中被覆盖的Dbus蓝牙配置文件。
    sudo nano /etc/dbus-1/system.d/bluetooth.conf

将此添加到<policy user="root">部分:
<allow send_interface="org.bluez.AlertAgent1"/>
<allow send_interface="org.bluez.ThermometerWatcher1"/>
<allow send_interface="org.bluez.HeartRateWatcher1"/>
<allow send_interface="org.bluez.CyclingSpeedWatcher1"/>

然后这样:
<!-- allow users of bluetooth group to communicate -->
<policy group="bluetooth">
<allow send_destination="org.bluez"/>
</policy>

  1. 重新启动Raspberry Pi
    sudo reboot

@amilino仍然不为我工作。 开启和关闭wifi仍会结结巴巴。 我已经尝试了该线程中的几乎所有内容,甚至从带有bt加密狗的rpi b +切换为带有板载蓝牙的rpi 3 b +,但仍然结结巴巴。

实际上,口吃还不够。 似乎获得了一块数据,播放得太快而丢失了一些位,然后坐下等待下一块。

除了最新的Bluez 5.50,我的配置与@StudentSA相同。 我还遵循了本教程: https

@amilino工作完美,谢谢。

本教程的唯一副作用是,如果您在RPI蓝牙上连接Linux计算机,则音频不会播放。 如果有人知道更好的教程,请告诉我。

赛普拉斯一直在研究WiFi / BT干扰,并提出了一些新的“ NVRAM”文件设置,他们声称这些设置“已完全解决了音频卡顿问题”。 可以在43430(3B,ZeroW)和43455(3B +)上使用相同的设置。

  1. 找到您的“ NVRAM”文本文件-位于/lib/firmware/brcm/brcmfmac<dev>-sdio.txt ,其中<dev>分别为43430或43455。 将备份副本放置在安全的地方,以便更轻松地撤消更改(或从错误中恢复)。

  2. 在文本编辑器中打开文件,向下滚动至底部(纯粹是为了整洁-这些设置可能在任何地方都可以)并附加以下内容:

    # Experimental Bluetooth coexistence parameters from Cypress
    btc_mode=1
    btc_params8=0x4e20
    btc_params1=0x7530
    
  3. 重启。

正如我所解释的那样,这些设置通过允许WiFi睡眠更长的时间并减少了蓝牙等待的最长时间,共同使蓝牙具有更长的通话时间。

请报告您的发现,无论是肯定的还是否定的,以帮助我们决定是否将这些设置为新的默认值。

有兴趣地关注了这个话题。 我一直在使用Pi ZeroW / Raspbian Lite,使用Mopidy播放从bluealsa到蓝牙扬声器的互联网流。 直到今天,该线程中的任何内容都无法解决口吃问题。

bluez 5.50-没有区别
禁用WiFi并使用USB以太网适配器-进行了一些更改,但每隔几分钟便会停顿

更改NVRAM设置-到目前为止似乎很完美。 我将重新使用WiFi,并且蓝牙音频没有任何卡塞现象。 仍在使用bluez 5.50。 如果遇到任何口吃,我会报告。

到目前为止,取得了积极成果。 我也在使用Bluez 5.50。 开发板-RPi3

我已经删除了以前作为解决方案抛出的modprobe参数。 到目前为止,没有结巴。 使用iperf3,您肯定可以从wifi广播中看到它在浪费时间。 但是,即使在发送额外数据时也不会出现卡顿现象。

在播放蓝牙时

[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  22.8 MBytes  19.2 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  22.7 MBytes  19.1 Mbits/sec                  receiver

停止播放,并断开扬声器。

[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  55.3 MBytes  46.4 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  54.9 MBytes  46.0 Mbits/sec                  receiver

通过dtoverlay禁用了蓝牙

[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  58.1 MBytes  48.8 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  57.0 MBytes  47.8 Mbits/sec                  receiver

为我工作的raspi 3B,没有结巴,甚至在播放音频(a2dp)时通过wifi移动了大文件,但我看到了
“蓝牙:hci0:帧重组失败(-84)”,以毫秒为单位!

$ dmesg
[ 2331.758484] Bluetooth: hci0: Frame reassembly failed (-84)
[ 2331.758689] Bluetooth: hci0: Frame reassembly failed (-84)
[ 2331.758750] Bluetooth: hci0: Frame reassembly failed (-84)
[ 2331.758833] Bluetooth: hci0: Frame reassembly failed (-84)

现在已经尝试了几个小时。 它比以前要好,但并不完美。 现在,我通常可以连续播放20至30分钟,但随后卡顿又会开始,并且不会消失,而且我停止并重新启动音频流。 当口吃开始时,我的ssh会话也会停顿片刻。 这不是音频缓冲,因为我已经在播放器中登录以告诉我何时进行缓冲。

也许您应该切换到RPi3 b +,我一点问题都没有。

也许您应该切换到RPi3 b +,我一点问题都没有。

虽然不完全是重点吗? 据说这些更改可以“完全修复”音频卡顿现象。 我只是在报告情况似乎并非如此。 3B +使用的芯片组与W不同,因此可能需要对设置进行一些调整。

是的,我同意,但是查看与RPi3有关的问题。 无论如何,这个讨论太长了,也许最好打开与Pi W有关的新的独立问题。

该解决方案也适用于ZeroW。 玩了两个多小时没有问题。

我认为我在ZeroW上遇到的问题可能是由于蓝牙与我的iMac上的蓝牙范围不太相同。 让扬声器靠近Pi,我已经连续播放了四个小时,没有任何问题。 我必须重新安置Pi,以便信号到达厨房:)

感谢所有反馈,这些建议表明这些设置至少有很大的改进,并且没有回归。 如有其他建议,请随时注意,但我正计划将这些设置为新的默认设置。

我可以再添加一个观察结果为阳性的观察结果。 现在,我在ZeroW上同时使用了蓝牙和Wi-Fi大约一个小时,而且没有出现卡顿现象。 将其设置为新的默认值绝对为+1。

您在这里仅讨论将rPi用作a2dp源或还用作a2dp接收器的问题吗?

我正在尝试将rPi3用作蓝牙接收器(即,尝试从手机播放音频到rPi),并且口吃声非常强烈,以至于您几乎听不到播放的歌曲。 未使用Wi-fi。 我尝试使用外部BT适配器-没运气。 但是,使用不同的bt适配器时,口吃会有所不同(例如,如果使用了不同的缓冲区大小)。

我应该报告其他问题吗?

@edio我一直在使用RPi ZeroW作为接收器,通过蓝牙将音频从手机流式传输到RPi。 直到昨天,我的口吃也很糟糕,但是最近建议的解决方案似乎已经解决了。

@ paul-1提出的解决方案适用于Pi 3+开发板。 我可以正常使用Wi-Fi并享受良好的BT音频流

你好,
有谁知道如何在带有只读squashFS系统的Libreelec系统上使用NVRAM解决方案? 据我了解,它是只读的,因为下一个发行版将覆盖系统文件。

@bwims

RPi3:

mkdir /storage/.config/firmware/brcm
cp /usr/lib/firmware/brcm/brcmfmac43430-sdio.txt /storage/.config/firmware/brcm

RPi3 +:

mkdir /storage/.config/firmware/brcm
cp /usr/lib/firmware/brcm/brcmfmac43455-sdio.txt /storage/.config/firmware/brcm

现在,在/storage/.config/firmware/brcm编辑文件并重新启动。

或者,您可以使用带有Kodi 18的最新LibreELEC 9.0测试版本,该版本已经包含此修复程序: https ://forum.kodi.tv/showthread.php?tid=298461

应用此修复程序后,此线程中的任何人仍然偶尔会有辍学吗? 它不像我最初的口吃那样可怕,但是蓝牙接收器对我来说仍然是不可用的,因为每隔两秒钟我就会发出一阵咔嗒声,大致每个脉冲都对应于Pulseudio输出中的一系列记录

E: [bluetooth] module-bluez5-device.c: SBC decoding error (-2)
E: [bluetooth] module-bluez5-device.c: SBC decoding error (-2)
E: [bluetooth] module-bluez5-device.c: SBC decoding error (-2)
E: [bluetooth] module-bluez5-device.c: SBC decoding error (-3)
E: [bluetooth] module-bluez5-device.c: SBC decoding error (-2)
E: [bluetooth] module-bluez5-device.c: SBC decoding error (-2)
E: [bluetooth] module-bluez5-device.c: SBC decoding error (-2)
E: [bluetooth] module-bluez5-device.c: SBC decoding error (-3)
E: [bluetooth] module-bluez5-device.c: SBC decoding error (-2)

从bluez我得到

Aug 26 17:49:07 mu kernel: Bluetooth: hci0: Frame reassembly failed (-84)
Aug 26 17:49:07 mu kernel: Bluetooth: hci0: Frame reassembly failed (-90)
Aug 26 17:49:07 mu kernel: Bluetooth: hci0: Frame reassembly failed (-84)
Aug 26 17:49:07 mu kernel: Bluetooth: hci0: Frame reassembly failed (-84)
Aug 26 17:49:07 mu kernel: Bluetooth: hci0: SCO packet for unknown connection handle 50346

我会听到长达一分钟的咔嗒声,然后消失,通常持续几个小时。 当扬声器离Pi越来越远时,情况更糟。

@MilhouseVH非常感谢! 它让我来到这里,其他人可能会觉得有用。

Flib上的libreELEC(Rpi 3+)修复了卡顿现象,但是如果通过WiFi提供电影,则会导致音频延迟不可接受。 我想这是平台的局限性。

音频延迟是否固定? 您可以使用音频延迟对其进行校正吗?
https://kodi.wiki/view/Video_playback#Audio_and_Subtitle_Settings

我将数据从内置的wlan0移至eth0,并且解决了蓝牙问题。 不幸的是我们不能吃蛋糕也不能吃:(
如果有机会,我将不得不尝试上面的NVRAM建议。

在尝试对RPi 3+进行各种修复后,我仍然遇到结局。 将完全禁用wifi并使用电线。 :(

好。 我很高兴成为另一个数据点。 NVRAM修复程序完全改变了我的异想天开项目,即使用我的零功率构建A2DP源。 我昨天开始了该项目,直到遇到此线程时,在使用wifi时,pulseaudio和bluez-alsa完全无法使用。 没有wifi上网也将成为秀场停止。 非常感谢挖掘芯片来源并找到解决办法的人们。

当CPU过载(例如在播放蓝牙时运行更新)时,我仍然会突然冒起喘口气,但除此之外,它是一台完全不同的机器。 作为记录,我正在运行Arch 4.14.90,Bluez 5.50和Pulseaudio 12.2。 意味着这应该在可预见的将来起作用,而不是涉及运行真正的旧不兼容软件的解决方案。 <3

我编辑了NVRAM文件中的设置:
/usr/lib/firmware/updates/brcm/brcmfmac43430-sdio.txt
/usr/lib/firmware/updates/brcm/brcmfmac43455-sdio.txt

@acegallagher :我不理解您的评论。 任何解释将不胜感激。

如果您有某种解决方案,那么在RPI上需要采取什么步骤?

@pelwell

自2018年8月以来,已更新的NVRAM文件已在Raspbian更新中进行更新。或者,您可以直接下载它们:

  • 适用于Pi 3B和Pi Zero W的43438: https ://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/master/brcm/brcmfmac43430-sdio.txt
  • Pi3 3B +和Pi 3A +的43455: https ://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/master/brcm/brcmfmac43455-sdio.txt

将它们复制到/ lib / firmware / brcm文件夹(您需要sudo cp ... )。

抱歉,那行不通。 仍然有口吃无线上网。

真可惜安装后您重新启动了吗?

不幸的是,共享天线可以实现的功能有限。 您是否尝试过更改Pi到AP和/或BT设备的距离?

是的,已经为此奋斗了几个月。 我切换到了网络电缆,不再有任何问题。

你好
有了更新的/usr/lib/firmware/updates/brcm/brcmfmac43430-sdio.txt和朋友,是的,我重新启动了:-),我仍然听到USB音频上的欠载现象,而板载音频则不存在(每5秒一次)或者)。
不使用wifi,所有以太网。

另一方面,如果我先执行ifconfig wlan0,那么一切都很好...!
哦,不,不是。 少得多

您正在报告有关以太网WiFi蓝牙音频问题的USB音频卡顿问题?

哎呀!

此蓝牙+ WiFi问题导致我的键盘在按下1键时多次击键引起问题。

@ pratt-jeremy那是无线键盘吗?

我也有同样的问题。 在Pi B3,B3 +和Zero上运行Arch。 所有的人都表现出相同的症状:a2dp时播放不稳定。 Arch尚未更新此处列出的固件,但我首先手动进行了更新。 如果我在这三台机器上使用板载BT,那么Bluealsa会抱怨奔跑时存在缓冲,并且会突然播放音乐。 日志显示正在运行的缓冲区。 如果我使用USB加密狗,则一切正常。 我们还能尝试其他吗? 首先,我的内核是4.19.32

在我看来,将蓝牙和wifi放在RPi上似乎就像从母猪的耳朵中制成一个丝绸钱包一样。

Raspberry Pi开发团队应声明,由于缺乏动力/带宽,根本不支持通过蓝牙播放音频同时通过wifi播放视频。

从第一天开始,Pi就被吹捧为BBC micro的更新替代品,用于在学校教孩子。 科迪是一个重要的奖励。 我刚刚放弃了这个想法。 我想将电影放到带有蓝牙到我大篷车的音频系统的pi-top上,但是现在我只是将电影硬盘驱动器插入USB端口。 没有Wifi,没有结巴。 难过,但不太方便。

这是运行适当的命令以使板载BT工作的合适方法吗?
/ usr / bin / btattach -B / dev / ttyAMA0 -P bcm -S 3000000
这是默认安装Bluez 5.50的Arch Linux服务文件中的命令

因此,我已将音频流传输到启用了wifi且处于活动状态的B3 +(我通过ssh登录)。 我正在运行Arch Linux。 我必须安装bluez-utils-compat才能安装hciattach命令。 我相信Raspian已经有了这个...

cat /proc/asound/card0/pcm0p/sub0/hw_params 
access: RW_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 44100 (352800/8)
period_size: 4410
buffer_size: 22050

默认的Bluez 5.50软件包具有btattach,Arch用来打开bt适配器。 这没有用。 我所听到的只是断断续续的声音。 此Arch pi-bluetooth软件包要求该命令为:
ExecStart=/usr/bin/btattach -B /dev/ttyAMA0 -P bcm -S 3000000
起作用的命令来自旧版本的软件包:
ExecStart=/usr/bin/hciattach -n /dev/ttyAMA0 bcm43xx 921600 noflow -
我不声称这是“正确的”还是什么,我只是第一次使用板载适配器流畅地播放蓝牙。

只是为了避免混乱。 赛普拉斯于20166月收购了Broadcom WiFi技术。此后,

  • BCM43438是CYW43438
  • BCM43455为CYW43455

@ pratt-jeremy那是无线键盘吗?

@ JamesH65是的,这是一个蓝牙键盘,我看到这是用于音频的,但以为我会提到它。 一旦我关闭了wifi,蓝牙键盘就可以正常工作了。 没有重复的字符我没有按。

大概您的发行版是最新的吗?

大概您的发行版是最新的吗?

我在这里发布时是最新的,因为它是在3月,所以现在可能已经过时了。我将进行更新,看看它是否仍在发生。

在Rfkill中阻止了WiFi软的RPI4上。 在Pulseaudio A2DP上仍然不连贯。

此页面是否有帮助?
0 / 5 - 0 等级