大模型部署实战—1:NVIDIA Jetson Thor (128GB) :Ubuntu 24.04 + JetPack 7.2 搭建完整深度学习环境+部署本地大模型全记录
2026/8/9 14:40:05 网站建设 项目流程

┌─────────────────────────────────────────┐
│ 应用层 (你写的代码) │ ← 你的 Python/C++ 程序
├─────────────────────────────────────────┤
│ 深度学习框架 (PyTorch/TF) │ ← 模型训练和推理
├─────────────────────────────────────────┤
│ CUDA / cuDNN / TensorRT (加速库) │ ← GPU 加速计算
├─────────────────────────────────────────┤
│ JetPack SDK (软件包集合) │ ← 核心:驱动 + 库 + 系统
├─────────────────────────────────────────┤
│ Ubuntu 操作系统 (Linux内核) │ ← 底层系统
├─────────────────────────────────────────┤
│ NVIDIA Jetson Thor (硬件) │ ← 你的开发板
└─────────────────────────────────────────┘

参考:1. 小白之——Jetson AGX Orin运行环境安装与部署教程:Anaconda, Jetpack,jtop,CUDA, CUDNN,pytorch,torchvision_jetson agx orin pytorch cuda cudnn-CSDN博客

一、基础环境:JetPack 与系统配置

1.1 安装 JetPack SDK

Jetson Thor 默认搭载 Ubuntu 24.04,推荐使用 JetPack 7.0+。JetPack 包含了 CUDA、cuDNN、TensorRT 等核心组件。

sudo apt update sudo apt install nvidia-jetpack

安装完成后,验证 CUDA 是否可用:

nvcc --version nvidia-smi

1.2 配置 CUDA 环境变量

安装后nvcc可能找不到,需要手动添加 PATH:

export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH

永久生效(写入~/.bashrc):

echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc

1.3 安装监控工具 jtop(jetson-stats)

jtop是 Jetson 设备常用的硬件监控工具。

安装方式:推荐使用pipx安装,避免污染系统 Python 环境。

# 安装 pipx sudo apt install pipx pipx ensurepath 安装 jetson-stats pipx install jetson-stats

配置为系统服务

# 使用绝对路径安装服务(sudo 环境下 PATH 可能不包含 ~/.local/bin) sudo /home/zzc/.local/bin/jtop --install-service sudo systemctl daemon-reload sudo systemctl enable jtop.service sudo systemctl restart jtop.service

运行

jtop # 若提示服务未激活,检查服务状态 sudo systemctl status jtop.service

踩坑sudo jtop提示找不到命令,因为sudo的 PATH 不包含用户目录。解决:使用绝对路径或修改sudo visudosecure_path

pipx install jetson-stats installed package jetson-stats 7.2.0, installed using Python 3.12.3 These apps are now globally available - jetson_config - jetson_release - jetson_swap - jtop ⚠️ Note: '/home/zzc/.local/bin' is not on your PATH environment variable. These apps will not be globally accessible until your PATH is updated. Run `pipx ensurepath` to automatically add it, or manually modify your PATH in your shell's config file (i.e. ~/.bashrc). done! ✨ 🌟 ✨ (base) zzc@zzc:~/Downloads$ jtop bash: jtop: command not found

安装成功了,但现在系统还不知道jtop命令在哪里,因为它被安装在了一个还没有加入系统 PATH的目录里。

错误信息已经提示得很清楚了:/home/zzc/.local/bin不在你的 PATH 环境变量中。

⚙️ 解决方法

运行pipx推荐的命令,让它自动帮你把路径加入 PATH:

bash

pipx ensurepath

执行后,它会自动修改你的~/.bashrc配置文件。请关闭当前终端,然后重新打开一个新终端,再输入jtop就可以正常工作了。

另外:

在运行sudo /home/zzc/.local/bin/jtop --install-service时,安装脚本自动生成了服务文件。但它错误地假设jtop被安装在/usr/local/bin/,而实际上pipx把它安装到了~/.local/bin/。这是jetson-stats在通过pipx安装时的一个已知小缺陷

1.4 查看 JetPack 版本

apt show nvidia-jetpack # 或 cat /etc/nv_tegra_release

踩坑:安装完成后,我已经完全安装了sudo apt install nvidia-jetpack,但是在运行下面命令仍然出错,bash: nvcc: command not found,解决办法:

  1. 打开配置文件:在终端中输入以下命令,编辑你的用户配置文件~/.bashrc

    bash

    nano ~/.bashrc
  2. 添加 Anaconda 路径:在文件的末尾添加下面这行。请注意,如果你的安装目录不是默认的~/anaconda3,请替换成你实际的安装路径。

    bash

    export PATH="~/anaconda3/bin:$PATH"
  3. 保存并退出:按Ctrl+O,回车保存,再按Ctrl+X退出nano编辑器。

  4. 使配置生效:运行以下命令,让刚才的修改立即生效:

    bash

    source ~/.bashrc

二、Python 环境管理

2.0 anaconda环境安装

通过官网下载anaconda的arm版本,本地安装。

出现无法找到conda命令的错误,同样是环境变量问题。

2.1 Conda 替代方案(ARM 架构)

官方 Anaconda 不支持 ARM (aarch64),推荐使用MiniforgeArchiconda

# 下载 Miniforge (aarch64) wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh chmod +x Miniforge3-Linux-aarch64.sh ./Miniforge3-Linux-aarch64.sh # 按提示安装,默认路径 ~/miniforge3

2.2 Conda 换清华源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ conda config --set show_channel_urls yes

2.3 Pip 换清华源

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

2.4 区分系统 Python 与 Conda Python

  • 系统 Python/usr/bin/python3(JetPack 依赖)

  • Conda Python~/miniforge3/bin/python3(用户环境)

终端提示符(base)表示 Conda 环境已激活。使用conda deactivate可退出。


三、安装 Ollama 本地大模型框架

注意:事实证明,从ollama官网下载的版本对其本身的权重文件具有很好的适配型。作者从github镜像下载的版本,安装后无法兼容最新的qwen3.5/3.6系列,最后又重新利用官网进行安装ollama才解决。

ollama github地址:GitHub - ollama/ollama: Get up and running with Kimi-K2.6, GLM-5.2, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models. · GitHub

llama.cpp地址:GitHub - ggml-org/llama.cpp: LLM inference in C/C++ · GitHub

3.1 问题:官方安装脚本太慢

直接执行curl -fsSL https://ollama.com/install.sh | sh在国内下载极慢,且可能因网络中断失败。

3.2 解决方案:手动下载安装(ollama | newbe)

步骤1:下载 ARM64 安装包

使用国内镜像加速下载:

curl -L -o ollama-linux-arm64.tar.zst https://ghproxy.net/https://github.com/ollama/ollama/releases/download/v0.32.6/ollama-linux-arm64.tar.zst

如果ghproxy.net不可用,可尝试ghp.cighproxy.homeboyc.cn等镜像。实际均无效,我用的魔搭社区ollama | newbe手动下载到本地

步骤2:解压并安装

# 安装 zstd 解压工具 sudo apt install zstd -y 解压到 /usr 目录(注意:新版本是 .tar.zst) sudo tar -C /usr -xvf ollama-linux-arm64.tar.zst

步骤3:创建 ollama 用户

sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama

步骤4:创建 systemd 服务

sudo tee /etc/systemd/system/ollama.service > /dev/null <

步骤5:验证安装

sudo systemctl status ollama ollama --version

3.3 踩坑:ollama 命令 Permission denied

如果运行ollama --version提示Permission denied,是因为/usr/local/bin/ollama可能是旧的无效文件。

# 删除旧文件 sudo rm -f /usr/local/bin/ollama # 清除 shell 缓存 hash -r # 再次运行,应使用 /usr/bin/ollama ollama --version

3.4 迁移 ollama 到 /usr/local/bin(可选)

sudo mv /usr/bin/ollama /usr/local/bin/ollama sudo sed -i 's|/usr/bin/ollama|/usr/local/bin/ollama|g' /etc/systemd/system/ollama.service sudo systemctl daemon-reload sudo systemctl restart ollama hash -r ollama --version

四、编译 llama-server(Ollama 核心组件)

4.1 问题:运行模型报错 llama-server not found

运行ollama run qwen3:30b报错:

Error: 500 Internal Server Error: llama-server binary not found

4.2 根本原因

Ollama 依赖llama-server组件执行模型推理,但手动安装的版本未包含该组件,需从源码编译。

4.3 解决方案:从 Ollama 源码编译(推荐)/实际我是从llama的github源码下载编译的。

步骤1:克隆 Ollama 源码(使用镜像加速)

git clone https://bgithub.xyz/ollama/ollama.git ~/ollama cd ~/ollama git submodule update --init --recursive

bgithub.xyz不可用,可换用gitclone.com或官方源。

步骤2:进入 llama.cpp 子模块编译

cd llm/llama.cpp mkdir -p build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release -DLLAMA_CUDA=ON -DLLAMA_CUDA_ARCHITECTURES=87 cmake --build . --config Release -j $(nproc)

-DLLAMA_CUDA_ARCHITECTURES=87针对 Jetson Thor (sm_87) 优化。

步骤3:安装编译产物

sudo mkdir -p /usr/local/lib/ollama sudo cp bin/llama-server /usr/local/lib/ollama/ sudo cp bin/*.so* /usr/local/lib/ sudo ldconfig

步骤4:重启 Ollama 服务

sudo systemctl restart ollama

步骤5:测试

ollama run qwen3:30b

4.4 踩坑:libllama-common.so.0 找不到

启动时可能提示:

/usr/local/lib/ollama/llama-server: error while loading shared libraries: libllama-common.so.0: cannot open shared object file

解决:确保所有.so文件已复制并更新缓存:

sudo cp ~/ollama/llm/llama.cpp/build/bin/*.so* /usr/local/lib/ sudo ldconfig

4.5 踩坑:参数不兼容错误

如果使用独立llama.cpp仓库编译,可能遇到:

error: invalid argument: --no-log-prefix

这是因为独立仓库版本过新,参数与 Ollama 不匹配。必须使用 Ollama 源码自带的子模块版本

4.5 踩坑:版本过旧

Error: 500 Internal Server Error: llama-server process has terminated: exit status 127

主要原因是我从一开始从gitee下载的仓库进行编译,但是gitee上的仓库比较旧,与最新的JetPack7不兼容导致的。解决方法就是下载最新的llama进行重新编译。


五、下载模型与国内镜像加速

5.1 默认源下载慢

ollama run qwen3:30b默认从registry.ollama.ai下载,国内速度极慢。

5.2 使用 Hugging Face 镜像

方法1:直接指定 hf-mirror.com 地址

ollama run hf-mirror.com/模型作者/模型名:标签

例如:

ollama run hf-mirror.com/Beinsezii/Qwen3.5-122B-A10B-GGUF-HALO:latest

方法2:设置环境变量

export HF_ENDPOINT=https://hf-mirror.com ollama run hf.co/Beinsezii/Qwen3.5-122B-A10B-GGUF-HALO:latest

5.3 手动下载 GGUF 并导入 Ollama

如果自动拉取总是中断,建议手动下载后导入。

步骤1:从 hf-mirror.com 下载.gguf文件

使用浏览器或wget下载模型文件(注意文件大小,如 122B 模型约 94GB)。

步骤2:创建 Modelfile

echo 'FROM /path/to/downloaded/model.gguf' > Modelfile

步骤3:导入 Ollama

ollama create qwen3.5:122b -f Modelfile

步骤4:运行

ollama run qwen3.5:122b

5.4 处理分片 GGUF(sharded GGUF)

如果遇到错误:

The specified tag is a sharded GGUF. Ollama does not support this yet.

说明模型被分割成多个文件,需先合并。

解决方法:使用llama.cppllama-gguf-split工具合并。

# 编译 llama.cpp 工具(如果尚未编译) cd ~/llama.cpp/build # 运行合并 ./bin/llama-gguf-split --merge model-00001-of-00002.gguf merged.gguf # 然后导入合并后的文件 echo 'FROM ./merged.gguf' > Modelfile ollama create qwen3.5:122b -f Modelfile

六、模型选择与硬件评估

6.1 Jetson Thor 128GB 内存能跑多大的模型?

模型量化格式文件大小可行性
Qwen3.5-122B-A10BQ4_K_M~75GB✅ 可运行(内存紧张)
Qwen2.5-72BQ4_K_M~40GB✅ 流畅
Qwen2.5-32BQ4_K_M~20GB✅ 完美适配
DeepSeek-V4-Flash 284BMXFP4~140GB❌ 超出内存

6.2 模型后缀含义

后缀含义
A10B激活参数 100亿(MoE 架构)
NVFP4NVIDIA 4-bit 浮点量化,为 Blackwell 架构优化
MTPMulti-Token Prediction,多令牌预测(加速推理)
wMix48混合精度量化,目标内存 48GB(多为 MLX 格式)

6.3 推荐模型

  • 教学/日常开发Qwen2.5-32B(性能与资源平衡)

  • 追求速度Qwen3.5-35B-A3B(MoE,激活仅 3B)

  • 探索上限Qwen3.5-122B-A10B-NVFP4(需 ~75GB,可尝试)


七、常用命令速查

7.1 Ollama 服务管理

bash

sudo systemctl status ollama # 查看服务状态 sudo systemctl restart ollama # 重启服务 sudo journalctl -u ollama -f # 实时查看日志(按 Ctrl+C 退出) sudo journalctl -u ollama -n 100 # 查看最近 100 行日志

7.2 模型管理

bash

ollama list # 已安装模型列表 ollama ps # 当前驻留内存的模型 ollama stop <model> # 卸载模型 ollama rm <model> # 删除模型 ollama cp <src> <dst> # 重命名模型 ollama run <model> --verbose # 运行并显示性能指标

7.3 环境变量

bash

export OLLAMA_KEEP_ALIVE=600 # 模型驻留时间(秒,默认 300) export OLLAMA_MODELS=/path/to/models # 更改模型存储路径 export HF_ENDPOINT=https://hf-mirror.com # Hugging Face 镜像 export OLLAMA_NUM_GPU=0 # 强制 CPU 模式(调试用)

八、常见错误与解决方案速查

错误信息常见原因解决方案
bash: command not foundPATH 未包含检查~/.local/binhash -r
Permission denied文件无执行权限sudo chmod +x <file>
status=203/EXEC可执行文件不存在检查服务文件中的ExecStart路径
exit status 127缺失动态库复制.so/usr/local/libsudo ldconfig
400: tag not available镜像未同步换用官方源或其他标签
sharded GGUF模型分片使用llama-gguf-split合并
invalid argument: --no-log-prefixllama-server 版本不兼容使用 Ollama 源码中的子模块编译

九、总结

通过本文的实践,在 Jetson Thor 上成功搭建了完整的深度学习与大模型运行环境。关键要点:

  1. 善用量化与 MoE 架构:128GB 内存可运行 70B~122B 的量化模型。

  2. 国内镜像加速是必须的:GitHub 代理、HF-Mirror、ModelScope 可大幅提升下载速度。

  3. Ollama 的 llama-server 需从源码编译:务必使用 Ollama 自带的子模块版本,避免参数不兼容。

  4. 区分系统 Python 与 Conda 环境:用 Conda 管理项目依赖,系统 Python 保留给 JetPack 工具。

后续可探索:

  • 接入 OpenClaw 构建 AI Agent

  • 使用 vLLM 提升推理吞吐

  • 尝试更多 MoE 模型(如 DeepSeek-V3)


本文操作环境

  • 硬件:NVIDIA Jetson Thor (128GB 统一内存)

  • 系统:Ubuntu 24.04 (ARM64)

  • JetPack:7.0+

  • Ollama:0.32.6(手动安装)

踩坑记录

1. OLLAMA与大模型版本不兼容

ollama是直接从(ollama | newbe)下载的,本地解压,最新版本v0.32.6。能够运行ollama run qwen3:30b。但是直接利用ollama官方命令运行ollama run qwen3.5:122b/ollama run qwen3.6:35b,出现下面的错误:

ollama run qwen3.6:35b pulling manifest pulling f5ee307a2982: 100% ▕█████████████████████████████████████████████████████████████████████████████████████ ▏ 23 GB/ 23 GB 1.8 MB/s 0s verifying sha256 digest writing manifest success Error: 500 Internal Server Error: llama-server process has terminated: exit status 1: error: Failed to load CLIP model from /usr/share/ollama/.ollama/models/blobs/sha256-f5ee307a2982106a6eb82b62b2c00b575c9072145a759ae4660378acda8dcf2d error loading model: error loading model hyperparameters: key qwen35moe.rope.dimension_sections has wrong array length; expected 4, got 3 error loading model: error loading model hyperparameters: key qwen35moe.rope.dimension_sections has wrong array length; expected 4, got 3

重新在llama的github仓库编译了最新的源码/直接运行llama命令进行加载,均依然无法解决。

最终,直接利用ollama官网的安装命令

curl -fsSL https://ollama.com/install.sh | sh

重新安装了ollama,运行qwen3.5-122B,竟然成功。主要原因还是github仓库里的ollama应该与官网的版本有区别。


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询