Replies: 2 comments 2 replies
|
"Update: this goes deeper than a static file selection issue, and I think it rules out the fixes I was trying.\n\nWorth restating for context: this is all on a custom, minimal Yocto |
|
"Update: this goes deeper than a static file selection issue, and I think it rules out the fixes I was trying.\n\nWorth restating for context: this is all on a custom, minimal Yocto |
Uh oh!
There was an error while loading. Please reload this page.
"##
cudaGetDeviceCountfails with error 801 on Orin Nano 8GB (J3011), customwrynosebuild \u2014 CUDA 13.2/TensorRT 10.16, kernel loads fine, no dmesg activity\n\nHardware: Seeed reComputer J401 carrier + Jetson Orin Nano 8GB (SKU 0003)\nMACHINE:p3509-a02-p3767-0000,TEGRA_BOARDSKU = \"0003\"\nBranch:wrynose\nKernel:linux-noble-nvidia-tegra6.8.12-l4t-r39.2.0-1021.21 (built via meta-tegra's own recipe,PREFERRED_PROVIDER_virtual/kernel = \"linux-noble-nvidia-tegra\")\nCUDA: 13.2 (cuda-toolkit/cuda-toolkit-dev)\nTensorRT: 10.16.2.10-1 (tensorrt-core/tensorrt-core-dev)\n\n### Symptom\n\nAny CUDA program \u2014 including a minimal standalonecudaGetDeviceCount()test, not just TensorRT-Edge-LLM which is what surfaced this \u2014 fails immediately:\n\n\ncudaGetDeviceCount: err=801 (operation not supported), count=0\n\n\n### What's confirmed working (ruling out the obvious suspects)\n\n-nvgpukernel module loads cleanly at boot (ga10b_init_haletc. in dmesg, no errors)\n-/usr/lib/libcuda.so.1.1is the real 91MB driver library (not the 74KB stub), loads from the correct path (confirmed viaLD_DEBUG=libs)\n- GPU firmware present and non-empty (/lib/firmware/nvidia/ga10b/*)\n-/dev/nvhost-gpu,/dev/nvmap,/dev/host1x-fenceall present with correct permissions (root)\n-tegrastatsreports the GPU normally (temps ~55\u00b0C,GR3D_FREQtracking, normal idle power draw) \u2014 hardware/driver-level GPU state looks completely healthy\n- Persists across a full reboot (ruled out transient/session state)\n- No dmesg output at all when the failing call happens \u2014 the failure occurs entirely in userspace, before any ioctl reaches the kernel driver\n\n### Why I suspect a kernel/userland pairing issue, not something exotic\n\nThis MACHINE profile (p3509-a02-p3767-0000) has already surfaced two other Orin-NX-vs-Orin-Nano config mismatches earlier in the same build effort:\n\n1.TEGRA_BOARDSKUdefaults to0000(Orin NX 16GB) rather than the actual module SKU \u2014 required an explicit override.\n2.NVPMODELdefaults (viaorin-nx.inc, which this MACHINErequires) referencenvpmodel_p3767_0000_super(Orin NX: 8 CPU cores, has a PVA) \u2014 our actual hardware only has 6 cores and no PVA, causingnvpmodel.serviceto fail outright until overridden tonvpmodel_p3767_0003_super.\n\nGiven that pattern, I suspect there's a third gap somewhere in the CUDA/GPU userland-vs-kernel pairing for this exact MACHINE+SKU combination, but I don't have visibility into NVIDIA's internal version pinning to pin it down further myself. I found discussion #1004 which has the same top-level symptom (cudaGetDeviceCountfailing on a custom kernel build) and was resolved by using a properly-matched kernel+userland branch pairing rather than mixing versions \u2014 wanted to flag this as a possible instance of the same class of issue, on much newer hardware/software (Orin Nano, JetPack 7.2/CUDA 13.2) than that one.\n\n### What I haven't been able to check\n\nI don't have a clean local way to verify whether our built kernel's nvgpu ABI/ioctl version actually matches what the prebuiltlibcuda.so(fetched vial4t_deb_pkgfeedfrom NVIDIA's official binary feed) expects \u2014 no version marker I could find exposes this directly for comparison. If there's a known-good way to check this (or a specific patch/version pin this MACHINE should be carrying for CUDA+Orin-Nano that it isn't), I'd appreciate a pointer.\n\nHappy to providebitbake -eoutput, exact package versions, or anything else that would help narrow this down.\n"All reactions