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的依赖冲突问题,确保开发环境正常。

相关推荐
蓑衣夜行4 小时前
Qt QWebEngine 开启硬件加速注意事项
开发语言·c++·qt·web·qwebengine
水天需0105 小时前
Linux 命令面试题目大全
qt
寻找华年的锦瑟5 小时前
Qt-QStackedWidget
java·数据库·qt
火山灿火山7 小时前
Qt常用控件(一)
服务器·qt
小尧嵌入式9 小时前
QT软件开发知识点流程及图片转换工具的开发
开发语言·arm开发·qt
吃肉夹馍不要夹馍9 小时前
【opencv图片倾斜矫正】
人工智能·opencv·计算机视觉
天涯路s10 小时前
qt怎么将模块注册成插件
java·服务器·前端·qt
azoo10 小时前
cv::Mat 取元素引起的报错
c++·opencv·计算机视觉
Aevget10 小时前
从业务面板到多视图协同:QtitanDocking如何驱动行业级桌面应用升级
c++·qt·ui·ui开发·qt6.3