Linux: Звук Pi3 по bluetooth заикается при включенном Wi-Fi

Созданный на 11 апр. 2016  ·  143Комментарии  ·  Источник: raspberrypi/linux

Здравствуйте,

Я тестирую потоковую передачу музыки с использованием a2dp через Bluetooth на Pi3. Когда Wi-Fi включен, я получаю постоянное опустошение буфера с Pulseaudio (Blueman показывает нисходящий поток около 34 КБ / с). Как только я отключаю интерфейс Wi-Fi (ifdown wlan0), звук начинает нормально воспроизводиться, а скорость нисходящего потока составляет около 42 КБ / с (что является правильным высококачественным стереозвуком, если я вижу http://soundexpert.org/news/-/ блоги / bluetooth-audio-quality-a2dp).
Также попытался сделать буфер намного больше, изменить тип передискретизации, планирование в реальном времени и т. Д. Также попробовал последнюю версию Pulseaudio, без разницы. Похоже, это проблема Raspberry.

Сначала подумал, что это потому, что Wifi и Bluetooth используют UART, но это не так (и было бы слишком медленно, если бы Wi-Fi превышал 921600 бод, если я вижу это правильно). Они по-прежнему используют один и тот же чип (BCM43438). Есть ли известная причина, по которой я (а также слышал других) имею эту проблему?

Bluetooth Issue Bug Waiting for internal comment Wifi Issue

Самый полезный комментарий

Решил немного покопаться в драйверах. Чтение кода дало мне некоторое представление о некоторых поддерживаемых параметрах модуля, и с некоторыми экспериментами и подходом дробовика я, кажется, получил bluetooth + wifi, отлично работающие в сочетании друг с другом.

Мне удалось выполнить спидтест с Pi по Wi-Fi, в то время как мой телефон воспроизводил аудио 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 - вариант, который, казалось, действительно исправил это. Я не уверен, но мне кажется, что 0x96 пытается отключить все дополнительные функции, поэтому я сказал выше «дробовик». Приложив немного терпения, возможно, удастся сузить это до небольшого набора функций.

До сих пор это сработало для меня идеально - я сообщу, если смогу сузить круг вопросов.

РЕДАКТИРОВАТЬ: я получаю небольшие сбои при первом запуске потока, но абсолютно ничего, что кажется зависимым от того, использую ли я Wi-Fi или нет.

Все 143 Комментарий

У меня была такая же проблема. Отключение WLAN0 устранило проблемы со звуком. Однако мне бы очень хотелось иметь возможность пользоваться Wi-Fi ...

То же самое и здесь. Мне потребовалось 3 дня, 2 дистрибутива, чтобы понять, что это сборка в WiFi. Такая же ошибка появляется, когда я использую WiFi-флешку непосредственно в USB-портах. Когда я использую соединительный кабель USB с USB-накопителем, все работает нормально. Я просто думаю, что это происходит из-за встроенной антенны, что две службы 2,4 ГГц мешают друг другу. : - /

Мне удалось заставить A2DP работать, отключив встроенный Wi-Fi и используя USB-адаптер Wi-Pi без какого-либо удлинителя.

Возникает довольно интересный вопрос: поддерживает ли встроенный чип WiFi сосуществование Bluetooth, поддерживает ли это драйвер и правильно ли он работает? Судя по тому, что я видел из нескольких источников, время ожидания значительно выше, когда вы либо отключаете встроенный WiFi, либо отключаете встроенный Bluetooth и вместо этого используете USB-адаптер, и это звучит для меня как встроенный чип. неправильно реализует сосуществование BT, или драйвер не поддерживает его должным образом.

BCM43438 имеет интерфейс сосуществования между интерфейсами WiFi и Bluetooth - поддержка программного обеспечения не требуется.

@Ferroin По моему опыту, я бы сказал / принципиально / да, хотя я не являюсь авторитетным источником и не требую многого от Bluetooth .... При разработке центральных и периферийных приложений Bluetooth LE на Pi 3 I запустить сеанс VNC X, 2 сеанса SSH и установить общий ресурс NFS через Wi-Fi, и все в порядке.

+1 по этому поводу, как я только что обнаружил сегодня вечером. Снял wlan0, и звук воспроизводился нормально. Кто-нибудь получил новые новости с августа о том, что здесь происходит, и есть ли исправление?

+1 мне тоже "ifdown wlan0" и pulseaudio потоки нормально через a2dp

+1, только что обновил сегодня, используя динамик Bluetooth Anker Sound Core. Красиво играет, если я отключу Wi-Fi, но это довольно сложный обходной путь. Это раздражает, но для этого проекта вполне работоспособно (Ладно, отлично, я подключусь через hdmi вместо vncserver УГАДАЮ ), но я тоже жду исправления, потому что оно серьезно ограничивает мою способность делать мои проекты мобильными. VNCserver - необходимость.

+1 из-за чего у меня разболелась голова от решения этой проблемы!

Мне нужен был Wi-Fi, поэтому я просто:
1) Используйте USB-ключ в качестве адаптера WiFi
2) Отключите встроенный WiFi-адаптер в / etc / network / interfaces

Больше никаких проблем со звуком.

Я рад видеть какой-либо прогресс в этом вопросе, но как напоминание, вы можете подписаться на эту ветку и добавить реакцию на исходное сообщение. Не рекомендуется публиковать ответ +1.

Согласились, что ни один WiFi не портит базовый Pi3. Добавление USB-ключа сводит на нет одно из больших преимуществ встроенного WiFi / BT с Pi3. :-(

Я также протестировал поведение и столкнулся с той же проблемой, что и здесь. Планируется добавить дополнительный USB-адаптер WiFi, чтобы решить эту проблему. Надеюсь, что пи поддержит второй WiFi без особых проблем.

Полагаю, Zero W будет страдать от тех же проблем с Bluetooth и WLAN, что и тот же чип?
Однако использовать USB-устройства в качестве обходного пути с Zero W не так-то просто.

Это происходит со всеми Raspberry Pi? Как играет музыка? (ЦАПы, звуковые карты, BCM?) Для чего вы используете Wi-Fi?

Потому что у меня не было проблем с моим Pi3

Только проблема, когда едут оба. WiFi активно передает, а затем попробуйте использовать Bluetooth. Bluetooth + LAN не проблема. Таким образом, большинство людей и приложений не заметят проблемы.

Я добавил вторичный приемник WiFi и сделал его основным и использовал встроенный WiFi в качестве приемника Bluetooth. Это самый дешевый способ заставить это работать.

Bluetooth + LAN не проблема.

Покажите мне, пожалуйста, LAN-порт на Pi0W.

Кто-нибудь пробовал сделать PulsAudio более приоритетным?

Да, я пробовал с более высоким приоритетом, без заметной разницы в результате.

Привет,
Не могли бы вы сообщить мне работоспособную конфигурацию, если она у вас есть для
вышеупомянутая проблема, то есть Wi-Fi - требуется, сопряжение с динамиками Bluetooth в A2DP
Режим.
Судя по вашему профилю, похоже, вы много играли в этом
площадь.

Благодарю.


Привет,
Pradeep
http://pradeepclicks.com/

В пн, 6 марта 2017 г., в 21:29, Бретт Рейнхард [email protected]
написал:

Кто-нибудь пробовал сделать PulsAudio более приоритетным?

-
Вы получили это, потому что оставили комментарий.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/raspberrypi/linux/issues/1402#issuecomment-284439625 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/ADb1rV3_oFd2_qM8-2yHoDdLGeFK3d5dks5rjC1ngaJpZM4IExoX
.

Я тоже пытаюсь решить эту проблему. Похоже, что колебания немного меняются между различными динамиками / наушниками BT, но они все еще присутствуют с использованием ключа WiFi и отключением встроенного Wi-Fi. Даже при использовании адаптера BT беспокойство сохраняется при воспроизведении локального mp3 или использовании Pithos (Pandora). Я также использовал mp3-файл с более низким битрейтом, и шум улучшился.

Я загрузил пару образцов файлов со скоростью от 16 до 64 кбит / с и воспроизвел их с помощью VLC на RPi3. Я использую pulseaudio и подключаюсь к дешевым наушникам bluetooth.
http://www.digitalprosound.com/Htm/WebAudio/2000/Oct/MP3bitrates3.htm

При только фоновой активности Wi-Fi каждый файл воспроизводился, но с увеличением битрейта демонстрировал некоторую нестабильность. Затем я запустил apt-get update и во время его работы воспроизвел файл 16k. Очень неспокойно. То же самое и с остальными. Фактически, активность Wi-Fi оказала большее влияние, чем битрейт файла.

Теперь подключите ключ Wi-Fi и отключите встроенный Wi-Fi (sudo ifdown wlan0). Попробуйте снова.
Все файлы полностью гладкие. Как насчет загрузки по Wi-Fi? Также плавно на скорости 64 кбит / с.
Запускаете Pithos (Pandora)? Гладкий; плавный. Вчера вечером этого не было, поэтому я не уверен, что у меня есть твердое решение.

У меня такая же проблема.

Я решил это с помощью Bluetooth-ключа, который оказался полным успехом.
Подключаемые технологии USB-BT4LE

Однако все еще не доволен этим, какой смысл иметь функции, которые нельзя использовать.

Одна вещь, которую вы должны убедиться, это то, что вы отключили сканирование Bluetooth (сканирование выключено), находясь в приглашении bluetoothctl. Это решило мою проблему, и я смог нормально транслировать с Pi Zero W, Pi3, используя встроенный Wi-Fi / BT и Pi Zero + redbear IoT PiHat.

@Michiman : Я на 100% уверен, что пробовал без одновременного сканирования. все еще была проблема. Хотя я использую rpi3.

+1
здесь же однозначно комбинация бортового wifi + bluetooth.
Настройка: pi zero w + phat dac

Встроенный bluetooth + wifi включить -> звук очень сильно тормозит
встроенный Wi-Fi отключен -> звук воспроизводится отлично, без заиканий

Я думаю, мне нужно начать исследовать, как все это работает на низком уровне, что составляет хорошую задачу, чтобы изучить это должным образом.

У меня также были ужасные проблемы со звуком при попытке потоковой передачи звука с использованием руководств по a2dp, основанных на pulseaudio.
Я пробовал предложения по настройке размеров буфера и отключению внутренней WLAN.
Качество звука значительно улучшилось, но все же не до такой степени, что я бы использовал его как настоящее устройство для прослушивания - в лучшем случае я получал треск или заикание каждые несколько секунд.

Я нашел еще один проект на github, который решает эту проблему, полностью избегая PulseAudio:
https://github.com/lukasjapan/bt-speaker
После отключения внутренней WLAN звук становится вполне разумным при использовании этого метода, и нет необходимости входить в систему при загрузке (у меня он работает в фоновом режиме моего ретроп-изображения).

@maklotski , Мы уже установили, что проблема возникает, когда одновременно включены и Wi-Fi, и Bluetooth. Да, если вам не нужен Wi-Fi, то решение - отключить его. Однако мне нужно передавать аудио из Интернета, поэтому Wi-Fi имеет решающее значение. Я удивлен, что на сегодняшний день RPF не опубликовал никакой полезной информации по этому вопросу.

Мы опубликовали всю имеющуюся полезную информацию, то есть не очень много. Cypress (был Broadcom) имеет два параллельных стека драйверов - dhd и brcmfmac. Предположительно они близки к завершению работы над обновленным драйвером dhd, который улучшает совместимость, но а) он все еще тестируется и б) мы используем brcmfmac. Как только появится улучшенный драйвер brcmfmac, мы его выпустим.

Простое добавление +1 к этой проблеме бесполезно. Он просто расширяет список комментариев без причины. Как только у нас появится какая-либо информация, она будет опубликована.

+1, чтобы продолжать обращать внимание на это и, надеюсь, повышать приоритет
для исправления

Эта ветка github будет обновлена, когда станет доступна информация, имеющая отношение к проблеме. Мы в некоторой степени зависим от Broadcom (теперь Cypress), предоставляющего обновления драйверов, поскольку поддержка сосуществования на кристалле является функцией встроенного программного обеспечения или настройки встроенного ПО.

Ухудшение отношения сигнал / шум потока со спам-ответами просто раздражает. Комментарии, которые ничего не предлагают к обсуждению расследования или решения проблемы, скорее всего, будут немедленно удалены.

Я написал небольшой скрипт для использования inotify для включения и выключения wlan0 при подключении / отключении Bluetooth. Хорошо это
обходной путь, но я могу жить с этим.

`#! / bin / bash

пока правда
делать
RES = inotifywait -q -e CREATE,DELETE /dev/input/
case "$ RES" в
"/ dev / input / DELETE event1")
ifconfig wlan0 вверх
;;
"/ dev / input / CREATE event1")
ifconfig wlan0 выключен
;;
esac
сделанный &
`

Итак, вот работа (в целом), которой я хотел бы поделиться за счет смеха.
Запустить pacat /dev/zero в фоновом режиме
Теперь включите немного звука и после того, как потрескивание прекратится + -30 секунд, включите еще немного звука и наслаждайтесь четким воспроизведением, пока вы не остановите pacat.
Если вы беспокоитесь о том, что все нули летают над bluetooth, возможно, подумайте об установке "pv" с помощью:
sudo apt-get install pv
Вместо этого запустите в фоновом режиме cat /dev/zero | pv -qL 2k | pacat чтобы ограничить нули определенным битрейтом.
Хотел бы знать, как это работает для вас.

Все интересно. Я работал над безголовым Pi Zero / W - No X11. И у меня может быть две / три оболочки ssh, проходящие через Wi-Fi, и Bluetooth настолько чист, насколько это возможно. Я заметил, что чрезмерный опрос устройства Bluetooth (т.е. получение информации о Bluetooth) вызывает заикание. Вы пробовали просто загрузиться в cli?

Ну, я только что понял, что следующий комментарий без контекста бесполезен. Извини, всю ночь стучал по клавиатуре ----

1 - Pi Zero / W и Pi 3 идентичны с точки зрения Bluetooth / Wifi, по крайней мере, в том, что касается ядра.
2 - Запуск Jessie Lite - недавно обновленный, и ядро ​​4.9.29+
3 - Запуск NetBeans на рабочем столе и удаленная отладка на Pi.
4 - Стресс-тестирование Частота кадров с TFT-дисплеем - действительно запуск шины SPI.
5 - Опрос событий ввода для сенсорного экрана и выгрузка результатов в stderr, который передается по конвейеру в NetBeans - тестирование джиттера на сенсорном экране
6 - Запуск программы-примера mpg123_to_out123 из tar-архива mpg123 через Bluetooth с воспроизведением «Невинного человека» Билли Джоэла с SD-карты.
7 - X11 не видно.

Нежный, как пирог, со вкусом малины. Так долго я напеваю Билли Джоэла во сне.
Заметили, что принудительный запрос статуса соединения Bluetooth ухудшает ситуацию.

Предложите исключить как можно больше "другого" кода.

Привет,
с PI (Zero W) Bluetooth определенно существует серьезная проблема.

Я переместил скрипт Python, который обнаруживает телефоны через Bluetooth, с ЧИПа на Pi Zero W.
Результат был сумасшедшим, весь мой домашний Wi-Fi заклинило при доступе к Bluetooth :-(

Сценарий использует следующую команду, чтобы определить, находится ли телефон в радиусе действия:
результат = bluetooth.lookup_name (mac, timeout = 5)

Я запускаю это в цикле с двумя телефонами. Цикл запускается каждые 15 секунд и проверяет оба телефона.
Сначала я уведомил, что а) SSH через Wi-Fi иногда не отвечал и б) мой светодиодный индикатор WiFi иногда не отвечал после настройки Pi Zero W.
Странно, поэтому я попытался проверить связь с Wifi Lights, результат: таймауты примерно на 5 секунд каждые 15 секунд.
Затем я попытался выполнить эхо-запрос PI Zero W: время пинга около 2000-4000 мс в течение этих 5-секундных окон, иногда даже таймауты.

Поэтому я отключил скрипт, запускающий обнаружение bluetooth: все было в порядке.
Повторный запуск скрипта: снова истекло время ожидания.

Это безумие! Сканирование bluetooth для телефонов (это в основном «вы там?» Для сопряженного устройства bluetooth) в основном ломает весь мой домашний Wi-Fi.
Я знаю, что Bluetooth и Wi-Fi работают на одной частоте. Но Bluetooth стандартизирован для использования обширных скачков частоты, чтобы предотвратить именно такие помехи. Но не на Pi Zero W?

Это определенно воспроизводимо, просто попробуйте скрипт Python ниже.

Мое лучшее предположение о причине: радио Bluetooth мешает Wi-Fi, а не наоборот. Причиной может быть проблема в стеке Bluetooth, связанная со скачкообразной перестройкой частоты. Это также объясняет сообщаемые проблемы со звуком Bluetooth: когда Bluetooth остается на одной частоте, Wi-Fi с большей вероятностью нарушит его сигнал.
Тем не менее, я могу ошибаться, я довольно хорошо знаю Wi-Fi, поскольку я защитил диссертацию по теме, касающейся физического уровня Wi-Fi, но я не являюсь экспертом в области Bluetooth.


Короткий тестовый сценарий Python, воспроизводящий проблему. Просто пингуйте Pi во время его работы.

время импорта
импорт блютуз
mac = "00: 00: 00: 00: 00: 00"
в то время как True:
print ("Искать% s ... в Bluetooth"% mac)
пытаться:
результат = bluetooth.lookup_name (mac, timeout = 5)
кроме bluetooth.btcommon.BluetoothError как e:
print ("\ nERORR: сбой запроса Bluetooth, ошибка:% s"% e)
print ("Результат:% s это:% s"% (mac, результат))
время сна (15)

Завтра (в понедельник вечером по восточному стандартному времени), если хотите, я выложу на YouTube, как хорошо это работает. Однако только двойное / тройное подтверждение (всего 5 минут назад) - единственные проблемы возникают во время «Обнаружение» и «Сканирование». Если вы сделаете свое устройство недоступным для обнаружения и не будете активно сканировать (обнаруживать), Wi-Fi и Bluetooth отлично работают вместе на Pi Zero W. Я получаю стабильный пинг 4-5 мс по WiFi при подключении через Bluetooth и ssh. Нужно выяснить, как записать звук для видео на YouTube, но я отчетливо слышу его без дрожания.

FWIW - Я работаю над приложением Bluetooth Audio, поэтому меня это действительно беспокоит. В моем приложении я запрашивал информацию о подключенном устройстве, чтобы получить RSSI и т. Д. Мне пришлось отказаться от опроса из-за проблем, которые уже заметили очень многие здесь.

Если вы не контролируете все приложения в своем сеансе, которые могут выполнять опрос (D-Bus) в соединении Bluetooth, вы не можете исключить их как соучастников проблем. Я не использую X11 - поэтому я гораздо ближе к железу и тому, что происходит. Конечно, PulseAudio по-прежнему остается «черным ящиком», но, помимо этого, я в основном контролирую всю сделку, и она действительно работает довольно хорошо.

Я не говорю, что в прошивке нет проблем, но на самом деле приложения должны вести себя лучше.

Привет,
Мне было бы очень интересно видео на YouTube, если у вас будет время :)
Я тоже использую Pi Zero W, но когда я отключаю Wi-Fi, он немного заикается ...

Привет, просто примечание - мой Zero W страдает той же проблемой - пропуск звука BT при потоковой передаче по Wi-Fi - даже для версии 9.1 / Stretch Raspbian

Cypress надеется улучшить «сосуществование» между WiFi и BT, но в первую очередь они сосредоточились на некоторых проблемах стабильности WiFi.

Привет, есть новости по этому поводу?

Начиная с самого последнего образа Raspbian Stretch, запустите:

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

Это приведет к появлению новой прошивки Bluetooth и обновленного BlueZ, которые вместе должны улучшить сосуществование WiFi и Bluetooth.

Пока вы это делаете, получите последнее ядро ​​для повышения надежности Bluetooth:

sudo apt-get install raspberrypi-bootloader raspberrypi-kernel

Я хотел бы увидеть бок о бок видео о производительности BT / WiFi
все вместе. Если кто-то еще не сделал, мне придется над этим поработать.

7 ноября 2017 г. 12:15 "Фил Элвелл" [email protected] написал:

Пока вы это делаете, получите последнее ядро ​​для улучшенного Bluetooth
надежность:

sudo apt-get установить raspberrypi-bootloader raspberrypi-kernel

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/raspberrypi/linux/issues/1402#issuecomment-342554756 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AZCYY6u0Q45M19rAdGFM0WP4q6VXP0Zeks5s0JBOgaJpZM4IExoX
.

@pelwell Я обновил bluez bluez-firmware raspberrypi-bootloader raspberrypi-kernel до последней версии, как вы посоветовали.

Однако я все еще сталкиваюсь с проблемой со звуком, передаваемым через Bluetooth на Raspberry Zero W, когда Wi-Fi включен. Если я отключу Wi-Fi ( sudo iwconfig wlan0 txpower off ), он будет работать нормально, и треск больше не будет.

Пожалуйста, дайте мне знать, если я могу чем-нибудь помочь.

Я использую bt-динамик. Связанная проблема сообщается здесь: https://github.com/lukasjapan/bt-speaker/issues/4

Вы хотите сказать, что не заметили улучшений?

к сожалению, без улучшений :(

@pelwell Просто чтобы вы знали, вот установленные версии:

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

Есть ли у кого-нибудь такая же проблема с контроллерами PS3 (через Bluetooth) с использованием Retropie с включенным Wi-Fi на rpi 3? У меня есть то, что кажется случайным, иногда контроллеры работают нормально, а иногда как будто я вообще ничего не нажимал. Делает это немного сложнее играть в игры таким образом!

Сегодня я обновил 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:

При отключении Wi-Fi ( ifconfig wlan0 down или dtparam=pi3-disable-wifi ) звук Bluetooth A2DP работает нормально. Однако при подключении двух устройств звук начинает сильно заикаться.

С помощью внешнего USB-адаптера Bluetooth несколько устройств могут подключаться через A2DP и ​​передавать аудио одновременно.

Итак, я предполагаю, что это ограничение чипа, а не программное обеспечение ... (но я бы хотел, чтобы в будущем обновлении ядра я ошибся)

Убедитесь, что у вас установлена ​​последняя версия прошивки BT ( sudo apt-get update; sudo apt-get install bluez-firmware ) - были внесены некоторые улучшения.

Последний раз я делал это 2 дня назад, изменилось ли это с тех пор?

-Рон


От: Фил Элвелл [email protected]
Отправлено: среда, 24 января 2018 г., 5:32
Кому: raspberrypi / linux
Копия: Рон Купер; Руководство
Тема: [Внешний] Re: [raspberrypi / linux] Звук Pi3 по bluetooth заикается при включенном Wi-Fi (# 1402)

Убедитесь, что у вас установлена ​​последняя версия прошивки BT (sudo apt-get update; sudo apt-get install bluez-firmware) - произошли некоторые улучшения.

-
Вы получаете это, потому что подписаны на эту ветку.
Ответьте на это электронное письмо напрямую, просмотрите его на GitHub https://github.com/raspberrypi/linux/issues/1402#issuecomment-360088465 или отключите поток https://github.com/notifications/unsubscribe-auth/AC8KdHhcuhMFBE5j42nTMhwcgacks5JtNfx .

Нет - это будет последняя версия (1.2-3 + rpt1).

Благодаря! Тем временем я купил USB-ключ Wi-Fi в качестве временного решения.

Кто-нибудь знает, должен ли драйвер набора микросхем (теоретически) предпринимать шаги, чтобы избежать радиопомех между этими двумя радиомодулями?

-Рон


От: Фил Элвелл [email protected]
Отправлено: среда, 24 января 2018 г., 7:20
Кому: raspberrypi / linux
Копия: Рон Купер; Руководство
Тема: [Внешний] Re: [raspberrypi / linux] Звук Pi3 по bluetooth заикается при включенном Wi-Fi (# 1402)

Нет - это будет последняя версия (1.2-3 + rpt1).

-
Вы получаете это, потому что подписаны на эту ветку.
Ответьте на это электронное письмо напрямую, просмотрите его на GitHub https://github.com/raspberrypi/linux/issues/1402#issuecomment-360113610 или отключите поток https://github.com/notifications/unsubscribe-auth/AC8KdIfVVwDf2lOlcGQTppx5AJojt .

Предполагается, что (существует канал сосуществования между двумя отдельными устройствами в одном пакете), и эта прошивка является значительным улучшением по сравнению с исходной прошивкой, но совместное использование антенны кажется проблемой.

@spalthammer написал сценарий, который послужит хорошим обходным

Я написал небольшой скрипт для использования inotify для включения и выключения wlan0 при подключении / отключении Bluetooth. Хорошо это
обходной путь, но я могу жить с этим.

`#! / bin / bash

пока правда
делать
RES = inotifywait -q -e CREATE, DELETE / dev / input /
case "$ RES" в
"/ dev / input / DELETE event1")
ifconfig wlan0 вверх
;;
"/ dev / input / CREATE event1")
ifconfig wlan0 выключен
;;
esac
сделанный &
`
Может кто-нибудь объяснить новичку, как реализовать этот скрипт? Это отлично подойдет мне, так как мне не нужен Wi-Fi во время воспроизведения Bluetooth. Однако мне все еще нужна возможность использовать ssh / vnc для моего Pi3, когда устройство BT отключается.

@lexanix

установить inotify
cmd: sudo apt-get install 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)
-сделал его исполняемым с помощью chmod + x только потому, что u + x не работал
-пытался выполнить скрипт прямо с терминала (без перезагрузки), что он и сделал, так как я добавил строку для возврата эха, и это сработало
-загрузил при запуске из /etc/rc.local
Однако Wi-Fi все еще остается включенным, когда я подключаю свой телефон через Bluetooth ...

Я использую последнюю версию Raspbian. Мой телефон передает музыку на Pi через BT, который затем выводит FM-сигнал на GPIO. В это время мне не нужно включать Wi-Fi, так как музыка начинает заикаться. Однако, чтобы по-прежнему иметь возможность повторно подключаться к моему Pi с помощью SSH / VNC после того, как я отключил Wi-Fi, я сделал небольшой скрипт «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
Подключитесь к устройству Bluetooth и запишите номер вашего устройства ввода. Измените скрипт и перезапустите.
Я дважды проверил сценарий. Даже если он не идеален, он работает должным образом.

С уважением

Во время воспроизведения A2DP соединение BT нестабильно. BT часто отключается, и для восстановления требуется перезагрузка системы.
можешь дать решение.

@spalthammer отлично! ваш скрипт работает как ожидалось
идеальное решение для меня (Zero W с динамиком phat; теперь чередуются внутренние интерфейсы Bluetooth и WiFi)
больше никаких трещин при воспроизведении музыки :-)

Будет ли это лучше с новым Raspberry Pi 3 B +?

@spalthammer

Спасибо за отличный обходной путь. Это как раз то, что мне нужно.

Несмотря на то, что у меня только одно соединение Bluetooth, я получаю следующее:

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 ,

число X в событии X зависит от количества устройств ввода, а не от количества подключений Bluetooth. Поэтому, если вы не измените настройку оборудования, скажем, если вы не добавите другое устройство ввода, такое как звуковая карта USB или клавиатура, номер не должен измениться. Если вы хотите узнать больше о подключенных устройствах ввода, воспользуйтесь командой:

cat /proc/bus/input/devices

даст вам обзор.

Ragards.

Этот обходной путь отлично сработал для меня! Но, похоже, по какой-то причине мне это больше не нужно ...

Я только что получил еще один пи ноль ш. Загрузил изображение jessie stretch и выполнил обновление, обновление. Я использую pHat DAC и инструкции по настройке Bluetooth отсюда:

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

Возможно ли, что я нашел исправление в обновлении или обновлении? Или, может быть, мой новый rpi имеет аппаратное исправление?

Я клонирую образ на моем пи, который не заикается, и собираюсь попробовать его на том, который требует обходного пути spalthammer. И я попробую образ, который заикается в rpi на новом оборудовании, и отключу обходной путь, чтобы увидеть, не тормозит ли новое оборудование с этим образом.

Я обнаружил, что проблема возникает только в том случае, если я оставлю работающим bluetoothctl. Как на новом оборудовании / «программном обеспечении», так и на старом, я не получаю никаких прерываний потока Bluetooth A2DP, если я не нахожусь в bluetoothctl.

Это легкий стретч, без импульсного звука. Может быть, это важно.

@pelwell , Есть идеи, может ли это быть решено как часть новой прошивки WiFi от Cypress, как упоминалось здесь?
https://www.raspberrypi.org/forums/viewtopic.php?f=117&t=208090
С уважением,

@StudentSA Не похоже. По крайней мере, не совсем. У меня возникла эта проблема на Zero W, работающем с 2018-04-18-raspbian-stretch-lite.

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

Возможно, одна из тех проблем, которые никогда не исправят ...

Решил немного покопаться в драйверах. Чтение кода дало мне некоторое представление о некоторых поддерживаемых параметрах модуля, и с некоторыми экспериментами и подходом дробовика я, кажется, получил bluetooth + wifi, отлично работающие в сочетании друг с другом.

Мне удалось выполнить спидтест с Pi по Wi-Fi, в то время как мой телефон воспроизводил аудио 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 - вариант, который, казалось, действительно исправил это. Я не уверен, но мне кажется, что 0x96 пытается отключить все дополнительные функции, поэтому я сказал выше «дробовик». Приложив немного терпения, возможно, удастся сузить это до небольшого набора функций.

До сих пор это сработало для меня идеально - я сообщу, если смогу сузить круг вопросов.

РЕДАКТИРОВАТЬ: я получаю небольшие сбои при первом запуске потока, но абсолютно ничего, что кажется зависимым от того, использую ли я Wi-Fi или нет.

Это отличные данные, спасибо, что изучили их, и, пожалуйста, держите нас в курсе любых дальнейших достижений.

@pelwell Фил, ты это видел? Возможно, стоит доложить Cypress.

Это кажется очень простым - если Cypress доволен этим и он настолько эффективен, мы можем сделать их значениями по умолчанию для ядер Pi.

Достаточно ли просто создать /etc/modules.d/bt-wifi-fix.conf с указанным вами содержимым? Или мне нужно изменить что-то еще, чтобы это вступило в силу?

Просто создайте файл, как описано, и перезагрузитесь.

Хорошо, я погуглил и нашел материал для /etc/modules-load.d, но не для /etc/modules.d

Я добавил файл на Pi Zero W. Некоторое время я буду транслировать по Bluetooth, и посмотрю, слышу ли я заикание при подключении Wi-Fi.

Есть ли способ проверить, что 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 подхвачен?

Если нет, могу ли я еще что-нибудь найти?

Протестировано на ZeroW с ядром 4.14.41 (пользовательская ОС). Хотя во много раз лучше, есть некоторые заикания ... но почти терпимые.

Я запустил iperf3 обратно на свой сервер во время воспроизведения потока a2dp .... Wi-Fi нажимал
около 30Мбит / с на iperf3.

Планируется протестировать на pi3 и pi3b + (3b + уже может хорошо играть, если Wi-Fi подключен к каналу 5 ГГц)

@davthomaspilot Я просто пробую это сейчас, и предлагаемое содержимое файла выглядит правильно, но, хотя имя каталога выглядело знакомым, его нет в моей системе Raspbian - /lib/modprobe.d является обычным (и, возможно, _ правильным_) место - поэтому я предлагаю использовать имя файла /lib/modprobe.d/bt-wifi-fix.conf .

Начните с закомментированных строк fcmode и feature_disable и возьмите результат из dmesg | cut -c16- | grep brcmfmac . Затем раскомментируйте один или оба из них, перезагрузитесь и сравните вывод dmesg (и качество потоковой передачи).

Благодаря! Я это сделаю.

Я надеюсь, что это поможет больше, чем просто "iwconfig wlan0 power off" в /etc/rc.local.

При отключенном энергосбережении Wi-Fi прерывание потоковой передачи происходит только раз в минуту или две. Это не что иное, как сеанс ssh по Wi-Fi.
Потребуется некоторая «статистика», чтобы увидеть, есть ли дальнейшее улучшение. Я попробую на Pi Zero W.

Вот сравнение сравнения, когда строки прокомментированы, а не нет (с использованием /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)

Сейчас тестируем качество потоковой передачи ...

Он все еще заикается. Трудно сказать, значительно ли он лучше, чем у меня. Заикание раз в две минуты.

Опять же, это с включенным Wi-Fi, но практически без трафика Wi-Fi.

В настоящее время мой обходной путь - отключить Wi-Fi при подключенном Bluetooth. Меня действительно не волнуют заикания, когда я подключен к Wi-Fi, но было бы неплохо подключиться к Wi-Fi без предварительного отключения Bluetooth.

Тестирование с pi3B + на канале 2,4 ГГц.

Параметр «options brcmfmac fcmode = 2» приводит к сбою драйвера Wi-Fi на pi3B +, как только BT начинает передавать данные через соединение Bluetooth. Использование профиля A2DP.

Я использую только параметры brcmfmac feature_disable = 0x96 на pi3B +, и это довольно стабильно, если я не нажимаю соединение Wi-Fi с помощью iperf, тогда я получаю значительное заикание. На канале 5 ГГц этот параметр не влияет на видимые побочные эффекты. Bluetooth в этом случае очень стабилен, и iperf3 проталкивает 120Mbit / s

Итак, не хочу бросать гаечный ключ в работе, но я, честно говоря, не могу воспроизвести эту проблему на последнем img Stretch с обновлением прошивки bluez и обновлением bluetoothctr. У меня есть 2 SD-карты, одна с тех пор, как я изначально разместил в апреле 2017 года Jessie и PulseAudio. и сегодня я создал вторую SD-карту с Stretch (9.4) и ALSA blue.

На Stretch все идеально, я играю онлайн-поток (т.е. использую Wi-Fi) через свой динамик Bluetooth на 100%. Старая карта с Джесси все еще плохо потрескивает при включенном Wlan0.

Благодарим этого чувака, который подробно описал несколько трюков в настройке:
Мишель

Я тестировал использование vlc, поэтому вам нужно указать, какое устройство alsa использовать, например:
--aout = alsa --alsa-audio-device = "bluealsa"

Кто-нибудь может попробовать это из новой установки и посоветовать.

bluez 5.43-2 + rpt2 + deb9u2 armhf
bluez-прошивка 1.2-3 + rpt6 все
bluealsa 0.7 armhf
bluetoothctl: 5,49
raspberrypi-загрузчик 1.20180417-1 armhf
raspberrypi-ядро 1.20180417-1 armhf

не забудьте запустить bluealsa после перезагрузки или автозапуска: sudo systemctl enable bluealsa)

Как вы установили bluetoothctl: 5.49? Надеюсь, что не будет компилироваться из исходного кода.

Yip, из источника (согласно опубликованной ссылке), почему это вызывает беспокойство?

Мне просто нравится получать обновления с помощью репозитория, чтобы избежать пакетов, необходимых только для его сборки. Где ссылка в вашем сообщении?

На самом деле 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. Пользователь должен быть добавлен в группу bluetooth.
    sudo adduser pi bluetooth

  7. Файл конфигурации Dbus Bluetooth, который был перезаписан при установке BlueZ, необходимо восстановить.
    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 У меня все еще не работает. Все еще заикается как при включенном, так и при выключенном вайфая. Я перепробовал почти все в этой теме, даже переключился с rpi b + с донглом bt на rpi 3 b + со встроенным bluetooth, и все еще заикается.

На самом деле, не совсем заикание. Кажется, что он получает фрагмент данных, воспроизводит его слишком быстро с отсутствующими битами, а затем сидит и ждет следующего фрагмента.

У меня та же конфигурация, что и у @StudentSA , за исключением последней версии Bluez 5.50. Я также следил за этим руководством: https://gist.github.com/mill1000/74c7473ee3b4a5b13f6325e9994ff84c. Я играл те же песни, которые раньше заикались, и теперь они работают без проблем.

@amilino Сработало отлично, спасибо.

Единственным побочным эффектом этого руководства является то, что звук не воспроизводится, если вы подключаете Linux-машину через RPI Bluetooth. Если кто-то знает какой-нибудь учебник получше, дайте мне знать.

Cypress изучает помехи Wi-Fi / 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. Перезагружать.

Как мне объяснили, эти настройки в совокупности позволяют Bluetooth больше эфирного времени, позволяя Wi-Fi спать дольше и сокращая максимальное время ожидания Bluetooth.

Сообщите о своих выводах, положительных или отрицательных, чтобы помочь нам решить, следует ли использовать эти новые значения по умолчанию.

С интересом следил за этой веткой. Я использовал Pi ZeroW / Raspbian Lite для воспроизведения интернет-потоков через bluealsa на динамик Bluetooth с помощью Mopidy. До сегодняшнего дня ничто в этой теме не помогло решить проблему заикания.

bluez 5.50 - без разницы
отключение Wi-Fi и использование USB-адаптера Ethernet - некоторые изменения, но все еще заикаются каждые несколько минут

Изменение настроек NVRAM - пока кажется идеальным. Я снова использую Wi-Fi, и звук по Bluetooth не заикается. Все еще использую bluez 5.50. Я сообщу, если у меня возникнет заикание.

Пока положительные результаты. Я также использую Bluez 5.50. Доска - RPi3

Я удалил предыдущие параметры modprobe, которые предлагались как решение. Пока заикания нет. Используя iperf3, вы определенно можете увидеть, как он крадет время у Wi-Fi радио. Но никаких заиканий, даже при передаче дополнительных данных.

Во время игры в блютуз

[ 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

Bluetooth отключен через 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, без заиканий, даже перемещение большого файла по Wi-Fi во время воспроизведения звука (a2dp), но я вижу тонны
«Bluetooth: 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. Играл более 2 часов без проблем.

Я думаю, что проблемы, с которыми я столкнулся на ZeroW, вероятно, связаны с тем, что Bluetooth не имеет такого же диапазона, как Bluetooth на моем iMac. Подставив динамик ближе к Pi, я уже 4 часа без проблем играю в интернет-радио. Придется переставить Pi, чтобы сигнал доходил до кухни :)

Спасибо за все отзывы, которые говорят о том, что эти настройки являются, по крайней мере, большим улучшением без регресса. Не стесняйтесь вмешиваться, если ваш опыт подсказывает иное, но я планирую сделать эти новые значения по умолчанию.

Могу добавить еще одно наблюдение с положительным результатом. Я использую Bluetooth и Wi-Fi одновременно на своем ZeroW уже около часа без заиканий. Определенно +1 за то, чтобы сделать это новым значением по умолчанию.

Обсуждаете ли вы здесь только проблему, когда rPi используется как источник a2dp или также как приемник a2dp?

Я пытаюсь использовать свой rPi3 в качестве приемника bluetooth (т. Е. Пытаюсь воспроизвести звук со своего телефона на моем rPi), и заикание настолько сильное, что вы с трудом узнаете проигрываемые песни. Wi-Fi не используется. Пробовал с внешним адаптером BT - не повезло. Однако с другим адаптером bt заикание было другим (например, при использовании другого размера буфера).

Должен ли я сообщить о другой проблеме?

@edio Я использовал RPi ZeroW в качестве приемника, транслируя звук с телефона на RPi через Bluetooth. До вчерашнего дня у меня тоже было ужасное заикание, но последнее предложенное решение, похоже, решило его.

Решение, представленное @ paul-1, работает для меня на плате Pi 3+. Я могу нормально использовать Wi-Fi и наслаждаться хорошим аудиопотоком BT

Здравствуйте,
Кто-нибудь знает, как использовать решение NVRAM в системе Libreelec с системой squashFS только для чтения? Насколько я понимаю, он доступен только для чтения, потому что следующий дистрибутив перезаписывает системные файлы.

@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 и перезагрузитесь.

Или вы можете использовать недавнюю тестовую сборку LibreELEC 9.0 с Kodi 18, которая уже включает это исправление: https://forum.kodi.tv/showthread.php?tid=298461

У кого-нибудь в этой ветке все еще есть случайные выпадения после применения исправления? Это не так ужасно, как заикание, которое у меня было изначально, но все же приемник bluetooth для меня довольно непригоден, так как каждые пару секунд у меня появляются всплески щелчков, примерно каждый из которых соответствует серии записей в импульсном аудиовыходе.

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 большое спасибо за это! Это позволило мне здесь, что другие могут найти полезным.

К вашему сведению, в libreELEC (Rpi 3+) исправление устраняет заикание, но вводит недопустимую задержку звука, если фильм обслуживается через WiFi. Думаю, это ограничение платформы.

Задержка звука исправлена? Можете ли вы исправить это с помощью задержки звука?
https://kodi.wiki/view/Video_playback#Audio_and_Subtitle_Settings

Я переместил свои данные из встроенного wlan0 в eth0, и проблемы с bluetooth были решены. К сожалению, мы не можем съесть торт и съесть его :(
Мне придется попробовать предложенное выше предложение NVRAM, когда у меня будет возможность.

Я все еще испытываю заикание после того, как попробовал все виды исправлений на моем RPi 3+. Полностью отключит Wi-Fi и буду использовать провод. :(

Хорошо. Я счастлив быть еще одним источником данных. Исправление NVRAM полностью изменило мой проект создания источника A2DP с использованием моего нуля. Я начал проект вчера, и пока я не наткнулся на эту тему, и pulseaudio, и bluez-alsa были полностью непригодны для использования, пока использовался Wi-Fi. Отсутствие Wi-Fi также может стать препятствием. Большое спасибо людям, которые покопались в источниках чипов и нашли исправление.

У меня все еще есть небольшие хлопки и хрипы, когда процессор перегружается (например, при запуске обновлений при воспроизведении bluetooth), но в остальном это совершенно другая машина. Для записи, я использую 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

Обновленные файлы NVRAM находятся в обновлениях Raspbian с августа 2018 года. Вы также можете скачать их напрямую:

Скопируйте их в папку / lib / firmware / brcm (вам потребуется sudo cp ... ).

Извините, но это не работает. Еще есть заикание с Wi-Fi.

Это позор. Вы перезагружались после установки?

К сожалению, есть пределы того, что может быть достигнуто с помощью общей антенны. Вы пробовали изменить расстояние от Pi до точки доступа и / или устройства BT?

Да, уже несколько месяцев борюсь с этим. Перешел на сетевой кабель и проблем больше нет.

Привет,
С обновленным /usr/lib/firmware/updates/brcm/brcmfmac43430-sdio.txt и другом, и да, я перезагрузился :-), я все еще слышу недоработки на аудио USB, которых нет со встроенным аудио (каждые 5 секунд или так).
Не использую Wi-Fi, все Ethernet.

Если, с другой стороны, я сначала сделаю ifconfig wlan0 down, тогда все будет хорошо ...!
о нет, это не так. намного меньше

Вы сообщаете о заикании звука USB с Ethernet в проблеме со звуком Bluetooth с WiFi?

ой!

Эта проблема Bluetooth + WiFi вызывает проблемы с моей клавиатурой, выполняющей несколько нажатий клавиш на 1 клавишу вниз вверх.

@ pratt-jeremy Это беспроводная клавиатура?

У меня та же проблема. Запуск Arch на Pi B3, B3 + и Zero. У всех одни и те же симптомы: прерывистая игра с a2dp. Arch не обновлял прошивку, как указано здесь, но сначала я сделал это вручную. Если я использую встроенный BT на этих 3 машинах, Bluealsa жалуется на недостаточную работу буфера и воспроизводит музыку рывками. Журнал показывает, что буфер работает. Если я использую USB-ключ, все работает должным образом. Можем ли мы попробовать что-нибудь еще? fwiw, у меня ядро ​​4.19.32

Мне кажется очевидным, что поставить bluetooth и wifi на RPi - все равно что сделать шелковый кошелек из свиного уха.

Команда разработчиков Raspberry Pi должна заявить, что воспроизведение звука через Bluetooth при воспроизведении видео через Wi-Fi просто не поддерживается из-за нехватки мощности / пропускной способности.

С самого первого дня Pi рекламировался как обновленная замена BBC micro для обучения детей в школах. Коди был главным бонусом. Я только что отказался от этой идеи. Я хотел подавать фильмы на пи-приставку с подключением bluetooth к аудиосистеме моего дома на колесах, но теперь я просто подключаю жесткий диск для фильмов к USB-порту. Ни Wi-Fi, ни заикания. Печально, но не слишком неудобно.

Подходит ли эта команда для запуска встроенного BT?
/ usr / bin / btattach -B / dev / ttyAMA0 -P bcm -S 3000000
Это команда в служебном файле для Arch Linux с установленной по умолчанию Bluez 5.50.

Итак, у меня есть потоковая передача звука на B3 + с включенным и активным Wi-Fi (я вошел в систему через ssh). Я использую Arch Linux. Мне пришлось установить bluez-utils-compat, чтобы установить команду hciattach. Я думаю, у Распиана это уже есть ...

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 -
Я не утверждаю, что знаю, правильно ли это или что-то в этом роде, просто это первый раз, когда у меня было плавное воспроизведение bluetooth с использованием встроенного адаптера.

Во избежание недоразумений. Технология Broadcom WiFi была куплена Cypress еще в июне 2016 года. С тех пор

  • BCM43438 - это CYW43438
  • BCM43455 - это CYW43455

@ pratt-jeremy Это беспроводная клавиатура?

@ JamesH65 да, это клавиатура bluetooth, я вижу, это для звука, но подумал, что стоит упомянуть об этом. Как только я отключил Wi-Fi, клавиатура Bluetooth заработала отлично. Никаких повторяющихся символов я не нажимал.

Предположительно ваш дистрибутив полностью обновлен?

Предположительно ваш дистрибутив полностью обновлен?

Он был актуальным, когда я писал здесь, он, вероятно, уже устарел, так как был в марте. Я обновлю и посмотрю, происходит ли это еще.

На RPI4 с программным обеспечением WiFi заблокирован в rfkill. По-прежнему прерывистый на Pulseaudio A2DP.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги