Bang & Olufsen на Linux: автоматическая настройка аудио на ноутбуках с Intel SOF HDA DSP

Многие владельцы ноутбуков с аудиосистемой Bang & Olufsen сталкиваются с проблемами в Linux: встроенные динамики не работают, наушники не переключаются автоматически, микрофон не распознается.

Эта статья покажет, как исправить эти проблемы с помощью автоматического скрипта sof_fix_audio_auto.sh, который настраивает SOF HDA DSP, подключает динамики, наушники и микрофон, и делает это автоматически при каждой загрузке системы.


Цель

  • Исправить проблемы со звуком на ноутбуках с Bang & Olufsen и Intel SOF HDA DSP.
  • Включить встроенные динамики, наушники и микрофон.
  • Настроить автоматическую загрузку при старте системы.

1. Установка необходимых инструментов

Открой терминал и установи пакеты:

sudo apt update
sudo apt install alsa-tools alsa-tools-gui
  • alsa-tools содержит hda-verb, необходимый для переназначения пинов.
  • alsa-tools-gui не обязателен, но полезен для визуальной диагностики.

2. Скачивание скрипта

Скачай скрипт sof_fix_audio_auto.sh в /usr/local/bin/:

cd /usr/local/bin/
sudo wget https://lewickiy.ru/downloads/sof_fix_audio.sh

3. Сделать скрипт исполняемым

sudo chmod +x sof_fix_audio_auto.sh

4. Первый запуск скрипта

sudo ./sof_fix_audio_auto.sh

Скрипт выполнит настройку всех пинов (динамики, наушники, микрофон) и автоматически создаст systemd-сервис для автозагрузки.

Пример вывода:

Используем карта 0 (SOF HDA DSP)
Пин 0x17 → 0x40
Пин 0x21 → 0x40
Настройка SOF HDA DSP завершена
Создаём systemd-сервис для автозагрузки
Сервис создан и включен в автозагрузку

5. Проверка работы звука

5.1 Динамики

speaker-test -c2 -twav -Dhw:0,0

Слушай звук с левой и правой стороны. Для остановки теста — Ctrl+C.

5.2 Наушники

speaker-test -c2 -twav -Dhw:0,31

Вставь наушники и проверь, что звук идёт через них.

5.3 Микрофон

arecord -f cd -d 5 test_mic.wav
aplay test_mic.wav

Должен воспроизводиться звук с микрофона.


6. Проверка автозагрузки

Проверяем статус сервиса:

systemctl status sof_fix_audio.service

Статус active (exited) означает, что настройки применяются при каждой загрузке.


7. Перезагрузка для проверки

sudo reboot

После загрузки все настройки применятся автоматически. Проверь динамики, наушники и микрофон, как в пункте 5.


Результат

  • Встроенные динамики работают.
  • Наушники распознаются автоматически.
  • Микрофон активен.
  • Настройки сохраняются после перезагрузки.
  • Нет необходимости вручную использовать hdajackretask.

Возможные проблемы и решения

Скрипт не запускается / hda-verb не найден

sudo apt update
sudo apt install alsa-tools

Карта SOF HDA DSP не найдена

aplay -l

Должна быть карта вида sof-hda-dsp. Если нет — обновите ядро и драйверы:

sudo apt update
sudo apt upgrade
sudo apt install linux-sound-base linux-modules-extra-$(uname -r)

Нет звука после запуска скрипта

Проверь устройство вывода:

speaker-test -c2 -twav -Dhw:0,0

Если звук есть через hw, но нет через PulseAudio/PipeWire — выбери устройство в системных настройках.

Наушники не переключаются автоматически

Скрипт не отслеживает джек в реальном времени. Можно использовать PulseAudio/ALSA автосвич:

sudo apt install alsa-utils
alsactl init

Микрофон не работает

Проверь pavucontrol или alsamixer. Node микрофона может отличаться — измените Node ID в скрипте при необходимости.

Сервис systemd не запускается

sudo systemctl daemon-reload
sudo systemctl enable sof_fix_audio.service
sudo systemctl start sof_fix_audio.service

После любых изменений перезагружай систему для корректного применения настроек.