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

第11回 最新カーネル事情と組込みボードでのLua言語-C言語連携

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

最新LinuxカーネルとSH7706ボード

組込みボードにおけるLinuxカーネル更新

SH7706ボードで標準で提供されたのはLinux2.6.12で,長い間安定版として公開していました。特にLinux2.6.12で現状の運用に問題がなければ,わざわざカーネルのバージョンを更新する必要はありません。

詳細な部分は別として,Linux-2.6.12でも2011年初旬時点の最新カーネルであるLinux-2.6.36.3でも,アプリケーションプログラムから見たLinuxカーネルへのAPIはほとんど同じなので,SH7706LSRボードでアプリケーションプログラムを追加して運用する分には,特にカーネルバージョンは影響ないと思われます。

PCの場合はCPUやマザーボード内蔵周辺機能,外付け周辺機器の変化が速く,次々と新製品が出てきているので,それらに追随するために最新Linuxカーネルを追っていかなければいけないケースもあります。その点,SH7706ボードは基本的にハードウェアの変動はないので,PCのように最新カーネルを追随しなければいけないことはあまりないと思います。

ただし,Linuxカーネルの内側では細かいリビジョンが上がるたびにカーネルコードの内容が激変しており,それどころか,Linuxカーネル内部における仕組みや内部ルールそのものが変動しています。こうしたLinuxカーネル内部における仕組みや内部ルールの変動で大きな影響を受けるのが個別のデバイスドライバです。

あるリビジョン用に開発したデバイスドライバが,リビジョンが上がると使えないというケースがあります。それでもキャラクタデバイスは古典的なデバイスドライバなので比較的Linuxカーネルの更新の影響を受けにくい傾向にはあります。ところが,ブロックデバイスやネットワークデバイス,USBデバイスなどは,リビジョンが上がるとLinuxカーネルと不適合を起こして組み込めなくなることが珍しくありません。

もし,SH7706LSRボードで個別にデバイスドライバを開発をする場合は,開発時に最新のLinuxカーネルに更新して,その最新カーネルをターゲットにデバイスドライバを開発すれば,デバイスドライバの寿命そのものが長くすることが可能であり,仮にリビジョンが上がったりしても,少ない変更で新Linuxカーネルに対応することができます。

SH7706LSRボードではDebian/GNU LinuxやFedora Linuxを載せることにより,全てオンボード上で開発することも可能ですが,基本的にはPC上でSH7706LSRボードの開発を行い,開発結果であるコードやデータをSH7706LSRボードにコピーをしてSH7706LSRボード上で実行することになります。

PC上でSH7706LSRボードの開発を行う場合,PC Linux上のソフトウェア等を頻繁にSH7706LSRボードに移植したりデバイスドライバを移植する場合は,PCのLinuxカーネルリビジョンとSH7706LSRのLinuxカーネルリビジョンがなるべく近いほうが,移植がスムーズになります。基本はLinux2.6.12で良いですが,場合によっては,新しいLinuxカーネルのほうが良い場合もあります。

Linux-2.6.28.10

実はLinux2.6.12ではSH7706プロセッサはサポートしておらず,SH7706ボード向けパッチを使うことでSH7706プロセッサをサポートしていました。Linux-2.6.20以降,SH7706プロセッサとSH7706LAN/LSRがオリジナルカーネルでサポートされるようになりました。

ただ,Linux-2.6.20以降ではしばらくの間は,SHプロセッサとの相性も良いとはいえず,また,ブロックデバイスやネットワークデバイスにおける仕組みそのものや内部ルールの変更もあり,それらがひととおり落ち着いたバージョンがLinux-2.6.28.10といえます。

Linux-2.6.28.10では新しいSH3プロセッサであるSH7721や新しいアーキテクチャーのSH4Aなどに対応もしていますので,SH7706LSRとそれらの新しいプロセッサで共有可能なソフトウェア資産も開発し蓄積することもできます。

Linux-2.6.28の大きなトピックとしては,次世代ファイルシステムであるext4が安定版としてはじめてサポートされたことです。ext4の特徴としてはより大容量のメディアに対応したことですが,組込みではこのことはあまり関係はありません。組込み分野でext4に関係するメリットとしては,パフォーマンスの向上,ジャーナリング機能強化やオンラインデフラグなど信頼性の強化などがあります。

Linux-2.6.36.3

Linux-2.6.28.10も新しいLinuxカーネルなので劇的な変化はないですが,SH7706LSRは2011年初旬時点の最新カーネルであるLinux-2.6.36.3にも対応しています。

Linux-2.6.36.3は将来を考えるとデバイスドライバの長寿命化などのメリットもありますが,まだ,できたてほやほやで実績も多くはないので,本格採用する場合はじゅうぶんに応用用途での評価は必要となります。SH706LSR本体に内蔵はしていないですが,SH7706LSRにUSBホストコントローラ増設する場合,Linux-2.6.36.3のUSB機能はかなり充実しているので,そのような場合は最新カーネルの採用のメリットがおおいにあります。

Linux-2.8の正式リリースの見込みはなさそうですが,当初のLinux-2.6と比較すると現在の最新Linuxカーネルは事実上Linux-2.8といっていいくらい劇的に進化しているといえるでしょう。

著者プロフィール

みついわゆきお

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

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

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

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

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

コメント

コメントの記入