Изменение порта источника PulseAudio: «доступность = нет» и приоритет

У меня есть Thinkpad T450s, который поставляется с тремя «реальными» микрофонными входами: встроенная микрофонная матрица (физические микрофоны находятся на панели ЖК-дисплея рядом с веб-камерой), «линия» с помощью комбинированного 4-полюсного разъема для наушников / микрофона и «линия в» через стыковочный порт. PulseAudio показывает все три в качестве портов, принадлежащих одному источнику ALSA (см. Вывод «Источники данных pacmd list-sources» ниже).

* 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 configured 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.discovered = "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> 

Текущее поведение заключается в том, что, когда не подключены ни линейные входы (разъем для наушников / микрофона пуст, ноутбук отсоединен), внутренний микрофонный массив активен (как показано выше в выводе pacmd). Однако, когда линейный вход подключается через разъем для наушников / микрофонов, как в случае подключения смартфона к 4-полюсным гарнитурам, источник ALSA переключает порты на линейный порт «аналоговый вход-микрофон» ». Наличие внутреннего микрофонного порта «analog-input-internal-mic» теперь отображается как «нет». Смотри ниже.

  • Как зашифровать / скрыть пароль в файле / etc / network / interfaces на debian?
  • Cron сообщает об ошибке в php5-общем задании после обновления
  • Использует ли Debian GB или GiB для своего менеджера разделов во время установки?
  • отобразить окно входа в систему в качестве списка пользователей
  • Есть ли инструмент, который позволяет мне преувеличивать уровни звука?
  • dbus: Не удалось активировать услугу «org.freedesktop.login1»: тайм-аут
  •  ... 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> 

    Я бы хотел изменить поведение таким образом, чтобы независимо от того, какой внутренний микрофон имеет приоритет, поскольку качество звука в микрофонной панели превосходит микрофоны, которые у меня есть. Это имеет две проблемы:

    1. Доступность внутреннего микрофонного порта изменяется на «нет», так что если я вручную изменю порт («pacmd set-source-port 2 analog-input-internal-mic»), фактический вход звука отсутствует

    2. Приоритет внутреннего микрофонного порта, по-видимому, ниже, чем оба других порта, что означает, что даже если бы я столкнулся с проблемой доступности, мне пришлось бы вручную устанавливать его через pavucontrol или pacmd каждый раз, когда я подключаю микрофон через гнездо

    Я уверен, что это проблема с программным обеспечением и прошивкой, потому что у меня есть поведение, установленное точно так же, как и в Windows.

    Есть ли способ обойти эти проблемы? Это отчасти попытка найти решение, поскольку, по-видимому, это проблема низкого уровня ALSA-драйвера (доступность), а также 99,99% пользователей никогда не будут касаться (приоритет порта). Любой вход оценивается, по существу нет документации относительно портов PulseAudio, отличных от «pacmd set-sink-port / set-source-port», который я мог найти.

    • Система: Thinkpad T450s
    • Distro: тестирование Debian (растяжка)

    Linux и Unix - лучшая ОС в мире.