Il n'y a pas d'article sur comment introduire le yocto dans jetson nano, alors je l'ai écrit.
Téléchargez ces deux et bsp à partir du développeur nvidia. Sans cela, bitbake est désolé pour l'erreur.
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 \
"
Ici, tegra et linaro sont ajoutés en plus de celui spécifié par poky. J'ai ajouté linaro basé sur article here et construit avec gcc7.x Faire. https://github.com/madisongh/meta-tegra/wiki/Using-linaro-gcc7-for-CUDA-support
local.conf
Enfin, ajoutez ce qui suit
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-Requis pour éviter les conflits entre dropbear et openssh en sato
TEGRAFLASH_SDCARD_SIZE = "2G"
IMAGE_OVERHEAD_FACTOR = "1.0"
IMAGE_CLASSES += " image_types_tegra "
IMAGE_FSTYPES = "tegraflash"
Pour NVIDIA_DEVNET_MIRROR, spécifiez le dossier contenant l'ensemble (plein de debs) téléchargé depuis nvidia à l'aide de sdkmanager. J'ai déposé mon environnement sur nvidia / downloads, donc je l'ai spécifié.
** Explication **
** TEGRAFLASH_SDCARD_SIZE **: La valeur par défaut est 16G. Entrez un grand nombre si vous souhaitez l'augmenter et un petit nombre si vous souhaitez le diminuer. Si la taille devient grande, il y aura des effets nocifs tels que prendre du temps dd. ** IMAGE_ROOTFS_SIZE **: Le manuel dit qu'il contrôle la taille du fichier, mais il semble que TEGRAFLASH_SDCARD_SIZE a la priorité. Par conséquent, ne spécifiez pas. ** IMAGE_OVERHEAD_FACTOR **: spécifiez l'espace libre. ** MACHINE **: Définissez le nom de la machine dans (nom de la machine) .conf sous meta-tegra / conf / machine. S'il est différent du nom du fichier ici, le contrôle de cohérence le rejettera avec une erreur.
bitbake.conf
S'il y a fmacro-prefix-map, la construction ne passera pas, alors supprimez-la.
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
Selon le manuel. source, bitbake.
$ bitbake -c cleanall core-image-minimal
$ rm -Rf tmp/*
$ bitbake core-image-minimal
C'est la magie habituelle. C'est un fichier image avec l'extension ".sdcard" alors qu'il existe de nombreux formats gzip. DD sans aucun travail.
$ sudo dd if=core-image-minimal-jetson-nano.sdcard of=/dev/sdx bs=4M conv=fsync status=progress
Par défaut, il dispose de 17 Go, vous avez donc besoin d'une carte micro SD de 32 Go. Les paramètres ci-dessus sont définis sur 2G, donc une carte SD de taille appropriée est correcte.
Fixez la carte SD au Jetson Nano et démarrez-le. ID: racine, PW: Aucun
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
J'ai aussi créé core-image-sato, donc je l'ai commencé. De plus, TEGRAFLASH_SDCARD_SIZE? = "2G" ne démarre pas. Même avec la 4G, le taux d'utilisation était de 92%.
Écran de démarrage
Écran de menu
La fin