TK1 L4T (cuda + opencv4tegra) for production purposes

Hi all,
my application need to use cuda + opencv4tegra on an Apalis TK1 system.

In a development phase i’m working on a manually flashed with Nvidia Jetpack L4T 21.5:

  • Is L4T necessary or can i build an equivalent Angstrom-LXDE image from scratch using Yocto? I prefer Yocto that create automatically, sdk, image ready for Toradex Easy Installer, etc

What are best practices for releasing a production image in that situation:

  • In case L4T is the right way, how can i create the final rootfs? I have to backup my running dev image in order to finalize the production image?
  • In case of Angstrom can i have deb package instead of opkg?
  • The final product have no display, can i build a console image (instead of X11 image) with a fully working nvidia cuda environment?

PS: I’ve read that “An L4T r21.6 based image is available out-of-the-box” (in Installing NVIDIA JetPack with L4T on Apalis TK1)
Where can i find that image for download?

Hi all, my application need to use cuda + opencv4tegra on an Apalis TK1 system.

In a development phase i’m working on a manually flashed with Nvidia Jetpack L4T 21.5:

Please note that NVIDIA did release L4T 21.6 and an upcoming 21.7 is scheduled for end of May release. Whether or not NVIDIA will ever update their JetPack to include later L4T releases for TK1 we do not know.

Is L4T necessary or can i build an equivalent Angstrom-LXDE image from scratch using Yocto?

Certainly, that is what our regular BSPs are meant for. However, please note that neither CUDA nor OpenCV support is included by default but available as e.g. cudatoolkit6.5, opencv or opencv4tegra packages.

I prefer Yocto that create automatically, sdk, image ready for Toradex Easy Installer, etc

What are best practices for releasing a production image in that situation:

Best practise is to build and deploy your custom OpenEmbedded based image.

In case L4T is the right way, how can i create the final rootfs? I have to backup my running dev image in order to finalize the production image?

While not recommended this is versus possible as well see here.

In case of Angstrom can i have deb package instead of opkg?

Certainly, it’s just not something much tested by us. Have a look e.g. here.

The final product have no display, can i build a console image (instead of X11 image) with a fully working nvidia cuda environment?

Yes, our console images for the Tegras do include graphics and multimedia libraries and even the full X11 environment which BTW is the only NVIDIA supported way of doing any hardware accellerated graphics and/or multimedia. If doing headless GPU compute only, the X11 server will not need to be running as e.g. explained here.

PS: I’ve read that “An L4T r21.6 based image is available out-of-the-box” (in https://developer.toradex.com/knowledge-base/installing-nvidia-jetpack-with-l4t-on-apalis-tk1) Where can i find that image for download?

You may install the same using the Toradex Easy Installer which comes pre-installed on Apalis TK1 V1.2A modules.

Is there any particular reason for you to set this question on private? With private questions, there is no way for the community to provide feedback or profit from any feedback.

Actually, toradex BSP + recipes (you suggested me) support the opencv_3.x with cuda build?

No, not OpenCV 3.x I don’t think so.

What is your hint?

You may use OpenCV 2.4 though.

Certainly, that is what our regular BSPs are meant for. However, please note that neither CUDA nor OpenCV support is included by default but available as e.g. cudatoolkit6.5, opencv or opencv4tegra packages.

Some time ago I tried to build opencv_3.x with cuda extensions enabled (i need opencv with cuda)
but there were problems between the toolchain (gcc version) and the nvcc part, so for simplicity I moved to linux4tegra (toolchain gcc 4.8 fully supported).

Actually, toradex BSP + recipes (you suggested me) support the opencv_3.x with cuda build? What is your hint?

ok i can use Opencv4Tegra (2.4.13) for the opencv part…

but i need to build cuda code with nvcc, with toradex BSP i have problems doing that…
it seems that this platform is a limbo … Linux For Tegra provides full features of development but is not suitable for use for an embedded device in production, Angstrom is a distribution more suitable for embedded but it poses important limitations … what is the solution?

but i need to build cuda code with nvcc, with toradex BSP i have problems doing that…

Could you explain, what are your exact problems?

it seems that this platform is a limbo … Linux For Tegra provides full features of development
but is not suitable for use for an embedded device in production, Angstrom is a distribution
more suitable for embedded but it poses important limitations …

Why do you think, that the L4T is not suitable for Production? What are your limitations using angstrom?

what is the solution?

This will depend on your application and your needs, which are not very clear for us. Could you be more specific about your application, please?