Yocto プロジェクトのビルドをしてみた

以下のページを参考にしました。
http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html
http://www.ibm.com/developerworks/jp/linux/library/l-yocto-linux/

ビルドマシンは Ubuntu 12.04 (x86_64) CPU: Intel Core i7 950 @3.07GHz, メモリ 24GB

準備

$ sudo apt-get install sed wget subversion git-core coreutils \
     unzip texi2html texinfo libsdl1.2-dev docbook-utils fop gawk \
     python-pysqlite2 diffstat make gcc build-essential xsltproc \
     g++ desktop-file-utils chrpath libgl1-mesa-dev libglu1-mesa-dev \
     autoconf automake groff libtool xterm libxml-parser-perl

yoctoのツールをダウンロードして展開

$ mkdir yocto
$ cd yocto/
$ wget http://downloads.yoctoproject.org/releases/yocto/yocto-1.3/poky-danny-8.0.tar.bz2
$ tar xvf poky-danny-8.0.tar.bz2 

環境設定

$ cd poky-danny-8.0/
$ source oe-init-build-env

自動でbuildというディレクトリが作成されて、そこにcdされます。

$ vi conf/local.conf 

以下の2つをアンコメントして変更。ビルドマシンは論理8コアなので。

BB_NUMBER_THREADS = "8"
PARALLEL_MAKE = "-j 8"

ビルド

$ time bitbake -k core-image-sato

real 89m19.275s 
user 427m55.305s
sys 55m21.352s 

一時間半かかりました。必要なファイルは自動でダウンロードされます。
以下のファイルができました。

 $ ls -l tmp/deploy/images/
 total 510784
 -rw-rw-r-- 1 koba koba       294 Jan 19 22:10 README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
 lrwxrwxrwx 1 koba koba       135 Jan 19 21:57 bzImage -> bzImage- 3.4.11+git1+a201268353c030d9fafe00f2041976f7437d9386_1+449f7f520350700858f21a5554b81cc8ad23267d- r4.3-qemux86-20130119114910.bin
 -rw-r--r-- 1 koba koba   5415280 Jan 19 21:57 bzImage- 3.4.11+git1+a201268353c030d9fafe00f2041976f7437d9386_1+449f7f520350700858f21a5554b81cc8ad23267d-r4.3-qemux86-20130119114910.bin
 lrwxrwxrwx 1 koba koba       135 Jan 19 21:57 bzImage-qemux86.bin -> bzImage-3.4.11+git1+a201268353c030d9fafe00f2041976f7437d9386_1+449f7f520350700858f21a5554b81cc8ad23267d-r4.3-qemux86-20130119114910.bin
 -rw-r--r-- 1 koba koba 503327744 Jan 19 22:41 core-image-sato-qemux86-20130119114910.rootfs.ext3
 -rw-r--r-- 1 koba koba 127526609 Jan 19 22:14 core-image-sato-qemux86-20130119114910.rootfs.tar.bz2
 lrwxrwxrwx 1 koba koba        50 Jan 19 22:14 core-image-sato-qemux86.ext3 -> core-image-sato-qemux86-20130119114910.rootfs.ext3
 lrwxrwxrwx 1 koba koba        53 Jan 19 22:14 core-image-sato-qemux86.tar.bz2 -> core-image-sato-qemux86-20130119114910.rootfs.tar.bz2
 -rw-rw-r-- 1 koba koba  32166920 Jan 19 21:57 modules-3.4.11-yocto-standard-r4.3-qemux86.tgz

起動

$ runqemu qemux86

なにかGUIのデスクトップ画面が出ました。

追記

targetをqemuarmに変更して

$ time bitbake -k core-image-minimal

real	46m44.128s
user	173m14.618s
sys	24m15.931s

実行するジョブの数は約5300から約1500に減ったけど思ったより時間がかかった。
並列化できるジョブが減ったためのようだ。

 $ ls -l tmp/deploy/images/
 total 40080
 -rw-rw-r-- 1 koba koba      294 Jan 20 14:10 README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
 -rw-r--r-- 1 koba koba 10963968 Jan 20 14:11 core-image-minimal-qemuarm-20130120042821.rootfs.ext3
 -rw-r--r-- 1 koba koba  3121959 Jan 20 14:11 core-image-minimal-qemuarm-20130120042821.rootfs.tar.bz2
 lrwxrwxrwx 1 koba koba       53 Jan 20 14:11 core-image-minimal-qemuarm.ext3 -> core-image-minimal-qemuarm-20130120042821.rootfs.ext3
 lrwxrwxrwx 1 koba koba       56 Jan 20 14:11 core-image-minimal-qemuarm.tar.bz2 -> core-image-minimal-qemuarm-20130120042821.rootfs.tar.bz2
 -rw-rw-r-- 1 koba koba 25197926 Jan 20 13:58 modules-3.4.11-yocto-standard-r4.3-qemuarm.tgz
 lrwxrwxrwx 1 koba koba      134 Jan 20 13:58 zImage -> zImage-3.4.11+git1+a201268353c030d9fafe00f2041976f7437d9386_1+8ee53c3b82ada3cdfd7d25f07d3975834ac9a9b2-r4.3-qemuarm-20130120042821.bin
 -rw-r--r-- 1 koba koba  3837760 Jan 20 13:58 zImage-3.4.11+git1+a201268353c030d9fafe00f2041976f7437d9386_1+8ee53c3b82ada3cdfd7d25f07d3975834ac9a9b2-r4.3-qemuarm-20130120042821.bin
 lrwxrwxrwx 1 koba koba      134 Jan 20 13:58 zImage-qemuarm.bin -> zImage-3.4.11+git1+a201268353c030d9fafe00f2041976f7437d9386_1+8ee53c3b82ada3cdfd7d25f07d3975834ac9a9b2-r4.3-qemuarm-20130120042821.bin