2013年7月30日火曜日

tftpbootによるOSの起動方法 [AX3][A6]

前回、カーネルのカスタマイズ手順について説明しましたが、flashcfgコマンドによりカスタマイズしたファームウェア書き込む前に起動テストをしたい場合や、作成したファームウェアに何らかの問題があって起動しない場合のリカバリ方法として、ubootからのtftpbootによる起動方法について簡単な説明を行います。

OBDN技術ブログによる動作検証は、該当するソフトウェアの動作を保証およびサポートを行うものではありません。
内容に関するご指摘などありましたら、ブログ記事の担当までご連絡下さい。

1. tftpサーバのインストール


windowsの場合

TFTPD32 : an opensource IPv6 ready TFTP server/service for windows : TFTP server:

上記のアドレスより、tftpd32をダウンロードし、インストールします。
「Settings」ボタンを押し、TFTPタブより、tftpdのBase Directoryを指定、GLOBALタブのStart Services内のTFTP Serverにチェックを入れます。
指定したBase Directoryにtftpにより転送したいファイルを置きます。
AX3、A6のubootのターゲットファイル名はそれぞれ以下の通りになります。

AX3: uImage.initrd.obsax3
A6:   uImage.initrd.obsa6



また、必要に応じて、DHCP Serverを立ち上げる事も可能です。

Debian Linux (7.1 wheezy) を使用する場合

tftpdパッケージを利用します。

# aptitude install tftpd

debian wheezyのパッケージの場合、/etc/inetd.confへのデフォルトの設定で、/srv/tftpを指定しているため、ディレクトリを作成します。

# mkdir /srv/tftp

上記ディレクトリに、立ち上げたいファームウェアイメージファイルを転送して下さい。
AX3、A6のubootのターゲットファイル名はそれぞれ以下の通りになります。

AX3: uImage.initrd.obsax3
A6:   uImage.initrd.obsa6

tftpdサーバのアクセス制限の解除が必要な場合は、/etc/hosts.allowを編集し、以下の行を追加します。

in.tftpd: ALL (もしくは、許可するIPアドレスグループ)

2. ubootからのtftpboot


ubootプロンプトへの入り方

シリアルコンソールより、パワーオン->uboot起動すぐに、何らかのキーを入力することにより、コマンドプロンプトによる操作が可能になります。


IPアドレスの設定

先にネットワークのアドレスの取得もしくは設定を行います。

dhcpの場合
openblocks> dhcp

IPアドレスを指定する場合
openblocks>setenv ipaddr <IPアドレス>
openblocks>setenv gatewayip <ゲートウェイのIPアドレス>
openblocks>setenv netmask <ネットマスクの値>

tftpbootによるファームウェアの起動

起動する場合は、以下の操作を行います。ファームウェアの書き込みは行われません。

openblocks> setenv tftpserver <tftpサーバのIPアドレス>
openblocks> run os_load_boot

tftpbootによるファームウェアの本体への書き込み

ファームウェアを本体に直接書き込む場合は、以下の操作を行います。

openblocks> setenv tftpserver <tftpサーバのIPアドレス>
openblocks> run os_load_prog

3. さいごに


以上、特に補足することはありません。

0 件のコメント:

コメントを投稿