Ich möchte einige Schichten holen aus Upstream für eine neue Maschine (nennen Sie es A) hauptsächlich nur, um die Maschine A konfigurieren Datei, Kernel und U-Boot von diesen Schichten bereitgestellt. Die neuen Ebenen haben jedoch mehrere bbappend-Dateien (auch mit bb-Dateien), die sich von den Ebenen anderer Maschinen in meinem yocto-Projekt unterscheiden.Maschine spezifische Schichten in yocto
Zum Beispiel Maschine A seine eigene gstreamer1.0_1.8.1.bb und bbappend Datei hat. Andere Maschinen verwenden gstreamer1.0_1.6.1.bb. Was passiert, wenn ich das Image für die andere Maschine erstelle, ist, dass es die Version 1.8.1 erstellt, weil Yocto immer nach der neuesten kompatiblen Version des Pakets sucht und diese erstellt. Die Datei gstreamer1.0_1.8.1.bapppend wird jedoch speziell für Maschine A geschrieben, gilt nicht für andere und verursacht Fehler. Nicht nur der Gstreamer, es gibt mehr.
Ich habe eine Idee wie BBLAYERS_A += "new_layers \ ..."
in der Datei bblayers.conf, aber leider funktioniert es nicht so, wie ich es will.
Eine weitere Idee, die ich habe, ist, wie:
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 \ ..."
...
Es mir nicht gut aussehen und ich bezweifle, es wird nicht so gut funktionieren. Ich denke, die Build-Prozedur ist das Laden der bblayers.conf-Datei zuerst, dann die local.conf. Daher werden die Layer bereitgestellt, bevor Sie wissen, welche Maschine erstellt wird.
Meine Frage ist, wie kann ich diese neu hinzugefügten Schichten machen, die mit Maschine arbeiten A nur, aber nicht von den anderen Maschinen gewöhnen.
Die COMPATIBLE_MACHINE macht Sinn. Wie auch immer, ich entschuldige mich, mein Fall ist, dass die meisten Layer (nicht nur für die Maschine) aus dem Upstream stammen (ich habe die Frage etwas modifiziert) und ich möchte die Upstream-Blappend-Dateien nicht lokal ändern. Wie könnte ich es erreichen? Gibt es wie die local.conf, die ich global ändern kann, anstatt Dateien in Schichten zu modifizieren? –
Nun, sind die Schichten generische Schichten, obwohl Sie wollen, dass sie nur für eine einzelne Maschine gelten? Oder sind es maschinenspezifische Schichten, dh werden die Upstreams als maschinenspezifische Schichten beansprucht? – Anders