Выбор звуковой карты по умолчанию

Я выполняю Lubuntu на Chromebook (Acer C720) и имею проблемы с получением любого звука.

/etc/modprobe.d/alsa-base.conf кажется, конфигурация по умолчанию из Ubuntu и насколько я понимаю, модули с индексом 0 будут использоваться по умолчанию.

# autoloader aliases
install sound-slot-0 /sbin/modprobe snd-card-0
install sound-slot-1 /sbin/modprobe snd-card-1
install sound-slot-2 /sbin/modprobe snd-card-2
install sound-slot-3 /sbin/modprobe snd-card-3
install sound-slot-4 /sbin/modprobe snd-card-4
install sound-slot-5 /sbin/modprobe snd-card-5
install sound-slot-6 /sbin/modprobe snd-card-6
install sound-slot-7 /sbin/modprobe snd-card-7

# Cause optional modules to be loaded above generic modules
install snd /sbin/modprobe --ignore-install snd $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-ioctl32 ; /sbin/modprobe --quiet --use-blacklist snd-seq ; }
#
# Workaround at bug #499695 (reverted in Ubuntu see LP #319505)
install snd-pcm /sbin/modprobe --ignore-install snd-pcm $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-pcm-oss ; : ; }
install snd-mixer /sbin/modprobe --ignore-install snd-mixer $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-mixer-oss ; : ; }
install snd-seq /sbin/modprobe --ignore-install snd-seq $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; /sbin/modprobe --quiet --use-blacklist snd-seq-oss ; : ; }
#
install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; : ; }
# Cause optional modules to be loaded above sound card driver modules
install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-emu10k1-synth ; }
install snd-via82xx /sbin/modprobe --ignore-install snd-via82xx $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq ; }

# Load saa7134-alsa instead of saa7134 (which gets dragged in by it anyway)
install saa7134 /sbin/modprobe --ignore-install saa7134 $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist saa7134-alsa ; : ; }
# Prevent abnormal drivers from grabbing index 0
options bt87x index=-2
options cx88_alsa index=-2
options saa7134-alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
options snd-usb-audio index=-2
options snd-usb-caiaq index=-2
options snd-usb-ua101 index=-2
options snd-usb-us122l index=-2
options snd-usb-usx2y index=-2
# Ubuntu #62691, enable MPU for snd-cmipci
options snd-cmipci mpu_port=0x330 fm_port=0x388
# Keep snd-pcsp from being loaded as first soundcard
options snd-pcsp index=-2
# Keep snd-usb-audio from beeing loaded as first soundcard
options snd-usb-audio index=-2

Если я смотрю на текущие карты в /proc/asound/cards Я вижу две доступных карты.

0 [HDMI           ]: HDA-Intel - HDA Intel HDMI
                     HDA Intel HDMI at 0xe0510000 irq 44
1 [PCH            ]: HDA-Intel - HDA Intel PCH
                     HDA Intel PCH at 0xe0514000 irq 45

HDMI звуковая карта имеет индекс по умолчанию, который является, почему аудиоразъем и динамики не работают.

Взгляд на модули они используют, /proc/asound/modules

0 snd_hda_intel
1 snd_hda_intel

Шоу, что они оба используют тот же модуль. Если обе карты имеют тот же самый модуль, как я могу использовать alsa-base.conf указывать, что я хочу использовать карту PCH по умолчанию?

1
задан 15 October 2015 в 13:37

1 ответ

alsa.opensrc.org имеет короткий раздел, который описывает сценарий, подобный этой проблеме.

Если Вы имеете больше, что звуковые карты, которые используют те же модули, можно хотеть определить порядок карты. Это может быть сделано путем определения индекса и опций ID к загружаемому модулю. Например,

опции snd-usb-audio index=1,2 vid=0x0ccd, 0x0d8c pid=0x0028,0x000c

Это определит 2 карты звука USB, первую в index=1, vid=0x0ccd и pid=0x0028; второй в index=2, vid=0x0d8c и pid=0x000c. vid и pid здесь были обнаружены с помощью lsusb.

Никакая звуковая карта не является USB-устройством, таким образом, Вы не можете овладеть полями модуля с lsusb, однако та же самая статья предлагает использовать modinfo получить список параметров для того модуля:

modinfo -p snd_hda_intel

index:Index value for Intel HD audio interface. (array of int)
id:ID string for Intel HD audio interface. (array of charp)
enable:Enable Intel HD audio interface. (array of bool)
model:Use the given board model. (array of charp)
position_fix:DMA pointer read method.(-1 = system default, 0 = auto, 1 = LPIB, 2 = POSBUF, 3 = VIACOMBO, 4 = COMBO). (array of int)
bdl_pos_adj:BDL position adjustment offset. (array of int)
probe_mask:Bitmask to probe codecs (default = -1). (array of int)
probe_only:Only probing and no codec initialization. (array of int)
jackpoll_ms:Ms between polling for jack events (default = 0, using unsol events only) (array of int)
single_cmd:Use single command to communicate with codecs (for debugging only). (bool)
enable_msi:Enable Message Signaled Interrupt (MSI) (bint)
patch:Patch file for Intel HD audio interface. (array of charp)
beep_mode:Select HDA Beep registration mode (0=off, 1=on) (default=1). (array of bool)
power_save:Automatic power-saving timeout (in second, 0 = disable). (xint)
power_save_controller:Reset controller in power save mode. (bool)
align_buffer_size:Force buffer and period sizes to be multiple of 128   bytes. (bint)
snoop:Enable/disable snooping (bint)

Страницы справочника для modinfo покажите использование a -F флаг с именем поля для печати значения поля. Я попробовал modinfo -F id snd_hda_intel но это не произвело вывода.

/proc/asound/ имеет папки для обеих карт (под card0 и card1). Эти папки в свою очередь имели id файлы. Быстрое cat /proc/asound/card0/id приведший к HDMI, аналогично для card1 это было PCH.

Как определенная слепая попытка, я добавил следующие строки к /etc/modprobe.d/alsa-base.conf

# fix ordering of HDMI and PCH soundcards on Chromebook
options snd_hda_intel index=0,1 id=PCH,HDMI

Этот ответ был первоначально конец вопроса, но после системного перезапуска, этого изменения в alsa-base.conf решил проблему.

0
ответ дан 28 July 2019 в 11:30

Другие вопросы по тегам:

Похожие вопросы: