RPI OS Bookworm – Win/Macからラズパイにリモート接続、xrdpでどこからでも使える便利なlinuxデスクトップを手に入れよう

リモートデスクトップにこだわる私の事情

私はラズパイを、居間のテレビの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他が正常に表示されない

xrdpのセッションでchromiumを起動するが、正常に表示されない。設定を修正すれば正常に表示することが可能だ。
xrdpのセッションで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を起動すれば、正常に表示されるはずです。

xrdpで正常表示されたchromium。設定ファイルを書き換えて、異常表示されていた問題が解決した。
xrdpで正常表示されたchromium。設定ファイルを一行書き換えるだけで、問題は修正された。

トラブルシューティング2: キーボードレイアウトが日本語にならない

こちらを参考に、日本語キーボードの設定を行ってみてください。

トラブルシューティング3: スクロールが速すぎる

特にマウスパッドに対するスクロール速度が敏感すぎて困るという話があり、その場しのぎではありますがHACKが提供されました。

Vertical scroll speed too fast (xrdpMouse) · Issue #150 · neutrinolabs/xorgxrdp
I'm using xrdp with Hyper-V to run Ubuntu 18.04 in a VM and the vertical scroll speed of the mouse is too fast. I couldn...

xorgxrdpのv0.9.19のNew featuresとして正式に取り入れられています。

Release xorgxrdp v0.9.19 · neutrinolabs/xorgxrdp
General announcements You might be surprised that xorgxrdp version is suddenly jumped from v0.2.18 to v0.9.19. We decide...

有効なのは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にログインできなくなった

3/16現在、ラズパイ本部によるバグの修正が行われて、sudo権限を持つユーザーに関してはxrdpが再び利用できるようになったものと思われます。ただしsudo権限を持たないユーザーは依然としてログインできない状況が続いていると思いますので、そのような場合は下記の対策を試す、あるいはpolkitのruleを書き換えるなどしてください。

昨日(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のようなファイル転送サービスをお探しの方は、一度お試しください。

xrdpによるリモートデスクトップ環境で起動したSoqAlbum。アプリに表示されたQRコードをスマホ(iPhone/Android)でスキャンするだけで、直接転送によるファイル交換や、スマホのカメラ・マイクなどからのメディアファイルのラズパイへの直接転送が可能になる
xrdpによるリモートデスクトップ環境で起動したSoqAlbum。アプリに表示されたQRコードをスマホ(iPhone/Android)でスキャンするだけで、直接転送によるファイル交換や、スマホのカメラ・マイクなどからのメディアファイルのラズパイへの直接転送が可能になる。QRコードさえ見えれば、リモート先が地球の裏側にあっても、スマホから地球の裏側まで直接ファイルを転送できる。

ブラウザに表示されるQRコードをスキャンするだけで、iPhoneやandroidとファイル交換や、カメラ・マイクからのメディアファイルの直接転送ができます。QRコードさえ見えればよいので、デスクトップ画面を共有しているリモートデスクトップでの作業に最適なツールだったりします。リモート先が地球の裏側の場合でも、まさにデスクトップが目の前にあるかのように、スマホからファイルを直接リモート先へ送受信できます。

次のページにラズパイでアクセスして、「このブラウザで始める」をクリックするだけでスタートできます。

Get Started With SoqAlbum
SoqAlbum instantly links your smartphone and your PC with a simple QR code operation, allowing direct file exchange betw...

コメント

タイトルとURLをコピーしました