Ryuz's tech blog

FPGAなどの技術ブログ

ZynqMP用のDebianイメージをWin32DiskImager用に作成してみる

はじめに

ikwzam 氏のZynqMP 用の Debianイメージにはいつもお世話になっております。

一方で、古い Windows 環境しかないときにSDカードイメージを新規に作ろうとすると何気に苦労するので、Win32DiskImagerなどで書き込めるイメージにできないかと思っていました。

丁度 Windows11 で、WSL2 から SDカードをマウントできる環境も整ったのと、ikwzam 氏の許可もいただけたので、ちょっと試しに作ってみたイメージを試験的においてみたいと思います。

といっても大したことはしていなくて

  • 小さめのパーティーションを作っていつも通りインストールする
  • パーティーションサイズで dd コマンドでイメージを作る

と、やっただけです。

作成してみたイメージその他を私の OneDriveに共有しておきます。

ただし、こちらも私の OneDrive の契約と容量の都合次第なので、急になくなる場合もあることは予めお断りしておきます。

使い方

私が今メインで利用している Ultra96-V2 用の v2020.2.1 イメージを 下記に置いております。

ダウンロードして解凍後に、Win32DiskImager などで SDカードに焼き込んでください。

その後、SD カードを Ultra96-V2 に差し込むと起動します。

特になんの初期設定もできていませんので、wifi の設定などは別途行ってください。

あと、殆ど試してないのですが、v2021.1.1 も作ってみたので、下記に置いておきます。

パーティーション拡張

なお、この段階ではパーティーションサイズは小さいですので、パーティーション拡張を行うことが望ましいです。

いろいろなやり方があるようですが、私は下記のようにやってみました。

まず root でログインします(パスワードは admin)。

ログインしたら

sfdisk -l /dev/mmcblk0

としてセクタ数を確認します。

sfdisk -l /dev/mmcblk0

上の例だと クラスタサイズが 512 bytesで、SDカード全体で 30703616 sectors と知ることができます。また 16G のSDカードなのに 2G しか Linux パーテーションがないこともわかります。

次に

sfdisk -d /dev/mmcblk0 > dump.txt
nano dump.txt

として、dump.txt を編集します。

/dev/mmcblk0p2 の size を、start から換算して 30703616 まで使うように計算して書き直します。

dump.txt 編集

その後、

sfdisk -f /dev/mmcblk0 < dump.txt
rm dump.txt
reboot

として、念のため再起動しておきます。

確認すると、ちゃんとパーティーションが拡張されたようです。

サイズ変更成功

ここで

resize2fs /dev/mmcblk0p2

としてファイルシステムのサイズ拡張を行えば完了です。

パーティーション拡張成功

おわりに

まだ Ultra96V2 の v2020.2.1 の1パターンしか試せておりませんが、手元に Kria KV260 も届きましたので、他のバージョンや、他のターゲット用にもイメージが作れれば順次実験していきたいと思います。

おまけ

以前 Ultra96 の Docker を動かす為に作ったファイルを置いておきます。

ZynqMP-FPGA-Linux-v2020.2.1 のイメージに対して、/mnt/boot 以下に展開してリブートすればよいはず(多分)

Ultra96V2-Debian-v2020.2-Docker.zip

自分用備忘録

SDのパーティーション

fat16:   8192- 532479  (524288) 
ext4:  532480-4726783 (4194304)

トータルサイズが 4726784 クラスタで、2,420,113,408 バイト( 2308M バイト) なので

dd if=/dev/xxx of=XXXX.img ibs=1M count=2308

みたいな感じでダンプして作くれる。