OnWorksLinuxおよびWindowsオンラインワークステーション

及び

ワークステーションのオンライン無料ホスティング

<前へ | Contents | 次へ>

U-Boot ファームウェアを使用するシステムでのネットワーク ブートは、次の 3 つのステップで構成されます: a) ネットワークの構成、b) イメージ (カーネル/初期 RAM ディスク/DTB) のメモリへの読み込み、c) 事前に読み込んだコードの実際の実行。

まず、ネットワークを設定する必要があります。DHCP経由で自動的に実行するか、


setenv autoload no dhcp


またはいくつかの環境変数を手動で設定する


setenv ipaddr setenv ネットマスク

setenv サーバーのIP setenv dnsip

setenv ゲートウェイIP


必要に応じて、これらの設定を永続的にするには、


保存


その後、イメージ(カーネル/初期RAMディスク/DTB)をメモリにロードする必要があります。これはtftpbootコマンドで実行され、このコマンドにはイメージをメモリに保存するアドレスを指定する必要があります。残念ながら、メモリマップはシステムによって異なるため、どのアドレスが使用できるかという一般的なルールはありません。


一部のシステムでは、U-Bootは適切なロードアドレスを持つ環境変数のセット(kernel_addr_r、ramdisk_addr_r、fdt_addr_r)を事前に定義しています。これらの環境変数が定義されているかどうかを確認するには、次のコマンドを実行します。


printenv カーネル_addr_r ramdisk_addr_r fdt_addr_r


定義されていない場合は、システムのドキュメントで適切な値を確認し、手動で設定する必要があります。Allwinner SunXi SOC(例:Allwinner A10、アーキテクチャ名「sun4i」、Allwinner A20、アーキテクチャ名「sun7i」)ベースのシステムでは、例えば以下の値を使用できます。


setenv kernel_addr_r 0x46000000 setenv fdt_addr_r 0x47000000 setenv ramdisk_addr_r 0x48000000


ロードアドレスが定義されると、次のようにして、以前に定義したTFTPサーバーからメモリにイメージをロードできます。


tftpboot ${kernel_addr_r} tftpboot ${fdt_addr_r}

tftpboot ${ramdisk_addr_r}


5.3.1番目の部分は、カーネルのコマンドラインを設定し、ロードされたコードを実際に実行することです。U-Bootは「bootargs」環境変数の内容をコマンドラインとしてカーネルに渡すため、コンソールデバイス(セクション5.3.2を参照)やpreseedingオプション(セクションXNUMXおよび付録Bを参照)などのカーネルとインストーラのパラメータは、) - 次のようなコマンドで設定できます


setenv bootargs コンソール=ttyS0,115200 rootwait パニック=10


以前にロードされたコードを実行するための正確なコマンドは、使用されるイメージ形式によって異なります。uImage/uInitrdの場合、コマンドは次のようになります。


bootm ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}


ネイティブLinuxイメージでは


bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}


注: 標準的なLinuxイメージを起動する場合、カーネルとdtbの後に初期RAMディスクイメージをロードすることが重要です。U-Bootはfilesize変数を最後にロードしたファイルのサイズに設定し、bootzコマンドが正しく動作するためにRAMディスクイメージのサイズを必要とするためです。プラットフォーム固有のカーネル、つまりデバイスツリーのないカーネルを起動する場合は、${fdt_addr_r}パラメータを省略してください。


5.2 アクセシビリティ

OnWorksのトップOSクラウドコンピューティング: