Jetson Xavier NX套件 Ubuntu 源码编译安装Qt5.15.6

本文介绍在Jetson Xavier NX套件上编译安装Qt5.15.6的详细过程。硬件为该套件搭配500G SSD,系统是Ubuntu 20.4。先进行准备工作,包括保证系统空间、安装编译工具链、分配交换空间等,再进行编译,涵盖下载源码、解压、配置、编译、安装等步骤,编译中遇到的问题记录在处理集中。

环境:

硬件:Jetson Xavier NX 套件(500G SSD)
系统:Ubuntu 20.4
g++/gcc工具链:version9.4.0 (target: aarch64-linux-gnu)

问题:

限于篇幅,将编译过程中所有问题均记录于:
编译安装Qt5.15.6 过程中遇到的问题处理集

开始:

最近项目需要在Jetson Xavier NX 套件上进行应用开发,需要选择一个QT版本编译成目标板能够运行的库。我选择了5.15.6,因为有500G的SSD,所以我是在目标板上直接编译,而非交叉编译,交叉编译请注意编译工具的配置。网上有很多例子,遇到qtwebengine qtwayland qtmultimedia qtlocation 等库编译失败就在Configure 配置中skip了,但是刚好我这个项目需要用到qtmultimedia 和 qtlocation 。所以我准备不跳过任何组件,进行全编译。

准备工作

0、保证系统剩余空间再150G以上

1、Jetson Xavier NX系统安装、编译工具链

安装请参考我的 Jetson Xavier NX 套件将系统装到SSD

2、 交换空间再分配32G

由于Jetson Xavier NX仅有8GB内存,交换空间默认为4GB,在编译过程中,内存几乎占满,交换空间最大需要15G以上,所以建议给交换空间再分配16G以上,我直接再分配了32G在这里插入图片描述

//在根目录下创建一个名为“swapfile”交换空间文件,
//块大小bs为64MB,块的个数count为512,
//“swapfile”文件大小为64MB*512=32GB。
sudo dd if=/dev/zero of=/swapfile bs=64M count=512
//将空间格式化成swap格式 。此步需要等待已一定时间,空间越大,时间越长
sudo mkswap /swapfile
//激活swap空间,可通过free -h查看交换空间大小 ,注意,每次重启系统都需要执行激活空间。
//后面如果遇到ninja: build stopped: subcommand failed. 
//make[3]: *** [Makefile.gn_run:1189: run_ninja] Error 1   基本就是空间不足导致
sudo swapon /swapfile

3、 修改默认堆栈大小

由于Jetson Xavier NX的Ubuntu系统将线程默认栈空间大小调整为1024KB,导致某些库无法编译通过。

//以管理员身份打开/etc/security/limits.conf
sudo vim /etc/security/limits.conf
//按G来到配置文件底部,新增两行,将线程默认栈空间大小改为10240,修改如下:
ubuntu hard stack 10240     //此处ubuntu为用户名,请参照自己的用户名进行修改
ubuntu soft stack 10240
//重启生效
reboot

4、安装依赖

使用NVIDIA原始的源、不用修改国内源

4.0、QtBase相关依赖
sudo apt-get install bison build-essential qt5-default 
sudo apt-get install perl git gperf ruby 
sudo apt-get install libclang-10-dev llvm-10*
sudo apt-get install xcb* libxcb* libx11* libxkbcommon* libxrender* libxi-dev
4.1、QtOpenGL相关依赖
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev libegl1-mesa-dev freeglut* libgles* libglew*
4.2、QtWebengine相关依赖
sudo apt-get install flex libicu-dev libxslt-dev
sudo apt-get install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev 
sudo apt-get install libdus* dbus*
sudo apt-get install libfontconfig1-dev fontconfig libcap-dev libxtst-dev libxext-dev
sudo apt-get install libpulse-dev libudev-dev libpci-dev libnss3-dev libasound2-dev libxss-dev 
sudo apt-get install libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
sudo apt-get install libcups2* pulseaudio* alsa-* mesa-* systemd* system-* libgudev-1.0-dev libatspi2.0* at-spi2-* libclipper-dev
sudo apt-get install nodejs gyp ninja-build libdrm-dev
4.3、 QtBlueTooth相关依赖
sudo apt-get install bluez* bluetooth libbluetooth*
4.4、Qtmultimedia相关依赖
sudo apt-get install libwayland-dev

编译

0、 下载Qt5.15.6源代码(可根据自己的需求下载不同版本)

1、解压源码

所有操作均在“/opt/”目录下
将qt-everywhere-opensource-src-5.15.6.tar.xz源码包复制到“/opt/”目录下

//进入opt目录
cd /opt/
//创建qt5.15.6文件夹 和 qt5.15.6_aarch64 文件夹
//用于编译好后安装qt的位置
sudo mkdir qt5.15.6_aarch64 
//用于解压源码和进行编译产生的中间文件存放
sudo mkdir qt5.15.6
//将源码解压到qt5.15.6,并进入该目录 
sudo tar xvf qt-everywhere-src-5.15.6.tar.xz -C ./qt5.15.6/
cd ./qt5.15.6/

2、创建自动配置脚本

//网上有些例子,在这里创建build文件夹,在这个文件夹下再创建配置脚本。但是我在自动配置时,
//始终要提示未找到all necessary libraries for qpa-xcb support in QtWebEngine。
//在源码目录直接创建则不会提示

//进入源码目录,创建脚本。
cd ./qt-everywhere-src-5.15.6/
sudo vim autoConfigure.sh

将以下内容复制到 autoConfigure中,其中配置选项意思请参考qt之configure选项说明

#!/bin/sh
./configure \
-platform linux-aarch64-gnu-g++ \
-prefix /opt/qt5.15.6_aarch64 \
-confirm-license \
-opensource \
-release \
-shared \
-make libs \
-nomake examples \
-nomake tests \
-dbus \
-opengl \
-pch \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-xcb \
-alsa \
-gif \
-gstreamer 1.0 \
-pulseaudio \
-fontconfig \
-system-freetype

修改脚本权限(直接全权限)

sudo chmod 777 ./autoConfigure.sh

3、自动配置

sudo  ./autoConfigure.sh

执行时间,大概需要十分钟左右。执行完成后,认真查看自己需要的模块是否已被勾选,结果显示参考我的编译安装Qt5.15.6 过程中遇到的问题处理集

4、执行编译

sudo make -j6

由于JetsonXavierNX的CPU为6核,此处选择-j6。编译时间相当长,可以在下半时进行。
中间可能好几次因为错误被中断编译。不急不躁,我罗列出我遇到的问题以及处理办法在编译安装Qt5.15.6 过程中遇到的问题处理集中,供大家参考。

5、安装QT

sudo make install

很神奇的是,我在安装过程中,还会进行一些库的编译,估计是我在自动配置的文件里,配置参数不完全。在安装过程中也因为错误中断安装好几次,同样将问题罗列在上述问题处理集里了

6、安装QT Creator

sudo apt-get install qtcreator -y

7、Hello QT5.15.6 for Jetson Xavier NX

在这里插入图片描述

参考:

1、JetsonXavierNX编译安装Qt5.12.9
2、rpms / qt6-qtmultimedia
3、error during compiling
4、树莓派Qt系列教程30:源码方式搭建Qt开发环境
5、NVIDIA Jetson AGX Xavier安装pyQT

<think>好的,我现在需要帮助用户找到在Jetson Xavier NX安装Ubuntu 18.04的教程或指南。首先,我得仔细看一下用户提供的引用内容,看看里面有没有相关的步骤。 用户提到了引用[2],里面详细描述了烧制系统的全流程,包括使用SDK Manager刷机。这可能是一个关键步骤。另外,引用[1]提到不要随便更换源,这可能是在安装后的配置阶段需要注意的。引用[4]和[5]涉及到安装其他软件,可能对后续配置有帮助,但安装Ubuntu本身可能需要先完成系统烧录。 接下来,我需要确认Jetson Xavier NX的官方安装方法。通常,NVIDIA的Jetson设备会使用SDK Manager工具来安装系统,这可能涉及到下载镜像、连接设备、进入恢复模式等步骤。引用[2]中提到的刷机过程应该就是通过SDK Manager进行的,所以可能需要指导用户下载这个工具,并按照步骤操作。 另外,用户可能遇到的问题包括进入恢复模式、驱动安装、或者配置过程中的依赖问题。引用[1]警告不要更换源,这可能是因为架构不同,导致兼容性问题,所以在安装后的系统配置中需要特别注意这一点。 还需要考虑是否需要外接SSD,如引用[2]中提到的SSD移植,这可能是在系统安装后的存储扩展步骤,但安装Ubuntu本身可能不需要。不过,用户如果需要更大的存储空间,可能需要参考这部分内容。 综合这些信息,安装步骤可能包括:准备SDK Manager,连接设备进入恢复模式,选择Ubuntu 18.04和JetPack版本,进行安装,处理可能的错误,以及安装后的基本配置。同时,要提醒用户注意不要随意更换软件源,并参考其他引用中的配置步骤来安装CUDA等组件。 最后,生成相关问题时要覆盖安装前的准备、常见错误、JetPack组件、系统优化以及与其他设备的对比,这样用户能找到全面的信息。</think>根据引用内容,Jetson Xavier NX 安装 Ubuntu 18.04 的主要步骤如下: ### 一、系统烧制准备 1. **硬件准备**:准备Type-C数据线、电源适配器、SD卡或SSD(推荐128GB以上)[^2] 2. **下载SDK Manager**:通过NVIDIA开发者官网下载支持ARM架构的SDK Manager工具 3. **进入恢复模式**: - 按住设备上的`FORCE RECOVERY`按钮 - 同时短按`RESET`按钮重启 - 通过`lsusb`命令验证设备是否进入恢复模式(显示NVIDIA Corp.设备) ### 二、系统烧制流程 1. **连接主机**:将开发板通过Type-C线连接至Ubuntu主机(建议18.04+) 2. **选择组件**: ```bash # 在SDK Manager中勾选: - OS: Ubuntu 18.04 LTS - JetPack 4.6.2(包含CUDA 10.2, cuDNN 8.2等) ``` 3. **自动烧制**:工具会自动完成以下步骤: - 下载约15GB的系统镜像 - 验证设备连接状态 - 写入存储设备(耗时约30-60分钟) ### 三、首次系统配置 1. **SSD扩展存储(可选)**: ```bash sudo ./tools/nvresizefs.sh # 来自官方SSD移植工具[^2] ``` 2. **基础环境更新**: ```bash sudo apt-get update --allow-releaseinfo-change # 避免源更新错误[^1] ``` ### 四、验证安装 1. 检查系统信息: ```bash cat /etc/nv_tegra_release # 应显示L4T 32.7.2 ``` 2. 验证CUDA: ```bash nvcc --version # 应显示10.2版本 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值