1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CentOS 7, fedora 21を Intel Edison の母艦にしてみよう

Last updated at Posted at 2014-12-21

Intel Edison の yocto の生成です。 linux ディストリビューションは、ubuntu だけではないですよね。 ということで、CentOS7 と fedora21 で Intel Edison の母艦を立ててみました、の巻。

  • CentOS 7, fedora 21 は 64bit 版を前提に書きます。
    • 32Bit 版はライブラリインストール時のディレクトリ指定を /usr/lib64 から /usr/lib に読み替えれば可能かと思います(未確認)。
  • ここの記載のほとんどが諸先輩方の功績です。ありがとうございました。
    • ポイントは libusb と dfu-util が yum で取れないので母艦でmake installするという点です。
      **

fedora21 Workstation は最初におまじない

開発ツールを入れておきましょう。

$ sudo yum -y install gcc gcc-c++

母艦の環境確認と設定。

必要なツールを母艦に入れておきましょう(CentOS7, fedora21 共通手順)。

$ sudo yum -y install git chrpath patch diffstat libtool minicom

hostname は、ドメイン名を付けておきましょう(付いていない場合は.localの追加でOKです)。

$ sudo hostname xxxx.local
$ sudo vi /etc/hostname

git の設定です。メールアドレスは、gmail.comでも大丈夫。

$ git config --global user.email "xxxxx@xxxxx"
$ git config --global user.name "xxxx xxxx"

USB 接続のユーザーアクセス許可設定です。

$ sudo vi /lib/udev/rules.d/50-udev-default.rules

次の1行をUSBかttyの記述のある行の次の行に追加しておいてください。

KERNEL=="/dev/ttyUSB*", GROUP="uucp", MODE="0666"

母艦での作業場を以下とします。(任意設定可)

$ sudo mkdir /usr/local/edison
$ sudo chmod 777 /usr/local/edison
$ cd /usr/local/edison

必要なソースの入手とインストール

libusb : libusb-1.0.9.tar.bz2 http://www.libusb.org/

$ cd /usr/local/edison
$ tar xvf ~/Download/libusb-1.0.9.tar.bz2
$ cd libusb-1.0.9/
$ ./configure –-prefix=/usr –-libdir=/usr/lib64
$ make
$ sudo make install

dfu-util : dfu-util-0.8.tar.gz http://dfu-util.sourceforge.net/releases/

$ cd /usr/local/edison
$ tar xvf ~/Download/dfu-util-0.8.tar.gz
$ cd dfu-util-0.8
$ ./configure –-prefix=/usr
$ make
$ sudo make install

Edison Linux source files : edison-src-rel1-maint-rel1-wwXX-XX.tgz https://communities.intel.com/docs/DOC-23242

$ cd /usr/local/edison
$ tar xvf ~/Download/edison-src-rel1-maint-rel1-wwXX-XX.tgz
$ cd edison-src/
$ mkdir dl
$ mkdir sstate
$ ./device-software/setup.sh –-dl_dir=./dl –-sstate_dir=./sstate \
--bb_number_thread=8 –-parallel_make=8
  • 引数 8 は母艦のCPUコア数の2~3倍に設定する。
  • bb_number_thread, parallel_make の代わりに、conf/local.confBB_NUMBER_THREADSPARALLEL_MAKE を編集しても良い。

/root ディレクトリのサイズを拡大しておきます。
以下の2つのファイルにある rootfs のサイズを変更します。

./device-software/meta-edison-distro/recipes-bsp/u-boot/files/edison.env
./device-software/meta-edison-distro/recipes-core/images/edison-image.bb

2つのファイルで指定する値は同じ容量であることが大切です(1MiBは1024バイト)。

  • edison.env は MiB 単位です。
  • edison-image.bb は バイト単位です。

yocto の image ファイルを作る。

カーネル生成は bitbake を使います。

$ cd /usr/local/edison/edison-src
$ source pock/oe-init-build-env
$ bitbake virtual/kernel
  • 母艦能力次第ですが、しばしお待ちください。WARNING が出ますが通ればOKです。
  • もしエラーが出たときは、母艦環境にツールかライブラリが足りないためです。 yum で追加をしてください。(足りないものはエラーメッセージのどこかに書かれています)

カーネルのコンフィグを行う場合、menuconfig を使って .config を生成し、defconfig としてコピーします。

$ cd /usr/local/edison/edison-src # カーネル生成からの続きなら不要。
$ source pock/oe-init-build-env # カーネル生成からの続きなら不要。
$ bitbake linux-yocto -c menuconfig
  • edison は 32bit-core なので 64bit OS としない
$ cp tmp/work/edison-poky-linux/linux-yocto/X.XX.XX+gitXXXX/linux-edison-standard-build/.config \
../device-software/meta-edison/recipes-kernel/linux/files/defconfig
$ bitbake virtual/kernel -c configure -f -v

いよいよ全体の生成です。 フラッシュROMに書き込む全ファイルイメージを生成します。

$ cd /usr/local/edison/edison-src # カーネル生成からの続きなら不要。
$ source pock/oe-init-build-env # カーネル生成からの続きなら不要。
$ bitbake edison-image
  • ここは長時間かかります。
  • WARNING が出ますが、最後まで通ればOK。通るまで bitbake する。

転送ファイルを1フォルダにまとめます。 これにより、build 下に toFlash というディレクトリが生成され、ディスクイメージが1つにまとまります。

$ cd /usr/local/edison/edison-src/
$ ./device-software/utils/flash/postBuild.sh

edison に新しい環境を書き込む

edison のFTDIチップ側(OTGではない方)と母艦とを USB にて接続します。

$ ls /dev/ttyUSB*

先の設定により rw-rw-rw- 属性になっていることを確認してください。
転送状態を見るため、minicom を立ち上げて置くことも有効なので立ち上げておきます。

$ LANG=C minicom -D /dev/ttyUSB0
  • 通信設定は115,200bps, data 8bit, non-parity, stop 1bit, H/Wフローなし, S/Wフローなしです。
  • CTRL-A+Zでメニューを出しながら設定した後、設定を保存しておくと次の起動からはデフォルトとなるので便利です。

edison のフラッシュROMに書き込みます。

$ cd /usr/local/edison/edison-src/build/toFlash
$ sudo ./flashall.sh

次のことを順番に行ってください。

  1. edison OTG と母艦とを USB にて接続します。
  2. minicom 側でedisonが起動し、flashall.sh 側と相互に動いていることが確認できると思います。
  3. その後、flashall.sh は終了しますが、minicom 側ではリブート2回ほど行ってます。
  4. めでたく、login: まで来たら終了です。
  5. root でログインし、遊ぶか shutdown してください。
  6. shutdown 完了までは、USB ケーブル 2 本は外さないでください。
1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?