Cambio del puerto de PulseAudio Source: 'disponibilidad = no' y prioridad

Tengo una Thinkpad T450s, que viene con tres inputs de micrófono "reales": una matriz de micrófonos internos (los micrófonos físicos están en el bisel de la LCD junto a la camera web), una "línea" a través de una toma de 4 polos de auriculares / micrófono combinados, y una 'línea' a través del puerto de acoplamiento. PulseAudio muestra los tres como puertos pertenecientes a una única fuente ALSA (consulte la salida 'pacmd list-sources' a continuación).

* index: 2 name: <alsa_input.pci-0000_00_1b.0.analog-stereo> driver: <module-alsa-card.c> flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: SUSPENDED suspend cause: IDLE priority: 9959 volume: front-left: 23093 / 35% / -27.18 dB, front-right: 23093 / 35% / -27.18 dB balance 0.00 base volume: 13076 / 20% / -42.00 dB volume steps: 65537 muted: no current latency: 0.00 ms max rewind: 0 KiB sample spec: s16le 2ch 44100Hz channel map: front-left,front-right Stereo used by: 0 linked by: 0 configunetworking latency: 0.00 ms; range is 0.50 .. 371.52 ms card: 1 <alsa_card.pci-0000_00_1b.0> module: 7 properties: alsa.resolution_bits = "16" device.api = "alsa" device.class = "sound" alsa.class = "generic" alsa.subclass = "generic-mix" alsa.name = "ALC3232 Analog" alsa.id = "ALC3232 Analog" alsa.subdevice = "0" alsa.subdevice_name = "subdevice #0" alsa.device = "0" alsa.card = "1" alsa.card_name = "HDA Intel PCH" alsa.long_card_name = "HDA Intel PCH at 0xe1234000 irq 47" alsa.driver_name = "snd_hda_intel" device.bus_path = "pci-0000:00:1b.0" sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "9ca0" device.product.name = "Wildcat Point-LP High Definition Audio Controller" device.form_factor = "internal" device.string = "front:1" device.buffering.buffer_size = "65536" device.buffering.fragment_size = "32768" device.access_mode = "mmap+timer" device.profile.name = "analog-stereo" device.profile.description = "Analog Stereo" device.description = "Built-in Audio Analog Stereo" alsa.mixer_name = "Realtek ALC3232" alsa.components = "HDA:10ec0292,17aa5036,00100001" module-udev-detect.discovenetworking = "1" device.icon_name = "audio-card-pci" ports: analog-input-internal-mic: Internal Microphone (priority 8900, latency offset 0 usec, available: unknown) properties: device.icon_name = "audio-input-microphone" analog-input-dock-mic: Dock Microphone (priority 7800, latency offset 0 usec, available: no) properties: device.icon_name = "audio-input-microphone" analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: no) properties: device.icon_name = "audio-input-microphone" active port: <analog-input-internal-mic> 

El comportamiento actual es que cuando no están conectadas las inputs de línea (la toma de auriculares / micrófono está vacía, la computadora portátil está desacoplada), la matriz de micrófonos internos está activa (como se vio arriba en la salida de pacmd). Sin embargo, cuando se conecta una línea a través de la toma de auriculares / micrófono, como cuando se conecta un juego de auriculares de 4 polos diseñado para teléfonos inteligentes, la fuente ALSA cambia los puertos al puerto de input de línea 'input analógica-micrófono '. La disponibilidad del puerto de la matriz de micro interno 'analog-input-internal-mic' ahora se muestra como 'no'. Vea abajo.

 ... ports: analog-input-internal-mic: Internal Microphone (priority 8900, latency offset 0 usec, available: no) properties: device.icon_name = "audio-input-microphone" analog-input-dock-mic: Dock Microphone (priority 7800, latency offset 0 usec, available: no) properties: device.icon_name = "audio-input-microphone" analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: yes) properties: device.icon_name = "audio-input-microphone" active port: <analog-input-mic> 

Me gustaría cambiar el comportamiento de modo que no importa qué, el set de micrófonos internos tenga prioridad, ya que la calidad de sonido de la matriz de micrófonos interna es superior a la de los micrófonos que tengo. Esto tiene dos problemas:

  1. La disponibilidad del puerto de micrófono interno cambia a 'no', de modo que si cambio manualmente el puerto ('pacmd set-source-port 2 analog-input-internal-mic') no hay input de sonido real

  2. La prioridad del puerto de micrófono interno es aparentemente más baja que en los otros puertos, lo que significa que incluso si resolviera el problema de disponibilidad, tendría que configurarlo manualmente a través de pavucontrol o pacmd cada vez que conecté un micrófono a través del conector

Estoy seguro de que este es un problema de software / firmware, porque tengo el comportamiento establecido exactamente como se desea en Windows.

¿Hay alguna forma de evitar estos problemas? Este es un esfuerzo de última hora para encontrar una solución, ya que parece que este es un problema de controller ALSA de bajo nivel (disponibilidad) y algo que el 99,99% de los usuarios nunca tocaría (prioridad de puerto). Cualquier input es apreciada, esencialmente no hay documentation concerniente a los puertos de PulseAudio que no sean 'pacmd set-sink-port / set-source-port' que pude encontrar.

  • Sistema: Thinkpad T450s
  • Distro: Debian Testing (estiramiento)