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

第1回 組込みLinuxをはじめよう

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

Linuxとハードウェア

Linuxを象徴する機能

Linuxがハードウェア上で動作をするにはプロセッサの基本的な機能が必要になりますが,アプリケーション単体のROM起動ベースのソフトウェアやTronが動作するにも必要となってきますので,何もLinuxに限ったことではありません。

たいていのシステムは,コンピュータシステムとして最低限必須な機能さえあれば動作をしますが,Linuxはそのような機能だけでは動作をしません。Linuxにおいては最低限必須な機能以外にMMU(メモリ・マネージメント・ユニット)が必要となり,MMUがLinuxを象徴する機能となります。

なぜMMUがLinuxを象徴する機能かというと,Linuxの生い立ちにその理由があります。

Linuxが誕生した当時の状況は,インテルの8086ベースの原始的な16ビットプロセッサをベースとしたMS-DOSというサブルーチンの寄せ集めの原始的なシステムが普及していました。そのときハードウェアベースでは16ビットプロセッサから32ビットプロセッサの80386に移行しつつありましたが,MS-DOSがあまりに普及しているために,32ビットプロセッサの機能は使用せずに原始的な8086プロセッサとして使われていました。

80386プロセッサはMMUをベースとしたプロテクトモードが本来のモードですが,しばらくの間は活用されずに放置されたままとなっていますが,Linuxは活用されずにいた80386のプロテクトモードを活用するためのシステムとして立ち上がりました。現在では多種多様なプロセッサでLinuxが動作はしていますが,その最新版のLinuxでさえ,本質的にはインテルの80386プロセッサのMMUをベースとしたプロテクトモードにべったり依存したコードのままです。

LinuxはMMUを動作させるためのコードを中核としてさまざまな機能が追加されて進化していますので,まさにMMUはLinuxを象徴する機能といえますし,Linuxの本質はMMUといってよいでしょう。

もっとも,最近ではMMUなしで動作するμCLinuxというものもありますが,フル機能のLinuxではありません。

プロセッサ選択の基準

Linuxで選択するプロセッサとしてベストなのは,インテルの80386アーキテクチャのプロセッサで,PentiumやCore2プロセッサといったものになりますが,残念ながらこれらは組込み用プロセッサではなく事務機器用に特化したプロセッサなので,組込みボードとしての使い勝手が悪いものとなっています。一方,組込み用途のプロセッサはあまりにも種類が膨大なので,一見して組込みLinuxにおけるプロセッサの選択が困難なように思えます。そこで,Linuxを象徴する機能としてのMMUということで,プロセッサの選択をします。

組込み用プロセッサはMMUがないものがほとんどで,MMUが搭載されているプロセッサはごく少数なので,実際には選択の自由が狭いのが現状です。また,どの半導体メーカでもMMU搭載のプロセッサはハイエンドにおける最上位シリーズの位置付けなのでコスト面で高価であり,実際に使える形での組込みマイコンボードとしては価格が10万円以上もするのが普通となってしまい,一般的にはPCよりコストが高い傾向にあります。

PCは一般事務機器として膨大な数が普及しているために,その量産効果により価格が抑えられているのに対して,組込み用プロセッサでは1つのボードあたりの絶対数がPCより少なく量産効果も出にくいため高価であるというのはやむを得ないことではあります。

組込み用プロセッサの選択

Linuxは多くのアーキテクチャをサポートしていますが,実用面からはほとんど選択肢がないのが実情です。

個人のホビーはともかくとして,ビジネスとして使うには広く普及しているアーキテクチャでなくてはなりません。その理由は,開発においては技術情報等が必須ですが,普及している場合は技術情報の絶対量が多いからです。また,これまでに蓄積されたソフトウェア資産を活用できるという点と,組込みプロセッサにおける周辺ペリフェラル機能における知見をそのまま活用できるということもあります。

組込みプロセッサの場合は外部機器を制御するのでCPUよりも周辺ペリフェラル機能が主役といってよく,新規習得の場合はCPU本体よりも周辺ペリフェラル機能における習熟に相当の工数がかかります。実際に開発をする場合は,簡単にいつでも入手ができるハードウェアがないといけないわけで,ハードウェアが存在しないと開発そのものが不可能になります。簡単にいつでも入手ができるハードウェアというと,広く普及しているアーキテクチャに限定されてきます。

選択の実際

国際的に普及しているアーキテクチャの1つにARMプロセッサがあります。主にヨーロッパ方面を含む海外進出をメインに考える場合にはこれを選択します。ARMアーキテクチャそのものにはMMUも含まれていますが,半導体メーカがARMライセンスを受けて実際に生産するチップの大半はMMUを含んでいないのが現状です。

国内向けの場合は,近年はARMの普及もありますが,ルネサスエレクトロニクス製 日立系統のSHプロセッサが普及しています。日立系統のプロセッサではSHが最上位シリーズになり,SHシリーズでMMUを含まないコントローラとしてSH1とSH2プロセッサがあり,その上位としてMMUを含むコンピュータのSH3とSH4プロセッサがありました。

現在のSHプロセッサのシリーズは,MMUを含まないコントローラとしてSH2とSH2Aプロセッサが,その上位としてMMUを含むコンピュータとしてSH3,SH4,SH4Aプロセッサが位置付けられており,これらの上でLinuxを動作させることができます。

組込みLinuxを使う準備

ハードウェアを用意する

組込みLinuxボードは価格面では10万円以上するものが多く,安価でも6万円くらいするのが普通です。ここでは簡単に組込みLinuxを使うことができるTAC製のT-SH7706LSRを使うことにします。

T-SH7706LSRは価格が7,980円と手軽に購入できる価格設定になっています。T-SH7706LSRのメーカサイトは以下です。

T-SH7706LSR
URL:http://web.kyoto-inet.or.jp/people/takagaki/T-SH7706/T-SH7706LSR.htm

ネット販売での購入は以下のサイトからできます。

URL:http://itrinity.jp/scb/shop/shop.cgi?id=6&kid=0

T-SH7706LSRを開発するにはその他にPCと電源とケーブルが必要となり,Linuxを動作させる場合はSDカードが別途必要になります。T-SH7706LSRで必要な電源は3.3VのACアダプタで上記のメーカやネット販売のサイトで購入をすることができます。

T-SH7706LSRの開発とリモート操作はPCを使いますが,相互の接続はD-Sub9ピンのストレートシリアルケーブルを用います。このケーブルは以下で購入可能です。

URL:http://akizukidenshi.com/catalog/g/gC-00004/

SD(SDHC)カードはどのようなものでもかまいませんが,ここではSandisk製のSDSDQ-8192-J95M(8GB)を使うことにします。これはmicroSDHCカードですが,SDカードアダプタが付属していますので,SDカードとしてT-SH7706LSRに差し込みます。

T-SH7706LSRの開発や操作はPCで行い,T-SH7706LSRではWindowsマシンからのLinuxインストールやLinuxの操作ができますが,対象はLinuxなので,やはりPCはLinuxマシンのほうがいいと思います。

著者プロフィール

みついわゆきお

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

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

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

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

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

コメント

  • 文章の流れが・・

    「第2パーティションのマウント位置にフォルダを移動し」との表現がありますが、Windowsユーザーは「どのフォルダを動かすの??」と混乱し内容が理解できなくなるのではないでしょうか。「第2パーティションのマウント位置へカレントディレエクトリを移動し」という表現なら、その後の記述と内容がつながると思います。

    Commented : #1  kkmr (2012/05/30, 15:02)

コメントの記入