マウスもキーボードもないスタンドアローンの組み込みLinux機器を保守する

USBメモリを使って組み込みソフトウェアを

長瀬 和明
Linux を使用した組み込みシステムにおいて，ソフトります．読み取り専用で構築されたフラッシュ ROM ディウェアを更新しなければならない場合があると思います．

スクに保存されたソフトウェアを更新するには，いったんWindows パソコンを使用したシステムのソフトウェア読み取り専用属性を解除する必要もあります（図 1）．

を更新する場合，USB メモリなどのメディアを使えば，開そこで，ボード・コンピュータに USB メモリを挿入し，発環境から手軽に更新プログラムをコピーできます．

更新対象のファイル・システム起動時に自動更新できるよ

Windows の知識があれば保守も簡単です．

うな仕組みを構築しました（図 2）．

これが Linux を利用した組み込みシステムとなると，ぐっと難しくなります．ネットワークに接続された環境の1．システム構成

場合，FTP（File Transfer Protocol）などを利用してソフトウェアを更新できます．しかし，オフラインで動作して● ハードウェアには x86 系 CPU ボードを採用いるシステムのソフトウェアの場合，モニタとキーボードLinux を動作させる CPU ボードにはアイコップテクノを接続し，Linux にログインして更新作業を行う必要があ

ロジーの x86 ボード・コンピュータである「VX86-6047-4S」を使用します（写真 1）．このボードは外形寸法が 102mm

telnetで組み込みシステムにログインする

組み込みシステムにモニタとキーボードを接続する

ファイル・システムの読み取り専用属性を解除する

組み込みシステムにログインする

FTPで組み込みシステムにログインする

ファイル・システムの読み取り専用属性を解除する

PUTコマンドを実行して更新ファイルを転送する

更新するファイルの入った媒体をシステムに接続してマウントする

ファイル・システムを読み取り専用に再設定する

シェル・スクリプトでコピー・コマンドを実行し，ファイルを更新する（a）ネットワークに接続できる場合の更新手順× 144mm で，x86 互換 CPU（動作周波数は 166MHz）が搭載されており，システム・メモリとして 128M バイトのSDRAM が実装されています．また，二つの USB 2.0 ポー
トと，一つの CompactFlash カード・スロットを備えています．あとは DC5V の電源と，OS をインストールした
CompactFlash などのフラッシュ ROM ディスクを用意すフラッシュROM
ディスク
RS-232-C
検査装置

OS

2.5インチ・ハード・ディスクのIDEポート
x86 CPUボード
USBポートファイル・システムを読み取り専用に再設定する

USBメモリ（b）ネットワークに接続できない場合の更新手順

図 1 組み込みソフトウェアの一般的な更新手順
ネットワークに接続されている場合と，ネットワークに接続されてない場合のソフトウェアの更新手順を示した．

図 2 ソフトウェアの自動更新事例で使用した組み込みシステムの構成
IDE ポートに装着したフラッシュ ROM ディスクに X-Linux をインストールし，RS-232C で検査装置と接続している．更新するソフトウェアを USB メモリに入れておき，システムが起動したときに必要に応じてフラッシュ ROM ディスクの内容を更新する．

134 KEYWORD ―― USB メモリ，スタンドアローン，組み込み Linux，フラッシュ ROM ディスク，Vortex86，X-Linux

Nov. 2007

USBメモリを使って組み込みソフトウェアを一発更新！
れば動かせます．

● フラッシュ ROM ディスクに Linux を搭載
OS には，本ボード向けのパッケージが用意されている「X-Linux」を使用します．X-Linux は DMP Electronics 社の Web サイト（http://www.dmp.com.tw/tech/osxlinux/）からダウンロードできます．
「root filesystem」とVortex86 シリーズ向けのカーネルをダウンロードします．
OS イメージをインストールするフラッシュ ROM ディ
スクには，MSTI Technology 社の「EmbedDisk」を使用します．ハード・ディスク・ドライブ（HDD）のように衝撃でディスクを破損する心配はありません．読み取り専用属性にして動作させれば，ディスク内のファイルを不用意に書き換えてしまうなどのトラブルも防げます．
OS の構築が完了したら組み込みシステムのソフトウェアをインストールして，正常に動作することを確認します．
ソフトウェアを更新する必要のないシステムなら，これですぐにリリースできます．今回は，USB メモリを使用してシステムのソフトウェアを更新することが目的です．OS が正しく USB メモリを認識できることを確認しておきます．

2．ソフトウェア開発● 起動時に USB メモリからソフトウェアを更新
ソフトウェアの更新を行う場合，動作しているソフト写真 1 Vortex86 ボードとフラッシュ ROM ディスク
今回の事例で使用した x86 ボード「Vortex86-6047-4S」とフラッシュ ROM ディスク
「EM44064V」，および内蔵ソフトウェアの更新に使用した 128M バイトの USB メモリ．本
ボードは，USB ポートと CompactFlash カード・スロットのほかに，アナログ RGB，Ethernet，PS/2，パラレル・ポートなどのインターフェースを備える．

ウェアそのものは更新できません．まず，USB メモリからフラッシュ ROM ディスクへファイルをコピーするためのソフトウェアを作成します．

ス名，USB デバイスのマウント先を指定します．USB メ

一般に Linux 上で USB メモリを使用する場合，マウント/モリについては，更新対象の組み込みソフトウェアの実行アンマウントを行うコマンドを実行する必要があります．

が中断されたときにアンマウントするようにしました．

また，更新するファイルのコピー先となるフラッシュ

ソース startup.c をリスト 1 に示します．startup.c

ROM ディスクは読み取り専用属性で運用します．ソフト

は，本誌の Web サイト（http://www.cqpub.co.jp/

ウェアの更新を行うときは属性を書き込み可能な状態に変interface/download/）からダウンロードできます．ま更し，ソフトウェアの更新が済んだら読み取り専用属性にた，ソフトウェアの処理の流れを以下に示します（図 3）．

戻す必要があります．

1）コマンド・ラインで指定された引き数を解析

この一連の動作を行うソフトウェアを作成し，OS の起

まずはコマンド・ラインで指定された引き数を解析して動スクリプトに追加します．システム起動時に自動で組みコピーするファイル名などの情報を決定します．更新を行込みシステムのソフトウェアを更新するように構成します．

うソフトウェアを起動するコマンドを以下に示します．

● 対象ソフトウェアをコピーするソフトウェアを作成
作成するソフトウェアは，起動時のコマンド・ラインの引き数でコピー対象のファイル名や USB メモリのデバイ

Nov. 2007./startup/［更新を行うファイル名］ ［USB メモリのデバ
イス名］ ［USB メモリのマウント先］

135