跳到主要内容

Jetson Orin 使用说明

这个模块外形基于 Jetson Orin 设计, 用户可以直接组装于 Jetson Orin Nano/NX 开发套件上。

硬件连接

连接 Jetson Orin 开发套件

电源接线

CFG 配置

  • 如图所示,将解串板的 CSI0 接口用配送的排线连接到 Jetson Orin 主板的 CAM1 接口

    CSI 接口兼容性

    NVIDIA Jetson® Orin™ Nano 套件的 CAM0 和 CAM1 接口的 CSI 定义顺序不同,目前解串板只能接入 CAM1 接口(官方底板)。具体请查看相关 Pin 定义以及 Jetson® Orin™ 套件原理图中的 CAM0/1 接口定义顺序。

    FPC 线缆长度限制

    22Pin FPC 排线无精确的阻抗控制,当使用高分辨率相机时 CSI 速率较高,建议采用较短的 FPC 线缆:

    • 双路 8M 相机同时接入:实测仅支持 5cm 长度的线材
    • 单路接入:可使用 10cm 或 15cm 的线材
  • 将电源线分别接入到解串板的电源接口和 Jetson Orin 主板 40PIN 中的 5V、GND 排针上。为了确保解串板获取足够电源,请将两个 5V 引脚都接上,也可以接入外部供电。

  • 将 GMSL 相机使用同轴线接入解码板的相机接口。

  • 将 CFG 开关按照图示,拨到 0100 状态(默认为 ISX031 相机配置)

    • 开关配置的默认上电后的 I2C 地址和 CFG 配置, 在上电后的SerDes软件配置指令中会覆盖这个设置,因此无需特别操作开关。

软件配置

新版本镜像

  • 新版本驱动支持最新的 R36.5.0 版本镜像,目前仅支持 Jetson Orin Nano. (Orin NX 待更新)

  • 用指令查看当前的系统版本,确保版本是支持的。

    cat /etc/nv_tegra_release
  • 上电主板后,打开 Terminal 终端,下载驱动并解压出驱动包

    wget https://files.waveshare.com/wiki/MAX9296-GMSL-Deser-Module/MAX9296-GMSL-DESER-MODULE.zip
    unzip MAX9296-GMSL-DESER-MODULE.zip
  • cd 指令进入驱动包目录,将驱动文件拷贝到对应路径。

    cd MAX9296-GMSL-DESER-MODULE
    sudo cp dtbo/*.dtbo /boot/
    sudo cp ko/*.ko /usr/lib/modules/5.15.185-tegra/updates/drivers/media/i2c/
    sudo depmod
  • 用 Jetson-IO 工具配置驱动

    sudo /opt/nvidia/jetson-io/jetson-io.py
  • 根据接入的相机选择对应的摄像头驱动

    Jetson Expansion Header Tool
    └── Configure Jetson 22pin CSI Connector
    └── Configure for compatible hardware
    ├── GMSL-1MP-Camera-A
    ├── GMSL-2MP-Camera-A
    ├── ISX031C-GMSL-Camera-A
    └── ISX031C-GMSL-Camera-B
  • 保存配置并重启系统

老版本镜像

  • Jetson Orin 主板需要烧录相应支持的 Jetson 系统,目前驱动仅支持 R35.4.1 版本

    • 可以用指令查看当前的系统版本

      cat /etc/nv_tegra_release

      查看系统版本

  • 上电主板后,打开 Terminal 终端,下载驱动并解压出驱动包

    wget https://files.waveshare.com/wiki/MAX9296-GMSL-Camera-Board/MAX9296-GMSL-Camera-Board-Driver.zip
    unzip MAX9296-GMSL-Camera-Board-Driver.zip
  • cd 指令进入驱动包目录,并查看文件。

    • 根据使用的相机型号进入对应目录,这里我们以 ISX031 为例

      cd MAX9296-GMSL-Camera-Board-Driver
      ls
      cd ONXA_SY.ISX031Fx2_L4TR35.4.1
      cd kernel
  • 在内核文件中,dtb 文件夹包含了支持多个主板型号的设备树文件,这里我们需要用到符合当前主板型号的设备树文件

    • 可以先用先用 sudo dmesg | grep kernel 指令查看当前主板使用的设备树

    • 比如,这里查询到的设备树文件是 tegra234-p3767-0004-p3768-0000-a0

      查看设备树文件

  • 将驱动中相同型号的 dtb 文件和 Image 文件复制到主板的 /boot 目录下

    sudo cp dtb/tegra234-p3767-0004-p3768-0000-a0.dtb /boot
    sudo cp Image /boot
  • 复制好文件后,修改 extlinux.conf 中启动的设备树文件

    • 复制并添加多一个启动标签,将其中 FDT 的文件路径改成复制进去的文件目录,并将默认的启动标签改为新添加的

      重要提醒

      修改启动配置文件时务必仔细检查,确认无误后再保存并重启系统。配置错误可能导致系统无法正常启动!

      sudo vi /boot/extlinux/extlinux.conf
    • vi 编辑器中,按 i 进入编辑模式,按 esc 退出编辑模式。退出编辑模式后,可以输入 :wq! 保存文件并退出。 修改 extilinux 文件

  • 保存好文件后,重启系统

快速测试

检查摄像头是否有被正常识别

sudo dmesg | grep connected

如果有返回相关 /dev/video2 is connected 信息,表示摄像头有被正常识别

安装 gtreamer

sudo apt install \
nvidia-l4t-gstreamer \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-base \
gstreamer1.0-tools

画面预览

  • 可以用以下指令对摄像头做预览测试。

    • 预览测试需要连接 HDMI 或者 DP 屏幕,请确保屏幕已经正常连接并显示。
    • 注意将 video 设备号改成上一个步骤检测提示的设备号。
    • 注意根据摄像头的支持分辨率修改指令测试
  • GMSL-1MP-Camera-A

    gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)960" ! fpsdisplaysink video-sink=xvimagesink sync=false

    gst-launch-1.0 v4l2src device=/dev/video1 ! "video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)960" ! fpsdisplaysink video-sink=xvimagesink sync=false
  • GMSL-2MP-Camera-A

    gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080" ! fpsdisplaysink video-sink=xvimagesink sync=false

    gst-launch-1.0 v4l2src device=/dev/video1 ! "video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080" ! fpsdisplaysink video-sink=xvimagesink sync=false
  • ISX031C-GMSL-Camera-A

    gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1536" ! fpsdisplaysink video-sink=xvimagesink sync=false

    gst-launch-1.0 v4l2src device=/dev/video1 ! "video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1536" ! fpsdisplaysink video-sink=xvimagesink sync=false
  • ISX031C-GMSL-Camera-B

    gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1536" ! fpsdisplaysink video-sink=xvimagesink sync=false

    gst-launch-1.0 v4l2src device=/dev/video1 ! "video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1536" ! fpsdisplaysink video-sink=xvimagesink sync=false