web-dev-qa-db-ja.com

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

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

3
minto

Uブートの第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に渡します。詳細が必要な場合は、abt Ubootに従ってください link

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

シェルプログラムを指すようにinit=カーネル引数を変更することにより、シェルのロードを成功させることができます。通常、組み込みデバイスではビジーボックスであるため、/bin/ashになります。

0
elig