1745427_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

1745427_ja-JP

1745427_ja-JP

core-image-tiny-initramfs.cpio.gz (または ramfs / ramdisk.gz) を実行する方法SDカードから

こんにちは、

8Mplus 評価ボードを使用して、core-image-tiny-initramfs または SD カードから ramfs を実行する必要があります。イメージをビルドすることはCANですが、それを使用するための正しいubootコマンドが見つかりません。他の投稿で core-image-tiny-initramfs.cpio.gz への参照が見られますが、それらの投稿には uboot コマンドがリストされていません。

次のコマンドを試しました:
setenv loadramdisk "mmc 2:2 0x80000000 /boot/ramdisk.gz をロード"
setenv ramargs "setenv bootargs ${mmcargs} root=/dev/ram0 rw rootfstype=ext4 ramdisk_size=0x20000000"
setenv ramboot "echo ramdisk から起動しています...; run ramargs; bootz ${loadaddr} 0x80000000 ${fdt_addr_r} "
setenv bootcmd "loadimage loadfdt loadramdisk ramboot を実行"

常に「zimage: Bad magic!」というエラー メッセージが表示されます。

問題は住所にあると思われます。imx8mp-evk.dtb のソースによると、RAM アドレスは有効であるはずですが、uboot からのメッセージはありません。


ありがとう、
スコット

i.MX 8M | i.MX 8M ミニ | i.MX 8M ナノRe: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card

こんにちは、 @goodspeed@ScottSJ@kimease

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

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

現在の設定

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

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

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

    • デバイスツリー BLOB (.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 run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card

SD カードで通常の rootfs ブートを使用する手順はありますが、両方の環境が必要です」とおっしゃっていることに気づきました。

SWUpdate OTA i.MX8MM EVK_rev3.pdfの35ページを読むことをお勧めします。

SWUpdate OTA i.MX8MM EVK / i.MX8QXP MEK - NXPコミュニティ


たぶんそれがあなたが望んでいることなのでしょう。

1.png

Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card

おそらくこのデモが役に立つでしょう。

これは単なる u-boot booti コマンドです。カーネルイメージフォーマット(Image、zImageなど)に応じて、bootiをbootzに変更できます。

ブーティ${loadaddr} ${initrd_addr} ${fdt_addr}

initrd_addr は、uramdisk_boot.rootfs.aarch64.img RAM ディスクの場所/アドレスです。

あなたのCASEは core-image-tiny-initramfs.cpio.gz になります。

|-- 0001-all-in-spi-demo-lf-5.10.72-2.2.0.patch --- このデモのパッチ
|-- デモバイナリ
| |-- flash.b0.bin --- b0 ブートローダー
| |-- flash.bin --- c0 ブートローダー
| |-- Image-imx8qxpc0mek.bin --- Linuxカーネル
| |-- imx8qxp-mek.dtb --- デバイスツリー
| |-- uramdisk_boot.rootfs.aarch64.img --- RAMディスク
| |-- uuu.qspi.all.b0.uuu --- b0 の uuu スクリプト
| `-- uuu.qspi.all.uuu --- c0 の uuu スクリプト
`-- readme.txt --- このファイル

https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/all-bootloader-device-tree-Linux-kernel-...


Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card

ドキュメントがどこにあるか分からなくても大丈夫です。これが「基本的な知識」であれば、どこかにドキュメントがあるはずですが、Web 検索を何回も行っても何も見つかりません。

私はさまざまな「ブート」コマンドをよく知っており、他のプラットフォームでも使用したことがあります。ソースコードとその他のブート構成を確認しました。nxp プラットフォームに必要な特定の値とパラメータを探しています。これは「core-image-tiny-initramfs」ビルドで利用できるはずですが、そのイメージを使用する手順が見つかりません。(SD カード上で通常の rootfs ブートを使用する手順はありますが、両方の環境が必要です。)

Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card

もう言いましたよ!!!
これは u-boot ドキュメントからのものです。それは文書です!!!

u-boot のヘルプを確認すると、ramdisk の使い方が簡単にわかります。


u-boot=> ヘルプブート
booti - メモリから Linux カーネルの「イメージ」形式を起動する

使用法:
booti [アドレス [initrd[:サイズ]] [fdt]]
- 'addr'に保存されているLinuxの'イメージ'を起動する
引数「initrd」はオプションであり、アドレスを指定します。
メモリ内の initrd の。オプションパラメータ「:size」を使用すると、
RAW initrd のサイズを指定します。
Linuxカーネルの起動にはフラットなデバイスツリーが必要なので、
デバイスツリーBLOBのアドレスを指定する3番目の引数
が必要です。デバイスツリーブロブでカーネルを起動するが、
initrd イメージがない場合は、initrd 引数に '-' を使用します。

バイナリリリース tar ボール内の uuu スクリプト 'example_kernel_emmc.uuu' を確認すると、ramdisk の使用方法がわかります。

FB: ucmd setenv fastboot_buffer ${loadaddr}
FB: ダウンロード -f _画像
FB: ucmd setenv fastboot_buffer ${fdt_addr}
FB: ダウンロード -f _board.dtb
FB: ucmd setenv fastboot_buffer ${initrd_addr}
FB: ダウンロード -f _initramfs.cpio.gz.uboot
#FB: ucmd setenv bootargs コンソール = ${console} 、 ${baudrate} earlycon = ${earlycon} 、 ${baudrate}
FB: アクション${kboot} ${loadaddr} ${initrd_addr} ${fdt_addr}

FB: アクション${kboot} ${loadaddr} ${initrd_addr} ${fdt_addr}
u-boot=> ヘルプブート
booti - メモリから Linux カーネルの「イメージ」形式を起動する

使用法:
booti [アドレス [initrd[:サイズ]] [fdt]]


kboot ここはbootiです
loadaddr ここはaddrです
initrd_addrはinitrdで、ramdiskで、core-image-tiny-initramfs.cpio.gzの可能性があります。
ここでのfdtはfdt_addrです


もう一度言いますが、私はすでにすべてを話しました!!!

「initrd イメージがない場合は、initrd 引数に '-' を使用します。」
そのため、Linux カーネルとデバイス ツリー dts のブート コマンド ラインでは、'-' がよく見られます。

ほとんどの場合、RAMディスクは必要ありません。

これは単なる u-boot の基本知識です。非常に基本的です。







Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card

こんにちは、

提供されている ramfs レシピの使用方法に関するドキュメントや情報はありますか?


ありがとう、
スコット

Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card

u-boot のヘルプを確認すると、ramdisk の使い方が簡単にわかります。


u-boot=> ヘルプブート
booti - メモリから Linux カーネルの「イメージ」形式を起動する

使用法:
booti [アドレス [initrd[:サイズ]] [fdt]]
- 'addr'に保存されているLinuxの'イメージ'を起動する
引数「initrd」はオプションであり、アドレスを指定します。
メモリ内の initrd の。オプションパラメータ「:size」を使用すると、
RAW initrd のサイズを指定します。
Linuxカーネルの起動にはフラットなデバイスツリーが必要なので、
デバイスツリーBLOBのアドレスを指定する3番目の引数
が必要です。デバイスツリーブロブでカーネルを起動するが、
initrd イメージがない場合は、initrd 引数に '-' を使用します。

Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card

こんにちは、

誰か答えを知っていますか?提供されている core-image-tiny-initramfs の使用に関するドキュメントはありますか?

ありがとう、
スコット

Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card

こんにちは、

単一の uboot から複数のカーネルや ramfs を起動する必要があります。ターゲットは uboot コードで決定でき、適切な環境変数を設定CAN。他のシステムでもこれを実行したことがあるので、ここでも実行できるはずです。

異なるカーネルを検出して使用するためのコードはすでにあります。ramfs を起動するには手順が必要です。


ありがとう、
スコット

Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card

こんにちは、

uboot をビルドしたいだけなら、スタンドアロンの uboot を使用しないのはなぜですか?詳しい情報については、第 3 章「U-Boot の移植」を参照してください。

https://www.nxp.com/docs/en/ユーザーガイド/IMX_PORTING_GUIDE.pdf


よろしくお願いします。


标记 (1)
无评分
版本历史
最后更新:
‎12-16-2025 02:25 AM
更新人: