LoginSignup
37
37

More than 5 years have passed since last update.

Intel EdisonをDebian化して,scikit-learnとか入れる

Last updated at Posted at 2014-11-07

Edisonをセンサーやアクチュエータを操作するマイコンのようにしか使わないのは,ちともったいない.EdisonはIoTの末端に位置するだけの存在じゃないんですよ,と.

大まかな手順は,以下.

  1. 母艦の準備
  2. Edisonの初期設定
  3. 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系の管理パスが抜け落ちるので,結局こうなった.
正直,この設定の仕方はスマートじゃないと自覚している.

あと, ~/.bashrcPYTHONPATH を,

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

37
37
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
37