Звук не працює, коли звукова карта та HDMI використовують драйвер Intel HDA. Як обміняти замовлення на завантаження пристрою?


10

У мене нетбук Acer Aspire One 522, який має звукову карту Intel HDA на основі чіпсету Conexant CX20584. Хоча KDE видає звук під час запуску, спалах, і, мабуть, багато інших додатків, які шукають /dev/dspпристрій, просто не можуть виводити звук через нього, надаючи багато корисної мультимедійної роботи.

Коли я перевірив свої пристрої відтворення ALSA aplay -l, я побачив, що основний аудіопристрій розпізнається як картка 1 замість 0, яка замість нього підключена до HDMI:

**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: SB [HDA ATI SB], device 0: CONEXANT Analog [CONEXANT Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Таким чином я отримую /dev/dsp1, але, здається, більшість додатків просто кодовані у використанні /dev/dsp, тому я пішов шукати якийсь спосіб обміну картотеки. Після деяких досліджень за допомогою документації ALSA я спробував призначити індекси модулям драйверів, які використовуються HDMI та Intel HDA з цим /etc/modprobe.d/asound.confфайлом:

options snd cards_limit=2
options snd-hda-codec-conexant index=0
options snd-hda-codec-hdmi index=1
options snd slots=snd-hda-codec-conexant,snd-hda-codec-hdmi

Це не спрацювало, і, виходячи з якогось забутого посилання на мої нескінченні пошуки відповіді, схоже, це відбувається тому, що ці indexдирективи повинні координувати порядок завантаження модулів, але обидва ці кодекси Conexant і HDMI використовують той же Intel HDA модуль драйвера, тому він, здається, не застосовується в цьому випадку.

Однак, чи є спосіб визначити правильні індекси карт, коли пристрої використовують той самий модуль драйвера ALSA (Intel HDA в цьому випадку)?

Відповіді:


10

Нарешті я знайшов відповідь на цю проблему на основі цього повідомлення з іншого форуму (див. "Спроба 1b" для ознайомлення). Згідно з ним можна вказати ідентифікатор модуля, навіть якщо використаний драйвер той самий:

alias char-major-116 snd
alias snd-card-0 snd-hda-intel
alias snd-card-1 snd-hda-intel

options snd cards_limit=2

options snd-hda-intel id=SB index=0
options snd-hda-intel id=HDMI index=1

таким чином викривляючи правильне впорядкування картки та примушуючи звуку працювати, як очікувалося:

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: CONEXANT Analog [CONEXANT Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Для звернення до інших подібних випадків ви можете перевірити /proc/asoundнаявність посилань на ваші картки, вони будуть потрібними ідентифікаторами модулів:

$ ls -l /proc/asound/
total 0
lrwxrwxrwx 1 root root 5 Jan 26 19:19 HDMI -> card1
lrwxrwxrwx 1 root root 5 Jan 26 19:19 SB -> card0
dr-xr-xr-x 4 root root 0 Jan 26 19:19 card0
dr-xr-xr-x 3 root root 0 Jan 26 19:19 card1
-r--r--r-- 1 root root 0 Jan 26 19:19 cards
-r--r--r-- 1 root root 0 Jan 26 19:19 devices
-r--r--r-- 1 root root 0 Jan 26 19:19 hwdep
-r--r--r-- 1 root root 0 Jan 26 19:19 modules
dr-xr-xr-x 2 root root 0 Jan 26 19:19 oss
-r--r--r-- 1 root root 0 Jan 26 19:19 pcm
dr-xr-xr-x 2 root root 0 Jan 26 19:19 seq
-r--r--r-- 1 root root 0 Jan 26 19:19 timers
-r--r--r-- 1 root root 0 Jan 26 19:19 version
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.