2259345_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2259345_ja-JP

2259345_ja-JP

SD カードから initramfs をロードする方法 (単一の FAT32 ブート パーティション)

こんにちは、

私はi.MX8M Plus EVKボードで作業しており、 SD カードのブート パーティション (FAT32) から直接ロードされたinitramfs をルート ファイル システムとして使用して Linux を起動したいと考えています。

SD カードには個別のルート ファイル システム パーティションが含まれていません

現在の設定

  • SDカードにはFAT32ブートパーティションが1つだけ含まれています

  • FAT32 パーティションに存在するファイル:

    • イメージ(U-boot+カーネル)

    • デバイスツリー BLOB (.dtb)

    • initramfs イメージ

質問

  1. initramfs 生成

    • initramfs イメージを生成するための推奨方法は何ですか?

    • initramfs はカーネルに組み込む必要がありますか、それとも別のイメージとしてロードする必要がありますか?

    • U-Boot を使用して SD カード (FAT32 パーティション) から initramfs をロードするにはどうすればよいですか?
  2. U-Boot環境コマンド

    • SD からカーネル、デバイス ツリー、および initramfs をロードするために必要な U-Boot コマンドまたは環境変数は何ですか。


Re: How to Load initramfs from SD Card (Single FAT32 Boot Partition)

こんにちは@Zhiming_Liuさん


あなたの指示に従って、あなたが共有した手順に従いました。
カーネル イメージと DTB を正常にロードできますが、 initramfs (cpio.gz) ルート ファイル システムがカーネルによってロードされていません

以下に、正確な U-Boot コマンドと動作を示します。

使用されるU-Bootコマンド

u-boot=> setenv bootargs console=ttymxc1,115200 root=/dev/ram rw
u-boot=> fatload mmc 1:1 Image_copy.gz${loadaddr} 13450466バイトを282ミリ秒 で 読み取りました (45.5 MiB/秒)
u-boot=> fatload mmc 1:1${fdt_addr} imx8mp-evk.dtb 82784バイトを4ミリ秒 で 読み取りました (19.7 MiB/秒)
u-boot=> fatload mmc 1:1${ramdisk_addr_r} core-image-minimal-initramfs-imx8mp-ddr4-evk.cpio.gz 12602736バイトを264ミリ秒 で 読み取りました (45.5 MiB/秒)
u-boot=> ブーツ${loadaddr} ${ramdisk_addr_r} : ${filesize} ${fdt_addr}
 

booti コマンドを実行すると、カーネルは起動を開始しますが、 initramfs (cpio.gz) をルート ファイル システムとしてマウントまたは使用しません

参考までに、完全なカーネルブートログを添付しました。

質問

  1. カーネルがinitramfs (cpio.gz) をロードしない理由は何でしょうか?U-Boot によってメモリに正しくロードされているにもかかわらずですか?

  2. initramfs サポートに必要な、確認する必要がある必須のカーネル構成オプションはありますか?

  3. i.MX8M Plus で initramfs を使用して起動する場合、bootargs 構成は正しいですか、それとも追加のパラメータが必要ですか?

Re: How to Load initramfs from SD Card (Single FAT32 Boot Partition)

こんにちは、


initramfs イメージを生成するための推奨方法は何ですか?

--> Yocto でbitbake core-image-minimal-initramfsを使用してビルドできます。

initramfs はカーネルに組み込む必要がありますか、それとも別のイメージとしてロードする必要がありますか?

--> それはあなたのニーズによって異なります。

U-Boot を使用して SD カード (FAT32 パーティション) から initramfs をロードするにはどうすればよいですか?
-->例は次のとおりです:

# If mmc0 is your sd card.
setenv bootargs console=ttymxc0,115200 root=/dev/ram rw
fatload mmc 0:1 ${loadaddr} Image
fatload mmc 0:1 ${fdt_addr} imx8mp-evk.dtb
fatload mmc 0:1 ${ramdisk_addr} xxxx_initramfs.cpio.gz
booti ${loadaddr} ${ramdisk_addr}:${filesize} ${fdt_addr}

board/beacon/imx8mn/imx8mn_beacon.envを参照できます。

boot_fdt=try
bootdelay=2
bootscript=echo Running bootscript from mmc ...; source
console=ttymxc1
fdt_addr=0x45000000
fdt_file=imx8mn-beacon-kit.dtb
finduuid=part uuid mmc ${mmcdev}:2 uuid
image=Image
initrd_addr=0x46000000
loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
loadramdisk=load mmc ${mmcdev} ${ramdisk_addr} ${ramdiskimage}
mmcargs=setenv bootargs console=${console},${baudrate}  root=PARTUUID=${uuid} rootwait rw ${mtdparts} ${optargs}
mmcautodetect=yes
mmcboot=echo Booting from mmc ...; run finduuid; run mmcargs; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then booti ${loadaddr} - ${fdt_addr}; else echo WARN: Cannot load the DT; fi; else echo wait for boot; fi;
mmcdev=1
mmcpart=1
netargs=setenv bootargs console=${console},${baudrate}  root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
netboot=echo Booting from net ...; run netargs;  if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; ${get_cmd} ${loadaddr} ${image}; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if ${get_cmd} ${fdt_addr} ${fdt_file}; then booti ${loadaddr} - ${fdt_addr}; else echo WARN: Cannot load the DT; fi; else booti; fi;
ramargs=setenv bootargs console=${console},${baudrate}  root=/dev/ram rw  ${optargs}
ramboot=echo Booting from RAMdisk...; run loadimage; run loadfdt; fdt addr $fdt_addr; run loadramdisk; run ramargs; booti ${loadaddr} ${ramdisk_addr} ${fdt_addr} ${optargs}
ramdisk_addr=0x46000000
ramdiskimage=rootfs.cpio.uboot
script=boot.scr



よろしくお願いします、
志明

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎12-16-2025 05:44 AM
更新者: