Howto

Raspberry PiからArmadilloへの移行ガイド-Armadillo-IoT ゲートウェイ G4 ソフトウェア移行手順-

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を使用する場合

  1. ATDEにRaspberry Piで使用しているSDカードを接続します。
  2. 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)
  1. Raspberry Piのrootfsをtarファイルに圧縮します。
[ATDE ~]$ sudo tar cf rpi_rootfs.tar -C /media/atmark/rootfs ./
[ATDE ~]$ ls rpi_rootfs.tar
rpi_rootfs.tar
  1. SDカードをアンマウントします。
[ATDE ~]$ sudo umount /dev/sdb1
[ATDE ~]$ sudo umount /dev/sdb2

imgファイルのrootfsを使用する場合

  1. ATDEにRaspberry Piで使用しているimgファイルを保存します。
  2. imgファイルをループバックデバイスとして使用します。
    ※/dev/loop0の箇所はご使用の環境で変わる可能性がありますので、適宜読み替えてください。
[ATDE ~]$ sudo losetup --show -f -P /path/to/Raspberry_Pi_img
/dev/loop0
  1. rpiディレクトリを作成し、rootfsをループバックデバイスとしてマウントします。
[ATDE ~]$ mkdir rpi
[ATDE ~]$ sudo mount /dev/loop0p2 rpi
  1. Raspberry Piのrootfsをtarファイルに圧縮します。
[ATDE ~]$ sudo tar cf rpi_rootfs.tar -C rpi ./
[ATDE ~]$ ls rpi_rootfs.tar
rpi_rootfs.tar
  1. ループバックデバイスを削除します。
[ATDE ~]$ sudo losetup -d /dev/loop0

rootfsをPodmanのイメージとして読み込む

先ほど作成したrpi_rootfs.tarをArmadillo-IoT ゲートウェイ G4上で動作しているPodmanにイメージとして読み込みます。

  1. 作成したrpi_rootfs.tarをSDカードやUSBメモリ等の外部記憶装置に保存し、Armadillo-IoT ゲートウェイ G4に接続してください。
    以降はArmadillo-IoT ゲートウェイ G4上での作業となります。
  2. 接続した外部記憶装置をマウントします。
    ※/dev/sdaの箇所はご使用の環境で変わる可能性がありますので、適宜読み替えてください。
[armadillo ~]# mount /dev/sda /mnt
  1. コンテナストレージをデフォルトのtmpfsからeMMCに変更します。
[armadillo ~]# podman_switch_storage --disk
  1. rpi_rootfs.tarをPodmanのイメージとして読み込みます。
[armadillo ~]# podman import /mnt/rpi_rootfs.tar rpi_image
  1. Podmanのイメージとして読み込めたことを確認します。
[armadillo ~]# podman images
REPOSITORY              TAG         IMAGE ID      CREATED     SIZE
localhost/rpi_image     latest      1cc5baa64f9b  4 days ago  3.66 GB
  1. 読み込んだイメージをコンテナとして起動します。
[armadillo ~]# podman run -it --name=rpi_container localhost/rpi_image /bin/bash

コンテナに入ることができれば移行は完了です。
問題が解決できない場合には、Armadilloフォーラムにてご相談ください。