はじめに
連載最後となる今回は、前回に引き続きオリジナルファームウェアの開発方法を紹介します。前回は開発の手始めとして、基本的な構築方法を紹介しましたが、今回は実際にファームウェアにカスタマイズを加える方法を紹介します。
実践例の注意
本連載の実践例では、SSD/Linuxのソースツリーへのソフトウェアの追加、追加したソフトウェアのファームウェアへの組み込み、初期設定ファイルの変更、カーネルコンフィグレーションの変更を行っていきます。なお本文および図表に現れるファイルパスのうち、相対パスのものは「/usr/src/」以下のファイルを指しています。
ファームウェア作成定義の用意
カスタムのサンプルとして「distrib/powerpcobs600/custom0/」に例を用意しました。仮に、これを試してみる場合は、手を加えてもかまいませんし、custom1のようにコピーを作成しても良いでしょう。
SSD/Linuxへのソフトウェアの追加
公開しているSSD/Linuxのソースツリーには、Linuxディストリビューションを構成する基本的なソフトウェアだけが登録された状態になっています。オリジナルファームウェアを作成してメンテナンスをし続ける場合は、ここに必要なソフトウェアを追加していくと、その後のメンテナンスが楽になります。
今回は、高速なHTTPサーバソフトウェアとして知られる「lighttpd」を例に挙げます。ソフトウェアの追加を行うには、ソースコードの取得/展開の設定を行う「mkdist/」への登録(リスト1)と、ソフトウェアのコンパイルを行う「contrib/」などへの登録(リスト2)が必要になります。
追加ソフトウェアのファームウェアへの組込
ソースツリーに追加したソフトウェアを、ファームウェアへ組み込むには、先に用意したファームウェア作成定義の中で、追加したいソフトウェアのための設定が必要です。通常ファームウェアに組み入れるファイルは、コマンドもライブラリも1つずつ必要なファイルのリストを作成して利用していますが(リスト3)、今回の例ではもう少し手軽な手法を取っています(リスト4)。
ここで作成したリストを、ファームウェア作成に使用するための設定(リスト5)も必要になります。
初期設定ファイルの変更
ファームウェアにもともと含まれている/etc/rc.confなどの設定ファイルを変更したい場合、ソースツリーに登録されている標準のファイルとは別に、カスタムファームウェアの作成定義のディレクトリ以下に、変更後のファイルを用意します(図1)。
ここに用意した変更後のファイルは、ファイル抽出時に自動的に標準のファイルと置き換わります。
カーネルコンフィグレーションの変更
カーネルコンフィグレーションの変更は、Linuxカーネルに含まれるテキストベースのmenuconfigを使用して行います。通常SSD/Linuxの標準設定が使われるため、オリジナルファームウェア向けにコンフィグファイルを指定する必要があります(リスト6)。コンフィグファイル指定後は図2のように実行し、カーネルのコンフィグレーションを行います。
変更個所を加えたファームウェアの構築
前回では、OS全体の構築を行っていますので、同様の環境であることを前提に本稿の話を進めます。今回は変更を加えた追加ソフトウェアとカーネル部分だけコンパイルを行い、ファームウェアを再構築しています(図3)。
以上の手順でオリジナルファームウェアの作成は完了です。細かな解説は省いていますが、作業の全体像をつかめたのではないかと思います。ぷらっとホームから提供する公式ファームウェアを利用した場合でも、十分に汎用的なサーバとして利用できますが、今回紹介したようなオリジナルファームウェアを作成することで、より活用の幅が広がってきます。ぜひ試してみてください。
あとがき
これまで6回にわたり、「OpenBlockS 600活用指南」と題して連載をさせていただきましたが、今回で終了となります。 6回にわたる連載となりましたが、本稿を読み返しながらOpenBlockS 600を存分に活用ください!