2

通常の rootfs ではなく、静的にコンパイルされたhello_world.cファイル、つまりhello_world_static.outを使用して imx53-qsb ボードを起動したいと考えています。これを実現するために、hello_world.cファイルを作成して静的にクロス コンパイルし、SD カードのmmcblk0p1 ext4パーティションに配置しました。uImageu-boot.imxを mmcblk0に配置しました。システムを起動した後、カーネル パニックが発生しました。

カーネル パニック - 同期していません: 初期化が見つかりません。init= オプションをカーネルに渡してみてください。ガイダンスについては、Linux Documentation/init.txt を参照してください。

解決策はありますか?ありがとう

4

1 に答える 1

1

init=(u-boot から) カーネル コマンドラインに param を指定する必要があります。たとえば、バイナリ ファイル名がで、それを(rootfs パーティションの) ディレクトリinitに配置した場合、u-boot のカーネル コマンドラインに (変数で) 追加する必要があります。/sbininit=/sbin/initbootargs

たとえば、次のことができます (実行bootmまたはbootiコマンドの前に、u-boot シェルで):

setenv bootargs root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init

また、本当に rootfs があるかどうかを確認してくださいmmcblk0p1。通常mmcblk0p1、RAM にコピーするブートローダー ファイルとイメージを含む FAT32 パーティションです。Rootfs は通常、mmcblk0p2(ext4 としてフォーマットされた) にあります。

詳細については、次を参照してください。

[1] Documentation/kernel-parameters.txtinit= ( paramを探します)

[2] u-boot README ファイル(行を探しますBoot Linux:)

[3]ドキュメンテーション/init.txt

于 2015-05-26T15:40:35.820 に答える