2014年3月2日日曜日

Linaroのtoolchainを使う(ソースビルド)

先日のヤクト勉強会にて、Linaroのツールの話がありまして、
LinaroのGCCを使うと、早いしコードも小さいしいいことだらけですよ
ということでしたので、それならばさっそく使ってみましょう
というエントリです。

yoctoにはlinaroのレイヤも存在していまして、
Linaroのwikiにもビルドの仕方が紹介されていますので、
基本的にはそれをなぞるだけです。

まずは、meta-linaroをクローンしてきます。
meta-openembeddedも必要です。
$ git clone git://git.linaro.org/openembedded/meta-linaro.git
$ git clone git://git.openembedded.org/meta-openembedded

ビルドディレクトリを作成したら、bblayersに下記のレイヤを追加します。
$ source poky/oe-initi-build-env build_dir
$ vi conf/bblayers.conf
BBLAYERS ?= " \
...
  /home/knishimu/workplace/raspi/poky/meta-openembedded/meta-networking \
  /home/knishimu/workplace/raspi/poky/meta-linaro/meta-linaro \
  /home/knishimu/workplace/raspi/poky/meta-linaro/meta-linaro-toolchain \
  "
...

meta-networkingがないと、networking-layerがないとかいうわかりにくいエラーが出ます。
meta-networkingがないって出してくれればいいのにと思うんですが、
まぁ、やむをえないですねぇ。

次に、local.confでlinaroのツールを指定します。
現在のmasterブランチでは、linaro-4.8しかレシピがありません。
昔のブランチでは、4.7などほかのバージョンのレシピも存在しています
DEFAULTTUNEは好みですが、armv6hf, arm1176jzfshfともにビルドできました。
$ vi conf/local.conf
...
GCCVERSION = "linaro-4.8"
SDKGCCVERSION = "linaro-4.8"
PREFERRED_PROVIDER_eglibc = "eglibc"

#DEFAULTTUNE_raspberrypi = "arm1176jzfshf"
DEFAULTTUNE_raspberrypi = "armv6hf"
...

とりあえず、これでビルドはできました。
これとは別に、ビルド済みのツールチェインを使ってビルドする方法も
ありますが、こちらはまた別の機会で。

https://wiki.linaro.org/KenWerner/Sandbox/OpenEmbedded-Core

0 件のコメント :

コメントを投稿