So I’ve been trying to find ways to run 64bit programs on the TX1 dev kit in userspace.
From what I’ve gathered, I need to build all the user space components with a 64 bit compiler.
I need help on clarifying some things would really appreciate someone pointing me in the right direction.
What are all the user space components? And do I need to find the source of all these and then build them? And If so, do I build it using a cross compiler on a x86_64 ubuntu PC? Or can I build these things directly from the TX1.
I would imagine I can’t do it on the TX1, and I’d have to build it on another computer, and put all the appropriate files in the RootFS folder and then flash it to the TX1.
Currently the JTX1 L4T is 32-bit user space, 64-bit on the kernel (L4T R23.1). There is a release expected very soon…this release will NOT provide 64-bit user space. However, the next release after that was expected to be 64-bit even in user space. You might want to just build 32-bit apps and port to 64-bit in a few months when full 64-bit user space comes out.
I would start by looking at what the debian package manager sees as dependencies with the linker, libc, and glibc libraries. Imagine that you are going to leave backwards compatible 32-bit in place, but you issue a “don’t really do it” packager command to remove everything you can see related to the above named packages…see what it wants to remove. Then look for 64-bit versions. Do not actually install those unless you know the 64-bit hooks into the kernel do not also need adjustment…if you are not careful then 64-bit packages would replace 32-bit packages, which is not what you want…you want 64-bit in addition to 32-bit. I think one of the biggest issues people had trying to do this fast and easy was related to 32-bit and 64-bit being a pain to install side-by-side.
If you save a clone and can re-flash with the clone then you can be a bit reckless with package testing (although clones take significant time, so it wouldn’t be fast).
warning: as linuxdev mentioned, it will nuke your install for typical development. It conflicts with the 32-bit packages. But you can compile kernel modules, ect. with it.
Technically you can compile userspace apps with it too, but can’t load arm64 ELF ABI on armhf. This spring Ubuntu 16.04 arm64 sample root filesystem will be released with the full support.
Thx for the info guys.
I’ll try it despite the risk. It’s mostly for research/understanding purposes anyway. @dustry_nv If it is actually released this update cycle (march/april) then great. I’ll just run my zombie version till the official release
It runs very fine after the install, except that none of the closed source tools/libs from Nvidia (included in the rootfs after ./apply_binaries is executed) works. This leaves you with at least no GPU, no CUDA, no gstreamer plugins system.
Will wait patiently for the spring to bring 32bits more :D