Ich habe Yocto verwendet, um ein kleines Linux-Image für das Beaglebone Black zu erstellen. Ich denke, ich habe fast alles funktioniert, wie ich es will, außer ich brauche Zugriff auf UARTs 2 und 4. Wenn ich das Standard-Debian-Image verwendet habe, habe ich dies mit Device-Tree-Overlays und Capemgr. Allerdings habe ich festgestellt, dass der mit Yocto gebaute Kernel keinen Capemgr hat.Ändern des Gerätebaums für den Beaglebone Black
scheinen Meine Optionen zu sein:
- den Kernel mit capemgr zu bauen bekommen, oder
- die Gerätebaum-Datei mit den notwendigen Änderungen ändern.
Option 2 scheint viel einfacher.
Die Gerätebaum-Overlays für die UARTs sind here und here. Ich habe versucht, diese auf ein paar Arten einzuschließen.
- Ich dekompilierte den Gerätebaum Blob, den ich verwendet hatte und versuchte, diese Dateien von aufzunehmen.
- Ich habe the full set of dts files heruntergeladen und versucht, die UART-Gerätebaum-Overlays in am335x-boneblack.dts einzuschließen.
Beide Ansätze ergeben einen Fehler etwas wie folgt aus:
Error: am335x-boneblack.dts:1.1-2 syntax error
FATAL ERROR: Unable to parse input tree
Allerdings habe ich bemerkt, dass ich einen ähnlichen Fehler beim Versuch AM335x-boneblack.dts zu kompilieren, selbst ohne es zu ändern, also bin ich wahrscheinlich nicht einmal richtig. (Mit dem Befehl dtc -I dts -O dtb -o result.dtb am335x-boneblack.dts)
Offensichtlich weiß ich nicht, was ich tue. Ich vermute, dass die Gerätebaum-Overlays in irgendeiner Weise modifiziert werden müssen, um sie so zu verwenden, wie ich sie benutze. Oder vielleicht mache ich das Include-Recht nicht (fügen Sie einfach einen # include zum Anfang der Datei hinzu).
Hat jemand irgendwelche Ideen, was ich falsch machen könnte? Ist das, was ich versuche, überhaupt möglich?
Wahrscheinlich möchten Sie Ihre "Overlay" -Datei am * Ende * der ** .dts ** -Datei einfügen, also nachdem alles andere deklariert wurde. Gewöhnliche **. DTSI ** Dateien nicht verwenden 'Fragment @ 0 { \t \t target = <&x>; \t \t __overlay__ {...}}', so die haben herausgeschnitten werden. – sawdust
Um DTB auf Yocto zu kompilieren: 'bitbake -f-c deploy your_kern_recipe', z. 'bitbake -f -c deploy linux-imx' – LPs