64-bit userspace TX1

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.

Should I be approaching this in some other way?

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.

heh I was hoping to enable 64bit userspace myself.
If one was to do it, how would they?

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.

You could of course start by cloning the root partition as a backup. See:

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).

See here for the commands to install arm64 toolchain: https://github.com/dusty-nv/jetson-scripts/blob/master/install_gcc_arm64.sh

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

Actually, I tried to do exactly what you want here:

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

haha, yeah i managed to make arch boot with some nouveau stuff but, all i get is vertical RGB lines as output on the monitor. It boots tho :/


Any update on release date of 64 bit user space?

I am also missing the second 32 Bits to get a 64 Bit userspace (:

Please NVidia give us a release date…


It’s in the next version of L4T, coming soon

Hi Dusty,

one month is over now. Any news on the L4T release date with a 64 Bit userland?
My 600 Euro board is lying around, beeing useless for me…