LoginSignup
61
62

More than 5 years have passed since last update.

スタートアップ Intel Edison

Last updated at Posted at 2014-10-26

今回はMacでやりました.
これはあくまでメモなので,まとまった情報を期待してはいけない..

Macでやる作業

ファームウェアアップデート

何はともあれ,これをしないと始まらない.
参考:Flashing Edison (wired) - Mac

母艦(Mac)にHomebrewでツールをインストール

インストール済みの人は次の項へ.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

ファームを焼くために使うツールをMacにインストール

brew install dfu-util coreutils gnu-getopt

Edisonのイメージを焼き込む

まずはダウンロード
Edison - Software Downloadsから,「Edison Yocto complete image」をダウンロードして,解凍しておく.

解凍したディレクトリへ移動
cd ~/Downloads/edison-image-ww36-14 など

焼き込みスクリプト起動
./flashall.sh
スクリプトを起動すると,直後に「Please plug and reboot the board」と言われるので,そしたら一度,USBを抜いて挿し直す.
挿し直しは自動的に認識されるので,ターミナルを操作する必要はない.
焼き込みには5分くらいかかるので,電源を落としたりしないよう,ゆっくり待つ.

シリアル接続してやる作業

screenでシリアル接続

screen /dev/cu.usbserial-A903BYAS 115200 -L
"-A903BYAS"の部分は,環境によって変わる.

ログイン

接続したら,Returnを2度押すと,ログインプロンプトが現れる.
login> root
と入力して,rootユーザーでログイン.パスワードは必要ない.

スケッチを停止

もしArduinoスケッチのプロセスが動いていたら,入力がモタついて操作しにくいので,以下のコマンドで止める.
/opt/edison/sketch_reset.sh

バージョン確認

cat /etc/version
と入力して,表示されるバージョンが「edison-weekly_build_68_2014-09-08_13-49-07」のように,build_68以降であればOK.

hostnameとパスワードとWifiの設定

configure_edison --setup
と入力すると,設定が始まる,Wifiは設定したらすぐに接続される.
設定が終了したら,「Done. Please connect your laptop or PC to the same network as this device and go to http://192.168.0.9 or http://edison.local in your browser.」のように言われてSSH接続できるようになるので,ここから先はSSHで作業を行う.

Wifiの設定だけを行う場合は,
configure_edison --wifi
で良い.

SSH接続してやる作業

ログイン

別のターミナルから,
ssh root@edison.local
「edison.local」のところは,前の項でシリアルから確認したアドレス.
パスワードを要求されるので,先ほど設定したばかりのものを入れる.

タイムゾーンの変更

rm /etc/localtime
で既存の設定を消してから,

ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
で東京/日本に合わせる.

パッケージマネージャの設定

Yocto Linuxのパッケージマネージャはopkgと言うらしい.

Edisonの標準リポジトリの登録

vi /etc/opkg/base-feeds.conf
vi を起動して,

src/gz all http://repo.opkg.net/edison/repo/all
src/gz edison http://repo.opkg.net/edison/repo/edison
src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32

の3行を記入.

Intelリポジトリの登録

vi /etc/opkg/intel-iotdk.conf
vi を起動して,

src intel-iotdk http://iotdk.intel.com/repos/1.1/intelgalactic
src intel-all http://iotdk.intel.com/repos/1.1/iotdk/all
src intel-i586 http://iotdk.intel.com/repos/1.1/iotdk/i586
src intel-x86 http://iotdk.intel.com/repos/1.1/iotdk/x86

の4行を記入.

パッケージリストのアップデート

opkg update

インストール済みパッケージのアップグレード

opkg upgrade

自前ビルドしたライブラリの配置場所を作る

~/.local以下にディレクトリを作る

Edisonの / 以下はあまり容量が割り振られていないため,2.2GBとeMMCの半分以上の容量が割り振られている /home/ 以下にツールやライブラリをインストールする.

vi ~/.profile
vi を起動して,

export PATH=~/.local/bin:$PATH

を入力.これで,このディレクトリに配置したアプリケーションが優先して検索されるようになる.

入力後,
source ~/.profile
で,設定を有効化.(あるいは再ログイン)
コマンドで export を入力すると,PATHが設定されていることがわかる.

計算ライブラリの導入

gfortran(GCC)のインストール

あっ,ダメだこれ.Edisonのメモリ容量が少な過ぎて,途中で止まる..クロスビルド環境構築せな.

ビルドに必要なパッケージをopkgでインストール.
opkg install libgmp-dev libmpfr-dev libmpc-dev

ソースのダウンロード
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.9.1/gcc-4.9.1.tar.bz2

解凍
tar jxvf ./gcc-4.9.1.tar.bz2

ビルドディレクトリの作成
mkdir ./gcc-4.9.1/build

移動
cd ./gcc-4.9.1/build

コンフィグ
../configure --prefix=/home/root/.local --enable-languages=c,c++,fortran --with-fpmath=sse

ビルド
make

インストール
make install

ATLASとLapackのインストール

Automatically Tuned Linear Algebra Software(ATLAS)の導入.線形代数高速演算ライブラリであるBLASのCPUアーキテクチャごとのチューニングを自動でやってくれる実装ってとこ.計算に特化したライブラリ(SciPyとか)だと,BLASが必要になる場合が多いので,ここで入れておく.

ATLASのソースを入手
wget http://downloads.sourceforge.net/project/math-atlas/Stable/3.10.2/atlas3.10.2.tar.bz2

解凍
tar jxvf ./atlas3.10.2.tar.bz2

Lapackのソースを入手
wget http://www.netlib.org/lapack/lapack-3.5.0.tgz

ビルドディレクトリの作成
mkdir ./ATLAS/build

移動
cd ./ATLAS/build

コンフィグ
ATLASは自動的にCPUに最適なチューニングをしてくれるので,この後の作業は,スケッチはもちろん,nodeなども止めて,なるべくCPUに負荷のかかっていない状態でやるのが良い.

../configure --prefix=/home/root/.local --with-netlib-lapack-tarfile=/home/root/lapack-3.5.0.tgz --nof77 -v 2

ビルド
make build
ここで並列ビルドやろうとして"-j2"とか入れると,エラー出る.
色々な最適化パターンを試すので,超絶時間かかる(12時間以上!).
nohup make build > ./make.log &
とすると,ログアウト後もビルドが継続し,ログがmake.logに書き出されるので,さっさと母艦との通信は切って,電源供給だけはしたまま一日中放っておくのが良い.

インストール
make install
libf77blas.aがないってError出るけど,libatlas.a, libcblas.a, liblapack.a, libptcblas.aはインストールできたみたい.
ちなみに,make checkは,libf77blas.aがないので,できない.

インストールの確認

dgesv_example.c
#include <cblas.h>
#include <clapack.h>
#include <math.h>

#define NDIM 4 

int main (){
        int i, j;
        int N=NDIM, NRHS=1, LDA=NDIM, LDB=NDIM;

        double *A = (double *)malloc(NDIM*NDIM*sizeof(double));
        double *B = (double *)malloc(NDIM*sizeof(double));
        int *IPIV = (int *)malloc(NDIM*sizeof(int));

        A[0] = 1.80; A[4] = 2.88; A[8]  = 2.05; A[12] =-0.89;
        A[1] = 5.25; A[5] =-2.95; A[9]  =-0.95; A[13] =-3.80;
        A[2] = 1.58; A[6] =-2.69; A[10] =-2.90; A[14] =-1.04;
        A[3] =-1.11; A[7] =-0.66; A[11] =-0.59; A[15] = 0.80;

        B[0] = 9.52; 
        B[1] = 24.35; 
        B[2] = 0.77;
        B[3] = -6.22;

        clapack_dgesv(CblasColMajor, N, NRHS, A, LDA, IPIV, B, LDB);

        for (i=0;i<N;i++)
                printf("%f\n", B[i]);

        free(A);
        free(B);
        free(IPIV);
}

gcc ./dgesv_example.c -I/home/root/.local/include -L/home/root/.local/lib -llapack -lcblas -latlas

1.000000
-1.000000
3.000000
-5.000000

と出力されればOK.

Python環境のセットアップ

pipで色々入れられるようにする.

インストール先を/home以下に指定

vi ~/.profile
vi を起動して,

export PATH=~/.local/bin:$PATH
export PYTHONPATH=~/.local/lib/python2.7/

を入力.

入力後,
source ~/.profile
で,設定を有効化.(あるいは再ログイン)

さらに.
vi ~/.pydistutils.cfg
vi を起動して,

[install]
user=1

を入力.

setuptoolsのインストール

wget https://bootstrap.pypa.io/ez_setup.py --no-check-certificate -O - | python

pipのインストール

easy_install pip

NumPy Pandasのインストール

ここも3,4時間かかるので注意.
pip install numpy pandas

その他

アクセスポイントにしたり,Beacon/iBeaconにしたり,Node-Redをインストールしたり,Javaをインストールしたりもできるみたい.
https://communities.intel.com/docs/DOC-23391

61
62
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
61
62