Skip to content

Repository files navigation

ARK Jetson Carrier Setup

Scripts for building and flashing a Jetson Orin Nano or Orin NX on an ARK Jetson Carrier.

Component Version
JetPack 6.2.2
L4T (BSP) R36.5.0
Kernel Linux 5.15
Host OS Ubuntu 22.04

Building on a non-22.04 host? setup.sh and build.sh auto-containerize themselves in a 22.04 docker image (docker is auto-installed via apt if missing). See docs/build_host.md for why we pin to 22.04.

Products

Target Carrier Board Docs
PAB ARK Jetson PAB Carrier docs
JAJ ARK Just a Jetson Carrier docs
PAB_V3 ARK Jetson PAB V3 Carrier docs

Note: PAB Rev3 is a hardware revision of the PAB and uses PAB. PAB_V3 is a separate product.

Flash a Prebuilt Image

Just want the stock image? Each release ships a ready-to-flash package per carrier — the same image bundles ship with. On a Debian/Ubuntu host, with the Jetson connected over USB and booted into recovery (hold the Force Recovery button while powering on):

curl -LO https://raw.githubusercontent.com/ARK-Electronics/ark_jetson_kernel/main/packaging/flash_from_package.sh
chmod +x flash_from_package.sh
./flash_from_package.sh pab        # or jaj / pab-v3, or a specific tag like pab-6.2.2.4

No build tools or kernel source needed. Flashes the QSPI bootloader and the rootfs to NVMe; one package covers every Orin Nano/NX module variant. See packaging/README.md for details.

To customize the image instead, build from source:

Build & Flash

1. Setup

Download the BSP, root filesystem, and kernel source tarballs (one time):

./setup.sh

2. Build

./build.sh PAB
  • Targets are PAB, JAJ, PAB_V3, or all.
  • By default a build re-stages staging/{TARGET}/ from scratch and provisions the image — it preinstalls ARK-OS and tooling. To bake in your own packages, edit provision.sh.
  • --fast reuses the existing staged tree and just recompiles the kernel/device tree, for quick iteration after a full build.
  • --no-provision builds a bare image (no ARK-OS). --clean and --provision are still accepted but are the default now.

3. Add WiFi (optional)

Bake a WiFi profile into the image before flashing:

./scripts/add_wifi_network.sh PAB YourNetworkName YourPassword

Or add it later over the USB connection:

ssh jetson@jetson.local
sudo nmcli dev wifi connect YourNetworkName password YourPassword

4. Flash

Connect to the USB port, then power on with the Force Recovery button held.

./flash.sh PAB

By default flash.sh targets NVMe. Other storage layouts:

./flash.sh PAB --sdcard     # SD card (NVIDIA dev kit modules)
./flash.sh PAB --usb        # USB thumb drive

When flashing completes, SSH in over Micro USB or WiFi:

ssh jetson@jetson.local

Tip: Run ssh-copy-id jetson@jetson.local once so you don't type the password on every connection.

Tip: Run ./scripts/add_ssh_config.sh once to add a jetson host to your ~/.ssh/config. Then ssh jetson works, and reflashing won't trip the "REMOTE HOST IDENTIFICATION HAS CHANGED" warning.

Cameras

Every carrier ships with an IMX219 overlay already selected, so cameras work out of the box: the quad overlay on PAB, the dual overlay on JAJ and PAB_V3. To use a different camera, select an overlay with NVIDIA's jetson-io tool. List what's available:

sudo /opt/nvidia/jetson-io/config-by-hardware.py -l
 Header 1 [default]: Jetson 40pin Header
   ...
 Header 2: Jetson 22pin CSI Connector
   Available hardware modules:
   1. Camera IMX219 Quad
   2. Camera IMX477 Quad
   3. Camera IMX708 Quad

Apply one and reboot:

sudo /opt/nvidia/jetson-io/config-by-hardware.py -n 2="Camera IMX477 Quad"
sudo reboot

See docs/cameras.md for supported sensors and how to verify and stream a camera, and docs/camera_overlays.md to build, install, or write a custom camera overlay.

More documentation

About

Kernel source build instructions and scripts for the ARK Jetson Carrier

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages