Я недавно установил Ubuntu 20.04 на свой ноутбук HP (модель Pavilion 15-ck000nb, со звуком B&O), чтобы опробовать его. Пока все работает, за исключением того, что качество звука по сравнению с Windows 10 очень плохое. Возможно ли, что для неработающего сабвуфера требуются специальные драйверы Bang & Olufsen? Также, когда я проигрываю звук или музыку через разъем для наушников, я слышу легкий потрескивающий звук в левом канале. Ранее я пробовал PopOS 18.04 на этом ноутбуке, и у него была такая же проблема со звуком. Кодек - Realtek ALC295.
Заранее благодарю.
Отчет об ошибке ядра по этому поводу (и исправление): https://bugzilla.kernel.org/show_bug.cgi?id=195457#c11
Хитрость заключается в том, чтобы скопировать настройки звуковой карты с винды на линукс. Вот содержание приведенного выше комментария к отчету об ошибке:
У меня также была такая же проблема с моим ASROCK X370 Gaming K4 (ALC1220):
1-й случай: ПЕРВАЯ загрузка Linux: звук с шумом / потрескиванием.
2-й случай: ПЕРВАЯ загрузка Windows и ВТОРОЙ Linux: Звук отличный.Мне удается решить проблему, сравнивая значения Coeff в обоих случаях и присваивая значения второго случая в сценарии во время загрузки. Как:
- Установить alsa-tools.
- В обоих случаях нужно выполнить:
echo 1 > /sys/module/snd_hda_codec/parameters/dump_coefs
- Затем, в первом случае,
alsa-info --no-upload - -output infos_bad
- Затем, во втором случае,
alsa-info --no-upload --output infos_good
- Наконец, вы сравниваете значения коэффициента:
diff infos_bad infos_good | grep Coeff
Для изменения значения каждого отдельного Coeff необходимо действовать следующим образом: например, изменить Coeff 0x67 на значение 0x3000
hda-verb /dev/snd/hwC0D0 0x20 SET_COEF_INDEX 0x67 hda-глагол /dev/snd/hwC0D0 0x20 SET_PROC_COEF 0x3000
Вы должны сделать это в порядке возрастания Coeff. Обратите внимание, что hwC0D0 относится к вашей звуковой карте. В случае выхода HDMI, как у меня, моя звуковая карта, если hwC1D0.
Вот быстрый скрипт:
#!/bin/bash coeffs=($(эхо 0x{16,43,44,5d,5e,63,67})) значения=($(эхо 0x{8020,3405,fa10,0606,0000,e430,3000})) для i в `seq 0 $(( ${#coeffs[@]} - 1 ))` делать глагол hda /dev/snd/hwC1D0 0x20 SET_COEF_INDEX ${coeffs[$i]} && глагол hda /dev/snd/hwC1D0 0x20 SET_PROC_COEF ${values[$i]} Выполнено
Просто измените коэффициенты на изменение в массиве «коэффициенты» и новые значения в массиве «значения» и выполните этот скрипт. Ремарка, пока я не отключаю питание, мой аудиочипсет сохраняет значения. Вот почему вам нужно сделать ПЕРВЫЙ случай (первый...), а затем второй. Затем вы можете проверить, работает ли он только тогда, когда вы отключите питание своего мобильного устройства, а затем напрямую загрузитесь в Linux.
Я готовлю патч для ядра, но для тех, у кого есть проблемы, не могли бы вы опубликовать свой коэффициент/значения, которые необходимо изменить, пожалуйста.
Надеюсь, это поможет.