### Install and Start PulseAudio Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/HardwareAccelerationInTheWebrtcFramework.html Commands to install and initialize the PulseAudio daemon if required by the environment. ```bash $ sudo apt install pulseaudio ``` ```bash $ pulseaudio --start ``` -------------------------------- ### Install Kernel and Modules Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Kernel/KernelCustomization.html Install the built kernel and modules to the root filesystem. ```bash $ export INSTALL_MOD_PATH=/Linux_for_Tegra/rootfs/ $ sudo -E make install -C kernel $ cp kernel/kernel-noble/arch/arm64/boot/Image \ /Linux_for_Tegra/kernel/Image ``` -------------------------------- ### Install and Verify Grub Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Bootloader/UEFI.html Install the Grub bootloader to the EFI directory and verify the installation version and file structure. ```bash # Install Grub to system $ sudo grub-install --bootloader-id=Ubuntu --efi-directory=/boot/efi --target=arm64-efi # Check installed Grub version $ sudo grub-install --version # Check the installed files $ ls -R /boot/efi ``` -------------------------------- ### Network Configuration Examples Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/FlashingSupportJetsonThor.html Examples of network arguments for flashing through Ethernet protocol using initrd flash. ```bash --network usb0 ``` ```bash --network eth0:192.168.0.17/24:192.168.0.21 ``` ```bash --network eth0:192.168.0.17/24:192.168.1.2:192.168.0.1 ``` -------------------------------- ### Install Flashing Prerequisites Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/FlashingSupportJetsonThor.html Run this script on a Debian-based host to install necessary dependencies before flashing. ```bash $ sudo tools/l4t_flash_prerequisites.sh # For Debian-based Linux ``` -------------------------------- ### Example Jetson Firmware Version String Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Bootloader/UEFI.html A concrete example of the firmware version string as it appears during the boot process. ```text Jetson System firmware version 36.3.0-gcid-36191598 date 2024-05-06T16:58:59+00:00 ``` -------------------------------- ### Install Cryptsetup Dependencies Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Security/DiskEncryption.html Install the necessary packages required to build cryptsetup from source. ```bash git gcc make autoconf automake autopoint pkg-config libtool gettext libssl-dev libdevmapper-dev libpopt-dev uuid-dev libsepol1-dev libjson-c-dev libssh-dev libblkid-dev tar ``` -------------------------------- ### Run nv_tcu_demuxer for AGX Orin and Orin Nano Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/AT/JetsonLinuxDevelopmentTools/TegraCombinedUART.html Example command to start the demuxer and the resulting console mapping output. ```bash $ cd Linux_for_Tegra/tools/demuxer $ ./nv_tcu_demuxer -d /dev/ttyACM0 & ``` ```text /dev/pts/2 RCE /dev/pts/3 FSI /dev/pts/4 PSCFW /dev/pts/5 DCE /dev/pts/7 BPMP /dev/pts/8 SCE /dev/pts/9 SPE /dev/pts/10 TZ /dev/pts/11 CCPLEX: 0 ``` -------------------------------- ### Install and Run iperf3 Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/TestPlanValidation.html Install iperf3 and perform bandwidth testing between a target device and a host machine. ```bash $ sudo apt update $ sudo apt install iperf3 ``` ```bash $ iperf3 -s ``` ```bash $ iperf3 -c -P8 -t 60 ``` -------------------------------- ### Start X Server Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Multimedia/AcceleratedGstreamer.html Initializes the X server if it is not currently running. ```bash $ xinit & ``` -------------------------------- ### Install Out-of-Tree Modules Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Kernel/KernelCustomization.html Install the built modules to the root filesystem. ```bash $ export INSTALL_MOD_PATH=/Linux_for_Tegra/rootfs/ $ sudo -E make modules_install ``` -------------------------------- ### Build CUDA Samples Natively Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/TestPlanValidation.html Install dependencies and compile the samples on the target device. ```bash sudo apt-get install libglfw3 sudo apt-get install libglfw3-dev cd ${HOME}/cuda-samples make clean make -j$(nproc) ``` -------------------------------- ### Install Git Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Kernel/KernelCustomization.html Command to install the Git version control system on the host machine. ```bash $ sudo apt install git ``` -------------------------------- ### DTS Prod Configuration Example Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Bootloader/ControllerProdConfig.html A complete example of a prod configuration file defining settings for QSPI and SDMMC controllers. ```dts /dts-v1/; / { deviceprod { qspi-0 = <&qspi0>; qspi-1 = <&qspi1>; sdmmc-3 = <&sdmmc3>; #prod-cells = <0x3>; qspi0: qspi@3270000 { default { prod = <0x00000004 0x7C00 0x0>, <0x00000004 0xFF 0x10>; }; }; qspi1: qspi@3300000 { default { prod = <0x00000004 0x7C00 0x0>, <0x00000004 0xFF 0x10>; }; }; sdmmc3: sdmmc@3460000 { default { prod = <0x000001e4 0x00003FFF 0x0>; }; hs400 { prod = <0x00000100 0x1FFF0000 0x14080000>, <0x0000010c 0x00003F00 0x00000028>; }; ddr52 { prod = <0x00000100 0x1FFF0000 0x14080000>; }; }; }; }; ``` -------------------------------- ### Install oem-config Packages Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/FlashingSupport.html Installs the necessary ubiquity and oem-config packages on the source device to trigger configuration on the next boot. ```bash $ sudo apt-get update $ sudo apt-get install --no-install-recommends ubiquity oem-config oem-config-gtk ``` -------------------------------- ### Install WebRTC Dependencies Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/HardwareAccelerationInTheWebrtcFramework.html Install the necessary development and GStreamer packages required to build the WebRTC sample application. ```bash $ apt-get install -y --no-install-recommends \ g++ \ libjsoncpp-dev \ libssl-dev \ uuid uuid-dev \ gstreamer1.0-plugins-base \ gstreamer1.0-plugins-good \ gstreamer1.0-plugins-ugly \ gstreamer1.0-plugins-bad \ libgstreamer1.0-0 \ libgstreamer-plugins-base1.0-dev \ ``` -------------------------------- ### Install Jetson Linux Support Components Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/SoftwarePackagesAndTheUpdateMechanism.html Install the required CUDA, VPI, and Nsight development packages on the host. ```bash $ sudo apt-get install cuda-toolkit-12-2 cuda-cross-aarch64-12-2 nvsci libnvvpi3 vpi3-dev vpi3-cross-aarch64-l4t python3.10-vpi3 vpi3-samples vpi3-python-src nsight-systems-2023.4.3 nsight-graphics-for-embeddedlinux-2023.3.0.0 ``` -------------------------------- ### Jetson Thor Flashing Examples Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/FlashingSupportJetsonThor.html Specific command examples for preparing the workspace and flashing components like A_MB1_BCT, QSPI, or NVMe SSD on Jetson Thor. ```bash $ sudo ./l4t_initrd_flash.sh --no-flash jetson-agx-thor-devkit mmcblk0p1 ``` ```bash $ sudo ./l4t_initrd_flash.sh -k A_MB1_BCT jetson-agx-thor-devkit mmcblk0p1 ``` ```bash $ sudo ./l4t_initrd_flash.sh --qspi-only jetson-agx-thor-devkit mmcblk0p1 ``` ```bash $ sudo ./l4t_initrd_flash.sh --external-only --external-device nvme0n1 -c tools/kernel_flash/flash_l4t_t264_nvme.xml ``` ```bash $ sudo ./l4t_initrd_flash.sh --external-only -k APP --external-device nvme0n1 -c tools/kernel_flash//flash_l4t_t234_nvme.xml ``` -------------------------------- ### Install Flash Prerequisites Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/FlashingSupportJetsonThor.html Run the prerequisite script to ensure the environment is ready for flashing. ```bash $ sudo tools/l4t_flash_prerequisites.sh ``` -------------------------------- ### Launch the WebRTC Application Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/HardwareAccelerationInTheWebrtcFramework.html Execute the launch script to start the streaming server. ```bash launch_nvwebrtc ``` -------------------------------- ### GStreamer Chain Configuration Examples Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Multimedia/AcceleratedGstreamer.html Examples of defining GStreamer element chains using the '!' separator and property settings with the '#' separator. ```bash --svd="avdec_h264# skip-frame=1# output-corrupt=false" ``` ```bash --sad="aacparse ! faad# min-latency=4000000" ``` ```bash --svc="videoconvert# qos=0 ! videoscale" ``` ```bash --sac="audioconvert ! audioresample" ``` ```bash --svs="videoconvert ! videoscale ! ximagesink# sync=0" ``` ```bash --sas="audioconvert ! osssink# device=/dev/dsp1# latency-time=20000" ``` -------------------------------- ### Navigate to Build Directory Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Kernel/KernelCustomization.html Change to the source directory before starting the build process. ```bash $ cd /Linux_for_Tegra/source ``` -------------------------------- ### Build TensorRT samples Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/TestPlanValidation.html Setup and compilation commands for TensorRT samples. ```bash mkdir ${HOME}/tensorrt-samples ln -s /opt/nvidia/tensorrt/data ${HOME}/tensorrt-samples/data cp -a /opt/nvidia/tensorrt/samples ${HOME}/tensorrt-samples/ cd ${HOME}/tensorrt-samples/samples make clean make ``` -------------------------------- ### Create BSP Directory Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Security/FirmwareTPM.html Initializes the top-level directory for the BSP installation. ```bash mkdir ${BSP_TOP} cd ${BSP_TOP} ``` -------------------------------- ### Install OTA Tools Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/SoftwarePackagesAndTheUpdateMechanism.html Extract the OTA tool package into the target BSP directory. ```bash $ cd ${TARGET_BSP}/../ $ sudo tar xpf ota_tools__aarch64.tbz2 ``` -------------------------------- ### Launch Weston with Debugging Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/WindowingSystems/WestonWayland.html Start the Weston compositor with the debug switch enabled. ```bash $ sudo XDG_RUNTIME_DIR=/tmp/xdg weston --idle-time=0 --debug & ``` -------------------------------- ### Build the WebRTC Sample Application Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/HardwareAccelerationInTheWebrtcFramework.html Navigate to the source directory and compile the application using make. ```bash $ cd webrtc_argus_camera_app_src $ make ``` -------------------------------- ### Setup DeepStream Triton Environment Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/TestPlanValidation.html Prepares the model repository and installs dependencies for Triton inference. ```bash cd /opt/nvidia/deepstream/deepstream/samples sudo ./prepare_ds_triton_model_repo.sh sudo apt -y install ffmpeg sudo ./prepare_classification_test_video.sh sudo ./triton_backend_setup.sh ``` -------------------------------- ### Run Pre-built Graphics Sample Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Graphics/SampleApplications.html Navigates to the binary directory and executes a sample application. ```bash $ cd /usr/src/nvidia/graphics_demos/prebuilts/bin/ $ ./bubble ``` -------------------------------- ### Define an IReadWriteI2C Interface Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/CameraDevelopment/CoECameraDevelopment/SIPL-for-L4T/Guide-to-Write-UDDF-Drivers.html Example of a Device Driver Interface (DDI) definition for I2C communication, inheriting from IInterface and including a unique GUID. ```cpp /** The unique identifier for the IReadWriteI2C interface type. */ inline UUID IREADWRITEI2C_INTERFACE_ID = UUID(0xacc5ff36, 0x22a0, 0x4d8a, 0x8271, 0xab, 0x97, 0x5b, 0xa8, 0x84, 0xeb); class IReadWriteI2C: public IInterface { // Note the inheritance from the IInterface class! public: static constexpr UUID id { IREADWRITEI2C_INTERFACE_ID }; // The GUID for this interface /** Return values from read and write operations. */ enum I2CResult { RWI2C_SUCCESS, ///< Success RWI2C_ERROR_NACK, ///< NACK received RWI2C_ERROR_BUS_TIMEOUT, ///< Bus timeout RWI2C_ERROR_ARBLOST, ///< Arbitration lost RWI2C_OUT_OF_RANGE, ///< Address, offset, or length is out of range RWI2C_ERROR_UNKNOWN, ///< Unknown error }; /** * Read from the I2C bus. * * @param[in] sensorIndex The index of the sensor to read from. * @param[in] address The address of the device to read from. * @param[in] offset The starting offset to read from. * @param[out] data The data read from the I2C bus. * @param[in] length The number of bytes to read. */ virtual I2CResult ReadI2C(uint8_t sensorIndex, uint16_t address, uint16_t offset, uint8_t* data, uint16_t length) = 0; /** * Write to the I2C bus. * * @param[in] sensorIndex The index of the sensor to write to. * @param[in] address The address of the device to write to. * @param[in] offset The starting offset to write to. * @param[in] data The data to write to the I2C bus. * @param[in] length The number of bytes to write. */ virtual I2CResult WriteI2C(uint8_t sensorIndex, uint16_t address, uint16_t offset, uint8_t const* data, uint16_t length) = 0; }; ``` -------------------------------- ### Reference Camera Overlay File Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Bootloader/UEFI.html Path to the example camera overlay DTS file. ```text /hardware/nvidia/t23x/nv-public/overlay/tegra234-p3737-camera-dual-imx274-overlay.dts ``` -------------------------------- ### Configure APT Repository URLs Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/SoftwarePackagesAndTheUpdateMechanism.html Example configuration lines for the APT source list file, showing the format for specifying release versions. ```text deb https://repo.download.nvidia.com/jetson/common main deb https://repo.download.nvidia.com/jetson/som main ``` ```text deb https://repo.download.nvidia.com/jetson/common r36.3 main deb https://repo.download.nvidia.com/jetson/som r36.3 main ``` -------------------------------- ### Prepare fTPM Provisioning Folder Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Security/FirmwareTPM.html Create a local directory and transfer the provisioning script to the target device. ```bash mkdir -p ftpm_prov scp optee/samples/ftpm-helper/host/tool/ftpm_device_provision.sh ${REMOTE_DEVICE}:${DEST_PROV_DIR}/ftpm_prov ``` -------------------------------- ### Start GDM Service Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/WindowingSystems/WestonWayland.html Command to start the GDM service after configuration. ```bash $ sudo systemctl start gdm ``` -------------------------------- ### Verify VPI Installation Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/TestPlanValidation.html Checks for installed VPI packages using dpkg. ```bash ubuntu@tegra-ubuntu:~$ dpkg -l | grep -i vpi ii libnvvpi3 3.2.4 amd64 NVIDIA Vision Programming Interface library ii python3.10-vpi3 3.2.4 amd64 NVIDIA VPI python 3.10 bindings ii vpi3-dev 3.2.4 amd64 NVIDIA VPI C/C++ development library and headers ii vpi3-samples 3.2.4 amd64 NVIDIA VPI command-line sample applications ``` -------------------------------- ### Install GCC on DUT Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Kernel/Bmi088ImuIioDriver.html Command to install the GCC compiler on the Device Under Test. ```bash $ sudo apt install -y gcc ``` -------------------------------- ### Run KLT Bounding Box Tracker Sample Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/TestPlanValidation.html Commands to build and execute the KLT tracker sample. ```bash cd /opt/nvidia/vpi3/samples/06-klt_tracker ``` ```bash sudo cmake . sudo make ``` ```bash sudo ./vpi_sample_06_klt_tracker cuda ../assets/dashcam.mp4 ../assets/dashcam_bboxes.txt ``` ```bash sudo python3 main.py cuda ../assets/dashcam.mp4 ../assets/dashcam_bboxes.txt ``` -------------------------------- ### Upgrade Jetson Linux Packages Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/SoftwarePackagesAndTheUpdateMechanism.html Installs the latest available versions of the installed packages. ```bash $ sudo apt upgrade ``` -------------------------------- ### Locate Installed Application Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/CameraDevelopment/CoECameraDevelopment/SIPL-for-L4T/SIPL-App-Development-Guide.html Path to the installed SIPL CoE camera application binary. ```text /usr/bin/nvsipl_coe_camera ``` -------------------------------- ### Configure camera using built-in platform configurations Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/CameraDevelopment/CoECameraDevelopment/SIPL-for-L4T/SIPL-App-Development-Guide.html Use predefined platform configurations from the SIPL database or list available options. ```bash ./nvsipl_coe_camera -c VB1940_Camera ``` ```bash ./nvsipl_coe_camera -h ``` -------------------------------- ### Initialize SIPL Camera and Query Instances Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/CameraDevelopment/CoECameraDevelopment/SIPL-for-L4T/SIPL-App-Development-Guide.html Retrieves SIPL instances and parses configuration databases or JSON files to prepare the camera system. ```cpp // Get SIPL Camera and Query instances m_upCamera = INvSIPLCamera::GetInstance(); m_upQuery = INvSIPLCameraQuery::GetInstance(); // Parse database and configuration status = m_upQuery->ParseDatabase(); if (m_cmdline.sTestConfigFile != "") { status = m_upQuery->ParseJsonFile(m_cmdline.sTestConfigFile); } else if (m_cmdline.sConfigName != "") { status = m_upQuery->GetCameraSystemConfig(m_cmdline.sConfigName, camSysConfig); } ``` -------------------------------- ### Install mesa-utils packages Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Graphics/SampleApplications.html Install the required mesa-utils and mesa-utils-extra packages for graphics testing. ```bash $ sudo apt-get install -y mesa-utils $ sudo apt-get install –y mesa-utils-extra ``` -------------------------------- ### Compile and Run Argus SDK Samples Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/TestPlanValidation.html Standard sequence of commands to prepare the environment, build, and install Argus SDK samples. ```bash cd /usr/src/jetson_multimedia_api/argus ``` ```bash sudo apt-get install cmake; sudo apt-get install build-essential; sudo apt-get install pkg-config; sudo apt-get install libx11-dev; sudo apt-get install libgtk-3-dev; sudo apt-get install libexpat1-dev; sudo apt-get install libjpeg-dev; sudo apt-get install libgstreamer1.0-dev ``` ```bash sudo mkdir build ``` ```bash cd build ``` ```bash sudo cmake .. ``` ```bash cd samples/cudaHistogram ``` ```bash cd samples/gstVideoEncode ``` ```bash cd samples/multiSensor ``` ```bash sudo make ``` ```bash sudo make install ``` -------------------------------- ### Install Python Dependencies for fTPM Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Security/FirmwareTPM.html Installs the required Python modules for fTPM production scripts. ```bash sudo apt-get update sudo apt-get install python3-pip sudo apt-get remove python3-cryptography sudo pip3 install asn1crypto sudo pip3 install cryptography sudo pip3 install ecdsa sudo pip3 install numpy sudo pip3 install oscrypto sudo pip3 install pyaes sudo pip3 install pycryptodome sudo pip3 install pycryptodomex ``` -------------------------------- ### Connect to Wi-Fi via CLI Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/TestPlanValidation.html Scan for networks, install wpasupplicant, and establish a connection using wpa_supplicant and dhclient. ```bash $ sudo iwlist wlan0 scan | grep ESSID $ sudo apt install wpasupplicant $ wpa_passphrase YOUR_AP_NAME PASSWORD | sudo tee /etc/wpa_supplicant.conf $ sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlan0 8. Open another terminal: $ sudo systemctl stop NetworkManager $ iwconfig $ ifconfig wlan0 $ sudo ifconfig wlan0 up $ sudo dhclient wlan0 $ ifconfig wlan0 $ ifconfig -a ``` -------------------------------- ### Install Build Tools Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/CameraDevelopment/CoECameraDevelopment/SIPL-for-L4T/SIPL-App-Development-Guide.html Commands to install essential build-essential and cmake packages on the Jetson device. ```bash ubuntu@jetson:~$ sudo apt-get update && sudo apt-get install build-essential ubuntu@jetson:~$ sudo apt-get install cmake ``` -------------------------------- ### Prepare BSP and Root Filesystem Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/SoftwarePackagesAndTheUpdateMechanism.html Unpack the Jetson Linux release, apply the sample root filesystem, and install binaries. ```bash $ tar xpf Jetson_Linux__aarch64.tbz2 $ cd Linux_for_Tegra/rootfs/ $ sudo tar xpf ../../Tegra_Linux_Sample-Root-Filesystem__aarch64.tbz2 $ cd .. $ sudo ./apply_binaries.sh ``` -------------------------------- ### Install the DTBs Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Kernel/KernelCustomization.html Copy the generated DTB files to the kernel directory of the Linux for Tegra installation. ```bash $ cp kernel-devicetree/generic-dts/dtbs/* /Linux_for_Tegra/kernel/dtb/ ``` -------------------------------- ### Build and Install jetson-inference Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/TestPlanValidation.html Commands to clone, build, and install the jetson-inference repository for deep learning tasks. ```bash $ sudo apt-get update $ sudo apt-get install git cmake libpython3-dev python3-numpy $ git clone --recursive https://github.com/dusty-nv/jetson-inference $ cd jetson-inference $ mkdir build $ cd build $ cmake ../ $ make $ sudo make install $ sudo ldconfig ``` ```bash $ cd $HOME $ sudo apt-get update $ sudo apt-get install git cmake libpython3-dev python3-numpy $ git clone --recursive https://github.com/dusty-nv/jetson-inference $ cd jetson-inference $ mkdir build $ cd build $ cmake ../ $ make $ sudo make install $ sudo ldconfig ``` -------------------------------- ### Export DISPLAY and Start X Server Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Graphics/SampleApplications.html Commands to configure the display environment and initialize the X server for X11 applications. ```bash $ export DISPLAY=:0 $ xinit & ``` -------------------------------- ### Prepare Device for Weston Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/WindowingSystems/WestonWayland.html Stop the X server and set up the XDG runtime directory before launching Weston. ```bash $ sudo service gdm stop; sudo pkill -9 Xorg $ unset DISPLAY $ mkdir /tmp/xdg $ chmod 700 /tmp/xdg ``` -------------------------------- ### Install Kernel Build Utilities Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Kernel/KernelCustomization.html Command to install essential packages required for compiling the Linux kernel. ```bash $ sudo apt install build-essential bc flex bison libssl-dev zstd ``` -------------------------------- ### Install Grub Debian Package Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Bootloader/UEFI.html Update package lists and install the EFI-compatible Grub package for ARM64. ```bash $ sudo apt-get update $ sudo apt-get install grub-efi-arm64-bin ``` -------------------------------- ### Run fTPM Provisioning Script Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Security/FirmwareTPM.html Execute the provisioning script to store EK certificates and set authorization. ```bash cd ftpm_prov sudo ./ftpm_device_provision.sh -r ek_cert_rsa.der -e ek_cert_ec.der -p owner ``` -------------------------------- ### Device Tree Path Example Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Communications/AudioSetupAndDevelopment.html Path to the device tree source file for Jetson AGX Orin. ```text hardware/nvidia/t23x/nv-public/tegra234-p3701.dtsi ``` -------------------------------- ### Install GStreamer-1.0 Packages Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Multimedia/AcceleratedGstreamer.html Installs the core GStreamer tools, plugins, and development headers required for multimedia processing. ```bash $ sudo apt-get update $ sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa \ gstreamer1.0-plugins-base gstreamer1.0-plugins-good \ gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \ gstreamer1.0-libav $ sudo apt-get install libgstreamer1.0-dev \ libgstreamer-plugins-base1.0-dev \ libgstreamer-plugins-good1.0-dev \ libgstreamer-plugins-bad1.0-dev ``` -------------------------------- ### Compile and Run Backend Sample Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/TestPlanValidation.html Compiles and executes the backend sample application for TensorRT-accelerated video processing. ```bash $ cd /usr/src/jetson_multimedia_api/samples/backend $ sudo make ``` ```bash $ sudo ./backend 1 ../../data/Video/sample_outdoor_car_1080p_10fps.h264 H264 \ --trt-deployfile ../../data/Model/GoogleNet_one_class/GoogleNet_modified_oneClass_halfHD.prototxt \ --trt-modelfile ../../data/Model/GoogleNet_one_class/GoogleNet_modified_oneClass_halfHD.caffemodel \ --trt-mode 0 --trt-proc-interval 1 -fps 10 ``` -------------------------------- ### Install RT Kernel packages Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Kernel/RealTimeKernel.html Install the required RT kernel packages for specific Jetson hardware platforms. ```bash $ sudo apt install nvidia-l4t-rt-kernel nvidia-l4t-rt-kernel-headers nvidia-l4t-rt-kernel-oot-modules nvidia-l4t-display-rt-kernel nvidia-l4t-rt-kernel-openrm ``` ```bash $ sudo apt install nvidia-l4t-rt-kernel nvidia-l4t-rt-kernel-headers nvidia-l4t-rt-kernel-oot-modules nvidia-l4t-display-rt-kernel nvidia-l4t-rt-kernel-nvgpu ``` -------------------------------- ### Install PulseAudio Bluetooth Module Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Communications/EnablingBluetoothAudio.html Update package repositories and install the necessary PulseAudio Bluetooth support package. ```bash $ sudo apt-get update $ sudo apt-get install pulseaudio-module-bluetooth ``` -------------------------------- ### Start X Server Manually Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/WindowingSystems/XWindowSystem.html Starts the X server in the background with specific access control and reset parameters. ```bash $ sudo -b X -ac -noreset -nolisten tcp ``` -------------------------------- ### Launch Weston Client Applications Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/WindowingSystems/WestonWayland.html Start multiple client applications to test mixed-mode compositing. ```bash $ sudo XDG_RUNTIME_DIR=/tmp/xdg weston-simple-egl & $ sudo XDG_RUNTIME_DIR=/tmp/xdg weston-simple-dmabuf-egldevice & $ sudo XDG_RUNTIME_DIR=/tmp/xdg weston-simple-dmabuf-egldevice & $ sudo XDG_RUNTIME_DIR=/tmp/xdg weston-simple-dmabuf-egldevice & ``` -------------------------------- ### Fan Governor Profile Example Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/PlatformPowerAndPerformance/JetsonThor.html Example profile configuration enabling TMARGIN and open-loop control for the fan governor. ```text TMARGIN ENABLED FAN_PROFILE cool { #TEMP HYST PWM RPM 0 0 255 5371 15 0 255 5371 24 0 192 4170 29 0 140 2900 35 0 102 2300 45 0 77 1750 115 0 77 1750 } ``` -------------------------------- ### Configure Display Environment Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/HardwareAccelerationInTheWebrtcFramework.html Initialize the X server and set the display environment variable for the application. ```bash $ xinit & $ export DISPLAY=:0 ``` -------------------------------- ### Run Video Loopback Application Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/HardwareAccelerationInTheWebrtcFramework.html Executes the video loopback sample with specified codec, resolution, and capture device index. ```bash $ ./video_loopback --codec H264 --width 1280 --height 720 --capture_device_index 0 ``` -------------------------------- ### Skip Frames Option Example Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/CameraDevelopment/ArgusNvrawTool.html Example usage of the skipframes option to define the number of frames to skip before saving. ```bash --skipframes 40 ``` -------------------------------- ### Execute Initrd Flash Script Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/FlashingSupportJetsonThor.html Use this syntax to initiate the flashing process for a specific board and root device configuration. ```bash $ sudo ./l4t_initrd_flash.sh [] ``` -------------------------------- ### Example UPHY Lane DTS Configuration Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Bootloader/UphyLaneConfig.html A concrete example of a UPHY lane configuration file for HSIO instances. ```DTS /dts-v1/; / { uphy-lane { hsio { lane-owner-map = <10 2>, <11 1>; }; }; }; ``` -------------------------------- ### Initiate Rootfs Cloning Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/FlashingSupport.html Run the initrd flash script with the --initrd flag on the host to prepare for cloning. ```bash $ cd Linux_for_Tegra $ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --initrd ``` -------------------------------- ### Install ffmpeg binary package Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Multimedia/AcceleratedDecodeWithFfmpg.html Use these commands to update the package list and install the ffmpeg binary on Jetson Linux. ```bash $ sudo apt update $ sudo apt install -y ffmpeg ``` -------------------------------- ### nvgstipctestapp Execution Commands Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Multimedia/AcceleratedGstreamer.html Example commands for running the nvgstipctestapp sample application in server and client modes. ```bash $ export DISPLAY=:0 $ nvgstipctestapp server rtsp://127.0.0.1/video1 /tmp/test1 ``` ```bash $ export DISPLAY=:0 $ nvgstipctestapp client /tmp/test1 ``` -------------------------------- ### Start Peer Connection Clients Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/HardwareAccelerationInTheWebrtcFramework.html Connects two client instances to the server, with the second instance automatically initiating a call. ```bash $ ./peerconnection_client --autoconnect --server $ ./peerconnection_client --server --autoconnect --autocall ``` -------------------------------- ### BootROM Reset Configuration DTS Example Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Bootloader/BootROMResetPMICConfig.html Example configuration for reset paths and AO blocks using DTS syntax. ```dts /dts-v1/; / { reset { // Each reset path can point to up to three Ao blocks // This is a map of reset paths to Ao blocks // - = // index-number must be 0, 1, or 2 // aoblock-id is the ID of the one of the blocks mentioned above sensor-aotag-1 = <&aoblock0>; sc7-1 = <&aoblock2>; aoblock0: aoblock@0 { command-retries-count = <1>; delay-between-commands-us = <1>; wait-before-start-bus-clear-us = <1>; block@0 { i2c-controller; slave-add = <0x3c>; // 7BIt:0x3c reg-data-size = <8>; reg-add-size = <8>; commands { command@0 { reg-addr = <0x42>; value = <0xda>; }; command@1 { reg-addr = <0x41>; value = <0xf8>; }; }; }; }; // Shutdown: Set MAX77620 // Register ONOFFCNFG2, bit SFT_RST_WK = <0> // Register ONOFFCNFG1, bit SFT_RST = <1> aoblock1: aoblock@1 { // Shutdown: Set MAX77620 // Register ONOFFCNFG2, bit SFT_RST_WK = <0> // Register ONOFFCNFG1, bit SFT_RST = <1> command-retries-count = <1>; delay-between-commands-us = <1>; wait-before-start-bus-clear-us = <1>; block@0 { i2c-controller; slave-add = <0x3c>; // 7BIt:0x3c reg-data-size = <8>; reg-add-size = <8>; commands { command@0 { reg-addr = <0x42>; value = <0x5a>; } ; command@1 { reg-addr = <0x41>; value = <0xf8>; }; }; }; }; // SC7 exit // Clear PMC_IMPL_DPD_ENABLE_0[ON]=0 during SC7 exit aoblock2: aoblock@2 { command-retries-count = <1>; delay-between-commands-us = <256>; wait-before-start-bus-clear-us = <1>; block@0 { mmio; commands { command@0 { reg-addr = <0x0c360010>; value = <0x0>; }; }; }; ``` -------------------------------- ### Build Cryptsetup Source: https://docs.nvidia.com/jetson/archives/r38.2.1/DeveloperGuide/SD/Security/DiskEncryption.html Configure and compile the cryptsetup package. ```bash $ ./autogen.sh && ./configure && make ```