Hello community,
RidgeRun is happy to anounce that we will be providing professional Yocto support for Jetson boards. We will also be contributing to meta-tegra community layer with new features and characteristics (Gst-inference, DeepStream, or other video and/or AI) and helping companies interested in using Yocto. Currently we are validating all supported features and testing them. You can check our developer’s wiki (work in progress) for easy instructions on how to use Yocto built images on your Jetson boards.
Regards,
Fabian
www.ridgerun.com
5 Likes
Hi @fabian.solano,
thank you for providing details for Yocto support for Jetson boards.
I tried to run a build for jetson-xavier,
Build Configuration:
BB_VERSION = "1.46.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "ubuntu-18.04"
TARGET_SYS = "aarch64-poky-linux"
MACHINE = "jetson-xavier"
DISTRO = "poky"
DISTRO_VERSION = "3.1.1"
TUNE_FEATURES = "aarch64 armv8a crc"
TARGET_FPU = ""
meta
meta-poky
meta-yocto-bsp = "dunfell:0fc9d32ae11ebb53aa33342f50887c1e692a1f32"
meta-tegra = "dunfell-l4t-r32.4.2:7600b655471b94db0251fd459ac4bb069056e725"
However once it ended I am wondering how to load the generated O.S. into the eMMC.
In your document the chapter Flash image to Jetson platform refers to an unexistent tegraflash.zip and doflash.sh.
Could you clarify how to do that?
Thanks
Hi @MarukoBG,
To get the tegraflash tarball you need to add the following lines to your local.conf file (as specified here)
IMAGE_CLASSES += "image_types_tegra"
IMAGE_FSTYPES = "tegraflash"
Then after the bitbake command ended you need to create the deploy.sh script. I think the problem is that the latest meta-tegra branch (dunfell-l4t-r32.4.2) updated from .zip file to .tar.gz. Here is the updated script, I also updated it in our developer wiki for future reference
#!/bin/bash
image=$1
machine=$2
scriptdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
deployfile=${image}-${machine}.tegraflash.tar.gz
tmpdir=`mktemp`
rm -rf $tmpdir
mkdir -p $tmpdir
echo "Using temp directory $tmpdir"
pushd $tmpdir
cp $scriptdir/build/tmp/deploy/images/${machine}/$deployfile .
tar -xvf $deployfile
set -e
sudo ./doflash.sh
popd
echo "Removing temp directory $tmpdir"
rm -rf $tmpdir
Regards,
Fabian
www.ridgerun.com
Hi,
I added the lines below to local.conf, but tegraflash tarball is not generated.
May be caused by the jetson-xavier?
MACHINE = "jetson-xavier"
IMAGE_CLASSES += "image_types_tegra"
INHERIT += "rm_work"
IMAGE_FSTYPES = "tegraflash tar.gz wic.gz"
In the wiki there is a typo too ;-)
gunzip -c core-image-sato-dev-jetson-tx1.wic | sudo dd of=/dev/sdd bs=10M status=progress
gunzip -c core-image-sato-dev-jetson-tx1.wic.gz | sudo dd of=/dev/sdd bs=10M status=progress
Can you share the output of the following command to verify which images are being generated?
ls -lha build/tmp/deploy/images/jetson-xavier/
Regards,
Fabian
www.ridgerun.com
$ ls -lha build/tmp/deploy/images/jetson-xavier/
total 788M
drwxr-xr-x 2 koan koan 4,0K giu 19 14:26 .
drwxr-xr-x 3 koan koan 4,0K giu 19 10:15 ..
-rw-r--r-- 1 koan koan 420K giu 19 10:16 cboot-jetson-xavier-32.4.2-r0.bin
lrwxrwxrwx 1 koan koan 33 giu 19 10:16 cboot-jetson-xavier.bin -> cboot-jetson-xavier-32.4.2-r0.bin
-rw-r--r-- 1 koan koan 1,6K giu 19 14:25 core-image-minimal.env
-rw-r--r-- 1 koan koan 14G giu 19 14:25 core-image-minimal-jetson-xavier-20200619122451.rootfs.ext4
-rw-r--r-- 1 koan koan 4,0K giu 19 14:25 core-image-minimal-jetson-xavier-20200619122451.rootfs.manifest
-rw-r--r-- 1 koan koan 41M giu 19 14:25 core-image-minimal-jetson-xavier-20200619122451.rootfs.tar.gz
-rw-r--r-- 1 koan koan 60M giu 19 14:26 core-image-minimal-jetson-xavier-20200619122451.rootfs.wic.gz
-rw-r--r-- 1 koan koan 65M giu 19 14:25 core-image-minimal-jetson-xavier-20200619122451.tegraflash.tar.gz
-rw-r--r-- 1 koan koan 254K giu 19 14:25 core-image-minimal-jetson-xavier-20200619122451.testdata.json
lrwxrwxrwx 1 koan koan 59 giu 19 14:25 core-image-minimal-jetson-xavier.ext4 -> core-image-minimal-jetson-xavier-20200619122451.rootfs.ext4
lrwxrwxrwx 1 koan koan 63 giu 19 14:25 core-image-minimal-jetson-xavier.manifest -> core-image-minimal-jetson-xavier-20200619122451.rootfs.manifest
lrwxrwxrwx 1 koan koan 61 giu 19 14:25 core-image-minimal-jetson-xavier.tar.gz -> core-image-minimal-jetson-xavier-20200619122451.rootfs.tar.gz
lrwxrwxrwx 1 koan koan 65 giu 19 14:25 core-image-minimal-jetson-xavier.tegraflash.tar.gz -> core-image-minimal-jetson-xavier-20200619122451.tegraflash.tar.gz
lrwxrwxrwx 1 koan koan 61 giu 19 14:25 core-image-minimal-jetson-xavier.testdata.json -> core-image-minimal-jetson-xavier-20200619122451.testdata.json
lrwxrwxrwx 1 koan koan 61 giu 19 14:26 core-image-minimal-jetson-xavier.wic.gz -> core-image-minimal-jetson-xavier-20200619122451.rootfs.wic.gz
lrwxrwxrwx 2 koan koan 66 giu 19 11:27 Image -> Image--4.9.140+git0+e3c8d3e903-r0-jetson-xavier-20200619075607.bin
-rw-r--r-- 2 koan koan 36M giu 19 11:27 Image--4.9.140+git0+e3c8d3e903-r0-jetson-xavier-20200619075607.bin
-rw-r--r-- 2 koan koan 38M giu 19 11:27 Image-initramfs--4.9.140+git0+e3c8d3e903-r0-jetson-xavier-20200619075607.bin
-rw-r--r-- 2 koan koan 38M giu 19 11:27 Image-initramfs--4.9.140+git0+e3c8d3e903-r0-jetson-xavier-20200619075607.cboot
lrwxrwxrwx 2 koan koan 76 giu 19 11:27 Image-initramfs-jetson-xavier.bin -> Image-initramfs--4.9.140+git0+e3c8d3e903-r0-jetson-xavier-20200619075607.bin
lrwxrwxrwx 2 koan koan 78 giu 19 11:27 Image-initramfs-jetson-xavier.cboot -> Image-initramfs--4.9.140+git0+e3c8d3e903-r0-jetson-xavier-20200619075607.cboot
lrwxrwxrwx 2 koan koan 66 giu 19 11:27 Image-jetson-xavier.bin -> Image--4.9.140+git0+e3c8d3e903-r0-jetson-xavier-20200619075607.bin
-rw-r--r-- 2 koan koan 318M giu 19 11:27 modules--4.9.140+git0+e3c8d3e903-r0-jetson-xavier-20200619075607.tgz
lrwxrwxrwx 2 koan koan 68 giu 19 11:27 modules-jetson-xavier.tgz -> modules--4.9.140+git0+e3c8d3e903-r0-jetson-xavier-20200619075607.tgz
-rw-r--r-- 2 koan koan 270K giu 19 11:27 tegra194-p2888-0001-p2822-0000--4.9.140+git0+e3c8d3e903-r0-jetson-xavier-20200619075607.dtb
lrwxrwxrwx 2 koan koan 91 giu 19 11:27 tegra194-p2888-0001-p2822-0000.dtb -> tegra194-p2888-0001-p2822-0000--4.9.140+git0+e3c8d3e903-r0-jetson-xavier-20200619075607.dtb
lrwxrwxrwx 2 koan koan 91 giu 19 11:27 tegra194-p2888-0001-p2822-0000-jetson-xavier.dtb -> tegra194-p2888-0001-p2822-0000--4.9.140+git0+e3c8d3e903-r0-jetson-xavier-20200619075607.dtb
-rw-r--r-- 2 koan koan 2,2M giu 19 11:27 tegra-minimal-initramfs-jetson-xavier-20200619075607.rootfs.cpio.gz
-rw-r--r-- 2 koan koan 309 giu 19 11:26 tegra-minimal-initramfs-jetson-xavier-20200619075607.rootfs.manifest
-rw-r--r-- 2 koan koan 256K giu 19 11:26 tegra-minimal-initramfs-jetson-xavier-20200619075607.testdata.json
lrwxrwxrwx 2 koan koan 67 giu 19 11:27 tegra-minimal-initramfs-jetson-xavier.cpio.gz -> tegra-minimal-initramfs-jetson-xavier-20200619075607.rootfs.cpio.gz
lrwxrwxrwx 2 koan koan 68 giu 19 11:26 tegra-minimal-initramfs-jetson-xavier.manifest -> tegra-minimal-initramfs-jetson-xavier-20200619075607.rootfs.manifest
lrwxrwxrwx 2 koan koan 66 giu 19 11:26 tegra-minimal-initramfs-jetson-xavier.testdata.json -> tegra-minimal-initramfs-jetson-xavier-20200619075607.testdata.json
-rw-r--r-- 1 koan koan 361K giu 19 10:15 tos-jetson-xavier-32.4.2-r0.img
lrwxrwxrwx 1 koan koan 31 giu 19 10:15 tos-jetson-xavier.img -> tos-jetson-xavier-32.4.2-r0.img
So the tegraflash.tar.gz file is actually being generated.
-rw-r–r-- 1 koan koan 65M giu 19 14:25 core-image-minimal-jetson-xavier-20200619122451.tegraflash.tar.gz
Maybe you are running the script from the wrong path, and that is why the file is not found.
You should run the script, from the same directory from where you ran that command.
Regards,
Fabian
www.ridgerun.com
1 Like
Great now the script starts. Thank you
$ chmod +x deploy.sh
$ ./deploy.sh core-image-minimal jetson-xavier
Using temp directory /tmp/tmp.yMyF1RR5SA
/tmp/tmp.yMyF1RR5SA ~/yocto-nvidia-dunfell/poky
./
nvtboot_cpu_t194.bin
...
[ 21.0161 ]
[ 21.0182 ] tegradevflash_v2 --write MEM_BCT_b mem_coldboot_sigheader.bct.encrypt
[ 21.0204 ] Bootloader version 01.00.0000
[ 21.0234 ] Writing partition MEM_BCT_b with mem_coldboot_sigheader.bct.encrypt
[ 21.0250 ] [................................................] 100%
[ 21.0401 ]
[ 21.0402 ] Flashing completed
1 Like
Hi @fabian.solano
I’ve tried building the Yocto image (according to Yocto Support for NVIDIA Jetson Platforms - Yocto Support for NVIDIA Jetson Platforms), by configuring the MACHINE environment variable to ‘jetson-xavier-8gb’ machine , however i have a 16GB Xavier.
Should it work on my machine? Is there another BSP layer for the 16GB Jetson Xavier?
Regards.
Elad
Hi @ereelad,
If you set up the environment variable to just jetson-xavier it would be the default for the 16GB. Actually the 8GB is a side support by the community according to readme at: GitHub - OE4T/meta-tegra: BSP layer for NVIDIA Jetson platforms, based on L4T
Regards,
Fabian
www.ridgerun.com