[Image Packaging Configuration] サブメニューでは、次のイメージ パッケージ設定を指定します。
- 必要なルート ファイル システム タイプの追加。
- 生成されたブータブル カーネル イメージのファイル名。
- Linux カーネル イメージのハッシュ関数。
- DTB パディング サイズ。
- ブータブル イメージをホスト TFTP サーバー ディレクトリにコピーするかどうかを指定。
petalinux-build
ツールでは、常にカーネル イメージとして FIT イメージが生成されます。メタユーザー レイヤーの変更
旧リリースでは、メタユーザー レイヤーで u-boot-zynq-scr.bbappend および bootcmd ファイルを使用できました。2023.1 リリースでは、これらのファイルはメタユーザー レイヤーから削除され、<plnx-proj-root>/components/yocto/layers/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr にある Yocto eSDK に移動しました。これらのファイルを見つけるには、petalinux-config/petalinux-build
コマンドを実行します。
[buildtools-extended]
petalinux-configuration
のオプションとして、buildtools-extended
が追加されました。このオプションをオンにすると、PetaLinux ツールの一部として gcc およびその他のバイナリを使用します。Yocto の新バージョン (Honister) を使用してプロジェクトをビルドする場合、gcc のバージョンをバージョン 6 より新しくする必要がありますが、サポートしているオペレーティング システムの大半はこれにデフォルトで対応していません。このオプションをオンにすると、この問題を回避できます。
[serial-autologin-root]
PetaLinux ツールの serial-autologin-root オプションは、デフォルトで無効になっています。 petalinux-config -c
rootfs -→ Image Features -→ [ ] serial-autologin-root
で有効にできます。
[Linux Components Selection]
menuconfig に追加された Image selector オプションです。デフォルトではオフになっています。
RAM ベースのファイル システムを変更するオプション
次の図にハイライトされているように、RAM ベースの初期ルート ファイル システムをビルドする menuconfig オプションがあります。
menuconfig オプション [INITRAMFS/INITRD Image name] で、初期 RAM ファイル システムのビルドに使用される Yocto イメージ レシピ名を指定できます。デフォルトでは、Zynq 7000 デバイスおよび MicroBlaze プロセッサでは petalinux-image-minimal に設定され、Zynq UltraScale+ MPSoC および Versal アダプティブ SoC では petalinux-initramfs-image に設定されます。petalinux-initramfs-image は、images/linux で ramdisk.cpio.gz.u-boot として運用される小さなファイル システムです。また、このファイル システムは image.ub として FIT イメージにパックされます。これにより、指定したイメージをカーネル イメージ内にバンドルできます。INITRAMFS/INITRD イメージは、早期のシステム初期化 (たとえば、「実際の」ルート ファイル システムの位置の検出とマウントに必要なモジュールを読み込むとき) に使用される一時ルート ファイル システムを提供します。
設定後、bootargs は <plnx-proj-root>/configs/config で次のように変更されます。
init_fatal_sh=1:
Launch the initramfs prompt if the specified device not available.
<plnx-proj-root>/images/linux には次の 2 つのルート ファイル システムが表示されます。
ramdisk.cpio, ramdisk.cpio.gz.u-boot etc..
rootfs.cpio, rootfs.cpio.gz.u-boot etc..
switch_root
を使用して実際のファイル システムとして使用できるかが検証されます。ext rootfs を格納している SD デバイスを指定する場合は、次に示すように、system bootargs に ext4=/dev/mmcblk0p2:/rootfs
を追加します。petalinux-config ---> DTG Settings ---> Kernel Bootargs ---> [ ] generate boot args automatically
petalinux-config ---> DTG Settings ---> Kernel Bootargs ---> (earlycon console=ttyPS0,115200 clk_ignore_unused init_fatal_sh=1 ext4=/dev/mmcblk0p2:/rootfs) user set kernel bootargs
switch_root を無効にする
switch_root
コマンドは、Zynq UltraScale+ MPSoC および Versal デバイスに ext rootfs をマウントして使用するためのデフォルトのコマンドです。このコマンドを使用しない場合は、ビルド時に次のコマンドを使用して無効にします。
petalinux-config ---> Image Packaging Configuration --->
INITRAMFS/INITRD イメージ名で名前 petalinux-initramfs-image を petalinux-image-minimal に変更した後、petalinux-build
コマンドを実行します。
petalinux-initramfs-image
コマンドを使用して既にビルドされていた場合、ramdisk.* イメージが images/linux フォルダーに引き続き表示されます。.混同しないように、タイム スタンプを確認してください。switch_root
が有効のときに Xen を有効にすると、Xen は ramfs ブートのみをサポートするため、ビルド エラーが表示されます。switch_root
を有効にすると、ext4 ベースのブートが有効になります。この問題を解決するには、上記の設定を petalinux-initramfs-image
から petalinux-image-minimal
に変更します。