Raspberry Piと、FlashAirのコラボ

Raspberry PiはSDカードからのブートができます。 一方FlashAirはSDカードです。 Rasberry Piに挿したFlashAirを活用したいですよね。 むふふ。できるんですよ。 PCやMacやLinuxマシンでも作れますけれど、今回はRaspberry Piを駆使して作ってみます。

動作環境(必要な機材)

  • Raspberry Pi ... 本体ですね。(B+ならば、microSD⇒SD変換ケーブルを使って是非FlashAirを使ってください。)
  • FlashAir ... まずは、PCツールで初期化しておきます。
  • USB SDカードリーダライター ... FlashAirをいろいろと編集するのに必要。
  • SDカード(Raspberry Piのブートが既にインストールされているもの)
  • モニタ,キーボード,マウス
  • (USBの口が無くなったら)USBハブ

以上の構成で、さらに

  • 「SDカードから起動できて」、
  • 「X-Windowが走って」、
  • 「LANでインターネットの通信ができている」

の状況で作業を進めていきます。

1. FlashAirのフォルダ退避

初期化を終えたFlashAirにはいくつかのフォルダが出来ています。 その内、

  • ”\DCIM”
  • ”\SD_WLAN”(隠しフォルダ)

がFlashAirで無線機能が動くための中心となるフォルダですので、最初にこの2つのフォルダーを適当な場所へ保存しておきましょう。 例として保存用フォルダ(=”/home/Pi/Desktop/flashair”)を作成して、そこに上記の2フォルダーをコピーしてみました。

図 1:USB SDカードリーダライターのFlashAirから2つのフォルダーをコピー。

2. FlashAirでのRaspberry Piのブートイメージ作成

あとは初期化したFlashAirにRaspberry PiのOSイメージを書込みます。 その後FlashAirの「/boot」フォルダーに、先ほど退避した2フォルダー(”\SD_WLAN”,”\DCIM”)をコピーすればおしまい。 そ。これだけなんです。 これでRaspberry Pi上でFlashAirの無線LAN機能が動いてしまうんです。

では具体的にRaspberry Piを使ってより具体的に実践してみましょう。

2-1 Raspbianのデスクトップへの展開

インターネット経由でRaspberry Piのイメージをダウンロードします。 いろいろブートイメージはありますけれど、今回は「Rasbian」にしました。

ダウンロードサイトから「Rasbian」の最新版(=”2014-09-09-wheezy-raspbian.zip”)を適当なダウンロード先に保存します。 ただし、3GBぐらい容量になりますので、余裕が必要です。 例として”/home/Pi/Desitop/flashair”に保存してみました。

図 2:ネットからイメージ(圧縮)ファイルをダウンロード

さらに保存したZIPファイルを、解凍します。

$unzip /home/Pi/Desktop/flashair/2014-09-09-raspbian.zip –d /home/Pi/Desktop/Flashair
図 3:圧縮イメージファイルの展開

2-2 RaspbianのFlashAirへの展開

あとはこのファイルをUSB SDカードリーダライターに挿したFlashAir(=”/dev/sdc”)へ展開します。

$sudo dd if=/home/Pi/Desktop/flashair/2014-09-09-wheezy-raspbian.img of=/dev/sdc
図 4:イメージファイルをFlashAirへ展開

展開が終了しましたら、USB SDカードリーダライタ―からFlashAirを抜いて、再度挿し込んでください。 FlashAirに対してイメージが反映されているはずです。 ⇒「/media/boot」、「/media/xxxxx-xxxxx」

図 5:イメージによって生成された「/media/boot」「/media/xxxxx-xxxxx」

2-3 FlashAirのパーティション変更

FlashAirに生成されたブートイメージでは、パーティション領域がイマイチなので、適度な領域に変更させます。 パーティション編集のユーティリティソフト”gparted”(※)を使って、イマイチなFlashAirのパーティションの編集をします。
※インストールしていない人はインストールして使いましょう。

$ sudo apt-get install gparted
図 6:FlashAirにできている2つのパーティション(“gparted”起動後の画面)

2つのパーティションの領域を変更します。

まず、ext4側の変更を行いましょう。 右クリックで”Unmount”した後、領域の末尾を後ろに下げてかつ任意の領域に設定します。

図 7:”ext4”側をUnmout

右クリックで”Resize/Move”を選択して、ext4側の領域を編集します。

図 8:領域を取りつつ、後へズラす(例では約4GB割り当ててみました)

続いて、fat16側です。 こちらも右クリックで”Unmount”します。

図 9:”fat16”側をUnmout

次に右クリックで”Resize/Move”を選択して、fat16側の領域を編集します。 空いている領域は全てfat16に割り当ててしましましょう。

図 10:残りの領域は、全てfat16

以上で「ext4」「fat16」側のパーティションを五分五分に変更してみました。

図 11:イマイチだった2つのパーティション領域を五分五分に編集

一度USBカードリーダライターからFlashAirを抜き取り、再度挿入します。 実はこの作業が一番長いし、キモとなります。

3. FlashAirの退避したディレクトリの保存

さぁもう一息。 USB SDカードリーダライタに挿したFlashAirは新しく変更した「/media/boot」と「/media/xxxxx-xxxxxx」が現れます。 vfat16側の「/media/boot」フォルダへ退避していた(=/home/Pi/Desktop/flashair)2つのフォルダをコピーします。

図 12:退避していた2つのフォルダーを「/media/boot」へ保存する。

コピーが完了したらRaspberry Piの電源を落とします。

4. FlashAirによるRaspberry Piの再起動

もうすぐゴールですよ。 USB SDカードリーダライタで編集したFlashAirを抜き取り、Raspberry Pi本体側のSDカードスロットへ挿して起動させます。 起動させればあとは自動でFlashAirが無線機能を働き始めて、「/boot」フォルダーの内容がスマホ等でアクセスができます!

図 13:ラズパイのFlashAirにあるJPEGファイルが、スマホアプリで見れた!

これで、Raspberry Piの「/boot」フォルダを、スマホから無線LAN経由で読書きができるようになりました!

どうですか。FlashAirの機能を使って、新しいアイデアを生み出してくださいね!

この記事は、閃 ソラ様(@hirameki_sora)から寄稿されたものです。(2014年10月10日)
問い合わせは著者へお願いします。