ブログ

Armadillo-X1/IoT(G3/G3L):eMMCのパーティションを5つ以上に切りなおす方法(インストールディスクイメージ作成ツールを活用)

at_kazutaka.bito
2021年11月1日 10時32分

Armadillo-X1/IoT(G3/G3L)のeMMCのパーティションを5つ以上に切りなおす方法です。

ここでは、インストールディスクイメージを使ったインストール(※1)の際にパーティションを切りなおす方法をとります。
(以下、主にArmadillo-IoT(G3)の場合で説明しますが、Armadillo-X1/IoT(G3/G3L)は同じ手順になります。)
※1)
Armadillo-IoT ゲートウェイ G3製品マニュアル
11.1. インストールディスクを使用する


Armadillo-X1/IoT(G3/G3L)のeMMCのパーティションは標準では下記のようになっています。
Armadillo-IoT ゲートウェイ G3製品マニュアル
表3.10 eMMC メモリマップ (型番: AGX314* の場合)

デバイスサイズタイプ用途
/dev/mmcblk2p132MBytesFAT32Linux カーネルイメージ/Device Tree Blob
/dev/mmcblk2p2約3.4GBytesext4Debian GNU/Linux
/dev/mmcblk2p3128MBytesFAT32リカバリイメージ(node-eye使用時)

上記のパーティション構成を下記のように切りなおす例で説明します。

デバイスサイズタイプ用途
/dev/mmcblk2p132MBFAT32Linux カーネルイメージ/Device Tree Blob
/dev/mmcblk2p2約2.4GBext4Debian GNU/Linux
/dev/mmcblk2p3128MBFAT32リカバリイメージ(node-eye使用時)
/dev/mmcblk2p4(以下、合計1GB分を確保)(Extended)拡張パーティション(今回追加)
/dev/mmcblk2p564Mext4論理パーティション(今回追加)
/dev/mmcblk2p6256MFAT32論理パーティション(今回追加)
/dev/mmcblk2p7約680Mext4論理パーティション(今回追加)

1. インストールディスクイメージ作成ツールの準備

ATDEに下記サイトより、インストールディスクイメージ作成ツール(make_install_disk_image-[version].tar.gz)を
ダウンロードします。
Armadillo-X1 開発用ツール
Armadillo-IoTゲートウェイ G3 開発用ツール
Armadillo-IoTゲートウェイ G3L 開発用ツール

下記マニュアル(※2)の
 1.必要なパッケージのインストール及び展開を行います。
の項目を参考に、ATDE上にインストールディスクイメージ作成ツールを展開します。

atmark@atde7:~$  sudo apt-get update && sudo apt-get install u-boot-tools
atmark@atde7:~$  tar xf make_install_disk_image-[version].tar.gz
atmark@atde7:~$  cd make_install_disk_image
atmark@atde7:~/make_install_disk_image$

※2)
Armadillo-IoT ゲートウェイ G3製品マニュアル
11.1.1. インストールディスクイメージの作成

2. パーティション構成の設定箇所の編集

インストールディスクイメージの作成ツール(make_install_disk_image)の
make_install_disk_image/core/images/install.sh
を下記のように編集します。
参考)
make_install_disk_image(v1.2.3)に下記編集を施したinstall.sh
install_20211025.sh

install.sh:8行目付近(パラメーターの追加)
末尾にPRI4_EMMC_PATH=${DEV_EMMC}p4以降の4行を追加します。

#
# internal parameters
#
DEV_QSPI=/dev/mtdblock0
DEV_EMMC=/dev/mmcblk2
DEV_EMMC_BOOT=${DEV_EMMC}boot0
EMMC_BOOT_RO=/sys/block/mmcblk2boot0/force_ro
KERNEL_EMMC_PATH=${DEV_EMMC}p1
USERLAND_EMMC_PATH=${DEV_EMMC}p2
RECOVERY_EMMC_PATH=${DEV_EMMC}p3
PRI4_EMMC_PATH=${DEV_EMMC}p4
EXT5_EMMC_PATH=${DEV_EMMC}p5
EXT6_EMMC_PATH=${DEV_EMMC}p6
EXT7_EMMC_PATH=${DEV_EMMC}p7

install.sh:71行目付近(パーティションの設定)
fdisk ${DEV_EMMC} <<EOFからEOFまでを下記のように編集します。

 fdisk ${DEV_EMMC} <<EOF
n
p
1
 
+32M
n
p
3
 
+128M
n
e
4

+1G
n
l

+64M
n
l

+256M
n
l


n
p


t
1
b
t
2
83
t
3
b
t
5
83
t
6
b
t
7
83
w
EOF

install.sh:102行目付近(ファイルシステムの設定)
末尾にmke2fs -t ext4 ${EXT5_EMMC_PATH}以降の3行を追加します。

mkfs.vfat ${KERNEL_EMMC_PATH}
mke2fs -t ext4 ${USERLAND_EMMC_PATH}
mkfs.vfat ${RECOVERY_EMMC_PATH}
mke2fs -t ext4 ${EXT5_EMMC_PATH}
mkfs.vfat ${EXT6_EMMC_PATH}
mke2fs -t ext4 ${EXT7_EMMC_PATH}

3. インストールイメージの作成とインストールの実行

上記マニュアル(※2)の
 2.ツールの使用方法を確認します。
以降の項目を参考に、インストールイメージを作成し、インストールを実行します。
ここでの例の場合、インストール後のパーティションは下記のように拡張パーティション(mmcblk2p4)に、
3つの論理パーティション(mmcblk2p5~7)が追加されています。

Device         Boot   Start     End Sectors   Size Id Type
/dev/mmcblk2p1           16   62591   62576  30.6M  b W95 FAT32
/dev/mmcblk2p2      2265856 7471103 5205248   2.5G 83 Linux
/dev/mmcblk2p3        62592  312639  250048 122.1M  b W95 FAT32
/dev/mmcblk2p4       312640 2265855 1953216 953.7M  5 Extended
/dev/mmcblk2p5       312656  437695  125040  61.1M 83 Linux
/dev/mmcblk2p6       437712  937791  500080 244.2M  b W95 FAT32
/dev/mmcblk2p7       937808 2265855 1328048 648.5M 83 Linux