整体思路:x86 Ubuntu 虚拟机安装 Ollama 并下载模型 → 通过 NFS 共享迁移至 ARM64 麒麟开发板 → 实现本地大模型调用。

这么操作的原因:开发板下载安装Ollama服务的网速尚可,但是下载模型时网速很慢,经常会出现因为网络波动而停止下载的问题,所以我们使用X86 Ubuntu虚拟机的Ollama结合科学上网来加速模型下载,然后通过NFS文件共享来将模型文件传输到开发板上,通过开发板下载的ollama服务来启用。


X86虚拟机端 Ollama 安装与模型下载

  1. 执行官方一键安装脚本
    1
     curl -fsSL https://ollama.com/install.sh | sh
  2. 下载目标模型(以千问1.5B为例)
    1
    ollama pull qwen2.5:1.5b
  3. 验证模型是否下载成功
    1
    ollama list
    接下来,我们需要找到下载的模型文件,然后将模型文件放在NFS的共享文件夹内;

此阶段遇到的核心问题

问题1:在共享文件夹/用户目录~/.ollama/找不到模型文件

  • 原因:Ollama 以系统服务(systemd/root)运行,模型默认存储在系统目录,而非用户家目录
  • 真实模型路径/usr/share/ollama/.ollama/models/
  • 解决方案:从系统目录拷贝模型,而非用户目录
    问题2:模型文件名为哈希乱码,无直观模型名
  • 原因:Ollama 采用哈希分片管理模型,blobs存模型文件、manifests存索引
  • 解决方案:无需修改文件名,完整拷贝整个**.ollama**目录即可识别

模型迁移:x86 → ARM64 开发板(NFS 共享)

x86 虚拟机将系统目录的 Ollama 模型拷贝至 NFS 共享文件夹

1
sudo cp -r /usr/share/ollama/.ollama/ /mnt/hgfs/VMshared/ollama/

到开发板上确认能否看到共享的文件,如果看不到models文件夹,可以尝试ctrl + H显示隐藏文件。

ARM64 开发板端:Ollama 部署与模型识别

首先需要下载ollama,直接输入官方的一键在线安装命令:

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

这个脚本会自动完成:

  1. 检测系统架构(ARM64/aarch64)
  2. 下载最新版 ollama-linux-arm64 二进制文件
  3. 安装到 /usr/local/bin/ollama
  4. 配置权限与服务(麒麟系统可能需要手动调整)
    但是在我们的麒麟系统下大概率不成功,只会留下一个ollama-linux-arm64二进制文件,我们需要将这个文件拷贝到系统路径中,然后授权运行:
    1
    2
    sudo cp ollama-linux-arm64 /usr/local/bin/ollama 
    sudo chmod +x /usr/local/bin/ollama

检查验证一下ollama能否执行;

1
ollama --version

启动ollama服务,如果报错listen tcp 127.0.0.1:11434: bind: address already in use,那说明服务已经开启;

1
报错`listen tcp 127.0.0.1:11434: bind: address already in use`

将NFS共享文件目录中的模型文件拷贝到开发板的默认路径,这里的路径是我的开发板上的路径,在使用的时候要注意修改。
1
2
3
mkdir -p /home/kylin/.ollama/models 
sudo cp -r /mnt/nfs_share/VMshared/ollama/.ollama/models/* /home/kylin/.ollama/models/
sudo chown -R kylin:kylin /home/kylin/.ollama

接下来,Ollama应该就可以成功读取模型文件了,我们可以直接在命令行里面输入ollama,然后根据提示来选择现在需要的服务。
image.png
我们需要选择第一项,然后按方向键右,就可以进入选择模型的页面
image.png