MTDパーティションの命名方式

MTDパーティションの命名方式

次のブートログにリストされているMTDパーティションの命名方式は何ですか?

5 cmdlinepart partitions found on MTD device phys_mapped_flash
Creating 5 MTD partitions on "phys_mapped_flash":
0x00000000-0x00080000 : "bootloader" 
0x00080000-0x00680000 : "kernel"
0x00680000-0x01680000 : "rootfs" 
0x01680000-0x01780000 : "data"
0x01780000-0x017a0000 : "bootload-env"

具体的には、U-Bootプロンプトのコマンドの引数として「rootfs」パーティションを指定するために使用される命名スキームが何であるかを尋ねました。

setenv bootargs 'root= ???????'

IMO、指定する必要がありますルート= これは、ブートログにカーネルがルートデバイスが何であるかが不明であることを示すためです。

VFS: Cannot open root device "<NULL>" or unknown-block(0,0)
Please append a correct "root=" boot option
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

...開始ログには次の内容も表示されます。

Kernel command line:  bootoctlinux 0x2a00200 mtdparts=phys_mapped_flash:512k(bootloader)ro,6M(kernel),16M(rootfs),1024k(data),128k(bootload-env) console=ttyS0,115200

注:ルートファイルシステムは、カーネルELFファイル(vmlinux64)の埋め込みセクション(.init.ramfs)にgzipで圧縮されたcpioアーカイブとして保存され、ブートログはRAMに正常にロードされたことを示します。

Loading .init.ramfs @ 0xffffffff806ac000 (0x185ac7 bytes)

これはフラッシュストレージがわずか32MBの組み込みシステムです(Linuxカーネルv2.6.21.7(配布:MIPS64用Cavium-Octeon))。
U-Boot 1.1.1(開発バージョン、svnバージョン:176)

編集する: ある人は MTD1 と呼ばれ、ある人は MTD2 と呼ばれ、ある人は /dev/MTD1 と呼ばれ、ある人は /dev/mtd1 と呼ばれ、ある人は MTDblock1 と呼ばれ、ある人は mtdblock1 と呼ばれ、ある人ははmtdblock2と呼ばれ、ある人はubi.mtdblock1と呼ばれ、ある人はubi:mtdblock1と呼ばれます。 (なぜコロンがあるのですか?)ちょっと…
真実は何ですか? U-Bootプロンプトまたはブートログで確認するには?

答え1

root=/dev/mtdblock3またはいくつかのUBIオプション。あなたが気づいていないことは、他のファイルシステムに別の提案があるということです:-).これが/dev/mtd3ツリー内のファイルシステムで使用されているかどうかはわかりません。

ルートファイルシステムがブロックベース(非mtd対応)ファイルシステムの読み取り専用インスタンスの場合/dev/mtdblock3

ルートファイルシステムがJFFS2のインスタンスの場合は、/dev/mtdblock3.seeを使用してください。https://www.denx.de/wiki/DULG/RootFileSystemOnAJFFS2FileSystem 一般に、他のファイルシステムのいくつかの例については、以下を参照してください。http://www.denx.de/wiki/publish/DULG/DULG-enbw_cmc.html#Section_9.5.(しかし、UBIはこのセクションでは言及されていません。)

rootfs が UBI を使用している場合は、一部の UBI オプションを使用します。ただし、UBIの詳細は表示されませんでした。root=UBIデバイス/ボリュームを使用する前に、UBIデバイス/ボリュームに関するいくつかのカーネル起動メッセージが必要です。ねえ:http://www.linux-mtd.infradead.org/faq/ubifs.html#L_mount_ubifs UBIオプションの例を示しますubi.mtd=0 root=ubi0:rootfs rootfstype=ubifs。 mtdパーティションは「rootfs」として直接呼び出されるため、UBIではないと予想されます。

root=mtdblock3少なくともわからない場合は、この形式を使用しないでください。違いは、一部のinitramfsがそれをサポートしていない可能性があることです。ただし、root=/dev/mtdblock3カーネルを使用してルートファイルシステムをマウントし、initramfsを使用しないと、カーネルはこの形式を理解します。

関連情報