LoginSignup
8
8

More than 3 years have passed since last update.

SDカードイメージの作成

Posted at

経緯

第2回AIエッジコンテスト(実装コンテスト①)に参加しています。
その過程でSDカードイメージを作る必要があったので、メモとして残します。
私はWSL上のUbuntuで操作していますが、Linuxであれば同じ操作でいけると思います。

要件

提出物詳細 (submission_details.pdf)より

  • SDカードバイナリイメージ(e.g. sd.img)
    • SDカードイメージにはboot.bin(uboot+bitstream)、LinuxKernel、アプリを含めて「 Win32 DiskImager 」などのソフトでIMG形式のファイルを作成してください。
    • 審査の過程では、Ultra96ボードのSDカードのセットアップで使用した「Etcher」を用いて動作確認を行います。

手順

イメージ自体はUltra96V2向けVitis AI(2019.2)の組み立て方。を参照し作成しています。

サイズが8GiBのimageを作成

$ truncate -s 8GiB sd.img

使用されていないループデバイスを確認

$ sudo losetup -f
/dev/loop0

使用されていないループデバイスにsd.imgを関連付ける

$ sudo losetup /dev/loop0 sd.img

パーティショニングとフォーマット

$ # 8GiB中、先頭2GiBをfat32、残りをext4で確保
$ sudo parted /dev/loop0 -s mklabel msdos -s mkpart primary fat32 0 2GiB -s mkpart primary ext4 2GiB 100%
$
$ # bootをfat32でフォーマット
$ sudo mkfs.vfat /dev/loop0p1
$ # rootをext4でフォーマット
$ sudo mkfs.ext4 /dev/loop0p2

マウント

$ # マウントポイント作成
$ mkdir -p ./mnt/boot ./mnt/root
$
$ # マウントする
$ sudo mount /dev/loop0p1 ./mnt/boot/
$ sudo mount /dev/loop0p2 ./mnt/root/

データの格納

$ # boot領域のデータコピー
$ sudo cp ./make_ultra96/sd_card/boot/* ./mnt/boot/
$
$ # root領域のデータをコピー
$ sudo tar -C ./mnt/root/ -xzvf ./make_ultra96/sd_card/rootfs/rootfs.tar.gz
$ # 追加で必要なデータは、 ./mnt/root/home/root 以下に置けばOK
$
$ # キャッシュ上のデータをディスクへ反映
$ sudo sync

マウント解除

$ sudo umount ./mnt/boot
$ sudo umount ./mnt/root
$ sudo losetup -d /dev/loop0

あとは、sd.imgをBalenaEcher等のツールで焼けばOK。

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8