忍者ブログ
コンピューターとかゲームの最新ニュースはまとめるのが面倒なので Twitter を追ってください。もしくは1日分のツイートをまとめて簡素な HTML にするスクリプトください。

[Raspberry Pi 3] セットアップ ~ WebGL のパフォーマンスを確かめる


ネット上に無数にある「Raspberry Pi 動かしました」記事を自分が書くことになるとは…
IoT とは別ベクトルに向かうので、マルチメディア関係の処理をさせたい人向けというのがちょっと特殊かもしれません。


Raspberry pi 3 を動かすまでの手順 (RASPBIAN JESSIE + Window System)

NOOBS という、実機上でインストール作業をしなくても、PC(MAC を含む) 上でストレージに Raspberry Pi 用 OS をセットアップしてくれるナイスガイが存在しているので、圧倒的に楽。
そして、Raspberry pi 向け Linux ディストリビューションである RASPBIAN JESSIE (Debian Jessie 派生) のインストールディスクイメージは NOOBS 入りで配布されているので、中学生くらいの英語読解能力さえあればだれでも簡単にセットアップ可能です。


See: https://www.raspberrypi.org/documentation/installation/installing-images/README.md


あれ、それを説明するの?


準備するもの

  • Raspberry pi 本体
    • キーボードとかマウスとかモニタも適当に用意してください。
  • USB microB ケーブルと 2~2.5A くらい出力できる USB 充電器
  • microSDMC カード(8GB以上を激しく推奨)

多分一番の難関は USB 充電器です。聞いた限りでは、電力供給が足りなくなると "落ちる” らしい。
実働させて消費電力チェックするまではボードが要求する通りの電力供給能力を用意しましょう。

行った手順

  1. microSDMC を PC に挿してフォーマット(FAT32 でいいんじゃないでしょうか?)
  2. https://www.raspberrypi.org/downloads/raspbian/ からディスクイメージをダウンロードする (LITE じゃない方)
  3. ZIP を解凍
  4. Windows10 だと、ようやくディスクイメージのマウント機能が標準サポートされたんですが、解凍した *.img ファイルは壊れていると認識してキレる
  5. https://www.raspberrypi.org/documentation/installation/installing-images/windows.md に従い、Win32DiskImager という今まで通りの Windows 用仮想ドライブツールをインストール
  6. Win32DiskImager を起動、解凍したディスクイメージを指定して、microSD のドライブを指定して Write.
  7. 心を無にして書き込み完了を待つ。あるいは「猫でもわかる C# プログラミング」で C# の bool が数値として扱えないことを知る
  8. 書き込みが完了したら、microSD カードを PC から抜いて、Raspberry pi ボードに挿す
  9. Raspberry pi にマウスやらキーボードやらを繋げ、HDMIケーブルを接続してモニタの電源を入れてから USB microB 端子から電源を供給する
    • デフォルトでは HDMI モニタのホットプラグに対応していないので、電源投入後に HDMI ケーブルを挿しても画面出力されません。南無

これで、CUI をすっ飛ばして GUI の画面表示まで行けます。

後処理

動いたので終わり… と言いたいところですが、本来ならインストール作業でいろいろ設定するのに、何もしていないのですから
初回起動時の設定色々をしておきましょう。

raspi-config による初期設定

初期状態では OS に割り当てられているパーティションは 4GB のみです。そして、すでに空き容量はほぼ無し。
こういう、Linux セットアップおなじみの手続きをすっ飛ばしたツケを払うためのツールが raspi-config です。


とりあえず Tarminal を立ち上げ


$ sudo raspi-config


を実行して Enter をポチポチすれば、最初の設定項目が ”パーティションの追加(SDカードの全領域を割り当てる)" なので知らぬ間に最低限の作業を終えられるでしょう。
それ以外の項目は、適宜よろしく。ロケーション設定は Window System 上からも可能です。

ネットワーク接続

SSH による外部からの接続はネットワークに接続さえすれば可能 (デフォルトのユーザー名: pi Passward: raspberry) になっていますので、さっさとネットワークにつなぎましょう。

  • 有線 LAN ならぶっさせばおわりです。
  • Raspberry pi 3 の特権、無線 LAN の場合は、タスクバー右上の "それっぽいアイコン" をクリックしたら、一般的な無線 LAN 接続の手順と同じような感じで接続できます。
apt-get

大抵のものは Debian 先生おなじみの apt-get でインストールできます。
だからこそ Tarminal を立ち上げ


$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dlist-upgrate


しておきましょう。終わったらリブート。

日本語フォントのインストールと日本語入力システムのセットアップ

フォントがないと文字化けします。
こだわりがなければ


$ sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname


でフォントをインストールして


$ sudo apt-get install ibus-anthy


で IBUS という日本語入力システムをインストールしておきましょう。
他に良い日本語入力システムがあればそちらをどうぞ…

HDMI から音を鳴らす & HDMI のホットプラグを有効にする

/boot/config.txt に HDMI 関連の設定を記述すれば OK です。管理者権限がないと書き換えできないファイルなので注意
VI とか嫌なんで、GUI のメモ帳 "LeafPad" を使って編集しました。


$ sudo leafpad


で管理者として LeafPad を立ち上げ、

  • HDMI のホットプラグ対応: hdmi_force_hotplug=1
  • HDMI 接続した機器から音声を出力する: hdmi_drive=2

の前にある # を消すだけの単純なお仕事です。LeafPad は多少気が利いていて保存は CTRL+S でできます。

Raspberry pi 3 で最低限のブラウジング環境を整える

Firefox のクローン 「IceWaesel」をインストール

最初からある 「Epiphary」ブラウザもあるのですが、これを使ったブラウジングは苦行だと思いますので、HTML5 + Javascript がちゃんと動くブラウザとして Firefox をインストールしてみました。
Firefox を選んだ理由は WebGL が動くか、Unity の WebGL ビルドしたものが動くかの確認のためです。


Firefox 自体は無いので、Raspberry pi 向けクローン? の「IceWaesel」を入れます。


$ sudo apt-get instal icewaesel


これだけで、そこら辺に転がっているものなら何でも利用可能になるとは良い時代です。
昔だったら自分で make しないといけなかったのに…


apt-get が完了したら、Windows のスタートメニュー的なものにアプリが登録されているので、マウス操作だけでブラウザを起動できます。


ちなみに、「IceWaesel」でブラウジングしていると CPU 使用率が 25% をやや超えるような数値になりがちです。
おそらく 4コアのうち1コアが全力で動いているんでしょう。 ま、その程度の性能ですよね。


YouTube で動画でも見てみる

フルスクリーンにすると完全に視聴できないレベルですが、通常のウィンドウ表示(?) なら普通に閲覧できます。

ハードウェア的には VideoCore IV にH.264デコーダーがあったはずなので、それのアクセラレーションが出来ればサクサク動くでしょうけど…


ここらへんは後で調べてみたいところです。

WebGL のデモを動かしてみる

これがやりたかった。


Raspberry Pi の GPU は超非力なので 3D なコンテンツが動くことは最初から期待していませんが、 2D のゲームくらいなら動くんじゃないかという期待があるのです。
そこで、以下を実行してみました。(Windows の Chrome では操作できません)


http://www.webglgames.com/circle-game/


実行結果はこんな感じです。


PC9821 + N88-BASIC でもスムーズに動きそうなゲームも安定したフレームレートで動かせてません。
本当は Unity で作られたゲームを動かしてみたいんですが、それ以前の問題のようですね ('Å`)r-^^

とりあえず 今日はここまで。



PR