NVIDIA Jetson开发板使用记录——开发环境搭建

控制器开发板配置(Ubuntu 18.04 LTS(ARMv8架构,NVIDIA Tegra Xavier))

目录

安装教程

以下是适配的Python、CUDA、OpenCV、Qt的安装方案:

一、Python:选择3.6/3.8(系统兼容+生态完善)

Ubuntu 18.04 ARMv8默认支持Python 3.6,可升级到3.8(稳定性与兼容性平衡):

  1. 安装Python 3.8

    bash 复制代码
    sudo apt update
    sudo apt install -y python3.8 python3.8-dev python3.8-distutils
    # 设置Python3.8为默认(可选)
    sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
  2. 安装pip

    bash 复制代码
    curl https://bootstrap.pypa.io/get-pip.py | sudo python3.8

二、CUDA:通过JetPack安装(适配Tegra Xavier)

Tegra Xavier的CUDA需通过NVIDIA JetPack安装(Ubuntu 18.04对应的JetPack版本为4.6,内置CUDA 10.2):

  1. 准备JetPack
    NVIDIA SDK Manager下载并安装,选择对应JetPack 4.6版本,自动配置CUDA、驱动、cuDNN。

  2. 验证CUDA

    bash 复制代码
    nvcc --version  # 应输出CUDA 10.2版本
    nvidia-smi      # 显示GPU信息

三、OpenCV(带CUDA加速):源码编译适配Tegra

Ubuntu 18.04 ARM源的OpenCV版本低,需源码编译并启用CUDA:

  1. 安装依赖

    bash 复制代码
    sudo apt install -y build-essential cmake git libgtk2.0-dev pkg-config \
    libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev \
    libtiff-dev libv4l-dev libxvidcore-dev libx264-dev python3-dev \
    python3-numpy libtbb2 libtbb-dev libdc1394-22-dev
  2. 下载OpenCV源码(4.5.5,适配CUDA 10.2)

    bash 复制代码
    mkdir -p ~/opencv_build && cd ~/opencv_build
    git clone --depth 1 --branch 4.5.5 https://github.com/opencv/opencv.git
    git clone --depth 1 --branch 4.5.5 https://github.com/opencv/opencv_contrib.git
  3. 编译配置(启用CUDA)

    bash 复制代码
    cd opencv && mkdir build && cd build
    cmake -D CMAKE_BUILD_TYPE=Release \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \
    -D WITH_CUDA=ON \
    -D CUDA_ARCH_BIN="7.2" \  # Tegra Xavier的CUDA架构
    -D CUDA_ARCH_PTX="" \
    -D PYTHON3_EXECUTABLE=/usr/bin/python3.8 \
    -D BUILD_EXAMPLES=ON ..
  4. 编译安装

    bash 复制代码
    make -j4  # Tegra Xavier为4核,用-j4避免过载
    sudo make install
    sudo ldconfig
  5. 验证

    python 复制代码
    import cv2
    print(cv2.__version__)  # 输出4.5.5
    print(cv2.cuda.getCudaEnabledDeviceCount())  # 输出≥1

四、Qt:安装Qt5.9(系统兼容+ARM适配)

Ubuntu 18.04 ARM源支持Qt5.9,也可编译Qt5.12(更稳定):

  1. APT快速安装(推荐)

    bash 复制代码
    sudo apt install -y qt5-default qt5-qmake qttools5-dev qttools5-dev-tools
  2. 验证

    bash 复制代码
    qmake --version  # 输出Qt 5.9.5版本
  3. 若需更高版本(Qt5.12)
    从源码编译(参考CSDN教程),需注意依赖安装与编译时间(约3-12小时)。

核心适配说明

  • 架构适配:所有工具均选择ARMv8/aarch64版本,避免x86架构包;
  • CUDA兼容性:Tegra Xavier仅支持JetPack配套的CUDA版本(不可手动升级);
  • 版本匹配:OpenCV 4.5.5与CUDA 10.2兼容,Qt5.9与Ubuntu 18.04系统依赖匹配。

按以上步骤可完成适配环境的搭建,满足开发需求。

问题记录

1、若安装python时发生下面问题

复制代码
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'python3.8-lib2to3' for regex 'python3.8'
Note, selecting 'python3.8-distutils' for regex 'python3.8'
Note, selecting 'python3.8-tk' for regex 'python3.8'
Note, selecting 'python3-tk' instead of 'python3.8-tk'
Note, selecting 'python3-lib2to3' instead of 'python3.8-lib2to3'
Note, selecting 'python3-distutils' instead of 'python3.8-distutils'
Note, selecting 'python3-distutils' instead of 'python3.8-distutils'
E: Unable to locate package python3.8-dev
E: Couldn't find any package by glob 'python3.8-dev'
E: Couldn't find any package by regex 'python3.8-dev'

这是Ubuntu 18.04(ARM架构)终端中安装Python 3.8时出现的软件包找不到问题,核心原因是Ubuntu 18.04的ARM源中默认不提供Python 3.8-dev包。以下是解决方案:

一、问题分析

  • 错误核心:E: Unable to locate package python3.8-dev,Ubuntu 18.04 ARM(Jetson平台)的官方源中,Python 3.8的开发包(python3.8-dev)未被收录,仅提供基础包。
  • 连带问题:系统自动匹配了python3-tk等替代包,但无法满足开发需求。

二、解决方案

方案1:使用系统默认Python 3.6(最稳定)

Ubuntu 18.04 ARM默认自带Python 3.6,其开发包可直接安装,无需额外配置:

bash 复制代码
# 安装Python 3.6开发包
sudo apt install -y python3-dev python3-distutils
# 安装pip
curl https://bootstrap.pypa.io/pip/3.6/get-pip.py | sudo python3
方案2:通过源码编译安装Python 3.8(获取dev包)

若必须使用Python 3.8,需从源码编译(包含dev组件):

  1. 安装编译依赖:

    bash 复制代码
    sudo apt install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
  2. 下载Python 3.8源码:

    bash 复制代码
    wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz
    tar -xf Python-3.8.10.tgz
    cd Python-3.8.10
  3. 编译并安装(包含dev组件):

    bash 复制代码
    ./configure --enable-optimizations
    make -j4  # 4核编译
    sudo make altinstall  # 避免覆盖系统默认Python
  4. 验证:

    bash 复制代码
    python3.8 --version  # 输出3.8.10
    # 开发包已包含在源码编译结果中,可直接使用

三、后续建议

  • 优先选择方案1(Python 3.6),与Ubuntu 18.04 ARM的系统依赖兼容性最佳,可满足OpenCV、Qt等开发需求。
  • 若需Python 3.8,方案2的源码编译可完整获取dev组件,但编译耗时较长(约10-20分钟)。

2、若安装QT时发生下面故障

复制代码
~$ sudo apt install -y qt5-default qt5-qmake qttools5-dev-too

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
qt5-default : Depends: qtbase5-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

这是Ubuntu 18.04(ARM架构)下安装Qt5时出现的依赖冲突问题,核心原因是系统中存在损坏的包或源配置不匹配。以下是问题分析与解决方案:

一、问题分析

  1. 直接错误
    • qt5-default 依赖 qtbase5-dev,但该依赖包无法安装;
    • 最终提示"无法修正问题,存在损坏的包"。
  2. 根本原因
    • 系统源(尤其是Jetson平台的NVIDIA源)与Ubuntu 18.04官方源的包版本不兼容;
    • 之前的操作可能残留了未完成的包安装,导致依赖链断裂。

二、解决方案

步骤1:修复损坏的包

首先清理系统中损坏或残留的包:

bash 复制代码
# 修复损坏的包
sudo apt --fix-broken install
# 清理过时的包缓存
sudo apt clean && sudo apt autoremove
步骤2:调整软件源(适配Jetson平台)

Jetson平台的Ubuntu 18.04需确保NVIDIA源与官方源兼容:

  1. 备份当前源列表:

    bash 复制代码
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  2. 编辑源列表,使用国内ARM源(如清华源):

    bash 复制代码
    sudo nano /etc/apt/sources.list

    替换为以下内容(仅保留必要源):

    deb 复制代码
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
  3. 保存文件:按Ctrl+O,回车确认;

  4. 退出编辑器:按Ctrl+X

  5. 更新源:

bash 复制代码
sudo apt update
步骤3:手动安装Qt5依赖包

直接安装qtbase5-devqt5-default的核心依赖),再安装Qt5组件:

bash 复制代码
# 先安装核心依赖
sudo apt install -y qtbase5-dev
# 再安装Qt5工具链
sudo apt install -y qt5-qmake qttools5-dev qttools5-dev-tools

三、验证安装

执行以下命令,确认Qt5工具正常:

bash 复制代码
qmake --version

若输出QMake version 3.1及Qt5版本信息,说明安装成功。

四、替代方案:源码编译Qt5(若上述方法失败)

若APT安装持续失败,可从Qt官网下载ARM架构的Qt5源码编译,步骤如下:

  1. 下载Qt5.12源码(适配Ubuntu 18.04):

    bash 复制代码
    wget https://download.qt.io/archive/qt/5.12/5.12.12/single/qt-everywhere-src-5.12.12.tar.xz
  2. 编译并安装(参考Qt官方文档,需约2小时)。

该方案可解决Jetson平台下Qt5的依赖冲突问题,确保开发环境正常。

相关推荐
_OP_CHEN6 小时前
【从零开始的Qt开发指南】(二十三)Qt 界面优化之 QSS 实战指南:从入门到精通,让你的界面颜值飙升!
开发语言·c++·qt·前端开发·界面美化·qss·客户端开发
lph0096 小时前
QtMqtt 的编译与QT环境加载配置
开发语言·qt
机器视觉知识推荐、就业指导7 小时前
Qt 小技巧:如何用 Q_PROPERTY 管理属性
服务器·数据库·qt
hqwest7 小时前
码上通QT实战11--监控页面03-绘制湿度盘和亮度盘
开发语言·qt·绘图·自定义组件·部件·qpainter·温度盘
起个名字费劲死了7 小时前
QT + Socket 客户端/服务端 公网通讯
服务器·c++·qt·socket
saoys10 小时前
Opencv 学习笔记:图像金字塔实现上采样(pyrUp)与降采样(pyrDown)
笔记·opencv·学习
羊小猪~~11 小时前
【QT】-- QT基础类
开发语言·c++·后端·stm32·单片机·qt
saoys12 小时前
Opencv 学习笔记:循环读取文件夹中图片并动态展示
笔记·opencv·学习
起个名字费劲死了13 小时前
QT 学习:协同开发的程序如何汇总到主程序
qt