私はYoctoを使ってBeaglebone Blackに取り組んでいます。Yoctoデバイスのツリーオーバーレイ
this PWMドライバの実装を参考にして、自分のPWMをデバイスツリーに追加できません。
Saad Ahmad氏が行っているようにデバイスツリーオーバーレイを作成するのが最善の解決策ですが、Yoctoを使用してこれを行う方法はわかりません。
私はcapemgrを使用していませんが、meta-bbbを使用しています。私は現在カスタムレイヤーを持っていますメタ - tfe現在pwmドライバといくつかの例があります。この層はまた、新しいbitbakeイメージレシピを定義します。以下の
include recipes-core/images/core-image-base.bb
IMAGE_INSTALL += "\
helloworld \
hellokernel \
bbb-pwm \
"
KERNEL_MODULE_AUTOLOAD += "\
hellokernel \
bbb-pwm \
"
export IMAGE_BASENAME = "tfe-image-base"
は、PWMドライバの.BBファイルです:
DESCRIPTION = "PWM kernel module"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=d41d8cd98f00b204e9800998ecf8427e"
PR = "r0"
inherit module
SRC_URI = "file://bbb-pwm.c \
file://Makefile \
file://COPYING \
"
S = "${WORKDIR}"
誰もがこれを行う方法を知っていますか?
編集: 同僚は、私は、メタBBBにカーネルのビルドルールに追加、.bbappendファイルを使用することができることを示唆しました。したがって、これは私がやったことで、今、私のレシピ-kernelディレクトリには、次のようになります。
.
├── bbb-pwm
│ ├── bbb-pwm.bb
│ └── files
│ ├── bbb-pwm.c
│ ├── COPYING
│ └── Makefile
├── hellokernel
│ └── {...}
└── linux
├── linux-stable_4.1
│ └── {...}
├── linux-stable_4.1.bbappend
├── linux-stable_4.4
│ └── {...}
├── linux-stable_4.4.bbappend
├── linux-stable_4.5
│ └── dts
│ ├── bbb-pwm.dts
│ └── sc_pwm_P8_13-00A0.dtsi
└── linux-stable_4.5.bbappend
ディレクトリにlinux-stable_4 * /すべてのメタBBBでのミラー化された構造を反映するために、同じ構造を持っています。
マイ.bbappendファイルは、次のようになります。
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}/dts:"
KERNEL_DEVICETREE_beaglebone += " \
bbb-pwm.dtb \
"
bitbakingしかし、エラーがBBB-pwm.dtbにはビルドルールが存在しないと言って発生します。
| make[3]: *** No rule to make target 'arch/arm/boot/dts/bbb-pwm.dtb'. Stop.
| arch/arm/Makefile:333: recipe for target 'bbb-pwm.dtb' failed
編集 :ここがsc_pwm_P8_13-00A0.dtsi
感謝。この種の作業は(git/arch/arm/boot/dtsへのパスを変更しなければならなかったので、これを反映するように修正するでしょう)。しかし、これは移植性があまりありません。このパスを保持するYocto/OE変数はありますか? – Tom
これは、Linuxカーネルのデバイスツリーソース用のデフォルトフォルダです。これは修正箇所なので、別の解決策があるのかどうかは疑問です。デバイスツリーは実行時に使用できるので、そこになければならないと思います。 – h0ch5tr4355
ファイルについてはどうなっていますか?コピーを強制する方法はありますか、パッチを作成する必要はありますか? –