はじめまして。Cerevo まつけんです。
(2009-02-13追記) 下記の利用するシリアルケーブルの種類の説明で、Null Modem Cable=ストレートケーブルという記述になっていましたが、Null Modem Cable=クロスケーブルの間違いでした。記事を修正しました。コメントでのご指摘ありがとうございます。
昨日、弊社岩佐個人Blogキャズムを超えろ!にて、スタートを宣言されたこのBlogですが、思ったより反応があり、すこし腰が引けつつ、最初の投稿です。
私自身は、主に、サーバ関連全般(Web系のアプリ〜サーバ、ネットワークインフラ等)を担当しています。そのため、各部品ののデータシートを読み込んで、ハード設計して、回路図も書けて、ハンダ付けもバリバリ!みたいな組み込み屋さんではありません。ただ、前職の関係で、組み込み関連の知識は多少あるという感じです。
今回は、そんな人間によるBeagleBoardというARM系のCPU搭載開発ボードをつかった組み込みLinuxの体験記です。
まずは、BeagleBoardの紹介、そして、購入から実際にLinuxが動くところまでをお送りします。
今後も連載という形で、
- BeagleBoard(OMAP3)向けtoolchainの構築
- linux kernelの構築とインストール
- NFSルートでの起動
- DebianやGentooのインストール
- DSPの使い方
なども紹介していきたいと考えています。
前置き
といいつつ、まず、すこしだけ前置きをさせていただきます。
まず、組み込みの世界は広大です。家電だけにフォーカスを当てても、電子レンジ、炊飯器などの白物で使われる8bitくらいのマイコンから、まるでPC並なARMが搭載された携帯電話、PowerPCが搭載されたゲーム機等まで、それぞれの用途に合わせて、ハードウェア、OS、開発環境、ライセンスなどすべてに違いがあるのが現状であり、一概に語れる状況ではないのはその通りだと思っています。
ただ、どうしても、組み込み系の開発といえば、基本的に個人が手を出せるようなものではなく、ベンダーのサポートを前提とした契約(多くの場合、NDAもセット)のもと、EVMなどの評価ボードと高価な開発環境を手に入れて開発をしていく、という形のものが多く、現在もメジャーであるとは思います。
ただ、近年、そのなかでも、高性能な機器向けを中心として、組み込みの世界で存在感を示しつつあるのが、組み込み向けのLinuxです。組み込み向けのLinuxの搭載を前提とするボードなどでは、ライセンスの関係などから、ソースが公開され、個人でもFreeに手に入れられるものも出てきています。
そういったものは、個人で入手可能な形で販売され、比較的、ローコストで開発に入れるようになっているものも増えています。
たとえば、プラットホームのOpenBlockS,OpenMicroServer、アットマークテクノのArmadilloシリーズなど、日本でも簡単に開発環境も含め、手に入るものがかなり増えてきました。玄人指向の玄箱もこれに含めてもよいかもしれません。
そんな組み込みLinuxな世界を、あまりコストをかけず、気軽に体験してみようというのが、今回の趣旨になります。
#個人的には、マイナーですが、NetBSDなどの組み込みっぽいBSDも好きです。
#NetBSDのどんな機器にもポーティングするぜ、みたいなパワーに憧れます。
Beagle Boardとは
長くなってしまいました。さて、本題のBeagle Boardです。本家のページに様々な説明があります。
このボードの特徴は、なんといっても高性能なのに安い、とりあえず回路図とかほぼすべてオープン、というところにあるんではないでしょうか。そのため、個人がx86系ではない環境で、Linuxを動かす、という目的においては、ローコスト、かつ、情報も集めやすい環境であり、今現在、かなりオススメな入門環境です。
ここからの内容は、基本的に、Embedded Linux Wiki を参考に書かれています。ここの情報+αという形で書いていきます。
ここのWikiに、かなりの情報があります。とりあえず、ざっと読んでみて損はないと思います。
本家のページにも、いろいろ説明があるので、具体的なボードのスペックは簡単にだけご紹介します。
- OMAP 3530(Cortex-A8 500-600MHz + C64x DSP + Graphics Accelerator)
- 128MB SDRAM
- 256MB NAND Flash
- USB 2.0 OTG
- USB EHCI Host
- DVI-out x1
- SDスロット x1
というのが、大体の概要でしょうか。いわゆる、CPU(OMAP3550)、メモリ(SDRAM)、ストレージ(NAND,SD)がそろっており、USBも搭載しているので、結線がどうとか、回路がどうとか考えずに、ある程度の拡張が容易です。CMOSなどもスペック上はつながりそうです。
!doctype>