Many people have come here and had a failure on loopback. If this is already supported, I guess it is a question then of knowing which release on which platform loopback becomes supported in. I do not know that answer.
As far as VirtualBox or other VM setup goes, that isnât something NVIDIA would be obligated to support, it is up to the individual VM users (or VM support) to set that up correctly. All I can personally do is suggest that USB pass-through is what often fails, and that this can work if the user either gets lucky, or if the user knows how to correctly assign USB to always pass through (based on whichever brand of VM is being used, it isnât specific to WSL2 or VirtualBox or VMware or any other VM, which is the real problemâŠit varies). A large percentage of people who use a VM here are brand new to VMs, and do not know anything about binding. A native install does not require that knowledge.
My comments are not specific to OpenEmbedded. I am familiar with two things that comments are related to: (A) The progression of change in boot content over the years, and (B) the Xorg server and how it uses the GPU driver.
Boot change over the years is self-explanatory as to how it makes it difficult for third parties to build their own since (until UEFI) this was entirely custom and a moving target.
The Xorg server itself is less obvious, and goes back to when the GPU driver (in user space) was only released in binary form. If you look at your X server log (usually â/var/log/Xorg.0.log
â), then you will find that some components the server uses are modular âpluginâ devices. The Xorg server has a dynamic load ability very much like loading a dynamic library. This isnât just for the GPU, it also includes things like keyboard, mouse, various drawing tablets, so on. To use a plug-in (not Xorgâs terminology, but it is logical) the code has to be compiled. There are two standards to meet: The API, and the ABI. The API is basically the source code, and is not a problem. The problem is the ABI (Application Binary Interface).
Each new Xorg server requires a different ABI. Unless you have the NVIDIA GPU user space driver in that ABI, the server wonât load it. Many of the CUDA type applications require the Xorg server (many people mistake Xorg or X as a graphics application, but it is not; more below). So if you try to reuse that ABI (due to lack of source code and no ability to rebuild it with a new ABI), then X wonât work with hardware rendering (and software rendering wonât assist CUDA). Iâm not sure which of the driver releases are now open sourced, some are. This is recent though, and was not available just a short time ago. If you have the source, and if you can adapt it to the API, and if you can recompile it to the correct ABI, then you can migrate the GPU to a new X server. If not, you have software rendering.
It would be interesting if NVIDIA could post what releases of the GPU driver for X plug-in are available in source code. Iâm thinking it must be used in combination with kernel code.
I am a fan of the change to UEFI. There is an abstraction layer which means the older issues of the changing boot environment wonât be so bad for people adapting their own system. I want it to be easier to adapt Jetsons, but it is not yet as easy (perhaps a bad choice in wording) as it is with some other ARM based embedded systems.
Iâve not used the OpenEmbedded you speak of, but if it is derived from R35.x, then it wonât apply to any of the older Jetsons, and those are what Iâve worked with for the most part. I do have Xavier and an AGX Orin, but I have only one of each, and donât really want to remove the official L4T (if I had a second, then I would probably try the OpenEmbedded). Iâd like to see how they deal with the Xorg ABI.