Redhat on Jetson Xavier

Hello,

For some reasons, we could need to install another linux distribution on the Jetson Xavier (Centos/Redhad for example). Is it feasible ? Has it been done ? What would it take to do it ?

Thank you.

I think some people have used Fedora on earlier Jetsons, but they didn’t have the hardware acceleration for the GPU (CUDA wouldn’t work and video would be software rendered).

You might want to save a reference copy of “/var/log/Xorg.0.log”. Then take a look at this subset of the log:

gawk '/Module ABI versions/,/X.Org Server Extension/' /var/log/Xorg.0.log

It’ll look like this if using R31.1:

[    12.742] (II) Module ABI versions:
[    12.742]    X.Org ANSI C Emulation: 0.4
[    12.742]    X.Org Video Driver: 23.0
[    12.742]    X.Org XInput driver : 24.1
[    12.742]    X.Org Server Extension : 10.0

Xorg is the visible interface to the GPU in most situations, but Xorg has a plugin style structure for various features. The ABI level is what the NVIDIA hardware specific drivers target. If you keep your Xorg server to that ABI, then the NVIDIA drivers will drop into place and work. There is a similar methodology for other interfaces, e.g., if the XInput driver is the wrong ABI version, then keyboard and mouse will stop working. Typically the ABI versions come as a set, so if you hold back the Xorg version in order to match this GPU ABI, then you might also have to hold back the XInput ABI version support packages. I mention this specifically because this is a requirement for most CUDA apps.

If you have ever flashed the Xavier, then due to the driver package (which is installed on the host if you flashed through the JetPack GUI front end to the driver package) you will have a “Linux_for_Tegra/” directory. Within this is an “apply_binaries.sh” script which overlays certain NVIDIA-specific files onto the “rootfs/” directory (initially seeded with the Ubuntu sample rootfs). Those files are the ones you’d need to match if you are intending to keep 100% functionality with direct hardware acceleration.

To see if a given system has the correct “apply_binaries.sh” content you can run this command from the Xavier:

sha1sum -c /etc/nv_tegra_release

You’ll see a list of files…ones which derived from apply_binaries.sh, and the checksum. The “apply_binaries.sh” script itself is human readable, so you can see where each file it installs comes from.

You would have to use all of the U-Boot and other boot files from the L4T distribution…a stock U-Boot won’t work.

I think in the end the biggest difficulty is to keep ABIs or versions which are compatible with the NVIDIA-specific files. After that the system can probably be standard CentOS or Fedora, but with package managers that might be difficult. No idea how long or difficult it would be, but I’d expect the time and difficulty to be high.

Hi RC7,
I am in a similar situation (our software stack is unfortunately tightly integrated with CentOS), and so far I have had good results running CentOS 7 inside an LXC/LXD container on the Xavier.

I have summarised the basic steps to set things up here: Install CentOS 7 in an LXC/LXD container on an NVIDIA Xavier.

So far, the CUDA samples build and run.

Thank you very much fwyzard and linuxdev !
I’ll try that.