ALSA, PulseAudio e Intel HDA PCH sin sonido

ALSA, PulseAudio e Intel HDA PCH sin sonido

Solo tengo una tarjeta de sonido integrada que es una Realtek ALC298 y no necesito configuraciones de sonido avanzadas. Sólo un sistema de sonido que funcione para escuchar vídeos de YouTube, ver películas, etc. Hasta ahora he seguido muchos artículos en línea. Para resumir todo lo que he probado:

  1. Averigua si los canales están silenciados. Utilicé alsamixery también verifiqué el pavucontrol, los cuales no muestran canales silenciados. Repetí este paso cuando estaba en el tercer paso (lea a continuación) y de vez en cuando aparecían nuevos canales, pero finalmente no había sonido.

  2. Averigua si es un problema de ALSA o simplemente de PulseAudio. Entonces usé aplay -l:

**** Lista de dispositivos de hardware de REPRODUCCIÓN ****
tarjeta 0: PCH [HDA Intel PCH], dispositivo 0: ALC298 Analógico [ALC298 Analógico]
  Subdispositivos: 1/1
  Subdispositivo #0: subdispositivo #0
tarjeta 0: PCH [HDA Intel PCH], dispositivo 3: HDMI 0 [HDMI 0]
  Subdispositivos: 1/1
  Subdispositivo #0: subdispositivo #0
tarjeta 0: PCH [HDA Intel PCH], dispositivo 7: HDMI 1 [HDMI 1]
  Subdispositivos: 1/1
  Subdispositivo #0: subdispositivo #0
tarjeta 0: PCH [HDA Intel PCH], dispositivo 8: HDMI 2 [HDMI 2]
  Subdispositivos: 1/1
  Subdispositivo #0: subdispositivo #0
tarjeta 0: PCH [HDA Intel PCH], dispositivo 9: HDMI 3 [HDMI 3]
  Subdispositivos: 1/1
  Subdispositivo #0: subdispositivo #0
tarjeta 0: PCH [HDA Intel PCH], dispositivo 10: HDMI 4 [HDMI 4]
  Subdispositivos: 1/1
  Subdispositivo #0: subdispositivo #0

A partir de ahí se utilizó un archivo wav con formato PCM aplay -D plughw:0,0 test.wavque daba:

Reproducción de WAVE 'test.wav': Little Endian firmado de 32 bits, velocidad de 44100 Hz, estéreo

¡Pero nada! No hay sonido por ningún lado, ni parlantes ni auriculares. Llegué a la conclusión de que es un problema de ALSA y no de PulseAudio, pero tengo una duda ya que el demonio PulseAudio se estuvo ejecutando durante este paso. Como nota al margen interesante, cuando estaba haciendo este paso, la configuración de sonido de gnome mostraba las barras de sonido moviéndose como si algo estuviera sonando :D

  1. encontré unartículo en el sitio web del kernelsobre audio HDA ​​y la capacidad del kernel para reconfigurar dinámicamente el códec de audio sin tener que reiniciar la máquina. Logré encontrar y usar la hdajackretaskutilidad que forma parte del alsa-toolsrepositorio y me proporcionó una GUI. Esta utilidad escribe las modificaciones del pin en user_pin_configsel archivo (para su información, verificó esto manualmente después del reinicio). Sin embargo, no pude encontrar la combinación correcta de reasignaciones de pines. Los siguientes son los pines que se pueden reasignar:
0x12
0x13
0x14
0x17
0x18
0x19
0x1a
0x1d
0x1e
0x1f
0x21
  1. Mi idea aquí era básicamente usar ALC269el modelo como vi unarchivo de parche interesanteal buscar en Google. El enlace es para rasp pi, pero pensé que vale la pena intentarlo ya que ALC269es unmodelo de audio kernel HDA compatible. Aunque esto no cambió nada, quizás alguien pueda beneficiarse de ello.

Cualquier ayuda se agradece aquí. Estoy mucho más allá de mis habilidades con Linux.

PD: manjaro, linux56 aunque todas las distribuciones tienen el mismo problema con la tarjeta de sonido. Instalé casi todas las distribuciones en los últimos meses con la esperanza de que el sonido funcionara.

Editar 1

Se agregó unpastillade alsa-info.shpara más información.

Respuesta1

¡Buenas noticias! Un usuario de Arch muy inteligente llamado ronincoder descubrió una solución para el conector de auriculares. Trabajé con ronincoder para crear un parche para el kernel [1] y nuestro parche llegó a la versión 5.7 del kernel. También se aplicó al kernel 5.4 LTS. Arranqué tanto 5.7.2 como 5.4.46 y el audio del conector para auriculares es alto y claro. :)

¿Funciona para ti? Debería hacerlo si tiene un Samsung Notebook 9 Pro NP930SBE-K01US o NP930MBE-K04US (el ronincoder es el primero, el mío es el segundo). Puede verificar el modelo de su computadora portátil ejecutando alsa_info.sh y mirando "Nombre de la placa". El códec Realtek ALC298 en NP930SBE-K01US y NP930MBE-K04US se identifica con el "Id. de subsistema" 0x144dc169 y 0x144dc176, respectivamente. Si snd_hda_intel ve cualquiera de estos identificadores, implementa la solución.

¿Qué pasa con los parlantes? Informé del problema de falta de sonido en los parlantes internos en el kernel bugzilla [2]. El mantenedor de sonido de Linux, Jaroslav Kysela, especula que puede haber algunos amplificadores conectados al códec HDA que no están inicializados por el BIOS y, por lo tanto, no están activos en Linux. Sugiere deshacerse de la comunicación del códec para el controlador de Windows usando QEMU. Luego podríamos analizar el volcado y reproducir la comunicación en Linux usando Early Patching [3] o escribiendo otro parche del kernel. Ha pasado un mes desde que Jaroslav hizo esta sugerencia y he progresado un poco, pero todavía no tengo un buen volcado. Únase a la discusión sobre el kernel bugzilla si desea ayudarme. ^^

[1] Como referencia, nuestro parche llegó al árbol de Linus como confirmación 14425f1f521f (ALSA: hda/realtek: Agregar peculiaridad para Samsung Notebook). [2]https://bugzilla.kernel.org/show_bug.cgi?id=207423 [3]https://www.kernel.org/doc/html/v4.17/sound/hd-audio/notes.html#early-patching

Respuesta2

En elementalOS (basado en Ubuntu 20.04), no se solucionó ningún sonido en mi MacBook Pro 2012 editando el archivo de configuración sudo vim /etc/modprobe.d/alsa-base.confy reemplazando

options snd-hda-intel model=generic

por

# options snd-hda-intel model=generic
options snd-hda-intel probe_mask=1

Más detalles explicativos:

Nota: No estoy seguro de por qué ocurrió el problema de falta de sonido o qué había cambiado antes, ya que al principio había estado funcionando después de la instalación.

Sin embargo, al realizar consultas pacmd list-cardsen la Terminal, la salida cambió de (antes de la corrección):

ports:
    analog-input-mic: Mikrofon (priority 8700, latency offset 0 usec, available: unknown)
        properties:
            device.icon_name = "audio-input-microphone"
    analog-output-speaker: Lautsprecher (priority 10000, latency offset 0 usec, available: unknown)
        properties:
            device.icon_name = "audio-speakers"
    analog-output-headphones: Kopfhörer (priority 9900, latency offset 0 usec, available: no)
        properties:
            device.icon_name = "audio-headphones"
    iec958-stereo-output: Digitalausgang (S/PDIF) (priority 0, latency offset 0 usec, available: unknown)
        properties:

a (después de arreglar):

ports:
    [Out] Speaker: Speaker (priority 100, latency offset 0 usec, available: unknown)
        properties:
            
    [Out] Headphones: Headphones (priority 200, latency offset 0 usec, available: no)
        properties:
            
    [In] Mic2: Headphones Stereo Microphone (priority 200, latency offset 0 usec, available: unknown)
        properties:

(Tenga en cuenta la diferencia en la sintaxis aquí).

Además, la salida de sudo vim aplay -lcambió de (antes de la corrección):

Karte 0: PCH [HDA Intel PCH], Gerät 0: Generic Analog [Generic Analog]
  Sub-Geräte: 0/1
  Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 1: Generic Digital [Generic Digital]           
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

a (después de arreglar):

Karte 0: PCH [HDA Intel PCH], Gerät 0: CS4206 Analog [CS4206 Analog]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 1: CS4206 Digital [CS4206 Digital]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

Respuesta3

Entonces el problema aquí es que el ALC298 de Realtek tiene un requisito de bus diferente que es I2S. A partir de Linux56, el códec de audio I2S no es compatible y este parece ser el nuevo estándar. Lenovo, Samsung y Huawei parecen usar tarjetas de sonido con este nuevo estándar I2S y hay muchos hilos/temas sin resolver que he encontrado abandonados con respecto a este asunto.

Encontré una solución alternativa para arreglar los auriculares que funcionó para mí y para otra persona que estaba usando un Samsung Notebook Pro 9. La solución utiliza una función del núcleo llamada "Parches anticipados" para anular opcionalmente los pines, verbos, modelos predeterminados y otros específicos de ALSA. atributos. Puede encontrar información completa, incluido un parche de kernel personalizado alternativo, enForos de ArchLinux.

Respuesta4

Pruebe estas instrucciones a continuación. Ya que podrían solucionar un problema similar en mi sistema.

  1. Ejecutas el comando de "aplay", pero no escuchas nada. ¿Qué tal ejecutar el comando "sudo aplay"? Si ALSA está funcionando, se puede escuchar el sonido.

  2. Creo que pulseaudio se está ejecutando en el sistema de su sistema. Pero puede haber algunos problemas de compatibilidad entre el controlador alsa-lib y snd-hda-intel.

    $pacmd tarjetas de lista

Verifique los resultados en "puertos". Si no puede ver algo relacionado con el altavoz, significa que pulseaudio no puede reconocer la tarjeta de sonido.

  1. Edite el archivo "/usr/share/alsa/ucm2/HDA-Intel/HDA-Intel.conf". Si ve una cadena vacía después de "Define.Use", simplemente ingrese "3" en la cadena. Entonces guárdalo.

  2. Reinicie su máquina. Si aún no puede obtener ningún sonido, verifique si su tarjeta de sonido tiene "Salida ficticia". Si es así, agregue "options snd-hda-intel model=generic" al final de "/etc/modprobe.d/alsa-base.conf".

Este problema se debe principalmente a "HDA-Intel.conf". Realmente no entiendo por qué el desarrollador mantiene la cadena "Define.Use" vacía.

información relacionada