Arch LinuxのGnomeデスクトップ環境をリモート操作するため、XRDPをセットアップした際につまづいたポイントのメモ書きです。
ArchWikiのXrdpのトラブルシューティングでは解決できなかった内容が中心です。
前提
XRDPを動かすPCには事前に必要なパッケージはインストールしてあるものとします。
筆者の場合は以下のパッケージをインストールしました。
- xrdp (必須)
- xorgxrdp-glamor (グラフィックチップ依存)
- pulseaudio-module-xrdp (サウンドサーバ依存)
詳しくはArchWikiのXrdpの記事を参照してください。
またRDPクライアントにはRemminaを使います。
つまづいたポイント
RDP接続してログインした後にすぐ切断される (2024年6月17日 追記)
この部分の挙動はArch LinuxでAURからxrdpをインストールした場合の挙動です。
AURからのインストール時、オリジナルのxrdpにArch Linux環境向けのパッチが当てられるため、他のディストリビューションではこの情報は参考にならない可能性があります。
Arch LinuxではXRDPからデスクトップ環境を起動するためにxinitが必要です。
xinitがインストールされていて、なおかつ設定が適切か確認してみてください。
Arch LinuxにXRDP経由でログインした場合、デスクトップ環境はxinitによって起動されます。
GDMなどのディスプレイマネージャ経由のログインとはプロセスが異なります。
xinitを使ったGnomeデスクトップ環境の起動方法はArchWikiのGnomeの記事を参照してください。
もう少し詳しい話
XRDPがデスクトップ環境のセッションを起動する処理は、xrdpパッケージに含まれる /etc/xrdp/startwm.sh
に記述されています。
Arch Linuxではここにパッチを当てて、xinitで起動するよう処理を改変しているようです。
# arch user
if [ -r ~/.xinitrc ]; then
pre_start
. ~/.xinitrc
post_start
exit 0
fi
# arch
if [ -r /etc/X11/xinit/xinitrc ]; then
pre_start
. /etc/X11/xinit/xinitrc
post_start
exit 0
fi
真偽不明のネタ
XRDPとは別の手段でログインしてデスクトップセッションを起動している場合もログインできない、という情報をどこかで見たのですが未検証です。
自動サスペンドを無効化していてもPCが自動サスペンドする
XRDPが動作しているPCでディスプレイマネージャ、具体的にはGDMが動作していないか確認してみてください。
GDMはそれ単体で自動サスペンド機能を持ちます。
またGnomeデスクトップ環境におけるユーザごとの自動サスペンド設定とは独立した設定を持ちます。
GDMの自動サスペンドを無効化するか、 gdm.service
自体を停止させてみてください。
キーボード配列がおかしい
RDPクライアントのキーボード配列の設定が適切か確認してみてください。
Remminaだと、設定→RDP→キーボードレイアウトから設定変更できます。
xsetkbdで無理やり修正することも出来ますが、ログインするたびに実行が必要なので少々面倒です。
音声が鳴らない
RDPクライアントで音声を有効化しているか確認してみてください。
XRDPが動いているPCとクライアントの両方を適切に設定する必要があります。
Remminaはデフォルトの設定では音声がオフになっています。
音声を有効化するには、接続プロファイル→高度な設定→オーディオ再生をローカルに設定する必要があります。