体験!マイコンボードで組込みLinux

第3回 Linuxルートファイルシステムを構築する

この記事を読むのに必要な時間:およそ 3 分

ファイルシステム概要

T-SH7706LSRでのLinuxインストールは第1回で解説しましたのでそれがベースとなりますが,第1回ではルートファイルシステムとなる第2パーティションにはダウンロードしたrootfs.tar.gzをそのまま展開しました。今回はダウンロードしたrootfs.tar.gzをそのまま展開せず,ルートファイルシステムを自分で構築する方法を解説します。

ダウンロードしたrootfs.tar.gzでもひととおりは使えるようにはなっていますが,組込みLinuxが利用される用途や環境は千差万別なので,自前でルートファイルシステムを構築できるようになれば,組込みLinuxが利用される用途や環境に対してより最適なLinuxシステムに仕上げることができます。

ルートファイルシステムはいくつかの要素によって構成されていますが,一番大きな比重を占めているのがコマンドファイル群です。コマンドファイルはLinuxシステムが起動した後にシェルによるコマンドプロンプトによってコマンド操作するので,基本的にはシェルによるコマンドプロンプトで使いたいコマンドファイルだけ用意すればいいわけですが,ユーザが使いたいコマンドだけ用意すればいいわけでなく,システム初期化や稼働に必要なコマンドファイルも用意しなければなりません。

Linuxシステム構築に慣れていれば問題ないわけですが,慣れるまではシステム初期化や稼働に必要なコマンドファイルがイメージしにくいと思います。とりあえず,慣れるまでは最低限のシステム初期化や稼働に必要なコマンドファイルをおまじないのように用意してから,一般コマンドについては使いたいものだけ用意するということでいいと思います。

コマンドファイルの場合,静的リンクでコンパイルした場合は不要ですが,動的リンクでコマンドファイルをコンパイルした場合は,別途ライブラリファイルがファイルシステム上に必要になってきます。普通に自作コマンドをコンパイルした場合のデフォルトは動的リンクとなります。ルートファイルシステムの要素でコマンドファイルの他には各種スクリプト群とデバイスファイル群となります。

各種スクリプト群はUNIXの慣習で/etc以下に用意することになっています。一般的なPC Linuxの場合はシステムが肥大化しているので/etc以下の各種スクリプト群は膨大なものとなっており,とても簡単に把握できるものではありませんが,T-SH7706LSRではハードウェア自体がシンプルなので,必要な各種スクリプトはたいした数ではありません。

デバイスファイル群は,これもUNIXの慣習で/dev以下に用意することになっています。デバイスファイル群に関しては基本的にPCLinuxの/dev以下にあるものをそのまま持ってきても構いませんが,あきらかにT-SH7706LSRにないハードウェアに対するデバイスファイルは持ってきても意味はないです。ただ,一部にはSuperHアーキテクチャ特有のデバイスファイルもあるので,それは独自に用意をする必要があります。

コマンドファイル群について

Linuxディストリビューションの構成は純粋にLinuxの部分は膨大なディストリビューションのなかのほんのわずかなLinuxカーネルという核のみであり,Linuxディストリビューションの大半の部分はGNUコマンドファイル群なので,実態はDebianの名称のようにGNU/Linuxといっていいでしょう。

T-SH7706LSRでもGNUコマンドファイル群によってルートファイルシステムを構築することができます。GNUコマンドファイル群のもととなるソースコードはGNUのFTPサイトで入手できますので,それらの中から必要なものを1つずつソースコードからコンパイルしていく積み重ねをしていけばルートファイルシステムを構築することができます。

また,FedoraCore6ベースのsh3向けrpmバイナリパッケージもSH-Linuxのサイトで公開されているので,ここからコンパイル済みのGNUコマンドファイル群を得ることができます。

どちらにしろ,GNUコマンドファイル群には必要なものはほとんど揃ってはいますが,各コマンドごとにそれぞれ分かれているので,それらのソースコードを1つずつコンパイルしていくのは一苦労です。T-SH7706LSRのようなシンプルな組込みLinux向けには,BusyBoxというシンプルな組込みLinux向けのGNU準拠のコマンドファイル群を1つのバイナリファイルに集約させたものがフリーソフトとして公開されています。

BusyBoxのコンパイルとインストール

BusyBoxの概要と変遷

BusyBoxはGNU準拠のコマンドファイル群を1つのバイナリファイルに集約させたものなので,GNUのようにフルセットの機能はありませんが,GNUコマンドのオプションで主に使われる中核的機能はなるべく採り入れるようにしてあります。

T-SH7706LSRのLinuxシステムではBusyBoxにスクリプトファイルとデバイスファイルを追加するだけでシステム稼働できるようになるので,T-SH7706LSRでのコマンドファイル群はBusyBoxでほぼ十分です。

最初のBusyBoxは基本的なコマンドを集約させたものに限定され,それ以外は他から持ってくるようにしてファイルシステムを構築していきましたが,やがて,BusyBox-1.10あたりに一通りのコマンドも揃ってそれだけでシステムが稼働できるくらいまでに進化しました。その後,一時期はファイルシステム関係のコマンドが脱落しファイルシステム関係のコマンドだけは外部からもってこないといけない事態になっていましたが,現在ではファイルシステム関係のコマンドも完備し,また,ネットワーク関係のデーモンやコマンド群も充実し,BusyBoxだけで各種サーバクライアントシステムを構築できるようになっています。

BusyBoxは下記URLで公開されており,2010年8月時点での最新版はバージョン1.17.1となっています。

BusyBox
URL:http://www.busybox.net/

BusyBoxのコマンド群はGNUコマンド群のサブセットではありますが,完全な互換性はありません。BusyBoxのサイトでBusyBoxのコマンドの機能を参照することができます。

著者プロフィール

みついわゆきお

1986年日立製作所入所,その3年後に自社ワークステーションでの開発業務をきっかけにBSDを経てLinux利用を始める。

1991年日立を退社し,その後,ボランティアでLinux関連ツールの整備と開発しながらWindows否定運動およびLinux普及運動を開始し,Linuxディストリビューション草創期にはPlamoLinuxのメンテナンスにもかかわる。

2001年ごろより非営利ベースでボードコンピュータの開発を開始し,やがて,無償によりハードとソフトを開発したH8マイコンボードの販売を秋月電子にて開始した。

現在,ボードコンピュータ用基本ソフトMES2.5や,SHプロセッサ向けLinuxパッチおよびTOPPERS/JSPパッチを無償で一般に提供しながら,ティーエーシーやエムイーシステムより原価率100%を目標(ただし,販売店の営業・販売費用や開発・製造の際の差損を除く)としたSuperHボードコンピュータを販売中。

また,現在でも頑固にMS社否定及びWindows撲滅運動に邁進中。

コメント

コメントの記入