リモートデスクトップにこだわる私の事情
私はラズパイを、居間のテレビのhdmi端子につなげて使っているのですが、これだと誰かがテレビをみている間は、ラズパイが使えなくなってしまうんですね。 そして、そういう時には、ラズパイを他の部屋からリモートデスクトップ接続して使っています。そもそも居間のテレビの前は色々うるさいことが多くて、どの部屋からでも繋げられるリモート環境は本当に便利です。実際私の場合、ラズパイ使ってる時間の半分以上はリモートからだと思います。
そういうわけでリモートデスクトップは私にとって「マスト」なので、bookwormでも当然設定しなければならないのです。
Xrdpによるリモートデスクトップ
Xrdpをインストールすると、次のようなことができます。
- PC(win, mac, linux)からラズパイのデスクトップに、Microsoft Remote Desktop(win, mac向け)やremmina (linux向け)等を使ってアクセス。
- ログインするデスクトップはopenbox(X11環境、つまりwaylandではない)
Microsoft Remote Desktopが使えるのが強みで、MSがサポートしていますから、macからでもapp storeからアプリを手に入れて、すぐにアクセスすることができます。リモート接続可能なのはラズパイとPCが同じwifi環境に接続している場合です。ラズパイとは異なるwifi環境にpcが接続している場合(会社から自宅のラズパイにアクセスなど)でも、やりかたはある(ssh+ポートフォワーディング、vpn等)のですが、今回はそれについては触れません。
BookwormになってRPI 4,5ではwayfireによるデスクトップが利用可能になりましたが、今回設定するのはラズパイで以前から使われてきたopenboxというデスクトップ環境になります。Wayfireでもvncを使ったリモートデスクトップが利用可能なようですが、今回は扱いません(理由は私がrdpの方を好んで使うからというだけで、vncとrdpのどちらが良いかを比較したわけではありません)
設定は簡単
ラズパイ側の設定は簡単です。ターミナルで
sudo apt update
sudo apt install xrdp
これだけです(リブートは必要ないと思うのですが、うまくいかない場合はリブートしてみてください。)
PCから接続するにはラズパイのipアドレスが必要です。ターミナルで
/sbin/ifconfig
を実行、wlan0: の inet 192.168.xxx.xxx の部分をメモ
後はwin, macのMicrosoft Remote Desktopから上のipアドレスにアクセスしてください。linuxの場合でもremmina等で同じことができます。
トラブルシューティング1: ログインはできるが、chromium他が正常に表示されない
私がインストールした環境(RPI 4B)では、chromiumの表示に異常が発生しました。このような場合は、ターミナルを開いて、/etc/X11/xrdp/xorg.confを編集してください。
cd /etc/X11/xrdp
sudo cp -p xorg.conf xorg.conf.orig # バックアップ(すでにxorg.conf.origがあれば不要)
sudo nano xorg.conf
で、DRMDeviceの部分を以下のように書き換え。
# Option "DRMDevice" "/dev/dri/renderD128"
Option "DRMDevice" ""
sudo reboot
最後にリブートしてください。もう一度接続してchromiumを起動すれば、正常に表示されるはずです。
トラブルシューティング2: キーボードレイアウトが日本語にならない
こちらを参考に、日本語キーボードの設定を行ってみてください。
トラブルシューティング3: スクロールが速すぎる
特にマウスパッドに対するスクロール速度が敏感すぎて困るという話があり、その場しのぎではありますがHACKが提供されました。
xorgxrdpのv0.9.19のNew featuresとして正式に取り入れられています。
有効なのはxorgxrdpのv0.9.19以降です(RPI OS, bookwormのxorgxdrpは0.9.19-1なので有効なはず)
また、これは暫定的なHACKという位置づけで、将来的にはタッチパッド用のドライバを新しく作って根本的な改善が図られ、HACKも無効になる予定のようです。
使い方は
cd /etc/xrdp
sudo cp -p sesman.ini sesman.ini.bk # バックアップを取る
sudo nano sesman.ini
で、SessionVariablesの最後に以下を追加
[SessionVariables]
...
XRDP_XORG_TOUCHPAD_SCROLL_HACK=yes
sudo reboot
私も有効にしてみましたが、効いてるかな、これ? タッチパッドの触り具合の問題もあるので、比較が難しいかも。
トラブルシューティング4: 「システムリポジトリの更新には認証が必要です」の表示が邪魔
Bookwormのxrdpでログインした時に「システムリポジトリの更新には認証が必要です」と毎回表示される場合があります。これは上部パネル(lxpanel)を右クリックして「パネルのアイテムの追加・削除」で「Updater」をパネルから削除すると表示されなくなります。
システムのアップデートについては、週に1度ほどターミナルで次のコマンドを実行してください。
sudo apt update; sudo apt dist-upgrade
トラブルシューティングの追記: 2024年3月のアップデートからxrdpにログインできなくなった
昨日(2024年3月半ば)、RPI OS Bookwormの大量アップデートが降ってきました。カーネルも6.6に上がるなどなかなか大規模なものでしたが、その影響でxrdpでのログインができなくなってしまったようです。取り急ぎ対処法を追記しておきます。
原因は/usr/bin/startlxde-piの最後のあたりの行に、exec systemd-inhibit … が新たに書き加えられたことにあるようです。systemd-inhibit … はラズパイ実機からの通常のログインでは問題なく機能しますが、xrdpから呼ばれた場合、権限不足でエラーになります。
/usr/bin/startlxde-piを直接書き換えるのは避けたいので、以下のようにしました。
cd /usr/bin
sudo cp -p startlxde-pi startlxde-pi-workaround
sudo nano startlxde-pi-workaround
# startlxde-pi-workaroundの最後のあたりの
# systemd-inhibit --what=handle-power-key を削除して、
# exec /usr/bin/lxsession -s LXDE-pi -e LXDE
# のようにします。
cd /etc/alternatives
sudo rm x-session-manager
sudo ln -s /usr/bin/startlxde-pi-workaround x-session-manager
/etc/alternativesについてはupdate-alternativesコマンドなどを参照してください。debian的にしっかり設定したい方はupdate-alternatives --install … などを行ってください。今回は間に合わせの回避策なので、手動のln -sで適当にごまかしています(笑)
systemd-inhibitを削除したことにより、xrdp以外の通常のログインでもsystemd-inhibit … は使われなくなります。通常のログインではsystemd-inhibit … が必要だという方は
if [ -n "$XRDP_SESSION" ]; then
exec /usr/bin/lxsession -s LXDE-pi -e LXDE
else
exec systemd-inhibit --what=handle-power-key /usr/bin/lxsession -s LXDE-pi -e LXDE
fi
等のようなif文に書き換えればうまくいくのではないかと思います。
まとめ
今回はxrdpでwin, mac, linux他からラズパイのopenboxデスクトップにリモートアクセスする方法を解説しました。
RPI OS Bookwormのリリースノートに、wayfireのデスクトップにvncでアクセスできることが書いてあります。今度調べてみようかと思っていますが、あの画面全体がグニャグニャ動くwayfireは帯域を相当食いそうなイメージがあります。ちょっと心配です。
実はリモート作業の最強ツール? ラズパイにも完全対応した無料のファイル転送サービスSoqAlbum
本サイトではSoqAlbumというファイル転送サービスを開発しています。これは、だれでもどこでも1分で、準備なしアカウントなしインストールなしで送れるファイル転送サービスで、ラズパイの新OS bookwormでもブラウザ一本ですぐに利用できます。ラズパイでnearby shareやairdropのようなファイル転送サービスをお探しの方は、一度お試しください。
ブラウザに表示されるQRコードをスキャンするだけで、iPhoneやandroidとファイル交換や、カメラ・マイクからのメディアファイルの直接転送ができます。QRコードさえ見えればよいので、デスクトップ画面を共有しているリモートデスクトップでの作業に最適なツールだったりします。リモート先が地球の裏側の場合でも、まさにデスクトップが目の前にあるかのように、スマホからファイルを直接リモート先へ送受信できます。
次のページにラズパイでアクセスして、「このブラウザで始める」をクリックするだけでスタートできます。
コメント