カテゴリ:
YoctoProjectの環境を使用して、オリジナルのイメージを作成することを目的に、「YoctoProject」の構成を紐解いていく。

今回は「レイヤー」について。

なお、以下の内容において、作成されるレイヤーなどの内容についてまだ未検証の部分もある。
検証完了後、必要があれば修正していく。ブログ作成時では検証は不完全である。

【レイヤーの構成とBSPレイヤー編】
レイヤーとは、どの階層のファイルかという点について記載する。
pokyのソースをダウンロードして展開すると、meta, meta-hob, meta-skeleton, meta-yocto, and meta-yocto-bspというファイルが存在する。
これらすべてがレイヤーである。

オリジナルの環境を作成するとなると、このレイヤーから追加していく必要がある。
YoctoProjectでレイヤーを高速に作成するためのスクリプトが用意されている。
このスクリプトの詳細については、bsp-guidガイドの
1.6.2. Creating a new BSP Layer Using the yocto-bsp Script
を確認していただきたい。

とりあえず、必要な情報をここでは記載しておく。

私は、MinnowBoardを使用しているので、minnowboardで検証できるレイヤーを作成してみる。
スクリプト実行結果は以下

----
yocto@yocto-VirtualBox:~/yocto/poky-dylan-9.0.0$ . ./oe-init-build-env
yocto@yocto-VirtualBox:~/yocto/poky-dylan-9.0.0/build$ cd ../
yocto@yocto-VirtualBox:~/yocto/poky-dylan-9.0.0$ yocto-bsp list karch
Architectures available:
qemu
layer
x86_64
arm
powerpc
mips
i386
yocto@yocto-VirtualBox:~/yocto/poky-dylan-9.0.0$ yocto-bsp create myminnow i386
Checking basic git connectivity...
Done.

Would you like to use the default (3.8) kernel? (y/n) [default: y] (エンター)
Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n] [default: y] (エンター)
Getting branches from remote repo git://git.yoctoproject.org/linux-yocto-3.8.git...
Please choose a machine branch to base this BSP on: [default: standard/base]
1) standard/arm-versatile-926ejs
2) standard/base
3) standard/beagleboard
4) standard/ck
5) standard/common-pc/atom-pc
6) standard/common-pc/base
7) standard/crownbay
8) standard/edf
9) standard/emenlow
10) standard/fri2
11) standard/fsl-mpc8315e-rdb
12) standard/minnow
13) standard/mti-malta32
14) standard/mti-malta64
15) standard/qemuppc
16) standard/routerstationpro
17) standard/sys940x
standard/minnow
Do you need SMP support? (y/n) [default: y] (エンター)
Which machine tuning would you like to use? [default: tune_core2]
1) i586 tuning optimizations
2) Atom tuning optimizations
3) Core2 tuning optimizations
2
Do you need support for X? (y/n) [default: y]
Please select an xserver for this machine: [default: xserver_i915]
1) VESA xserver support
2) i915 xserver support

Does your BSP have a touchscreen? (y/n) [default: n] (エンター)
Does your BSP have a keyboard? (y/n) [default: y] (エンター)

New i386 BSP created in meta-myminnow
yocto@yocto-VirtualBox:~/yocto/poky-dylan-9.0.0$
-------

以上でmeta-myminnowディレクトリが作成される。

もし、手動で作成したり、詳細について確認する場合は、
Development Manual:5.1.2. Creating Your Own Layer以降を確認すること。

yocto-bsp createコマンドで作成されるディレクトリは、
recipes-bsp
recipes-graphics
recipes-kernel
の3つ。

各ディレクトリには、以下の情報が格納されている。
recipes-bspはコンパイル時のプライオリティおよび入出力デバイスについての記載。
recipes-graphicsはXorgの設定について。その環境にあったxorg.confファイルが置かれる。
recipes-kernelはカーネルコンパイル時に用いる.configの内容が書かれたファイルが置かれる。

ここで気を付けたい点は、recipes-graphicsディレクトリのXorgの設定ファイルである。
そのシステムで使用するビデオドライバにより内容が全く異なるため、必ずその環境にあった内容を記載しておくこと。
ちなみに、MinnowBoardのレポジトリから取得した内容と、yocto-bspコマンドを使用して作成された内容と全く異なっていた。