Welcome¶
This Developer Guide applies to NVIDIA® Jetson™ Linux version 34.1.1.
NVIDIA Jetson is the world’s leading platform for AI at the edge. Its high-performance, low-power computing for deep learning and computer vision makes it the ideal platform for compute-intensive projects. The Jetson platform includes a variety of Jetson modules together with NVIDIA JetPack™ SDK.
Each Jetson module is a computing system packaged as a plug-in unit (a System on Module (SOM)). NVIDIA offers a variety of Jetson modules with different capabilities.
JetPack bundles all of the Jetson platform software, starting with NVIDIA Jetson Linux. Jetson Linux provides the Linux kernel, bootloader, NVIDIA drivers, flashing utilities, sample file system, and more for the Jetson platform.
Jetson Developer Kits and Modules¶
Jetson developer kits include a non-production specification Jetson module attached to a reference carrier board. It is used with JetPack SDK to develop and test software for your project. Jetson developer kits are not intended for production use.
Jetson modules designed for deployment in a production environment are sold separately from Jetson developer kits. Each Jetson module ships with no software preinstalled; you attach it to a carrier board designed or procured for your end product, and flash it with the software image you’ve developed.
Software for Jetson Modules and Developer Kits¶
JetPack SDK is a comprehensive resource for building AI applications. It includes Jetson Linux together with accelerated software libraries, APIs, sample applications, developer tools, and documentation.
Use NVIDIA SDK Manager to install Jetson Linux and other JetPack components on your Jetson developer kit. For instructions, see the appropriate Jetson Developer Kit user guide. Alternatively, see the topic Quick Start to flash your Jetson module with the bootloader and file system only, excluding other JetPack components.
For information about moving a completed application from a Jetson developer kit to a production Jetson module on your production carrier board, see the appropriate topic “Jetson Module Adaptation and Bring-Up” topic for your Jetson module.
You can customize Jetson Linux software to fit the needs of your project. This developer guide contains the information you need to optimize your use of the complete Jetson product feature set.
Documentation for Jetson Modules and Developer Kits¶
This developer guide is your primary resource for information about software development for Jetson modules.
NVIDIA publishes many other documents that address specific aspects of Jetson software and hardware. Several important ones are listed in the topic Related Documentation.
Many of these documents and others are available through the Jetson Download Center. To find a document, enter any string of consecutive words from the document’s title in the Search box. Use the Product dropdown to restrict your search to documents for a specific Jetson device.
The NVIDIA Autonomous Machines Getting Started page contains links to several documents that are useful to developers who are new to artificial intelligence (AI) programming or to Jetson products. This page has links to “Getting Started” guides and user guides for each Jetson module’s developer kit.
Additional resources and important facts about Jetson Linux are on the Jetson Linux home page of the NVIDIA Developer web site.
Devices Supported by This Document¶
The NVIDIA Jetson Linux Developer Guide covers use of Jetson Linux with any of the module and reference carrier board combinations described in this table.
Type of module | Module name & P-number * | Compatible developer kit | ||
---|---|---|---|---|
NVIDIA® Jetson AGX Orin™ series |
Jetson AGX Orin™ (P3701-0000)
For Developer Kit only |
Jetson AGX Orin Developer Kit (P3730); includes 3701-0000 module | ||
NVIDIA® Jetson Xavier™ NX series |
Jetson Xavier NX (P3668-0000)
For developer kit only |
Jetson Xavier NX Developer Kit (P3518-0000); includes P3668-0000 module | ||
Jetson Xavier NX (P3668-0001)
Commercial module |
||||
Jetson Xavier NX 16GB (P3668-0003)
Commercial module |
||||
NVIDIA® Jetson AGX Xavier™ series |
Jetson AGX Xavier (P2888-0001)
Original module with 16 GB RAM |
Jetson AGX Xavier Developer Kit (P2972-0000); includes P2888-0001 module | ||
Jetson AGX Xavier (P2888-0004)
Original module with 32 GB RAM |
||||
Jetson AGX Xavier 64GB (P2888-0005)
With 64 GB RAM |
||||
Jetson AGX Xavier Industrial (P2888-0008)
Industrial grade module with 32 GB RAM |
||||
|
For more information about the various Jetson modules and developer kits, see the Jetson Developer Site and the Jetson FAQ.
How Developer Guide Topics Identify Devices¶
If a Developer Guide topic does not concern all supported Jetson devices, its heading or subheading specifies its scope. Here are two examples of scope headings:
Jetson Xavier AGX Series Software Features
Power Management for Jetson AGX Orin Devices
Some examples of subheadings:
Applies to: Jetson AGX Orin only
Applies to: Jetson Xavier NX series and Jetson AGX Xavier series only
“Jetson Xavier NX series” refers to all variants of Jetson Xavier NX. “Jetson Xavier NX” or “original Jetson Xavier NX” refers to the original Jetson Xavier NX (P3668-0000 or P3668-0001) only.
“Jetson AGX Xavier series” refers to all variants of Jetson AGX Xavier. “Jetson AGX Xavier” or “original Jetson AGX Xavier” refers to original Jetson AGX Xavier (P2888-0001) only.
Note
The word “original” is purely descriptive, and is used only to clarify the products being referenced. It is not a part of any Jetson product’s name.
- Jetson Software Architecture
- Boot Architecture
- Jetson AGX Orin Boot Flow
- Jetson Xavier NX and Jetson AGX Xavier Boot Flow
- Partition Configuration
- MB1 Platform Configuration
- About MB1 BCT
- Pinmux/GPIO Configuration
- Example
- Common Prod Configuration
- Controller Prod Configuration
- Pad Voltage Configuration
- PMIC Configuration
- Security Configuration
- GPIO Interrupt Mapping Configuration
- Storage Device Configuration
- UPHY Lane Configuration
- OEM-FW Ratchet Configuration
- BootROM Reset PMIC Configuration
- Miscellaneous Configurations
- About MB1 BCT
- Jetson AGX Orin
- Jetson Xavier NX Series
- Jetson AGX Xavier Series
- Flashing Support
- Before You Begin
- Basic Flashing Script Usage
- Basic Flashing Procedures
- Flashing Script Usage
- Flashing to a USB Drive
- Flashing to an NVMe Drive
- Flashing to an SD Card
- Flashing to an External Storage Device
- Flashing a Specific Partition
- Flashing for NFS as Root
- Flashing with initrd
- Flashing to Multiple Jetson Devices
- Enlarging an Internal Memory Partition for Root File System
- Determining the Success of a Driver Update
- Reconfiguring a Jetson Device with oem-config
- Modifying Jetson RAM Disk
- Root File System
- Bootloader
- T23x Boot Configuration Table
- UEFI Adaptation
- Switching Between A/B Boot Chains - Developer Preview
- Update and Redundancy
- Kernel
- Kernel Adaptation
- Kernel Customization
- Generic Timestamp Engine
- Boot Time Optimization
- Display Configuration and Bring-Up
- For Jetson AGX Orin : Enabling HDMI on Custom Carrier Boards
- Setting HDMI or DP Screen Resolution
- Mirroring or Extending Displays
- Hard-coding Kernel Display Boot Mode for HDMI
- nvimp_util: A Tool for Calculating Memory Bandwidth for a Particular Display Configuration (IMP)
- Seamless Display on DP (over USB-C)
- Multimedia
- Multimedia APIs
- GStreamer API
- GStreamer-Based Camera Capture
- Accelerated Decode with ffmpeg
- Accelerated GStreamer
- GStreamer-1.0 Installation and Setup
- Decode Examples
- Encode Examples
- Camera Capture with GStreamer-1.0
- Video Playback with GStreamer-1.0
- Video Streaming with GStreamer-1.0
- Video Format Conversion with GStreamer-1.0
- Video Scaling with GStreamer-1.0
- Video Cropping with GStreamer-1.0
- Video Transcode with GStreamer-1.0
- CUDA Video Post-Processing with GStreamer-1.0
- Video Rotation with GStreamer-1.0
- Video Composition with GStreamer-1.0
- Interpolation Methods for Video Scaling
- EGLStream Producer Example
- EGL Image Transform Example
- GStreamer Build Instructions
- nvgstcapture-1.0 Reference
- nvgstplayer-1.0 Reference
- Video Encoder Features
- Supported Cameras
- Hardware Acceleration in the WebRTC Framework
- Graphics Programming
- Binary Shader Program Management
- GLSLC Shader Program Compiler
- EGLDevice
- EGLStream
- OpenGL ES Programming Tips
- Sample Applications
- Windowing Systems
- Weston (Wayland)
- Weston/Wayland Architecture
- Shells
- Configuration
- Environment Variables
- Running Weston
- Multiple Display Heads
- Example of weston.ini Display Options
- Hot-Plugging
- Compositing Mode in Weston
- NV16/NV24 in Weston
- Shared-Memory Rendering
- DMA Buffer Rendering
- Weston dma-buf Support
- weston-debug
- GNOME Wayland Desktop Shell Support
- X Window System
- Starting X Server Manually
- Runtime Configuration
- Using xrandr for Runtime Configuration
- Querying Supported Displays and Screen Resolutions
- Obtaining Additional Help
- Modifying the Static Configuration (Optional)
- Using nvidia-xconfig to Configure xorg.conf
- Configurations that Require Editing xorg.conf
- Weston (Wayland)
- Camera Development
- Camera Software Development Solution
- Sensor Software Driver Programming
- Camera Core Library Interface
- Direct V4L2 Interface
- Camera Modules and the Device Tree
- Individual Imaging Devices
- V4L2 Kernel Driver (Version 1.0)
- Macro Definitions
- Sensor-Private Data
- Configuring Regmap
- Configuring Controls
- To link the controls to their control handlers
- Setting Up Control Registers
- Power Functions
- Setting Up the V4L2 Subdevice and Camera Common
- Control Handlers
- Device Tree Parser
- Media Controller Setup
- Sensor Driver Probing
- Setup of Media Controller
- Removing Sensor Drivers
- V4L2 Kernel Driver (Version 2.0)
- Macro Definitions
- Sensor-Private Data
- Register map (regmap)
- Sensor Controls
- Exposure Controls
- Fixed Point Format
- Control Handlers
- Setter Control Handlers (for Writing Settings)
- Fill-String Control Handlers (for Reading Settings)
- How Controls Are Implemented
- Registering the Controls
- How to provide the link to the control handlers
- Setting Up Registers for the Control Handler
- Read-Write Wrapper in the Register
- Power Functions
- Stream Functions
- Miscellaneous Functions
- Control Operations
- Boot-Time Initialization
- Loadable Kernel Module (LKM)
- Kernel Configuration
- Device Registration
- Verifying the V4L2 Sensor Driver
- Debugging Tips
- To verify that driver name matches the name in the Device Tree
- To verify that all device names match the device tree
- To verify that the Device tree values match the hardware
- To verify that functions run to completion
- To verify that default values are correctly linked
- To verify that control register values are correct
- To verify that mode-specific settings are correct
- To verify that I2C accesses are working properly
- Configuring the Sensor Driver as a Loadable Kernel Module (LKM)
- Mode Tables
- Camera Sensor Drivers Porting
- Jetson Virtual Channel with GMSL Camera Framework
- Argus NvRaw Tool
- Camera Driver Porting
- Security
- Secure Boot
- OP-TEE: Open Portable Trusted Execution Environment
- Disk Encryption
- Communications
- Jetson AGX Xavier PCIe Endpoint Mode
- Enabling Bluetooth Audio
- Audio Setup and Development
- Clocks
- Platform Power and Performance
- Jetson Orin NX Series and Jetson AGX Orin Series
- Interacting Features
- Kernel Space Power Saving Features
- Clock and Voltage Management
- CPU Power Management
- Memory Power Management
- Supported Modes and Power Efficiency
- Fan Profile Control
- Thermal Management
- Thermal Management in Linux
- Thermal Management in BPMP
- Thermal Specifications
- Software-Based Power Consumption Modeling
- Related Tools and Techniques
- Jetson Xavier NX Series and Jetson AGX Xavier Series
- Interacting Features
- Kernel Space Power Saving Features
- Clock and Voltage Management
- CPU Power Management
- Memory Power Management
- Supported Modes and Power Efficiency
- Fan Profile Control
- Thermal Management
- Thermal Management in Linux
- Thermal Management in BPMP
- Thermal Specifications
- Software-Based Power Consumption Modeling
- Related Tools and Techniques
- Jetson Orin NX Series and Jetson AGX Orin Series
- Software Packages and the Update Mechanism
- Installing Additional Packages
- Repackaging Debian Packages
- Building Kernel Debian Packages Yourself
- Working with the Packages
- Over-the-Air Update
- Updating Jetson Linux with Image-Based Over-the-Air Update
- Jetson Developer Kit Setup
- Jetson EEPROM Layout
- Jetson Module Adaptation and Bring-Up
- Jetson Xavier NX Series
- Jetson AGX Xavier Series
- Checklists
- Hardware Reference Documentation
- Configuring the Jetson Expansion Headers
- Controller Area Network (CAN)