Ubuntu 24.04.3 LTSのxrdpはバグがあり、セッション管理が不安定らしいのでバージョンを上げて解決する。
事象
Windowsのリモートデスクトップから接続すると、xrdpのログイン後に画面が真っ暗になっており、毎回pkill gnome-session
を余儀なくされ面倒だった。
~/.xsession-errors
を開くと、無限にこのログが出ていた。
(tracker-extract-3:5784): GLib-GIO-WARNING **: 08:39:48.131: Error creating IO channel for /proc/self/mountinfo: 無効な引数です (g-io-error-quark, 13)
Xlib: extension "DPMS" missing on display ":10.0".
Xlib: extension "DPMS" missing on display ":10.0".
Xlib: extension "DPMS" missing on display ":10.0".
Xlib: extension "DPMS" missing on display ":10.0".
Xlib: extension "DPMS" missing on display ":10.0".
確認環境
GNOMEはxrdp的にあまりよろしくないらしいので、ついでにxfceに変えてしまった方がいい可能性がある。変える場合はUbuntu 24.04.3 LTSをGNOMEからXfceに移行するを参考にする。
Env | Ver |
---|---|
ディストリ | Ubuntu 24.04.3 LTS |
デスクトップ環境 | xfce 4.18 |
更新前 | xrdp 0.9.24-4 |
更新後 | xrdp 0.10.4.1 + lightdm 1.30.0 |
やり方
公式マニュアルに忠実にやっていく。
xrdpの依存環境のインストール
sudo apt purge xrdp
wget https://raw.githubusercontent.com/neutrinolabs/xrdp/refs/tags/v0.10.4.1/scripts/install_xrdp_build_dependencies_with_apt.sh
chmod +x install_xrdp_build_dependencies_with_apt.sh
sudo ./install_xrdp_build_dependencies_with_apt.sh max
xrdpのビルドとインストール
wget https://github.com/neutrinolabs/xrdp/releases/download/v0.10.4.1/xrdp-0.10.4.1.tar.gz
tar xvzf xrdp-0.10.4.1.tar.gz
mv xrdp-0.10.4.1 xrdp
cd xrdp
https://raw.githubusercontent.com/neutrinolabs/xrdp/refs/tags/v0.10.3/scripts/install_xrdp_build_dependencies_with_apt.sh
./bootstrap
./configure --with-systemdsystemunitdir=/usr/lib/systemd/system \
--enable-ibus --enable-ipv6 --enable-jpeg --enable-fuse --enable-mp3lame \
--enable-fdkaac --enable-opus --enable-rfxcodec --enable-painter \
--enable-pixman --enable-utmp -with-imlib2 --with-freetype2 \
--enable-tests --enable-x264 --enable-openh264 --enable-vsock
make
sudo make install
sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin
sudo adduser --system --group --no-create-home --disabled-password --disabled-login --home /run/xrdp xrdp
実行環境の整備
/etc/xrdp/xrdp.ini
を開き以下の行のコメントを外すruntime_user=xrdp runtime_group=xrdp
/etc/xrdp/sesman.ini
を開き以下の行のコメントを外すSessionSockdirGroup=xrdp
証明書を作成する
sudo chmod 640 /etc/xrdp/rsakeys.ini sudo chown root:xrdp /etc/xrdp/rsakeys.ini sudo make-ssl-cert generate-default-snakeoil sudo ln -sf /etc/ssl/certs/ssl-cert-snakeoil.pem /etc/xrdp/cert.pem sudo ln -sf /etc/ssl/private/ssl-cert-snakeoil.key /etc/xrdp/key.pem sudo usermod -a -G ssl-cert xrdp
- 以下を叩いて全部OKなのを確認
sudo /usr/local/share/xrdp/xrdp-chkpriv
- サービスの有効化
sudo systemctl enable --now xrdp xrdp-sesman
xorgxrdpのビルドとインストール
XをRDP用に差し替えるxrdpのバックエンドシステムらしい?
- ビルドとインストール
# scripts/install_xorgxrdp_build_dependencies_with_apt.shがないのでビルド時にエラーになった分を入れている sudo apt install xserver-xorg-dev libgbm-dev libepoxy-dev ./bootstrap ./configure --enable-glamor make sudo make install
/etc/xrdp/sesman.ini
を開き以下のように書き換える;param=Xorg param=/usr/lib/xorg/Xorg
ゴミ掃除と最後の設定
rm -Rf xorgxrdp xrdp xorgxrdp-0.10.4.tar.gz install_xrdp_build_dependencies_with_apt.sh xrdp-0.10.4.1.tar.gz
# GNOMEなどxfceでない場合は適宜書き換える
echo "startxfce4" > ~/.xsessionrc
トラブルシューティング
Authentication is required to create a color managed deviceというダイアログが何度も出る
Ubuntu 24からpolkitのバージョンが上がっているようで、従来の手段が通じなくなっている。
/etc/polkit-1/localauthority/50-local.d
にcolorが付いたファイルがあれば中身を確認し、関係ありそうな場合削除する- この設定ファイルは古く使われていないはずだが念のため消す
/etc/polkit-1/localauthority.conf.d/02-allow-colord.conf
がなければ作成し、以下の内容を記述polkit.addRule(function(action, subject) { if (action.id.startsWith('org.freedesktop.color-manager')) { return polkit.Result.YES; } });
sudo service polkit restart
でpolkitを再起動する
この作業をしても起動直後だけは出るので、キャンセル連打で無視すると良い。二回目以降は出なくなるはずだ。
あとがき
アップデートするとxrdpのロゴが洗練されたスタイルに変わった。今までは結構古臭かったように思う。
GNOMEは重いのでXfceに変更する。
XfceはDebianに昔あった懐かしいUIで劇的に軽くなった。
環境
Ubuntu 24.04.3 LTS
やり方
XfceのインストールとGNOMEの削除
sudo apt install xubuntu-desktop
sudo apt remove ubuntu-gnome-desktop gnome-shell
sudo apt purge ubuntu-gnome-desktop gnome-shell
sudo apt autoremove
xrdpのXfce化
echo "startxfce4" > ~/.xsessionrc
トラブルシューティング
日本語入力が出来ない
右上のタスクバーにある「JA」をクリックして「mozc」に変更すると「全角/半角」キーが使えるようになり、日本語入力が可能になる。
タスクバーを上から下に移動する
タスクバーを右クリック→パネル→パネルの設定で固定解除するとハンドルが出るのでドラッグしてもっかい固定するといい。
デフォだとパネル2がドックとしてあるが、邪魔なので消す。
行の並び替えや行の内容を一意にするときに使える。
コマンドラインオプション
-r
- リバース
-u
- 一意
sort
:ソートする
入力
cat <<EOF | sort
zzz
aaa
bbb
aaa
aaa
ccc
bbb
1
2
3
01
02
03
a1
a2
a3
EOF
出力
01
02
03
1
2
3
a1
a2
a3
aaa
aaa
aaa
bbb
bbb
ccc
zzz
sort -r
:逆ソート
入力
cat <<EOF | sort -r
zzz
aaa
bbb
aaa
aaa
ccc
bbb
1
2
3
01
02
03
a1
a2
a3
EOF
出力
zzz
ccc
bbb
bbb
aaa
aaa
aaa
a3
a2
a1
3
2
1
03
02
01
sort -u
:一意
入力
cat <<EOF | sort -u
aaa
bbb
aaa
aaa
ccc
bbb
EOF
出力
aaa
bbb
ccc
Windowsに入っている古くて使いづらいPowerShellをアップグレードするところから始める。
- Powershell 7.xを入れる
- PowerShellを管理者権限で起動
Set-ExecutionPolicy RemoteSigned
を流す- hoge.ps1などの名前で適当にファイルを作り、
C:\Program Files\PowerShell\7\pwsh.exe
に関連付けする