PetaLinux プロジェクトの構造 - 2023.1 日本語

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

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

このセクションでは、PetaLinux プロジェクトのファイルおよびディレクトリ構造について簡単に説明します。PetaLinux プロジェクトは、一度に 1 つの Linux システム開発をサポートします。ビルドした Linux システムは次のコンポーネントで構成されます。

  • デバイス ツリー
  • FSBL (第 1 段階ブートローダー) (オプション)
  • U-Boot
  • Linux カーネル
  • ルート ファイル システムは次のコンポーネントで構成されます。
    • ビルド済みパッケージ
    • Linux ユーザー アプリケーション (オプション)
    • ユーザー モジュール (オプション)

PetaLinux プロジェクト ディレクトリにはプロジェクトのコンフィギュレーション ファイル、Linux サブシステム、およびサブシステムのコンポーネントが含まれます。petalinux-build コマンドを実行すると、これら設定ファイルを使用してプロジェクトがビルドされます。設定は petalinux-config を実行して変更できます。次に、PetaLinux プロジェクトの例を示します。

project-spec
   hw-description
   configs
   meta-user
pre-built
   linux
      implementation
      images 
      xen    
hardware
  <project-name>
components
   plnx_workspace
      device-tree
config.project
README
表 1. PetaLinux プロジェクトの説明
PetaLinux プロジェクトのファイル/ディレクトリ 説明
/.petalinux/ ツールの使用状況を格納するディレクトリ。
/config.project/ プロジェクト コンフィギュレーション ファイル。
/project-spec プロジェクト仕様。
/project-spec/hw-description AMD Vivado™ デザイン ツールからインポートしたハードウェア記述。
/project-spec/configs 最上位 config および RootFS config の設定ファイル。
/project-spec/configs/config ユーザー設定を格納する設定ファイル。
/project-spec/configs/rootfs_config ルート ファイル システムに使用される設定ファイル。
/project-spec/configs/busybox busybox の設定ファイル。
/project-spec/configs/init-ifupdown イーサネットの設定ファイル。
/components/plnx_workspace/device-tree/device-tree/

デバイス ツリーのビルドに使用するデバイス ツリー ファイル。petalinux-config により次のファイルが自動生成されます。

  • skeleton.dtsi (Zynq 7000 デバイスのみ)
  • zynq-7000.dtsi (Zynq 7000 デバイスのみ)
  • zynqmp.dtsi (Zynq UltraScale+ MPSoC のみ)
  • pcw.dtsi (Zynq 7000 デバイスおよび Zynq UltraScale+ MPSoC のみ)
  • pl.dtsi
  • system-conf.dtsi
  • system-top.dts
  • <bsp name>.dtsi
  • versal.dtsi (Versal)

これらのファイルはツールによって再生成されるため、ユーザーによる編集は推奨しません。

/project-spec/meta-user/recipes-bsp/device-tree/files/ system-user.dtsi は PetaLinux ツールでは変更されません。したがって、リビジョン管理システムで使用しても安全です。また、このディレクトリにユーザー独自の DTSI ファイルを追加することもできます。これには、<plnx-proj-root>/project-spec/meta-user/recipes-bsp/device-tree/device-tree.bbappend に DTSI ファイルを追加します。
/project-spec/meta-user/recipes-bsp/u-boot/files/platform-top.h (MicroBlaze プロセッサのみ) platform-top.h は U-Boot ソースの include/configs/ ディレクトリにコピーされます。
/project-spec/meta-user/conf/petalinuxbsp.conf この設定ファイルには、ビルド環境のすべてのローカル ユーザー設定が含まれます。Yocto メタ レイヤーの local.conf に置き換わるものです。
  1. すべてのパスは <plnx-proj-root> に対する相対パスです。

プロジェクトをビルドすると、次の 3 つのディレクトリも自動的に生成されます。

  • <plnx-proj-root>/build: ビルド用に生成されるファイルが格納されます。
  • <plnx-proj-root>/images: ブータブル イメージが格納されます。
  • <plnx-proj-root>/build/tmp: Yocto で生成されるファイルが格納されます。このディレクトリは、petalinux-config を使用して変更できます。
  • <plnx-proj-root>/components/yocto には Yocto eSDK が格納されています。このファイルは、petalinux-config/petalinux-build の実行時に生成されます。
  • petalinux-package --prebuilt を実行すると、 <PROJECT>/ に pre-built/ ディレクトリが作成され、<PROJECT>/images/linux ディレクトリから <PROJECT>/pre-built/linux/images/ ディレクトリにビルド イメージ ファイルがコピーされます。

次に例を示します。

├── build
│   ├── bitbake-cookerdaemon.log
│   ├── build.log
│   ├── cache
│   ├── conf
│   ├── downloads
│   ├── misc
│   ├── sstate-cache
│   └── tmp
├── components
│   ├── plnx_workspace
│   └── yocto
├── config.project
├── hardware
│   └── project-name
├── images
│   └── linux
├── pre-built
│   └── linux
├── project-spec
│   ├── attributes
│   ├── configs
│   ├── hw-description
│   └── meta-user
└── README
注記: <plnx-proj-root>/build/ は自動的に生成されます。このディレクトリのファイルは手動で編集しないでください。このディレクトリのファイルは、petalinux-config または petalinux-build を実行するとアップデートされます。<plnx-proj-root>/images/ も自動的に生成されます。このディレクトリのファイルは、petalinux-build を実行するとアップデートされます。

次の表に、AMD Zynq™ UltraScale+™ MPSoC の場合の例を示します。

デフォルトでは、空き容量を確保するためにビルド中間生成物は petalinux-build 実行後に削除されます。<plnx-proj-root>/project-spec/meta-user/conf/petalinuxbsp.conf に「INHERIT:remove = "rm_work"」を追加するとビルド中間生成物を残すことができますが、プロジェクトの容量が大きくなります。

表 2. PetaLinux プロジェクトのビルド ディレクトリ
PetaLinux プロジェクトのビルド ディレクトリ 説明
<plnx-proj-root>/build/build.log ビルドのログ ファイル。
<plnx-proj-root>/build/misc/config/ Linux サブシステムのビルド関連ファイルを格納するディレクトリ。
<plnx-proj-root>/build/misc/rootfs_config/ RootFS のビルド関連ファイルを格納するディレクトリ。
${TMPDIR}/work/zynqmp_generic-xilinx-linux/petalinux-image-minimal/1.0-r0/rootfs ターゲットの RootFS コピー。これはステージング ディレクトリです。
${TMPDIR}/zynqmp_generic-xilinx-linux ユーザー アプリケーション/ライブラリのビルドに必要なライブラリとヘッダー ファイルを格納するステージ ディレクトリ。
${TMPDIR}/work/zynqmp_generic-xilinx-linux/linux-xlnx/ カーネルのビルド関連ファイルを格納するディレクトリ。
${TMPDIR}/work/zynqmp_generic-xilinx-linux/u-boot-xlnx U-Boot のビルド関連ファイルを格納するディレクトリ。
<plnx-proj-root>/components/plnx_workspace/device-tree/device-tree" デバイス ツリーのビルド関連ファイルを格納するディレクトリ。
<plnx-proj-root>/components/yocto Yocto eSDK ファイルを格納するディレクトリ。
表 3. PetaLinux プロジェクトのイメージ ディレクトリ
PetaLinux プロジェクトのイメージ ディレクトリ 説明
<plnx-proj-root>/images/linux/ Linux サブシステムのブータブル イメージを格納するディレクトリ
<plnx-proj-root>/images/linux Xen ハイパーバイザーのブータブル イメージを格納するディレクトリ