主にマシンAの設定ファイル、カーネル、それらのレイヤーから提供されるu-bootを使用するために、新しいマシンの上流からいくつかのレイヤーフェッチを追加したい(Aと呼ぶ)。しかし、新しいレイヤーには、yoctoプロジェクトの他のマシンのレイヤーと異なるバージョンのbbappendファイル(bbファイルもあります)があります。例えばyoctoのマシン固有のレイヤー
、マシンはは独自のgstreamer1.0_1.8.1.bbとbbappendファイルを持っています。 他のマシンが使用されていますgstreamer1.0_1.6.1.bbです。他のマシンのイメージをビルドすると、Yoctoは常に最新の互換バージョンのパッケージを探してビルドするので、バージョン1.8.1をビルドするということです。しかし、gstreamer1.0_1.8.1.bbappendファイルはマシンA用に書かれており、他のマシンには適用されず、エラーが発生します。 gstreamerだけでなく、もっと多くのものがあります。
私は、bblayers.confファイルにBBLAYERS_A += "new_layers \ ..."
のようなアイデアを得ましたが、残念ながらそれは私が望むように動作しません。私が持っている
もう一つのアイデアは次のようである:
BBMASK_B = "new_layers \ ..."
BBMASK_C = "new_layers \ ..."
BBMASK_D = "new_layers \ ..."
BBMASK_E = "new_layers \ ..."
BBMASK_F = "new_layers \ ..."
BBMASK_G = "new_layers \ ..."
BBMASK_H = "new_layers \ ..."
BBMASK_I = "new_layers \ ..."
...
それは私に良い見ていないと私はそれは同様に動作しません疑います。ビルド手順はまずbblayers.confファイルをロードしてからlocal.confをロードすることだと思います。したがって、どのマシンを構築するかを知る前に、レイヤーが展開されます。
私の質問は、私はマシンのみで動作するものを、新たに追加された層を作ることができますが、他のマシンで慣れていないだろうかです。
COMPATIBLE_MACHINEは意味があります。しかし、私の謝罪は、私のケースはほとんどのレイヤー(machineaだけでなく)が上流からフェッチしている(私はちょっと質問を修正した)。上流のbbappendファイルをローカルに変更したくない。どうすれば達成できますか?レイヤー内のファイルを変更するのではなく、変更をグローバルに行うことができるlocal.confがありますか? –
レイヤーは一般的なレイヤーですか、単一のマシンにのみ適用したいのですか?または、マシン固有のレイヤーですか?つまり、アップストリームがマシン固有のレイヤーであると主張されていますか? – Anders