Need to reproduce Sample-Root-Filesystem

How is the sample rootfs produced? (eg: Tegra_Linux_Sample-Root-Filesystem_R32.3.1_aarch64.tbz2 or tegra_linux_sample-root-filesystem_r35.4.1_aarch64.tbz2)

This appears to be derived from official ubuntu seeds however there are no ARM64 Bionic or Focal images that match this sample rootfs.

You must not be following the instructions here → Root File System — Jetson Linux Developer Guide documentation to build these rootfs because I have tested and following this results in all the packages being marked as manually installed upon booting and testing the image, meanwhile your official SD image/sdkmanager flash does not result in 1800+ manually marked packages (booting one of your official images actually only has about ~400 depending on which sample rootfs we are looking at)

Please respond with the full instructions for how the sample rootfs is created.

I don’t know if I’m answering what you really want to know, but consider that JetPack/SDK Manager is only a frontend to the actual flash software. If you were to manually download and install flash content onto the host PC, you’d first download and unpack the “driver package” as a non-root user (this is the actual flash software; this understands the custom USB device which is a recovery mode Jetson). Then one would unpack the sample rootfs as root into “Linux_for_Tegra/rootfs/”. Up until this moment that content is 100% purely Ubuntu.

The “magic” begins at the next step, from “Linux_for_Tegra/”. The “sudo ./apply_binaries.sh” is run. This is the addition of NVIDIA drivers and content, and is when Ubuntu becomes what NVIDIA calls “L4T” (“Linux for Tegra”). It is possible other steps can customize this via a QEMU adapter to run package tools, but the actual sample rootfs is 100% purely Ubuntu. One reason to separate it like this is that it is the end user which combines them. It makes for cleaner licensing.

As far as how the actual sample rootfs is derived, I don’t know. It is basically just 64-bit ARM from official Ubuntu releases, although there are probably some packages which might be included or excluded (e.g., one would not need the Mesa X driver since it is going to get the NVIDIA GPU driver for X).

It would be interesting to see something like a recipe for what is in the sample rootfs, but I’ve never seen it. Some people create Yocto installs/recipes, but I have not done so. For a custom rootfs I’d think the X11 server ABI must remain constant if you wish to use the GPU, and the kernel would have to be from NVIDIA in order to use the NVIDIA device tree (it is a combination of configuration and some out-of-tree content, but all of that is open source; you can download the kernel source with content which exceeds mainline kernel content).

@linuxdev what you wrote just serves to distract from what I am asking

this is the only thing relavent

As far as how the actual sample rootfs is derived, I don’t know. It is basically just 64-bit ARM from official Ubuntu releases, although there are probably some packages which might be included or excluded (e.g., one would not need the Mesa X driver since it is going to get the NVIDIA GPU driver for X).

Since you don’t know how the sample rootfs is created and that is what I asked about, please do NOT respond. You know nothing about it so your answer is needless.


I assume @linuxdev made this remark. It is not clear with the visual indicator what user made it.

Your post was flagged off-topic as I explicitly wrote that the creation of the rootfs following Root File System — Jetson Linux Developer Guide documentation has NOT been followed by nvidia for creating the sample rootfs (eg: Tegra_Linux_Sample-Root-Filesystem_R32.3.1_aarch64.tbz2 or tegra_linux_sample-root-filesystem_r35.4.1_aarch64.tbz2)

You then go on to write about entirely unrelated topics such as the application of nvidia debs which is not requested or needed to answer my question.

That is why the post is marked as offtopic, because none of it is ontopic.

I am still looking for an answer to the original question. @WayneWWW maybe you can forward this to the development team? Should be simple for them to share their script (or maybe some hidden ubuntu source) for the official sample rootfs to recreate it one to one.

Sorry. It is usually necessary to get a starting point or a use-case. The description was only used to get to that question as to whether this was leading up to the correct question or use-case.

Hi,
The sample rootfs is built with the method:
Root File System — Jetson Linux Developer Guide documentation

The script is public. Please give it a try.

@DaneLLL Hi I already covered in my first post that it is not possible that you used that script to create it. Using that script results in ~1800 manually marked packages while the linked sample rootfs only has ~400 manually marked packages. Do not link me something that I explicitly told you was not used and gave valid reason for.

In the meantime I have discovered elsewhere what you must be doing to decrease this number from 1800 to 400 but it is not in any public script. I would like for you to correct the public script to match what you do internally to produce the tegra_linux_sample-root-filesystem_r35.4.1_aarch64.tbz2 exactly.