今回はUltra96V2で動作するSDカードを生成します。
ZynqMPSoCを起動するSDカードは第一パーティションがFATファイルシステムでそのファイルシステムにあるboot.binを呼び出して起動します。
これが最小構成です。
今回はLinuxディストリビューションもあるので第二パーティションにLinuxシステムのルートファイルを置きます。
したがって、作成するSDカードの構成は次のようになります。
パーティション番号 | ファイルシステム | 容量 | 備考 |
---|---|---|---|
1 | VFAT | 500MB程度 | boot.bin、Linux Kernelや他にコピーしたいファイルの容量を確保します |
2 | ext4 | 1GB程度 | Linuxシステムのルートファイルを展開できるだけの容量を確保します |
SDカードのフォーマットはfdiskで紹介されることが多いですが今回はpartedを使用してパーティションを作成します。
SDカードは/dev/sdbに認識されていることを前提に次のように実行します。
DEVICE=/dev/sdb
sudo umount ${DEVICE}*
sudo parted -s -a optimal ${DEVICE} mklabel msdos
sudo parted -s -a optimal ${DEVICE} mkpart primary fat32 1 512
sudo parted -s -a optimal ${DEVICE} mkpart primary ext4 513 100%
sudo mkfs.vfat -n BOOT ${DEVICE}1
sudo mkfs.ext4 -F -L ROOT ${DEVICE}2
これでパーティションの作成とファイルシステムのフォーマットが完了します。
SDカードに必要なファイルは前回生成したboot.binの他にLinuxファイルシステムのファイルが必要であり、次のとおりです。
これらを作業ディレクトリにコピーしましょう。
$ cd create_sd
$ cp /home/hidemi/yocto/yocto_zeus/build_ultra96v2/tmp/deploy/images/ultra96v2/Image .
$ cp /home/hidemi/yocto/yocto_zeus/build_ultra96v2/tmp/deploy/images/ultra96v2/uEnv.txt .
$ cp /home/hidemi/yocto/yocto_zeus/build_ultra96v2/tmp/deploy/images/ultra96v2/zynqmp-ultra96-v2.dtb .
$ cp /home/hidemi/yocto/yocto_zeus/build_ultra96v2/tmp/deploy/images/ultra96v2/core-image-minimal-ultra96v2.tar.gz .
コピーしたファイルを次のように展開します。
sudo mount ${DEVICE}1 /mnt
sudo cp boot.bin /mnt
sudo cp Image /mnt
sudo cp uEnv.txt /mnt
sudo cp zynqmp-ultra96-v2.dtb /mnt
sync
sudo umount ${DEVICE}*
sudo mount ${DEVICE}2 /mnt
sudo tar xzvf core-image-minimal-ultra96v2.tar.gz -C /mnt
sync
sudo umount ${DEVICE}*
これでUltra96V2で動作するSDカードが生成できました。
できあがったSDカードでUltra96V2が起動するか確認しましょう。
次回は「Platformの作成」を勉強しましょう。