2012年12月30日日曜日

Raspberry Pi のSDカードイメージの作成~日本語環境~VNC等インストールのおさらい

 夏ぐらいに注文してあった追加のRaspberry Pi が届いたので、この機会に Raspberry Pi のSDカードイメージの作成のおさらいをすることにしましした。で、SDイメージのダウンロートページを見たら、ちょうど更新されたバージョンがアップされていました。

 まず、必要な物をダウンロードしてきます。作業環境としてはWindowsを前提にしています。

 ダウンロードした Raspberry Pi の SDカードイメージは zip圧縮ファイルになっているので、解凍します。 2012-12-16-wheezy-raspbian.img のようなファイルが展開されます。
 Win32 Disk Imager を起動して、展開したイメージファイルと書込先デバイス(間違えないようにしましょう。他のディスクを消してしまうと大変です)を選択して「Write」ボタンを押します。


 書込みが終わるまで、待ちます。成功すれば「Write Success」のダイアログが表示されます。

 出来上がったSDカードをRaspberry Piに挿して、モニタをHDMI端子またはコンポジット端子に接続します。自分はHDMI入力のあるモニタを持っていないので、プラズマテレビにつないで一時的にモニタ代わりにしました。また、キーボードとマウスはUSB接続します。Ethernetケーブルを接続して、MicoroUSBへ充電用ACアダプタ等(1Aくらいの容量があるもの)接続して電源Onです。


 Raspberryマークが左上に表示されて、Linuxの起動画面がしばらく表示された後、


 Raspi-config 画面が表示されます。今回利用したイメージでは
   info                     :説明。
   expand_rootfs        :ディスク領域拡張。
   overscan              :オーバースキャン。
   configure_keyboard :キーボード設定。
   change_pass          :パスワード変更。
   change_locale        :ロケール(言語)設定。
   change_timezone    :タイムゾーン設定。
   memory_split         :グラフィックなどのメモリー割り当ての変更?試してないです。
   overclock             :オーバクロック設定。
   ssh                     :SSHサービスの起動設定。
   boot_behaviour      :起動時にデスクトップ(GUI)を起動する設定。
   update                :アップデート。
のメニューが並んでいました。とりあえず、起動時に設定するのは
①sshをEnableに設定して、外部からSSH接続できるようにしておく。
②change_timezoneでタイムゾーンをTokyoにしておく。
③config_keybordでキーボードを105→Japanese→OADG109(この辺は人による)にしておく。
④expand_rootfsでSDカードの利用領域を広げる。
です。とりあえず、このくらいで、他はあとから設定・変更でもいいはずです。下手にchange_localで日本語を設定してしまうと、Fontがないので文字化けします。

 これで再起動するとディスクが拡張されて、GUIで起動されます。
 自分はここまで来たら、TVは使わず、Windows PCからネットワーク経由で接続して作業を進めました。ローカル(TV)画面側でifconfigでIPアドレスだけ調べておき、SSHで接続します。(ちなみに、ユーザーは pi 、パスワードは変更していなければ raspberry です。)


 一応、dfコマンドでディスクが拡張されているか確認します。
 次に、自分はGUIをWin PC上からリモートで利用したいので、VNC Serverを入れました。
     sudo apt-get install tightvncserver
で。デフォルト状態ならrootはパスワードなしなので、そのままsudoできるはずです。


 VNC Serverを起動します。
     tightvncserver


 初回はパスワードを聞かれるので適宜設定します。PC側からVNC Viewerで
     Raspberry PIのIPアドレス:5901
へ接続します。


 とりあえず、VNCでGUIにリモート接続するところまでは完了です。

 次は日本語環境をセットアップしていきます。GUIとCUIの両方のリモート接続を使っていきます。コマンドの実行はCUIでもGUI内のLXTerminalでもいいと思いますが、自分はCUI接続側でコマンド実行して、GUI側で確認・・・の感じで進めました。
 まずは、フォントのインストール。
     sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname


 次にロケール設定。sudo rasp-configで先の設定画面に行って、change_localeするか、または、
     sudo dpkg-reconfigure locales
で、en_GB.UTF-8 UTF-8、ja_JP.EUC-JP EUC-JP、ja_JP.UTF-8 UTF-8 あたりにチェックを入れて


 ja_JP.UTF-8 をデフォルトにして進みます。
 続いて、IMEです。
     sudo apt-get install ibus-anthy



 ここで一旦リブート。
     sudo reboot
 再度SSHでログインして tightvncserverを起動し、VNC Viewerで接続します。
 が、ここで、IME(ibus-anthy)のインストールに失敗していました。もう一度、試したところ、「いくつかのアーカイブを取得できません・・・・」的なメッセージ。そこで、一旦
     sudo apt-get update
してから、再度
     sudo apt-get install ibus-anthy
して、 sudo reboot。今度は成功。GUI右下にキーボードのマークが表示されるので右クリックして設定画面を開いて、設定を行います。

 インプットメソッドのタブでAnthyを追加しておきます。一般のタブで全角・半角キーとCTRL+SPACEでIME起動となっていましたが、自分の環境ではCTRL+SPACEでしかIME On/Offしませんでした。VNC経由だからかもしれません。とりあえず、Midoriブラウザか何かで入力を確認。


 どうやら、日本語入力できているようです。これで一応、基本的な環境はできた感じ。あとは、アプリケーション類を入れていきます。
 まず、Chromiusブラウザ
     sudo apt-get install chromium


 エディタとして Geany。
     sudo apt-get install geany


Geanyエディタにプラグインを入れたいんだけど、たしか、gitから持ってくるので、まずは、
     sudo apt-get install git
で、gitを入れた後、
     git clone git://github.com/geany/geany-plugins.git
で、ディレクトリを移って
     cd geany-plugins/
依存関係のあるファイルが足りないみたいなメッセージ・・・・
もしかして、apt-getでダイレクトに行けたりして・・・
     sudo apt-get install geany-plugins
あれ、うまく行っちゃったかな?以前はダメだったと思うんだけど、まあ、いいか。


 GeanyでのGDBデバッグの方法は こちらの方の解説を参考にされるといいと思います。

 あとは、wiringPi を ここの説明を元にgitから入れようと思ったんだけど、うまく行かず、ファイルをダウンロード・解凍する方法でインストールしました。
gitでインストール(自分は失敗)
     git clone git://git.drogon.net/wiringPi

    cd wiringPi
    ./build

なので、手動ダウンロード
     cd /tmp
    wget http://project-downloads.drogon.net/files/wiringPi.tgz

    tar xfz wiringPi.tgz
    cd wiringPi/wiringPi
    make
    sudo make install
    cd ../gpio
    make
    sudo make install


 次にI2Cを使えるようにするための設定です。/etc/modules をエディタで編集して
     i2c-dev
の一行を追加して、/etc/modprobe.d/rasp-blacklist.conf 内の
     blacklist i2c-bcm2708
をコメントアウトまたは削除して、sudo reboot します。そして、
     sudo apt-get install i2c-tools
でI2C用パッケージをインストールします。

 続いて OpenCVです。こちらを参考にさせてもらいました。
     sudo apt-get update
     sudo apt-get -y install build-essential cmake cmake-qt-gui pkg-config libpng12-0 libpng12-dev libpng++-dev libpng3 libpnglite-dev zlib1g-dbg zlib1g zlib1g-dev pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools
     sudo apt-get -y install libjpeg8 libjpeg8-dev libjpeg8-dbg libjpeg-progs ffmpeg libavcodec-dev libavcodec53 libavformat53 libavformat-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libxine1-ffmpeg libxine-dev libxine1-bin libunicap2 libunicap2-dev libdc1394-22-dev libdc1394-22 libdc1394-utils swig libv4l-0 libv4l-dev python-numpy libpython2.6 python-dev python2.6-dev libgtk2.0-dev pkg-config
     wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.2/OpenCV-2.4.2.tar.bz2
     tar -xvjpf OpenCV-2.4.2.tar.bz2
     cd OpenCV-2.4.2/
     mkdir build
     cd build
     export DISPLAY=xxx.xxx.xxx.xxx:0.0
     cmake-gui
CMAKEでsource codeとbuild先のパスを指定してConfigureボタンを押し、インストールするものを選んでチェックボックスを入れて、Generateボタンを押します。


その後
     make
    sudo make install
しますが、makeで半日かかってしまいました。ついでにカメラ動作確認等用に guvcview というのも入れておきます。
     sudo apt-get install guvcview

...と、ここまできて、デスクトップに以前のバージョンではなかった Pi Storeというアイコンが存在することに気づきました。


 まだ、ラインナップがゼロに等しいですが、将来的にはGoogle PlayやApple Storeみたいに様々なアプリケーションがワンクリックで簡単にインストールできるようになるんでしょうか。楽しみですね。