Raspberry_Pi_2

Raspberry Pi 2を買ってみて動かしてみた

  • このエントリーをはてなブックマークに追加

by [2015年2月23日]

Raspberry Pi 2 model B

Raspberry Pi 2 model B

以前の記事で教育用ボードコンピュータ「Raspberry Pi」をご紹介した際にmodel A・B・B+・A+と4種類提供されているモデルの中で「どのモデルを買えば良いのか?」ということについて、「あれもこれも試してみたいという場合には、もうmodel Bかmodel B+、オンボード搭載のUSBポート数を考慮するとmodel B+以外に選択肢はありません」という筆者の結論をご紹介してから約2ヶ月半が経ちました。

その間、その「Raspberry Pi model B+」の後継機種として「Raspberry Pi 2 Model B」(以下「Raspberry Pi 2」と略記)が、それも大幅な高速化とメモリ容量の倍増を実現しつつソフトウェア上位互換かつお値段据え置きで発売されるという大ニュースがありました。

つまり、この記事を書いている2015年2月後半の時点では「Raspberry Pi」で「あれもこれも試したい」人は悩まずこの「Raspberry Pi 2」を買えば良い、ということになったわけです。

そこで今回、色々辛抱たまらなくなった筆者が自腹で買ったこの「Raspberry Pi 2」について、あれこれ考えてみたいと思います。

「Raspberry Pi 2」の主な仕様

記事執筆時点で明らかになっている「Raspberry Pi 2」の主な仕様は以下のとおりです。

  • 対応OS:Raspbian・Snappy Ubuntu Core
  • チップセット:Broadcom BCM2836(Cortex-A7 900MHz クアッドコア)
  • 基板サイズ:85.0mm × 56.0mm
  • 内蔵メモリ
    • RAM:1GB LPDDR2 DRAM
    • 拡張スロット:microSD
  • GPU:
    • Broadcom VideoCore IV
    • ※ビデオメモリはメインメモリの内16MB/32MB/64MB/128MB/256MBを選択の上で占有。
  • カメラ:
    • 基板上専用インターフェイス端子(CSI)にCamera Module for Raspberry Piを接続可能
  • LAN:
    • 100Base-TX
  • USB:
    • USB 2.0×4
  • その他入出力端子:
    • GPIOヘッダーピン:40ピン
    • 映像出力:HDMI(1080P)
    • 基板上専用インターフェイス端子(DSI)経由で対応タッチスクリーンディスプレイを利用可能
  • 音声出力:ステレオミニプラグ・HDMI
  • 電源:micro USBあるいはGPIOヘッダーピン経由での5V給電

端的に言ってしまうと、これはほぼ「Raspberry Pi model B+」に搭載の組み込み用統合プロセッサをBCM2835から同系で上位互換のBCM2836に変更し、メモリを増量した「だけ」の上位互換改良モデルです。

ただし厳密に言うと一部の部品の物理形状に変化があったたため、「Raspberry Pi model B+」用として販売されている全てのケースが利用できる保証がありません。

ARM v6からv7になってなにが変わるのか?

今回のCPUアーキテクチャの変更で一番大きな影響は、パフォーマンスの飛躍的な向上もさることながら、新しいOSに対応可能となることやCPU命令セット的に対応するアプリの数が増えることです。

組み込み機器向けのWindows 10(のカスタマイズ版)がこの機種向けに無償提供される、という大ニュースがあったのですが、これもARM v7命令セットサポートのCPUになった恩恵の一つです。

切り捨てが始まっているARM v6

実は、ARM1176JZF-Sが採用しているARM v6系アーキテクチャは、最近の各種Linuxディストリビューションや各種アプリケーションソフトウェアではサポート対象から外されてしまうケースが多くなっていました。

例えばARM v6アーキテクチャのCPUを搭載するマシンでは有力なLinuxディストリビューションの一つである「Ubuntu」が動作せず、「Raspberry Pi」でも同様にこのOSが利用出来ませんでした。

ちなみにこれまで「Raspberry Pi」で事実上の標準OSとして一般に利用されている「Raspbian」はLinuxの有力ディストリビューションである「Debian GNU/Linux」をARM1176JZF-SのサポートするARM v6命令セットに最適化させたカスタマイズ版、「PIDORA」は同じくLinuxの有力ディストリビューションの一つである「Fedora」の最適化・リミックス版(という名のサブセット版)でいずれもLinuxのディストリビューションが基本であるため、「Ubuntu」が動作しなくとも特に重大な問題ではなかったのですが、アプリや開発環境のARM v6非対応/新バージョンでの対応打ち切りは結構深刻な問題で、例えば統合開発環境の「Unity」は「Unity 4」以降ARM v6以前のARM系CPUに非対応となっており、こうした環境やアプリを移植して動作させたい、といった場合にはかなり困ったことになります。

互換性維持とARM v7対応の両立

恐らく、今回Raspberry Pi財団が「Raspberry Pi 2」でCortex-A7を内蔵するBCM2836を統合プロセッサに選択したのは、既存のARM1176JZF-Sのために書かれたアプリの動作互換性を保証しつつ、近年進んでいるARM v6以前の古いアーキテクチャの切り捨てに対応するためであると推測出来ます。

単純に省電力でよりパフォーマンスの良いプロセッサが欲しければ別のプロセッサがいくらでも選択肢たり得た筈なのに、わざわざBCM2835のCPUコアだけCortex-A7に変えたBCM2836を選んで搭載しているのですから、これはGPUやLANなども含めたソフトウェア互換性の維持とCPUアーキテクチャの変更の両立を重視した証左でしょう。

言い換えれば、この「Raspberry Pi 2」では新しいOSやこれまでARM v6命令セットをサポートせず動作しなかった有力アプリが動作するようになりますが、その一方で通常のアプリレベルでは既存の「Raspberry Pi」と同じ動作をさせようと思えば(よほど特殊な使い方をしない限り)その通りに動作することが期待出来る設計となっているわけです。

マルチCPUコアマシンでは既存OSはそのまま動かない可能性が高い

もっとも、先にも触れたようにアーキテクチャが変わったことに加え、CPUコアが4コア搭載となったということはハードウェアに近い、ソフトウェア階層の最も低レベルな部分では挙動に変化があり、またCPUクロックも700MHzから900MHzへおよそ28パーセント増となっているため、OSをはじめとするこうしたシステムの根幹をなすハードウェアにアクセスするようなソフトウェアや、タイミング同期などでCPUクロックに依存するような書き方をされていたアプリなどでは、当然に「Raspberry Pi」で期待されるような動作が得られない/そもそも動作しない可能性が高くなります。

なお、ARM系CPUでのマルチコア対応は実を言うとARM v6の頃から行われていたのですが、ARM v7になる際に「Multi-Processor Extensions」と称して各CPUコアごとに内蔵されたキャッシュメモリの内容の一貫性を保証するためのハードウェアやそれに必要となる命令を追加しており、内蔵されたマルチCPUコアを有効活用するためにはこうした専用ハードウェアや追加命令をOSレベルで積極的に利用する必要があります。

ARM v6でのマルチCPUコア対応は基本的に他のCPUコアが同じメモリアドレスを同時にアクセスしないことを保証する「だけ」のもので、はなはだ効率の悪い仕組みでしたから、より高度でソフトウェア面での負担も少ない「ARM v7 Multi-Processor Extensions」を利用する方が良いのは明らかです。そのため、この変更による既存OSの非対応は必要悪の類と考えるべきでしょう。

実際に動かしてみる

Raspberry Pi 2 model B をRaspberry Pi model B+用ケースに格納した状態。特に問題無く使用できている。

Raspberry Pi 2 model B
をRaspberry Pi model B+用ケースに格納した状態。(筆者の環境では)特に問題無く使用できている。

何やら小難しい話が続いてしまいましたが、ここで筆者が購入した「Raspberry Pi 2」を動かしてみることにしましょう。

必要なものは「Raspberry Pi 2 model B」本体、USB接続のキーボードおよびマウス、HDMI接続に対応するディスプレイ、容量32GB以下のmicroSDメモリカード、micro USB接続対応のACアダプタ、インターネット接続できてmicroSDメモリカードを読み書きできるWindowsあるいはMac OS Xをインストールされたパソコン、そして(あれば)インターネット接続するためのルーターに(直接あるいは間接に)接続されたLANケーブルとなります。

ちなみに筆者はmicroSDメモリカードとして手元にあった容量16GBのmicroSDHCメモリカードを使用し、ディスプレイはメインマシンで使用中のDELL U2713HMにHDMIポートがあったのでそれに接続し、ACアダプタは容量に余裕があるのを買ってApple 12W USB Power Adapterにmicro USB-USB変換ケーブルをつないで使用しています。

なお、ケースはクリア樹脂成形で「Raspberry Pi model B+」用の適当なものを選んで購入しましたが、特に問題無く本体基板が収まって利用できています。

手元に普通のUSBキーボードがなかった

さて、ここまでで筆者がキーボードとマウスについて触れていないことにお気づきのことと思います。

実はここまで準備したところで、筆者の手元に一つとしてまともなUSB接続のキーボードがないことが発覚したのです。

USB接続のキーボード自体は、NECの「N8606-04 A-VXキーボード」という東プレがOEM生産したオフコン系配列の日本語キーボードが、それも何故か2台あったのですが、実はこれはWindows 7/8/8.1でさえWindows Updateでデバイスドライバがインストールされないと正常動作しないという特殊な代物だったのです。

そのため、とてもこれが英語圏育ちの「Raspberry Pi 2」(およびその対応OS上)でそのまま正常動作するとは思えません。

そこで確か部屋のどこかにPS/2-USB変換アダプタがあったはずだ、と探してみたのですがどこにも見当たらず、しばらく途方に暮れてしまいました。

USBもPS/2もダメならADBを使えばいいじゃない

Griffin Technology  iMate今回の筆者にとっての救世主。ADB接続の古いMacintosh用キーボードをUSB接続に変換する。

Griffin Technology iMate
今回の筆者にとっての救世主。ADB接続の古いMacintosh用キーボードをUSB接続に変換する。

そんなわけで、これは外出してPS/2-USB変換アダプタかUSBキーボードを買ってくるしかないか、と思い始めたそのとき、天啓のように引き出しから一つの部品が転がり出てきました。

それはGriffin Technologyという会社が出していたADB-USB変換アダプタのiMate。

ADBというのはあのiMac以前にAppleがMacintoshのキーボードやマウスなどの接続に標準搭載していたインターフェイスです。

これに手持ちで目の前に転がっているApple拡張キーボードI(ADB接続)をつないでやれば、「Raspberry Pi 2」でも使えるのではないか、とそう思ったのです。

そんなわけで、このアダプタとApple拡張キーボードIをつないでから大方セットアップ済みの「Raspberry Pi 2」に接続し、マウスは手元にあったロジクールのUSBホイールマウスを接続、最後にACアダプタをコンセントに差し込んで起動(※注1)してみました。

 ※注1:「Raspberry Pi」シリーズは「Raspberry Pi 2」を含めて電源スイッチがなく、ACアダプタなどからの給電系のコネクタ抜き挿しやACアダプタそのもののコンセント抜き挿しで電源On/Offを行います。

「総統閣下! 私は打てます!!」

・・・感極まって思わず(映画「博士の異常な愛情」の)ストレンジラヴ博士ごっこをしてしまいましたが、問題の「iMate+Apple拡張キーボードI」はどうやら無事に「普通の」USBキーボードとして認識されたようです。

なお、Apple拡張キーボードI(および後継のApple拡張キーボードII)は英語101キーボードの配列を基本に特殊キーを追加した配列なので、英語圏で開発された「Raspberry Pi」シリーズの各種OSでも全く問題無く(むしろ日本語106/109キーボードよりもストレス無く)使用できてしまったりします。

筆者と同じように「iMate+Apple拡張キーボードI/II」をお持ちで、しかも同様に「Raspberry Pi」につないで使うキータッチの良いキーボードをお探しの方は、この組み合わせで利用すると良いかも知れません。

OSの用意

Raspberry Pi 2 model Bの基板裏面に用意されているmicroSDスロットここに適当な容量・速度で対応するOSを書き込んだmicroSDメモリカードを挿し込んでOS起動に利用する。

Raspberry Pi 2 model Bの基板裏面に用意されているmicroSDスロット
ここに適当な容量・速度で対応するOSを書き込んだmicroSDメモリカードを挿し込んでOS起動に利用する。

話が前後してしまいましたがこの「Raspberry Pi 2」の起動に当たっては、その基板裏に実装されたmicroSDカードスロットにOSを書き込んだmicroSDメモリカードを挿し込んでおく必要があります。

「Raspberry Pi」シリーズの初回起動時にWindowsかMac OS Xを搭載し、インターネット接続環境にあり、しかもSDカードを読み書きできるパソコンが必要なのは正にダウンロードしてきた最新OS(のインストーラあるいはイメージファイル)をmicroSDメモリに書き込む必要があるためです。

このmicroSDメモリカードへのOS書き込みは、FAT32フォーマットで初期化したメモリカードに公式サイトからダウンロードしてきた「NOOBS」(New Out Of Box Software)というOSインストーラの圧縮ファイルに含まれていた全てのファイルをそのままコピーするパターンと、同じく初期化済みのメモリカードにイメージファイル書き込みツール(Windowsの場合はWin32DiskImager)を使用してイメージファイルを書き込むかの2通りの方法で行えます。

ただし、「Raspberry Pi」と「Raspberry Pi 2」の双方で動作するOSが現時点では他に存在しないため、現行最新の「NOOBS」ではOSとして「Raspbian」以外収録されていません。そのため、「Raspbian」をインストールする場合はどちらの方法を選んでも得られる結果は大差ありません。

一方、今回「Raspberry Pi 2」発表に合わせてリリースされた「Snappy Ubuntu Core」、つまり「Ubuntu」のクラウドに最適化した軽量化バージョンについては、今後とも「NOOBS」に収録される可能性は低く、イメージファイルの書き込みによるインストールを行う必要があるでしょう。

いずれの方法でも公式サイトで提供されているZIPファイルを解凍→解凍して生成された展開ファイルを書き込みという順番となるため、後はその展開ファイルを直接フォルダにドラッグアンドドロップするか、それともイメージファイル書き込みツールを使って書き込むか、という違いでしかありません。

それぞれわずかながらメリット・デメリットがあるため、そのあたりを考慮しながらいずれかを選択すると良いでしょう。

いざ起動

諸準備を整え、「Raspbian」をインストールしたmicroSDカードをスロットに挿した後で電源を入れて起動が始まると、画面左上に4つの赤いラズベリーの実を象ったアイコンが表示されました。

どうやらこのラズベリーの実の数が搭載されているCPUコア数を示すようです。

そして起動シーケンスが開始されたのですが、とにかく速い。

話には聞いていましたが、Cortex-A7 900MHz 4コアの威力は圧倒的です。

割と引っかかりやすい罠

なお、初回は起動シーケンスが終了し一旦X Window Systemが起動してGUI環境が起動した後で再起動します。

その再起動の途中でログイン名とログインパスワードを訊かれますが、これは(変更していなければ)ログイン名:pi、ログインパスワード:raspberryを入力すればOKです。

また、その直後にコマンドシェルのBash(Bourne-again shell)が起動してGUI環境が直接起動しません。

UNIX系のOSに詳しい方であれば、ここで各種コマンドを試してみるのもよろしいでしょう。

なお、これはそのまま「startx」と入力してEnterキーを打てばすぐにX Window Systemが起動してWindows風のデスクトップ画面が表示されるようになっています。

このあたりの手続きはいかにもUNIX互換OSらしい部分ですが、事前に調べていないと頭を抱えることになる部分でもあります。

各種OSの対応が待たれる

以上、簡単ですが今回筆者が購入した「Raspberry Pi 2」についてOS起動まで見てきました。

「これが今時の教育用ボードコンピュータなのか」とただただ感嘆するばかりの高速動作で、これなら単なる教育用だけでなく、実用面でも十分な利用価値があるでしょう。

世間的にはUSB接続のままでしかも規格が100Base-TXにとどまる内蔵LANに対する批判や、動作中にフラッシュを焚いて撮影したら誤動作した、という問題が取りざたされたりしていますが、筆者の見る限り、これは初代「Raspberry Pi」の正常進化モデルとして今できる限りのことをした、非常によくできた上位互換機種ということになると思います。

さすがにARM v6に最適化してコードを書き直したりコンパイルオプションで最適化したりしていた「Raspberry Pi」用OSを改めてARM v7対応のこの機種に対応させるのはそれなりに大変なようで、「Raspbian」以外の既存OSの対応が遅れていますが、これは時間が解決してくれる種類の問題でしょう。

今後、Windows 10のIoT向け組み込みバージョンの無償提供や、「Snappy Ubuntu Core」でのIoT向けAPIの提供など、この機種のIoT利用を視野に入れた動きが強まってきていますが、そうした用途に使う分にはこれは必要十分以上の性能を備えた機種であると思います。

▼参考リンク
Raspberry Pi 2 Model B | Raspberry Pi
Downloads | Raspberry Pi
iMate Support | Griffin Technology

PageTopへ