ラズベリーパイの RUSTDESK をヘッドレスで使う
ちょっとYAMAHA ルーターの実験をするのに、LAN の向こう側約として Raspberry PI を使っていました。
それはどうでもいいのですが、RUSTDESK をインストールし vnc をアンインストールすると、RUSTDESK で接続できなくなってしまいました。
RUSTDESK に限らず、Linux で動くリモートデスクトップ系のアプリにはよくあるのですが自分が起動したときにデスクトップ環境のディスプレイが存在しないと接続に失敗してそのまま終わるという現象ですね。
VNC の場合も基本同じ設定でいけますがラズパイの場合、インストーラと raspi-config がよしなにしてくるのでこの設定は必要ない。
参考の von的部落格 でも Wayland から X11 に変更してが、たまたまそうなっていたのでそこはスルーする。
lightdm は使っていないのでここもスルー。
dummy ビデオドライバ?をインストールする。
$ sudo apt install xserver-xorg-video-dummy
; ダミーの xorg.conf を作成する
$ sudo /etc/X11/xorg.conf.d/xorg.conf
ファイルの中身は以下のようにした。von的部落格 のサイトではもっと多くの解像度が定義されていたがうちにはそんな大きなモニタはないので外している。
Section "ServerFlags"
Option "DontVTSwitch" "true"
Option "AllowMouseOpenFail" "true"
Option "PciForceNone" "true"
Option "AutoEnableDevices" "false"
Option "AutoAddDevices" "false"
Option "IgnoreABI" "true"
EndSection
Section "InputDevice"
Identifier "virtual_mouse"
Option "CorePointer" "true"
Driver "void"
EndSection
Section "InputDevice"
Identifier "virtual_keyboard"
Option "CoreKeyboard" "true"
Driver "void"
EndSection
Section "Device"
Identifier "virtual_videocard"
Driver "dummy"
VideoRam 192000
EndSection
Section "Monitor"
Identifier "virtual_monitor"
HorizSync 5.0 - 2000.0
VertRefresh 5.0 - 200.0
Modeline "1920x1440" 69.47 1920 1960 2152 2384 1440 1441 1444 1457
Modeline "1920x1080" 23.53 1920 1952 2040 2072 1080 1106 1108 1135
Modeline "1600x1200" 22.04 1600 1632 1712 1744 1200 1229 1231 1261
Modeline "1440x900" 30.66 1440 1472 1584 1616 900 921 924 946
Modeline "1280x1024" 31.50 1280 1312 1424 1456 1024 1048 1052 1076
Modeline "1280x800" 24.15 1280 1312 1400 1432 800 819 822 841
Modeline "1024x768" 18.71 1024 1056 1120 1152 768 786 789 807
EndSection
Section "Screen"
Identifier "virtual_screen"
Device "virtual_videocard"
Monitor "virtual_monitor"
SubSection "Display"
Depth 24
Modes "1920x1440" "1920x1080" "1600x1200" "1440x900" "1280x1024" "1366x768" "1280x800" "1024x768" "800x600"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "virtual_layout"
Screen "virtual_screen"
InputDevice "virtual_mouse"
InputDevice "virtual_keyboard"
EndSection
RUSTDESK を初めてヘッドレスにする際は以下も必要になる。
$ sudo rustdesk --option allow-linux-headless Y
$ sudo rustdesk --get-id
$ sudo rustdeskt --password XXXXXX
rustdesk はデフォルトだと接続先の画面に表示されている接続ID とワンタイムパスワードをみながら接続する必要があるが、当然ヘッドレスだとそれができないので接続ID を取得して、固定パスワードに変更している。
$ DISPLAY=:0 xrandr --output DUMMY0 --mode 1024x768
は今回は必要なかったが、解像度変えたいときは使用すればいいってことか?
以上で無事接続できた。ディスプレイがなくても接続できる nomachine のほうがやっぱりかんたんかも。
参考
用RustDesk連線到headless的樹莓派Linux伺服器 · Ivon的部落格
中国語でしんどい、けど基本コピペでいけた