ブログ

Armadillo-640/610:eMMCのパーティションを切りなおす方法

at_kazutaka.bito
2020年3月17日 13時13分

Armadillo-640/610で、eMMCのパーティションを切りなおす方法です。
ここでは、Armadillo-640を使用しています。
Armadillo-640をSDブートで起動して、fdiskコマンドでeMMCのパーティションの切りなおしと、イメージの書き換えを行ってます。

1. Armadillo-640をSDブートで起動

下記の手順で、Armadillo-640をSDブートで起動します。
Armadillo-640 製品マニュアル
14. SDブートの活用

2. 書きこむイメージの準備

ここでは例として、下記のファイル名のイメージを書きこむことにします。

ブートローダー:u-boot-a600-v2018.03-at8.imx
カーネル:uImage-a600-v4.14-at19
デバイスツリー:armadillo-640-v4.14-at19.dtb
ユーザーランド:debian-stretch-armhf-a600-20200214.tar.gz

書きこむイメージファイルの置き場所のディレクトリを作成します。
ここでは例として"images"とします。

root@armadillo:~# mkdir images

上記ディレクトリに書き込みイメージを置きます。
次の手順3で使用するスクリプト(part4_a640.sh、part567_a640.sh)は、
下記のようにimagesディレクトリ内にイメージがあることを想定しています。

root@armadillo:~# cd images
root@armadillo:~/images# ls
armadillo-640-v4.14-at19.dtb               u-boot-a600-v2018.03-at8.imx
debian-stretch-armhf-a600-20200214.tar.gz  uImage-a600-v4.14-at19


補足)イメージの置き場所とイメージのファイル名を上記の例から変更する場合は、
スクリプト(part4_a640.sh、part567_a640.sh)内の下記の箇所を変更してください。

IMAGES_FOLDER=/root/images
 
UBOOT_IMAGE=u-boot-a600-v2018.03-at8.imx
KERNEL_IMAGE=uImage-a600-v4.14-at19
DTB_IMAGE=armadillo-640-v4.14-at19.dtb
DEBIAN_IMAGE=debian-stretch-armhf-a600-20200214.tar.gz


3. パーティションの切り直しとイメージの書き込み

Armadillo-640に下記の添付のサンプルスクリプトを置きます。
part4_a640.sh(パーティションが4つまでの場合)
part567_a640.sh(パーティションが5以上の場合の例)

補足)上記スクリプトのemmc_format()にて、パーティションの切り直しと、ファイルシステムの作成を行ってます。
スクリプト内で実行しているfdisk、mkfs等の詳細については、下記を参考ください。
Armadillo-640 製品マニュアル
14.1.1. 手順:ブートディスクの作成例

part4_a640.shまたは、part567_a640.shを実行します

eMMCでブートすると、fdisk -l /dev/mmcblk0でパーティションが切りなおされていることが確認できます。

補足)標準イメージのパーティションは下記ような構成になっています。
mmcblk0p1:予約領域
mmcblk0p2:Linux カーネルイメージ, Device Tree Blob, Debian GNU/Linux
mmcblk0p3:予約領域

part4_a640.sh、part567_a640.shは下記のようにパーティション(※)を切りなおしています。
※)mmcblk0p4以降を追加

part4_a640.sh(パーティションが4つまでの場合の例)

Device         Boot  Start     End Sectors  Size Id Type
/dev/mmcblk0p1        2048   67583   65536   32M  b W95 FAT32
/dev/mmcblk0p2      854016 7405567 6551552  3.1G 83 Linux
/dev/mmcblk0p3       67584  329727  262144  128M  b W95 FAT32
/dev/mmcblk0p4      329728  854015  524288  256M 83 Linux


part567_a640.sh(パーティションが5以上の場合の例)

Device         Boot   Start     End Sectors  Size Id Type
/dev/mmcblk0p1         2048   67583   65536   32M  b W95 FAT32
/dev/mmcblk0p2      2426880 7405567 4978688  2.4G 83 Linux
/dev/mmcblk0p3        67584  329727  262144  128M  b W95 FAT32
/dev/mmcblk0p4       329728 2426879 2097152    1G  5 Extended
/dev/mmcblk0p5       331776  462847  131072   64M 83 Linux
/dev/mmcblk0p6       464896  989183  524288  256M 83 Linux
/dev/mmcblk0p7       991232 2426879 1435648  701M 83 Linux