Orange Pi 5でデータディスクとしてならM.2 SATAも使える


Orange Pi 5で、M.2 SATAを利用する方法がある、という情報をいただきました。

(2023/01/05追記: M.2 NVMe SSDでLinuxを起動する記事はこちら→Orange Pi 5 が届いた)
(2023/01/08追記: M.2 SATA SSDからLinux/Androidが起動できるようになりました→Orange Pi 5でAndroid/Linux共にM.2 SATA SSDから起動できるようになった)

Orange Pi純正のUbuntuに入っているorangepi-configに設定がある、ということ。

「sudo orangepi-config」で起動して、[System]-[Hardware]を開くと、「ssd-sata」というモジュールがあります。

これにチェックを入れて保存し、再起動するとM.2 SATAを認識するようになります。

デバイスは/dev/sdaとして認識します。

ただし、現状、microSDからUbuntuを起動し、データディスクとしてM.2 SATAを起動できる、という状態です。

M.2 SATA を起動ディスクとして使うことはできませんでした。

Orange Pi 5 が届いた


2022年11月12日に発注し2022年12月5日に発送連絡があった Orange PI 5が12月19日に届いた。

Orange Pi のいつもの箱に入って届いた

中身もいつものごとく

ラズパイ2BとOrange Pi 5を並べて見る

裏面にM.2 コネクタがありますが、止めるためのネジが付属してないのでどうにか調達する必要があります。

私の場合はたまたま別件で買ったM.2 SSDにネジが添付されていたのでそれを流用しました。

さて、ここからは実際に使う為の資料について・・・

資料について

公式のマニュアルはOrange Pi 5 Downloadページ にあるUser Manualリンク にあるOrangePi_5_RK3588S_User Manual_v0.2.pdf となる。(2022/12/08版)

電源について

Orange Pi 5の注意点として電源はType-Cコネクタ形状だけれども、USB PD非対応で、5V4Aのみを受け付けるだけの単機能コネクタである、ということ。

このため、ノートパソコンなど用のType-C PD電源ををつなげても動作しません。

私の場合、秋月でラズパイ4用として売ってる「スイッチングACアダプター(USB ACアダプター) Type-Cオス 5.1V3.8A 」を買って使っています。

まお、マニュアルの上記記述にあるように、USB Type-Cとして使えるコネクタの方は電源供給には使えません。

裏面にあるM.2 コネクタには2242サイズのNVMeストレージを取り付けることができますが、固定する為のネジが添付されていません。

Orange Pi 5の基盤自体を固定する為の四隅の穴は3.0mmですが、M.2用の2230/2242用の固定穴は3.5mmとのこと。

また、GPIO端子から電源を供給することは可能ですが、推奨されていません。

GPIO端子に逆接続防止措置はないので、誤って逆に接続してしまうと基板が死ぬので注意してください。

OS書き込みについて

Linuxの場合

microSDの起動ディスクをつくる場合、Linuxを書き込む場合はddやrufus,etcher,win32diskimagerで書き込みます。

NVMe SSD起動にしたい場合は、一度microSDで起動させた後、NVMe SSDへのインストール処理を行う形となります。

使用できるNVMe SSDは、2230サイズもしくは2242サイズのものです。

NVMe SSD用に確保されている帯域は PCIe2.0x1 となっており、理論上は500MB/sまでとなります。PCIe3.0やPCIe4.0のSSDを使用しても、PCIe2.0x1で止まります。

NVMe SSDへのインストールは、Orange Pi公式配布のDebian/Ubuntuの場合「sudo nand-sata-install」を実行することでSPI Flashへブートローダを書き込み、NVMe SSDから起動できるような設定を行った上で、Linux用ディスクイメージファイルをddコマンドで/dev/nvme0n1に書き込みを行います。

書き込み後は、Linuxをshutdownし、microSDを抜いて、NVMe SSDのみとして起動します。

起動後、Orange Pi公式配布のDebian/Ubuntuの場合「sudo fix_mmc_ssd.sh」を実行し、ディスクのパーテーション調整を行います。(後述しますが、この手順は不要でした)

なお、初期ユーザは「root」パスワード「orangepi」と、ユーザ「orangepi」パスワード「orangepi」の2つがあります。

また、自動ログインの有効/無効が別途用意されているコマンドで設定できます。

詳細はUser Manualにて。

Androidの場合

Rockchip用のAndroidを起動するためのmicroSDは専用の書き込みソフトSDDiskTool(Windows)を使用する必要があります。

また、NVMe SSDからAndroidを起動したい場合は、Windows+専用ドライバ/書き込みソフト(RKDevTool)を使うことで、microSDを経由せずにType-Cケーブル経由で直接書き込むことが可能です。

ネットワーク設定について

Orange Pi公式が配布しているUbuntu/Debianイメージではネットワーク接続を /etc/network/interfaces ファイルの編集ではなくNetwork Manager経由で行う、ということになっています。

nmcliやnmtuiコマンドで設定します。


実際にセットアップしてみた

M.2 2242サイズのNVMe SSDを取り付けて…

Orangepi5_1.0.6_ubuntu_jammy_desktop_xfce_linux5.10.110.img をmicroSDに書き込んで初回起動すると、X-Windowでログインした状態となる

この際のユーザは「orangepi」

コマンドで「ip a s」などを実行してIPアドレスを確認して、sshでログイン

その際は「orangepi」でパスワードも「orangepi」

  ___  ____  _   ____
 / _ \|  _ \(_) | ___|
| | | | |_) | | |___ \
| |_| |  __/| |  ___) |
 \___/|_|   |_| |____/

Welcome to Orange Pi 1.0.6 Jammy with Linux 5.10.110-rockchip-rk3588

System load:   2%               Up time:       7 min    Local users:   3
Memory usage:  8% of 7.51G      IP:            192.168.1.141
CPU temp:      39°C            Usage of /:    16% of 29G

[ 2 security updates available, 2 updates total: apt upgrade ]
Last check: 2022-12-16 16:17

[ General system configuration (beta): orangepi-config ]

Last login: Fri Dec 16 16:17:44 2022
orangepi@orangepi5:~$

カスタマイズするためのスクリプト群が /usr/local/bin に用意されている

orangepi@orangepi5:~$ ls -l /usr/local/bin
total 1360
-rwxrwxr-x 1 root root    992 Dec  7 09:26 auto_login_cli.sh
-rwxrwxr-x 1 root root   9632 Dec  7 09:26 blink_all_gpio
-rwxrwxr-x 1 root root     47 Dec  7 09:26 cat_serial.sh
-rwxrwxr-x 1 root root    560 Dec  7 09:26 compile_python.sh
-rwxrwxr-x 1 root root    316 Dec  7 09:26 desktop_login.sh
-rwxrwxr-x 1 root root    140 Dec  7 09:26 disable_desktop_autologin.sh
-rwxrwxr-x 1 root root   2036 Dec  7 09:26 drm-hotplug.sh
-rwxrwxr-x 1 root root     86 Dec  7 09:26 enable_docker.sh
-rwxrwxr-x 1 root root    265 Dec  7 09:26 fix_mmc_ssd.sh
-rwxr-xr-x 1 root root    195 Dec 15 18:27 gpu_load.sh
-rwxrwxr-x 1 root root    111 Dec  7 09:26 install_bt_panel.sh
-rwxrwxr-x 1 root root    684 Dec  7 09:26 install_docker.sh
-rwxr-xr-x 1 root root    565 Dec 16 11:41 install_qt.sh
-rwxrwxr-x 1 root root   2364 Dec 16 15:36 install_ros.sh
-rwxrwxr-x 1 root root  76188 Dec  7 09:26 io
-rwxrwxr-x 1 root root  22896 Dec  7 09:26 memtester
-rwxrwxr-x 1 root root 772832 Dec  7 09:26 modetest
-rwxrwxr-x 1 root root  38856 Dec  7 09:26 multivideoplayer
-rwxrwxr-x 1 root root     78 Dec  7 09:26 reset_ssh.sh
-rwxrwxr-x 1 root root    115 Dec 12 09:41 set_device.sh
-rwxrwxr-x 1 root root    242 Dec 12 09:41 set_vnc.sh
-rwxrwxr-x 1 root root  19672 Dec  7 09:26 spidev_test
-rwxrwxr-x 1 root root 254056 Dec  7 09:26 stressapptest
-rwxrw-r-- 1 root root   1197 Dec 14 15:56 test_camera.sh
-rwxrwxr-x 1 root root    175 Dec 12 09:41 test_dec_mpv.sh
-rwxrwxr-x 1 root root    168 Dec  7 09:26 test_rknn_demo.sh
-rwxr-xr-x 1 root root    501 Dec 16 15:36 test_ros.sh
-rwxrwxr-x 1 root root    446 Dec  7 09:26 test_rtsp.sh
-rwxrwxr-x 1 root root  14736 Dec  7 09:26 tinycap
-rwxrwxr-x 1 root root  19448 Dec  7 09:26 tinymix
-rwxrwxr-x 1 root root  14440 Dec  7 09:26 tinypcminfo
-rwxrwxr-x 1 root root  19048 Dec  7 09:26 tinyplay
-rwxrwxr-x 1 root root     65 Dec  7 09:26 typec_usb2.sh
-rwxrwxr-x 1 root root    123 Dec 15 18:41 vpu_debug.sh
-rwxrwxr-x 1 root root  13816 Dec 16 16:23 watchdog_test
orangepi@orangepi5:~$ ls -l /usr/local/sbin
total 0
orangepi@orangepi5:~$

NVMe SSDにインストールするには/dev/nvme0n1に対してインストールイメージを書き込む

まずデバイス名確認。テストに使用したものなのでパーテーションが2つ作られている

orangepi@orangepi5:~$ ls -l /dev/nvme0*
crw------- 1 root root 239, 0 Dec 16 16:17 /dev/nvme0
brw-rw---- 1 root disk 259, 0 Dec 16 16:17 /dev/nvme0n1
brw-rw---- 1 root disk 259, 1 Dec 16 16:17 /dev/nvme0n1p1
brw-rw---- 1 root disk 259, 2 Dec 19 19:30 /dev/nvme0n1p2
orangepi@orangepi5:~$

確認のためM.2 SATA SSDが認識できないかを確認してみる

orangepi@orangepi5:~$ sudo fdisk -l
[sudo] password for orangepi:
Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/zram0: 3.75 GiB, 4031569920 bytes, 984270 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/mtdblock0: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mmcblk1: 29.9 GiB, 32105299968 bytes, 62705664 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 53AE4D8D-573C-E044-AB71-027F31F37494

Device          Start      End  Sectors  Size Type
/dev/mmcblk1p1  61440   585727   524288  256M Linux extended boot
/dev/mmcblk1p2 585728 62062591 61476864 29.3G Linux filesystem


Disk /dev/zram1: 200 MiB, 209715200 bytes, 51200 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
orangepi@orangepi5:~$ ls /dev/nv*
ls: cannot access '/dev/nv*': No such file or directory
orangepi@orangepi5:~$

M.2 SATA SSDでは認識しないことを確認

(2022/12/21追記: データディスクとしてならM.2 SATAも動くことを確認しました → 詳細)

まあ、そういう仕様ですしね

さて、NVMe SSDに戻して、マニュアル記載のSPI Flash書き換えコマンドを実行

「sudo nand-sata-install」を実行して以下の画面とします。

「7 Install/Update the bootloader on SPI Flash」を選択してOKします

書き換え警告を[Yes]とします

YES選択後、数分間以下の状態で止まっていますが、正常です。

5分ぐらいすると下記の様になって終了します。

続いて、Orangepi5_1.0.6_ubuntu_jammy_desktop_xfce_linux5.10.110.img を /dev/nvme0n1 に対して書き込むため「sudo dd if=Orangepi5_1.0.6_ubuntu_jammy_desktop_xfce_linux5.10.110.img of=/dev/nvme0n1 status=progress」と実行します。

orangepi@orangepi5:~$ sudo dd if=Orangepi5_1.0.6_ubuntu_jammy_desktop_xfce_linux5.10.110.img of=/dev/nvme0n1 status=progress
6924734976 bytes (6.9 GB, 6.4 GiB) copied, 278 s, 24.9 MB/s
13533184+0 records in
13533184+0 records out
6928990208 bytes (6.9 GB, 6.5 GiB) copied, 279.176 s, 24.8 MB/s
orangepi@orangepi5:~$

現状のパーテーションを確認

orangepi@orangepi5:~$ sudo fdisk -l /dev/nvme0n1
GPT PMBR size mismatch (13533183 != 1000215215) will be corrected by write.
The backup GPT table is not on the end of the device.
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: NXM-512
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 53AE4D8D-573C-E044-AB71-027F31F37494

Device          Start      End  Sectors  Size Type
/dev/nvme0n1p1  61440   585727   524288  256M Linux extended boot
/dev/nvme0n1p2 585728 13533150 12947423  6.2G Linux filesystem
orangepi@orangepi5:~$

この段階では実際のSSD容量にあわせたパーテーション構成になっていないのでmismatchと表示されている。

この段階では、microSD起動を一度停止して、microSDを抜いてから再度電源を入れます

NVMe SSDから起動していることを確認します。

orangepi@orangepi5:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           769M  9.4M  760M   2% /run
/dev/nvme0n1p2  465G  4.6G  456G   1% /
tmpfs           3.8G     0  3.8G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.8G   12K  3.8G   1% /tmp
/dev/nvme0n1p1  256M   95M  162M  37% /boot
/dev/zram1      188M  2.6M  171M   2% /var/log
tmpfs           769M   80K  769M   1% /run/user/1000
orangepi@orangepi5:~$

問題が起きてたパーテーション構成は起動時に自動修正されています。

orangepi@orangepi5:~$ sudo fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: NXM-512
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 53AE4D8D-573C-E044-AB71-027F31F37494

Device          Start       End   Sectors   Size Type
/dev/nvme0n1p1  61440    585727    524288   256M Linux extended boot
/dev/nvme0n1p2 585728 990183423 989597696 471.9G Linux filesystem
orangepi@orangepi5:~$

マニュアル記載にある「sudo fix_mmc_ssd.sh」はmicroSDも使う場合に実行するもので、NVMe SSDのみの場合は実行してみると以下のようなメッセージが出力されていました。

orangepi@orangepi5:~$ sudo fix_mmc_ssd.sh
ls: cannot access '/dev/mmcblk*': No such file or directory
Done
orangepi@orangepi5:~$

その上、NVMeから起動できなくなってしまうので必要無い限りはfix_mmc_ssd.shは実行しないように・・・

もしこの状態にしてしまった場合は、最初のNVMeへのインストール時に使ったmicroSDを入れるとシングルユーザモードで起動できます。

その状態で/etc/fstabにある/boot行を「/dev/nvme0n1p1 /boot vfat defaults 0 2」に書きかえて「mount -a」でマウント

その次に /boot/orangepiEnv.txt にあるroot=行を「rootdev=/dev/nvme0n1p2」に書き換えることで元の状態に戻ります。

あとは普通のUbuntu 22.04として利用できます。

ちょっと興味深かったのは、https://repo.huaweicloud.com/ からファイルを持ってくる初期設定になってるんだなぁ、というところ

カスタマイズ

「sudo orangepi-config」を実行すると設定ユーティリティが起動します。

まずは[System]から[Firmware]を選択してFirmwareアップデートを実行します。

再起動します。

この他、[Personal]にある[Timezone]など、いろいろ設定がありますので、必要に応じ変更します。

youtube(360p)再生中のCPU負荷

youtube(1080p)再生中のCPU負荷

Rockchip RK3588S搭載のOrange Pi 5が送料込み$84.2という格安価格でプレセール開始


2022/12/23追記

Orange Pi 5が届いたので「Linuxを動かす記事」「Androidを動かす記事」と「データディスクとしてM.2 SATA SSDを動かす記事(起動ディスクでは使えない)」を公開中です。


2022年7月に発表になったRockchip RK3588S搭載のOrange Pi 5が2022年12月1日から発売開始、ということで、プレセールが始まりました。

AliexressでRAM8GBモデルが送料込みで$84.2というなかなかに安い価格となっています。

他社動向を考えると安くても$120はするだろう、と思っていただけに、この価格は驚きの一言です。

さて、このOrange Pi 5、実は2022年7月の発表時点から構成に変化が出ています。

出典1:2022年7月15日付けのOrange Pi 5スペックページ
出典2:2022年11月11日付けのOrange Pi 5スペックページ

まずは表面の比較

7月版にあった「Wi-Fi 6 + Bluetooth」と「32GB EMMC Flash」が削除され、「16MB SPI Flash」と裏面に「M.2 NVMe 対応スロット」が追加されました。

7月版では恐らくEIAJ#2(PSPと同じやつ)だと思われる電源だったものが、Type-Cコネクタに変更・・・これはいいような悪いような・・・


続いて裏面

7月版の方だと、「CODEC(ES8388)」と「RTC」が書かれてないけど、配置が同じなのでこれについては変更無し。

7月版との大きな変更点は「M.2 PCIe2.0 (Supports 2242 NVMe SSD」と、M.2スロットが追加されたということ。

これにより、microSDの壊れやすさを気にする必要がなくなる、というのは大きな利点と言えます。

M.2 スロット搭載を$100を下回る価格で投入してきたのは予想外でした。

とりあえず為替レートがいろいろ動いているなか、1ドル151円換算のPayPal決済で発注してみました。

発注後、メッセージが飛んできて、2022年12月1日発送予定になるので、それまでの間「Extend delivery」ボタンを押してキャンセルされないような日数を追加してくれ、とのことです。

つまり、11/11時点で標準では「11 days」、つまり11/22にキャンセル処理がされる、ということになるので「Extend delivery」押して「14」ぐらいを入力して、25daysと12/1を超えるような日数にする、ということです

私の場合、ここで指定する日数が新しい日数なのか追加する日数なのかがわからなかったので、とりあえず「30」と入力してみたところ「41days」になりました。

このExtend delivyer設定を忘れるとAliexpress側の自動処理によって発注がキャンセルされてしまうので注意してください。


2022/11/15追記

16GBモデルの販売がプレセール価格$105(送料$11.31)で開始されました。

たしかに公式製品ページに「4GB/8GB/16GB/32GB(LPDDR4/4x)」って書いてあったけど、ほんとに16GBモデルが出るとは・・・

32GBモデルはいくらになるのかな?


2022/11/17追記

Orange Pi 5が要求しているType-Cコネクタで5V4Aをどうするかなーと秋月電子に行ってみたところ「スイッチングACアダプター(USB ACアダプター) Type-Cオス 5.1V3.8A(M-16293)」が950円だったので買っておきました。まだこれがOrange Pi 5で不足無く使えるかどうかはまだわかりません。

Oracle CloudでのUbuntu インスタンス上のOracle Cloud Agentのアップデート


Oracle Cloud上のUbuntuインスタンスにはOracle Cloud Agentがsnapパッケージでインストールされている。

ただ、ドキュメントにはインストール手法は解説があるが、アップデート手法について記載がない。

まずは、snapでインストールされているパッケージ一覧を出してみる

ubuntu@ubuntu:~$ snap list
Name                Version      Rev    Tracking         Publisher   Notes
core18              20211215     2289   latest/stable    canonical?  base
core20              20220114     1332   latest/stable    canonical?  base
lxd                 4.0.8        21843  4.0/stable/…     canonical?  -
oracle-cloud-agent  1.19.0-1130  31     latest/stable/…  oci.osi     classic
snapd               2.54.2       14553  latest/stable    canonical?  snapd
ubuntu@ubuntu:~$

次に「oracle-cloud-agent」について個別情報を取得

ubuntu@ubuntu:~$ snap info oracle-cloud-agent
name:      oracle-cloud-agent
summary:   Oracle Cloud Agent
publisher: Oracle Cloud Infrastructure (oci.osi)
store-url: https://snapcraft.io/oracle-cloud-agent
license:   unset
description: |
  Oracle Cloud Infrastructure agent for compute instance management and
  monitoring.
services:
  oracle-cloud-agent:                            simple, enabled, active
  oracle-cloud-agent.oracle-cloud-agent-updater: simple, enabled, active
snap-id:      ltx4XjES2e2ujitNIuO5GxPYDM6lp6ry
tracking:     latest/stable/ubuntu-20.04
refresh-date: 2022-02-15
channels:
  latest/stable:    1.22.0-2    2022-04-25 (37) 18MB classic
  latest/candidate: 1.22.0-2    2022-04-08 (37) 18MB classic
  latest/beta:      1.22.0-2    2022-04-08 (37) 18MB classic
  latest/edge:      ↑
installed:          1.19.0-1130            (31) 21MB classic
ubuntu@ubuntu:~$

installedが1.19.0-1130で、最新(latest)が1.22.0-2とアップデートが出ていることが分かる。

snapの更新は「sudo snap refresh」で行う。

ubuntu@ubuntu:~$ snap refresh
error: access denied (try with sudo)
ubuntu@ubuntu:~$ sudo snap refresh
Handling re-refresh of "core18", "core20", "lxd", "oracle-cloud-agent", "snapd" Handling re-refresh of "core18", "core20", "lxd", "oracle-cloud-agent", "snapd" Handling re-refresh of "core18", "core20", "lxd", "oracle-cloud-agent", "snapd" 2022-05-06T07:14:40Z INFO Waiting for automatic snapd restart...
oracle-cloud-agent (stable/ubuntu-20.04) 1.22.0-2 from Oracle Cloud Infrastructure (oci.osi) refreshed
snapd 2.55.3 from Canonical? refreshed
core18 20220309 from Canonical? refreshed
core20 20220329 from Canonical? refreshed
lxd (4.0/stable) 4.0.9-8e2046b from Canonical? refreshed
ubuntu@ubuntu:~$

そして、パッケージ情報を取得し、更新されたことを確認する。

ubuntu@ubuntu:~$ snap list
Name                Version        Rev    Tracking         Publisher   Notes
core18              20220309       2349   latest/stable    canonical?  base
core20              20220329       1437   latest/stable    canonical?  base
lxd                 4.0.9-8e2046b  22761  4.0/stable/…     canonical?  -
oracle-cloud-agent  1.22.0-2       37     latest/stable/…  oci.osi     classic
snapd               2.55.3         15541  latest/stable    canonical?  snapd
ubuntu@ubuntu:~$ snap info oracle-cloud-agent
name:      oracle-cloud-agent
summary:   Oracle Cloud Agent
publisher: Oracle Cloud Infrastructure (oci.osi)
store-url: https://snapcraft.io/oracle-cloud-agent
contact:   oci_osi_grp@oracle.com
license:   unset
description: |
  Oracle Cloud Infrastructure agent for compute instance management and
  monitoring.
services:
  oracle-cloud-agent:                            simple, enabled, active
  oracle-cloud-agent.oracle-cloud-agent-updater: simple, enabled, active
snap-id:      ltx4XjES2e2ujitNIuO5GxPYDM6lp6ry
tracking:     latest/stable/ubuntu-20.04
refresh-date: today at 07:14 UTC
channels:
  latest/stable:    1.22.0-2 2022-04-25 (37) 18MB classic
  latest/candidate: 1.22.0-2 2022-04-08 (37) 18MB classic
  latest/beta:      1.22.0-2 2022-04-08 (37) 18MB classic
  latest/edge:      ↑
installed:          1.22.0-2            (37) 18MB classic
ubuntu@ubuntu:~$

IPv6アクセス可能なOracle Cloudインスタンスを作る


Oracle CloudのTokyoリージョンで、久しぶりにFree TierのARMインスタンスが作れるようになっていたので、最新の手順確認をしてみる。

前提条件: Oracle Cloud側の仮想クラウドネットワーク(VNC)は既にIPv6が有効化されていること。(参考資料:Oracle Cloudですでに作成済みのネットワークに対してIPv6を有効にする方法)

Oracle Cloudコンソール上のインスタンス設定での確認点

2022/05/06時点でも、インスタンス作成時はIPv6が有効化されていないので、手動でIPv6を使える様にする必要がある。

インスタンス詳細の「アタッチされたVNIC」を開いて確認する。

左下の[リソース]-[IPv6アドレス]を選択する

「IPv6アドレスの割当て」をクリック

特にこだわりがなければ、空欄のまま一番下にある「割当て」をクリック

これで設定上はIPv6アドレスが割り当てられた。

Ubuntu 20.04インスタンスの場合

Canonical-Ubuntu-20.04-aarch64-2022.02.15-0 で作成したインスタンスの場合、起動直後は以下の様な状態でした。

ubuntu@ubuntu:~$ ip a s
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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 02:00:17:02:7d:5f brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.220/24 brd 10.0.0.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::17ff:fe02:7d5f/64 scope link
       valid_lft forever preferred_lft forever
ubuntu@ubuntu:~$

IPv6を有効化してしばらく放置していたところ、下記の様に自動的にIPv6アドレスが追加されました。

ubuntu@ubuntu:~$ ip a s
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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 02:00:17:02:7d:5f brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.220/24 brd 10.0.0.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 2603:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:5536/128 scope global dynamic noprefixroute
       valid_lft 7353sec preferred_lft 7053sec
    inet6 fe80::17ff:fe02:7d5f/64 scope link
       valid_lft forever preferred_lft forever
ubuntu@ubuntu:~$

OS再起動後もIPv6アドレス割当ては継続されていました。

Oracle Linux8インスタンスの場合

Oracle-Linux-8.5-aarch64-2022.03.17-1  を使用したところ、相変わらずfirewalldに対するdhcpv6-clientの許可が出されていないためIPv6アドレス取得が出来ない状態でした。

なので、「sudo firewall-cmd –permanent –add-service=dhcpv6-client」でルールを追加して、OS再起動で対応させました。

$ sudo firewall-cmd --permanent --add-service=dhcpv6-client
success
$ sudo firewall-cmd --reload
success
$ sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3
  sources:
  services: dhcpv6-client ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
$