Edisonをセンサーやアクチュエータを操作するマイコンのようにしか使わないのは,ちともったいない.EdisonはIoTの末端に位置するだけの存在じゃないんですよ,と.
大まかな手順は,以下.
- 母艦の準備
- Edisonの初期設定
- EdisonのPython設定.
それじゃ,いってみよー!
*前回の記事とダブってるところが,かなりあります.
母艦の準備
Debianのイメージをダウンロードしてくる.
とりま,Yoctoのことは忘れましょう.さようならYocto・・,短い間だったけど楽しかった,君のことはきっと忘れない.もっとパッケージ数がそろったら帰ってくるよ..
ubilinuxから,Edison用のイメージをダウンロード.
母艦にdfu-utilをインストール.
各ディストリのパッケージマネージャからでいいと思います.aptでもyumでもMacPortsでもHomebrewでも,好きにしてください.
ただ,本家サイトは,2014年11月7日現在の時点で落ちているみたいです.
あらら,困ったね.
Edison実機に書き込み.
この時点では,まだEdisonを母艦に接続しないでください.
ダウンロードしてきたDebianのイメージtar.gzを解凍.展開されたtoFlashディレクトリの中に移動して,
sudo flashall.sh
その後に,おもむろにEdisonを母艦に接続.
イメージの焼き込みが始まります. 5分以上かかる ので,のんびり待ってください.書き込みが終わった後も,2回リブートする必要があるので, ターミナルが戻って来た後も,2分くらいそのまま放置 してください.
Edisonの初期設定
いつも通り,EdisonにscreenなりTeraTermなりでシリアル接続します. Baudrateは115200 .
ログインは root/edison .
cat /etc/debian_version
とかすると,
7.6
と返ってくるのが嬉しいですね.
無線LANの設定
とりあえず,ネットワークにつないでパッケージのアップデートをしないと何も始まらないので,ワイヤレスLANの設定をします. /etc/network/interfaces を,適当に設定してください.
私の場合は,WPA2ネットワークでSSIDがTEMPでパスワードが1234なので,該当箇所を以下のように編集しました.
iface wlan0 inet dhcp
# For WPA
wpa-scan-ssid 1 # ステルスの場合
wpa-ssid TEMP
wpa-psk 1234
編集が終わったら,
ifup wlan0
でwifiが起動できます.
割り振られたIPは,いつでも
/sbin/ifconfig
の wlan0 の項目で確認できます.
ネットワークにきちんと参加できていることが確かめられたら,
apt-get update
で既存のパッケージ情報を更新しておきましょう.
APTで必要なパッケージのインストール
apt-get install sudo python-dev libgfortran3 subversion git
apt-get install libblas-dev liblapack-dev
とりあえず,このくらいか.
この時点でgfortranをインストールできるので,とても楽(Yoctoと比べて・・).
ユーザーの作成
root権限で色々やるのは楽だけど,環境を壊したりしたら面倒なので.あと,後で説明する,ライブラリを/home以下へ逃がすため.
以下で, alva という名前のユーザーを作成して,パスワードの設定,sudo権限の付与までやります.
useradd -m -g users -s /bin/bash alva
passwd alva
visudo
以下のalvaの行を追記
# User privilege specification
root ALL=(ALL:ALL) ALL
alva ALL=(ALL:ALL) ALL
/etc/hosts への追記
なんか sudo するときに警告が出たので.ここを参考に, /etc/hosts に以下を追記した.
127.0.1.1 ubilinux
ここから先は,作成したalvaユーザーでやりましょうか.
rootアカウントをexitして,alvaアカウントで再ログインします.
EdisonのPython設定
さて,これからEdisonに解析用のPythonパッケージをどしどし入れて行くわけですが,その前に.Edisonの / 以下はあまり容量が割り振られていないため, /home/ 以下にツールやライブラリをインストールするように設定します.
インストール先を/home以下に指定
~/.bashrc に以下を追記します.
export PATH=~/.local/bin:$PATH
export PYTHONPATH=~/.local/lib/python2.7/
入力後は,
source ~/.bashrc
で,設定を有効化.(あるいは再ログイン)
さらに. ~/.pydistutils.cfg を作成して,中に
[install]
user=1
を入力.これでOK.
pipで各種解析ツールのインストール
pythonのパッケージは最新のものを使いたいので,aptは使わない.あと,apt経由でpipをインストールしようとしたら,2.6系のpythonをインストールされそうになったので,こちらも自前で入れることにした.
まずは,
setuptoolsのインストール
wget https://bootstrap.pypa.io/ez_setup.py --no-check-certificate -O - | python
pipのインストール
easy_install pip
色々インストール
pip install numpy scipy pandas scikit-learn PyBrain
ここも3,4時間かかるので注意.
このとき,裏でヘンなことやると,システムのメモリが足りないとかで途中でビルドがコケる.放っておくこと.
PYTHONPATHの設定をsudo後に引き継ぐ
追記項目
以上の変更を行うと, sudo ごしに~/.local/binにインストールしたツールにPATHが通ってなかったり,~/.local以下にインストールしたPythonライブラリが読んでこれなかったりしたので,以下の変更を入れた.
sudo visudo
secure_pathの項目にインストール先のPATHを追記.
env_keepにPYTHONPATHを設定.
Defaults secure_path="/home/alva/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults env_keep += "PYTHONPATH"
env_keep += "PATH,PYTHONPATH" とすると,今度は/sbin系の管理パスが抜け落ちるので,結局こうなった.
正直,この設定の仕方はスマートじゃないと自覚している.
あと, ~/.bashrc の PYTHONPATH を,
export PYTHONPATH=~/.local/lib/python2.7/:~/.local/lib/python2.7/site-packages/
と,site-packagesのほうも含めるようにしないと,importがうまくいかない場合があった.
共有ライブラリを/home以下のものを見に来るように設定
sudo sh -c "echo $HOME/.local/lib > /etc/ld.so.conf.d/locallib.conf"
sudo ldconfig