ラズパイに Ubuntu Mate 20.04 をインストールする

今年の5月頃、ラズパイ3B上に、Ubuntu Mate 20.04 をインストールしたときのメモです。

同時期に、ラズパイを使って、WireGuardとNextCloudを試すためのOS環境として構築してみたのです。

Ubuntu Mate の場合には、バージョン18.04 では「ubuntu-mate-18.04.2-beta1-desktop-armhf+raspi-ext4.img.xz」をダウンロード
バージョン20.04では、「ubuntu-mate-20.04-beta1-desktop-arm64+raspi.img.xz」をダウンロードして試しました。

Ubuntuポータルでは、18.04 の場合、負荷を理由に、armhf(32ビット) を推奨していますが、
20.04 は言及がなく、arm64を使っても問題はないような印象を受けたので、arm64にしました。

両方試しましたが、18.04 では openssh-serverのインストール時に、認証のため「sudo dpkg-reconfigure openssh-server」の実行が必要でしたが、20.04 では必要ありませんでした。

また、18.04 では、Windowsパソコンからのリモートデスクトップ接続が表示できませんが、
20.04 ではxrdp対応のスクリプトを使って、画面表示することができました。

18.04 では、raspi-config によるシステム設定ができましたが、
20.04 では使えなかったので、ちょっと手間が増えました。

今回は、20.04 で Ubuntu mate をインストールする手順です。

1.OSイメージをダウンロードし、MicroSDカードへOSをイメージ書き込む

https://ubuntu-mate.org/download/   からOSイメージをダウンロードする

Raspberry Pi (experimental)
64-bit. Compatible with models: B3 and B3+ and B4  を選ぶ

「ubuntu-mate-20.04-beta1-desktop-arm64+raspi.img.xz」をダウンロードします。
※ Ubuntu20.04 では、arm64

「ubuntu-mate-20.04-beta1-desktop-arm64+raspi.img.xz」
をダウンロードし、ファイルアーカイバ(圧縮・展開/圧縮・解凍ソフト)で解凍します。【注意!!!】
解凍した「ubuntu-mate-20.04-beta1-desktop-arm64+raspi.img」をSDカードに書き込みます。

2.UbuntuMateインストール

①Raspberry Pi にコピー後のMicroSDカードをセットし、マウス、キーボード、HDMI接続で
DISPLAYを接続して電源を入れると、インストール画面が表示されます。

②最初に表示される言語設定で、一番下の方に設定されている「日本語」を指定しますが、最初にWifiが使える環境
であれば、↓↑マークを クリックして表示されるSSIDの一覧から、使用できるWifiのものを選択して、
通信できるようにしておくとダウンロードが早いでしょう。

③使用できるWifiのパスフレーズを指定します。

④日本語を選びます。

⑤キーボードレイアウトで、「日本語」-「日本語」を指定します。

⑥「どこに住んでいますか?」で「Tokyo」を確認し、「続ける」をクリックします。

あなたの名前(ログイン表示される名前)

コンピュータの名前(ホスト名)

ユーザ名の入力:初期設定する一般ユーザ(英数字推奨)

初期設定する一般ユーザのパスワードの入力

初期設定する一般ユーザのパスワードの確認

⑦「あなたの情報を入力してください」に入力していきます。

⑧インストール・ファイルのコピーが始まります。画面上では、ガイドが順番に表示されます。
(上記は、18.04 のイメージです。20.04 では画像イメージが変わっていますが、操作に影響はありません)

⑨しばらくすると、インストールが終了し、・・・

⑩しばらくすると、ログインウィンドウが表示されます。先ほど指定した一般ユーザのパスワードを入力します。

⑪MATE端末を開きます(「メニュー」→「システムツール」→「MATE端末」)

⑫「sudo apt-get update」でパッケージの更新をします。

⑬次の作業を進めるのに、SSH接続して行えるように、OpenSSH-Sever をインストールします。
「sudo apt install openssh-server」を入力

⑭ SSHをサービスとして、OS起動時に立ち上げる。
「sudo systemctl enable ssh」 :OS起動時に自動起動させる
「sudo systemctl start ssh」  :SSHサービスを起動する
※ 20.04 では、「sudo dpkg-reconfigure openssh-server」の実行はおこなわなくても、SSH接続できた。
※ 18.04 では、raspi-config によるシステム設定ができたが、20.04 では「raspi-config」コマンドは使えなかった。

3.SSH設定と、xrdp & Remmina によるリモート接続環境の整備

ここからは、TeraTermProなどのssh接続でコマンド入力したイメージです

  • xrdp のためのスクリプト

miko@rpi-ubtmate:~$ sudo apt-get install xrdp

[sudo] password for miko:   パスワードを入力
パッケージリストを読み込んでいます… 完了
依存関係ツリーを作成しています
状態情報を読み取っています… 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
apt-clone archdetect-deb cryptsetup-bin dpkg-repack gir1.2-json-1.0
gir1.2-nm-1.0 gir1.2-nma-1.0 gir1.2-timezonemap-1.0 gir1.2-xkl-1.0
grub-common libdebian-installer4 libtimezonemap-data libtimezonemap1
os-prober python3-icu python3-pam rdate
これを削除するには ‘sudo apt autoremove’ を利用してください。
以下の追加パッケージがインストールされます:
xorgxrdp
提案パッケージ:
guacamole xrdp-pulseaudio-installer
以下のパッケージが新たにインストールされます:
xorgxrdp xrdp
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 454 個。
443 kB のアーカイブを取得する必要があります。
この操作後に追加で 3,132 kB のディスク容量が消費されます。
続行しますか? [Y/n] y    y を入力
取得:1 http://ports.ubuntu.com bionic/universe arm64 xorgxrdp arm64 0.9.5-2 [68.7 kB]
取得:2 http://ports.ubuntu.com bionic/universe arm64 xrdp arm64 0.9.5-2 [374 kB]
443 kB を 10秒 で取得しました (43.7 kB/s)
以前に未選択のパッケージ xorgxrdp を選択しています。
(データベースを読み込んでいます … 現在 134908 個のファイルとディレクトリがインストールされています。)
…/xorgxrdp_0.9.5-2_arm64.deb を展開する準備をしています …
xorgxrdp (0.9.5-2) を展開しています…
以前に未選択のパッケージ xrdp を選択しています。
…/xrdp_0.9.5-2_arm64.deb を展開する準備をしています …
xrdp (0.9.5-2) を展開しています…
libc-bin (2.27-3ubuntu1) のトリガを処理しています …
xrdp (0.9.5-2) を設定しています …

Generating 2048 bit rsa key…

ssl_gen_key_xrdp1 ok

saving to /etc/xrdp/rsakeys.ini

Created symlink /etc/systemd/system/multi-user.target.wants/xrdp-sesman.service → /lib/systemd/system/xrdp-sesman.service.
Created symlink /etc/systemd/system/multi-user.target.wants/xrdp.service → /lib/systemd/system/xrdp.service.
systemd (237-3ubuntu10.15) のトリガを処理しています …
man-db (2.8.3-2ubuntu0.1) のトリガを処理しています …
xorgxrdp (0.9.5-2) を設定しています …
libc-bin (2.27-3ubuntu1) のトリガを処理しています …

  • スクリプト実行

miko@rpi-ubtmate:~$ sudo apt-get install remmina

パッケージリストを読み込んでいます… 完了
依存関係ツリーを作成しています
状態情報を読み取っています… 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
apt-clone archdetect-deb cryptsetup-bin dpkg-repack gir1.2-json-1.0
gir1.2-nm-1.0 gir1.2-nma-1.0 gir1.2-timezonemap-1.0 gir1.2-xkl-1.0
grub-common libdebian-installer4 libtimezonemap-data libtimezonemap1
os-prober python3-icu python3-pam rdate
これを削除するには ‘sudo apt autoremove’ を利用してください。
以下の追加パッケージがインストールされます:
libavahi-ui-gtk3-0 libfreerdp-client2-2 libfreerdp2-2 libssh-4 libvncclient1
libwinpr2-2 remmina-common remmina-plugin-rdp remmina-plugin-secret
remmina-plugin-vnc
提案パッケージ:
freerdp2-x11 remmina-plugin-exec remmina-plugin-nx remmina-plugin-spice
remmina-plugin-telepathy remmina-plugin-xdmcp
以下のパッケージが新たにインストールされます:
libavahi-ui-gtk3-0 libfreerdp-client2-2 libfreerdp2-2 libssh-4 libvncclient1
libwinpr2-2 remmina remmina-common remmina-plugin-rdp remmina-plugin-secret
remmina-plugin-vnc
アップグレード: 0 個、新規インストール: 11 個、削除: 0 個、保留: 454 個。
1,224 kB のアーカイブを取得する必要があります。
この操作後に追加で 4,906 kB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://ports.ubuntu.com bionic-updates/main arm64 libavahi-ui-gtk3-0 arm64 0.7-3.1ubuntu1.2 [16.3 kB]
取得:2 http://ports.ubuntu.com bionic-updates/main arm64 libwinpr2-2 arm64 2.0.0~git20170725.1.1648deb+dfsg1-7ubuntu0.1 [240 kB]
取得:3 http://ports.ubuntu.com bionic-updates/main arm64 libfreerdp2-2 arm64 2.0.0~git20170725.1.1648deb+dfsg1-7ubuntu0.1 [358 kB]
:   :   :   :
:   :   :   :
:   :   :   :
remmina-plugin-rdp:arm64 (1.2.0-rcgit.29+dfsg-1ubuntu1) を設定しています …
remmina-plugin-vnc:arm64 (1.2.0-rcgit.29+dfsg-1ubuntu1) を設定しています …
remmina-plugin-secret:arm64 (1.2.0-rcgit.29+dfsg-1ubuntu1) を設定しています …
libc-bin (2.27-3ubuntu1) のトリガを処理しています …

  • xrdp のためのスクリプト

miko@r4-ubntmt2004:~$ vi enhanced-session-mode.sh

#!/bin/sh

# Add script to setup the ubuntu session properly
if [ ! -e /etc/xrdp/startubuntu.sh ]; then
cat >> /etc/xrdp/startubuntu.sh << EOF
#!/bin/sh
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
exec /etc/xrdp/startwm.sh
EOF
chmod a+x /etc/xrdp/startubuntu.sh
fi

sed -i_orig -e ‘s/startwm/startubuntu/g’ /etc/xrdp/sesman.ini

# rename the redirected drives to ‘shared-drives’
sed -i -e ‘s/FuseMountName=thinclient_drives/FuseMountName=shared-drives/g’ /etc/xrdp/sesman.ini

# Changed the allowed_users
sed -i_orig -e ‘s/allowed_users=console/allowed_users=anybody/g’ /etc/X11/Xwrapper.config

# Configure the policy xrdp session
cat > /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla <<EOF
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes
EOF

# https://askubuntu.com/questions/1193810/authentication-required-to-refresh-system-repositories-in-ubuntu-19-10
cat > /etc/polkit-1/localauthority/50-local.d/46-allow-update-repo.pkla<<EOF
[Allow Package Management all Users]
Identity=unix-user:*
Action=org.freedesktop.packagekit.system-sources-refresh
ResultAny=yes
ResultInactive=yes
ResultActive=yes
EOF

  • スクリプト実行

miko@r4-ubntmt2004:~$ sudo bash ./enhanced-session-mode.sh
[sudo] password for miko:   パスワード入力
miko@r4-ubntmt2004:~$

  • Rootユーザにパスワードを追加して、su でルート権限を取得できるようにする

Ubuntu のデフォルト設定では root ユーザーはパスワードが設定されていないため利用不可です。
基本は管理者として設定したユーザーで sudo コマンドを利用して root 特権を行使するポリシーですが、
Sudo のオプション指定で root 権限のシェルを取得し、root ユーザーにパスワードを設定することで、
従来の su コマンドによる利用が可能です。

miko@rpi-ubtmate:~$ sudo -s

[sudo] password for miko:    パスワード入力

root@rpi-ubtmate:~# sudo passwd root

Enter new UNIX password:    パスワード入力
Retype new UNIX password:   パスワード再入力
passwd: password updated successfully

4.日本語化対応

  • 日本語変換に、ibus-mozc をインストール

miko@rpi-ubtmate:~$ sudo apt -y install ibus-mozc

[sudo] miko のパスワード:     パスワード入力
パッケージリストを読み込んでいます… 完了
依存関係ツリーを作成しています
状態情報を読み取っています… 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
apt-clone archdetect-deb cryptsetup-bin dpkg-repack gir1.2-json-1.0
gir1.2-nm-1.0 gir1.2-nma-1.0 gir1.2-timezonemap-1.0 gir1.2-xkl-1.0
grub-common libdebian-installer4 libtimezonemap-data libtimezonemap1
os-prober python3-icu python3-pam rdate
これを削除するには ‘sudo apt autoremove’ を利用してください。
以下の追加パッケージがインストールされます:
gir1.2-ibus-1.0 ibus libglib2.0-0 libglib2.0-bin libibus-1.0-5
提案パッケージ:
ibus-clutter ibus-doc ibus-qt4
以下のパッケージが新たにインストールされます:
gir1.2-ibus-1.0 ibus ibus-mozc libibus-1.0-5
以下のパッケージはアップグレードされます:
libglib2.0-0 libglib2.0-bin
アップグレード: 2 個、新規インストール: 4 個、削除: 0 個、保留: 449 個。
5,944 kB のアーカイブを取得する必要があります。
この操作後に追加で 44.9 MB のディスク容量が消費されます。
取得:1 http://ports.ubuntu.com bionic-updates/main arm64 libglib2.0-bin arm64 2.56.4-0ubuntu0.18.04.6 [61.9 kB]
取得:2 http://ports.ubuntu.com bionic-updates/main arm64 libglib2.0-0 arm64 2.56.4-0ubuntu0.18.04.6 [983 kB]
取得:3 http://ports.ubuntu.com bionic-updates/main arm64 libibus-1.0-5 arm64 1.5.17-3ubuntu5.3 [115 kB]
:   :   :   :
:   :   :   :
:   :   :   :
libglib2.0-bin (2.56.4-0ubuntu0.18.04.6) を設定しています …
gir1.2-ibus-1.0:arm64 (1.5.17-3ubuntu5.3) を設定しています …
desktop-file-utils (0.23-1ubuntu3.18.04.2) のトリガを処理しています …
ibus (1.5.17-3ubuntu5.3) を設定しています …
ibus-mozc (2.20.2673.102+dfsg-2ubuntu0.18.04.1) を設定しています …
libc-bin (2.27-3ubuntu1) のトリガを処理しています …

miko@rpi-ubtmate:~$ sudo apt -y autoremove

パッケージリストを読み込んでいます… 完了
依存関係ツリーを作成しています
状態情報を読み取っています… 完了
以下のパッケージは「削除」されます:
apt-clone archdetect-deb cryptsetup-bin dpkg-repack gir1.2-json-1.0
gir1.2-nm-1.0 gir1.2-nma-1.0 gir1.2-timezonemap-1.0 gir1.2-xkl-1.0
:   :   :   :
:   :   :   :
:   :   :   :
rdate (1:1.2-6) を削除しています …
libc-bin (2.27-3ubuntu1) のトリガを処理しています …
man-db (2.8.3-2ubuntu0.1) のトリガを処理しています …

miko@rpi-ubtmate:~$ sudo reboot  (ここで再起動)

再立ち上げ後、「メニュー」→「設定」→「言語サポート」で、「言語」タブの最下部の「キーボード入力に使うIMシステム」を「fcitx」にする「アクセサリ」のPlumaエディタ等を起動し、メニューのキーボードアイコンをクリックして、日本語機能を調整します。

①メニュー → 設定 → 言語サポート

①メニュー → 設定 → 言語サポート

②「言語サポートが完全にはインストールされていません」が表示されたら、「インストール」をクリックする

②「言語サポートが完全にはインストールされていません」が表示されたら、「インストール」をクリックする

③パスワードを入力します

③パスワードを入力します

④インストール状況が表示されます

④インストール状況が表示されます

⑤インストール状況が表示されます

⑤インストール状況が表示されます

 ⑥インストール完了しました

⑥インストール完了しました

⑦「キーボード入力に使うIMシステム」を「Fictx」にする

⑦「キーボード入力に使うIMシステム」を「Fictx」にする

⑧日本語入力できるようになったことを確認する

⑧日本語入力できるようになったことを確認する

上部メニューバー右側にキーボードマークが追加されます。

テキストエディタなど、文字入力できる状態で、キーボードマークをクリックすると入力モードを変更できます。

初期状態ではローマ字で入力ですが、上部キーボードマーク・クリックで、日本語入力できるようになります。