2

Yocto Project は初めてで、i.MX6QP/Q/DL SABRE Automotive に基づくカスタム ボード用のシンプルなコア イメージ最小イメージを構築しようとしています。現在、メタフリースケール レイヤーのみを使用しています。

ビルドして Linux カーネルの fitImage に含めるカスタム DTS ファイルがいくつかあります。

これは私がこれまでに行ったことです:

  1. カスタム マシンでカスタム レイヤーを作成し、conf/machine.confファイルで、使用する DTB を指定しました。

    KERNEL_DEVICETREE = " \
        imx6qp-g25-protoc-1280x480.dtb \
        ...
    "
    
  2. /yocto/poky/meta-custom/recipes-kernel/linux/にlinux-fslc-imx_%.bbappendファイルを作成しました。このファイルは、git diff を含む.patchファイルを参照します。.patch ファイルには、必要なarch/arm/boot/dts/Makefileの変更と DTS ファイルを含めました。

残念ながら、core-image-minimal をビルドしようとすると、DTB のビルドは次のメッセージで失敗します。

make[3]: * ターゲット 'arch/arm/boot/dts/imx6qp-g25-protoc-1280x480.dtb' を作成するルールはありません。止まる。arch/arm/Makefile:322: ターゲット 'imx6qp-g25-protoc-1280x480.dtb' のレシピが作成に失敗しました[2]:[imx6qp-g25-protoc-1280x480.dtb] エラー 2 Makefile:146: ターゲット 'sub-make' のレシピが作成に失敗しました[1]:[sub-make] エラー 2 Makefile:24: ターゲット '__sub-make' のレシピが作成に失敗しました: * [__sub-make] エラー 2 エラー: oe_runmake に失敗しました 警告: シェル コマンドからコード 1 を終了します。

実際、ソースフォルダーlinux-fslc-imx/4.1-2.0.x+gitAUTOINC+6c1ad49339-r0/build/source/arch/arm/boot/dtsを見て、パッチが適用されていることを確認しました。Makefileは正しく、DTSファイルは存在します。

4

2 に答える 2

1

または、このオプションを内部に含む設定ファイルimx6q.cfg :

ARCH_SOC_IMX6Q=y

作成して、linux-xxx.bbレシピの横にあるfilesサブフォルダーに配置できます。

この場合、カーネルで提供されるdefconfigは、コンパイルまたはパッチを適用する前に、必要なオプションを有効にします。

作成した構成ファイルをlinux-xxx.bbレシピ内に追加する方法については、次の例を使用してください。

SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git;protocol=git;nocheckout=1;name=machine;branch=linux-5.4.y; \
           file://imx6q.cfg"
于 2020-12-01T16:07:43.323 に答える