Ich arbeite an einem Beaglebone Black, mit Yocto.Yocto Gerät Baum Overlay
Mit this Implementierung eines PWM-Treibers als Leitfaden, kann ich nicht meine PWMs in den Gerätebaum hinzufügen.
Die beste Lösung wäre, ein Gerätebaum-Overlay zu erstellen, wie es Mr. Saad Ahmad macht, aber ich verstehe nicht, wie man das mit Yocto macht.
Ich verwende nicht capegr, aber ich verwende meta-bbb. Ich habe auch benutzerdefinierte Schicht Meta-TFE, die derzeit den PWM-Treiber und einige Beispiele enthält. Diese Schicht definiert auch ein neues bitbake Bild Rezepte:
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"
Es folgt die .bb Datei der pwm-Treiber:
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}"
Wer weiß, wie dies zu tun?
bearbeitet: Ein Kollege deutete an, dass ich eine .bbappend Datei verwenden könnte, in Meta-bbb zu den Kernel-Build-Regeln angehängt wird. Daher ist es das, was ich tat, und jetzt meine Rezepte-Kernel-Verzeichnis sieht nun wie folgt aus:.
.
├── 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
Die Verzeichnisse Linux-stable_4 */alle die gleiche Struktur haben, die gespiegelte Struktur in Meta-bbb zu reflektieren.
Meine .bbappend Dateien wie folgt aussehen:
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}/dts:"
KERNEL_DEVICETREE_beaglebone += " \
bbb-pwm.dtb \
"
Wenn jedoch bitbaking, tritt ein Fehler zu sagen gibt es keine Build-Regeln für bbb-pwm.dtb sind:
| 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
bearbeiten : Hier ist sc_pwm_P8_13-00A0.dtsi
Dank. Diese Art von Arbeit (musste den Pfad zu Git/Arch/Arm/Boot/dts ändern, wird Sie korrigieren, um dies zu reflektieren). Dies ist jedoch nicht sehr portabel. Gibt es eine Yocto/OE-Variable, die diesen Pfad enthält? – Tom
Dies ist der Standardordner für Gerätebaumquellen im Linux-Kernel. Ich bezweifle, dass es eine andere Lösung gibt, da dies ein fester Ort ist. Device-Tree kann zur Laufzeit verwendet werden und ich denke, es muss da sein. – h0ch5tr4355
Worum handelt es sich bei der Datei bereits? Gibt es eine Möglichkeit, Kopien zu erzwingen oder muss ich einen Patch machen? –