この記事では、拡張子が .wic となっている SD カードイメージについて説明します。
はじめに
従来、SD カードイメージの拡張子には .img が使用されていましたが、比較的新しい環境では拡張子が .wic となっているケースが多くなってきています。SoC FPGA の Linux リファレンスである GSRD(Golden System Reference Design)の SD カードブート用イメージも、最新のイメージは .wic 形式に変わっています。
この記事では .wic 形式の SD カードイメージの使い方と、.wic 形式に変わったことで可能となった編集方法について説明します。
.wic イメージの書き込み方法
SD カードへのイメージ書き込みは、従来の .img 形式のファイルと同じ操作で対応可能です。 Windows® 環境であれば Win32 Disk Imager、Linux 環境の場合は dd コマンドを使用することで書き込みが行えます。 各 OS 環境での SD カードイメージの書き込み方法は以下の記事を参照ください。
参考:
SoC FPGA ブート用 SD カードイメージの作り方
.wic イメージの内容/書き込み結果
書き込み完了後の SD カードの内容を確認すると、従来の形式 .img を書き込んだ場合と同様のパーティション構造が確認できます。作成済みの SD カードイメージを使用する分には、従来の形式との違いを意識して頂くことなくご使用頂けます。
以下に .wic 形式が採用されている最新の GSRD 用 SD カードイメージの内容を掲載しておきます(パーティションの構成は以前と同様です)。
【図 1】GSRD 用 SD カードイメージ - Stratix® 10 SoC / Agilex™ SoC(ver21.1 pro 時点)
【図 2】GSRD 用 SD カードイメージ - Arria® 10 SoC(ver21.1 pro 時点)
.wic イメージの簡易編集(Linux 環境のみ)
Yocto プロジェクトを利用可能な Linux 環境であれば、wic コマンドを使用することで .wic 形式イメージに対して、ファイルの差し替え等の簡単な編集操作が可能です。
Yocto 向けビルド環境セットアップ(oe-init-build-env 実行)
wic コマンドを使用する際には、まず Yocto ビルド環境のセットアップ用スクリプトを実行します。
$ source poky/oe-init-build-env <build ディレクトリー>
スクリプト実行時のターミナルイメージは以下のようになります。
【図 3】Yocto ビルド環境セットアップ用スクリプト実行
Yocto プロジェクトの使い方は、公式ドキュメントおよび以下のコンテンツをご参照ください。
参考:
Welcome to the Yocto Project Documentation — The Yocto Project® dev documentation
SoC FPGA 向け Linux ビルド方法(Yocto Poky 編)
wic コマンド実行による簡易編集
Yocto ビルド環境のセットアップが正常に完了すると wic コマンドが利用可能です。
wic コマンドで利用可能な主な簡易編集操作は以下の通りです。wic イメージに含まれるファイルの表示や、複製および削除操作が可能です。事前に SD カードへイメージを書き込む必要はなく、.wic 形式のファイルを直接編集することができます。例えば、既存の .wic イメージに対して、Linux デバイスツリーファイルのみを差し替えたい場合などに有用です。
【表 1】wic コマンドにて利用可能な簡易編集操作
コマンド | 意味 | コマンドライン(引数の指定方法) |
wic ls |
リスト (表示) |
wic ls <image> wic ls <image>:<vfat or ext* partition> wic ls <image>:<vfat or ext* partition><path> wic ls <image>:<vfat or ext* partition><path> --native-sysroot <path> |
wic cp |
コピー (複製) |
wic cp <src> <dest>:<partition> wic cp <src>:<partition> <dest> wic cp <src> <dest-image>:<partition><path> wic cp <src> <dest-image>:<partition><path> --native-sysroot <path> |
wic rm |
リムーブ (削除) |
wic rm <src> <image>:<partition><path> wic rm <src> <image>:<partition><path> --native-sysroot <path> wic rm -r <image>:<partition><path> |
詳細は、「wic help」にてヘルプ表示が確認できます。「wic help ls」のように help に続けてコマンドを指定することで、各コマンドの詳細情報も表示されます。
【図 4】wic コマンドのヘルプ表示
まとめ
.wic 形式の SD カードイメージについて紹介しました。拡張子が .wic に変わった場合でも、従来の .img 形式と同じようにご使用頂けるということでご認識ください。
尚、.wic 形式は OpenEmbedded プロジェクトにて開発されて、Yocto プロジェクトで使用できるユーティリティーとして組み込まれています。詳しく知りたい方は、以下のドキュメントをご参照ください。
参考:
Common Tasks - Creating Partitioned Images Using Wic — The Yocto Project® dev documentation