[Image Packaging Configuration] - 2023.1 日本語

PetaLinux ツール資料: リファレンス ガイド (UG1144)

Document ID
UG1144
Release Date
2023-05-16
Version
2023.1 日本語

[Image Packaging Configuration] サブメニューでは、次のイメージ パッケージ設定を指定します。

  • 必要なルート ファイル システム タイプの追加。
  • 生成されたブータブル カーネル イメージのファイル名。
  • Linux カーネル イメージのハッシュ関数。
  • DTB パディング サイズ。
  • ブータブル イメージをホスト TFTP サーバー ディレクトリにコピーするかどうかを指定。
ヒント: petalinux-build ツールでは、常にカーネル イメージとして FIT イメージが生成されます。
図 1. [Image Packaging Configuration]
注記: この変数<project>/project-spec/meta-user/conf/petalinuxbsp.conf IMAGE_ROOTFS_EXTRA_SPACE に値を追加することにより、ルート ファイル システムにスペースを追加できます。

メタユーザー レイヤーの変更

旧リリースでは、メタユーザー レイヤーで 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 オプションがあります。

図 2. RAM ベースのルート ファイル システム

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/linuxramdisk.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..
INITRD/INITRAMFS イメージとして petalinux-initramfs-image を使用すると、システムは tiny rootfs でブートし、ext2、ext3、および ext4 SD パーティションが検索され、そのパーティションの /dev,/etc および /sbin/init file/ フォルダーがチェックされ、rootfs が有効でコマンド 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-imagepetalinux-image-minimal に変更した後、petalinux-build コマンドを実行します。

注記: petalinux-initramfs-image コマンドを使用して既にビルドされていた場合、ramdisk.* イメージが images/linux フォルダーに引き続き表示されます。.混同しないように、タイム スタンプを確認してください。
注記: switch_root が有効のときに Xen を有効にすると、Xen は ramfs ブートのみをサポートするため、ビルド エラーが表示されます。switch_root を有効にすると、ext4 ベースのブートが有効になります。この問題を解決するには、上記の設定を petalinux-initramfs-image から petalinux-image-minimal に変更します。