レビューメディア「ジグソー」

とうとう届いた!

「ようやく」表現するには、あまりにも時間がかかり過ぎた感のある$35PCこと「Raspberry Pi」が届きました。
まだ、起動しただけの状況ですが、簡単にレビューをお届けします。

【追記:2012/07/22】ケース作成状況
【追記:2012/07/23】ケース完成、Midoriでzigsow
【追記:2012/07/23】イメージ情報、ビルド準備
【追記:2012/07/25】カーネルビルド
【追記:2012/08/13】Androidイメージ

7/20、自宅に届いたのは、佐川の不在連絡表。
DHLの輸送トラッキング通知が届いていたので、おおよその到着予定は分かっていたものの、DHLを使うのが初めてだったこともあり、どういった形で届くのか心配していました。
また、再配達が面倒だと聞いていたため、週末に受け取れないとなると次週になりかねないという心配もあり、何が何でも7/20(金)中に受け取らなければ!と思っていました。
結果として、心配は無用でした。佐川に連絡したところ、いつも通りに届きました。
会社で見慣れたRSのロゴも、自宅に届くと何か違和感を感じてしまいます。
外袋を手にした段階で箱が小さいことはわかりました。開封するとiPhone4の箱を一回り大きくした感じの茶色の箱に待望の木苺マークのラベルが貼付されています。
箱の中に含まれるのは基板本体と、Quick Start GuideとInformationのCompliance&Informaionの紙だけ。ケースや電源ケーブルも同時購入可能だったようですが、(購入時に見落としたため)今回は購入しませんでした。
私がRaspberry Piを手にするまでの経過は以下の通りです。
約4ヶ月、実に長かったです。すでに発売の発表や購入申し込みのエントリが、いつだったか定かではありません。
4ヶ月も経過してしまうと、ヤル気の火も鎮火気味ですが、手にすると再燃し始めました。

購入手続きをしてまだ手にしていない方>
あと少しです。頑張りましょう。

プログラミング学習(スキルアップ)を目的とした製品(基板)ですので、利便性が考えられた形にはなっていません。
裸の基板に、各種コネクタがぐるり一周囲んでいます。STB等に利用することを考えているのであれば、コネクタは一方ないし二方に集められるべきでしょう。
まずは表から。仕様通りのコネクタが並びます。
手前にあるmicro-USBから電源を供給します。購入に失敗したモバイルアダプタに付属していたmicro-USBケーブルが、こんなところで役に立つとは思いませんでした。
コネクタの中で一番背が高いのがUSBコネクタ、USB2ポートタイプのもので約15mm程度あります。
低レベル周辺用のピンヘッダの他に、フレキコネクタ2種、ピンヘッダが準備されていますが、詳細は分かりません。

特筆すべきは、ICがCPUとLANCの2個しか搭載されていません。RAMがCPU内蔵、ROMはSDカード起動のため不要ということなのでしょうが、部品点数が少なく感じました。
続いて裏面。
裏面は、SDスロットがあるだけで、特にコネクタは存在しません。
SDスロットはPush-IN/Pull-OUTタイプ(カードリーダー等にあるタイプ)で簡素(廉価)なものが実装されています。ただし、私が良く利用する某電子部品ショップで扱っている最安のSDコネクタよりはシッカリしたものです。
「名刺サイズのPC」という謳い文句ですので、一応名刺に乗せてみました。
確かに名刺サイズです。

簡単にRaspberry Pi TYPE Bの仕様を、Wikiから抜粋します。

日本でRSから購入できるのはTYPE Bですが、さらに廉価なTYPE Aも存在します。

では、起動してみます。起動は、SDカードからになります。
SDカードに起動イメージを書き込み、電源を投入するだけで起動可能です。
現在、RS公式ページから辿ってダウンロードできるイメージは3種類です。

まずはdebian。
とりあえず起動しました。Xも起動可能でブラウザ等も起動します。
今回、ネットワーク設定を忘れていたためzigsowのページ表示までは試していません。
次にArch Linux(左)とQtopia(右)。
Arch LinuxはGUIを排除した状態でコンパクトなイメージになっています。
Qtopiaは、旧トロールテックが開発したGUIライブラリQtの環境になります。
QtはXなしでリッチGUIが構築できるため、携帯電話をはじめ一般的な情報端末に採用されることがあります。
今回のイメージで何ができるか良く分かりませんでしたので、とりあえずanimationというアプリを起動して見ました。が、やはり良く分かりません。
現状、非公式扱いではあるもののFedoraやAndroidも起動しているという情報があります。

まだ、総括できるレベルではありませんが、起動して見た段階までに感じたこととしては、あくまで実験基板だということです。
私のように遊びで購入する分には何ら問題ありませんが、間違っても実践投入を前提として購入するのは間違いでしょう。

ただ、やはりこの価格はかなり魅力的でしょう。
某部品ショップの基板でも、バスを有するマイコンを搭載したものだと3000円は余裕で超えてきます。
それに比べ、その5倍も10倍もハイスペックで汎用OSも動作する、PC(っぽいマイコンボード)が3500円程度で買えてしまうのですから驚きです。

もう少しこうして欲しいと感じる点があるのは、学習用途基板だからでしょうか。
一点目、基板はもっと小型化が可能だと思います。HDMIをminiタイプに変更したり、SDをmicro-SDにすることでスペース小型化できると思いますし、小型化しないまでも現状mini-HDMIやmicro-SDが標準となっているため、そちらの方が良いように思われます。
二点目、起動がSDのみではなく、起動用ROMを搭載して欲しかったです。起動をSDにしてしまっているため、SDをデータ領域としてWindowsとやり取りするという使い方に難があります。

まだ全ての購入希望者に届いていない状況ですが、これまで整理券方式で販売されていた本ボードも、ようやく一般販売されるようになりました。
遊ぶためにもそれなりの知識が必要になりますが、Linuxの知識がある方は1台購入してみてはどうでしょうか?
今なら約19週待ちで手に入るようです。

さて、私はこれから何をしましょうか?
いつも通り用途も考えずに購入しましたので、まだ何をするか決めていません。ただ、やりたいことは多数あります。
他のマイコンボードの類では簡単にはできないことも、汎用OSが動作する本ボードならできる(逆にできないこともあるでしょうが)ため、いろいろと楽しんでいきたいと思います。

[追記:2012.07.22]
初出で書くのを忘れました。
先日から一生懸命(?)作成していたケースですが、こんな感じになっています。
前述、コネクタの高さを考えていなかったため、手持ちのスペーサでは足りず、未完成の状態です。
ただ、イメージはこういう形を考えています。
[追記:2012.07.23]
とりあえずケースもといカバーが完成しました。
といっても、昨日の状態にスペーサを継ぎ足し、もう一枚のアクリル板に穴を開けて固定しただけです。
長辺はスペーサに干渉して固定されているのですが、短辺は固定するものがないため、USBコネクタや電源USBケーブルを接続する時、基板がスポッと抜けてしまうのが問題です。
ケース完成の様子と動作の様子を合わせて、こんな感じです。
この時、画面はこのような感じになっていました。
debianイメージに含まれるブラウザでzigsowを表示してみました。
表示はできるものの日本語に対応していないため、所々正しく表示できていません。なお、入力もUS配列になっていました。
画面右下に小さくパフォーマンスモニタが表示されていますが、zigsowのLOUNGEはアニメーション画像が多いためか、かなりの負荷がかかっており、体感でも明らかにモッサリになりました。
debianのイメージでの起動について補足すると、SDにイメージを書き込み、起動するとネットワーク関連のデーモンの設定が行われ、一度再起動します。
再起動した後、ログインプロンプトが表示され、入力が可能になります。
debianイメージのログインはUSER:pi/PASS:raspberryになっています。

[追記:2012.07.23]
各ディスクのイメージは以下のようになっています。
Arch Linuxを除く、2イメージはSDにスワップ領域を準備して稼働していることが分かります。

[debian]
ディスク debian6-19-04-2012.img: 0 MB, 0 バイト
ヘッド 4, セクタ 32, シリンダ 0, 合計 0 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
デバイス ブート 始点 終点 ブロック Id システム
debian6-19-04-2012.img1 2048 155647 76800 c W95 FAT32 (LBA)
debian6-19-04-2012.img2 157696 3414015 1628160 83 Linux
debian6-19-04-2012.img3 3416064 3807231 195584 82 Linux スワップ / Solaris

[Arch Linux]
ディスク archlinuxarm-29-04-2012.img: 0 MB, 0 バイト
ヘッド 255, セクタ 63, シリンダ 0, 合計 0 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
デバイス ブート 始点 終点 ブロック Id システム
archlinuxarm-29-04-2012.img1 1 195312 97656 c W95 FAT32 (LBA)
archlinuxarm-29-04-2012.img2 197265 3862527 1832631+ 83 Linux

[qtonpi]
ディスク qtonpi-sdcard-0.2.img: 0 MB, 0 バイト
ヘッド 61, セクタ 62, シリンダ 0, 合計 0 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
デバイス ブート 始点 終点 ブロック Id システム
qtonpi-sdcard-0.2.img1 62 249611 124775 c W95 FAT32 (LBA)
qtonpi-sdcard-0.2.img2 249612 2250289 1000339 83 Linux
qtonpi-sdcard-0.2.img3 2250290 3248737 499224 82 Linux スワップ / Solaris

各イメージ第1パーティション含まれるファイルのうち、以下を除くファイルは異なるようです。
つまり、各イメージ毎にカーネルが異なるようです。

私自身の備忘録(毎回忘れている)のために、パーティションを含むディスクイメージをループマウントする方法を記載します。
毎回物理ディスクに書き込んでも構いませんが、私のように遅いSD/カードリーダーを使っている人は時間を無駄にしてしまいますので、一時的な内容確認であれば、ループバックマウントで確認した方が簡単です。
パーティションを含むイメージは、単純にmount <imagefile> <mountpoint> -o loopではマウントできません。

①fdisk -u -l xxxx.img
ループバックデバイスを指定(-l)してイメージ内のパーティション情報を表示します。
表示単位はユニット(-u)を指定します。
表示内の各パーティションのスタート位置が重要になります。

②mount <imagefile> <mountpoint> -o loop,ro,offset=nnnn
ループバックイメージをオフセットを指定(-o offset=nnnn)してマウントします。
オフセットはバイト単位ですので、①で表示された開始ユニットアドレス×セクタサイズした値を指定します。
ユニットサイズは①の表示内に記載されていますので、それで計算する必要があります。

例として、Arch Linuxイメージの第2パーティションをマウントします。

197265×512=[Byte]
mount archlinuxarm-29-04-2012.img /mnt/loop -o loop,ro,offset=100999680

[追記:2012.07.23]
開発環境も準備しておきましょう。
今回は、VMWareにインストールしてある使い慣れたUbuntu 10.04(32bit)を使用しました。
ビルドに必要なツールは適宜apt-get installする必要があります。

将来のことを考えてAndroidのソース一式をダウンロードします。
Androidのソース一式にはクロスコンパイラも含まれますので、個別に準備する手間を省こうという算段です。
ダウンロード方法は、Android開発のHP
に記載がありますので、基本的にそれに従うことにしました。
なお、Raspberry Piのスペックを考え、Android 2.2 Froyoを選択しましたが、Androidソース一式が8G超、Raspberry Piカーネルソースが1G超のサイズがあるため、HDDと時間に余裕を見て実行することをお勧めします。
簡単にコマンドラインだけ記載しますが、手打ちですので誤記はご了承下さい。

ソースダウンロードに必要なツールをインストールします。
$ sudo apt-get install git-core
$ sudo apt-get install curl

ビルドには、上記以外に以下のツールが必要なようです。
バージョンや文献によって記載がことなるようですので、調整が必要かもしれません。
$ sudo apt-get install gnupg flex bison gperf build-essential \
zip zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils xsltproc

複数のgitで管理されるAndroidソースをダウンロードするためのrepoツールをダウンロードします。
$ mkdir ~/bin
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ export PATH=$PATH:~/bin:$PATH

いよいよ、ソース一式のダウンロードです。
repo initに指定するブランチオプション(-b)でダウンロードするバージョンを指定することが可能です。
$ mkdir ~/android
$ cd ~/android
$ repo init -u https://android.googlesource.com/platform/manifest -b froyo
$ repo sync

Raspberry Piカーネルソースもダウンロードしておきます。
私は欠片情報を元にダウンロードしましたが、以下が参考になるかと思いますので、そちらに振ることにします。
RPi Kernel Compilation
raspberrypi/linux - GitHub
Raspberry Pi Kernel Compile | MitchTech
Android 2.2のカーネルとはバージョンが違いますので、どうマージしようか検討中です。

ビルドの際、Froyoの場合はJDK5、Gingerbread以降はJDK6が必要になります。
現在apt-getではインストールできないようですので、OracleのHPよりLinux用インストールバイナリをダウンロードして実行するのことになります。

[追記:2012.07.25]
正直なところ、私はLinuxがなんたるかを良く分かっていません。
これまで、私的に適当なディストリビューションをインストールして、色々なサーバを立ち上げたり、公的にドライバ・アプリケーション等のプログラムを作ったりはしていました。
しかし、それはあくまで誰かが提供してくれた環境の上で、何かしたり、ビルド環境として使用してきたに過ぎません。

今回、RPi通して、一からLinux(またはそれに関すること)を立ち上げるというのは良い勉強になります。まさにRPiの主旨に沿った活動でしょう。
とりあえず、Linuxシステムの中で、私がもっとも真っ暗に感じているところから、好き勝手に進めていきたいと思います。

というわけで、Linuxのブートプロセスから!と行きたいところですが、そこは後回しにして、ボードの起動順序から調査しました。
各種文献を見ると、RPiは以下の順序で起動するようです。

それが分かってしまえば、自分でビルドしたKernelも、ファイルの差し替えで起動するはずです。
以下でビルドしたKernelをdebianイメージ第1パーティションのファイルと第2パーティション内のモジュールを差し替えてみたところ、無事起動が確認できました。
ビルド環境は、前述のAndroidソースに含まれるものを使用しました。RPi上のdebianでネイティブにビルドすることも可能なようですが5時間かかるという情報があり、今回はクロス環境でビルドすることにしました。

< ソースとツールのダウンロード >
$ mkdir ~/raspberry
$ cd ~/raspberri
$ git clone https://github.com/raspberrypi/linux.git
$ git clone https://github.com/raspberrypi/tools
$ git clone https://github.com/raspberrypi/firmware/

< .config の準備>
$ cd linux
$ cp arch/arm/configs/bcmrpi_cutdown_defconfig .config
または実機で採取した.configを使用。
# zcat /proc/config.gz > <SD Card>/.config
$ cp <SD Card>/.config .config

< コンパイラパスの設定 >
$ export PATH=$PATH:<AndroidSource>/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin

< カーネル・モジュールのビルド >
$ make ARCH=arm CROSS_COMPILE=arm-eabi- -k
$ mkdir modules
$ make ARCH=arm modules_install INSTALL_MOD_PATH=modules

< カーネルイメージの変換 >
$ cd ~/raspberry/tools/mkimage
$ python2 imagetool-uncompressed.py ~/raspberry/linux/arch/arm/boot/Image

起動の確認ができてしまえば、後は自由にカスタマイズできます。

[追記:2012.08.13]
ビルドしたカーネルのSD回りが不安定で、SDを一枚破壊してしまってから、しばらく触れずにいました。
折角の長期休暇ですので、ちょっとした空き時間で触ろうと思い、情報集めをしていたところ、すでにRPiでAndroidを動かそうというプロジェクトで、SDイメージが配信されていることを知りました。

というわけで、早速ダウンロードして、起動して見ました。
まずは Android 2.3 Gingerbreadから。とりあえず、起動しますがマウスにポインタが追いつかないレベルの極度のモッサリといったところでしょうか。


次に、なんと既に4.0 IceCreamSandwitch(ICS)が動いているということで、それを起動していました。
起動はするようですが、まともには起動できておらず、実用どころかお試しにも耐えません。メモリが足りず、次々にプロセスのkillが発生しています。
H/Wアクセラレータも無効状態のようで、モッサリどころの話ではありません。
ただし、BroadcomがRPi上でICSを動作させているという公式アナウンスがあり、それによれば、ハードウェアアクセラレータが有効化され、高速起動&快適動作しているとのことです。
それが事実なら、実に楽しみな情報です。

いろいろ試して見ようかと思いましたが、現状の状態では試すレベルではないようですので、提供イメージで遊ぶのはここ(起動確認)までにします。
  • 購入金額

    3,465円

  • 購入日

    2012年07月20日

  • 購入場所

    RSコンポーネンツ

コメント (12)

  • mickeyさん

    2012/07/22

    最初、プレミアムレビューかと思ってしまいましたw
    日経Linuxに記事が出ていて興味を持っていたのですが
    応募し忘れて今に至ります(^^;
    iRemoconのLinux端末にしてみようかと思っていたので
    今から購入してみようかなと思ったり(^^)
  • しばさん

    2012/07/22

    これいいですね!!私も欲しいです!
    ところで、LANのトランスフォーマーが見当たりませんがLANコネクタ部分に内蔵されているのでしょうか?
  • リーダーさん

    2012/07/22

    本当にちっさいですねーーー
    しかも動く・・・
    自作PCケースもがんばです(^^
他9件のコメントを表示

ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。

YouTube の動画を挿入

YouTube の URL または動画の ID を入力してください

動画の ID が取得できません。ID もしくは URL を正しく入力してください。

ニコニコ動画の動画を挿入

ニコニコ動画の URL または動画の ID を入力してください

動画の ID が取得できません。ID もしくは URL を正しく入力してください。

ZIGSOWリンク挿入

検索対象とキーワードを入力してください

    外部リンクを挿入

    リンク先の URL とタイトルを入力してください

    URL を正しく入力してください。

    画像を挿入(最大サイズ20MB)

    画像を選択してください

    ファイルサイズが20MBを超えています

    別の画像を追加

    ZIGSOW にログイン

    ZIGSOW会員登録(無料)はこちらから