今回はrpmパッケージベースのFedora CoreをT-SH7706LSRボードの導入に挑戦してみます。
Fedora Coreパッケージについて
SHアーキテクチャの現状について
以前まではSHプロセッサ向けの組込みLinuxサポートは、SH搭載組込みLinuxボードの普及や日立製作所等による非公式サポートもあって、その導入も比較的簡単にできていました。しかし昨今はSHプロセッサそのもののシェア低下や、昨今の日立製作所等の体力低下にともなう非公式サポートの低化により、SHアーキテクチャLinuxサポートサイトの消滅傾向に拍車がかかっています。
ルネサスのLinux向けプロセッサは、最初はSH3が主力でしたが、やがてSH4プロセッサとなり、現在ではSH4Aプロセッサに移行してきました。そのためルネサスでは利益率の大きいSH4Aプロセッサの拡販に力を入れており、SH3プロセッサは過去のものにしたいようです。
ただ、ルネサスの思惑とは別に、組み込みボードを使う現場では、さほど過剰な処理能力を必要としておらず、Linuxの資産のみ活用したいというケースもまだまだ根強いようです。その証拠に、最近になってT-SH7706LSRボードの販売量が増加してきました。
しかし、過去にはSH3プロセッサを対象としたディストリビューションのサイトがいくつか存在しましたが、現在では消滅の危機にさらされています。
SH3プロセッサ向けFedora Coreパッケージ
2012年4月現在ではかろうじてSH3プロセッサ向けのFedora Coreが以下で一般公開されています。
このサイトでもFedora Core8以降はSH3プロセッサのサポートは打ち切っていますので、Fedora Core7までとなっています。今回はFedora Core7を導入するので、下記フォルダのパッケージを導入します。
SH3プロセッサ向けのFedora Coreパッケージは、PC Linuxをベースとしたものなので、組込みボードで必要のないパッケージがかなり含まれています。ただし、たとえ組み込みボードで必要のないパッケージであっても、お互いの依存関係が複雑になっており、またrpmコマンドでは依存関係に応じて自動的にパッケージを導入する機能がないので、とりあえずは全部のパッケージを確保する必要があります。
パッケージの精選は、とりあえずディストリビューションまるごとの導入が成功してから行います。
T-SH7706LSR配布パッケージ
T-SH7706LSR配布パッケージについて
SH3プロセッサ向けのFedora Coreパッケージは、T-SH7706LSR向けではないので、そのまま導入をしても正常に起動をしません。T-SH7706LSRに依存する部分で起動に最低限必要な部分は変更をしなければなりません。その変更のベースとなるものを、T-SH7706LSR配布パッケージからFedora Coreへ持ってきます。
いきなりFedora Coreを導入する前に、念のためにT-SH7706LSR配布パッケージを導入し、ひととおりの動作確認をしておく必要があります。
T-SH7706LSR配布パッケージの導入
すでにT-SH7706LSR配布パッケージでT-SH7706LSRで運用している場合は作業は不要ですが、そうでない場合は、SDカードに対してT-SH7706LSR配布パッケージの導入します。このパッケージ自体はほとんど容量はありませんが、Fedora Coreパッケージ導入を視野に入れて8Gバイト以上のメディアにします。
購入時点ではLinuxパーティションがないので、第1パーティションは起動用のFATパーティションを約32Mバイト程度、第2パーティションはLinuxパーティションで、残り容量全部を下記の構成例のように割り当てます。
パーティションを設定したら、以下のようにファイルシステムのフォーマットをします。
T-SH7706LSRの配布サイトでファイルを入手し、第1パーティションに以下のファイルをコピーします。
- boot.exe
- initrd.img
- vmlinux
第2パーティションには rootfs.tar.gz の内容をそのまま展開をします。SDカードへのインストールをしたら、実際のT-SH7706LSRでLinuxの起動を確認します。
SH3版Fedora Coreのインストール
インストール準備
PC上でファイルシステムのインストールを行います。場所は任意ですが、ここでは、rpmパッケージの置き場所を~/fc7_rpm、ファイルシステムの置き場所を~/fc7_fsとします。
あらかじめ、SH3プロセッサ向けのFedora Core7パッケージをすべて ~/fc7_rpm にダウンロードしておきます。最初にrpmパッケージ管理に必要なフォルダを以下のように作成します。
ファイルシステムのインストール
次にrpmパッケージ管理データベースを以下のように初期化をします。このときに注意しなければいけないことは、PC上のrpmパッケージ管理データベースを誤って初期化しないように気をつけなければなりません。
rpmパッケージ管理データベースを初期化したら、rpmパッケージのフォルダに移動して、ファイルシステムの場所に対してrpmパッケージのインストールを行います。
このときにPC上のアカウントとFedora Core 7のアカウントが異なることによる警告メッセージが出ますが、これは無視をしていいです。これらのファイル容量は4Gバイト以上あるので、それなりの時間がかかります。
インストールとカスタマイズ
今回はとにかく起動することを目的としていますので、カスタマイズは最低限に抑えます。このため起動時には多くの警告メッセージが出ますが、今回はこれを無視します。
SDカードへのインストール
第1パーティションはT-SH7706LSRの配布ファイルをそのまま使用し、第2パーティションに対して新規インストールをします。第2パーティションの内容をすべて空にしてから、以下のようにファイルシステムをSDカードへインストールします。
Fedora Coreのカスタマイズ
Fedora CoreのデバイスファイルとT-SH7706LSRのファイルシステムとは互換性がないので、/dev以下のデバイスファイルをすべて削除し、そのかわりにT-SH7706LSR配布ファイルのルートファイルシステムに含まれているデバイスファイルをそのまま/devに導入します。Fedora Coreでは/initrdフォルダがないのでこれを新規作成します。
/etc以下のファイルは基本的にそのまま使いますが、/etc/fstabと/etc/mtabシンボリックリンクはT-SH7706LSR配布ファイルのルートファイルシステムから導入します。システムの初期化は/etc/inittabの内容で実行されるので、リスト1のように変更します。
リスト1の変更点は18行目でランレベルを1に変更し、45~50行目までの端末設定でコンソールを/dev/ttySC1、通信速度を115200[bps]、端末の種類をvt100に変更しています。
inittabでは/etc/rcスクリプトで初期化するようになっており、/etc/rcの先頭部分をリスト2のように追加します。
追加部分はリスト2の10~23行目で、T-SH7706LSR配布ファイルのルートファイルシステムの内容からそのまま持ってきました。
Fedora Core 7の起動確認
今回はとりあえず起動するということでランレベル1で起動します。T-SH7706LSRでの起動方法は従来と同じ方法です。
今回の起動メッセージは以下のようになり、正常に起動ができコマンド入力ができるようになりました。
起動時はudevの部分になるとシステムが固まったような印象を受けますが、単純に時間がかかっているだけなので、辛抱強く待ちます。今回の場合は起動時間のネックはudevのみで、T-SH7706LSRでは必須ではないので、これを取り除けば起動時間が短縮すると思われます。
次回は
次回は引き続きFedora Coreの導入について解説します。