Linux 35.5 + JetPack v5.1.3@CUDA安装和版本切换

1. 源由

最近遇到一些CUDA编程,以及编译链接过程出现一些版本不匹配的问题。

首先,申明下,本人是从来没有做过CUDA开发的。想在此表达的意思,只要底层概念清楚,去理解解决一些问题,还是能非常快的搞定的(反正我花了大概2个小时解决CUDA版本不一致导致无法编译成功的问题)。

2. 现象

从提示角度看,编译链接的时候发现找到了CUDA 12.6版本,但是要求使用11.4的版本。

注:之前这个软件包编译链接一切顺利,突然莫名其妙的就这样了。妥妥的直接崩溃!!!

-- +++ processing catkin package: 'camera_models'
-- ==> add_subdirectory(VINS-Fusion/camera_models)
CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
  Could NOT find CUDA: Found unsuitable version "12.6", but required is exact
  version "11.4" (found /usr/local/cuda)
Call Stack (most recent call first):
  /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:391 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.16/Modules/FindCUDA.cmake:1104 (find_package_handle_standard_args)
  /usr/local/lib/cmake/opencv4/OpenCVConfig.cmake:86 (find_package)
  /usr/local/lib/cmake/opencv4/OpenCVConfig.cmake:108 (find_host_package)
  VINS-Fusion/camera_models/CMakeLists.txt:16 (find_package)

3. 分析

底层逻辑思维的重要性,在于透过现象看本质;而技术出发的角度不仅仅是善于动脑,更要学会动手。

3.1 看本质

看这篇文章的小伙伴,不知道有几个用过Windows 95/98的?呵呵,如果用过,请评论留言。因为这样的小伙伴依然在这样一线动脑的可能不多了。

在上述系统上,如果出现蓝屏或者系统重启,通常Windows操作系统会提示用户,请卸载最近安装的程序(应用软件或者驱动程序)。

因此,大概率是最近安装什么导致了这个当前系统在编译链接的时候由于底层库或者配置环境的变更,导致了此次错误。

回忆:是的,我装了CUDA 12.6,而且一开始装了12.6,nvcc --version命令还用不了,还需要修改PATH路径。

好吗,估计这里就是问题的原因了。可是乍解决呢?知道管个PPPPPPPP用,,,所以,,,,

3.2 善动脑

俗话说“懒人多福”,在此就是,既然我都装了最新的CUDA12.6,凭什么我要换回去,再说了我也没有删除或者卸载CUDA 11.4啊。

能不能两个都要,随意切换呢?

3.3 笔记回忆

俗话说“好记性,不如烂笔头”,笔者的习惯就是干活干事,都会比较好的做一些简单的记录。

有以下几个好处:

  1. 能够有个过程记录,以免受到干扰忘记做到哪里了;
  2. 事后可提供详实的复现步骤;
  3. 根据前面的工序,通过记录内容,进行回退工作;
  4. 根据实验步骤或者先后次序,结合结果进行底层逻辑分析,定位可能问题;
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/arm64/cuda-ubuntu2204.pin
$ sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/12.6.1/local_installers/cuda-tegra-repo-ubuntu2204-12-6-local_12.6.1-1_arm64.deb
$ sudo dpkg -i cuda-tegra-repo-ubuntu2204-12-6-local_12.6.1-1_arm64.deb
$ sudo cp /var/cuda-tegra-repo-ubuntu2204-12-6-local/cuda-*-keyring.gpg /usr/share/keyrings/
$ sudo apt-get update
$ sudo apt-get -y install cuda-toolkit-12-6 cuda-compat-12-6
$ export PATH=/usr/local/cuda/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

3.4 底层思考

  • 环境变量
$ export PATH=/usr/local/cuda/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
  • 安装路径,第一层
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Wed_Aug_14_10:14:07_PDT_2024
Cuda compilation tools, release 12.6, V12.6.68
Build cuda_12.6.r12.6/compiler.34714021_0
  • 安装路径,第二层
$ ls /usr/local/cuda -l
lrwxrwxrwx 1 root root 22 94 08:05 /usr/local/cuda -> /etc/alternatives/cuda
$ ls /etc/alternatives/cuda -l
lrwxrwxrwx 1 root root 20 914 07:09 /etc/alternatives/cuda -> /usr/local/cuda-12.6

3.5 多版本

那现在有哪些CUDA在系统上,分别是如何安装的?

$ ls /usr/local/cuda -l
lrwxrwxrwx 1 root root 22 94 08:05 /usr/local/cuda -> /etc/alternatives/cuda

$ ls /etc/alternatives/cuda* -l
lrwxrwxrwx 1 root root 20 914 07:09 /etc/alternatives/cuda -> /usr/local/cuda-12.6
lrwxrwxrwx 1 root root 20 94 08:05 /etc/alternatives/cuda-11 -> /usr/local/cuda-11.4
lrwxrwxrwx 1 root root 20 914 07:09 /etc/alternatives/cuda-12 -> /usr/local/cuda-12.6

4. 版本切换

  • Step 1:编辑 .bashrc 文件

在文件末尾添加:

export PATH=/usr/local/cuda-11.4/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH

保存并退出后,运行:source ~/.bashrc

  • Step 2:切换 CUDA 版本
$ sudo rm /etc/alternatives/cuda
$ sudo ln -s /usr/local/cuda-11.4 /etc/alternatives/cuda

$ ls /etc/alternatives/cuda -l
lrwxrwxrwx 1 root root 20 914 10:01 /etc/alternatives/cuda -> /usr/local/cuda-11.4

因为环境变量是关联在/usr/local/cudabinlib64的,所以环境变量不需要更新。

  • Step 3:验证当前CUDA版本
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Sun_Oct_23_22:16:07_PDT_2022
Cuda compilation tools, release 11.4, V11.4.315
Build cuda_11.4.r11.4/compiler.31964100_0

注:如果实在不放心,重启下板子,看看是否还有cache什么的问题(这个逻辑,还没有深入研究)。

  • Step 4:重新编译ROS工程
$ rm build/ devel/ -rf
$ catkin_make

5. 总结

当然除了这个方法以外,还可以通过工程里面指定编译的CUDA版本。

总的来说,学会底层逻辑思维(透过现象看本质),勤于动手,事情总是能解决的!

<think>好的,用户需要查找Jetpack 5.1.3的文档或下载链接。首先,我应该确认Jetpack是什么。Jetpack是NVIDIA为Jetson系列嵌入式系统设计的软件开发套件,包含驱动、库、API等。 接下来,用户提到的版本5.1.3,这可能是特定版本。我需要检查NVIDIA官方网站是否有该版本的文档或下载资源。通常NVIDIA会维护不同版本Jetpack,但较旧的版本可能存档在开发者论坛或需要特定方式访问。 首先,访问NVIDIA Jetson下载中心,查找历史版本。如果5.1.3不在列表,可能需要查看存档或论坛。另外,用户提供的引用[1]提到了备份sources.list编辑文件,这可能与Ubuntu的软件源有关,但Jetpack安装通常通过SDK Manager进行,可能需要添加官方仓库。 然后,考虑到用户可能需要SD卡镜像或文档,我会建议检查NVIDIA的开发者论坛或联系支持。另外,确保用户使用的Jetson型号与Jetpack 5.1.3兼容,因为不同硬件支持的版本不同。 最后,总结步骤:访问官网,使用SDK Manager,检查论坛,或通过命令行工具查找旧版本。如果官方渠道没有,可能需要第三方资源,但需注意安全。</think>### Jetpack 5.1.3相关资源查找步骤 1. **确认Jetpack版本有效性** Jetpack 5.x系列主要支持Jetson AGX Orin、Jetson Orin NX等新一代硬件[^2]。需先确认5.1.3是否为官方正式发布版本(部分版本可能为测试版或内部编号)。 2. **通过NVIDIA官方渠道查找** 访问[NVIDIA Jetson下载中心](https://developer.nvidia.com/embedded/jetpack): - 使用SDK Manager安装时,勾选"Show all versions"查看历史版本 - 在"Components"栏目中查找L4T(Linux for Tegra)版本对应关系 3. **文档获取方式** 若官网未直接提供: - 尝试访问[开发者论坛](https://forums.developer.nvidia.com/)搜索"JetPack 5.1.3 release notes" - 使用SDK Manager安装时会自动下载配套文档 - 检查已安装设备的`/usr/local/cuda/documentation`目录 4. **手动下载方法** ```bash # 添加官方仓库后尝试apt搜索 sudo apt-cache search jetpack | grep 5.1.3 # 或使用SDK Manager命令行模式 sdkmanager --cli --query ``` 5. **兼容性验证** 通过`jtop`工具查看当前Jetpack版本: ```bash sudo jtop ``` 在"Components"页面可验证各组件版本是否匹配5.1.3要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值