Pulseaudio изначально не поддерживается WSL2, и его сложно связать с динамиками Windows. Следовательно, когда вы открываете рабочий стол с графическим интерфейсом или приложения в X410, вы не услышите ничего, кроме основных системных сигналов.
В этом руководстве рассмотрим способ, который отлично работает с последней версией Pulse на Windows 10. Мы надеемся, что Microsoft все же добавит поддержку звука в будущую версию WSL.
Чтобы настроить PulseAudio 5.0 в Windows, сделайте следующее:
Шаг 1: Загрузите pulseaudio-5.0-rev18.zip
Шаг 2: Распакуйте его и скопируйте содержимое в папку pulse в «C:\pulse».
Шаг 3: Создайте в этой папке файл «config.pa» со следующим содержимым:
load-module module-native-protocol-tcp auth-anonymous=1 load-module module-esound-protocol-tcp auth-anonymous=1 load-module module-waveout sink_name=output source_name=input record=0
Обратите внимание, что из соображений безопасности и конфиденциальности Windows 10 (обновление за Май.), ограничивает доступ к устройствам записи звука. Вы, вероятно, можете как-то переопределить эту функцию, но поскольку мы только хотим слышать звук, просто отключаем запись на сервере PulseAudio, добавляя 'record = 0'.
Шаг 4: «Pulseaudio.exe» - это исполняемый файл для сервера PulseAudio (также называемый демоном), который нужен для наших приложений Linux.
Откройте PowerShell в папке «c:\pulse» и выполните команду:
.\pulseaudio.exe -F config.pa
При первом запуске pulseaudio.exe вы увидите всплывающее окно с предупреждением брандмауэра Windows, в котором вас спросят, хотите ли вы разрешить другим устройствам подключаться к серверу. Вам следует выбрать «Разрешить доступ». Если вы получаете сообщение о ошибке, сервер немедленно завершает работу. В этом случае перейдите к предыдущему шагу и убедитесь, что вы сделали все правильно.
Шаг 5: Запустите wsl2 и выполните:
export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}');
Теперь проверьте звук в wsl2, и он заработает. На этом можно остановится (Вам придется повторить эти шаги перед каждым запуском WSL2, для воспроизведения звука).
Автоматизируем возможность воспроизводить звук из Linux на вашем ПК Windows 10.
Если вы хотите чтобы настройки для работы звука выполнялись автоматически, а не запускать каждый раз PulseAudio в командной строке, нужно создать службу Windows. Я использую NSSM для запуска произвольных программ как служб.
Шаг 1: Загрузите последнюю версию NSSM.
Шаг 2: Распакуйте его и скопируйте «nssm.exe» из папки win32 в «c:\pulse».
Шаг 3: Выполните в командной строке или Power Shell:
c:\pulse\nssm.exe install PulseAudio
Шаг 4: Заполните следующие данные на вкладке «Application»:
- Path: c:\pulse\pulseaudio.exe
- Startup directory: c:\pulse
- Arguments: -F c:\pulse\config.pa
Шаг 5: На вкладке «Details» введите:
- Display name: PulseAudio
Шаг 6: Нажмите кнопку «Install service».
Шаг 7: Все, запустите только что установленную службу - либо с помощью управления службами, либо выполнив команду:
net start PulseAudio
Теперь у вас будет постоянная служба pulseaudio в Windows, которая практически не использует оперативную память.
Шаг 8: Добавьте в конец файла «.bashrc» вашего дистрибутива wsl2, чтобы всегда выводить звук.
export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}');
Используйте команду:
explorer.exe .
Это отлично работает.
Кстати, данная конфигурация разрешает анонимные соединения, вы можете ограничить его IP-адресом wsl2, если хотите, но он регулярно меняется.
Какой способ используете вы, чтобы включить звук в WSL 2, поделитесь с нами в комментариях ниже.
Рекомендуем:
- Экспорт и импорт дистрибутива Linux WSL1 и WSL2 в Windows 10.
- Windows 10, Установка локального веб-сервера (Apache, MySQL, PHP) в Wsl 1 и Wsl 2.
- Как установить WSL 2 подсистему Windows для Linux 2 в Windows 10
- (WSL2) Что такое подсистема Windows для Linux 2?
- Как запустить Linux с графической оболочкой рабочего стола используя WSL 2 в Windows 10