Как переключить профиль PulseAudio на оптический, когда игнорируется default.pa.d

Вопрос или проблема

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

Я добавил следующее в /etc/pulse/default.pa.d/set-default-to-optical.pa:

set-card-profile alsa_card.pci-0000_00_1b.0 output:iec958-stereo

Также у меня есть следующее в /etc/pulse/default.pa:

### Разрешение включения каталога default.pa.d, который, если присутствует, может быть использован
### для дополнительных конфигурационных фрагментов.
### Обратите внимание, что эти файлы-фрагменты должны иметь расширение .pa, а не .conf
.nofail
.include /etc/pulse/default.pa.d

По какой-то причине это не работает, и мне приходится вручную запускать set-card-profile alsa_card.pci-0000_00_1b.0 output:iec958-stereo каждый раз при старте системы.

Как я могу сделать так, чтобы Pulse устанавливал этот профиль карты при запуске?

.

Ответ или решение

Проблема, с которой вы столкнулись, связана с тем, что PulseAudio не применяет конфигурационный файл из каталога /etc/pulse/default.pa.d автоматически при загрузке системы. Давайте разберемся, как можно решить эту проблему, чтобы переключение профиля PulseAudio на оптический происходило автоматически.

Теория

PulseAudio – это звуковой сервер, который управляет звуковыми устройствами и их профилями на Linux-системах. Профили аудиокарт указывают на набор настроек, которые контролируют, какие выходы и входы активны для конкретной карты. В вашем случае, вы хотите использовать оптический выход, который обозначается как iec958-stereo.

В файле default.pa можно указывать команды и настройки, которые PulseAudio выполняет при старте. Этот файл может принимать дополнительные настройки из включенных каталогов, таких как default.pa.d. Однако, бывает, что PulseAudio не интерпретирует эти команды должным образом, из-за различных факторов, таких как права доступа, ошибки в конфигурационных файлах или специфическое поведение дистрибутива.

Пример

Вы уже начали настройку, добавив строку для включения каталога и команду для установки нужного профиля:

  1. В /etc/pulse/default.pa добавлено:

    ### Allow including a default.pa.d directory, which if present, can be used
    ### for additional configuration snippets.
    ### Note that those snippet files must have a .pa file extension, not .conf
    .nofail
    .include /etc/pulse/default.pa.d
  2. В /etc/pulse/default.pa.d/set-default-to-optical.pa добавлено:

    set-card-profile alsa_card.pci-0000_00_1b.0 output:iec958-stereo

Применение

Чтобы исправить проблему и убедиться, что PulseAudio применяет настройки автоматически, следуйте этим шагам:

  1. Права доступа и владельцы файлов:

    • Убедитесь, что файлы конфигурации имеют правильные разрешения и владельца. Команды для этого:
      sudo chown root:root /etc/pulse/default.pa.d/set-default-to-optical.pa
      sudo chmod 644 /etc/pulse/default.pa.d/set-default-to-optical.pa
  2. Проверьте логи на ошибки:

    • Запустите PulseAudio в режиме отладки, чтобы увидеть, где возникает ошибка. Это можно сделать с помощью команды:
      pulseaudio --kill
      pulseaudio --start --log-target=file:/var/log/pulseaudio.log --log-level=debug
    • После этого проверьте файл /var/log/pulseaudio.log на наличие ошибок или предупреждений.
  3. Редактирование default.pa:

    • Убедитесь, что строка .include /etc/pulse/default.pa.d фактически вызывается. Это может означать необходимость удаления .nofail или расстановку точки остановки.
  4. Скрипты автозагрузки:

    • Если вышеописанный метод не работает, создайте скрипт, который будет запускаться при старте системы:

      sudo nano /etc/systemd/system/pulseaudio-profile.service

      Вставьте следующее:

      [Unit]
      Description=Set PulseAudio Profile
      After=pulseaudio.service
      
      [Service]
      Type=oneshot
      ExecStart=/bin/bash -c "pactl set-card-profile alsa_card.pci-0000_00_1b.0 output:iec958-stereo"
      
      [Install]
      WantedBy=default.target
  5. Активируйте и проверьте сервис:

    • Активируйте новый сервис:
      sudo systemctl enable pulseaudio-profile.service
    • Проверьте его работу:
      sudo systemctl start pulseaudio-profile.service

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

Таким образом, правильное использование конфигурационных файлов, проверка прав и использование сервисов SystemD могут помочь вам в автоматизации этого процесса. Понимание работы PulseAudio и системных сервисов позволяет более эффективно решать проблемы и автоматизировать задачи.

Оцените материал
Добавить комментарий

Капча загружается...