U-bootからルートファイルシステムにアクセスする

U-bootからルートファイルシステムにアクセスする

組み込みデバイスをデバッグしようとしています。シリアルポート経由で接続し、USBからUARTケーブルで接続します。組み込みLinux v.2.6.26.5 ルートファイルシステム「/」とルートFSの下のサブディレクトリにアクセスするにはどうshellすればいいですか? コマンドはU-bootモードでは使用できません。U-bootからシェルCLIにアクセスする方法はありますか? 使用可能なU-bootコマンドとログは次のとおりです。ここそしてここ

答え1

U-boot の第 3 段階に従う必要があると思います。

3 番目のステージは Linux カーネルのロードです。ただし、Linux カーネルが制御する前に、u-boot は必須パラメータを含むコマンド ラインをカーネルに渡します。これらのパラメータは、オペレーティング システムの起動後にターミナル ウィンドウに次のように入力することで表示できます。

$ cat /proc/cmdline
root=/dev/mmcblk0p2 rootwait rw console=ttyS0,115200n8 console=tty0 no_console_suspend vdaccfg=0xa000 logo=osd1,loaded,0x7900000,720p,full dmfc=3 cvbsmode=576cvbs hdmimode=1080p m_bpp=32 vout=hdmi disablehpd=true

カーネルはハードウェアを初期化し、ルートファイルシステムをマウントし(root=...カーネルパラメータに従って)、制御フローを/sbin/initに渡します。Ubootについてさらに詳しく知りたい場合は、こちらを参照してください。リンク

答え2

ファイルシステムとメディアによっては、u-boot シェルの下で直接 16 進形式でデータをダンプできる場合があります。リバース エンジニアリングを行う場合は、help出力を観察して、U-boot にコンパイルしたメディア ストレージ デバイス アクセスおよび操作コマンドの種類を理解し、そこから先に進みます。メモリにロードした後、または場合によってはメモリなしでも、'md' を使用してダンプできます。メモリ内の u-boot 部分の後にロード アドレスを使用します。そうしないと、再起動します。ほとんどの場合、ファイルシステムは圧縮されており、永続的に変更できないことに注意してください (squashfs が一般的)。u-boot には、圧縮されていないデータをロードして読み取ることができるコマンドが付属している場合があります。メモリ ダンプからファイルシステムを覗くのは面倒な場合があるため、多くの場合、パーティション全体のダンプをローカルに記録し、バイナリに変換してローカルで処理するのが最善です。

init=カーネル引数を変更してシェル プログラムを指すようにすると、シェルのロードに成功する場合があります。通常、組み込みデバイスの場合は busybox なので、次のようになります/bin/ash

関連情報