AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

2026-10-22 12:13:21 0点赞 0收藏 0评论

本文是《个人 AI-NAS-工作站 搭建实录》系列第二篇。上一篇

讲了为什么折腾、买了啥,这一篇进入实操:系统准备与基础环境配置和简单测试——飞牛 fnOS 怎么装、雷电3 显卡坞怎么让系统正确认到 Tesla P100、驱动和 Docker 环境怎么配。先把基础搞定,后面才能顺利部署模型。

先说结论:这套组合能跑通,但飞牛定制内核对雷电热插拔设备的兼容性必须手动加内核参数,这是整套配置里最重要的一步。

前言

上一篇结尾说好了,这一篇讲系统准备和基础环境配置外加简单测试。硬件全家福就不重复了,直接进正题。

先说一下环境:

小主机:零刻 ME Pro i5-13500H,32GB DDR4

显卡坞:开源宇宙 M70T(雷电3,JHL6340 桥接芯片)

显卡:Tesla P100 16GB(PCIe 接口版,被动散热 + 自配涡轮风扇)

系统:飞牛 fnOS 1.2.0505(基于 Debian 12,定制内核 6.18.18)

为什么选飞牛 fnOS?界面和群晖很像、对硬件更开放、Docker 生态完善,系统和硬件解绑,正是这次升级最想要的。

第一步:飞牛 fnOS 安装

飞牛 NAS 官网有详细教程,这里按我自己的实际安装流程走一遍:

1. 官网[飞牛 fnOS - Powerful NAS OS](飞牛NAS官网)下载 fnOS 镜像,用 Rufus(Rufus官网) 或 balenaEtcher(balenaEtcher官网)写入 U 盘

2. 开机进 BIOS,选 U 盘启动

3. 安装时选 M.2 NVMe 盘做系统盘(别选 SATA 盘,留给数据)

4. 装完进 Web 管理界面,初始化磁盘:

- 我自己原来的 2×8TB HDD 没有组 RAID1,直接组 RAID0 做数据空间。机械硬盘速度慢,目前只适合用来做冷数据备份。

- 2×SATA SSD 做常用数据盘,包括后续的 models 模型文件存放。模型文件都比较大,不经常用的放在这里,经常用的放 M.2 NVMe 盘上。

- 零刻 ME Pro i5-13500H 支持 4 个 M.2 NVMe 固态盘,可以根据自己情况规划。

系统盘用 120GB 的 M.2 NVMe 是硬需求,主要使用的模型文件放其他 M.2 NVMe,I/O 速度直接影响模型加载时间。包括后期一些推理引擎需要用到速度快的固态硬盘放模型权重。

制作启动 U 盘:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

写入时选"以 DD 镜像模式写入",兼容性更好:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

注意 U 盘上的数据会被清除,开始前请确保 U 盘数据已备份(写入过程会格式化 U 盘):

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

飞牛启动 U 盘做好后,插入小主机,启动并开始安装。我生产环境实际装的是 1.2.0505,下面演示安装用的是目前最新的 1.2.0800 版本,两者设置方法完全一样:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

记住出现的 IP 地址,远程电脑登录这个 IP 地址开始设置:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

登录飞牛 fnOS 界面开始初始化设置:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

到这里飞牛 fnOS 就初步安装完了。接下来是怎么让飞牛 fnOS 识别到雷电3/4 显卡坞上的 Tesla P100 并正常使用——下面以我实际安装的 1.2.0505 为例,新版本 1.2.0800 的设置完全一样。

第二步:内核参数配置(最关键,必须做)

这是整套配置里最容易翻车的一步。 飞牛默认启动参数对热插拔的雷电设备——显卡坞不是很友好,系统通过 lspci -tv 可以看到 Tesla P100,但是一装驱动就报错,无法激活 P100。

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

问题原因

雷电3/4 显卡坞本质是 USB4 桥接 PCIe(M70T 用的是 JHL6340 桥接芯片)。默认内核参数下,桥接芯片下游的 PCIe 设备(也就是 Tesla P100 显卡)不会被正确分配总线编号和 MMIO 空间,lspci -tv看到,但是无法绑定驱动和使用。

解决方法

编辑 /etc/default/grub,编辑前注意保存备份一份,在 GRUB_CMDLINE_LINUX_DEFAULT 里加上:

pcie_ports=native pci=assign-busses,hpbussize=0x33,realloc,hpmmiosize=128M,hpmmioprefsize=16GAI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

然后执行 sudo update-grub,重启。

参数说明:

- pcie_ports=native:让内核原生管理 PCIe 端口

- pci=assign-busses:重新分配总线编号,让 JHL6340 正确上报下游设备

- hpbussize=0x33:预留 PCIe 高端总线号范围

- hpmmiosize=128M:预留 MMIO

- hpmmioprefsize=16G:预取 MMIO 空间给热插拔设备

这些参数在雷电/USB4 桥接显卡坞场景下是必加的,不是可选项。

验证

重启后执行 lspci | grep -i nvidia,能看到 Tesla P100 就说明桥接通了。

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

第三步:NVIDIA 驱动安装

版本选择(踩坑点)

飞牛 1.2.0505 的定制内核 6.18.18,和 575 及更早版本的驱动有兼容问题——装了也加载不了。所以必须安装飞牛 fnOS 自带的驱动,就在飞牛 fnOS 的"应用中心"驱动里:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

580.142 是飞牛官方仓库里 P100 显卡能稳定用的版本。注意飞牛 fnOS 1.2.0800 的驱动列表里还有 610.57.04,这个版本已经不支持 Tesla P100 了。

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

安装

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

看到"卸载"按钮,就是装好了:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

装完最好重启 fnOS,然后验证:

nvidia-smi

正常输出应该能看到:

- Tesla P100-PCIE-16GB

- 显存 ~16GB

- 驱动版本 580.142

注意输出里的 CUDA Version: 13.0 是驱动支持的最高 CUDA 版本,与你装的工具包无关(详见第四步)。

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

第四步:CUDA 工具包

装 `cuda-toolkit`,别装 `cuda` 全量包

这里有个大坑:cuda-12-6 和 cuda-toolkit-12-6 是两个东西。

- cuda-12-6:会替换驱动,你的 580.142 会被覆盖,前面白装

- cuda-toolkit-12-6:只装工具包,不动驱动

所以一定装后者。先配 NVIDIA CUDA 仓库源(fnOS 基于 Debian 12):

wget https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/cuda-keyring_1.1-1_all.deb

sudo dpkg -i cuda-keyring_1.1-1_all.deb

sudo apt update

再安装工具包:

sudo apt install cuda-toolkit-12-6

nvcc --version # 显示 release 12.6

装完 nvcc 在 /usr/local/cuda-12.6/bin 下。如果 nvcc 命令找不到,把它加进 PATH:ln -s /usr/local/cuda-12.6/bin/nvcc /usr/local/bin/nvcc。

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

一个吓人的"假报错"

装完后 nvidia-smi 会显示 CUDA Version: 13.0,而你的工具包是 12.6——这不是错误。

CUDA Version 显示的是驱动支持的最高 CUDA 版本,不是你装的工具包版本。工具包版本以 nvcc --version 为准。

我第一次看到 13.0 的时候以为驱动没装好,查了半天。别慌,正常现象。

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

第五步:Docker GPU 支持

fnOS 自带 Docker,但默认容器里用不了 nvidia GPU。要装 nvidia-container-toolkit:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

点击安装,会自动下载安装,非常方便:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

看到"卸载"按钮,就是安装好了:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

装完后,Docker Compose 里给容器加上 runtime: nvidia 就能把 Tesla P100 透传给容器。

第六步:先拿核显跑个轻量模型,和外接显卡坞的 P100 比较一下

Tesla P100 驱动全配好之前,可以先用核显(Intel Iris Xe)跑个 2B-4B 的小模型,确认 Docker + 容器网络是通的。

小主机有 32GB 内存,Intel Iris Xe 核显可以用内存来当显存(共享显存大小以 BIOS 里允许的上限为准,一般能到十几 GB),跑小模型够用。我实际测试下来,跑本地模型推荐 llama.cpp,支持最广。就是配置起来有点折腾,建议在飞牛的 docker 环境里跑——飞牛的 docker 环境优化得不错,不像群晖镜像仓库基本无法打开、无法下载镜像。

llama.cpp 官方没在(Docker Hub) 上放可以下载的镜像,官方镜像在 (llama.cpp)。好在 docker 官网有同步拉取官方镜像的,比如这个 beclab/ggml-org-llama.cpp:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

我选 server-intel-b11459,就可以支持 Intel Iris Xe 核显:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

当然也可以选 vulkan 版本的,比如 ai/llmman:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

vulkan 版本有时比 intel SYCL 版本性能更好:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

上述都选 server 版本,这样可以对外提供 API 服务,还有 web 页面,类似网页版的大模型聊天界面。

这一步的意义不是性能(核显跑 AI 只能算"能亮机"),而是把 Docker 环境先跑通,后面接 P100 时少一个变量。这里我拿最新的 llama.cpp-server b11723 的 intel 版本和 vulkan 版本,在 Intel Iris Xe 核显跑一下 Qwen3.5-2B 带 MTP 的模型(Qwen3.5-2B-UD-Q4_K_XL.gguf 和投影文件 mmproj-F16.gguf)测试一下。

Intel Iris Xe 核显测试

compose.yaml 如下:

version: '3.8' services: llama-cpp: image: llama-cpp-intel-iris-xe-server-intel-b11723 container_name: llama-cpp-intel-iris-xe-Qwen3.5-2B restart: no ports: - "9547:8080" devices: - /dev/dri/renderD128:/dev/dri/renderD128 - /dev/dri/card0:/dev/dri/card0 volumes: - /vol5/1000/VOL5_500GB/models:/models #这里需要替换你自己宿主机上放大模型的目录 command: - --model - /models/Qwen/Qwen3.5-2B-MTP-GGUF/Qwen3.5-2B-UD-Q4_K_XL.gguf - --mmproj - /models/Qwen/Qwen3.5-2B-MTP-GGUF/mmproj-F16.gguf - --jinja - --host - 0.0.0.0 - --port - "8080" - --n-gpu-layers - "99" - --flash-attn - "on" - --load-mode - none - --threads - "8" - --repeat-last-n - "128" - --ctx-size - "32768" - --batch-size - "1024" - --ubatch-size - "512" - --temperature - "0.7" - --top-p - "0.95" - --top-k - "20" - --cont-batching - --log-verbosity - "4" AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

核显跑 2B 模型,回一句"你好"要等两分钟左右(prefill 就占了 1 分 42 秒),纯体验,别当真。

llama.cpp-server 自带的 web 界面可以进行简单的聊天:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

问了一下"你好,介绍一下你自己",prefill 要 1 分 42 秒,回答用了 18 秒,平均 12.43 t/s:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

测试图片识别:prefill 33 秒,52.52 tokens/s,decode 14 秒,12.33 t/s。图片识别个人感觉还行:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

Intel Iris Xe 核显比较繁忙,温度也上来了:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

同样的参数,换 vulkan 版本跑一下。vulkan 版本消耗内存比 intel SYCL 版本小一些:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

同样的提示词"你好,介绍一下你自己",vulkan 版本明显快很多:prefill 4.1 秒,108.13 tokens/s,回答用了 9.1 秒,平均 15.89 t/s:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

图片识别:prefill 22 秒,52.52 tokens/s,decode 13 秒,16.30 t/s。比 intel SYCL 快一些,不过 vulkan 版本的回答内容稍微简单了一点。

Tesla P100 测试

Tesla P100 我用的是自己编译的专用 llama.cpp-server 版本,compose.yaml 只是 docker 镜像和显卡驱动两处不同,其他启动参数都一样。

完整 compose.yaml:

version: '3.8' services: llama-cpp: image: llama-cpp-p100-sm_60_fix-b11696-p100 container_name: llama-cpp-p100-Qwen3.5-2B restart: no ports: - "9547:8080" ipc: host # 关键:避免多线程/CUDA 共享内存不足导致的非法访存 environment: NVIDIA_VISIBLE_DEVICES: "0" NVIDIA_DRIVER_CAPABILITIES: "compute,utility" GGML_CUDA_DISABLE_GRAPHS: "1" # 禁用 CUDA Graphs deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] volumes: - /vol5/1000/VOL5_500GB/models:/models #这里需要替换你自己宿主机上放大模型的目录 command: - --model - /models/Qwen/Qwen3.5-2B-MTP-GGUF/Qwen3.5-2B-UD-Q4_K_XL.gguf - --mmproj - /models/Qwen/Qwen3.5-2B-MTP-GGUF/mmproj-F16.gguf - --jinja - --host - 0.0.0.0 - --port - "8080" - --n-gpu-layers - "99" - --flash-attn - "on" - --load-mode - none - --threads - "8" - --repeat-last-n - "128" - --ctx-size - "32768" - --batch-size - "1024" - --ubatch-size - "512" - --temperature - "0.7" - --top-p - "0.95" - --top-k - "20" - --cont-batching - --log-verbosity - "4"

与 Intel 版的区别:

- image:用 P100 专用编译版(sm_60)

- 去掉 devices 里的 /dev/dri/*,改为 deploy/reservations GPU 透传

- 加上 ipc: host、NVIDIA_VISIBLE_DEVICES、GGML_CUDA_DISABLE_GRAPHS 等环境变量

- 其余启动参数完全相同

Tesla P100 的显存占用比 Intel SYCL 版少,和 Vulkan 版一样:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

还是同样的提示词和图片,这速度确实是核显没法比的,不但速度快,回答的内容也比上面两个版本多。回答"你好,介绍一下你自己":prefill 0.5 秒,880.17 tokens/s,decode 1.3 秒,90.99 t/s。图片识别:prefill 1.7 秒,677.49 tokens/s,decode 8.2 秒,91.10 t/s:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

验证清单

按顺序检查,全部通过才算基础环境就绪:

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

踩坑记录

AI-NAS-工作站 搭建实录 二:系统准备与基础环境配置和简单测试

本篇小结

到这里基础环境全部就绪:飞牛装好、雷电3 显卡坞桥接的 P100 被系统识别、驱动 580.142 + CUDA 12.6 就位、Docker GPU 透传可用。硬件、系统、驱动三件套齐了。

下一篇:模型部署实战——本地大模型知识库检索部署实测、语音和图片生成模型部署实测、intel iris Xe核显和P100 16GB 显存到底能跑多大的模型都会在下一篇展开。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
京东京享红包
距结束::
领京东现金红包 天天领3次 最高26888元
红包按钮
相关好价
最新文章 热门文章
0
扫一下,分享更方便,购买更轻松