このセクションでは、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
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/ |
デバイス ツリーのビルドに使用するデバイス ツリー ファイル。
これらのファイルはツールによって再生成されるため、ユーザーによる編集は推奨しません。 |
/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 に置き換わるものです。 |
|
プロジェクトをビルドすると、次の 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"
」を追加するとビルド中間生成物を残すことができますが、プロジェクトの容量が大きくなります。
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 ファイルを格納するディレクトリ。 |
PetaLinux プロジェクトのイメージ ディレクトリ | 説明 |
---|---|
<plnx-proj-root>/images/linux/ | Linux サブシステムのブータブル イメージを格納するディレクトリ |
<plnx-proj-root>/images/linux | Xen ハイパーバイザーのブータブル イメージを格納するディレクトリ |