File System Components (Target)
NVIDIA DRIVE™ provides and supports the Ubuntu-based file system. This file system is suited for small to medium embedded target systems based on NVIDIA® Tegra® processors.
Note:
If you experience instability or timeouts with ssh connections to a Xavier processor in the Drive AGX system, set -o ServerAliveInternal to keep the ssh session live. For example:
$ ssh -o ServerAliveInternal=240 nvidia@<xavier IP address>
See the standard Linux ssh manpage documentation for more information..
Ubuntu-Based File System
The Ubuntu-based file system is intended to be used for software development because it has immense flexibility to quickly add required 3rd party pre-built packages from Internet-based PPA servers. NVIDIA DRIVE Linux uses:
Ubuntu-core xenial, 16.04 (amd64 distribution)
This file system comes with a minimal set of packages that can optionally be installed after initial boot through the drive-setup.sh script.
Yocto-GENIVI File System
Additionally, NVIDIA DRIVE provides and supports the Yocto-GENIVI file system. This file system is also suited for small to medium embedded target systems based on NVIDIA® Tegra® processors.
For information on building and installing this file system, see Building the Yocto Project-Based Components in the NVIDIA DRIVE OS 5.1 Linux PDK Development Guide.
Logging In
The file systems (drive-oobe-rfs only) support Secured Shell (SSH) and serial console logins. Use following username/password to login:
username: nvidia
password: nvidia
Using apt-get
The apt-get tool is the mechanism with which the Ubuntu systems keep track of software installations.
apt-get is a command line interface that enables:
Installing software packages from Ubuntu repositories on the local system or the Internet
Removing existing packages
Upgrading existing packages (or even the entire system)
Because package dependency information is included with the packages (i.e., B requires A, C conflicts with D), removals and upgrades can be checked to see if dependencies are broken, making the system safe and easy to use. The file system comes with the Ubuntu 16.04 (amd64 distribution) ARM Internet repository already set up, so you can use apt-get immediately to install Ubuntu software packages from the Internet.
apt-get keeps a local database of available packages from the repositories it knows about. The packages in the Internet repository are periodically updated with bug fixes, security patches, and other minor changes, and the local database will not contain these updates until it itself is updated.
Prerequisites
Your target has Internet access.
For instructions on setting up target Internet access, see Enabling Internet Access on the Target.
To update the local database
Enter the following command:
$ sudo apt-get update
Packages can then be installed with the apt-get install command.
To install packages
Enter:
$ sudo apt-get install <package> <package>
Where <package> is the name of the package to install, such as foo and bar in the following command:
$ sudo apt-get install foo bar
The command line is sufficient even if foo and bar depend on other packages that are not yet installed. apt-get determines what dependencies are missing and offers to install them. If dependency conflicts prevent the installation of either package, apt-get reports the conflicts and refuses to do anything.
To remove packages
Enter:
$ sudo apt-get remove <package> <package>
Where <package> is the name of the package to remove. For example, the following command line removes the bar and baz packages:
$ sudo apt-get remove bar baz
If other packages require a package to remain installed, then apt-get also offers to remove the other packages. To prevent accidental removal of needed packages, verify the full list of packages to be removed.
For additional information, see apt-get in Chapter 3. Package Management” of the Ubuntu Server Guide at:
https://help.ubuntu.com/16.04 (amd64 distribution)/serverguide/serverguide.pdf
Installing GUI on the Target
The default filesystem that comes with the SDK does not contain the graphical user interface.
To install the GUI and work with the graphical user interface, execute the following steps:
1. Ensure target filesystem driveos-oobe-rfs.run is flashed on the board.
2. Ensure the target is connected to the internet and execute the following commands below:
sudo apt-get update
sudo apt-get install gdm3 ubuntu-unity-desktop
3. The commands result in the following prompts that require the following user actions:
1. On query for /etc/alsa/alsa-base.conf to keep or overwrite: Press enter (keeps current version).
2. For time zone configuration: Choose continent, city to set time zone, and press enter.
3. On query for /etc/gdm3/custom.conf to keep or overwrite: Press enter (keeps current version).
4. Information prompt on Xserver: Choose Ok and press enter.
5. Choose default display-manager between gdm3 or lightdm: Choose gdm3 and press enter.
4. At this point, apt-get install completes. Rename the session file in /usr/share/xsessions from ubuntu.desktop to ux-ubuntu.desktop:
cd /usr/share/xsessions/
sudo mv ubuntu.desktop ux-ubuntu.desktop
cd -
5. Reboot the target:
sudo reboot
File System Source Code
The Ubuntu-repository provides the source code of all the packages installed in the Ubuntu-based file system, depending on your NVIDIA DRIVE™ release.
The oss-src-run file installs under the following directory.
<top>/drive-t186ref-linux_src/drive-rfs-src.tar.bz2
For information on the Ubuntu-based file system, search for Ubuntu t186ref binaries on Ubuntu xenial for arm64 at:
https://launchpad.net/ubuntu/xenial/arm64
The file system can be built from scratch by using the Ubuntu Base at:
Disclaimer:
Ensure that all data is saved. Execute a software shutdown command, such as halt/shutdown to the target system to avoid data corruption; otherwise, file system corruption may occur. Once the target system is shut down, you may use physical/electrical shutdown or reset commands, such as tegrareset or aurixreset in the AURIX command terminal.