Skip to content

Features

The vision for the Ghaf platform is to create a virtualized, scalable reference platform that enables the building of secure products leveraging trusted, reusable, and portable software for edge devices. For more information on reference implementation for several devices, see Reference Implementations.

Ghaf demo desktop and applications are illustrated in the screen capture below: Ghaf demo desktop and application

  • ✅—integrated and tested in the main branch. No known regression.
  • 🚧—prototyped or work in progress in the development branch.
  • ❌—the feature has known regression or bugs.
  • Orin—NVIDIA Jetson AGX Orin as the main reference device.
  • x86—generic x86_64; tested on Intel NUC (Next Unit of Computing) or laptop.
  • Lenovo X1—Lenovo X1 Carbon Gen 11 laptop.
  • aarch64—generic AArch64; tested on an ARM server, laptop (e.g. Apple MacBook’s), or NVIDIA Jetson AGX Orin.
  • All variants—supported devices from Architectural Variants.

The following tables show the status of the Ghaf Platform features:

Release Builds and Hardware Architecture Support

Section titled “Release Builds and Hardware Architecture Support”
Feature Status Reference Device Details
Ghaf in virtual machine x86 nix run .#packages.x86_64-linux.vm-debug
aarch64 reference image Orin Based on Jetson Linux, OE4T and jetpack-nixos.
aarch64 reference image imx8mp Based on NXP BSP, implemented as nixos-hardware module
x86 generic image x86 Generic x86 computer, based on generic NixOS. NOTE: requires device specific configuration.
Lenovo X1 reference image Lenovo X1 x86_64 laptop computer, supports basic compartmentalized environment
Native build aarch64, x86 Remote aarc64 nixos builders recommended
Cross-compilation 🚧 aarch64 Depends on NixOS nixpkgs 23.05 support for cross-compilation
CI builds All Only main-branch, not for all PRs.
Emulated build aarch64 binfmt, may freeze the build machine. Not recommended. See instructions.
Feature Status Reference Device Details
Quick target update all nixos-rebuild --flake .#nvidia-jetson-orin-debug --target-host root@ghaf-host --fast switch
aarch64 device flashing Orin Full device software flashing using x86 machine
root filesystem flashing x86, imx8mp dd image to bootable media - see
Debug: SSH Orin, x86 Host access only in -debug-target, see authentication.nix
Debug: Serial all Host access only in -debug-target - e.g. screen /dev/ttyACM0 115200
Compartmentalized environment 🚧 Lenovo X1 Net VM, GUI VM (with GPU passthrough) plus some App VMs
Feature Status Reference Device Details
Minimal host 🚧 all See Minimal Host and PR #140.
Net VM Orin See Net VM. Passthrough with Wi-Fi works but requires SSID/password configuration.
IDS VM Orin, Lenovo X1 Defensive networking mechanism.
GUI VM 🚧 All, Lenovo X1 Implemented for Lenovo X1 reference device, other devices have Wayland compositor running on the host.
App VM 🚧 All, Lenovo X1 Implemented for Lenovo X1 reference device: Chromium, GALA and Zathura VMs. Requires GUI VM in place.
Admin VM All Not started
Inter VM comms - IP-based 🚧 All -debug-targets have network bridges to access VMs from host.
Inter VM comms - shared memory 🚧 All
Inter VM Wayland 🚧 All Currently it is waypipe over SSH, for test and demo purpose only.
SW update 🚧 All A/B update tooling being evaluated.
USB passthrough 🚧 Orin No reference implementation integrated yet.
PCI passthrough All Used for reference in Net VM on Orin.
UART passthrough 🚧 Orin See NVIDIA Jetson AGX Orin: UART Passthrough. Not integrated to any VM.
ARM platform bus devices passthrough 🚧 Orin NVIDIA BPMP virtualization being developed
Feature Status Reference Device Details
Wayland-compositor 🚧 Orin, x86 Implemented for Lenovo X1
Chromium 🚧 Orin, x86 Implemented for Lenovo X1
Element 🚧 Orin, x86 On host
Cloud Android (CVD) client application (GALA) 🚧 Orin, x86 Implemented for Lenovo X1
Virtualization control 🚧 All See vmd design.

See discussion for the outline of next steps

Outline of next phases