Raspberry Pi4にインストールしたUbuntuにVNCで画面共有する

Raspberry Pi4にインストールしたUbuntu 20.04 Serverと画面共有しようとしたら、
意外と手間がかかったのでまとめます。

ラズパイでやってますが、
Ubuntuのクラウドイメージはserver版のみの提供なので、
そちらも同じ手順が必要だと思われます。

Ubuntu 20.04 LTS (Raspberry Pi 2/3/4) 32bit serverをインストールして、
以下の手順でGUIをインストールしたものとします。

ubuntu@ubuntu:~$ sudo apt update
ubuntu@ubuntu:~$ sudo apt upgrade
ubuntu@ubuntu:~$ sudo apt install ubuntu-desktop
ubuntu@ubuntu:~$ sudo reboot

有線の管理を有効化

調べてみると以下の画面で設定できるようですが、
「No networks selected for sharing」と表示されて設定できません。
有線で接続してちゃんと通信できているのに不思議!

ubuntu_server_vnc_01.jpg

そこで有線の設定を確認しようとすると、以下のように
「Wired Unmanaged」と表示されるし、

ubuntu_server_vnc_02.jpg

Networkを見ても何も表示されません。

ubuntu_server_vnc_03.jpg

原因を調べてみると、 こちら に情報がありました。
それによるとUbuntu Desktopのネットワーク管理はNetworkManagerですが、
Ubuntu ServerにGUIをインストールした場合、NetworkManagerに切り替わらず
networkdを使用しているから、ネットワーク構成にアクセスできないとのこと。

というわけで設定を変更します。 こちらのQiitaの投稿によると、
「/etc/netplan/99_config.yaml を作成し設定を上書きするのが正式」
とのことですので、それに従い、ついでに固定IPにします。

ubuntu@ubuntu:~$ sudo vi /etc/netplan/99_config.yaml
ubuntu@ubuntu:~$ cat /etc/netplan/99_config.yaml 
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    eth0:
      dhcp4: false
      dhcp6: false
      addresses: [192.168.10.8/24]
      gateway4: 192.168.10.1
      nameservers:
        addresses: [192.168.10.1]

以下のコマンドで変更を適用できるようですが、
ネットワークが切れるし変な状態になったのですぐ再起動した方がいいかもです。

ubuntu@ubuntu:~$ sudo netplan apply
client_loop: send disconnect: Broken pipe

再起動後、無事GUIで管理できるようになりました。

ubuntu_server_vnc_04.jpg

画面共有の有効化

それではVNCの画面共有を設定します。
今度は設定できました。

ubuntu_server_vnc_05.jpg

設定が完了したので、Macからアクセスしてみます。

ubuntu_server_vnc_06.png

しかし、
「リモートコンピュータのソフトウェアが、このバージョンの画面共有と互換性がないようです。」
と表示されてアクセスできません。

ubuntu_server_vnc_07.png

どうやら暗号化されてないとダメなようですが、
今回はこちらのQiitaの投稿を参考に、 暗号化しなくても接続できるようにします。

Ubuntu側で以下のコマンドを実行します。

ubuntu@ubuntu:~$ gsettings set org.gnome.Vino require-encryption false

無事アクセスできました。

ubuntu_server_vnc_08.png