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
追記
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