petalinux-config の Switch_root - 2023.1 日本語

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

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

switch_root は、マウント ツリーのルートとしてファイル システム間の切り替えを行うために使用されるユーティリティです。主に、initramfs/initrd で使用されます。

PetaLinux Zynq UltraScale+ MPSoC および Versal BSP を使用する場合、デフォルトの menuconfig オプション (petalinux-config > Image Package Configuration > INITRAMFS/INITRD image name) は、petalinux-initramfs-image に設定されており、switch_root が有効になっています。対応するコンフィギュレーション イメージは、image.ub ファイルにパッケージ化され、また、イメージに initramfs が含まれる場合は、ramdisk がファイル名の先頭に付いた形式 (例: ramdisk.cpio.gz.u-boot) で、images/linux フォルダーにもコピーされます。

デフォルトで生成される ramdisk.cpio.gz.u-boot は、tiny ベースのルート ファイル システムで、ブートモードに関係なくリアルタイム rootfs ファイル システムとして使用される SD/eMMC の EXT パーティションを検索します。tiny rootfs システムの init スクリプトで rootfs がリアルタイムで見つからない場合、最終的に tiny ベースの rootfs がブートし、プロンプト「 '/#'」を表示します。

図 1. tiny ベースのルート ファイル システムのプロンプト

たとえば、QSPI ブート モードで BOOT.BINboot.scr、および image.ub ファイルをフラッシュ メモリに書き込んだ場合、tiny rootfs がブートし、マウントされる ext2/3/4 を検索して実際の rootfs として使用します。

PetaLinux でより大きな rootfs をサポートできるように、デフォルトの Zynq UltraScale+ MPSoC および Versal BSP のビルド済み/ビルド イメージは上記のように設定されます。TEMPLATE プロジェクトでは、PetaLinux 2022.1 リリース以降、デフォルトで switch_root が無効になっています。