OSS Fan ~OSSでLinuxサーバ構築~

このエントリーをはてなブックマークに追加

Ubuntu 22.04.3 LTSをROCK 5Aへインストール後の初期設定

カテゴリ:OSSセットアップ | ソフトウェア:Linux | タグ:
最終更新日:2023-12-09 | 公開日:2023-12-09

目次

概要

 Radxa社製のシングルボードコンピュータであるROCK 5Aを発売時に衝動買いしたまでは良かったのですが、 普段はRaspberry Pi 4Bの方をメインで使用していて特に大きな不満もなかったので、使い道がなくほったらかしになっていました。 そんな中、家族でMinecraftをやるようになって、Minecraft Serverを家庭内に作ることにしたのですが、 ラズパイだと漠然とスペックに不安があったため、SoCのスペックが高いROCK 5Aを利用することにしました。 OSイメージはRadxa社公式の Ubuntu 22.04.3 LTS をGitHubからダウンロードして使用しました。 OSはeMMCにインストールしてROCK 5Aに取り付けています。

■Geekbench 5.4.0の結果比較(自己所有のSBCで測定)
SBCSingle-Core ScoreMulti-Core Score
Raspberry Pi 4 Model B 4GB226528
ROCK 5A 16GB5882,634

構成

サーバ構成

ハードウェア

 ハードウェアはROCK 5Aのメモリ16GBモデルを使用しました。ハードウェアスペックは以下のとおりです。 PoE HatはRaspberry Pi 4B用のものを流用しています。

 電源はPoEで供給。モニタとキーボード、マウスは接続しておらず、Windows PCからSSHして初期設定しました。 ROCK 5AにDHCPで割り当てられたIPアドレスはASUS Routerの管理画面に表示されるクライアントリストから調べました。 リストに「rock-5a」と表示されていたのですぐに分かりました。

■ハードウェアスペック
項目内容
SoCRockchip RK3588S
CPU4x Cortex-A76
GPUMali G610 MC4 ※レビューサイト情報
メモリ64bit 3200Mb/s LPDDR4 16GB
有線ネットワーク2.5 GbE LAN with Power over Ethernet (PoE)
ストレージeMMC 64GB

OS

Ubuntu 22.04.3 LTS arm64

ソフトウェア・パッケージ

 使用したOSイメージファイルは以下のファイル名です。

  • rock-5a_ubuntu_jammy_cli_b18.img.xz

環境構築

インストール

ROCK 5Aのシステムディスク作成

 RadxaのGitHubで公開されている公式のOSイメージをWindows PCにダウンロードして、RufusでeMMCに書き込みました。 eMMCはそのままではPCと接続できないので、microSDカード変換ボードを使用して接続しました。 公式WikiではEtcherというツールでOSイメージを書き込む手順が掲載されていますが、Rufusで書き込んだ場合でも問題なくUbuntuが起動したので やっている処理としては同じなのだと思われます。なお、使用したUbuntu 22.04.3 LTSのOSイメージは下記URLからダウンロードしました。

 radxa-build / rock-5a / Release / b18

 Rufusを使用してOSイメージをmicroSDカードへ書き込む手順は以下のページに掲載しています。

 CentOS 7.8.2003をRaspberry Pi 4のmicroSDカードへインストール

設定

パッケージ情報の更新

 パッケージを最新化する前段階としてリポジトリのパッケージ一覧を最新化します。

rock@rock-5a:~$ sudo apt update
[sudo] password for rock: ←rockユーザのパスワードを入力
Get:1 https://radxa-repo.github.io/jammy jammy InRelease [3,388 B]
Get:2 http://ports.ubuntu.com/ubuntu-ports jammy InRelease [270 kB]
Get:3 https://radxa-repo.github.io/jammy jammy/main all Packages [39.1 kB]
Get:4 https://radxa-repo.github.io/jammy jammy/main arm64 Packages [47.2 kB]
Get:5 http://ports.ubuntu.com/ubuntu-ports jammy-backports InRelease [109 kB]
Get:6 http://ports.ubuntu.com/ubuntu-ports jammy-security InRelease [110 kB]
Get:7 http://ports.ubuntu.com/ubuntu-ports jammy-updates InRelease [119 kB]
Get:8 http://ports.ubuntu.com/ubuntu-ports jammy/main arm64 Packages [1,369 kB]
Get:9 http://ports.ubuntu.com/ubuntu-ports jammy/main Translation-en [510 kB]
Get:10 http://ports.ubuntu.com/ubuntu-ports jammy/restricted arm64 Packages [19.6 kB]
Get:11 http://ports.ubuntu.com/ubuntu-ports jammy/restricted Translation-en [18.6 kB]
Get:12 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 Packages [13.9 MB]
Get:13 http://ports.ubuntu.com/ubuntu-ports jammy/universe Translation-en [5,652 kB]
Get:14 http://ports.ubuntu.com/ubuntu-ports jammy/multiverse arm64 Packages [184 kB]
Get:15 http://ports.ubuntu.com/ubuntu-ports jammy/multiverse Translation-en [112 kB]
Get:16 http://ports.ubuntu.com/ubuntu-ports jammy-backports/main arm64 Packages [63.8 kB]
Get:17 http://ports.ubuntu.com/ubuntu-ports jammy-backports/main Translation-en [10.5 kB]
Get:18 http://ports.ubuntu.com/ubuntu-ports jammy-backports/universe arm64 Packages [26.1 kB]
Get:19 http://ports.ubuntu.com/ubuntu-ports jammy-backports/universe Translation-en [16.4 kB]
Get:20 http://ports.ubuntu.com/ubuntu-ports jammy-security/main arm64 Packages [842 kB]
Get:21 http://ports.ubuntu.com/ubuntu-ports jammy-security/main Translation-en [192 kB]
Get:22 http://ports.ubuntu.com/ubuntu-ports jammy-security/restricted arm64 Packages [763 kB]
Get:23 http://ports.ubuntu.com/ubuntu-ports jammy-security/restricted Translation-en [185 kB]
Get:24 http://ports.ubuntu.com/ubuntu-ports jammy-security/universe arm64 Packages [722 kB]
Get:25 http://ports.ubuntu.com/ubuntu-ports jammy-security/universe Translation-en [148 kB]
Get:26 http://ports.ubuntu.com/ubuntu-ports jammy-security/multiverse arm64 Packages [19.6 kB]
Get:27 http://ports.ubuntu.com/ubuntu-ports jammy-security/multiverse Translation-en [7,060 B]
Get:28 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main arm64 Packages [1,052 kB]
Get:29 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main Translation-en [252 kB]
Get:30 http://ports.ubuntu.com/ubuntu-ports jammy-updates/restricted arm64 Packages [777 kB]
Get:31 http://ports.ubuntu.com/ubuntu-ports jammy-updates/restricted Translation-en [190 kB]
Get:32 http://ports.ubuntu.com/ubuntu-ports jammy-updates/universe arm64 Packages [923 kB]
Get:33 http://ports.ubuntu.com/ubuntu-ports jammy-updates/universe Translation-en [221 kB]
Get:34 http://ports.ubuntu.com/ubuntu-ports jammy-updates/multiverse arm64 Packages [23.5 kB]
Get:35 http://ports.ubuntu.com/ubuntu-ports jammy-updates/multiverse Translation-en [9,768 B]
Fetched 28.9 MB in 18s (1,580 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
106 packages can be upgraded. Run 'apt list --upgradable' to see them.

アップデート可能なパッケージの更新

 最新化したパッケージ一覧を元にアップデート可能なパッケージを更新します。

rock@rock-5a:~$ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following package was automatically installed and is no longer required:
  radxa-system-config-common
Use 'sudo apt autoremove' to remove it.
The following NEW packages will be installed:
  linux-headers-5.10.110-21-rockchip linux-image-5.10.110-21-rockchip
The following packages have been kept back:
  u-boot-rock-5a
The following packages will be upgraded:
  alsa-ucm-conf apt apt-transport-https apt-utils avahi-daemon base-files bind9-host bind9-libs curl distro-info-data
  dpkg e2fsprogs file gpgv gzip libapparmor1 libapt-pkg6.0 libavahi-client3 libavahi-common-data libavahi-common3
  libavahi-core7 libc-bin libc6 libcap2 libcom-err2 libcups2 libcurl3-gnutls libcurl4 libext2fs2 libflac8 libgnutls30
  libgssapi-krb5-2 libiniparser1 libjson-c5 libk5crypto3 libkrb5-3 libkrb5support0 libldap-2.5-0 libmagic-mgc
  libmagic1 libncurses6 libncursesw6 libnghttp2-14 libpam-modules libpam-modules-bin libpam-runtime libpam-systemd
  libpam0g libpcre2-8-0 libpcre3 libprocps8 libsasl2-2 libsasl2-modules-db libsndfile1 libss2 libssh-4 libssl3
  libsystemd0 libtinfo6 libtirpc-common libtirpc3 libudev1 libwbclient0 libx11-6 libx11-data libx11-xcb1
  linux-firmware linux-headers-rock-5a linux-image-rock-5a locales login logsave ncurses-base ncurses-bin
  openssh-client openssh-server openssh-sftp-server openssl passwd procps python3-pip python3-samba
  python3-software-properties qemu-utils radxa-firmware radxa-system-config-common radxa-system-config-rockchip rsetup
  samba samba-common samba-common-bin samba-libs software-properties-common ssh systemd systemd-sysv systemd-timesyncd
  tar u-boot-tools udev vim vim-common vim-runtime xxd zlib1g
105 upgraded, 2 newly installed, 0 to remove and 1 not upgraded.
Need to get 348 MB of archives.
After this operation, 120 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y ←Yを入力する
Get:1 https://radxa-repo.github.io/jammy jammy/main arm64 rsetup all 0.3.28 [21.9 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports jammy-security/main arm64 libc6 arm64 2.35-0ubuntu3.4 [2,704 kB]
Get:3 https://radxa-repo.github.io/jammy jammy/main arm64 linux-headers-5.10.110-21-rockchip arm64 5.10.110-21-d4b5d0d1d [7,767 kB]
Get:4 https://radxa-repo.github.io/jammy jammy/main arm64 linux-headers-rock-5a all 5.10.110-21-d456a3b [1,124 B]
Get:5 https://radxa-repo.github.io/jammy jammy/main arm64 linux-image-5.10.110-21-rockchip arm64 5.10.110-21-d4b5d0d1d [24.0 MB]
(========== 中略 ==========)
Failed to preset unit: Unit file /etc/systemd/system/samba-ad-dc.service is masked.
/usr/bin/deb-systemd-helper: error: systemctl preset failed on samba-ad-dc.service: No such file or directory
nmbd.service is a disabled or a static unit not running, not starting it.
samba-ad-dc.service is a disabled or a static unit not running, not starting it.
smbd.service is a disabled or a static unit not running, not starting it.
Processing triggers for libc-bin (2.35-0ubuntu3.4) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for dbus (1.12.20-2ubuntu4.1) ...
Processing triggers for initramfs-tools (0.140ubuntu13.4) ...
update-initramfs: Generating /boot/initrd.img-5.10.110-21-rockchip

OSのリブート

 パッケージの更新が終わったらOSをリブートします。

rock@rock-5a:~$ sudo reboot
[sudo] password for rock: ←rockユーザのパスワードを入力

タイムゾーンデータのインストール

 タイムゾーンは初期設定では「UTC(協定世界時)」が設定されていますので、「東京」に変更しようとしました。 しかし、何故か初期状態ではタイムゾーンデータがインストールされておらず、UTC以外を設定できないようになっていました。 そこで先にタイムゾーンデータをインストールしてからタイムゾーンの設定を行いました。

rock@rock-5a:~$ timedatectl
               Local time: Sat 2023-11-25 23:15:35 UTC
           Universal time: Sat 2023-11-25 23:15:35 UTC
                 RTC time: n/a
                Time zone: UTC (UTC, +0000) ←UTCが設定されている
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
rock@rock-5a:~$ sudo timedatectl set-timezone Asia/Tokyo
[sudo] password for rock: ←rockユーザのパスワードを入力
Failed to set time zone: Invalid or not installed time zone 'Asia/Tokyo' ←東京のタイムゾーンが存在しない
rock@rock-5a:~$ timedatectl list-timezones ←インストールされているタイムゾーンデータを表示
UTC ←UTCしか存在してないない
rock@rock-5a:~$ sudo apt install tzdata ←タイムゾーンデータのインストール
[sudo] password for rock: ←rockユーザのパスワードを入力
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  radxa-system-config-common
Use 'sudo apt autoremove' to remove it.
The following NEW packages will be installed:
  tzdata
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 349 kB of archives.
After this operation, 3,974 kB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main arm64 tzdata all 2023c-0ubuntu0.22.04.2 [349 kB]
Fetched 349 kB in 2s (157 kB/s)
Preconfiguring packages ...

 インストールが途中まで進むとGUI風の画面に切り替わって Geographic area の一覧が表示されますので、 「Asia」を選択したうえで[OK]を選択します。

 続いて Asia の Time zone の一覧が表示されますので、「Tokyo」を選択したうえで[OK]を選択します。

 上の操作でタイムゾーンの選択に失敗したのか(?)結果的に全タイムゾーンデータがインストールされました。 全部インストールされるならタイムゾーンを選択させた意味がよくわからないのでまた今度調べてみます。。

Selecting previously unselected package tzdata.
(Reading database ... 55201 files and directories currently installed.)
Preparing to unpack .../tzdata_2023c-0ubuntu0.22.04.2_all.deb ...
Unpacking tzdata (2023c-0ubuntu0.22.04.2) ...
Setting up tzdata (2023c-0ubuntu0.22.04.2) ...

Current default time zone: 'Etc/UTC'
Local time is now:      Sun Nov 26 01:16:25 UTC 2023.
Universal Time is now:  Sun Nov 26 01:16:25 UTC 2023.
Run 'dpkg-reconfigure tzdata' if you wish to change it.

rock@rock-5a:~$ timedatectl list-timezones ←改めてタイムゾーンデータを表示
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
(========== 中略 ==========)
Asia/Shanghai
Asia/Singapore
Asia/Srednekolymsk
Asia/Taipei
Asia/Tashkent
Asia/Tbilisi
Asia/Tehran
Asia/Tel_Aviv
Asia/Thimbu
Asia/Thimphu
Asia/Tokyo ←東京のタイムゾーンデータがインストールされた
Asia/Tomsk
Asia/Ujung_Pandang
Asia/Ulaanbaatar
Asia/Ulan_Bator
Asia/Urumqi
Asia/Ust-Nera
Asia/Vientiane
Asia/Vladivostok
Asia/Yakutsk
Asia/Yangon
(========== 中略 ==========)
US/Indiana-Starke
US/Michigan
US/Mountain
US/Pacific
US/Samoa
UTC
Universal
W-SU
WET
Zulu

タイムゾーンの設定

 タイムゾーンは初期設定では「UTC(協定世界時)」が設定されていますので、「東京」に変更します。

rock@rock-5a:~$ timedatectl
               Local time: Sun 2023-11-26 01:17:21 UTC
           Universal time: Sun 2023-11-26 01:17:21 UTC
                 RTC time: n/a
                Time zone: Etc/UTC (UTC, +0000) ←UTCが設定されている
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
rock@rock-5a:~$ sudo timedatectl set-timezone Asia/Tokyo ←東京のタイムゾーンを設定
rock@rock-5a:~$ timedatectl
               Local time: Sun 2023-11-26 10:20:50 JST
           Universal time: Sun 2023-11-26 01:20:50 UTC
                 RTC time: n/a
                Time zone: Asia/Tokyo (JST, +0900) ←東京が設定されてた
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

固定IPアドレスの設定

 ROCK 5Aの公式OSイメージを利用すると、Red Hat系でも標準でも採用されているNetworkManagerがインストール済みになっています。 初期状態はDHCPでIPが自動設定されていますが、これを固定IPに変更します。 nmcliコマンドでIPアドレス、デフォルトゲートウェイ、DNSサーバを設定します。 設定後にコネクションを再起動して変更を反映させます。(このタイミングでTeraTermは切断されるので設定したIPアドレスにTeraTermで接続し直します)

rock@rock-5a:~$ dpkg --list | grep network-manager
ii  network-manager                      1.36.6-0ubuntu2                         arm64        network management framework (daemon and userspace tools) ←NetworkManagerがインストール済み
rock@rock-5a:~$ nmcli c show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  101438da-9a53-390d-b4ea-11b8f797f438  ethernet  eth0
rock@rock-5a:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether f2:25:3e:40:bd:c0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.223/24 brd 192.168.0.255 scope global dynamic noprefixroute eth0
       valid_lft 78458sec preferred_lft 78458sec
    inet6 fe80::b299:c7b3:3c7d:7f32/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
rock@rock-5a:~$ sudo nmcli c mod "Wired connection 1" ipv4.address 192.168.0.113/24 ←IPアドレスとサブネットマスクの設定
rock@rock-5a:~$ sudo nmcli c mod "Wired connection 1" ipv4.gateway 192.168.0.1 ←デフォルトゲートウェイの設定
rock@rock-5a:~$ sudo nmcli c mod "Wired connection 1" ipv4.dns 192.168.0.1 ←DNSサーバの設定
rock@rock-5a:~$ sudo nmcli c mod "Wired connection 1" ipv4.method manual ←DHCPから手動設定に変更
rock@rock-5a:~$ sudo nmcli c down "Wired connection 1" && sudo nmcli c up "Wired connection 1" ←設定を反映するためにコネクションを再起動
(========== TeraTermは切断されるので新たに設定したIPアドレスに再接続する ==========)
rock@rock-5a:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether f2:25:3e:40:bd:c0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.113/24 brd 192.168.0.255 scope global noprefixroute eth0 ←IPアドレス、サブネットマスクが設定された
       valid_lft forever preferred_lft forever
    inet6 fe80::b299:c7b3:3c7d:7f32/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

 用途によりますが、個人的には最低限必要な初期設定は以上です。

参考にしたサイト