Installation of RedHawk™ 7.5.2 Gold on theNVIDIA® Jetson Nano™
Release Notes
June 22nd, 2020
0898003-7.5.2-Nano

This page intentionally left blank1. Introduction
This document describes the process of installing the ARM64 version of RedHawk™ 7.5.2 on theJetson Nano. The directions in this document supersede all others – they are specific to installing thesoftware on Concurrent Real-Time’s RedHawk systems.

2. Requirements•••

Jetson Nano with Internet accessAn x86_64 host system running Ubuntu 16.04 or 18.04 with Internet access; note thatthe host system should be up-to-date with the latest available Ubuntu package updates
The RedHawk 7.5.2 for the Jetson Nano optical media disk
NOTE
Make sure that /usr/bin/python exists on the Ubuntu host system;
install the python package if /usr/bin/python does not exist.

3. Installation
3.1.

Download SDK Manager onto the host system

On an x86_64 host system running Ubuntu 16.04 or 18.04, download version 1.1.0-6343 of SDK
Manager from the NVIDIA website via this URL:
https://developer.nvidia.com/jetpack
Click on the NVIDIA SDK Manager link to download the SDK Manager package (login may berequired). You should also click on the Jetson Nano Developer Kit User Guide link todownload the User’s Guide PDF.
Place these downloaded files into a nano directory in the home directory of the current user.

3.2.

Install the downloaded SDK Manager package

Open a terminal window and issue the following commands to install the SDK Manager:$ cd ~/nano$ sudo apt install ./sdkmanager_1.1.0-6343_amd64.deb

3.3.

Use SDK Manager to flash JetPack 4.3 on the Nano

Invoke the following command as the current user to begin using the SDK Manager:$ sdkmanager

The first action required by the SDK Manager is to log into the nvidia.com website using yourdeveloper or partner account email address and password. Enter the appropriate information andpress LOGIN to continue.

At this point, you can generally follow the instructions in the Jetson Nano Developer Kit User
Guide along with the following RedHawk-specific instructions to install the Nano.
1. On the STEP 01 - DEVELOPMENT ENVIRONMENT screen, click on the . . . icon in the Target
Hardware box to reveal the list of supported hardware configurations, as shown in thefollowing screenshot:

2. Click on the Jetson Nano [Developer Kit Version] target hardware option to make it
the selected target, as shown in the following screenshot:3. Next, click on the . . . icon in the Linux box to reveal the list of supported JetPack
Product versions, as shown in the following screenshot:

4. Click on the JetPack 4.3 product version to make it the selected JetPack version, as
shown in the following screenshot:

5. Press Continue to advance to the STEP 02 – DETAILS AND LICENSE screen and click
I accept the terms and conditions of the license agreements at the bottom of
the window to accept the licenses, as shown in the following screenshot:6. Press Continue to advance to the STEP 03 – SETUP PROCESS screen and SDK Manager
will begin downloading all the software components from NVIDIA, as shown below:

Depending on your network’s speed, the download can take 30 minutes or more. During
the download and setup, a detailed output log can be viewed under the TERMINAL tab.

7. Once the download and setup has completed, you will be presented with a Flash dialog.
Notice the Automatic setup pulldown menu as shown in the following dialog:

Click on Automatic setup and change the setting to Manual Setup as shown in thefollowing dialog:

Follow the steps listed on the Flash dialog to place the Jetson Nano into recovery modeand then click the Flash button to begin flashing.

NOTE
Issue the lsusb command on the host to verify that a single NVidia Corp.
entry with device ID 0955:7f21 is displayed; this is the best indication thatthe Nano has successfully entered recovery mode and is ready for flashing.

8. Midway through flashing you will need to connect the Nano to a monitor, keyboard andmouse to click through the System Configuration dialogs. Accept the license and thenchoose values for all settings that are appropriate for your site.
Make sure to remember the username and password chosen because this information
will be needed by the SDK Manager in the following step. Press Continue to exit theSystem Configuration dialogs and continue with flashing.

9. During flashing the SDK Manager will prompt you to fill in Username and Password
fields as shown in the following dialog.

Enter values for each field matching those entered into the System Configuration
dialog in the previous step and then click Install to continue flashing.

10. Once the flashing has completed you will automatically proceed to the STEP 04 –SUMMARY FINALIZATION screen.

Click Finish and Exit to exit the SDK Manager

3.4.

Copy the RedHawk packages to the Nano
NOTE
This section assumes you are using the RedHawk 7.5.2 for Jetson Nano optical
media disc. Alternatively, if you wish to install RedHawk from the network refer toAppendix B, “Install RedHawk from Concurrent Real-Time Repositories.”
Once installed, continue with section 3.6 below to finalize the installation.

After SDK Manager has completed the Ubuntu installation on the Nano, insert the RedHawk 7.5.2
for Jetson Nano optical disc into the Ubuntu host’s optical drive and it should automatically mountunder the /media/$USER directory (e.g. /media/jane/RedHawk 7.5.2 aarch64).
Change to the mounted directory on the host and use networking to copy the RedHawk packages
into the newly installed Nano, as illustrated by the following commands:$ cd /media/jane/RedHawk 7.5.2 aarch64/Packages$ scp *.deb user@host:/tmp

NOTE
Use the username, hostname and password chosen during flashing.

3.5.

Install RedHawk packages on the Nano

To install the RedHawk packages, log into the Nano (either via ssh or via the graphical console)and issue the following commands:$ cd /tmp$ sudo apt install ./ccur*.deb

Enter the password for the current user if the sudo command prompts for it.
NOTE
Several warnings may be displayed during package installation, including:•••••Warning: couldn’t identify filesystem type for fsck hook…
I: The initramfs will attempt to resume from /dev/zram3/sbin/ldconfig.real: Warning: ignoring configuration file…
/etc/ld.so.conf.d/aarch-linux-gnu_EGL.conf: No such file…
N: Can’t drop privileges for downloading as file…
You can safely ignore these warnings as they are not relevant
to RedHawk 7.5.2 on Jetson Nano embedded installations.

At this point all the RedHawk packages, including the RedHawk kernels, should have installedsuccessfully on the Nano. However, additional steps in the next section are required before you
can boot into the RedHawk kernels.

Add RedHawk entries to the extlinux.conf file

3.6.

Perform the following steps on the Nano to create boot entries for the RedHawk kernels:
1.

Create a backup of the /boot/extlinux/extlinux.conf file.
$ cd /boot/extlinux$ sudo cp extlinux.conf extlinux.bak

2.

Open the extlinux.conf file in your preferred editor. For example, if using vi:$ sudo vi extlinux.conf

3.

Duplicate all the primary kernel entry text lines to create a second identical entry
below the initial entry. For example:
TIMEOUT 30
DEFAULT primary
MENU TITLE L4T boot options
LABEL primary
MENU LABEL primary kernel
LINUX /boot/ImageINITRD /boot/initrd
APPEND ${cbootargs} quiet
LABEL primary
MENU LABEL primary kernel
LINUX /boot/ImageINITRD /boot/initrd
APPEND ${cbootargs} quiet

4.

Customize the original first kernel entry to point to the desired RedHawk kernel. For
example, to create an entry on the Nano for the RedHawk trace kernel:
LABEL redhawk-trace
MENU LABEL redhawk-trace kernel
LINUX /boot/Image-4.9.140-rt94-r32.3.1-tegra-RedHawk-7.5.2-trace
INITRD /boot/initrd.img-4.9.140-rt94-r32.3.1-tegra-RedHawk-7.5.2-trace
APPEND ${cbootargs} quiet

NOTE
Modifying the first kernel entry will allow the NVIDIA kernel to be booted asa fallback if any typos were entered during the customization of the first entry.
Failure to follow this guideline can render the Nano unbootable andrequire re-flashing if a typo is accidentally introduced during editing.
5. Change the default kernel to the newly added RedHawk kernel by changing the DEFAULT
entry at the top of the file:
TIMEOUT 30
DEFAULT redhawk-trace

Note that if your Nano has been set up with a serial console, you may choose to skip thisstep and instead interactively decide which kernel you wish to boot each time the system
restarts.

3.7.

Verify RedHawk kernel installation

The Nano should now be running the selected RedHawk kernel. To verify this, issue thefollowing command:$ uname -r

You should see output displayed like the following:
4.9.140-rt94-r32.3.1-tegra-RedHawk-7.5.2-trace

Please contact Concurrent Real-Time technical support if you had any problems during thisinstallation (support@concurrent-rt.com or 1-800-245-6453).

4. Known Issues
Special consideration should be given to the following areas.

4.1.

Entropy gathering daemon interferes with real-time

Ubuntu 18.04 enables a new Hardware Volatile Entropy Gathering daemon (haveged) that
continuously samples various hardware resources (e.g. cache, branch predictions, memorytranslation tables) to collect entropy and improve random number generation.
This daemon’s constant hardware probing activity can negatively impact real-time performanceeven on shielded CPU cores, and the daemon should be stopped before starting real-timeworkloads by invoking the following command as the root user:# systemctl stop haveged.service

Note that disabling the entropy gathering service is not recommended because some Ubuntu
startup services require a minimum level of entropy to be gathered before they will start; thisincludes services required for the X Server to properly initialize. However, after the Nano has
started with graphics displaying you can safely stop the service to improve real-time performance.

4.2.

Warnings accessing /dev/mem

Attempting to directly access /dev/mem on the Jetson Nano is not permitted and will result inerrors output to the systems console. For example, invoking the dmidecode application while aRedHawk kernel is running will output an error like the following:
Program dmidecode tried to access /dev/mem between f0000->100000.
Note that if the stock NVIDIA kernel is running, you may see hundreds of lines of SError
messages output to the console, similar to the following:
CPU4: SError detected, daif=140, spsr=0x20000000, mpidr=800001020
CPU4: SError detected, daif=140, spsr=0x40000145, mpidr=800001020
ROC:IOB Machine Check Error:
Address Type = Secure DRAM
Address = 0x0 (Unknown Device)...
These errors are only informational and can be ignored.

4.3.

Change to PAM Capability module directory

The PAM Capability module directory that is documented in some versions of the RedHawk
User’s Guide is incorrect for the Jetson Nano. The correct PAM Capability module location forthe Jetson Nano should be shown as:/lib/aarch64-linux-gnu/security/pam_capability.so
If you wish to use the PAM Capability feature with services in the /etc/pam.d directory, thenyou should refer to the PAM Capability module as follows:
session required /lib/aarch64-linux-gnu/security/pam_capability.so

4.4.

RedHawk Debug kernel modifications

The RedHawk Debug kernel has been compiled without CONFIG_PROVE_LOCKING enabled;
this was necessary because the Nano kernel source code does not currently conform to strict
lock dependency checking standards. It is hoped that future versions of the Nano kernel sourcecode will address this deficiency.

A. Serial Console Setup
Concurrent recommends setting up a serial console when using RedHawk on the Jetson Nanodevelopment board. This appendix provides details and tips for connecting a serial console.

A.1.

Purchase a Raspberry Pi serial cableFirst, you will need to purchase a special cable that attaches to specific pins on the Jetson
motherboard to provide a USB serial connection suitable for a desktop PC. Concurrent
recommends using the following Raspberry Pi cable, but other similar products may also work:•Adafruit Industries 954 USB-to-TTL Serial Cable, Raspberry Pi
http://www.amazon.com/ADAFRUIT-INDUSTRIES-954-SERIAL-RASPBERRY/dp/B00DJUHGHI

A.2.

Connect the serial cable to Nano and PC

Once you have the correct serial cable, follow the instructions in the video on this page to attach
the cable to either the Jetson Nano and then to a desktop PC:•Jetson Nano – Serial Console
https://www.jetsonhacks.com/2019/04/19/jetson-nano-serial-console/

Following is a brief summary of the important information of this video:•The serial port header pins are marked J44 as shown in the Nano diagram below:•The individual pins of J44 are connected as described below:•To connect the USB serial cable, attach the White wire to TXD, thethe Black wire to GND as shown in the following picture:•Note that the Red wire should not be attached to any of the pins in the header.

wire to RXD and•On the host the minicom settings should be configured as shown below:

B. Install RedHawk from Concurrent Real-Time Repositories
RedHawk can be installed over the network utilizing the Concurrent Real-Time software repositories.
This has the advantage that it will install the latest updates that have been released, however someup-front setup is required to perform the installation; follow the steps below to complete this setup.

B.1.

Install Concurrent Real-Time Public Keys

Concurrent Real-Time signs its APT repositories with a GPG-generated DSA and ElGamal key
pair. You need to install Concurrent Real-Time's public key so that the APT system can authorize
usage of the repositories.
You can download the ccur-public-keys file and import the key file as needed into APT's key ring.
You should import the key file before attempting to access software from Concurrent Real-Time'srepositories.
The following commands will download the public key and install it.
wget -q http://redhawk.concurrent-rt.com/network/ccur-public-keys
apt-key add ccur-public-keys
If you wish to check the authenticity of the public keys file you downloaded from Concurrent RealTime's web site, request the key fingerprints from Concurrent Software Support and comparethem to the fingerprints of the keys you downloaded.
You can obtain the fingerprints of the keys you downloaded with the following command:
gpg --with-fingerprint ccur-public-keys

B.2.

Install Repository Definition Files

Repository definition files tell the APT installation and update system how to access specificrepositories. The definition files must reside in the /etc/apt/sources.list.d/ directory andthe file name must end .list; e.g. /etc/apt/sources.list.d/ccur.list.
Use the following format for the repository definition of the RedHawk 7.5 for Jetson Nano product:
deb http://redhawk.concurrent-rt.com/ubuntu/login/passwd/redhawk/nano 7.5.n core

For example, the following entry substitutes a fictional login and password:
deb http://redhawk.concurrent-rt.com/ubuntu/LR12345/t0ps3cr3t/redhawk/nano 7.5.n core

Note that if the NightStar tools have been purchased for this machine, then you should also add arepository definition for the NightStar tools below the previously added line. For example:
deb http://redhawk.concurrent-rt.com/ubuntu/LR12345/t0ps3cr3t/nightstar 4.6 rt

Once the repository definition file is in place the repository setup is complete. Run the following
command as root to ensure that the software repositories have been added correctly:
sudo apt update
If you see errors or warnings produced that reference the newly added ccur.list file, thenverify that all the above steps have all been completed as documented.

B.3.

Install RedHawk Packages

Now that the setup is done, simply issue the following command to install all the latest RedHawk
7.5 packages (and NightStar 4.6 packages if purchased) onto the current system:
apt install 'ccur-*'Once this command completes the RedHawk packages are installed. Continue with Section 3.5,
“Flash desired RedHawk kernel using bootburn.sh," in order to finalize the RedHawk installation.

B.4.

SupportIf you need assistance, please contact the Concurrent Real-Time Software Support Center at ourtoll-free number 1-800-245-6453. For calls outside the continental United States, the number is 1954-283-1822. The Software Support Center operates Monday through Friday from 8 a.m. to 5p.m., Eastern Standard Time.
You may also submit a request for assistance at any time by using the Concurrent Real-Time
website at http://concurrent-rt.com/support or by sending an email to support@concurrent-rt.com.