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) をルート ファイル システムとしてマウントまたは使用しません。 参考までに、完全なカーネルブートログを添付しました。 質問 カーネルがinitramfs (cpio.gz) をロードしない理由は何でしょうか?U-Boot によってメモリに正しくロードされているにもかかわらずですか? initramfs サポートに必要な、確認する必要がある必須のカーネル構成オプションはありますか? 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コミュニティ たぶんそれがあなたが望んでいることなのでしょう。 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-rootfs-in-spi-nor-demo/ta-p/1663994 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
よろしくお願いします。
View full article