Kapitel 1: Einleitung

Dieser Artikel zeigt, wie Sie die Bilder und Logos, die während des Boot-Vorgangs angezeigt werden, anpassen können: Das U-Boot-Splash-Bild, das Linux-Kernel-Logo, das Yocto-PSplash-Bild, die Linux-Vor-Login-Nachricht und das Wayland-Hintergrundbild. Dies wird in der Regel von Kunden verwendet, um ihr eigenes Firmen- oder Produktlogo darzustellen.

1.1. Software-Anforderungen

Richten Sie zunächst Ihre Host-Umgebung ein und holen Sie sich den Quellcode der Yocto-Version, die Sie verwenden möchten: Gehen Sie auf variwiki.com, klicken Sie auf das SOM, das Sie verwenden, und auf „Entwickler-Leitfaden“ unter der Yocto-Version, die Sie verwenden möchten, und klicken Sie dann auf „Yocto aus dem Quellcode erstellen“, und folgen Sie den Anweisungen dort.

1.2. BSP Benutzerdefinierte Bild– und Logobereiche

Die folgenden Kapitel sind unabhängig voneinander und Sie können sie in beliebiger Reihenfolge lesen:

Kapitel 2: U-Boot-Splash-Screen

In diesem Kapitel wird erklärt, wie Sie das Bild des U-Boot-Splash-Screens ändern können.

2.1. Wichtige Informationen

  • U-Boot der folgenden SOMs unterstützt die Anzeige eines Splash-Screens, bevor der Linux-Kernel mit dem Hochfahren des Systems beginnt:
  • Das Standard U-Boot-Splash-Screen-Logo von Variscite:
U-Boot Splash Screen logo from Variscite

Klicken Sie auf das Foto, um die Größe anzuzeigen

2.2. Änderung des U-Boot-Splash-Screens

  1. Erstellen Sie das gewünschte Bild in einem 8-Bit-BMP-Format (Bitmap-Bilddatei).

Z. B. Um ein Bild vom PNG-Format (z. B. splash.png) in das gewünschte 8-Bit-BMP-Format zu konvertieren:

$ convert splash.png -depth 8 -compress none BMP3:splash.bmp

  1. Wählen Sie nun eine der folgenden Optionen:

2.1 Überschreiben Sie direkt das Standardbild in der entsprechenden Variscite-Metaebene:

Ersetzen Sie die Bilddatei splash.bmp im BSP U-Boot-Splash-Screen-Ordner:

YOCTO_FOLDER/sources/META-VARISCITE/recipes-bsp/u-boot/u-boot-splash/

Wobei META-VARISCITE eines der Folgenden ist, abhängig von dem SOM und der Yocto-Version:

            • meta-variscite-bsp-imx
            • meta-variscite-fslc
            • meta-variscite-imx

2.2 Alternativ können Sie Ihr splash.bmp-Bild auch zu Ihrer eigenen Metaebene hinzufügen (falls Sie eine haben):

Fügen Sie den folgenden Ordner zu Ihrer Ebene hinzu und kopieren Sie die Datei splash.bmp dorthin:

 YOCTO_FOLDER/sources/YOUR_META_LAYER/recipes-bsp/u-boot/u-boot-splash/

Erstellen Sie nun die folgende Datei:

 YOCTO_FOLDER/sources/YOUR_META_LAYER/recipes-bsp/u-boot/u-boot-splash.bbappend

Und schreiben Sie die folgende Zeile* hinein:

 FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"

  1. Folgen Sie weiterhin den Anweisungen auf der entsprechenden „Yocto aus dem Quellcode erstellen“-Seite auf variwiki.com, um ein neues Bild zu erstellen und es auf eine SD-Karte zu schreiben.
  1. Fahren Sie das System hoch. Sie sollten das neue U-Boot-Splash-Screen-Bild auf dem Display sehen.


Kapitel 3: Linux-Kernel-Logo

In diesem Kapitel wird erklärt, wie Sie das Linux-Kernel-Standardlogo ändern können.

3.1. Wichtige Informationen

  • Die Standardgröße des Logos ist 80×80 und das Splash-Logo unterstützt nur 224 Farben.
    • Wenn im Quellbild eine höhere Anzahl von Farben verwendet wird, reduziert das Tool ppmquant diese auf 224 Farben.
  • Die Anzahl der angezeigten Logos entspricht der Anzahl der Kerne, z. B.:
    1 Kern → 1 Logo; 2 Kerne → 2 Logos; 4 Kerne → 4 Logos usw.
    • Um das Display mit einem einzigen Logo zu füllen, muss das Logo die gleiche Auflösung wie das Display haben.
  • Die Logos sind an der oberen linken Ecke des Bildschirms ausgerichtet.
  • Das Standard-Linux-Kernel-Logo von Variscite:

Linux kernel logo from Variscite

3.2. Änderung des Linux-Kernel-Logos

  1. Erstellen Sie das gewünschte Bild im PNG-Format, z. B. logo.png.
  2. Konvertieren Sie die Datei logo.png in ein PPM-Format mit 224 Farben.

  2.1 Installieren Sie das erforderliche Paket, um das Logo zu konvertieren:

$ sudo apt install netpbm

  2.2 Konvertieren Sie dann die Logo-Datei mit dem Tool pngtopnm:

$ pngtopnm logo.png | ppmquant 224 | pnmnoraw > logo_linux_clut224.ppm

HINWEIS : Diese Anleitung zeigt, wie man das Standard-Linux-Logo überschreibt – die konvertierte PPM-Datei sollte auch logo_linux_clut224.ppm heißen.
Wenn Sie stattdessen erfahren möchten, wie Sie eine andere Kernel-Konfiguration für Ihr Logo hinzufügen können, sehen Sie sich diesen Patch von Variscite als Referenz an.

  1. Kopieren Sie die Datei logo_linux_clut224.ppm in den folgenden Ordner:

 YOCTO_FOLDER/sources/META-VARISCITE/recipes-kernel/linux/files/

Wobei META-VARISCITE eines der Folgenden ist, abhängig von dem SOM und der Yocto-Version:

        • meta-variscite-bsp-ti
        • meta-variscite-bsp-imx
        • meta-variscite-fslc
        • meta-variscite-imx
  1. Erstellen Sie nun die folgende Datei:

 YOCTO_FOLDER/sources/META-VARISCITE/recipes-kernel/linux/linux-variscite_%.bbappend

Und schreiben Sie das Folgende* hinein:

FILESEXTRAPATHS:prepend = "${THISDIR}/${PN}:" 

SRC_URI:append = " file://logo_linux_clut224.ppm" 


# uncomment the following lines for NXP builds 

#TARGET_DEFCONFIG="${B}/.config" 


# uncomment the following lines for TI builds 

#TARGET_DEFCONFIG="${S}/arch/arm64/configs/am62x_var_defconfig" 


do_configure:prepend() { 

    # Add the kernel_defconf_variable function 

    kernel_defconf_variable() { 

       CONF_SED_SCRIPT="$CONF_SED_SCRIPT /CONFIG_$1[ =]/d;" 

       if test "$2" = "n" 

       then 

          echo "# CONFIG_$1 is not set" >>  ${TARGET_DEFCONFIG} 

       else 

          echo "CONFIG_$1=$2" >>  ${TARGET_DEFCONFIG} 

       fi 

    } 

    # logo support, if you supply logo_linux_clut224.ppm in SRC_URI, 

    # then it's going to be used 

    if [ -e ${WORKDIR}/logo_linux_clut224.ppm ]; then 

        install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm ${S}/drivers/video/logo/logo_linux_clut224.ppm 

        # Call kernel_defconf_variable for each config variable kernel_defconf_variable LOGO y 

        kernel_defconf_variable LOGO_LINUX_CLUT224 y 

        kernel_defconf_variable LOGO_VARISCITE_CLUT224 n 

     fi 

} 

Denken Sie daran, je nach verwendetem NXP- oder TI-BSP die richtige Option für die Variable TARGET_DEFCONFIG zu entkommentieren.

  1. Folgen Sie weiterhin den Anweisungen auf der entsprechenden „Yocto aus dem Quellcode erstellen“-Seite auf variwiki.com, um ein neues image zu erstellen und es auf eine SD-Karte zu schreiben.
  2. Fahren Sie das System hoch. Sie sollten das Linux-Kernel-Logo auf dem Display sehen.

* Siehe auch die Seite Yocto-Linux-Kernel-Logo auf variwiki.com.


Kapitel 4: Yocto PSplash

Dieses Kapitel erklärt, wie man das Yocto PSplash-Bild ändert.

4.1. Wichtige Informationen

  • Die Linux-Version 5.4.70 und frühere Versionen benötigen das psplash-Bild als Header-Datei, während die neueren Linux-Versionen das Skript zur Umwandlung der PNG-Datei in eine Header-Datei enthalten. Siehe zum Beispiel den Unterschied zwischen Zeus 4.70 (psplash-poky-img.h) und Dunfell 5.4.85 (psplash-poky-img.png).
    Alle Versionen, die neuer als 5.4.70 sind, verwenden nur das PNG-Format.
  • Das standardmäßige Yocto PSplash-Logo von Variscite:

 

Yocto PSplash logo from Variscite


4.2. Änderung des PSplash-Bild auf neuen Yocto-Veröffentlichungen (PNG-Datei)

  1. Erstellen Sie das gewünschte Bild im PNG-Format und nennen Sie es psplash-poky.png.

  1.1 Wählen Sie nun eine der folgenden Optionen:

1.1.1 Überschreiben Sie direkt das Standardbild in der entsprechenden Variscite-Metaebene:

Ersetzen Sie die Bilddatei psplash-poky.png im folgenden Ordner:

 YOCTO_FOLDER/sources/META-VARISCITE/recipes-core/psplash/files/

Wobei META-VARISCITE eines der Folgenden ist, abhängig von dem SOM und der Yocto-Version:

            • meta-variscite-sdk-ti
            • meta-variscite-sdk-imx
            • meta-variscite-fslc
            • meta-variscite-imx

1.1.2 Alternativ können Sie Ihr Bild psplash-poky.png auch zu Ihrer eigenen Metaebene hinzufügen (falls Sie eine haben):

Fügen Sie den folgenden Ordner zu Ihrer Ebene hinzu und kopieren Sie die Datei psplash-poky.png dorthin:

 YOCTO_FOLDER/sources/YOUR_META_LAYER/recipes-core/psplash/files/

Erstellen Sie nun die folgende Datei:

 YOCTO_FOLDER/sources/YOUR_META_LAYER/recipes-core/psplash/psplash_git.bbappend

Und schreiben Sie die folgende Zeile* hinein:

 FILESEXTRAPATHS:prepend := "${THISDIR}/files:"

4.3. Änderung des PSplash-Bildes bei alten Yocto-Versionen (Header-Datei)

  1. Erstellen Sie das gewünschte Bild im PNG-Format und nennen Sie es psplash-poky-img.png.

  1.1 Installieren Sie das erforderliche Paket zur Konvertierung der PNG-Bilddatei:

$ sudo apt install libgdk-pixbuf2.0-dev

1.2 Verwenden Sie das folgende Skript, um die Bilddatei psplash-poky-img.png in eine psplash-kompatible Header-Datei zu konvertieren:

Führen Sie es wie folgt aus:
$ ./make-image-header.sh psplash-poky-img.png POKY

1.3 Wählen Sie nun eine der folgenden Optionen:

1.3.1 Überschreiben Sie direkt das Standardbild in der entsprechenden Variscite-Metaebene:

Ersetzen Sie die Bilddatei psplash-poky-img.h im folgenden Ordner:

 YOCTO_FOLDER/sources/META-VARISCITE/recipes-core/psplash/files/

Wobei META-VARISCITE eines der Folgenden ist, abhängig von dem SOM und der Yocto-Version:

            • meta-variscite-fslc
            • meta-variscite-imx

1.3.2 Alternativ können Sie Ihr Bild psplash-poky-img.h zu Ihrer eigenen Metaebene hinzufügen (falls Sie eine haben):

Fügen Sie den folgenden Ordner zu Ihrer Ebene hinzu und kopieren Sie Ihre psplash-poky-img.h dorthin:

 YOCTO_FOLDER/sources/YOUR_META_LAYER/recipes-core/psplash/files/

Erstellen Sie nun die folgende Datei:

 YOCTO_FOLDER/sources/YOUR_META_LAYER/recipes-core/psplash/psplash_git.bbappend

Und schreiben Sie die folgende Zeile* hinein:

 FILESEXTRAPATHS:prepend := "${THISDIR}/files:"

4.4. Erstellung des Bildes und Hochfahren des Systems

  1. Folgen Sie weiterhin den Anweisungen auf der entsprechenden „Yocto aus dem Quellcode erstellen“-Seite auf variwiki.com, um ein neues Bild zu erstellen und es auf eine SD-Karte zu schreiben.
  2. Fahren Sie das System hoch. Sie sollten das neue PSplash-Bild auf dem Display sehen.


Kapitel 5: Linux-Vor-Login-Nachricht

In diesem Kapitel wird erklärt, wie Sie die Linux-Vor-Login-Nachricht ändern können.

5.1. Wichtige Informationen

  • Die Vor-Login-Nachricht wird aus den folgenden Dateien im Zieldateisystem entnommen:
    • /etc/issue – Diese Datei enthält den Text, der vor der Anmeldeaufforderung ausgegeben wird.
    • /etc/issue.net – Diese Datei enthält den Text, der vor der Anmeldeaufforderung einer Telnet-Sitzung ausgegeben wird.

Weitere Informationen erhalten Sie, wenn Sie das Folgende auf Ihrem Host-Computer ausführen:

$ man 5 issue

    • Das „\“-Zeichen muss mit einem anderen „\“ maskiert werden, sodass „\\“ in der Vor-Login-Nachricht als „\“ gedruckt wird.
    • Die standardmäßige Variscite-Vor-Login-Nachricht:
__      __        _          _ _
\ \    / /       (_)        (_) |
 \ \  / /_ _ _ __ _ ___  ___ _| |_ ___
  \ \/ / _` | '__| / __|/ __| | __/ _ \
   \  / (_| | |  | \__ \ (__| | ||  __/
    \/ \__,_|_|  |_|___/\___|_|\__\___|
          2022 Variscite, Ltd.

Der Inhalt der Standard-Variscite-Ausgabedatei, mit den maskierten „\“-Zeichen:

__      __        _          _ _
\\ \\    / /       (_)        (_) |
 \\ \\  / /_ _ _ __ _ ___  ___ _| |_ ___
  \\ \\/ / _` | '__| / __|/ __| | __/ _ \\
   \\  / (_| | |  | \\__ \\ (__| | ||  __/
    \\/ \\__,_|_|  |_|___/\\___|_|\\__\\___|
          2022 Variscite, Ltd.


5.2. Ändern Sie die Vor-Login-Nachricht

  1. Erstellen Sie die gewünschte(n) Vor-Login-Nachricht(en) in einem Textformat und nennen Sie sie issue und/oder issue.net.
  2. Wählen Sie eine der folgenden Optionen:

2.1 Überschreiben Sie direkt die standardmäßige(n) Vor-Login-Nachricht-Datei(en) in der entsprechenden Variscite-Metaebene:

Ersetzen Sie die issue– und/oder issue.net-Dateien im folgenden Ordner:

 YOCTO_FOLDER/sources/META-VARISCITE/recipes-core/base-files/base-files/

Wobei META-VARISCITE eines der Folgenden ist, abhängig von dem SOM und der Yocto-Version:

          • meta-variscite-sdk-common
          • meta-variscite-sdk-ti
          • meta-variscite-sdk-imx
          • meta-variscite-fslc
          • meta-variscite-imx

2.2 Alternativ können Sie Ihre issue– und/oder issue.net-Dateien zu Ihrer eigenen Metaebene hinzufügen (falls Sie eine haben):

Fügen Sie den folgenden Ordner zu Ihrer Ebene hinzu und kopieren Sie Ihre issue– und/oder issue.net -Dateien dorthin:

 YOCTO_FOLDER/sources/YOUR_META_LAYER/recipes-core/base-files/base-files/

Erstellen Sie nun die folgende Datei:

 YOCTO_FOLDER/sources/YOUR_META_LAYER/recipes-core/base-files/ base-files_%.bbappend

Und schreiben Sie die folgende Zeile* hinein:

 FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"

  1. Folgen Sie weiterhin den Anweisungen auf der entsprechenden „Yocto aus dem Quellcode erstellen“-Seite auf variwiki.com, um ein neues Bild zu erstellen und es auf eine SD-Karte zu schreiben.
  2. Fahren Sie das System hoch. Sie sollten die neue Vor-Login-Nachricht im Terminal sehen.


Kapitel 6: Wayland-/Weston-Hintergrund

In diesem Kapitel wird erklärt, wie Sie die Hintergrundfarbe oder das Hintergrundbild von Wayland/Weston ändern können.

6.1. Wichtige Informationen

  • Der Standardhintergrund des Wayland-Desktops sieht so aus:

Wayland/Weston Background of Variscite

 

6.2. Ändern Sie die Hintergrundfarbe von Weston und/oder fügen Sie ein Hintergrundbild hinzu.

  1. Die entsprechende Standardkonfigurationsdatei von Weston befindet sich unter:
YOCTO_FOLDER/sources/META-VARISCITE/recipes-graphics/wayland/weston-init/IMX_FOLDER/weston.in

Wobei META-VARISCITE eines der Folgenden ist, abhängig von dem SOM und der Yocto-Version:

            • meta-variscite-sdk-ti
            • meta-variscite-sdk-imx
            • meta-variscite-fslc
            • meta-variscite-imx

und IMX_FOLDER ist eines der Folgenden, abhängig von der Yocto-Version:

            • imx-nxp-bsp
            • imx
  • Um die Hintergrundfarbe zu ändern, verwenden Sie die Eigenschaft hintergrund-farbe unter dem Abschnitt [shell] in weston.ini.

Die Eigenschaft hintergrund-farbe nimmt einen vorzeichenlosen Integer-Wert an, der aus 4 hexadezimalen Ziffernpaaren für die Kanäle Alpha, Rot, Grün und Blau besteht (0xAARRGGBB).

Hinweis: Der Alphakanal ist eine Farbkomponente, die den Grad der Transparenz (oder Deckkraft) einer Farbe darstellt (d. h. die Kanäle Rot, Grün und Blau).

Zum Beispiel:

background-color -Wert Farbe
0xff000000 Einfarbig schwarz
0xffff0000 Einfarbig rot
0xff00ff00 Einfarbig grün
0xff0000ff Einfarbig blau
0x7fxxxxxx ~50 % durchscheinende Farbe (die Farbe selbst wird durch die x-Werte bestimmt)
0x7fff0000 ~50 % durchscheinendes Rot
0xccxxxxxx 20 % durchscheinende Farbe (die Farbe selbst wird durch die Werte  x  bestimmt)
0x33xxxxxx 80% durchscheinende Farbe (die Farbe selbst wird durch die x-Werte bestimmt)
0x00xxxxxx 100% durchscheinend – überhaupt keine Farbe

 

  • Um ein Hintergrundbild hinzuzufügen, verwenden Sie die Eigenschaften hintergrund-bild und hintergrund-art unter dem Abschnitt [shell] in weston.ini.

Die Eigenschaft hintergrund-bild nimmt eine Zeichenkette mit einem Pfad zu einer Bilddatei auf.

Die Eigenschaft hintergrund-art bestimmt, wie das Hintergrundbild gezeichnet wird. Sie nimmt eine der folgenden Zeichenketten an:

zentriert, skaliert,  skaliert-geschnitten oder kacheln (Kacheln ist die Standardeinstellung).

zentriert – zeigt das Bild einmal, zentriert. Wenn das Bild kleiner als die Ausgabe ist, wird der Rest der Oberfläche in Hintergrundfarbe dargestellt. Wenn die Bildgröße in die Ausgabe passt, wird es links und rechts oder oben und unten beschnitten.
skaliert – bedeutet, dass das Bild so skaliert wird, dass es genau in die Ausgabe passt, wobei das Seitenverhältnis nicht beibehalten wird.
skaliert-zugeschnitten – erhält das Seitenverhältnis, skaliert das Hintergrundbild gerade groß genug, um die Ausgabe abzudecken, und zentriert es. Das Bild wird von links und rechts bzw. von oben und unten beschnitten, wenn das Seitenverhältnis nicht mit der Ausgabe übereinstimmt.
Kacheln – wiederholt das Hintergrundbild, um die Ausgabe zu füllen.b.

  1. Wählen Sie eine der folgenden Optionen:

2.1 Bearbeiten Sie direkt die oben erwähnte Datei weston.ini in der entsprechenden Variscite-Metaebene.

Um zum Beispiel ein zentriertes Hintergrundbild mit dem Namen /etc/xdg/weston/wallpaper.png, zentriert, vor einem einfarbig blauen Hintergrund zu verwenden, fügen Sie die folgenden Zeilen unter dem Abschnitt [shell] in weston.ini ein:

background-color=0xff0000ff
background-image=/etc/xdg/weston/wallpaper.png
background-type=centered

Wenn Sie sich entschieden haben, ein Hintergrundbild hinzuzufügen (z. B. /etc/xdg/weston/wallpaper.png), müssen Sie es ebenfalls zum Build hinzufügen:

Erstellen Sie Ihre Bilddatei wallpaper.png und kopieren Sie sie nach:

   YOCTO_FOLDER/sources/META-VARISCITE/recipes-graphics/wayland/weston-init/

Bearbeiten Sie nun die folgende Datei:

   YOCTO_FOLDER/sources/META-VARISCITE/recipes-graphics/wayland/weston-init.bbappend with the following changes:

      • Fügen Sie SRC_URI:append= “ file://wallpaper.png“ der Datei* hinzu, außerhalb von Funktionen. Dadurch wird das Bild abgerufen und für die Installation im nächsten Schritt verfügbar gemacht.
      • Fügen Sie die folgende Zeile an die do_install:append()-Funktion* an, um sie im Dateisystem zu installieren:

install -D -p -m0644 ${WORKDIR}/wallpaper.png ${D}${sysconfdir}/xdg/weston/

2.2 Alternativ können Sie auch eine weston.ini-Datei zu Ihrer eigenen Metaebene hinzufügen (falls Sie eine haben):

Fügen Sie den folgenden Ordner zu Ihrer Ebene hinzu und kopieren Sie die oben erwähnte Datei weston.ini dorthin:

 YOCTO_FOLDER/sources/YOUR_META_LAYER/recipes-graphics/wayland/weston-init/IMX_FOLDER/

Bearbeiten Sie die neue Datei weston.ini in Ihrer Ebene nach Ihren Wünschen (siehe Beispiel im vorherigen Abschnitt).

Erstellen Sie nun die folgende Datei:

   YOCTO_FOLDER/sources/YOUR_META_LAYER/recipes-graphics/wayland/weston-init.bbappend

Und schreiben Sie die folgende Zeile* hinein:

   FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"

Wenn Sie sich entschieden haben, ein Hintergrundbild hinzuzufügen (z. B. /etc/xdg/weston/wallpaper.png), müssen Sie es ebenfalls zum Build hinzufügen:

Erstellen Sie Ihre Bilddatei wallpaper.png und kopieren Sie sie nach:

   YOCTO_FOLDER/sources/YOUR_META_LAYER/recipes-graphics/wayland/weston-init/

Bearbeiten Sie nun die folgende Datei:

   YOCTO_FOLDER/sources/YOUR_META_LAYER/recipes-graphics/wayland/weston-init.bbappend

und fügen Sie das Folgende* an:

   SRC_URI:append= " file://wallpaper.png"
   do_install:append() {
      install -D -p -m0644 ${WORKDIR}/wallpaper.png ${D}${sysconfdir}/xdg/weston/
   }
  1. Folgen Sie weiterhin den Anweisungen auf der entsprechenden „Yocto aus dem Quellcode erstellen“-Seite auf variwiki.com, um ein neues Bild zu erstellen und es auf eine SD-Karte zu schreiben.
  2. Fahren Sie das System hoch. Sie sollten den neuen Wayland-Hintergrund sehen.

 

* Beachten Sie, dass die voranstellen/anhängen-Yocto-Syntax ab Yocto Hardknott geändert wurde. Wenn Sie eine ältere Yocto-Version als Hardknott verwenden, ersetzen Sie „:append“ und „:prepend“ durch „_append“ bzw. „_prepend“.