This service is available only in Japanese-language.
社内エンジニアから良くある質問です。
あるBSPをベースに、新規に起こしたボード向けのBSPを作成する際の注意点を教えてください。
yakuhito
2018/5/23 (水) 16:46
既存の類似したボード向けのBSPをベースに開発を進める場合がほとんどと思いますが、 作業を始めるにあたって、ベースとなったBSPのアップデートが有った場合に、変更点が 失われてしまうことを防ぐため新規にレイヤーを作成し、その中にBSPとして作成する ファイルを保存するようにすることをお勧めします。
新規レイヤーの作成ですが、yocto-2.4 までは、yocto-layer コマンドの create-layer サブコマンドを使用する方法が一般的でしたが、永らくアップデートが行われておらず、 bitbake-layers に create-layerサブコマンドが追加されたこともあり、yocto2.5からは bitbkae-layers create-layer を使用して新規レイヤーを作成します。
2.3以前のyocto互換の一部BSPの場合、yocto-layerコマンドが使えないケースがあります。 そのような場合は、お使いのBSPと互換性のあるpokyを入手し、環境をセットアップした上で レイヤーを作成したい場所でyocto-layer create を実行することで、layerの作成は可能です。 2.4以降はbitbake-layersが使用可能となっているので、pokyを含まないBSPでも、レイヤーを 作成するユーティリティが利用できます。
2018/6/18 (月) 18:44
ここのところメンテナンスが行われておらず、yocto2.5から配布が中止となったyocto-bspコマンドですが 対話的に実行するこのコマンドの生成物を確認することで、どのようなファイルを作成する必要があるかを 理解する助けになります。
yocto-bsp create myboard arm の実行で以下のファイルが生成されています。
meta-myboard |-- COPYING.MIT |-- README |-- README.sources |-- binary |-- conf | |-- layer.conf | `-- machine | `-- myboard.conf ← このファイルがMACHINで指定するボード名となります。 |-- recipes-bsp | `-- formfactor | |-- formfactor | | `-- myboard ← このボード向けのハードウェア設定ファイルを格納するディレクトリ | | `-- machconfig ← 内容は、touch screen/keyboard のサポートの有無となります | `-- formfactor_0.0.bbappend ←新規マシン向けの設定が追加となったので、bbappend が生成されます。 |-- recipes-graphics | `-- xorg-xserver | |-- xserver-xf86-config | | `-- myboard | | `-- xorg.conf ←ボード向けのxorg.conf をこの位置に保存します。 | `-- xserver-xf86-config_0.1.bbappend ←ボード向けにxorg.confを追加したため、bbappendが生成されます。 `-- recipes-kernel `-- linux ← 以下ベースとなったkernelに対する差分を記述するファイル郡となります。 |-- files | |-- myboard-non_hardware.cfg | |-- myboard-preempt-rt.scc | |-- myboard-standard.scc | |-- myboard-tiny.scc | |-- myboard-user-config.cfg | |-- myboard-user-features.scc | |-- myboard-user-patches.scc | |-- myboard.cfg | `-- myboard.scc `-- linux-yocto_4.4.bbappend
今回の例では、bootloaderに関しては特に指定を行わずにコマンドを実行しましたが、 bootloaderに関する質問に別の答えを行うことで、boot loader向けのカスタマイズ例も 生成されます。
2018/7/6 (金) 17:47
他のBSPむけの.confを参考にボード名.confを作成する場合、以下の項目が必要となります。 TARGET_ARCH arm arm64 x86 x86_64 powerpc powerpc64 mips mipsel のいずれかを指定します。 PREFERRED_PROVIDER_virtual/kernel どのカーネルを使用するのかlinuix-yocto linux-yocto-tiny といった形式で指定します。
MACHINE_FEATURES そのボードに備わる機能を記述します。 https://www.yoctoproject.org/docs/2.5/ref-manual/ref-manual.html#ref-fea... に指定可能な一覧があります。
yakuhito
2018/5/23 (水) 16:46
新規レイヤーの作成は必須です
既存の類似したボード向けのBSPをベースに開発を進める場合がほとんどと思いますが、
作業を始めるにあたって、ベースとなったBSPのアップデートが有った場合に、変更点が
失われてしまうことを防ぐため新規にレイヤーを作成し、その中にBSPとして作成する
ファイルを保存するようにすることをお勧めします。
新規レイヤーの作成ですが、yocto-2.4 までは、yocto-layer コマンドの create-layer
サブコマンドを使用する方法が一般的でしたが、永らくアップデートが行われておらず、
bitbake-layers に create-layerサブコマンドが追加されたこともあり、yocto2.5からは
bitbkae-layers create-layer を使用して新規レイヤーを作成します。
2.3以前のyocto互換の一部BSPの場合、yocto-layerコマンドが使えないケースがあります。
そのような場合は、お使いのBSPと互換性のあるpokyを入手し、環境をセットアップした上で
レイヤーを作成したい場所でyocto-layer create を実行することで、layerの作成は可能です。
2.4以降はbitbake-layersが使用可能となっているので、pokyを含まないBSPでも、レイヤーを
作成するユーティリティが利用できます。
yakuhito
2018/6/18 (月) 18:44
yocto-bsp コマンドを使用することで、どのようなファイルが必要か理解できます。
ここのところメンテナンスが行われておらず、yocto2.5から配布が中止となったyocto-bspコマンドですが
対話的に実行するこのコマンドの生成物を確認することで、どのようなファイルを作成する必要があるかを
理解する助けになります。
yocto-bsp create myboard arm の実行で以下のファイルが生成されています。
meta-myboard
|-- COPYING.MIT
|-- README
|-- README.sources
|-- binary
|-- conf
| |-- layer.conf
| `-- machine
| `-- myboard.conf ← このファイルがMACHINで指定するボード名となります。
|-- recipes-bsp
| `-- formfactor
| |-- formfactor
| | `-- myboard ← このボード向けのハードウェア設定ファイルを格納するディレクトリ
| | `-- machconfig ← 内容は、touch screen/keyboard のサポートの有無となります
| `-- formfactor_0.0.bbappend ←新規マシン向けの設定が追加となったので、bbappend が生成されます。
|-- recipes-graphics
| `-- xorg-xserver
| |-- xserver-xf86-config
| | `-- myboard
| | `-- xorg.conf ←ボード向けのxorg.conf をこの位置に保存します。
| `-- xserver-xf86-config_0.1.bbappend ←ボード向けにxorg.confを追加したため、bbappendが生成されます。
`-- recipes-kernel
`-- linux ← 以下ベースとなったkernelに対する差分を記述するファイル郡となります。
|-- files
| |-- myboard-non_hardware.cfg
| |-- myboard-preempt-rt.scc
| |-- myboard-standard.scc
| |-- myboard-tiny.scc
| |-- myboard-user-config.cfg
| |-- myboard-user-features.scc
| |-- myboard-user-patches.scc
| |-- myboard.cfg
| `-- myboard.scc
`-- linux-yocto_4.4.bbappend
今回の例では、bootloaderに関しては特に指定を行わずにコマンドを実行しましたが、
bootloaderに関する質問に別の答えを行うことで、boot loader向けのカスタマイズ例も
生成されます。
yakuhito
2018/7/6 (金) 17:47
MACHINE.conf で必須な項目
他のBSPむけの.confを参考にボード名.confを作成する場合、以下の項目が必要となります。
TARGET_ARCH
arm arm64 x86 x86_64 powerpc powerpc64 mips mipsel のいずれかを指定します。
PREFERRED_PROVIDER_virtual/kernel
どのカーネルを使用するのかlinuix-yocto linux-yocto-tiny といった形式で指定します。
MACHINE_FEATURES
そのボードに備わる機能を記述します。
https://www.yoctoproject.org/docs/2.5/ref-manual/ref-manual.html#ref-fea...
に指定可能な一覧があります。