uCLinux(linux 4.9 nommu)VFS:ルートデバイス「(null)」を開くことができません。

uCLinux(linux 4.9 nommu)VFS:ルートデバイス「(null)」を開くことができません。

私はこのカーネルパニックに陥りました。

私が望むのは、initramfsをカーネルxipイメージに含めることです。ただし、Linuxはパニックを起こし、有効な「root =」rootfs値を渡すように指示します。しかし、Linuxはなぜこの入力を探すのでしょうか?

(実際に.cpioを提供していない唯一の理由は、「#includeが見つかりません」などのエラーのためにビルドできないためです)。しかし、デフォルトのinitramfsは正しく動作する必要がありますか?

CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_BLOCK=y
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_NULL_BLK is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=1
CONFIG_BLK_DEV_RAM_SIZE=4096

Linuxは「root =」パラメータに気をつけてはいけませんか? ? ?いいえ? ?

linux.configを完了してください。http://pastebin.com/gWGCeeCw

完全なUART出力:http://pastebin.com/Mk3c9su8

この記事を読んでくれてありがとう。

編集:「root = / dev / ram0」を指定すると、これが発生します。

[    0.580000] brd: module loaded
[    0.630000] loop: module loaded
[    0.650000] F2FS-fs (ram0): Magic Mismatch, valid(0xf2f52010) - read(0x0)
[    0.650000] F2FS-fs (ram0): Can't find valid F2FS filesystem in 1th superblock
[    0.650000] F2FS-fs (ram0): Magic Mismatch, valid(0xf2f52010) - read(0x0)
[    0.670000] F2FS-fs (ram0): Can't find valid F2FS filesystem in 2th superblock
[    0.680000] F2FS-fs (ram0): Magic Mismatch, valid(0xf2f52010) - read(0x0)
[    0.680000] F2FS-fs (ram0): Can't find valid F2FS filesystem in 1th superblock
[    0.690000] F2FS-fs (ram0): Magic Mismatch, valid(0xf2f52010) - read(0x0)
[    0.690000] F2FS-fs (ram0): Can't find valid F2FS filesystem in 2th superblock
[    0.700000] List of all partitions:
[    0.700000] 0100            4096 ram0 [    0.710000]  (driver?)
[    0.710000] No filesystem could mount root, tried: [    0.720000]  f2fs
[    0.720000] 
[    0.720000] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
[    0.720000] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
[    1.520000] random: fast init done

「ルートをマウントするファイルシステムがありません」が何を意味するのかわかりません。もちろん、あなたは(Linux)がルートを作成する必要があります!どうしたの?

ベストアンサー1

問題は2つあります。

  • 理由はわかりませんが、デフォルトの.cpioは機能しません。

  • オンラインで見つかった "stm32 Minimal blablabla" cpioは機能しません。

私はbuildrootを使ってシステム全体のビルドを実行し、すぐに動作し、rootfs.cpioを使って試してみました!

理由を見つけたらここに投稿します。

ボードの外部RAMは0xD0000000から始まりますが、ビルドルーティングされたシステムは0x90000000から始まるため調査します。両方のシステムが動作しています。どのように動作するのか分からない。ハハ。

おすすめ記事