<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DreamChaser</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DreamChaser"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/DreamChaser"/>
	<updated>2026-06-09T07:48:29Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:DreamChaser&amp;diff=40350</id>
		<title>利用者:DreamChaser</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:DreamChaser&amp;diff=40350"/>
		<updated>2025-06-03T13:57:59Z</updated>

		<summary type="html">&lt;p&gt;DreamChaser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;技術者ではないので専門用語には疎いです。&lt;br /&gt;
半年くらい放置されている未翻訳記事があったら翻訳しようかなと思っています。&lt;br /&gt;
&lt;br /&gt;
ArchWiki翻訳の備忘録&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;quot;{{=}}&amp;quot;となっている箇所を&amp;quot;=&amp;quot;に修正し、改行になっているところは{{テンプレート|1=&amp;lt;nowiki/&amp;gt;単語1=単語2}}、それ以外は{{テンプレート|1=単語1=単語2}}を追加する。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
テンプレートとはノートやヒント、警告などを指す。&lt;br /&gt;
&lt;br /&gt;
プレビューを見ておかしい箇所がないか探す。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[start]]は起動、[[restart]]は再起動、[[enable]]は有効化、[[stop]]は停止。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;テンプレートの{{Note|}}や{{Tip|}}は翻訳せずにそのまま使う。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
() &amp;quot;&amp;quot; , :など全角文字があるものは翻訳の際に全角になってしまうことがあるので注意。&lt;br /&gt;
&lt;br /&gt;
末尾の&amp;quot;see also&amp;quot;は慣例的に「参照」と訳す。&lt;br /&gt;
&amp;quot;Tips and Tricks&amp;quot;も同じく「ヒントとテクニック」と訳す。&lt;br /&gt;
翻訳状況のテンプレを末尾に入れる。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{TranslationStatus|英語版の記事タイトル|西暦月日|英語版のバージョン（右上の Tools &amp;gt;Permanent_link から確認できる）}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
一例を下に示す。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{TranslationStatus|Waydroid|2024-09-28|816118}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
文中では、ですます体だが、目次の見出しはなるべく名詞で終わるようにし、トラブルシューティングの項では「する」「ない」などとする。&lt;br /&gt;
アルファベットやカタカナ前後の半角空白に注意する。英単語のみ前後に半角空白を入れる。行頭には空白を入れない。またカタカナでは行わない。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[カーネルパラメータ]] {{ic|ibt=off}} ＞テンプレートエラー&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>DreamChaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:DreamChaser&amp;diff=40349</id>
		<title>利用者:DreamChaser</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:DreamChaser&amp;diff=40349"/>
		<updated>2025-06-03T13:54:35Z</updated>

		<summary type="html">&lt;p&gt;DreamChaser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;技術者ではないので専門用語には疎いです。&lt;br /&gt;
半年くらい放置されている未翻訳記事があったら翻訳しようかなと思っています。&lt;br /&gt;
&lt;br /&gt;
ArchWiki翻訳の備忘録&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;quot;{{=}}&amp;quot;となっている箇所を&amp;quot;=&amp;quot;に修正し、改行になっているところは{{テンプレート|1=&amp;lt;nowiki/&amp;gt;単語1=単語2}}、それ以外は{{テンプレート|1=単語1=単語2}}を追加する。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
テンプレートとはノートやヒント、警告などを指す。&lt;br /&gt;
&lt;br /&gt;
プレビューを見ておかしい箇所がないか探す。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[start]]は起動、[[restart]]は再起動、[[enable]]は有効化、[[stop]]は停止。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
テンプレートの{{Note|}}や{{Tip|}}は翻訳せずにそのまま使う。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
() &amp;quot;&amp;quot; , :など全角文字があるものは翻訳の際に全角になってしまうことがあるので注意。&lt;br /&gt;
&lt;br /&gt;
末尾の&amp;quot;see also&amp;quot;は慣例的に「参照」と訳す。&lt;br /&gt;
&amp;quot;Tips and Tricks&amp;quot;も同じく「ヒントとテクニック」と訳す。&lt;br /&gt;
翻訳状況のテンプレを末尾に入れる。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{TranslationStatus|英語版の記事タイトル|西暦月日|英語版のバージョン（右上の Tools &amp;gt;Permanent_link から確認できる）}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
一例を下に示す。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{TranslationStatus|Waydroid|2024-09-28|816118}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
文中では、ですます体だが、目次の見出しはなるべく名詞で終わるようにし、トラブルシューティングの項では「する」「ない」などとする。&lt;br /&gt;
アルファベットやカタカナ前後の半角空白に注意する。英単語のみ前後に半角空白を入れる。行頭には空白を入れない。またカタカナでは行わない。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[カーネルパラメータ]] {{ic|ibt=off}} ＞テンプレートエラー&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>DreamChaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=PipeWire&amp;diff=39168</id>
		<title>PipeWire</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=PipeWire&amp;diff=39168"/>
		<updated>2024-10-17T14:42:45Z</updated>

		<summary type="html">&lt;p&gt;DreamChaser: auioとなっていた箇所をaudioに修正&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:マルチメディア]]&lt;br /&gt;
[[en:PipeWire]]&lt;br /&gt;
[[fi:PipeWire]]&lt;br /&gt;
[[pt:PipeWire]]&lt;br /&gt;
[[ru:PipeWire]]&lt;br /&gt;
[[zh-hans:PipeWire]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|PipeWire/サンプル}}&lt;br /&gt;
{{Related|WirePlumber}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
[https://pipewire.org PipeWire] は新しい低レベルマルチメディアフレームワークです。&lt;br /&gt;
映像と音声を最小の遅延で再生/キャプチャすることを目的としていて、[[PulseAudio]]、[[JACK]]、[[ALSA]]、[[GStreamer]] をベースとしたアプリケーションと互換性があります。&lt;br /&gt;
&lt;br /&gt;
このフレームワークのデーモンは (PulseAudio と JACK の機能を持った) オーディオサーバーとしても、ビデオキャプチャサーバーとしても設定できます。&lt;br /&gt;
&lt;br /&gt;
また PipeWire は [[Flatpak]] のようなコンテナをサポートしており、&#039;&#039;audio&#039;&#039; や &#039;&#039;video&#039;&#039; [[ユーザーとグループ#グループ管理|ユーザーグループ]]に依存するのではなく、Flatpak や Wayland にスクリーンや音声を録音する許可を求める [[Polkit]] のようなセキュリティモデルを使用しています。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
公式リポジトリから {{Pkg|pipewire}} パッケージを [[インストール]] してください。[[multilib]] に対応した {{Pkg|lib32-pipewire}} もあります。&lt;br /&gt;
&lt;br /&gt;
Pipewire は [[systemd/ユーザー]] を使ってサーバーを管理し、ソケットを自動で起動します。&lt;br /&gt;
&lt;br /&gt;
オプションとして、{{Pkg|pipewire-docs}} をインストールすると、ドキュメントを確認することができます。&lt;br /&gt;
&lt;br /&gt;
Pipewire は、他のオーディオサーバーと置き換えることができます。詳しくは [[PipeWire#オーディオ|オーディオ]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== セッション マネージャー ===&lt;br /&gt;
&lt;br /&gt;
[[JACK]] と同様、PipeWire は内部で接続ロジックを実装していません。新しいストリームを監視し、適切な出力デバイスやアプリケーションに接続する負担は、セッションマネージャーとして知られる外部のコンポーネントに任されています。&lt;br /&gt;
&lt;br /&gt;
現在、推奨のセッションマネージャーは1つだけで次になります:&lt;br /&gt;
* {{App|[[WirePlumber]]| 強力なマネージャであり、現在の推奨品です。モジュール設計に基づいており、実際の管理機能を実装する Lua プラグインがあります。|https://pipewire.pages.freedesktop.org/wireplumber/|{{Pkg|wireplumber}}}}&lt;br /&gt;
&lt;br /&gt;
次のセッションマネージャーはサポート外になっており WirePlumber を推奨しています:&lt;br /&gt;
&lt;br /&gt;
* {{App|PipeWire Media Session|いくつかの基本的なデスクトップのユースケースに対応した非常にシンプルなセッションマネージャです。これは主にテスト用と新しいセッションマネージャを構築するための例として実装されました。|https://gitlab.freedesktop.org/pipewire/media-session|{{Pkg|pipewire-media-session}}}}&lt;br /&gt;
&lt;br /&gt;
PipeWire のインストール時に、どちらかを選ぶように指示されます。後で適切なパッケージをインストールすることで、もう一方のオプションと衝突しますが、置き換えることで切り替えが可能です。&lt;br /&gt;
&lt;br /&gt;
=== GUI ===&lt;br /&gt;
&lt;br /&gt;
* {{App|Helvum|PipeWire 用の GTK 製のパッチベイ。 JACK のツールの catia にインスパイアされた。|https://gitlab.freedesktop.org/ryuukyu/helvum|{{pkg|helvum}}}}&lt;br /&gt;
* {{App|qpwgraph|Qt-based Graph/Patchbay for PipeWire, inspired by the JACK tool QjackCtl.|https://gitlab.freedesktop.org/rncbc/qpwgraph|{{Pkg|qpwgraph}}}}&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
PipeWire パッケージは、初期設定ファイルを{{ic|/usr/share/pipewire}} に用意しています。パッケージのアップデートで変更内容が上書きされてしまうので、これらのファイルを直接編集するべきではありません。PipeWire を設定するには、ファイルを {{ic|/usr/share/pipewire}} からシステム全体の代替場所 {{ic|/etc/pipewire}} か、ユーザーの場所 {{ic|~/.config/pipewire}} にコピーしてください。[https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-PipeWire#configuration-file-pipewireconf]&lt;br /&gt;
&lt;br /&gt;
=== プロファイル ===&lt;br /&gt;
&lt;br /&gt;
Pipewire では、PulseAudio のプロファイルに加えて、pavucontrol で選択可能なカスタムの &#039;&#039;Pro Audio&#039;&#039; プロファイルが提供されています。その効果はこちらで解説しています:https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/FAQ#what-is-the-pro-audio-profile&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
&lt;br /&gt;
=== 音声 ===&lt;br /&gt;
&lt;br /&gt;
PulseAudio や JACK と同様に  PipeWire をオーディオサーバーとして使用できます。 PulseAudio サーバーの互換実装と JACK クライアント用の ABI 互換ライブラリを提供することで  PulseAudio と JACK の両方を置き換えることを目的としています。詳細については[https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ この記事]を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== ALSA/レガシーアプリケーション ====&lt;br /&gt;
&lt;br /&gt;
{{pkg|pipewire-alsa}} をインストールして ALSA API を使用するすべてのアプリケーションが PipeWire を使用するよう設定できます。&lt;br /&gt;
&lt;br /&gt;
==== PulseAudio クライアント ====&lt;br /&gt;
&lt;br /&gt;
{{pkg|pipewire-pulse}} をインストールします。このパッケージは {{pkg|pulseaudio}} と {{pkg|pulseaudio-bluetooth}} を置き換えます。再起動するか、ログインし直すか、{{ic|pulseaudio.service}} を[[停止]]して、{{ic|pipewire-pulse.service}} ユーザーユニットを実行すると効果がわかります。&lt;br /&gt;
&lt;br /&gt;
パッケージがユーザーサービス {{ic|pipewire-pulse.socket}} を自動的に有効化するので、通常それ以上の操作は不要です。置き換えが機能しているかどうかを確認するには、次のコマンドを実行して出力を確認してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ pactl info|2=&lt;br /&gt;
...&lt;br /&gt;
Server Name: PulseAudio (on PipeWire &#039;&#039;x.y.z&#039;&#039;)&lt;br /&gt;
...&lt;br /&gt;
Default Sink: alsa_output.{bus}-{device}.{profile}&lt;br /&gt;
Default Source: alsa_input.{bus}-{device}.{profile}&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{man|1|pactl}} は、依存関係として &#039;&#039;pipewire-pulse&#039;&#039; とともにインストールされる PulseAudio クライアントライブラリパッケージ ({{pkg|libpulse}}) によって提供されます。&lt;br /&gt;
&lt;br /&gt;
===== 全体または個別のチャンネルの音量を設定する =====&lt;br /&gt;
&lt;br /&gt;
出力チャンネルのボリュームを調整するには、{{ic|pactl get-sink-volume {sink}}} を使用して、&#039;&#039;Default Sink:&#039;&#039; (上記) または &#039;&#039;Name&#039;&#039; の値を使用して &#039;&#039;sink&#039;&#039; を指定する必要があります。:&lt;br /&gt;
&#039;&#039; (下記)、デフォルトのシンクデバイス (&#039;&#039;@DEFAULT_SINK@&#039;&#039;)、または &#039;&#039;Sink #&#039;&#039; (例: 以下の &#039;&#039;1&#039;&#039;):&lt;br /&gt;
{{hc|$ pactl list sinks {{!}} grep -B1 -A9 State:|2=&lt;br /&gt;
Sink #1&lt;br /&gt;
        State: RUNNING&lt;br /&gt;
        Name: alsa_output.pci-0000_2d_00.4.analog-surround-51&lt;br /&gt;
...&lt;br /&gt;
        Driver: PipeWire&lt;br /&gt;
...&lt;br /&gt;
        Mute: no&lt;br /&gt;
        Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB,   rear-left: 65536 / 100% / 0.00 dB,   rear-right: 65536 / 100% / 0.00 dB,   front-center: 65536 / 100% / 0.00 dB,   lfe: 65536 / 100% / 0.00 dB&lt;br /&gt;
                balance 0.00&lt;br /&gt;
}}&lt;br /&gt;
ヒント: オーディオが再生されている場合、他のデバイスとして &#039;&#039;実行中&#039;&#039; の {{man|1|grep}} は &#039;&#039;一時停止&#039;&#039; されます。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;バランス&#039;&#039; 比率は自動的に計算されます。デフォルトのデバイスの全体のボリュームを設定するには、次のコマンドを使用します: {{bc|pactl set-sink-volume @DEFAULT_SINK@ 75%}}&lt;br /&gt;
個別のチャンネルを設定するには、各チャンネルのボリュームを個別に指定します:&lt;br /&gt;
{{bc|pactl set-sink-volume @DEFAULT_SINK@ 100% 75% 100% 75% 100% 100%}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ソース&#039;&#039; 入力も同様に処理されます。さらに詳しい設定 (モジュールなど) については、[https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Migrate-PulseAudio Migrate PulseAudio] および [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-PulseAudio Pipewire-Pulse Configuration] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== JACK クライアント ====&lt;br /&gt;
&lt;br /&gt;
{{pkg|pipewire-jack}} をインストールします。{{ic|pw-jack}} を使用して JACK クライアントを起動すると、元の {{ic|libjack*}} ではなく PipeWire が提供する互換ライブラリが使用されます:&lt;br /&gt;
&lt;br /&gt;
 pw-jack &#039;&#039;application&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
カスタムバッファサイズを要求することもできます。{{ic|PIPEWIRE_LATENCY}}環境変数を {{ic|バッファサイズ/サンプルレート}} (ブロックのレイテンシ(秒)を意味します) に設定します:&lt;br /&gt;
&lt;br /&gt;
 PIPEWIRE_LATENCY=&amp;quot;128/48000&amp;quot; pw-jack &#039;&#039;application&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
また {{aur|pipewire-jack-dropin}} をインストールするか、{{pkg|jack}} か {{pkg|jack2}} をアンインストールして JACK クライアントが互換ライブラリを自動的に読み込むようにもできます。&lt;br /&gt;
&lt;br /&gt;
{{ic|ldd}} を使用して JACK アプリケーションが正しいライブラリにリンクしていることを確認します。&lt;br /&gt;
&lt;br /&gt;
{{hc|1=$ ldd /usr/bin/qjackctl {{!}} grep -i libjack|2=&lt;br /&gt;
        libjack.so.0 =&amp;gt; /usr/lib/pipewire-0.3/jack/libjack.so.0 (0x00007f7e5080a000)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth デバイス ====&lt;br /&gt;
&lt;br /&gt;
PipeWire は {{pkg|pipewire-pulse}} パッケージがインストールされている場合 Bluetooth オーディオデバイスを制御します。具体的には、メディアセッションデーモンは {{ic|/etc/pipewire/media-session.d/with-pulseaudio}} が存在する時に自動的にその {{ic|bluez5}} モジュールを有効にします。&lt;br /&gt;
&lt;br /&gt;
===== プロファイルの自動選択機能 =====&lt;br /&gt;
&lt;br /&gt;
{{Pkg|pipewire-media-session}} は、入力ストリームが必要なときに、HSP/HFP と A2DP プロファイルを自動的に切り替えます。これを有効にするには、{{ic|bluez5.autoswitch-profile}} プロパティを {{ic|true}} にセットしてください。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pipewire/media-session.d/bluez-monitor.conf (or ~/.config/pipewire/media-session.d/bluez-monitor.conf|output=&lt;br /&gt;
...&lt;br /&gt;
rules = [&lt;br /&gt;
    {&lt;br /&gt;
        ...&lt;br /&gt;
        actions = {&lt;br /&gt;
            update-props = {&lt;br /&gt;
                ...&lt;br /&gt;
                bluez5.autoswitch-profile = true&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これらの機能は、[[WirePlumber]] ではまだ [https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/90 実装中] です。&lt;br /&gt;
&lt;br /&gt;
==== PipeWire ネイティブパッチセット ====&lt;br /&gt;
&lt;br /&gt;
グラフィカルな視覚化と接続の作成のための Helvum はありますが、それ以外はまだ入っていません。以下は、ワイヤセットの保存、ワイヤセットの読み込み、すべての接続の解除を行う bash スクリプトです。保存と読み込みには、コマンドラインパラメータでファイル名を指定します。&lt;br /&gt;
&lt;br /&gt;
{{hc|pw-savewires|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
if [[ &amp;quot;$#&amp;quot; -ne 1 ]]; then&lt;br /&gt;
	echo&lt;br /&gt;
	echo &#039;usage: pw-savewires filename&#039;&lt;br /&gt;
	echo&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
rm $1 &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
while IFS= read -r line; do&lt;br /&gt;
	link_on=`echo $line | cut -f 4 -d &#039;&amp;quot;&#039;`&lt;br /&gt;
	link_op=`echo $line | cut -f 6 -d &#039;&amp;quot;&#039;`&lt;br /&gt;
	link_in=`echo $line | cut -f 8 -d &#039;&amp;quot;&#039;`&lt;br /&gt;
	link_ip=`echo $line | cut -f 10 -d &#039;&amp;quot;&#039;`&lt;br /&gt;
	echo &amp;quot;Saving: &amp;quot; &amp;quot;&#039;&amp;quot;$link_on:$link_op&amp;quot;&#039;,&#039;&amp;quot;$link_in:$link_ip&amp;quot;&#039;&amp;quot;&lt;br /&gt;
	echo &amp;quot;&#039;&amp;quot;$link_on:$link_op&amp;quot;&#039;,&#039;&amp;quot;$link_in:$link_ip&amp;quot;&#039;&amp;quot; &amp;gt;&amp;gt; $1&lt;br /&gt;
done &amp;lt; &amp;lt;(pw-cli dump short link)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{hc|pw-loadwires|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/python&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import csv&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
if len(sys.argv) &amp;lt; 2:&lt;br /&gt;
	print(&#039;\n usage: pw-loadwires filename\n&#039;)&lt;br /&gt;
	quit()&lt;br /&gt;
&lt;br /&gt;
with open(sys.argv[1], newline=&#039;&#039;) as csvfile:&lt;br /&gt;
	pwwreader = csv.reader(csvfile, delimiter=&#039;,&#039;, quotechar=&#039;&amp;quot;&#039;)&lt;br /&gt;
	for row in pwwreader:&lt;br /&gt;
		print(&#039;Loading:  &#039; + row[0] + &#039; --&amp;gt; &#039; + row[1])&lt;br /&gt;
		process = os.popen(&#039;pw-link &#039; + row[0] + &#039; &#039; + row[1])&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{hc|pw-dewire|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
while read -r line; do&lt;br /&gt;
	echo &#039;Dewiring: &#039; $line &#039;...&#039;&lt;br /&gt;
	pw-link -d $line&lt;br /&gt;
done &amp;lt; &amp;lt;(pw-cli dump short link {{!}} grep -Eo &#039;^[0-9]+&#039;)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== ネットワーク上のコンピューターとオーディオ機器を共有する ====&lt;br /&gt;
&lt;br /&gt;
PipeWire 自体はネットワーク透過型ではありませんが、そのパルス実装は [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-PulseAudio#network-support ネットワークストリーミング] をサポートしています。ネットワーク上のコンピュータ間でオーディオを共有する簡単な方法は、[[Avahi]] デーモンを使って検出することです。&lt;br /&gt;
オーディオを共有するすべてのコンピュータで {{ic|avahi-daemon.service}} が実行されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
ローカルのオーディオデバイスを共有するために、ホスト上で適切なモジュールをロードしてください。&lt;br /&gt;
&lt;br /&gt;
 pactl load-module module-native-protocol-tcp listen=&#039;&#039;192.168.1.10&#039;&#039; # Use the local IP address&lt;br /&gt;
 pactl load-module module-zeroconf-publish&lt;br /&gt;
&lt;br /&gt;
次に、クライアントにディスカバリモジュールをロードします。&lt;br /&gt;
&lt;br /&gt;
 pactl load-module module-zeroconf-discover&lt;br /&gt;
&lt;br /&gt;
===== AirPlay レシーバーにオーディオをストリーミングする =====&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:ja:AirPlay#Receivers|AirPlay Receiver]] を装ったデバイスにオーディオをストリーミングすることが可能です。この機能を有効にするには、[https://docs.pipewire.org/page_module_raop_discover.html RAOP Discover モジュール] をロードします。 &lt;br /&gt;
&lt;br /&gt;
 $ pactl load-module module-raop-discover&lt;br /&gt;
&lt;br /&gt;
専用の設定ファイルを作成することで、このモジュールを自動的にロードすることもできます。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pipewire/pipewire.conf.d/raop-discover.conf (or ~/.config/pipewire/pipewire.conf.d/raop-discover.conf)|2=&lt;br /&gt;
context.modules = [&lt;br /&gt;
   {&lt;br /&gt;
       name = libpipewire-module-raop-discover&lt;br /&gt;
       args = { }&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
一部のスピーカーの AirPlay 実装 (Sonos AirPlay 2 スピーカーなど) では、ソースデバイスで着信 UDP トラフィック用にポート 6001 および 6002 を開く必要がある場合があります。&lt;br /&gt;
&lt;br /&gt;
==== ネイティブ JACK 上で PipeWire を実行する ====&lt;br /&gt;
&lt;br /&gt;
PipeWire はネイティブ JACK デーモン上の JACK クライアントとして実行することもできます。詳細は [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/JACK JACK and PipeWire] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== PipeWire シンクとして ALSA dmix デバイスを使用する ====&lt;br /&gt;
&lt;br /&gt;
PipeWire サーバー(またはユーザーごとに複数) を [[Advanced Linux Sound Architecture#Dmix|ALSA dmix デバイス]] を介して ALSA に出力することが可能です。これにより、ALSA を主要な音声出力システムとして使用しながら、Bluetooth ヘッドフォンなどの ALSA 以外のデバイスを使用することができるようになります。&lt;br /&gt;
&lt;br /&gt;
===== ALSA dmix セットアップ =====&lt;br /&gt;
&lt;br /&gt;
{{ic|PCH}} と {{ic|HDMI}} の 2 枚のカードがあるとします。&lt;br /&gt;
&lt;br /&gt;
{{hc|/proc/asound/cards|&lt;br /&gt;
 0 [PCH            ]: HDA-Intel - HDA Intel PCH&lt;br /&gt;
                      HDA Intel PCH at 0xdff40000 irq 146&lt;br /&gt;
 1 [HDMI           ]: HDA-Intel - HDA ATI HDMI&lt;br /&gt;
                      HDA ATI HDMI at 0xdfe60000 irq 147&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
PCM は次のようになります。&lt;br /&gt;
&lt;br /&gt;
{{hc|/proc/asound/pcm|&lt;br /&gt;
00-00: ALC1220 Analog : ALC1220 Analog : playback 1 : capture 1&lt;br /&gt;
00-02: ALC1220 Alt Analog : ALC1220 Alt Analog : capture 1&lt;br /&gt;
01-03: HDMI 0 : HDMI 0 : playback 1&lt;br /&gt;
01-07: HDMI 1 : HDMI 1 : playback 1&lt;br /&gt;
01-08: HDMI 2 : HDMI 2 : playback 1&lt;br /&gt;
01-09: HDMI 3 : HDMI 3 : playback 1&lt;br /&gt;
01-10: HDMI 4 : HDMI 4 : playback 1&lt;br /&gt;
01-11: HDMI 5 : HDMI 5 : playback 1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ALSA 設定が次のようになっているとします。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/asound.conf|&lt;br /&gt;
ctl.!default {&lt;br /&gt;
  type hw&lt;br /&gt;
  card PCH&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pcm.!default {&lt;br /&gt;
  type plug&lt;br /&gt;
  slave.pcm &amp;quot;&#039;&#039;&#039;dmix:PCH,0&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pcm.dhdmi {&lt;br /&gt;
  type plug&lt;br /&gt;
  slave.pcm &amp;quot;&#039;&#039;&#039;dmix:HDMI,9&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
この特定の例では、dmix デバイスは {{ic|dmix:PCH,0}} と {{ic|dmix:HDMI,9}} になります。&lt;br /&gt;
&lt;br /&gt;
===== PipeWire dmix セットアップ =====&lt;br /&gt;
&lt;br /&gt;
まず、{{ic|alsa_monitor.enable()}} をコメントアウトして、{{ic|wireplumber}} によるハードウェア ALSA デバイスの監視と追加を停止します。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/wireplumber/main.lua.d/90-enable-all.lua (or ~/.config/wireplumber/main.lua.d/90-enable-all.lua)|&lt;br /&gt;
...&lt;br /&gt;
-- Load devices&lt;br /&gt;
&#039;&#039;&#039;-- alsa_monitor.enable()&#039;&#039;&#039;&lt;br /&gt;
v4l2_monitor.enable()&lt;br /&gt;
libcamera_monitor.enable()&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ここで、dmix デバイスを使用するように {{ic|pipewire}} を設定します。デフォルトの設定ファイル ({{ic|/usr/share/pipewire/pipewire.conf}}) には [https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/0.3.59/src/daemon /pipewire.conf.in#L219-239 コメントアウトされた例] をベースとして使用できます。&lt;br /&gt;
&lt;br /&gt;
独自の要素を {{ic|context.objects}} 配列に追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pipewire/pipewire.conf.d/alsa-dmix.conf (or ~/.config/pipewire/pipewire.conf.d/alsa-dmix.conf)|output=&lt;br /&gt;
context.objects = [&lt;br /&gt;
    # We do not start with dmix, but with an input device.&lt;br /&gt;
    # Do not forget to add an input device.&lt;br /&gt;
    # On a friend&#039;s Laptop, I saw Zoom having a nervous&lt;br /&gt;
    # breakdown and endlessly crying because no input device&lt;br /&gt;
    # was configured! You have been warned.&lt;br /&gt;
    { factory = adapter&lt;br /&gt;
        args = {&lt;br /&gt;
            factory.name           = api.alsa.pcm.source&lt;br /&gt;
            node.name              = &amp;quot;alsa-mic-internal&amp;quot; # name of pulse device (mpv)&lt;br /&gt;
            node.description       = &amp;quot;Mic Internal&amp;quot; # name of pulse device (pavucontrol)&lt;br /&gt;
            media.class            = &amp;quot;Audio/Source&amp;quot;&lt;br /&gt;
            api.alsa.path          = &amp;quot;&#039;&#039;&#039;hw:PCH,0&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    # Okay, now we add our dmix PCMs&lt;br /&gt;
    { factory = adapter&lt;br /&gt;
        args = {&lt;br /&gt;
            factory.name           = api.alsa.pcm.sink # sink for dmix&lt;br /&gt;
            node.name              = &amp;quot;alsa-dmix-internal&amp;quot; # name of pulse device (mpv)&lt;br /&gt;
            node.description       = &amp;quot;PCM Internal&amp;quot; # name of pulse device (pavucontrol)&lt;br /&gt;
            media.class            = &amp;quot;Audio/Sink&amp;quot; # Sink for dmix&lt;br /&gt;
            api.alsa.path          = &amp;quot;&#039;&#039;&#039;dmix:PCH,0&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    { factory = adapter&lt;br /&gt;
        args = {&lt;br /&gt;
            factory.name           = api.alsa.pcm.sink # sink for dmix&lt;br /&gt;
            node.name              = &amp;quot;alsa-dmix-hdmi&amp;quot; # name of pulse device (mpv)&lt;br /&gt;
            node.description       = &amp;quot;PCM HDMI&amp;quot; # name of pulse device (pavucontrol)&lt;br /&gt;
            media.class            = &amp;quot;Audio/Sink&amp;quot; # Sink for dmix&lt;br /&gt;
            # remember this is a non-default dmix from /etc/asound.conf&lt;br /&gt;
            api.alsa.path          = &amp;quot;&#039;&#039;&#039;dmix:HDMI,9&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ユーザー (非 root) として、{{ic|wpctl status}} の出力を確認し、{{ic|wpctl set-default &#039;&#039;ID&#039;&#039;}} でデフォルトの入力(ソース) と出力 (シンク) のデバイスを好みのものに設定します。{ic|&#039;&#039;ID&#039;&#039;}} はシンク/ソース名の前の数字です。&lt;br /&gt;
&lt;br /&gt;
これで、構成を完全にテストすることができます。&lt;br /&gt;
&lt;br /&gt;
==== デバイスプロファイルの切り替え ====&lt;br /&gt;
&lt;br /&gt;
{{ic|snd_hda_intel}} などの一部のハードウェアオーディオデバイスは、デバイスが実行されているプロファイルによって機能が異なります。{{ic|snd_hda_intel}} の場合、HDMI とアナログ出力用に個別のプロファイルがあります。&lt;br /&gt;
&lt;br /&gt;
WirePlumber で HDMI に切り替える:&lt;br /&gt;
&lt;br /&gt;
{{hc|&lt;br /&gt;
$ wpctl set-profile &amp;lt;device-ID&amp;gt; 3&lt;br /&gt;
$ wpctl status&lt;br /&gt;
|output=&lt;br /&gt;
...&lt;br /&gt;
├─ Sinks:&lt;br /&gt;
│  *   53. Built-in Audio Digital Stereo (HDMI) [vol: 1.00]&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
WirePlumber でアナログに切り替える:&lt;br /&gt;
&lt;br /&gt;
{{hc|&lt;br /&gt;
$ wpctl set-profile &amp;lt;device-ID&amp;gt; 1&lt;br /&gt;
$ wpctl status&lt;br /&gt;
|output=&lt;br /&gt;
...&lt;br /&gt;
├─ Sinks:&lt;br /&gt;
│  *   51. Built-in Audio Analog Stereo        [vol: 0.60]&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== WebRTC 画面共有 ===&lt;br /&gt;
&lt;br /&gt;
ほとんどのアプリケーションは、例えばウェブブラウザで WebRTC を使うとき (例: Google Meet) などに、デスクトップ (あるいは個々のアプリケーション) をキャプチャするために X11 に依存していました。Wayland では、セキュリティ上の理由から画面共有は異なる方法で処理されます。PipeWire はきめ細かなアクセス制御を使用して、Wayland 上のコンテンツを共有できます。&lt;br /&gt;
&lt;br /&gt;
{{Tip|WebRTC 画面共有が機能しているかどうか、[https://mozilla.github.io/webrtc-landing/gum_test.html Mozilla の GetUserMedia WebRTX テストページ]でテストしましょう。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|1={{Pkg|xdg-desktop-portal}} 1.10.0 では、D-Bus インターフェースの仕様と実装の不一致が修正されました。[https://github.com/flatpak/xdg-desktop-portal/pull/609] そのため、一部のクライアントは xdg-desktop-portal 1.10.0 またはそれ以降で動作しないかもしれません。}}&lt;br /&gt;
&lt;br /&gt;
Firefox (バージョン84以降) と Chromium (バージョン110以降) はデフォルトでこの方法をサポートしていますが、Chromium の古いバージョン (バージョン73以降) では、URL {{ic|chrome://flags/#enable-webrtc-pipewire-capturer}} で対応する (実験的) フラグを設定するか、CLI 引数 {{ic|1=--enable-features=WebRTCPipeWireCapturer}} を用いて、[https://bugs.chromium.org/p/chromium/issues/detail?id=682122 WebRTC PipeWire サポート] を有効化する必要があります。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|obs-studio}} (バージョン27以降) は、新しい PipeWire キャプチャソースを使用することにより、この方法をサポートしています。&lt;br /&gt;
&lt;br /&gt;
=== 映像 ===&lt;br /&gt;
&lt;br /&gt;
ソフトウェアはまだ商業利用には適していませんが、試す分には問題ありません。[[GStreamer]] を使用して映像ストリームを処理するほとんどのアプリケーションは PipeWire GStreamer プラグインを使用して設定なしで動作するはずです ([[GStreamer#PipeWire]] を参照してください)。そのため既に {{pkg|cheese}} のようなアプリケーションは PipeWire を使用して映像入力を利用できます。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|pipewire-v4l2}} を使用すると、{{ic|pw-v4l2}} スクリプトを使用してライブラリをプリロードすることも可能になります ({{ic|/lib/pipewire-0.3/v4l2/libpw-v4l2.so}}) は、v4l2 呼び出しをインターセプトし、PipeWire 経由でビデオをルーティングします。&lt;br /&gt;
&lt;br /&gt;
== 音声のポストプロセッシング ==&lt;br /&gt;
&lt;br /&gt;
=== Pipewire モジュールフィルターチェーン ===&lt;br /&gt;
&lt;br /&gt;
Pipewire には {{ic|[https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Filter-Chain filter-chain]}} という内部モジュールがあり、音声の入出力を処理するノードを作成することができます。参照してください。&lt;br /&gt;
 /usr/share/pipewire/filter-chain/ を参照してください。&lt;br /&gt;
イコライザー、バーチャルサラウンドサウンド、LADSPA プラグイン、チャンネルミキシングなどの例を紹介します。&lt;br /&gt;
&lt;br /&gt;
==== システム全体のパラメトリックイコライゼーション ====&lt;br /&gt;
&lt;br /&gt;
設定ファイルを {{ic|.config}} フォルダにコピーします。&lt;br /&gt;
 mkdir -p ~/.config/pipewire/pipewire.conf.d&lt;br /&gt;
 cp /usr/share/pipewire/filter-chain/sink-eq6.conf ~/.config/pipewire/pipewire.conf.d/&lt;br /&gt;
次に、{{ic|sink-eq6.conf}} を編集して、必要なパラメータを組み込みます。ヘッドフォンの場合、これらは [https://old.reddit.com/r/oratory1990/wiki/index Oratory1990 のデータベース] から入手できます。そこにリストされていない場合は、[https://github.com/jaakkopasanen/AutoEq/tree/master/results/ AutoEQ project]&lt;br /&gt;
&lt;br /&gt;
プリアンプが必要な場合は、{{ic|eq_band_1}} を変更して、{{ic|bq_highshelf}} フィルタを周波数 0Hz でマイナスゲイン (-120 〜 +20dB のゲインをサポート) で適用します。&lt;br /&gt;
 label = bq_highshelf&lt;br /&gt;
 control = { &amp;quot;Freq&amp;quot; = 0 &amp;quot;Q&amp;quot; = 1.0 &amp;quot;Gain&amp;quot; = -7.5 }&lt;br /&gt;
&lt;br /&gt;
6 バンドを超える場合は、{{ic|nodes}} リストと対応する {{ic|links}} にさらにエントリを追加して、1 つのフィルタ &amp;quot;:Out&amp;quot; を次のフィルタ &amp;quot;:In&amp;quot; に接続します。たとえば、11 に増やします。バンド (プリアンプ + 10):&lt;br /&gt;
                     { output = &amp;quot;eq_band_6:Out&amp;quot; input = &amp;quot;eq_band_7:In&amp;quot; }&lt;br /&gt;
                     { output = &amp;quot;eq_band_7:Out&amp;quot; input = &amp;quot;eq_band_8:In&amp;quot; }&lt;br /&gt;
                     { output = &amp;quot;eq_band_8:Out&amp;quot; input = &amp;quot;eq_band_9:In&amp;quot; }&lt;br /&gt;
                     { output = &amp;quot;eq_band_9:Out&amp;quot; input = &amp;quot;eq_band_10:In&amp;quot; }&lt;br /&gt;
                     { output = &amp;quot;eq_band_10:Out&amp;quot; input = &amp;quot;eq_band_11:In&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
Pipewire を再起動し、デフォルトのサウンド出力デバイスとして &amp;quot;Equalizer Sink&amp;quot; を選択します。これは、すべてのアプリケーションに適用されます。&lt;br /&gt;
&lt;br /&gt;
=== EasyEffects ===&lt;br /&gt;
&lt;br /&gt;
EasyEffects (以前は PulseEffects と呼ばれていました) は多数のエフェクトとフィルタを個々の入出力ストリーム (アプリケーションの音声出力やマイクの入力など) に提供する GTK 製のユーティリティです。注目すべきエフェクトには、入出力イコライザー、出力ラウドネス等化、ベースエンハンスメント、入力ディエッサー、ノイズ抑制プラグインなどがあります。[https://github.com/wwmm/easyeffects GitHub ページ]にエフェクトの一覧があります。&lt;br /&gt;
&lt;br /&gt;
EasyEffects を使用するには、{{pkg|easyeffects}} をインストールします。プリセット設定集については、[https://github.com/wwmm/easyeffects/wiki/Community-presets コミュニティープリセット]を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|PulseEffects の古いバージョンについては [[PulseAudio#PulseEffects]] を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
=== NoiseTorch ===&lt;br /&gt;
&lt;br /&gt;
{{aur|noisetorch}} はノイズ抑制に使用できます。ビルド済み ({{aur|noisetorch-bin}}) や開発版 ({{aur|noisetorch-git}}) のパッケージもあります。&lt;br /&gt;
&lt;br /&gt;
起動すると選択したマイクにモジュールを読み込むことができます。声が出力される閾値を調整することができます。実際の声が削除されない最大のレベルに設定するべきです。&lt;br /&gt;
&lt;br /&gt;
=== Noise suppression for voice ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|noise-suppression-for-voice}} をインストールし、以下のいずれかのオプションを使用します:&lt;br /&gt;
&lt;br /&gt;
* 以下の行を {{ic|context.exec}} セクションに追加する:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pipewire/pipewire.conf (or ~/.config/pipewire/pipewire.conf)|output=&lt;br /&gt;
...&lt;br /&gt;
context.exec = [&lt;br /&gt;
    ...&lt;br /&gt;
    { path = &amp;quot;/usr/bin/pipewire&amp;quot; args = &amp;quot;-c /usr/share/pipewire/filter-chain/source-rnnoise.conf&amp;quot; }&lt;br /&gt;
    ...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* https://github.com/werman/noise-suppression-for-voice#pipewire に従う&lt;br /&gt;
&lt;br /&gt;
そして、オーディオ設定でノイズキャンセルソースをデフォルトとして設定します。この機能を使う前に、アプリケーションを再起動する必要があるかもしれません。&lt;br /&gt;
&lt;br /&gt;
=== JamesDSP ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Audio4Linux/JDSP4Linux#readme JamesDSP for Linux] ({{AUR|jamesdsp}} として入手可能) は PipeWire と PulseAudio のためのオープンソースのサウンドエフェクトを提供します。LADSPA や Calf などに依存することなく、独自のエフェクトエンジンを使用しています。JamesDSP は当初 Android デバイス用のオーディオエフェクトプロセッサーとして公開されました。&lt;br /&gt;
&lt;br /&gt;
=== LADSPA、LV2、VST プラグイン ===&lt;br /&gt;
&lt;br /&gt;
LADSPA、LV2、VSTのプラグインを使用したい場合は、カスタム PulseAudio null シンクと Carla Jack ホストを利用できます。{{pkg|pipewire-pulse}} と {{pkg|pipewire-jack}} と {{pkg|carla}} をインストールします。はじめに {{ic|default_null_sink}} という名前の PulseAudio の null シンクを作成します。&lt;br /&gt;
&lt;br /&gt;
 pactl load-module module-null-sink object.linger=1 media.class=Audio/Sink sink_name=default_null_sink channel_map=FL,FR&lt;br /&gt;
&lt;br /&gt;
{{ic|pw-jack carla-rack}} で PipeWire を使用する Carla を起動します。&#039;&#039;Rack&#039;&#039; タブで使いたいプラグインを全て追加します。プラグインのタイプが &#039;&#039;stereo&#039;&#039; であることを確認してください。適用する順番を変えることができます。EasyEffectsのようにリストの最初のプラグインが最初に入力の音声ストリームを受け取ります。その後 &#039;&#039;Patchbay&#039;&#039; タブに移動し {{ic|default_null_sink}} の L/R monitor を Carla input に接続し、Carla output を出力したいデバイス (スピーカーやイヤホンや HDMI 出力など) の playback に接続します。設定をフォルダに保存します ({{ic|~/Documents/carla_sink_effects.carxp}} など)。&lt;br /&gt;
&lt;br /&gt;
Firefox で動画を見ている時など、アプリケーションが音声を再生している時に効果を試すことができます。2つの方法があります。一つは Carla の &#039;&#039;Patchbay&#039;&#039; タブで Firefox の接続を全て外し {{ic|default_null_sink}} の L/R output に接続する方法です。もう一つは {{pkg|pavucontrol}} を使用し Firefox の音声ストリームを {{ic|default_null_sink}} に変更する方法です (この方法は同じアプリケーションの次回起動時に同じ接続先を使用するはずです)。&lt;br /&gt;
&lt;br /&gt;
これらの設定を起動時に適用するには、まず2つの systemd ユーザーサービスを作成します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/systemd/user/jack-carla-rack.service|output=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Load Carla Rack JACK host&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
PassEnvironment=&amp;quot;PIPEWIRE_LINK_PASSIVE=true&amp;quot;&lt;br /&gt;
Type=exec&lt;br /&gt;
ExecStart=/usr/bin/pw-jack carla-rack -n&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
}}&lt;br /&gt;
{{hc|~/.config/systemd/user/pulseaudio-null-sink@.service|output=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Load %i Pulseaudio null sink&lt;br /&gt;
Before=jack-carla-rack.service&lt;br /&gt;
After=pipewire-pulse.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=/usr/bin/pactl load-module module-null-sink object.linger=1 media.class=Audio/Sink sink_name=%i channel_map=FL,FR&lt;br /&gt;
ExecStop=/usr/bin/pactl unload-module module-null-sink&lt;br /&gt;
RemainAfterExit=yes&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;jack-carla-rack&#039;&#039; サービスの &#039;&#039;Environment&#039;&#039; を Carla の設定ファイルのフルパスを指定するよう上書きします:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/systemd/user/jack-carla-rack.service.d/override.conf|output=&lt;br /&gt;
Environment=&amp;quot;CARLA_CONFIG_FILE=/home/username/Documents/carla_sink_effects.carxp&amp;quot;&lt;br /&gt;
ExecStart=&lt;br /&gt;
ExecStart=/usr/bin/pw-jack carla-rack -n $CARLA_CONFIG_FILE&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
最後に、作成したサービスを有効化します。&#039;&#039;pulseaudio-null-sink&#039;&#039; サービスには {{ic|default_null_sink}} 引数をつけてください:&lt;br /&gt;
&lt;br /&gt;
 systemctl --user enable pulseaudio-null-sink@default_null_sink.service&lt;br /&gt;
 systemctl --user enable jack-carla-rack.service&lt;br /&gt;
&lt;br /&gt;
{{Note|システム設定で {{ic|default_null_sink}} をデフォルトデバイスに設定すると、全てのアプリケーションが {{ic|default_null_sink}} にリダイレクトされ、音量の変更がスピーカーではなく {{ic|default_null_sink}} に対して行われるようになります。スピーカーの音量を変更したい場合は、デフォルトデバイスをスピーカーから変更せずにアプリケーションの出力先を pavucontrol で {{ic|default_null_sink}} に変更してください (PipeWire の互換性レイヤーは次回起動時も出力先を覚えています)。}}&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== オーディオ ===&lt;br /&gt;
&lt;br /&gt;
==== PipeWire にマイクが検出されない ====&lt;br /&gt;
&lt;br /&gt;
PipeWire の {{ic|alsa-monitor}} モジュールは、デフォルトで {{Pkg|alsa-card-profiles}} を使ってデバイスを検出します。これがうまくいかない場合は、{{ic|api.alsa.use-acp}} をオフにするか、オプションで {{ic|api.alsa.use-ucm}} をオンにすることを試してみてください。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|pipewire-media-session}} を使用している場合。&lt;br /&gt;
{{hc|/etc/pipewire/media-session.d/alsa-monitor.conf (or ~/.config/pipewire/media-session.d/alsa-monitor.conf)|output=&lt;br /&gt;
...&lt;br /&gt;
rules = [&lt;br /&gt;
    {&lt;br /&gt;
        ...&lt;br /&gt;
        actions = {&lt;br /&gt;
        update-props = {&lt;br /&gt;
            ...&lt;br /&gt;
            api.alsa.use-acp = false&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
それ以外の場合は、{{Pkg|wireplumber}} を使用している場合。&lt;br /&gt;
{{hc|/etc/wireplumber/main.lua.d/50-alsa-config.lua (or ~/.config/wireplumber/main.lua.d/50-alsa-config.lua)|output=&lt;br /&gt;
...&lt;br /&gt;
alsa_monitor.rules = {&lt;br /&gt;
    {&lt;br /&gt;
        ...&lt;br /&gt;
        apply_properties = {&lt;br /&gt;
            -- Use ALSA-Card-Profile devices. They use UCM or the profile&lt;br /&gt;
            -- configuration to configure the device and mixer settings.&lt;br /&gt;
            -- [&amp;quot;api.alsa.use-acp&amp;quot;] = true,&lt;br /&gt;
 &lt;br /&gt;
            -- Use UCM instead of profile when available. Can be&lt;br /&gt;
            -- disabled to skip trying to use the UCM profile.&lt;br /&gt;
            [&amp;quot;api.alsa.use-ucm&amp;quot;] = true,&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
その後、pipewire を再起動し、利用可能なデバイスを確認します。&lt;br /&gt;
&lt;br /&gt;
{{hc| 1=&lt;br /&gt;
$ pw-record --list-targets&lt;br /&gt;
|2=&lt;br /&gt;
Available targets (&amp;quot;*&amp;quot; denotes default): 62&lt;br /&gt;
	58: description=&amp;quot;Built-in Audio&amp;quot; prio=1872&lt;br /&gt;
	60: description=&amp;quot;Built-in Audio&amp;quot; prio=2000&lt;br /&gt;
*	62: description=&amp;quot;Built-in Audio (Loopback PCM)&amp;quot; prio=1984&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== 新しいデバイスを接続したときにサウンドが自動的に切り替わらない ====&lt;br /&gt;
&lt;br /&gt;
新しく接続されたデバイスに自動的に切り替えるには、次のファイルを作成します。:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pipewire/pipewire-pulse.conf.d/switch-on-connect.conf (or ~/.config/pipewire/pipewire-pulse.conf.d/switch-on-connect.conf)|output=&lt;br /&gt;
# override for pipewire-pulse.conf file&lt;br /&gt;
pulse.cmd = [&lt;br /&gt;
    { cmd = &amp;quot;load-module&amp;quot; args = &amp;quot;module-always-sink&amp;quot; flags = [ ] }&lt;br /&gt;
    { cmd = &amp;quot;load-module&amp;quot; args = &amp;quot;module-switch-on-connect&amp;quot; }&lt;br /&gt;
]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== サウンドが自動的に Bluetooth ヘッドフォンに切り替わらない ====&lt;br /&gt;
&lt;br /&gt;
{{ic|pactl load-module module-switch-on-connect}} を実行し、ログイン時に自動的にそのコマンドが実行されるようにデスクトップ環境を設定してください。詳しくは [https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/89 wireplumber issue #89] を見てください。&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth デバイスに接続しても音が出ない ====&lt;br /&gt;
&lt;br /&gt;
2020-12-07 の時点で、Bluetooth デバイスを接続しても音が出ない場合は、デフォルトのシンクに切り替えるか、シンク入力を正しいシンクに移動する必要があります。{{ic|pactl list sinks}} で使用可能なシンクの一覧を表示し、{{ic|pactl set-default-sink}} でデフォルトのシンクを Bluetooth デバイスに切り替えます。これは[https://gist.github.com/tinywrkb/04e7fd644afa9b92d33a3a99ab07ee9e このようなスクリプト]を使って [[udev]] で自動化できます。&lt;br /&gt;
&lt;br /&gt;
この問題については、この [https://www.reddit.com/r/archlinux/comments/jydd02/pipewirepulse_03164_in_testing_now_replaces/gd3m7fu/?context=3 Reddit スレッド]を参照してください。スクリプトの作成者によると、ヘッドセットプロファイル (HSP) にまだ問題がある可能性があります。&lt;br /&gt;
&lt;br /&gt;
==== 音量が小さい ====&lt;br /&gt;
&lt;br /&gt;
PulseAudio を PipeWire で置き換えた後、正しく音が出ても、再起動後に音量が極端に小さくなることがあります。&lt;br /&gt;
&lt;br /&gt;
{{ic|alsamixer}} を開き、{{ic|F6}} を押して適切なサウンドカードを選び ALSA のボリュームが100%であることを確認してください。{{ic|alsactl}} は再起動後もこの設定を維持するはずです。&lt;br /&gt;
&lt;br /&gt;
==== increasing RLIMIT_MEMLOCK ====&lt;br /&gt;
&lt;br /&gt;
 Dec 13 11:11:11 HOST pipewire-pulse[99999]: Failed to mlock memory 0x7f4f659d8000 32832: This is not a problem but for best performance, consider increasing RLIMIT_MEMLOCK&lt;br /&gt;
&lt;br /&gt;
{{pkg|realtime-privileges}} をインストールし {{ic|realtime}} グループに自分のユーザーを追加します。&lt;br /&gt;
&lt;br /&gt;
あるいは memlock を 64kB から 128kB に増やすことで、この問題を解決できるようです。[[systemd/ユーザー]] で {{ic|pipewire-pulse}} を実行している場合は {{ic|/etc/security/limits.d/username.conf}} に次の行を追加します:&lt;br /&gt;
&lt;br /&gt;
 username	soft	memlock	64&lt;br /&gt;
 username	hard	memlock	128&lt;br /&gt;
&lt;br /&gt;
==== サンプリングレートを変更する ====&lt;br /&gt;
&lt;br /&gt;
PipeWire のデフォルトでは、グローバルサンプルレートは 48kHz に設定されています。これを変更したい場合(より高い値をサポートする DAC を所有しているなど)、設定ファイル {{ic|/etc/pipewire/pipewire.conf}} の {{ic|1=default.clock.rate = 48000}} 行を編集することで行うことができます。例えば、192kHz にしたい場合は、{{ic|48000}} を {{ic|1=default.clock.rate = 192000}} にコメントを解除して変更します。&lt;br /&gt;
&lt;br /&gt;
PipeWire は、DAC がサポートする出力サンプルレートを変更することもできます。設定するには、{{ic|1=default.clock.allowed-rates = [ 48000 ]}} という行をコメント解除して設定します。例えば、{{ic|[ 44100 48000 88200 96000 ]}} とします。サンプルレートは、カードがアイドルのときに再生されるオーディオストリームのサンプルレートに従います。&lt;br /&gt;
&lt;br /&gt;
どの出力サンプルレートとサンプルフォーマットが DAC に送られたデータであるかを確認するには(おそらく桁を変更する必要があります)。&lt;br /&gt;
 cat /proc/asound/card0/pcm0p/sub0/hw_params&lt;br /&gt;
どの入力サンプルレートを使用しているかを確認するには、{{ic|pcm0p}} を {{ic|pcm0c}} に変更します。({{ic|c}} は &amp;quot;capture&amp;quot; の略、{{ic|p}} は &amp;quot;playback&amp;quot; の略です).&lt;br /&gt;
&lt;br /&gt;
==== 許容されるサンプルレートの変更 ====&lt;br /&gt;
&lt;br /&gt;
PipeWire は、DAC がサポートする出力サンプルレートを動的に変更することもできます。サンプルレートは、再生中のオーディオストリームのサンプルレートに従います。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pipewire/pipewire.conf (or ~/.config/pipewire/pipewire.conf)|output=&lt;br /&gt;
...&lt;br /&gt;
context.properties = {&lt;br /&gt;
    ...&lt;br /&gt;
    &#039;&#039;&#039;default.clock.allowed-rates = [ &#039;&#039;sample_rate_1&#039;&#039; &#039;&#039;sample_rate_2&#039;&#039; &#039;&#039;sample_rate_3&#039;&#039; ... ]&#039;&#039;&#039;&lt;br /&gt;
    ...&lt;br /&gt;
}}&lt;br /&gt;
たとえば、{{ic|[ 44100 48000 88200 96000 ]}} です。DAC でサポートされている値については、ハードウェアのマニュアルを参照してください。&lt;br /&gt;
&lt;br /&gt;
開発者の [https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1523] によると: &amp;quot;PipeWire は最大16の異なるサンプルレートを許容し、可能な限り切り替えます。&amp;quot; つまり、上記の設定では、&#039;&#039;&#039;再サンプリングは行われない&#039;&#039;&#039;ということです。&lt;br /&gt;
&lt;br /&gt;
DAC に送信されるデータがどの出力サンプルレートとサンプルフォーマットであるかを確認するには (おそらく桁を変更する必要があります):&lt;br /&gt;
&lt;br /&gt;
 $ cat /proc/asound/card0/pcm0p/sub0/hw_params&lt;br /&gt;
&lt;br /&gt;
どの入力サンプルレートが使用されているかを確認するには、{{ic|pcm0p}} を {{ic|pcm0c}} に変更します ({{ic|c}} は &amp;quot;capture&amp;quot; の略で、{{ic|p}} は &amp;quot;playback&amp;quot; の略です)&lt;br /&gt;
&lt;br /&gt;
==== 音質 (リサンプリング品質) ====&lt;br /&gt;
&lt;br /&gt;
PulseAudio を {{ic|1=resample-method = speex-float-10}} または {{ic|soxr-vhq}} で使用していた場合、コメントを解除して {{ic|1=resample.XXX}} を変更することを検討するとよいかもしれません。{{ic|1=resample.quality = 4}} を {{ic|10}} または最大値 {{ic|15}} に変更することを検討してください。(存在しない場合は {{ic|/usr/share/pipewire/}} からコピーしてください)。PipeWire の再起動を忘れないでください (sudo なし): {{ic|systemctl --user restart pipewire.service pipewire-pulse.socket}} (設定変更を適用させたい場合は、{{ic|pipewire-pulse.socket}}を絶対に忘れないでください)。&lt;br /&gt;
&lt;br /&gt;
{{ic|10}} と {{ic|15}} では、品質の差はほとんどありませんが、CPU 負荷は 2〜3 倍になっています。また、{{ic|4}}, {{ic|10}}, {{ic|15}} のレイテンシーの差はまだ誰も調べていません。Ryzen 2600 で 44100→48000Hz で {{ic|1= resample.quality = 15}} にすると {{ic|pipewire}} や {{ic|pipewire-pulse}} プロセスが 1CPUコア4.0% の負荷となる。&lt;br /&gt;
&lt;br /&gt;
リサンプラーの比較はこちら:https://src.infinitewave.ca/(18KHz以上、120dB以上は注意)。speeex は &#039;&#039;Xiph.org Speex&#039;&#039; と記載されています。&lt;br /&gt;
&lt;br /&gt;
PipeWire は Spa と呼ばれる独自のリサンプリングアルゴリズムを使用しています。SoX の {{ic|sox}}、Speex の {{ic|speexenc}} と同様、PipeWire にはそのスタンドアロン版があります。{{ic|spa-resample}} 使い方は&lt;br /&gt;
 spa-resample -q 15 -f s24 -r 48000 input16bit44100orAnythingElse.wav output24bit48000hz.wav&lt;br /&gt;
&lt;br /&gt;
自分で sink を作れば、他のリサンプラーを使うことも可能でしょう。あるいは、音楽プレーヤーのプラグインを使うこともできます(例えば、Qmmp には SoX プラグインがあります)&lt;br /&gt;
&lt;br /&gt;
==== 外付けサウンドカードが再接続後に有効にならない ====&lt;br /&gt;
&lt;br /&gt;
{{ic|~/.config/pipewire-media-session/default-profile}} にデフォルトプロファイル &#039;&#039;off&#039;&#039; のエントリがあれば削除します。それでも解決しない場合は {{ic|~/.config/pipewire-media-session/}} からすべてのファイルを削除し、{{ic|systemctl --user restart pipewire.service}} で PipeWire を再起動します。&lt;br /&gt;
&lt;br /&gt;
==== 音が出ないまたは pactl info が Failure: Connection refused と表示する ====&lt;br /&gt;
&lt;br /&gt;
これはアプリケーションが PipeWire-Pulse サービスに接続できていないことを意味します。{{ic|/etc/pipewire/pipewire-pulse.conf}} が存在し空でないことを確認し、{{ic|systemctl --user restart pipewire-pulse.service}} で PipeWire-Pulse を再起動してください。&lt;br /&gt;
&lt;br /&gt;
それでも解決しない場合は {{ic|strace -f -o /tmp/pipe.txt pactl info}} を実行し、pastebin に {{ic|/tmp/pipe.txt}} を貼り付けて、IRC (OFTC の [ircs://irc.oftc.net/pipewire #pipewire]) かメーリングリストで相談してください。&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth の音声の品質が低い====&lt;br /&gt;
&lt;br /&gt;
Bluetooth で再生が途切れる場合は {{ic|systemctl --user status pipewire.service}} を実行してみてください。次のようなエラーが表示される場合は、&lt;br /&gt;
&lt;br /&gt;
 Feb 17 18:23:01 HOST pipewire[249297]: (bluez_input.18:54:CF:04:00:56.a2dp-sink-60) client too slow! rate:512/48000 pos:370688 status:triggered&lt;br /&gt;
&lt;br /&gt;
{{ic|pactl list sinks}} で現在選択されているコーデックを確認し、{{ic|/etc/pipewire/media-session.d/bluez-monitor.conf}} の {{ic|bluez5.codecs}} を {{ic|sbc aac ldac aptx aptx_hd}} のいずれかに変更してみてください。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pipewire/media-session.d/bluez-monitor.conf|output=&lt;br /&gt;
...&lt;br /&gt;
properties = {&lt;br /&gt;
  ...&lt;br /&gt;
  bluez5.codecs = [sbc]&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
mSBC サポートの有効化を試すには (Sony 1000XM3 のマイクの問題を修正します):&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pipewire/media-session.d/bluez-monitor.conf|output=&lt;br /&gt;
...&lt;br /&gt;
rules = [&lt;br /&gt;
  ...&lt;br /&gt;
  actions = {&lt;br /&gt;
    ...&lt;br /&gt;
    update-props = {&lt;br /&gt;
     ...&lt;br /&gt;
     bluez5.msbc-support = true&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
変更を適用するには {{ic|systemctl --user restart pipewire.service}} で PipeWire を再起動する必要があります。&lt;br /&gt;
&lt;br /&gt;
==== 再生開始時に明らかな音声の遅延やポップノイズ/音割れが発生する ====&lt;br /&gt;
&lt;br /&gt;
これは、非アクティブ時のノードの一時停止が原因です。&lt;br /&gt;
&lt;br /&gt;
{{pkg|pipiwire-media-session}} を使用: &lt;br /&gt;
&lt;br /&gt;
これを無効にするには、遅延が発生する場所に応じて {{ic|/etc/pipewire/media-session.d/*-monitor.conf}} を編集し、プロパティ {{ic|session.suspend-timeout-seconds}} を 0 に変更します。無効にするか、他の値を試して、何が機能するかを確認します。&lt;br /&gt;
&lt;br /&gt;
または、{{ic|/etc/pipewire/media-session.d/media-session.conf}} の行 {{ic|suspend-node}} をコメントアウトすることもできます。&lt;br /&gt;
&lt;br /&gt;
[[再起動]] して {{ic|pipewire.service}} と {{ic|pipewire-pulse.service}} の両方の変更を適用して下さい。&lt;br /&gt;
&lt;br /&gt;
{{pkg|wireplumber}} で、新しいファイルを作成してデフォルト設定を上書きします:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/wireplumber/main.lua.d/51-disable-suspension.lua&lt;br /&gt;
(or /etc/wireplumber/main.lua.d/51-disable-suspension.lua)|2=&lt;br /&gt;
table.insert (alsa_monitor.rules, {&lt;br /&gt;
  matches = {&lt;br /&gt;
    {&lt;br /&gt;
      -- Matches all sources.&lt;br /&gt;
      { &amp;quot;node.name&amp;quot;, &amp;quot;matches&amp;quot;, &amp;quot;alsa_input.*&amp;quot; },&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      -- Matches all sinks.&lt;br /&gt;
      { &amp;quot;node.name&amp;quot;, &amp;quot;matches&amp;quot;, &amp;quot;alsa_output.*&amp;quot; },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
  apply_properties = {&lt;br /&gt;
    [&amp;quot;session.suspend-timeout-seconds&amp;quot;] = 0,  -- 0 disables suspend&lt;br /&gt;
  },&lt;br /&gt;
})&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Bluetooth デバイスの場合は、次の設定も使用します (ファイルの場所が異なることに注意してください):&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/wireplumber/bluetooth.lua.d/51-disable-suspension.lua&lt;br /&gt;
(or /etc/wireplumber/bluetooth.lua.d/51-disable-suspension.lua)|2=&lt;br /&gt;
-- Note: bluez_monitor, not alsa_monitor&lt;br /&gt;
table.insert (bluez_monitor.rules, {&lt;br /&gt;
  matches = {&lt;br /&gt;
    {&lt;br /&gt;
      -- Matches all sources.&lt;br /&gt;
      -- Note: bluez_input, not alsa_input&lt;br /&gt;
      { &amp;quot;node.name&amp;quot;, &amp;quot;matches&amp;quot;, &amp;quot;bluez_input.*&amp;quot; },&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      -- Matches all sinks.&lt;br /&gt;
      -- Note: bluez_output, not alsa_output&lt;br /&gt;
      { &amp;quot;node.name&amp;quot;, &amp;quot;matches&amp;quot;, &amp;quot;bluez_output.*&amp;quot; },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
  apply_properties = {&lt;br /&gt;
    [&amp;quot;session.suspend-timeout-seconds&amp;quot;] = 0,  -- 0 disables suspend&lt;br /&gt;
  },&lt;br /&gt;
})&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|pipewire.service}} と {{ic|wireplumber.service}} を再起動して、変更を適用します。&lt;br /&gt;
&lt;br /&gt;
サスペンドを完全に無効にする代わりに、タイムアウト値を、ソースがサスペンドされるまでに必要な遅延秒数に変更することもできます。&lt;br /&gt;
&lt;br /&gt;
==== 複数のストリームの再生が開始されると音声が途切れる ====&lt;br /&gt;
&lt;br /&gt;
この問題は通常、{{ic|pipewire-pulse.service}} [[systemd/ユーザー|ユーザーユニット]] の [[journal]] を読み取り、次のような行を見つけることで診断できます。&lt;br /&gt;
&lt;br /&gt;
 pipewire-pulse[21740]: pulse-server 0x56009b9d5de0: [Nightly] UNDERFLOW channel:0 offset:370676 underrun:940&lt;br /&gt;
&lt;br /&gt;
[https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Troubleshooting#underrununderflow-and-broken-pipe-errors 公式 PipeWire トラブルシューティングガイド] によると、{{pkg|pipewire-media-session}} のこの問題を解決するには:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pipewire/media-session.d/alsa-monitor.conf (or ~/.config/pipewire/media-session.d/alsa-monitor.conf|2=&lt;br /&gt;
api.alsa.headroom = 1024&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{pkg|wireplumber}} を使用する場合:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/wireplumber/main.lua.d/50-alsa-config.lua (or ~/.config/wireplumber/main.lua.d/50-alsa-config.lua)|2=&lt;br /&gt;
apply_properties = {&lt;br /&gt;
    [&amp;quot;api.alsa.headroom&amp;quot;] = 1024,&lt;br /&gt;
},&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
カーネルページのロックやスケジューリングの遅延が原因で音声の途切れが発生する場合は、[[ゲーム#カーネルパラメータを調整して応答時間を安定化させる|カーネルパラメータを調整して応答時間を安定化させる]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== 音がひずむ ====&lt;br /&gt;
* マイクについては、{{ic|alsamixer}} を起動し、問題があるサウンドカードを選択し、{{ic|Mic Boost}} や {{ic|Internal Mic Boost}} の値を下げてみてください。&lt;br /&gt;
* {{ic|/etc/pipewire/pipewire.conf}} の {{ic|1=default.clock.rate = 48000}} のコメントを外して、値を {{ic|44100}} に下げてみてください。&lt;br /&gt;
&lt;br /&gt;
==== スタンバイ後に音声の問題が発生する ====&lt;br /&gt;
&lt;br /&gt;
スリープから復帰した際に音が消えたり壊れたりする場合は、ALSA を最初期化すると改善するかもしれません:&lt;br /&gt;
&lt;br /&gt;
 # alsactl init&lt;br /&gt;
&lt;br /&gt;
==== USB DAC(例:Schiit 社製 DAC)で高レイテンシー ====&lt;br /&gt;
&lt;br /&gt;
サンプルレートやフォーマットを変更することで、Schiit Hel 2 などの一部の DAC でレイテンシーを減らすことができるかもしれません [https://www.reddit.com/r/osugame/comments/msifdd/usb_dacamp_and_audio_lag/] &#039;&#039;pipewire-media-session&#039;&#039; のマッチングルールを使用すると、デバイスのプロパティを設定することができます [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-pipewire-media-session#matching-rules] &lt;br /&gt;
&#039;&#039;pipewire-media-session&#039;&#039; の {{ic|alsa-monitor.conf}}  のデフォルト設定を {{ic|/etc/pipewire/media-session.d}} か {{ic|~/.config/pipewire/media-session.d}} にコピーしてください。&lt;br /&gt;
そして、以下のような新しいルールブロックを追加してください。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pipewire/media-session.d/alsa-monitor.conf&lt;br /&gt;
~/.config/pipewire/media-session.d/alsa-monitor.conf|output=&lt;br /&gt;
rules = {&lt;br /&gt;
    ...&lt;br /&gt;
    {&lt;br /&gt;
        matches = [&lt;br /&gt;
            {&lt;br /&gt;
                node.name = &amp;quot;alsa_output.&amp;lt;name of node&amp;gt;&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
        actions = {&lt;br /&gt;
            update-props = {&lt;br /&gt;
                audio.format = &amp;quot;S24_3LE&amp;quot;&lt;br /&gt;
                audio.rate = 96000&lt;br /&gt;
                # Following value should be doubled until audio doesn&#039;t cut out or other issues stop occurring&lt;br /&gt;
                api.alsa.period-size = 128&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|alsa_output.&amp;lt;node name&amp;gt;}} ノードは {{ic|pw-top}} で取得することができます。&lt;br /&gt;
&lt;br /&gt;
DAC は異なるフォーマットやサンプルレートをサポートしているかもしれません。[[ALSA]] に問い合わせることで、あなたの  DAC が何をサポートしているかを確認することができます。&lt;br /&gt;
&lt;br /&gt;
まず、DAC のカード番号を取得します。&lt;br /&gt;
&lt;br /&gt;
{{hc|$ aplay -l|&lt;br /&gt;
...&lt;br /&gt;
card 3: S2 [Schiit Hel 2], device 0: USB Audio [USB Audio]&lt;br /&gt;
  Subdevices: 0/1&lt;br /&gt;
  Subdevice #0: subdevice #0&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
つまり、この例ではカード3ということになります。&lt;br /&gt;
サポートされているすべてのサンプルレートとフォーマットを取得します。&lt;br /&gt;
&lt;br /&gt;
{{hc|$ cat /proc/asound/cardX/streamX|&lt;br /&gt;
...&lt;br /&gt;
Playback:&lt;br /&gt;
  ...&lt;br /&gt;
  Interface 1&lt;br /&gt;
    Altset 1&lt;br /&gt;
    Format: S16_LE&lt;br /&gt;
    Channels: 2&lt;br /&gt;
    Endpoint: 0x05 (5 OUT) (ASYNC)&lt;br /&gt;
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000&lt;br /&gt;
    Data packet interval: 125 us&lt;br /&gt;
    Bits: 16&lt;br /&gt;
    ...&lt;br /&gt;
  Interface 1&lt;br /&gt;
    Altset 2&lt;br /&gt;
    Format: S24_3LE&lt;br /&gt;
    Channels: 2&lt;br /&gt;
    Endpoint: 0x05 (5 OUT) (ASYNC)&lt;br /&gt;
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000&lt;br /&gt;
    Data packet interval: 125 us&lt;br /&gt;
    Bits: 24&lt;br /&gt;
    ...&lt;br /&gt;
  Interface 1&lt;br /&gt;
    Altset 3&lt;br /&gt;
    Format: S32_LE&lt;br /&gt;
    Channels: 2&lt;br /&gt;
    Endpoint: 0x05 (5 OUT) (ASYNC)&lt;br /&gt;
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000&lt;br /&gt;
    Data packet interval: 125 us&lt;br /&gt;
    Bits: 32&lt;br /&gt;
    ...&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
この場合、{{ic|S16_LE, S24_3LE, S32_LE}} はサポートされているフォーマットで、{{ic|44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000}} はすべてのフォーマットでサポートされているサンプルレートとなります。&lt;br /&gt;
&lt;br /&gt;
==== 音量が 30% になるまで USB DAC から音が出ない ====&lt;br /&gt;
&lt;br /&gt;
USB DAC の中には、ある一定の音量に達するまで音が出なくなるものがあります [https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1117] 一般的にこれは約 25%〜30% で、最初の音量が不快なほど大きくなり、低い音量を維持することができなくなります。解決策としては、{{ic|[&amp;quot;api.alsa.soft-mixer&amp;quot;]}} を {{ic|true}} に設定して、ハードウェアミキサーの音量コントロールを無視することが挙げられます。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|wireplumber}} でこれを実現するには、{{ic|/usr/share/wireplumber/main.lua.d/50-alsa-config.lua}} 設定に次を使用して構成フラグメントを追加します。 {{ic|table.insert}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/wireplumber/main.lua.d/51-volume-fix.lua|output=&lt;br /&gt;
&lt;br /&gt;
table.insert (alsa_monitor.rules, {&lt;br /&gt;
    matches = {&lt;br /&gt;
      {&lt;br /&gt;
        -- This matches all cards.&lt;br /&gt;
        { &amp;quot;device.name&amp;quot;, &amp;quot;matches&amp;quot;, &amp;quot;alsa_card.*&amp;quot; },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    -- Apply properties on the matched object.&lt;br /&gt;
    apply_properties = {&lt;br /&gt;
      -- Don&#039;t use the hardware mixer for volume control. It&lt;br /&gt;
      -- will only use software volume. The mixer is still used&lt;br /&gt;
      -- to mute unused paths based on the selected port.&lt;br /&gt;
      [&amp;quot;api.alsa.soft-mixer&amp;quot;] = true,&lt;br /&gt;
    }&lt;br /&gt;
  })&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に、pipewire を再起動します。{{ic|alsamixer}} でマスターボリュームを設定し、{{ic|# alsactl store}} で設定を保存します。これで、ボリュームミキサーを通常どおり使用できるようになります。&lt;br /&gt;
&lt;br /&gt;
==== リアルタイムオーディオが動作しない ====&lt;br /&gt;
&lt;br /&gt;
{{ic|RTKit error: org.freedesktop.DBus.Error.AccessDenied}} が {{ic|systemctl --user status pipewire.service}} の出力に表示された場合、pipewire daemon の優先度がリアルタイムに変更されていないことを示します。この問題については、[https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1069] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== 同じサウンドカード上の複数のシンクへの同時出力 ====&lt;br /&gt;
&lt;br /&gt;
{{ic|/usr/share/alsa-card-profile/mixer/profile-sets/default.conf}} のコピーを作成し、アップデート後も変更が持続するようにします。ここでは、アナログと HDMI の2つのデフォルトマッピングを結合したプロファイルを定義しています。&lt;br /&gt;
&lt;br /&gt;
{{hc|/usr/share/alsa-card-profile/mixer/profile-sets/multiple.conf|2=&lt;br /&gt;
[General]&lt;br /&gt;
auto-profiles = no&lt;br /&gt;
&lt;br /&gt;
[Mapping analog-stereo]&lt;br /&gt;
device-strings = front:%f&lt;br /&gt;
channel-map = left,right&lt;br /&gt;
paths-output = analog-output analog-output-lineout analog-output-speaker analog-output-headphones analog-output-headphones-2&lt;br /&gt;
paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headphone-mic analog-input-headset-mic&lt;br /&gt;
priority = 15&lt;br /&gt;
&lt;br /&gt;
[Mapping hdmi-stereo]&lt;br /&gt;
description = Digital Stereo (HDMI)&lt;br /&gt;
device-strings = hdmi:%f&lt;br /&gt;
paths-output = hdmi-output-0&lt;br /&gt;
channel-map = left,right&lt;br /&gt;
priority = 9&lt;br /&gt;
direction = output&lt;br /&gt;
&lt;br /&gt;
[Profile multiple]&lt;br /&gt;
description = Analog Stereo Duplex + Digital Stereo (HDMI) Output&lt;br /&gt;
output-mappings = analog-stereo hdmi-stereo&lt;br /&gt;
input-mappings = analog-stereo&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ここで、PipeWire の media-session に、新しい card-profile を使用してデバイスをマッチングするように設定します。識別情報は、{{ic|$ pw-cli dump device}} で見つけることができます。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pipewire/media-session.d/alsa-monitor.conf|2=&lt;br /&gt;
rules = [&lt;br /&gt;
    {&lt;br /&gt;
        matches = [ { alsa.card_name = &amp;quot;HDA Intel PCH&amp;quot; } ]&lt;br /&gt;
        actions = {&lt;br /&gt;
            update-props = {&lt;br /&gt;
                api.alsa.use-acp = true&lt;br /&gt;
                device.profile-set = &amp;quot;multiple.conf&amp;quot;&lt;br /&gt;
                device.profile = &amp;quot;multiple&amp;quot;&lt;br /&gt;
                api.acp.auto-profile = false&lt;br /&gt;
                api.acp.auto-port = false&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Discord から通知音が鳴らない ====&lt;br /&gt;
&lt;br /&gt;
min.quantum が低すぎることが原因かもしれませんので、700以上に設定してみてください。pipewire-pulse.conf の pulse.rules セクションに以下のルールを追加することで、Discord 専用にオーバーライドすることが可能です。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pipewire/pipewire-pulse.conf (or ~/.config/pipewire/pipewire-pulse.conf)|output=&lt;br /&gt;
...&lt;br /&gt;
pulse.rules = [&lt;br /&gt;
  ...&lt;br /&gt;
    {&lt;br /&gt;
        # Discord notification sounds fix&lt;br /&gt;
        matches = [ { application.process.binary = &amp;quot;Discord&amp;quot; } ]&lt;br /&gt;
        actions = {&lt;br /&gt;
            update-props = {&lt;br /&gt;
                pulse.min.quantum      = 1024/48000     # 21ms&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== PipeWire で FMOD ゲームがクラッシュする ====&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Pillars_of_Eternity|Pillars of Eternity]] のような古いバージョンの [[Wikipedia:FMOD|FMOD オーディオエンジン]] を使っているゲームの中には、PulseAudio バイナリが存在しないと {{ic|pulseaudio --check}} を呼び出してクラッシュするものがあります。回避策としては、{{ic|/bin/pulseaudio}}を{{ic|/bin/true}}にシンボリックリンクすることです[https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1514]&lt;br /&gt;
&lt;br /&gt;
 # ln -s /bin/true /bin/pulseaudio&lt;br /&gt;
&lt;br /&gt;
PulseAudio を再インストールする場合は、シンボリックリンクを削除する必要があることに注意してください。&lt;br /&gt;
&lt;br /&gt;
==== 自動切り替えが機能しない ====&lt;br /&gt;
&lt;br /&gt;
自動切り替えが機能しない場合、[[WirePlumber]] の状態に問題がある可能性があります。[https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/191#note_1252549 this comment] が提案しているように、[[WirePlumber]] のローカル状態を削除し、デーモンを再起動することで改善されるかどうか確認することができます。&lt;br /&gt;
&lt;br /&gt;
 $ rm -r ~/.local/state/wireplumber/&lt;br /&gt;
&lt;br /&gt;
次に、{{ic|wireplumber.service}} [[systemd/ユーザー|ユーザーユニット]] を [[ヘルプ:読み方# systemd ユニットのコントロール|再起動]] します。&lt;br /&gt;
&lt;br /&gt;
==== リアルタイムプライオリティの欠落/サスペンド後の負荷によるクラックリング ====&lt;br /&gt;
&lt;br /&gt;
rtkit の [https://github.com/heftig/rtkit/issues/13 2011年] からのバグにより、サスペンドイベントが発生すると PipeWire のリアルタイム優先度が取り消され、元に戻らなくなります。この原因となる保護を無効にするには、{{ic|rtkit-daemon.service}} を [[編集]] してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/rtkit-daemon.service.d/override.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=&lt;br /&gt;
ExecStart=/usr/lib/rtkit-daemon --no-canary&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に、メディアセッションサービスとともに、{{ic|rtkit-daemon.service}} ユニットと {{ic|pipewire.service}} ユーザー ユニットを再起動します。&lt;br /&gt;
&lt;br /&gt;
==== RAOP デバイス (Sonos など) へのストリーミング中に音が出ない ====&lt;br /&gt;
&lt;br /&gt;
[[Avahi]] または [[systemd-resolved]] を使用して mDNS ホスト名解決を設定します。&lt;br /&gt;
&lt;br /&gt;
==== KDE Plasma でサウンドデバイスが表示されない ====&lt;br /&gt;
&lt;br /&gt;
PipeWire クライアント (デスクトップ環境を含む) は、[https://specations.freedesktop.org/basedir-spec/basedir-spec-latest.html#variables XDG_RUNTIME_DIR] [[環境変数]] に依存して PipeWire デーモンに接続する場合があります。[https://docs.pipewire.org/page_daemon.html] ログイン直後にサウンドデバイスが表示されない場合は、この変数が手動で間違ったパスに設定されている可能性があります。&lt;br /&gt;
&lt;br /&gt;
これは PipeWire を手動で再起動することで解決できますが、Chromium で画面共有できない ({{ic|pipewire context failed}} により) など、他の問題が依然として発生する可能性があります。{{ic|XDG_RUNTIME_DIR}} は {{man|8|pam_systemd}} によって自動的に設定されるため、初期化ファイルに設定されているインスタンスをすべて削除する必要があります。&lt;br /&gt;
&lt;br /&gt;
=== ビデオ ===&lt;br /&gt;
&lt;br /&gt;
==== OBS(など)がウィンドウ/スクリーンを要求しても何も表示されない ====&lt;br /&gt;
&lt;br /&gt;
{{Pkg|xdg-desktop-portal}} と {{Pkg|xdg-desktop-portal-gtk}} または {{Pkg|xdg-desktop-portal-kde}} がインストールされていることが確実なら、デーモンの実行状態を確認してください。&lt;br /&gt;
&lt;br /&gt;
OBS では、すべてがうまくいっていれば、{{ic|stdout}} にこのように表示されるはずです。&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 info: [pipewire] desktop selected, setting up screencast&lt;br /&gt;
 info: [pipewire] created stream 0x5632d7456850&lt;br /&gt;
 info: [pipewire] playing stream...&lt;br /&gt;
&lt;br /&gt;
マルチモニタ環境では、{{Pkg|slurp}} パッケージを使用すると、すべての画面をキャプチャすることができます。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home Wiki] — PipeWire Wiki on Freedesktop GitLab&lt;br /&gt;
* [https://blogs.gnome.org/uraeus/2018/01/26/an-update-on-pipewire-the-multimedia-revolution-an-update/ Pipewire Update Blog Post] — PipeWire の2018年1月時点での進捗が書かれた記事&lt;br /&gt;
* [https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ PipeWire Late Summer Update 2020] — 2020年9月からの記事&lt;/div&gt;</summary>
		<author><name>DreamChaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Waydroid&amp;diff=39095</id>
		<title>Waydroid</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Waydroid&amp;diff=39095"/>
		<updated>2024-09-28T14:45:10Z</updated>

		<summary type="html">&lt;p&gt;DreamChaser: テンプレートや用語の訂正などを含む&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:サンドボックス]]&lt;br /&gt;
[[Category:仮想化]]&lt;br /&gt;
[[Category:Android]]&lt;br /&gt;
[[en:Waydroid]]&lt;br /&gt;
&amp;lt;!-- [[zh-hans:Waydroid]] --&amp;gt;&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Anbox}}&lt;br /&gt;
{{Related|Linux Containers}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{Style|Need to improve style.}}&lt;br /&gt;
&lt;br /&gt;
[https://waydro.id Waydroid] は、通常の Linux システム上で完全な Android システムを起動するコンテナベースな手法です。&lt;br /&gt;
&lt;br /&gt;
== 前提条件 ==&lt;br /&gt;
&lt;br /&gt;
=== CPU 要件 ===&lt;br /&gt;
&lt;br /&gt;
要件は CPU アーキテクチャによって異なります。詳しくは [https://developer.android.com/ndk/guides/abis#sa テーブル]で確認することができます。&lt;br /&gt;
&lt;br /&gt;
必要な CPU 命令があるかどうかは、{{ic|cat /proc/cpuinfo}} で確認することができます。&lt;br /&gt;
&lt;br /&gt;
=== GPU 要件 ===&lt;br /&gt;
&lt;br /&gt;
Waydroid は現在 Intel GPU で最適に動作します。そのまますぐに使用できるはずです。&lt;br /&gt;
&lt;br /&gt;
すべての AMD GPU はサポートされています。もし Waydroid が動作しない場合は、新しい Waydroid イメージ(イメージはRadeon 680M で動作します)をビルドするか、以下の NVIDIA の手順を試してみてください。&lt;br /&gt;
&lt;br /&gt;
NVIDIA GPU は現在動作しませんが、2 つの回避策があります:&lt;br /&gt;
&lt;br /&gt;
# 可能であれば統合グラフィックカードに切り替えます&lt;br /&gt;
# ソフトウェア レンダリングを使用します ([[#ソフト​​ウェア レンダリング]] を参照)&lt;br /&gt;
&lt;br /&gt;
=== Wayland セッションマネージャ ===&lt;br /&gt;
&lt;br /&gt;
Waydroid は [[Wayland]] セッションマネージャーでのみ動作しますので、Wayland セッションであることを確認してください。&lt;br /&gt;
&lt;br /&gt;
X11 を使用している場合でも、多くの Wayland セッション マネージャーはネストされたセッションをサポートしていることに注意してください (そのため、X11 セッション内で実行できます)。最も単純な例は {{pkg|cage}} です。&lt;br /&gt;
&lt;br /&gt;
=== カーネル モジュール ===&lt;br /&gt;
&lt;br /&gt;
まず、binder モジュールが付属しているカーネルを実行する必要があります。これらは Arch Linux のデフォルト カーネル ({{Pkg|linux}}) の一部ではないため、これらのモジュールを同梱するカーネルをインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
また、他のカーネルを使用するために、ブートローダーを設定する必要がある場合もあります。新しいカーネルでブートローダーを起動する方法については、wiki ページを参照してください。他のカーネル (のバージョン) での起動は、Linux システムの再起動が必要になる数少ないケースの 1 つです。 Waydroid を起動する前に、これらのモジュールを使用してカーネルを起動する必要があります。&lt;br /&gt;
&lt;br /&gt;
互換性のあるカーネルを入手するには、複数の方法があります。&lt;br /&gt;
&lt;br /&gt;
==== Linux-Zen を使用する ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Pkg|linux-zen}} カーネルには、必要なモジュールが含まれています。これは、カーネルをコンパイルする必要がなく (コンパイルには時間がかかります)、定期的に更新バージョンを受け取るため、最も快適な方法と言えます。&lt;br /&gt;
&lt;br /&gt;
==== DKMS モジュール ====&lt;br /&gt;
&lt;br /&gt;
{{aur|binder_linux-dkms}} をインストールし、モジュール オプション {{ic|1=devices=binder,hwbinder,vndbinder}} を指定して [[カーネルモジュール]] {{ic|1=binder_linux}} をロードします ([https://github.com/waydroid/waydroid/issues/904#issuecomment-1869579022 バグレポート]を参照)。&lt;br /&gt;
&lt;br /&gt;
{{bc|1=&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
$ sudo modprobe binder-linux device=binder,hwbinder,vndbinder&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
カーネル 5.18 以降での問題を回避するには、[[カーネルパラメータ]] {{ic|1=ibt=off}} を使用する必要もあります。 [https://bbs.archlinux.org/viewtopic.php?id=293566 {{ic|1=/dev/binderfs}} マウント時のセグメンテーション違反] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== カーネルをビルドする ====&lt;br /&gt;
&lt;br /&gt;
あるいは、必要なオプションを指定して {{Pkg|linux}} カーネル、または他のカーネル パッケージ (&amp;gt;=5.7) を再コンパイルすることもできます。 [[カーネル#コンパイル]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
最小限のカーネルをビルドするときは、次の要件に留意してください。&lt;br /&gt;
* IPv6 のサポート。カーネルに IPv6 ネットワークが組み込まれていない場合、Waydroid では IPv4 接続が行われません。&lt;br /&gt;
* Netlink ソケット ({{ic|1=CONFIG_NF_CT_NETLINK=y}})。&lt;br /&gt;
* PSI ({{ic|1=CONFIG_PSI=y}})。&lt;br /&gt;
* ループブロック・デバイス ({{ic|1=CONFIG_BLK_DEV_LOOP=m}}) - Waydroid を起動する前に、{{ic|loop}} モジュールをロードする必要があります。&lt;br /&gt;
&lt;br /&gt;
コンパイル オプションを設定する場合、以下の 2 つのオプションを使用できます。&lt;br /&gt;
&#039;&#039;binder&#039;&#039; と &#039;&#039;binderfs&#039;&#039; です。両方の手順を以下に示します。&lt;br /&gt;
&lt;br /&gt;
===== binder を使用する =====&lt;br /&gt;
&lt;br /&gt;
このモジュールは、カーネルにコンパイルすることも ({{ic|y}})、モジュールにコンパイルすることも ({{ic|m}})、まったくコンパイルしないこともできます ({{ic|n}})。また、構成内のすべての組み合わせが可能であるわけではなく、一部のオプションには他のオプションが必要になります。&lt;br /&gt;
&lt;br /&gt;
以下の構成オプションは、binder をモジュールとしてコンパイルしますが、最後のオプションは、binder モジュールがロードされるときに、{{ic|/dev/}} ディレクトリに 3 つのデバイスが作成されることを指定します。&lt;br /&gt;
&lt;br /&gt;
{{bc|1=&lt;br /&gt;
CONFIG_ANDROID=y&lt;br /&gt;
CONFIG_ANDROID_BINDER_IPC=m&lt;br /&gt;
CONFIG_ANDROID_BINDERFS=n&lt;br /&gt;
CONFIG_ANDROID_BINDER_DEVICES=&amp;quot;binder,hwbinder,vndbinder&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
AUR からカーネルをビルドする場合、次の手順で構成を更新できます。&lt;br /&gt;
&lt;br /&gt;
# {{ic|makepkg --nobuild}} を実行します。これにより、ダウンロードされたソースが検証および展開され、{{ic|prepare()}} 関数が実行されます。&lt;br /&gt;
# カーネル ディレクトリの下部にある {{ic|.config}} ファイル (ファイル名にドットを含む) を編集します。&lt;br /&gt;
# {{ic|prepare()}} 関数の最後にあるのは、おそらくコンフィグ ({{ic|make olddefconfig}}かもしれません) からの情報を使用して makefile を再生成するコマンドです。それを {{ic|build()}} 関数に移動するか、自分で実行します。&lt;br /&gt;
# {{ic|makepkg --noextract}} を実行します。これは、{{ic|makepkg --nobuild}} が中断された場所から再開します。&lt;br /&gt;
&lt;br /&gt;
===== bindingfs を使用する =====&lt;br /&gt;
&lt;br /&gt;
binder カーネル モジュールは、複数のユーザーに問題を引き起こすことが知られています。これらの問題に対処するために、binderfs が作成されました。カーネルをコンパイルするときに、古い方法と新しい方法のどちらかを選択する必要があります。以下のオプションでは、代わりに bindingfs を使用します。&lt;br /&gt;
&lt;br /&gt;
カーネル ソースには、構成オプションを設定するための簡単なスクリプトも付属しています。コンフィグを手動で編集する場合と同様に、依存関係のチェックは行われません。 {{ic|.config}} ファイルと同じディレクトリにある場合は、次のコマンドを実行できます：&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
$ scripts/config --enable  CONFIG_ANDROID&lt;br /&gt;
$ scripts/config --enable  CONFIG_ANDROID_BINDER_IPC&lt;br /&gt;
$ scripts/config --enable  CONFIG_ANDROID_BINDERFS&lt;br /&gt;
$ scripts/config --set-str CONFIG_ANDROID_BINDER_DEVICES &amp;quot;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
AUR からカーネルをビルドする場合、これらの行を [[PKGBUILD]] の適切な場所 (通常は {{ic|prepare()}}) に挿入するだけで十分です。&lt;br /&gt;
&lt;br /&gt;
==== binder デバイスのセットアップ ====&lt;br /&gt;
&lt;br /&gt;
Waydroid パッケージの最新バージョンがあることを確認してください。これは Waydroid が自動的に処理します。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{AUR|waydroid}} を [[インストール]] します。&lt;br /&gt;
&lt;br /&gt;
必要に応じて、{{AUR|waydroid-image}} または {{AUR|waydroid-image-gapps}} をインストールして、AUR を通じて必要な Android イメージを入手します。ただし、Waydroid 自体にイメージのダウンロードを処理させることをお勧めします。&lt;br /&gt;
&lt;br /&gt;
Waydroid を初期化した後、最新の Android イメージがまだ利用できない場合は自動的にダウンロードされます。&lt;br /&gt;
&lt;br /&gt;
 # waydroid init&lt;br /&gt;
&lt;br /&gt;
GAppsを利用して初期化するには：&lt;br /&gt;
&lt;br /&gt;
 # waydroid init -s GAPPS -f&lt;br /&gt;
&lt;br /&gt;
次に、{{ic|waydroid-container.service}}を[[起動/有効化]]します。&lt;br /&gt;
&lt;br /&gt;
これで Waydroid が動作するはずです。&lt;br /&gt;
&lt;br /&gt;
== 使い方 ==&lt;br /&gt;
&lt;br /&gt;
{{ic|waydroid-container.service}} が [[起動]] していることを確認してから、次を実行します：&lt;br /&gt;
&lt;br /&gt;
 $ waydroid session start&lt;br /&gt;
&lt;br /&gt;
Waydroid セッションがアクティブになりました。対話コマンドの例を次に示します：&lt;br /&gt;
&lt;br /&gt;
GUI を起動します：&lt;br /&gt;
&lt;br /&gt;
 $ waydroid show-full-ui&lt;br /&gt;
&lt;br /&gt;
シェルを起動します：&lt;br /&gt;
&lt;br /&gt;
 # waydroid shell&lt;br /&gt;
&lt;br /&gt;
アプリケーションをインストールします：&lt;br /&gt;
&lt;br /&gt;
 $ waydroid app install $path_to_apk&lt;br /&gt;
&lt;br /&gt;
アプリケーション一覧を取得します：&lt;br /&gt;
&lt;br /&gt;
 $ waydroid app list&lt;br /&gt;
&lt;br /&gt;
アプリケーションを実行します：&lt;br /&gt;
&lt;br /&gt;
 $ waydroid app launch $package_name&lt;br /&gt;
&lt;br /&gt;
== ネットワーク ==&lt;br /&gt;
&lt;br /&gt;
ネットワークはそのまま動作するはずですが、そうでない場合は、[[インターネット共有#パケット転送を有効にする|パケット転送]] がカーネルで有効になっていることを確認し、&#039;&#039;Waydroid session start&#039;&#039; の実行 &amp;quot;前&amp;quot; にファイアウォールで次のルールを許可する必要があるかもしれません。&lt;br /&gt;
&lt;br /&gt;
{{pkg|ufw}} を例として挙げます。&lt;br /&gt;
&lt;br /&gt;
* DNS トラフィックを許可する必要があります:&lt;br /&gt;
** {{bc|# ufw allow 67}}&lt;br /&gt;
** {{bc|# ufw allow 53}}&lt;br /&gt;
* パケット転送を許可する必要があります:&lt;br /&gt;
** {{bc|# ufw default allow FORWARD}}&lt;br /&gt;
&lt;br /&gt;
{{pkg|firewalld}} の場合は、次のコマンドを使用できます。&lt;br /&gt;
&lt;br /&gt;
* DNS:&lt;br /&gt;
** {{bc|1=# firewall-cmd --zone=trusted --add-port=67/udp}}&lt;br /&gt;
** {{bc|1=# firewall-cmd --zone=trusted --add-port=53/udp}}&lt;br /&gt;
* パケット転送:&lt;br /&gt;
** {{bc|1=# firewall-cmd --zone=trusted --add-forward}}&lt;br /&gt;
* waydroid インターフェイスを信頼するプログラムに追加します:&lt;br /&gt;
** {{bc|1=# firewall-cmd --zone=trusted --add-interface=waydroid0}}&lt;br /&gt;
&lt;br /&gt;
{{Note|waydroid によって作成されたインターフェース {{ic|waydroid0}} は自動的に firewalld ゾーン {{ic|trusted}} に置かれることを想定しています。そうでない場合は、上記のコマンドを調整するか、インターフェース {{ic|waydroid0}} を {{ic|trusted}} に移動してください。再起動後も変更を維持するには、{{bc|# firewall-cmd --runtime-to-permanent}} も必要になる場合があります。}}&lt;br /&gt;
&lt;br /&gt;
== ヒントとテクニック ==&lt;br /&gt;
&lt;br /&gt;
=== ソフトウェアレンダリング ===&lt;br /&gt;
&lt;br /&gt;
以下をすでに実行していることを確認してください：&lt;br /&gt;
&lt;br /&gt;
 # waydroid init&lt;br /&gt;
&lt;br /&gt;
(詳細については、[[#インストール]] セクションを参照してください)&lt;br /&gt;
&lt;br /&gt;
次に、以下を追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|/var/lib/waydroid/waydroid_base.prop|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ro.hardware.gralloc=default&lt;br /&gt;
ro.hardware.egl=swiftshader&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
最後に、{{ic|waydroid-container.service}} を [[再起動]] します。&lt;br /&gt;
&lt;br /&gt;
=== 表示領域の寸法設定 ===&lt;br /&gt;
&lt;br /&gt;
waydroid ウィンドウのサイズを設定するには、次のコマンドを使用して好みに合わせてサイズに調整します。&lt;br /&gt;
&lt;br /&gt;
 $ waydroid prop set persist.waydroid.width 576&lt;br /&gt;
 $ waydroid prop set persist.waydroid.height 1024&lt;br /&gt;
&lt;br /&gt;
次に、{{ic|waydroid-container.service}} を [[再起動]] します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
問題が発生した場合は、公式の Issue Tracker を参照してください: [https://github.com/waydroid/waydroid/issues Waydroid issue tracker]。&lt;br /&gt;
&lt;br /&gt;
=== 一般的なヒント ===&lt;br /&gt;
&lt;br /&gt;
Waydroid は開発が速いため、問題が発生した場合に、最初に行うべき手順のリストを次に示します。&lt;br /&gt;
&lt;br /&gt;
# Waydroid パッケージが最新であることを確認してください。&lt;br /&gt;
# 以下を実行して、最新の Waydroid イメージがあることを確認してください。 {{bc|# waydroid upgrade}} &lt;br /&gt;
# Waydroid をリセットします。 {{ic|waydroid-container.service}} を [[停止]] し、{{bc|# waydroid init -f}} を実行して、サービスを再度 [[起動]] します。 &lt;br /&gt;
# ちょっとしたクリーンアップを行うこともできます。 {{bc|# rm -rf /var/lib/waydroid /home/.waydroid}} {{bc|$ rm -rf ~/waydroid ~/.share/waydroid ~/.local/share/applications/*aydroid* ~/.local/share/waydroid}}を実行します。&lt;br /&gt;
::{{Tip| [https://github.com/waydroid/waydroid/commit/eef036b3f814a9fc4869ebfe6c9d2bd51fa19f26 2021-9-xx] 以降にインストールした場合は、{{ic|/home/.waydroid/}} を削除する必要はありません。}}&lt;br /&gt;
&lt;br /&gt;
=== ARM アプリと互換性がない === &lt;br /&gt;
&lt;br /&gt;
Casualsnek の [https://github.com/casualsnek/waydroid_script スクリプト] を使用して、変換レイヤーをインストールします。&lt;br /&gt;
&lt;br /&gt;
変換レイヤーの最適化のため、AMD CPU では libndk を使用し、Intel CPU では libhoudini を使用することをお勧めします。ただし、アプリによっては、ある変換レイヤーでは機能し、別の翻訳レイヤーでは機能しないものもあります。したがって、ゲームが動作しない場合やパフォーマンスが低下する場合は、両方を試す必要がある場合があります。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;libndk arm translation をインストール&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 # python3 main.py install libndk &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;libhoudini arm translation をインストール&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 # python3 main.py install libhoudini&lt;br /&gt;
&lt;br /&gt;
=== 画面回転するとアプリが使えなくなる ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/waydroid/waydroid/issues/70 Issue 70] を参照してください。&lt;br /&gt;
&lt;br /&gt;
「F11」をクリックして、現在のアプリをウィンドウ モードに切り替えます。&lt;br /&gt;
&lt;br /&gt;
=== クリップボードマネージャーサービスの起動に失敗する ===&lt;br /&gt;
&lt;br /&gt;
{{aur|python-pyclip}} とその依存関係をグラフィカル セッションにインストールします (X11 の場合は {{pkg|xclip}}、Wayland の場合は {{pkg|wl-clipboard}})。&lt;br /&gt;
&lt;br /&gt;
=== 物理キーボードが動作しない場合がある ===&lt;br /&gt;
&lt;br /&gt;
左の {{ic|Alt}} キーを押してください。&lt;br /&gt;
&lt;br /&gt;
=== dnsmasq: failed to open pidfile /run/waydroid-lxc/dnsmasq.pid: Permission denied ===&lt;br /&gt;
&lt;br /&gt;
AppArmor ルールが設定されていない可能性があります。次のルールを追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/apparmor.d/usr.sbin.dnsmasq|&lt;br /&gt;
@{run}/waydroid-lxc/r,&lt;br /&gt;
@{run}/waydroid-lxc/* rw,&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Waydroid シェル内のコマンド出力にアクセスできない、または見つからない ===&lt;br /&gt;
&lt;br /&gt;
Arch ベースのディストリビューションには、[[Linux コンテナ#基本的な使用方法| lxc-attach の動作中に表示される恐れのあるバグ]] があり、これにより、{{ic|adbd}} または {{ic|settings}} のような {{ic|waydroid shell}} 内のコマンドでこの問題が発生する可能性があります。 &lt;br /&gt;
&lt;br /&gt;
この問題を回避するには、{{ic|waydroid shell}} コマンドを次のように置き換えることが考えられます。 &lt;br /&gt;
 # lxc-attach -P /var/lib/waydroid/lxc/ -n waydroid --clear-env&lt;br /&gt;
&lt;br /&gt;
=== WARNING: Service manager /dev/binder has died ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/waydroid/waydroid/issues/136 Isuue 136] を参照してください。&lt;br /&gt;
&lt;br /&gt;
[https://docs.kernel.org/accounting/psi.html PSI] を有効にする必要があります。&lt;br /&gt;
&lt;br /&gt;
{{ic|1=psi=1}} を [[カーネルパラメータ|カーネルコマンドライン]] に追加します。&lt;br /&gt;
&lt;br /&gt;
Liquorix カーネル([https://github.com/damentz/liquorix-package/commit/2dd0b878dbd27bdc5e796a7bd7384676df9e6764 Waydroid では動作しません])は、PSI と互換性のない特定のスケジューラーを使用するため、注意してください。&lt;br /&gt;
&lt;br /&gt;
=== multi-GPU systemを使用すると表示がおかしくなる ===&lt;br /&gt;
&lt;br /&gt;
現在、Waydroid はホスト コンポジターが実行されているのと同じ GPU 上で実行する必要があります。これを修正する 2 つの方法は、{{ic|/var/lib/waydroid/lxc/waydroid/config_nodes}} を編集して正しい GPU になるようにするか、コンポジターが実行される GPU を変更するかのいずれかです。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/waydroid/waydroid Waydroid GitHub repo]&lt;br /&gt;
* [https://docs.waydro.id/ Waydroid documentation]&lt;br /&gt;
* [https://matrix.to/#/#waydroid:connolly.tech Waydroid Matrix group]&lt;br /&gt;
* [https://t.me/WayDroid Waydroid Telegram group]&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|Waydroid|2024-09-28|816118}}&lt;/div&gt;</summary>
		<author><name>DreamChaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Waydroid&amp;diff=39094</id>
		<title>Waydroid</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Waydroid&amp;diff=39094"/>
		<updated>2024-09-28T13:06:09Z</updated>

		<summary type="html">&lt;p&gt;DreamChaser: 最新版への翻訳・加筆&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:サンドボックス]]&lt;br /&gt;
[[Category:仮想化]]&lt;br /&gt;
[[Category:Android]]&lt;br /&gt;
[[en:Waydroid]]&lt;br /&gt;
&amp;lt;!-- [[zh-hans:Waydroid]] --&amp;gt;&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Anbox}}&lt;br /&gt;
{{Related|Linux Containers}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{Style|Need to improve style.}}&lt;br /&gt;
&lt;br /&gt;
[https://waydro.id Waydroid] は、通常の Linux システム上で完全な Android システムを起動するコンテナベースな手法です。&lt;br /&gt;
&lt;br /&gt;
== 前提条件 ==&lt;br /&gt;
&lt;br /&gt;
=== CPU 要件 ===&lt;br /&gt;
&lt;br /&gt;
要件は CPU アーキテクチャによって異なります。詳しくは [https://developer.android.com/ndk/guides/abis#sa テーブル]で確認することができます。&lt;br /&gt;
&lt;br /&gt;
必要な CPU 命令があるかどうかは、{{ic|cat /proc/cpuinfo}} で確認することができます。&lt;br /&gt;
&lt;br /&gt;
=== GPU 要件 ===&lt;br /&gt;
&lt;br /&gt;
Waydroid は現在 Intel GPU で最適に動作します。そのまますぐに使用できるはずです。&lt;br /&gt;
&lt;br /&gt;
すべての AMD GPU はサポートされています。もし Waydroid が動作しない場合は、新しい Waydroid イメージ(イメージはRadeon 680M で動作します)をビルドするか、以下の NVIDIA の手順を試してみてください。&lt;br /&gt;
&lt;br /&gt;
NVIDIA GPU は現在動作しませんが、2 つの回避策があります:&lt;br /&gt;
&lt;br /&gt;
# 可能であれば統合グラフィックカードに切り替えます&lt;br /&gt;
# ソフトウェア レンダリングを使用します ([[#ソフト​​ウェア レンダリング]] を参照)&lt;br /&gt;
&lt;br /&gt;
=== Wayland セッションマネージャ ===&lt;br /&gt;
&lt;br /&gt;
Waydroid は [[Wayland]] セッションマネージャーでのみ動作しますので、Wayland セッションであることを確認してください。&lt;br /&gt;
&lt;br /&gt;
X11 を使用している場合でも、多くの Wayland セッション マネージャーはネストされたセッションをサポートしていることに注意してください (そのため、X11 セッション内で実行できます)。最も単純な例は {{pkg|cage}} です。&lt;br /&gt;
&lt;br /&gt;
=== カーネル モジュール ===&lt;br /&gt;
&lt;br /&gt;
まず、binder モジュールが付属しているカーネルを実行する必要があります。これらは Arch Linux のデフォルト カーネル ({{Pkg|linux}}) の一部ではないため、これらのモジュールを同梱するカーネルをインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
また、他のカーネルを使用するために、ブートローダーを設定する必要がある場合もあります。新しいカーネルでブートローダーを起動する方法については、wiki ページを参照してください。他のカーネル (のバージョン) での起動は、Linux システムの再起動が必要になる数少ないケースの 1 つです。 Waydroid を起動する前に、これらのモジュールを使用してカーネルを起動する必要があります。&lt;br /&gt;
&lt;br /&gt;
互換性のあるカーネルを入手するには、複数の方法があります。&lt;br /&gt;
&lt;br /&gt;
==== Linux-Zen を使用する ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Pkg|linux-zen}} カーネルには、必要なモジュールが含まれています。これは、カーネルをコンパイルする必要がなく (コンパイルには時間がかかります)、定期的に更新バージョンを受け取るため、最も快適な方法と言えます。&lt;br /&gt;
&lt;br /&gt;
==== DKMS モジュール ====&lt;br /&gt;
&lt;br /&gt;
{{aur|binder_linux-dkms}} をインストールし、モジュール オプション {{ic|devices{{=}}binder,hwbinder,vndbinder}} を指定して [[カーネル モジュール]] {{ic|binder_linux}} をロードします ([https://github.com/waydroid/waydroid/issues/904#issuecomment-1869579022 バグレポート]を参照)。&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
$ sudo modprobe binder-linux device{{=}}binder,hwbinder,vndbinder&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
カーネル 5.18 以降での問題を回避するには、[[カーネル パラメータ]] {{ic|ibt{{=}}off}} を使用する必要もあります。 [https://bbs.archlinux.org/viewtopic.php?id=293566 {{ic|/dev/binderfs}} マウント時のセグメンテーション違反] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== カーネルをビルドする ====&lt;br /&gt;
&lt;br /&gt;
あるいは、必要なオプションを指定して {{Pkg|linux}} カーネル、または他のカーネル パッケージ (&amp;gt;=5.7) を再コンパイルすることもできます。 [[カーネル#コンパイル]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
最小限のカーネルをビルドするときは、次の要件に留意してください。&lt;br /&gt;
* IPv6 のサポート。カーネルに IPv6 ネットワークが組み込まれていない場合、Waydroid では IPv4 接続が行われません。&lt;br /&gt;
* Netlink ソケット ({{ic|CONFIG_NF_CT_NETLINK{{=}}y}})。&lt;br /&gt;
* PSI ({{ic|CONFIG_PSI{{=}}y}})。&lt;br /&gt;
* ループブロック・デバイス ({{ic|CONFIG_BLK_DEV_LOOP{{=}}m}}) - Waydroid を起動する前に、{{ic|loop}} モジュールをロードする必要があります。&lt;br /&gt;
&lt;br /&gt;
コンパイル オプションを設定する場合、2 つのオプションを使用できます。&lt;br /&gt;
 &#039;&#039;binder&#039;&#039; と &#039;&#039;binderfs&#039;&#039; です。両方の手順を以下に示します。&lt;br /&gt;
&lt;br /&gt;
===== binder を使用する =====&lt;br /&gt;
&lt;br /&gt;
このモジュールは、カーネルにコンパイルすることも ({{ic|y}})、モジュールにコンパイルすることも ({{ic|m}})、まったくコンパイルしないこともできます ({{ic|n}})。また、構成内のすべての組み合わせが可能であるわけではなく、一部のオプションには他のオプションが必要になります。&lt;br /&gt;
&lt;br /&gt;
以下の構成オプションは、binder をモジュールとしてコンパイルしますが、最後のオプションは、binder モジュールがロードされるときに、{{ic|/dev/}} ディレクトリに 3 つのデバイスが作成されることを指定します。&lt;br /&gt;
&lt;br /&gt;
{{bc|1=&lt;br /&gt;
CONFIG_ANDROID=y&lt;br /&gt;
CONFIG_ANDROID_BINDER_IPC=m&lt;br /&gt;
CONFIG_ANDROID_BINDERFS=n&lt;br /&gt;
CONFIG_ANDROID_BINDER_DEVICES=&amp;quot;binder,hwbinder,vndbinder&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
AUR からカーネルをビルドする場合、次の手順で構成を更新できます。&lt;br /&gt;
&lt;br /&gt;
# {{ic|makepkg --nobuild}} を実行します。これにより、ダウンロードされたソースが検証および展開され、{{ic|prepare()}} 関数が実行されます。&lt;br /&gt;
# カーネル ディレクトリの下部にある {{ic|.config}} ファイル (ファイル名にドットを含む) を編集します。&lt;br /&gt;
# {{ic|prepare()}} 関数の最後にあるのは、おそらくコンフィグ ({{ic|make olddefconfig}}かもしれません) からの情報を使用して makefile を再生成するコマンドです。それを {{ic|build()}} 関数に移動するか、自分で実行します。&lt;br /&gt;
# {{ic|makepkg --noextract}} を実行します。これは、{{ic|makepkg --nobuild}} が中断された場所から再開します。&lt;br /&gt;
&lt;br /&gt;
===== bindingfs を使用する =====&lt;br /&gt;
&lt;br /&gt;
binder カーネル モジュールは、複数のユーザーに問題を引き起こすことが知られています。これらの問題に対処するために、binderfs が作成されました。カーネルをコンパイルするときに、古い方法と新しい方法のどちらかを選択する必要があります。以下のオプションでは、代わりに bindingfs を使用します。&lt;br /&gt;
&lt;br /&gt;
カーネル ソースには、構成オプションを設定するための簡単なスクリプトも付属しています。コンフィグを手動で編集する場合と同様に、依存関係のチェックは行われません。 {{ic|.config}} ファイルと同じディレクトリにある場合は、次のコマンドを実行できます：&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
$ scripts/config --enable  CONFIG_ANDROID&lt;br /&gt;
$ scripts/config --enable  CONFIG_ANDROID_BINDER_IPC&lt;br /&gt;
$ scripts/config --enable  CONFIG_ANDROID_BINDERFS&lt;br /&gt;
$ scripts/config --set-str CONFIG_ANDROID_BINDER_DEVICES &amp;quot;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
AUR からカーネルをビルドする場合、これらの行を [[PKGBUILD]] の適切な場所 (通常は {{ic|prepare()}}) に挿入するだけで十分です。&lt;br /&gt;
&lt;br /&gt;
==== binder デバイスのセットアップ ====&lt;br /&gt;
&lt;br /&gt;
Waydroid パッケージの最新バージョンがあることを確認してください。これは Waydroid が自動的に処理します。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{AUR|waydroid}} を [[インストール]] します。&lt;br /&gt;
&lt;br /&gt;
必要に応じて、{{AUR|waydroid-image}} または {{AUR|waydroid-image-gapps}} をインストールして、AUR を通じて必要な Android イメージを入手します。ただし、Waydroid 自体にイメージのダウンロードを処理させることをお勧めします。&lt;br /&gt;
&lt;br /&gt;
Waydroid を初期化した後、最新の Android イメージがまだ利用できない場合は自動的にダウンロードされます。&lt;br /&gt;
&lt;br /&gt;
 # waydroid init&lt;br /&gt;
&lt;br /&gt;
GAppsを利用して初期化するには：&lt;br /&gt;
&lt;br /&gt;
 # waydroid init -s GAPPS -f&lt;br /&gt;
&lt;br /&gt;
次に、{{waydroid-container.service}}を[[起動/有効化]]します。&lt;br /&gt;
&lt;br /&gt;
これで Waydroid が動作するはずです。&lt;br /&gt;
&lt;br /&gt;
== 使い方 ==&lt;br /&gt;
&lt;br /&gt;
{{ic|waydroid-container.service}} が [[start]] されていることを確認してから、次を実行します：&lt;br /&gt;
&lt;br /&gt;
 $ waydroid session start&lt;br /&gt;
&lt;br /&gt;
Waydroid セッションがアクティブになりました。対話コマンドの例を次に示します：&lt;br /&gt;
&lt;br /&gt;
GUI を起動します：&lt;br /&gt;
&lt;br /&gt;
 $ waydroid show-full-ui&lt;br /&gt;
&lt;br /&gt;
シェルを起動します：&lt;br /&gt;
&lt;br /&gt;
 # waydroid shell&lt;br /&gt;
&lt;br /&gt;
アプリケーションをインストールします：&lt;br /&gt;
&lt;br /&gt;
 $ waydroid app install $path_to_apk&lt;br /&gt;
&lt;br /&gt;
アプリケーション一覧を取得します：&lt;br /&gt;
&lt;br /&gt;
 $ waydroid app list&lt;br /&gt;
&lt;br /&gt;
アプリケーションを実行します：&lt;br /&gt;
&lt;br /&gt;
 $ waydroid app launch $package_name&lt;br /&gt;
&lt;br /&gt;
== ネットワーク ==&lt;br /&gt;
&lt;br /&gt;
ネットワークはそのまま動作するはずですが、そうでない場合は、[[インターネット共有#パケット転送を有効にする|パケット転送]] がカーネルで有効になっていることを確認し、&#039;&#039;Waydroid session start&#039;&#039; の実行 &amp;quot;前&amp;quot; にファイアウォールで次のルールを許可する必要があるかもしれません。&lt;br /&gt;
&lt;br /&gt;
{{pkg|ufw}} を例として挙げます。&lt;br /&gt;
&lt;br /&gt;
* DNS トラフィックを許可する必要があります:&lt;br /&gt;
** {{bc|# ufw allow 67}}&lt;br /&gt;
** {{bc|# ufw allow 53}}&lt;br /&gt;
* パケット転送を許可する必要があります:&lt;br /&gt;
** {{bc|# ufw default allow FORWARD}}&lt;br /&gt;
&lt;br /&gt;
{{pkg|firewalld}} の場合は、次のコマンドを使用できます。&lt;br /&gt;
&lt;br /&gt;
* DNS:&lt;br /&gt;
** {{bc|1=# firewall-cmd --zone=trusted --add-port=67/udp}}&lt;br /&gt;
** {{bc|1=# firewall-cmd --zone=trusted --add-port=53/udp}}&lt;br /&gt;
* パケット転送:&lt;br /&gt;
** {{bc|1=# firewall-cmd --zone=trusted --add-forward}}&lt;br /&gt;
* waydroid インターフェイスを信頼するプログラムに追加します:&lt;br /&gt;
** {{bc|1=# firewall-cmd --zone=trusted --add-interface=waydroid0}}&lt;br /&gt;
&lt;br /&gt;
{{注|waydroid によって作成されたインターフェース {{ic|waydroid0}} は自動的に firewalld ゾーン {{ic|trusted}} に置かれることを想定しています。そうでない場合は、上記のコマンドを調整するか、インターフェース {{ic|waydroid0}} を {{ic|trusted}} に移動してください。再起動後も変更を維持するには、{{bc|# firewall-cmd --runtime-to-permanent}} も必要になる場合があります。}}&lt;br /&gt;
&lt;br /&gt;
== ヒントとコツ ==&lt;br /&gt;
&lt;br /&gt;
=== ソフトウェアレンダリング ===&lt;br /&gt;
&lt;br /&gt;
以下をすでに実行していることを確認してください：&lt;br /&gt;
&lt;br /&gt;
 # waydroid init&lt;br /&gt;
&lt;br /&gt;
(詳細については、[[#インストール]] セクションを参照してください)&lt;br /&gt;
&lt;br /&gt;
次に、以下を追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|/var/lib/waydroid/waydroid_base.prop|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ro.hardware.gralloc=default&lt;br /&gt;
ro.hardware.egl=swiftshader&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
最後に、{{ic|waydroid-container.service}} を [[再起動]] します。&lt;br /&gt;
&lt;br /&gt;
=== 表示領域の寸法設定 ===&lt;br /&gt;
&lt;br /&gt;
waydroid ウィンドウのサイズを設定するには、次のコマンドを使用して好みに合わせてサイズに調整します。&lt;br /&gt;
&lt;br /&gt;
 $ waydroid prop set persist.waydroid.width 576&lt;br /&gt;
 $ waydroid prop set persist.waydroid.height 1024&lt;br /&gt;
&lt;br /&gt;
次に、{{ic|waydroid-container.service}} を [[再起動]] します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
問題が発生した場合は、公式の Issue Tracker を参照してください: [https://github.com/waydroid/waydroid/issues Waydroid issue tracker]。&lt;br /&gt;
&lt;br /&gt;
=== 一般的なヒント ===&lt;br /&gt;
&lt;br /&gt;
Waydroid は開発が速いため、問題が発生した場合に、最初に行うべき手順のリストを次に示します。&lt;br /&gt;
&lt;br /&gt;
# Waydroid パッケージが最新であることを確認してください。&lt;br /&gt;
# {{bc|# waydroid upgrade}} を実行して、最新の Waydroid イメージがあることを確認してください&lt;br /&gt;
# Waydroid をリセットします: {{ic|waydroid-container.service}} を [[stop]] し、{{bc|# waydroid init -f}} を実行して、サービスを再度 [[start]] します。 &lt;br /&gt;
# ちょっとしたクリーンアップを行うこともできます。 {{bc|# rm -rf /var/lib/waydroid /home/.waydroid}} {{bc|$ rm -rf ~/waydroid ~/.share/waydroid ~/.local/share/applications/*aydroid* ~/.local/share/waydroid}}を実行します。&lt;br /&gt;
::{{ヒント| [https://github.com/waydroid/waydroid/commit/eef036b3f814a9fc4869ebfe6c9d2bd51fa19f26 2021-09] 以降にインストールした場合は、{{ic|/home/.waydroid/}} を削除する必要はありません。}}&lt;br /&gt;
&lt;br /&gt;
=== ARM アプリと互換性がない === &lt;br /&gt;
&lt;br /&gt;
Casualsnek の [https://github.com/casualsnek/waydroid_script スクリプト] を使用して、変換レイヤーをインストールします。&lt;br /&gt;
&lt;br /&gt;
変換レイヤーの最適化のため、AMD CPU では libndk を使用し、Intel CPU では libhoudini を使用することをお勧めします。ただし、アプリによっては、ある変換レイヤーでは機能し、別の翻訳レイヤーでは機能しないものもあります。したがって、ゲームが動作しない場合やパフォーマンスが低下する場合は、両方を試す必要がある場合があります。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;libndk arm translation をインストール&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 # python3 main.py install libndk &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;libhoudini arm translation をインストール&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 # python3 main.py install libhoudini&lt;br /&gt;
&lt;br /&gt;
=== 画面回転するとアプリが使えなくなる ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/waydroid/waydroid/issues/70 Issue 70] を参照してください。&lt;br /&gt;
&lt;br /&gt;
「F11」をクリックして、現在のアプリをウィンドウ モードに切り替えます。&lt;br /&gt;
&lt;br /&gt;
=== クリップボード マネージャー サービスの起動に失敗します ===&lt;br /&gt;
&lt;br /&gt;
{{aur|python-pyclip}} とその依存関係をグラフィカル セッションにインストールします (X11 の場合は {{pkg|xclip}}、Wayland の場合は {{pkg|wl-clipboard}})。&lt;br /&gt;
&lt;br /&gt;
=== 物理キーボードが動作しない場合がある ===&lt;br /&gt;
&lt;br /&gt;
左の {{ic|Alt}} キーを押してください。&lt;br /&gt;
&lt;br /&gt;
=== dnsmasq: failed to open pidfile /run/waydroid-lxc/dnsmasq.pid: Permission denied（アクセス許可が拒否されました） ===&lt;br /&gt;
&lt;br /&gt;
AppArmor ルールが設定されていない可能性があります。次のルールを追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/apparmor.d/usr.sbin.dnsmasq|&lt;br /&gt;
@{run}/waydroid-lxc/r,&lt;br /&gt;
@{run}/waydroid-lxc/* rw,&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Waydroid シェル内のコマンド出力にアクセスできない、または見つからない ===&lt;br /&gt;
&lt;br /&gt;
Arch ベースのディストリビューションには、[[Linuxコンテナ#基本的な使用法| lxc-attach の動作中に表示される恐れのある「バグ」]] があり、これにより、{{ic|adbd}} または {{ic|settings}} のような {{ic|waydroid shell}} 内のコマンドでこの問題が発生する可能性があります。 &lt;br /&gt;
&lt;br /&gt;
この問題を回避するには、{{ic|waydroid shell}} コマンドを次のように置き換えることが考えられます。 &lt;br /&gt;
 # lxc-attach -P /var/lib/waydroid/lxc/ -n waydroid --clear-env&lt;br /&gt;
&lt;br /&gt;
=== WARNING: Service manager /dev/binder has died（dev/binderが停止しました） ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/waydroid/waydroid/issues/136 Isuue 136] を参照してください。&lt;br /&gt;
&lt;br /&gt;
[https://docs.kernel.org/accounting/psi.html PSI] を有効にする必要があります。&lt;br /&gt;
&lt;br /&gt;
{{ic|1=psi=1}} を [[カーネル コマンド ライン]] に追加します。&lt;br /&gt;
&lt;br /&gt;
Liquorix カーネル [https://github.com/damentz/liquorix-package/commit/2dd0b878dbd27bdc5e796a7bd7384676df9e6764 は Waydroid では動作しません] は、PSI と互換性のない特定のスケジューラーを使用するため、注意してください。&lt;br /&gt;
&lt;br /&gt;
=== multi-GPU systemを使用すると表示がおかしくなる ===&lt;br /&gt;
&lt;br /&gt;
現在、Waydroid はホスト コンポジターが実行されているのと同じ GPU 上で実行する必要があります。これを修正する 2 つの方法は、{{ic|/var/lib/waydroid/lxc/waydroid/config_nodes}} を編集して正しい GPU になるようにするか、コンポジターが実行される GPU を変更するかのいずれかです。&lt;br /&gt;
&lt;br /&gt;
== こちらも参照してください ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/waydroid/waydroid Waydroid GitHub repo]&lt;br /&gt;
* [https://docs.waydro.id/ Waydroid documentation]&lt;br /&gt;
* [https://matrix.to/#/#waydroid:connolly.tech Waydroid Matrix group]&lt;br /&gt;
* [https://t.me/WayDroid Waydroid Telegram group]&lt;/div&gt;</summary>
		<author><name>DreamChaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:DreamChaser&amp;diff=39093</id>
		<title>利用者:DreamChaser</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:DreamChaser&amp;diff=39093"/>
		<updated>2024-09-28T04:45:48Z</updated>

		<summary type="html">&lt;p&gt;DreamChaser: ページの作成:「技術者ではないので専門用語には疎いです。 半年くらい放置されている未翻訳記事があったら翻訳しようかなと思っています。」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;技術者ではないので専門用語には疎いです。&lt;br /&gt;
半年くらい放置されている未翻訳記事があったら翻訳しようかなと思っています。&lt;/div&gt;</summary>
		<author><name>DreamChaser</name></author>
	</entry>
</feed>