Linux Filesystems

NVIDIA DRIVE OS LINUX consists of multiple hierarchy filesystems. Each layer of the hierarchy of filesystems is assigned a purpose and the particular purpose at that layer defines the contents of the filesystem.

The Filesystem Hierarchy Pyramid image below shows a pyramid representing the hierarchy of filesystems. Each layer builds on top of the layers below it. The pyramid is not proportional; therefore, the width or area of each layer of the pyramid does not necessarily represent the amount of content at that specific layered filesystem.

At the very bottom of the hierarchy, the base layer is Canonical Ubuntu Base Filesystem. This is a filesystem from Canonical and is not changed but is required to be the initial based filesystem to be built on top of.

The next layer is named driveos-core-rfs and is purposed to contain automotive specific Debian packages as well as drivers, libraries, tools, firmwares, scripts, and any other necessary files for core functionality. This filesystem is normally given to and used for production systems.

The next layer is named driveos-oobe-rfs and is an Out Of Box Console for developers. It contains automotive specific samples, documentations, and developer friendly tools. This filesystem is intended to be used by developers for developers.

media/image2.PNG

The final layer is named driveos-oobe-desktop-rfs and is an Out Of Box GUI Desktop Experience for developers. It contains automotive GUI desktop interface, specific samples, documentations, and developer friendly tools. This filesystem is intended to be used by developers for software development.

The itemized listing of Debian packages in the DRIVE OS LINUX filesystem is available in an end-user friendly descriptive version alongside the EXT4 image file of the filesystem (depending on driveos-oobe-rfs, driveos-core-rfs, or or driveos-oobe-desktop-rfs) in the following path:

  • /opt/nvidia/driveos/<release>/<DRIVEOS_GCID>/drive-linux/filesystems/driveos-core-ubuntu-20.04-rfs/driveos-core-ubuntu-20.04-rfs.manifest
  • /opt/nvidia/driveos/<release>/<DRIVEOS_GCID>/drive-linux/filesystems/driveos-oobe-ubuntu-20.04-rfs/driveos-oobe-ubuntu-20.04-rfs.manifest
  • /opt/nvidia/driveos/<release>/<DRIVEOS_GCID>/drive-linux/filesystems/driveos-oobe-desktop-ubuntu-20.04-rfs/driveos-oobe-desktop-ubuntu-20.04-rfs.manifest

Where <DRIVEOS_GCID> is the GCID of NVIDIA DRIVE OS Linux and <release> is the NVIDIA DRIVE OS Linux SDK version.

Additionally, the filesystems also contain a listing of all installed packages (useful for NVIDIA Build-FS) at (depending on driveos-oobe-rfs, driveos-core-rfs, or driveos-oobe-desktop-rfs):

  • /etc/nvidia/rootfilesystem-manifest/driveos-core-ubuntu-20.04-rfs.MANIFEST.json
  • /etc/nvidia/rootfilesystem-manifest/driveos-oobe-ubuntu-20.04-rfs.MANIFEST.json
  • /etc/nvidia/rootfilesystem-manifest/driveos-oobe-desktop-ubuntu-20.04-rfs.MANIFEST.json

Finally, the filesystem comprises of overlay files added on top of Debian packages from different modules like drivers, libraries, tools, firmware, scripts, and samples. The set of modules is included in driveos-core-rfs and driveos-oobe-rfs. The itemized listing is available in the CopyTarget chapter.