Yocto

提供: ArchWiki
2015年12月1日 (火) 22:10時点におけるKusakata (トーク | 投稿記録)による版 (ページの作成:「Category:開発 en:Yocto Yocto Project (YP) は組み込み環境の Linux 開発者用の人気のオープンソース合同プロジェクトです。YP の初...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

Yocto Project (YP) は組み込み環境の Linux 開発者用の人気のオープンソース合同プロジェクトです。YP の初期バージョンでは Arch Linux で動かすと問題が発生していましたが、新しいバージョンでは問題は少なくなっており、将来的には更に楽になる予定です。古いバージョンを動作させる方法は こちら に優れたガイドがあります。

このガイドでは YP Core 1.8 (Fido) 以降について扱います。

ノート: Arch Linux における Yocto/Poky の動作はまだ確認されていません。

インストール

git, diffstat, unzip, texinfo, python2, chrpath, wget, xterm, sdl, socat, cpio パッケージをインストールしてください。

ノート: 64ビット版の Arch Linux を使っている場合は、公式の multilib リポジトリから gcc-multilib パッケージをインストールしてください。以下の衝突が発生することがあります:
:: gcc-multilib and gcc are in conflict. Remove gcc? [y/N] y
:: gcc-libs-multilib and gcc-libs are in conflict. Remove gcc-libs? [y/N] y

y を選択して衝突を解決してください (multilib バージョンが必要です)。

公式の git リポジトリを複製してください。以下の例では fido ブランチを使っています。

$ git clone --branch fido git://git.yoctoproject.org/poky.git ~/poky

YP Core は python2 の使用が必須です。Python のページより:

$ mkdir -p ~/bin
$ ln -s /usr/bin/python2 ~/bin/python
$ ln -s /usr/bin/python2-config ~/bin/python-config
$ export PATH=~/bin:$PATH

core-image-minimal のビルド

いよいよ core-image-minimal ターゲットをビルドします。まず poky ディレクトリに移動して environment スクリプトを source してください。そして bitbake でビルドしましょう:

$ cd ~/poky
$ source oe-init-build-env build-qemux86
ヒント:

~/poky/build-qemux86/conf/local.conf で以下のことが行えます:

  • ディレクトリを再利用するにはダウンロードディレクトリを変更してください。例: DL_DIR ?= "~/poky-downloads"
  • ビルド時には相当のディスク容量を使用します。INHERIT += "rm_work" という行を追加することでディスク容量を節約できます。
$ bitbake core-image-minimal
WARNING: Host distribution "Arch-Linux" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Parsing recipes: 100%
|########################################################################################################################################################################################################################################################################################| Time: 00:02:42
Parsing of 884 .bb files complete (0 cached, 884 parsed). 1285 targets, 41 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION        = "1.26.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Arch-Linux"
TARGET_SYS        = "i586-poky-linux"
MACHINE           = "qemux86"
DISTRO            = "poky"
DISTRO_VERSION    = "1.8"
TUNE_FEATURES     = "m32 i586"
TARGET_FPU        = ""
meta              
meta-yocto        
meta-yocto-bsp    = "fido:08d32590411568e7bf11612ac695a6e9c6df6286"

NOTE: Preparing RunQueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
WARNING: Failed to fetch URL http://downloads.sourceforge.net/project/libpng/libpng16/1.6.16/libpng-1.6.16.tar.xz, attempting MIRRORS if available
NOTE: Tasks Summary: Attempted 1989 tasks of which 9 didn't need to be rerun and all succeeded.

Summary: There were 2 WARNING messages shown.

完了するまでしばらく時間がかかります。yocto に関する詳細は Quick Start Guide を見て下さい。

ノート: The first warning about Arch Linux not been validated is expected. The second warning can happen when failing to download a resource, the build system will then attempt to get that resource from the next mirror.

core-image-minimal の実行

QEMU でイメージを実行するには、以下のように runqemu コマンドで起動します:

$ runqemu qemux86
Continuing with the following parameters:
KERNEL: [/home/user/poky/build-qemux86/tmp/deploy/images/qemux86/bzImage-qemux86.bin]
ROOTFS: [/home/user/poky/build-qemux86/tmp/deploy/images/qemux86/core-image-minimal-qemux86-20150804095542.rootfs.ext4]
FSTYPE: [ext4]
Setting up tap interface under sudo
[sudo] password for user: 
Acquiring lockfile for tap0...
Running qemu-system-i386...
/home/user/poky/build-qemux86/tmp/sysroots/x86_64-linux/usr/bin/qemu-system-i386 -kernel /home/user/poky/build-qemux86/tmp/deploy/images/qemux86/bzImage-qemux86.bin -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=no,downscript=no -cpu qemu32 -hda /home/user/poky/build-qemux86/tmp/deploy/images/qemux86/core-image-minimal-qemux86-20150804095542.rootfs.ext4 -show-cursor -usb -usbdevice wacom-tablet -vga vmware -no-reboot -m 256 --append "vga=0 uvesafb.mode_option=640x480-32 root=/dev/hda rw mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 oprofile.timer=1 rootfstype=ext4 "
Set 'tap0' nonpersistent
Releasing lockfile of preconfigured tap device 'tap0'
ヒント: If the kernel was recently updated, rebooting might help you avoid issues with tunctl.