Escolhendo uma placa de som padrão

1

Estou executando o Lubuntu em um Chromebook (Acer C720) e tendo problemas para obter qualquer som.

/etc/modprobe.d/alsa-base.conf parece ser a configuração padrão do Ubuntu e, pelo que entendi, os módulos com índice 0 serão usados por padrão.

# 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

Se eu olhar para as cartas atuais em /proc/asound/cards , posso ver duas cartas disponíveis.

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

A placa de som HDMI tem o índice padrão, e é por isso que o conector de áudio e os alto-falantes não estão funcionando.

Uma olhada nos módulos que eles usam, /proc/asound/modules

0 snd_hda_intel
1 snd_hda_intel

Mostra que ambos usam o mesmo módulo. Se ambas as placas tiverem esse mesmo módulo, como posso usar o alsa-base.conf para especificar que eu quero usar a placa PCH por padrão?

    
por Dan Prince 15.10.2015 / 12:37

1 resposta

0

alsa.opensrc.org tem uma seção curta que descreve um cenário semelhante a este problema.

% bl0ck_qu0te%

Nenhuma placa de som é um dispositivo USB, portanto você não pode se apossar dos campos do módulo com lsusb , no entanto, esse mesmo artigo sugere usar modinfo para obter uma lista de parâmetros para esse módulo:

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)

As páginas man de modinfo mostram o uso de um sinalizador -F com um nome de campo para imprimir um valor de campo. Eu tentei modinfo -F id snd_hda_intel , mas não produziu saída.

/proc/asound/ tem pastas para ambos os cartões (em card0 e card1 ). Essas pastas, por sua vez, tinham id arquivos. Um cat /proc/asound/card0/id rápido resultou em HDMI , assim como no card1 foi PCH .

Como uma tentativa cega, adicionei as seguintes linhas a /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

Esta resposta foi originalmente o fim da pergunta, mas após a reinicialização do sistema, essa alteração para alsa-base.conf corrigiu o problema.

    
por Dan Prince 15.10.2015 / 12:41