Вопрос или проблема
Долгое время я пытался понять, почему моя звуковая карта иногда загружается правильно при загрузке, иногда нет, а иногда отключается при использовании системы. Это звуковая карта (из команды lspci
):
07:00.0 Audio device: Creative Labs CA0132 Sound Core3D
[Sound Blaster Recon3D / Z-Series / Sound BlasterX AE-5 Plus] (rev 01)
Это ошибки, которые я периодически вижу, когда она не загружается (команда dmesg
):
[ 9.161022] snd_hda_intel 0000:07:00.0: azx_get_response timeout, switching to polling mode: last cmd=0x11970500
[ 10.165000] snd_hda_intel 0000:07:00.0: azx_get_response timeout, switching to single_cmd mode: last cmd=0x11970500
[ 13.677598] azx_single_send_cmd: 377 callbacks suppressed
[ 13.679434] snd_hda_codec_realtek hdaudioC2D1: autoconfig for ALC899: line_outs=3 (0x14/0x15/0x16/0x0/0x0) type:line
[ 13.679445] snd_hda_codec_realtek hdaudioC2D1: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 13.679449] snd_hda_codec_realtek hdaudioC2D1: hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
[ 13.679452] snd_hda_codec_realtek hdaudioC2D1: mono: mono_out=0x0
[ 13.679454] snd_hda_codec_realtek hdaudioC2D1: inputs:
[ 13.679458] snd_hda_codec_realtek hdaudioC2D1: Front Mic=0x19
[ 13.679460] snd_hda_codec_realtek hdaudioC2D1: Rear Mic=0x18
[ 13.679463] snd_hda_codec_realtek hdaudioC2D1: Line=0x1a
[ 13.682129] [drm] amdgpu kernel modesetting enabled.
[ 13.682410] amdgpu: Virtual CRAT table created for CPU
[ 13.682492] amdgpu: Topology: Add CPU node
[ 13.683233] [drm] initializing kernel modesetting (POLARIS12 0x1002:0x6981 0x1002:0x0B0D 0x10).
[ 13.683280] [drm] register mmio base: 0xF8000000
[ 13.683282] [drm] register mmio size: 262144
[ 13.683435] [drm] add ip block number 0 <vi_common>
[ 13.683439] [drm] add ip block number 1 <gmc_v8_0>
[ 13.683441] [drm] add ip block number 2 <tonga_ih>
[ 13.683443] [drm] add ip block number 3 <gfx_v8_0>
[ 13.683445] [drm] add ip block number 4 <sdma_v3_0>
[ 13.683447] [drm] add ip block number 5 <powerplay>
[ 13.683449] [drm] add ip block number 6 <dm>
[ 13.683451] [drm] add ip block number 7 <uvd_v6_0>
[ 13.683453] [drm] add ip block number 8 <vce_v3_0>
[ 13.684011] amdgpu 0000:01:00.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0x0000
[ 13.688261] snd_hda_codec_realtek hdaudioC2D1: rates == 0 (nid=0x7, val=0x0, ovrd=1)
[ 13.688273] snd_hda_codec_realtek hdaudioC2D1: fail to setup default for PCM ALC899 Analog
[ 13.688283] snd_hda_codec_realtek: probe of hdaudioC2D1 failed with error -5
[ 13.813537] amdgpu 0000:01:00.0: amdgpu: Fetched VBIOS from ROM
[ 13.813584] amdgpu: ATOM BIOS: 113-D0155100-101
[ 13.816399] snd_hda_codec_realtek hdaudioC2D1: autoconfig for ALC899: line_outs=3 (0x14/0x15/0x16/0x0/0x0) type:line
[ 13.816405] snd_hda_codec_realtek hdaudioC2D1: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 13.816409] snd_hda_codec_realtek hdaudioC2D1: hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
[ 13.816412] snd_hda_codec_realtek hdaudioC2D1: mono: mono_out=0x0
[ 13.816415] snd_hda_codec_realtek hdaudioC2D1: inputs:
[ 13.816418] snd_hda_codec_realtek hdaudioC2D1: Front Mic=0x19
[ 13.816420] snd_hda_codec_realtek hdaudioC2D1: Rear Mic=0x18
[ 13.816423] snd_hda_codec_realtek hdaudioC2D1: Line=0x1a
[ 13.822126] snd_hda_codec_realtek hdaudioC2D1: rates == 0 (nid=0x7, val=0x0, ovrd=1)
[ 13.822142] snd_hda_codec_realtek hdaudioC2D1: fail to setup default for PCM ALC899 Analog
[ 13.822152] snd_hda_codec_realtek: probe of hdaudioC2D1 failed with error -5
[ 13.822758] [drm] UVD is enabled in VM mode
[ 13.822761] [drm] UVD ENC is enabled in VM mode
[ 13.822764] [drm] VCE enabled in VM mode
[ 13.822890] amdgpu 0000:01:00.0: vgaarb: deactivate vga console
[ 13.822897] amdgpu 0000:01:00.0: amdgpu: Trusted Memory Zone (TMZ) feature not supported
[ 13.822903] amdgpu 0000:01:00.0: amdgpu: PCIE atomic ops is not supported
[ 13.822912] [drm] GPU posting now...
[ 14.183326] snd_hda_codec_generic hdaudioC2D1: autoconfig for Generic: line_outs=3 (0x14/0x15/0x16/0x0/0x0) type:line
[ 14.183335] snd_hda_codec_generic hdaudioC2D1: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 14.183339] snd_hda_codec_generic hdaudioC2D1: hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
[ 14.183342] snd_hda_codec_generic hdaudioC2D1: mono: mono_out=0x0
[ 14.183345] snd_hda_codec_generic hdaudioC2D1: inputs:
[ 14.183347] snd_hda_codec_generic hdaudioC2D1: Front Mic=0x19
[ 14.183350] snd_hda_codec_generic hdaudioC2D1: Rear Mic=0x18
[ 14.183353] snd_hda_codec_generic hdaudioC2D1: Line=0x1a
[ 14.187534] snd_hda_codec_generic hdaudioC2D1: rates == 0 (nid=0x7, val=0x0, ovrd=1)
[ 14.187545] snd_hda_codec_generic hdaudioC2D1: fail to setup default for PCM Generic Analog
[ 14.187552] snd_hda_codec_generic: probe of hdaudioC2D1 failed with error -5
[ 14.187563] snd_hda_intel 0000:07:00.0: Cannot probe codecs, giving up
Иногда (но не всегда) я могу запустить pulseaudio -k
, затем sudo alsa force-reload
, затем pulseaudio -D
, чтобы снова заставить её работать, но часто нужно продолжать перезагрузку, пока звук снова не заработает.
Вот шаги, которые я предпринял:
Первая попытка:
options snd-hda-intel probe_mask=2
options snd-hda-intel index=1
options snd-hda-intel index=2
Вторая попытка – Нет успеха:
options snd-hda-intel probe_mask=0x107
options snd-hda-codec-hdmi index=-2
options snd-hda-intel index=0
Третья попытка – Нет успеха:
options snd-hda-intel probe_mask=0x101
#options snd-hda-codec-hdmi index=-2
options snd-hda-intel index=0
Возможно, попробую это следующим шагом:
Четвертая попытка – Нет успеха:
options snd-hda-codec-hdmi index=-2
options snd-hda-intel position_fix=1
sudo nano /etc/rc.local
#!/bin/sh -e
rmmod snd_hda_intel
modprobe snd_hda_intel position_fix=1
exit 0
sudo chmod +x /etc/rc.local
Пятая попытка:
https://askubuntu.com/questions/78780/how-can-i-disable-an-audio-hdmi-device
#Избегание конфликта с Sound Blaster Recon3D
sudo nano /etc/modprobe.d/blacklist.conf
blacklist snd_hda_codec_hdmi
Шестая попытка (наконец-то звук снова заработал после этого – 31.07.24) – Нет успеха:
sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="amd_iommu=off"
sudo update-grub
#ПРЕДУПРЕЖДЕНИЕ - ЭТО ЛОМАЕТ КЛАВИАТУРУ/МЫШЬ ПРИ ЗАГРУЗКЕ
Седьмая попытка – Нет успеха (работала с перебоями некоторое время):
options snd-usb-audio index=-2
options snd-hda-codec-hdmi index=-2
options snd-hda-intel probe_mask=0x103
Восьмая попытка – Работает после перезагрузки (но в конечном итоге перестала работать):
#options snd-hda-intel probe_mask=0x103
sudo tee /etc/modprobe.d/1220-fix.conf <<<'options snd-hda-intel probe_mask=1'
Девятая попытка – 25.01.25 – Работает после нескольких перезагрузок (но в конечном итоге перестала работать)
defaults.ctl.card 2
defaults.pcm.card 2
sudo nano /usr/share/alsa/alsa.conf
Ответ или решение
Чтобы решить проблему с вашей звуковой картой Sound Blaster на Kubuntu (Ubuntu 24.04), следует учитывать несколько ключевых аспектов: конфликт драйверов, неверная конфигурация и потенциальные проблемы оборудования или совместимости с ядром Linux.
Теория
-
Поддержка драйверов: К Ubuntu, как и к другим дистрибутивам Linux, иногда предъявляются требования к специфичным драйверам для правильной работы аппаратных средств. Карты Sound Blaster могут быть особенно требовательны из-за использования фирменных технологий Creative Labs.
-
Управление модулями ядра: Модули ядра (например, snd-hda-intel) ответственны за взаимодействие с вашим аудиоустройством. Неправильная конфигурация, как, например, неверно установленные маски обнаружения устройств (probe_mask) или неправильные индексы, может привести к ошибкам при загрузке и использовать неправильный драйвер для устройства.
-
Конфликты устройств: Часто проблемы возникают из-за конфликтов между несколькими аудиоустройствами, такими как HDMI-аудио от видеокарт, которое может быть приоритетнее встроенного или дискретного звукового оборудования, приводя к неоднозначному поведению ОС при выборе устройства для вывода звука.
Примеры
Ваши тесты показывают серию попыток решения проблемы с помощью измененных конфигураций и настроек загрузки, таких как:
- Конфигурации модулей ядра: переменные, такие как
probe_mask
иindex
, были изменены в попытке правильно назначить устройство; - Черные списки модуля: попытка исключить HDMI-аудио из конфликта с вашей основной звуковой картой;
- Изменения в системных файлах: правка
/etc/default/grub
и вызовupdate-grub
показали, что вы пытались отключить поддержку IOMMU, что может повлиять на инициализацию устройств.
Применение
-
Проверка аппаратного обеспечения: Убедитесь, что ваша звуковая карта полностью исправна. Если возможно, протестируйте её на другой системе.
-
Обновление драйверов и системы: Убедитесь, что у вас установлены все последние обновления системы. Конкретно для аудиоустройств Creative Labs, использование обновлений прошивки может быть полезным.
-
Изоляция конфликта игроков для ядра:
- Временно отключите встроенные или HDMI аудио устройства из BIOS/UEFI, если таковые имеются. Это поможет сузить круг поиска и выявить, не влияют ли они на загрузку вашей карты.
- Вернитесь к файлу
/etc/modprobe.d/blacklist.conf
и убедитесь, что все ненужные аудио модули (включая HDMI) остаются в черном списке.
-
Тонкая настройка модулей ядра:
- Осмотрите ваше текущее
dmesg
для свежих уловок или ошибок, которые могут указывать на плохую инициализацию. - Примените фиксированные индексы и маски для snd-hda-intel, постепенно перепробуя различные комбинации, основываясь на реакциях системы.
- Используйте пробные комбинации
position_fix
иmodel
параметров, так как иногда специфичные модели карт требуют уникальных настроек.
- Осмотрите ваше текущее
-
Логирование и анализ системных сообщений: Регулярное изучение логов системы на наличие новых сообщений об ошибках после каждой настройки позволит вам сузить круг поиска. Зафиксируйте особые случаи, как успешные, так и нет, чтобы получить представление о том, какие изменения могут дать наилучшие результаты.
-
Консультации с сообществом: Рассмотрите возможность получения помощи от сообществ, таких как форума Ubuntu, где пользователи с аналогичными проблемами могли бы предложить решения на основе их собственного опыта.
Проблемы аудиоустройств, подобных вашему, могут быть сложными из-за множества вовлеченных факторов, но путем метода проб и ошибок, вместе с тщательной настройкой и исследованием системного поведения, вы сможете добиться стабильной работы.