まず、セットアップに関するいくつかの詳細:
- Linux-3.14.1
- ARMam335xチップ
- U-Bootブートローダー
私が達成しようとしていること:
- U-Bootは、initramfsを含むカーネルをロードします(このカーネルを1と呼びます)。
- U-Bootはこのカーネルを実行します。
- カーネル1は、組み込みのinitramfsを含まないカーネル2をロードします。 NFSルートを使用します。
- カーネル1はカーネル2を実行します。
問題:
カーネル1はカーネル2の実行に失敗します。これは私が見る最後のものです:
[ 8.819174] Starting new kernel [ 8.822539] Bye!
キーポイント:
- カーネル1とカーネル2はどちらも、initramfs関連の設定を除いて同じ構成になっています。どちらもkexecが有効になっています。
- カーネル1は別のカーネル1をkexecでき、これは正常にブートループできます。
- カーネル2は、U-Bootから直接正常に起動できます。
- カーネル1と2は同じデバイスツリーを使用します。
考えられる問題:
- NFSルートのカーネルコマンドラインオプションが間違っている可能性があります。ただし、これらはほとんどU-Bootで動作するものからコピーされました。
- ルートファイルシステムに問題があった場合、コンソールに少なくとも何かが表示されると思います。
さらなる考え:
- 多分それはカーネルサイズの大きな違い(k1 = 4523344、k2 = 2859240)と関係があります。
どんな助けでも大歓迎です。