NVIDIA Jetson设备NixOS模块使用教程

NVIDIA Jetson设备NixOS模块使用教程

项目介绍

jetpack-nixos 是一个为NVIDIA Jetson设备提供的NixOS模块。该项目的主要目的是将NVIDIA的Jetpack SDK组件打包,以便在NixOS上使用。支持的组件包括平台固件刷写脚本、NVIDIA提供的5.10 Linux内核(包含一些开源驱动如nvgpu)、基于EDK2的UEFI固件、ARM Trusted Firmware / OP-TEE等。此外,还提供了用于GPU计算(如CUDA、CuDNN、TensorRT)、多媒体(如硬件加速编码/解码)、图形(如Wayland、GBM、EGL、Vulkan)以及电源/风扇控制(如nvpmodel、nvfancontrol)的额外包。

该项目基于Jetpack 5版本,仅支持Jetpack 5.1及以上版本支持的设备,包括Jetson Orin AGX、Jetson Orin NX、Jetson Xavier AGX和Jetson Xavier NX。Jetson Nano、TX2和TX1设备不支持,因为上游在Jetpack 5中已停止对它们的支持。

项目快速启动

1. 刷写UEFI固件

如果你的设备已经具有包含UEFI的最新固件(Jetpack 5之后),则此步骤可能是可选的。如果不确定,建议刷写固件。

  1. 将Jetson设备连接到电源,按下“电源”按钮,确保电源灯亮起。
  2. 进入恢复模式:按住“恢复”按钮,同时按下“重置”按钮。
  3. 通过USB连接设备,并验证设备是否处于恢复模式:
    lsusb | grep -i NVIDIA
    
    输出应类似于:
    Bus 003 Device 013: ID 0955:7023 NVIDIA Corp. APX
    
  4. 在x86_64机器上,构建并运行刷写脚本(以root身份):
    nix build github:anduril/jetpack-nixos#flash-xavier-agx-devkit
    sudo /result/bin/flash-xavier-agx-devkit
    

2. 构建并写入自定义安装ISO

  1. 构建自定义安装ISO:
    nix build github:anduril/jetpack-nixos#iso_minimal
    
  2. 将ISO写入USB驱动器:
    sudo dd if=/result/iso/nixos-22.11pre-git-aarch64-linux.iso of=/dev/sdX bs=1M oflag=sync status=progress
    
    替换/dev/sdX为USB驱动器的正确路径。

3. 安装NixOS

  1. 将USB驱动器插入Jetson设备。
  2. 按下电源/重置按钮,进入UEFI固件菜单(按ESC键)。
  3. 在“Boot Manager”中选择正确的USB设备并启动。
  4. 按照NixOS手册中的UEFI设备安装说明进行安装。
  5. 在配置中包含以下内容:
    imports = [
      (builtins.fetchTarball "https://github.com/anduril/jetpack-nixos/archive/master.tar.gz" + "/modules/default.nix")
    ];
    hardware.nvidia-jetpack.enable = true;
    hardware.nvidia-jetpack.som = "xavier-agx"; # 其他选项包括orin-agx, xavier-nx, xavier-nx-emmc
    hardware.nvidia-jetpack.carrierBoard = "devkit";
    

应用案例和最佳实践

1. 图形输出配置

  • Linux控制台:在Orin AGX/NX/Nano上,Linux控制台在HDMI/DisplayPort上可能无法工作。在Xavier AGX和Xavier NX上,可以通过添加内核参数来配置控制台输出。
  • X11:设置hardware.nvidia-jetpack.modesetting.enable = false,LightDM+i3和LightDM+Gnome已测试通过。
  • Wayland:设置hardware.nvidia-jetpack.modesetting.enable = true,Weston和sway在Orin设备上已测试通过。

2. 固件更新

Jetpack 5.1及以上版本支持从设备更新固件。可以通过设置hardware.nvidia-jetpack.bootloader.autoUpdate = true来自动更新固件。

典型生态项目

  • CUDA:用于GPU计算的并行计算平台。
  • TensorRT:用于高性能深度学习推理的SDK。
  • Wayland:现代的显示服务器协议。
  • GStreamer:用于多媒体处理的流媒体框架。

通过jetpack-nixos模块,这些生态项目可以方便地在NVIDIA Jetson设备上进行配置和使用,极大地简化了开发和部署流程。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值