Вопрос или проблема
Я пытаюсь убедиться, что в 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 не интерпретирует эти команды должным образом, из-за различных факторов, таких как права доступа, ошибки в конфигурационных файлах или специфическое поведение дистрибутива.
Пример
Вы уже начали настройку, добавив строку для включения каталога и команду для установки нужного профиля:
-
В
/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
-
В
/etc/pulse/default.pa.d/set-default-to-optical.pa
добавлено:set-card-profile alsa_card.pci-0000_00_1b.0 output:iec958-stereo
Применение
Чтобы исправить проблему и убедиться, что PulseAudio применяет настройки автоматически, следуйте этим шагам:
-
Права доступа и владельцы файлов:
- Убедитесь, что файлы конфигурации имеют правильные разрешения и владельца. Команды для этого:
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
- Убедитесь, что файлы конфигурации имеют правильные разрешения и владельца. Команды для этого:
-
Проверьте логи на ошибки:
- Запустите PulseAudio в режиме отладки, чтобы увидеть, где возникает ошибка. Это можно сделать с помощью команды:
pulseaudio --kill pulseaudio --start --log-target=file:/var/log/pulseaudio.log --log-level=debug
- После этого проверьте файл
/var/log/pulseaudio.log
на наличие ошибок или предупреждений.
- Запустите PulseAudio в режиме отладки, чтобы увидеть, где возникает ошибка. Это можно сделать с помощью команды:
-
Редактирование
default.pa
:- Убедитесь, что строка
.include /etc/pulse/default.pa.d
фактически вызывается. Это может означать необходимость удаления.nofail
или расстановку точки остановки.
- Убедитесь, что строка
-
Скрипты автозагрузки:
-
Если вышеописанный метод не работает, создайте скрипт, который будет запускаться при старте системы:
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
-
-
Активируйте и проверьте сервис:
- Активируйте новый сервис:
sudo systemctl enable pulseaudio-profile.service
- Проверьте его работу:
sudo systemctl start pulseaudio-profile.service
- Активируйте новый сервис:
К тому же, важно убедиться, что ваш профиль действительно доступен через pactl
до загрузки, так как это может указывать на аппаратные ограничения или проблемы драйверов.
Таким образом, правильное использование конфигурационных файлов, проверка прав и использование сервисов SystemD могут помочь вам в автоматизации этого процесса. Понимание работы PulseAudio и системных сервисов позволяет более эффективно решать проблемы и автоматизировать задачи.