Raspberry Piのubuntuでxrdp
xrdpというのはWindowsのリモートデスクトップでubuntuにつなげる方法で、VNCを使わないでVNCのようなことをするためのもの(らしい)。
インストールと、停止、実行
インストールは
$ sudo apt-get install xrdp
とするだけ。再起動後も自動的に動き出す(ような気がする)。一旦停止するには、
$ sudo service xrdp stop
とし、再起動するには、
$ sudo service xrdp start
でいいみたい。
Windows側の設定は↓が詳しい。
https://gihyo.jp/admin/serial/01/ubuntu-recipe/0621?page=2
https://gihyo.jp/admin/serial/01/ubuntu-recipe/0621?page=2
画面が真っ黒になる問題
最初windows10からリモートデスクトップで接続したとき、接続はできたが、画面が真っ黒になるが、これはログインセッションが起動しているつまり、なんというか、GUIでログインした状態になっているからと分かった。
ubuntuの設定で、自動的にloginする、みたいなことをしていると、ラズパイ起動後すぐに画面はデスクトップ画面になっているので、この状態だとリモートデスクトップの接続ができない。
なので、とりあえずは、
$ pkill gnome-session
として、デスクトップから抜けた状態にする。そうすればリモートデスクトップで入れるようになった。
https://qiita.com/tukiyo3/items/8793ede62180a0e32a22
https://qiita.com/tukiyo3/items/8793ede62180a0e32a22
恒久的な対策としては、ubuntuの設定で自動的にログインしない(設定→ユーザーで自動ログインをオフ)すればよいらしい。
ただこれをすると、今度VNCで入るときに一旦デスクトップでログインしないとVNCで入れない?とかいう問題が起きる(ような気がする。未確認)。
あと、ややこしいが、モニターを接続しない状態でVNCでリモートでログインできるように設定していると、モニターを接続したとき画面が真っ黒になる。
何がどうなっているのかわからなくなってきた。
ラズパイのヘッドレス化とVNCの問題
問題を整理するとこういうことになる。
- モニターを接続した状態だと、リモートでVNC Viewerを使って普通にLoginできる
- ここに書いた方法でモニターなし(=ダミーのモニタを接続)状態でリモートでLoginするには、設定で自動ログインを有効にしておかないといけない。つまりVNC Viwerでデスクトップ画面に入れるのはすでにLoginされた状態の場合だけ→逆に言うと、VNC Viewerでリモートで接続された状態でデスクトップをLogoutしてしまうと、リモートでは二度とデスクトップ画面に入れない。SSHなどで入りリブートするしかなくなる
- どうもubuntuで動作しているVNCサーバはVinoというものらしく、これはログインされた状態でないとリモートで接続できないらしい
- xrdpを動かし、Windowsマシンからリモートデスクトップでログインするには、ログアウトされた状態でないとできない→つまり、ヘッドレス(モニターなし)でVNC Viewerで接続するために自動ログインを有効にしておくと、リモートデスクトップでは入れず、例えばSSHで入って強制的にgnome-sessionを停止させなければならない
- ログインされた状態でないとリモートで入れないVinoやめて、x11vncというものにすればログイン前の状態からリモートで接続できるらしい
- ところがこのx11vncはデフォルトのディスプレイマネージャであるgdm3(GNOME)に対応していないので、LightDMというディスプレイマネージャを導入せねばならない
以上のようなわけで、LightDMというのとx11vncを導入する羽目になった。
https://mixture.dcmnjp.net/linux/ubuntu/x11vnc.html
https://mixture.dcmnjp.net/linux/ubuntu/x11vnc.html
$ sudo apt install lightdm
でlightdmのインストール、
$ sudo apt install x11vnc
でx11V\vncのインストール、
$ sudo x11vnc -storepasswd /etc/x11vnc.passwd
でパスワードファイルの作成、
$ sudo chmod 644 /etc/x11vnc.passwd
で読み取り権限の付与、
$ sudo x11vnc -auth guess -display :0 -rfbauth /etc/x11vnc.passwd -rfbport 5900 -forever -loop -xkb -noxdamage -repeat -shared
で動作テスト、/etc/systemd/system/x11vnc.serviceを作成編集して自動起動を設定する。
$ sudo systemctl daemon-reload $ sudo systemctl enable x11vnc $ sudo systemctl start x11vnc
でようやく完了。
どうも、ubuntuのVNCは遅いらしい。x11vncにしたらさほど気にならなくなった。リモートデスクトップの方が気持ちがいいが、gnome-terminalの行間が矢鱈広かったり、Nautilusというファイラが起動しなかったりこまごまとした問題があったりしてヤダ。
x11vncでキーリピートが効かない問題
デスクトップ環境をx11vncに変えるとなぜかキーリピートが効かなくなる。起動時のオプションの問題らしいが、以下のコマンドで対処療法的にキーリピートができるようになる。
$ xset r on $ xset r on
なぜか2回やらないと有効にならない。ネットでは3回という記述もあった。