GNU/Linux >> Linux の 問題 >  >> Debian

サウンド (PulseAudio) を WSL2 で動作させる方法

この記事では、Microsoft Windows で WSL2 を編集するためのサウンド (PulseAudio) を取得する方法について説明します。

これらの手順に従うと、コンソールおよび GUI アプリケーション用の Windows / WSL2 で PulsAudio を使用して動作するサウンドが得られます (ただし、この記事では、WSL2 でのグラフィカル アプリケーションの実行については説明していません)。そのため、マイクが機能しないか、少なくとも私には機能しませんでした (たとえば、とにかく必要ありませんでした)。

Microsoft は、グラフィカル アプリケーションとサウンドを実行するための組み込みサポートを WSL2 に追加する予定です。ただし、それまでは、これらの手順を使用して、サウンドを WSL2 で動作させることができます。

まだ WSL1 を使用している場合は、こちらで WSL2 にアップグレードする方法を参照してください。 wsl -l -v を実行すると、すでに WSL2 を使用しているかどうかを確認できます。 Windows PowerShell で。 WSL2 を使用するすべてのマシンをここにリストする必要があります。VERSION は 2 です。;バージョン番号やエラー メッセージが表示されない場合は、WSL1 です。

以下は、Ubuntu / WSL2 を実行している Windows ターミナルを示すスクリーンショットで、音楽を再生するために cmus コンソール ミュージック プレーヤーを使用しています。実際に機能するかどうかを確認するために音楽を聞くことはできないため、このスクリーンショットはほとんど役に立ちませんが、アイテムのサムネイルとして使用するスクリーンショットが必要でした?️.

完全に独立したリファレンスとして、WSL2 で cmus を使用する場合は ~/.config/cmus/rc を編集してください ファイル (存在しない場合は作成) を追加し、set output_plugin=pulse を追加します。 サウンド出力が Windows デスクトップで機能するようにします。

WSL2 でのサウンドのしくみ

1. Windows 用の PulseAudio をダウンロードします。

Windows の場合:

私が見つけた Windows 10 用 PulseAudio の最新バージョンは、X2Go 用にビルドされた here のバージョン 7 です。このリンクにアクセスして [スナップショット] をクリックし、PulseAudio for Windows をダウンロードできます。または、ここをクリックしてダウンロードしてください。

これはダウンロードされます .tar.gz 記録。このアーカイブを抽出し、pulseaudio.exe を含むフォルダーの名前を変更します 、およびその他の PulseAudio 実行可能ファイルとファイルを pulse に 、それをもう一度コピー pulse フォルダも C: (したがって、たとえば C:pulsepulseaudio.exe にする必要があります ).

2. PulseAudio を Windows 用に構成します。

Windows の場合:

config.pa というファイルを作成します C:pulse で . Windows でファイル拡張子の名前を変更できるようにするには、ファイル エクスプローラーでファイル拡張子の表示を有効にする必要があります。

この C:pulseconfig.pa で ファイルを作成し、以下を追加して、完了したらファイルを保存します:

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;172.16.0.0/12
load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;172.16.0.0/12
load-module module-waveout sink_name=output source_name=input record=0

ここでは 127.0.0.1 からの接続を許可します これはローカル IP アドレスで、172.16.0.0/12 です。 これは、WSL2 の既定のストレージ領域 (172.16.0.0 – 172.31.255.255) です。

3. WSL2 で PulseAudio を構成します。

WSL2 の場合 (Ubuntu / 使用しているもの):

libpulse0 であることを確認しましょう そうしないと動作しません。インストールするための名前とコマンドは、使用している Linux ディストリビューションによって異なるため、見つけてインストールする必要があります。 Ubuntu / Debian では、以下でインストールできます:

sudo apt install libpulse0

~/.bashrc を使用する必要があります テキスト エディターでファイルします。次のコマンドを使用して、Nano コンソール エディターで編集します。

nano ~/.bashrc

そのファイルの一番下までスクロールして、そこに以下を貼り付けます:

export HOST_IP="$(ip route |awk '/^default/{print $3}')"
export PULSE_SERVER="tcp:$HOST_IP"
#export DISPLAY="$HOST_IP:0.0"

ここで、コメント マーク export DISPLAY を削除できます。 それもエクスポートする行 DISPLAY 環境変数(誰もが必要とするわけではないので、デフォルトでコメントアウトしました)。これは、VcxSrv などを使用して WSL2 からグラフィカル アプリケーションを起動する場合に必要です (この記事の構成では、WSL2 で実行されているグラフィカル アプリケーションが適切にサポートされます)。

完了したら、ファイルを保存して Nano を終了します (Ctrl + oEnter 次に x ファイルが保存され、nano が存在します)。次のソースは ~/.bashrc です 新しい環境変数を使用するファイル:

source ~/.bashrc

4. PulseAudio を Windows サービスとしてインストールします。

Windows の場合:

PulseAudio を Windows サービスとして開始するには、NSSM を使用します。ここから NSSM をダウンロードし、ダウンロードしたアーカイブを解凍して、win64 nssm.exe をコピーします。 実行可能すぎる C:pulse . win64 でそれを見つけることができます ダウンロードした NSSM zip アーカイブ内のフォルダー。

次に、Windows の [スタート] メニューで PowerShell を見つけ、PowerShell エントリを右クリックして Run as Administrator を選択します。 .

PowerShell で、次を入力するか貼り付けます:

C:pulsenssm.exe install PulseAudio

このコマンドを実行すると、NSSM GUI が表示されます。 彼の Application で タブ、使用:

  • アプリケーション パス:C:pulsepulseaudio.exe
  • 開始ディレクトリ:C:pulse
  • 引数:-F C:pulseconfig.pa --exit-idle-time=-1
  • サービス名 (NSSM ダイアログを開くと自動的に入力されます):PulseAudio

Arguments フィールドでは、-F を使用します。 --exit-idle-time=-1 の間、起動時に指定されたスクリプトを実行するように PulseAudio に指示します 数秒間非アクティブになった後にデーモンをシャットダウンするオプションを無効にします。

Details で タブ、入力 PulseAudio Display name を実行することによって エリア:

このすべてが完了したら、Install service をクリックします。 ボタン。

後でこの Windows サービスを削除する場合は、PowerShell を管理者として再度実行し、今度は次のコマンドを実行してサービスを削除します:

C:pulsenssm.exe remove PulseAudio

5. PulseAudio Windows サービスを開始します。

Windows タスク マネージャーを起動し、Services をクリックします。 Tab キーを押して、PulseAudio までスクロールします。 PulseAudio サービスが見つかったら、それを右クリックして Start を選択します。 それ:

これで完了です。 PulseAudio が動作するようになりました。 WSL2 でオーディオ対応アプリケーションを使用し、Windows 10 デスクトップでオーディオ出力を聞くことができるはずです。

Windows 10 に PulseAudio をサービスとしてインストールしたため、Windows デスクトップにログインすると起動後に自動的に起動するため、手動で再度起動する必要はありません。

参考文献:Ubuntu の談話、これ、これ、および X2Go Wiki。


Debian
  1. Linux – OracleJava7をSetcapCap_net_bind_service+ epと連携させる方法は?

  2. Linux – Grindeq(Word用のlatexプラグイン)をWord In Wineで動作させる方法は?

  3. node.js を使用してシステム統計を取得する方法

  1. VimをTmuxで適切に動作させる方法は?

  2. Uuencodeを機能させる方法は?

  3. WebカメラをUbuntu14.04で動作させる方法は?

  1. Jshintを機能させる方法は?

  2. じゅじゅを始めるには?

  3. Perl を学んでいますが、Windows で 5.14 を入手するにはどうすればよいですか?