Es gibt keinen Artikel darüber, wie man Yocto in Jetson Nano einführt, also habe ich ihn geschrieben.
Laden Sie diese beiden und bsp von nvidia developper herunter. Ohne dies entschuldigt sich bitbake für den Fehler.
bblayer.conf
BBLAYERS ?= " \
/home/ubuntu/xxx/yocto/poky/meta \
/home/ubuntu/xxx/yocto/poky/meta-poky \
/home/ubuntu/xxx/yocto/poky/meta-yocto-bsp \
/home/ubuntu/xxx/yocto/poky/meta-linaro/meta-linaro-toolchain \
/home/ubuntu/xxx/yocto/poky/meta-tegra \
"
Hier werden zusätzlich zu dem von poky angegebenen Tegra und Linaro hinzugefügt. Ich habe Linaro basierend auf diesem Artikel hinzugefügt und mit gcc7.x erstellt Machen. https://github.com/madisongh/meta-tegra/wiki/Using-linaro-gcc7-for-CUDA-support
local.conf
Fügen Sie abschließend Folgendes hinzu
MACHINE = "jetson-nano"
LICENSE_FLAGS_WHITELIST = "commercial"
GCCVERSION = "linaro-7.%"
CUDA_VERSION = "10.0"
NVIDIA_DEVNET_MIRROR = "file:///home/ubuntu/xxx/nvidia/downloads"
CORE_IMAGE_EXTRA_INSTALL += " openssh "
PACKAGE_EXCLUDE += " packagegroup-core-ssh-dropbear " <-- core-image-Erforderlich, um Konflikte zwischen Dropbear und OpenSh in Sato zu vermeiden
TEGRAFLASH_SDCARD_SIZE = "2G"
IMAGE_OVERHEAD_FACTOR = "1.0"
IMAGE_CLASSES += " image_types_tegra "
IMAGE_FSTYPES = "tegraflash"
Geben Sie für NVIDIA_DEVNET_MIRROR den Ordner an, der den Satz (voller Debs) enthält, der mit sdkmanager von nvidia heruntergeladen wurde. Ich habe meine Umgebung auf nvidia / downloads eingestellt und dies angegeben.
** Erklärung **
** TEGRAFLASH_SDCARD_SIZE **: Der Standardwert ist 16G. Geben Sie eine große Zahl ein, wenn Sie sie erhöhen möchten, und eine kleine Zahl, wenn Sie sie verringern möchten. Wenn die Größe groß wird, gibt es schädliche Auswirkungen, z. B. Zeit in Anspruch zu nehmen. ** IMAGE_ROOTFS_SIZE **: Das Lehrbuch sagt, dass es die Dateigröße steuert, aber es scheint, dass TEGRAFLASH_SDCARD_SIZE Priorität hat. Geben Sie daher nicht an. ** IMAGE_OVERHEAD_FACTOR **: Geben Sie freien Speicherplatz an. ** MASCHINE **: Legen Sie den Maschinennamen in (Maschinenname) .conf unter meta-tegra / conf / machine fest. Wenn es sich vom hier angegebenen Dateinamen unterscheidet, wird es von der Sanity Check mit einem Fehler abgelehnt.
bitbake.conf
Wenn es eine fmacro-Präfix-Map gibt, wird der Build nicht bestanden. Löschen Sie ihn daher.
poky/meta/conf/bitbake.conf
# GCC 7 doesn't support fmacro-prefix-map, results in "error: cannot compute suffix of object files: cannot compile"
# Change the value from bitbake.conf DEBUG_PREFIX_MAP to remove -fmacro-prefix-map
DEBUG_PREFIX_MAP = "-fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
-fdebug-prefix-map=${STAGING_DIR_HOST}= \
-fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
$ source poky/oe-init-build-env nano-build
$ bitbake core-image-minimal
Nach dem Lehrbuch. Quelle, Bitbake.
$ bitbake -c cleanall core-image-minimal
$ rm -Rf tmp/*
$ bitbake core-image-minimal
Es ist die übliche Magie. Es ist eine Bilddatei mit der Erweiterung ".sdcard", obwohl es viele gzip-Formate gibt. DD ohne Arbeit.
$ sudo dd if=core-image-minimal-jetson-nano.sdcard of=/dev/sdx bs=4M conv=fsync status=progress
Standardmäßig hat es 17 GB, daher benötigen Sie eine 32G Micro-SD-Karte. Die obigen Einstellungen sind auf 2G eingestellt, daher ist eine SD-Karte mit einer geeigneten Größe in Ordnung.
Befestigen Sie die SD-Karte am Jetson Nano und starten Sie sie. ID: root, PW: Keine
root@jetson-nano:~# cat /proc/version
Linux version 4.9.140-l4t-r32.2.1+g7467bde43b5d (oe-user@oe-host) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11) ) #1 SMP PREEMPT xxx Oct xx xx:xx:xx UTC 2019
root@jetson-nano:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
none 1782740 0 1782740 0% /dev
/dev/mmcblk0p1 1887056 166920 1601352 10% /
tmpfs 2025568 216 2025352 1% /run
tmpfs 2025568 156 2025412 1% /var/volatile
Ich habe auch Core-Image-Sato gemacht, also habe ich damit angefangen. Außerdem wird TEGRAFLASH_SDCARD_SIZE? = "2G" nicht gestartet. Selbst mit 4G lag die Nutzungsrate bei 92%.
Startbildschirm
Menübildschirm
Das Ende