How do I use the "sample root filesystem source"?

I have downloaded ubuntu_bionic-l4t_aarch64_src.tbz2 from the jetson download center, how can I use this source to build file system?

Thanks.

Checking if any document for this?
Why do you need to build the file system instead of using the root file system already builded?

FYI, the sample rootfs itself is what that source is. If you take that source, it is purely just what goes into Ubuntu and does not care about what system it installs to. If you compile all of those as “aarch64/arm64/ARMv8-a” architecture, and then put this in the form of Debian packages, you get the sample rootfs (and this is still without any relation specifically to a Jetson). Anything you see on the internet about this topic under Ubuntu is valid.

The flash process copies this sample rootfs into the “rootfs/” folder (the compiled sources from the package you mention). The “apply_binaries.sh” script then overlays some NVIDIA-specific hardware drivers into this, and this is when it becomes “Linux for Tegra” (which is still Ubuntu, but drivers were added). Packages like CUDA and samples are never added to the flashed image. Those packages are only added after the system runs and is rebooted…those packages are installed over ethernet. The “rootfs/” never sees this.

If you are wanting to customize, then you don’t need that file at all. If you are providing Ubuntu to someone, then you would always make the source code available for licensing. That is all that file is. A big question is what do you want to do?

I want to put share library or bin file into file system during build process automatically. So I think maybe I need a tool can build the file system.

Thanks.

@zhuce_cgf
After flash the device by the sdk manager. You can just put the binary to the …/nvidia_sdk/JetPack_4.2_Linux_P2888/Linux_for_Tegra/rootfs/…
And then flash the image by sudo ./flash.sh jetson-xxx mmcblk0p1 to include them. But you need to take care the file owner and permission.

FYI, flash does not build a file system. The file system source is never built during a flash. Only the “sample rootfs” software is used…this is prebuilt based on that source and configured for arm64/aarch64/ARMv8-a. As @ShaneCCC mentions, you can place any file system in the “Linux_for_Tegra/rootfs/” directory and it will be flashed, but by default this is just unpacked from a tar archive.

Once the rootfs is populated on the host, then any additional files you add prior to flash will get added to the image which is flashed. “rootfs/” is nearly an exact copy of the final image…I say “nearly” because some boot content is edited.