Production OS and image tooling for GeniePod Home.
This repository turns an NVIDIA L4T / JetPack root filesystem into a
GeniePod Home V1 image with the hardware integration hooks needed by the
custom genie-hardware carrier.
The current scaffold is intentionally host-side and reproducible:
- prepare an NVIDIA L4T BSP and sample rootfs
- apply the GeniePod rootfs overlay
- install optional product payloads such as
genie-core, models, ESP32 firmware, and ESP-Hosted kernel modules - disable desktop-oriented JetPack services
- generate an NVIDIA mass-flash package for NVMe
Defaults are pulled from the local OrinClaw / GeniePod design notes:
| Item | Default |
|---|---|
| Product | GeniePod Home V1 |
| Compute | Jetson Orin Nano 8GB |
| Base OS | JetPack 6.2.1+b38 / L4T R36.4.7 |
| Boot media | NVMe, nvme0n1p1 |
| Carrier status | Custom carrier support pending pinmux / DTB export from genie-hardware |
Until the genie-hardware pinmux workbook and generated device-tree
artifacts are available, the build target defaults to
jetson-orin-nano-devkit. That is useful for devkit validation, but it is not
the final custom carrier BSP.
Set the NVIDIA BSP and sample rootfs tarballs, then run the builder:
BSP_TARBALL=/path/to/Jetson_Linux_R36.4*_aarch64.tbz2 \
ROOTFS_TARBALL=/path/to/Tegra_Linux_Sample-Root-Filesystem_R36.4*_aarch64.tbz2 \
./scripts/build-jetpack-image.shTo stop after preparing the rootfs overlay, without generating a mass-flash package:
BSP_TARBALL=/path/to/Jetson_Linux_R36.4*_aarch64.tbz2 \
ROOTFS_TARBALL=/path/to/Tegra_Linux_Sample-Root-Filesystem_R36.4*_aarch64.tbz2 \
./scripts/build-jetpack-image.sh --skip-mfiTo flash a generated mass-flash package:
./scripts/flash-geniepod.sh /path/to/mfi_jetson-orin-nano-devkitThe builder copies these inputs when the paths exist:
| Variable | Destination in image |
|---|---|
GENIE_CORE_BIN_DIR |
/opt/genie/bin/ |
GENIE_MODELS_DIR |
/data/models/ |
GENIE_CONFIG_DIR |
/etc/genie/ |
GENIE_FIRMWARE_DIR |
/opt/genie/firmware/ |
GENIE_ESP_HOSTED_DIR |
/opt/genie/esp-hosted/ |
GENIE_CARRIER_DTB_DIR |
Linux_for_Tegra/kernel/dtb/ |
GENIE_PINMUX_DIR |
Linux_for_Tegra/bootloader/ |
The hardware GPIO values in rootfs-overlay/etc/genie-os/hardware.env are
placeholders by design. Populate them from the genie-hardware NVIDIA pinmux
workbook before enabling first-boot ESP32 provisioning or strict factory
health checks.
See docs/genie-hardware-jetpack-image.md for the local design inputs and the remaining blockers for a true custom carrier image.