物理アクセスなしで新しいカーネルで更新したいリモート組み込みLinuxデバイスがあります。ただし、起動するコマンドラインオプションはMTDの1つを読み取り専用にします。つまり、カーネルを変更することはできず、U-Bootは物理シリアル接続を介してのみアクセスできます。
kexec サポートがインストールされていません。
私は成功せずにkexecを自分で作成しようとしています。 kexec-toolsでkexecを構築しましたが、カーネルをロードしようとすると、次のような結果が表示されます。
kexec_loadに失敗しました:関数が実装されていません。
この状況を救うために私ができることはありますか? kexecを単一のバイナリ実行可能ファイルにすることはできますか?フォーラムでは、人々がこのように使用するよう提案したことを見たことがありますが、このようにすることはできません。
編集する: kexecを操作できない場合にMTD0にアクセスする方法はありますか?この時点ではデバイスの1つにアクセスできませんが、/proc/something/devices/virtual/mtd0/roのようなものが1でchmod 777であれば、エラーなしで0>をエコーできます。しかし、持続するわけではありません。
答え1
kexec
これによって行われるメカニズムです。カーネルの実行他に置き換えられます。これを行う外部プログラムには以下が必要です。極度に関連カーネルの深い知識とマシンのすべてへのカーネルレベルのアクセス。効果があるかもしれませんが、それを試すのに十分狂った人はいないと思います。