Raspberry PiはRaspberry Pi財団の登録商標です。
本ページはRaspberry PiからArmadillo-IoT ゲートウェイ G4への移行手順のソフトウェア編です。
ハードウェア移行手順を完了している前提で解説しています。
そちらの手順をまだ行っていない方は、先にハードウェア移行手順 のページの手順を完了させてください。
ハードウェアの移行が可能であることが分かったら、次はソフトウェアの移行を行います。
本手順を実行するにはRaspberry Piで64bit OSを使用している必要があります。
ハードウェア移行手順の末尾でも記したように、ソフトウェアの移行の可否判断には移行先Armadilloが必要になります。
必要なもの
- ATDEを起動できるPC
- 移行先Armadillo
以降の手順で、Raspberry PiのrootfsをArmadillo-IoT ゲートウェイ G4上で動作しているPodmanのイメージに変換し、コンテナとして起動します。
Raspberry Piのrootfsをtarファイルに圧縮
まず、Raspberry Piのrootfsをtarファイルに圧縮します。
以下に、SDカードに保存したrootfsを使用する場合とimgファイルとして保存したrootfsを使用する場合について記載します。
SDカードのrootfsを使用する場合
- ATDEにRaspberry Piで使用しているSDカードを接続します。
- SDカードがマウントされていることを確認します。
※/dev/sdbと/media/atmark/rootfsの箇所はご使用の環境で変わる可能性がありますので、適宜読み替えてください。
[ATDE ~]$ mount (省略) /dev/sdb2 on /media/atmark/rootfs type ext4 (ro,nosuid,nodev,relatime,uhelper=udisks2) /dev/sdb1 on /media/atmark/boot type vfat (ro,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
- Raspberry Piのrootfsをtarファイルに圧縮します。
[ATDE ~]$ sudo tar cf rpi_rootfs.tar -C /media/atmark/rootfs ./ [ATDE ~]$ ls rpi_rootfs.tar rpi_rootfs.tar
- SDカードをアンマウントします。
[ATDE ~]$ sudo umount /dev/sdb1 [ATDE ~]$ sudo umount /dev/sdb2
imgファイルのrootfsを使用する場合
- ATDEにRaspberry Piで使用しているimgファイルを保存します。
- imgファイルをループバックデバイスとして使用します。
※/dev/loop0の箇所はご使用の環境で変わる可能性がありますので、適宜読み替えてください。
[ATDE ~]$ sudo losetup --show -f -P /path/to/Raspberry_Pi_img /dev/loop0
- rpiディレクトリを作成し、rootfsをループバックデバイスとしてマウントします。
[ATDE ~]$ mkdir rpi [ATDE ~]$ sudo mount /dev/loop0p2 rpi
- Raspberry Piのrootfsをtarファイルに圧縮します。
[ATDE ~]$ sudo tar cf rpi_rootfs.tar -C rpi ./ [ATDE ~]$ ls rpi_rootfs.tar rpi_rootfs.tar
- ループバックデバイスを削除します。
[ATDE ~]$ sudo losetup -d /dev/loop0
rootfsをPodmanのイメージとして読み込む
先ほど作成したrpi_rootfs.tarをArmadillo-IoT ゲートウェイ G4上で動作しているPodmanにイメージとして読み込みます。
- 作成したrpi_rootfs.tarをSDカードやUSBメモリ等の外部記憶装置に保存し、Armadillo-IoT ゲートウェイ G4に接続してください。
以降はArmadillo-IoT ゲートウェイ G4上での作業となります。 - 接続した外部記憶装置をマウントします。
※/dev/sdaの箇所はご使用の環境で変わる可能性がありますので、適宜読み替えてください。
[armadillo ~]# mount /dev/sda /mnt
- コンテナストレージをデフォルトのtmpfsからeMMCに変更します。
[armadillo ~]# podman_switch_storage --disk
- rpi_rootfs.tarをPodmanのイメージとして読み込みます。
[armadillo ~]# podman import /mnt/rpi_rootfs.tar rpi_image
- Podmanのイメージとして読み込めたことを確認します。
[armadillo ~]# podman images REPOSITORY TAG IMAGE ID CREATED SIZE localhost/rpi_image latest 1cc5baa64f9b 4 days ago 3.66 GB
- 読み込んだイメージをコンテナとして起動します。
[armadillo ~]# podman run -it --name=rpi_container localhost/rpi_image /bin/bash
コンテナに入ることができれば移行は完了です。
問題が解決できない場合には、Armadilloフォーラムにてご相談ください。