OpenHarmony上运行Ollama玩转本地大模型
开源仓库:https://gitee.com/OpenHarmony_rk_equipment_transplantation/OpenHarmony_Ollama/tree/master
OpenHarmony中c库使用的是musl,使用llvm开源项目的C ++ 标准库libc ++ 作为C++运行时库。所以想在OpenHarmony上运行ollama最快的方法就是补充ollama依赖的GNU C 库(glibc)
和GNU C++ 库(libstdc++)
到开发板中去,这里采用这个方案。
javascript
开发环境:
1.ollama64位二进制
2.OpenHarmony arm64位镜像
3.3588开发板
1.首先获取ollama arm64二进制ollama-linux-arm64.tgz
https://github.com/ollama/ollama/releases
![](https://dl-harmonyos.51cto.com/images/202502/f70be7e75af32103b7001274e589adecde9cac.png)
2.获取glibc 2.27以上版本的二进制,这里提取出来命令为glibc.tar.gz
https://archlinuxarm.org/packages/aarch64/glibc
![](https://dl-harmonyos.51cto.com/images/202502/257478e42f1bebae081140d637655c5ce473ef.png)
3.获取OpenHarmony源码下面gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/lib下的所有so
javascript
cd gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc
tar -czvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.gz lib
4.将ollama-linux-arm64.tgz
、glibc.tar.gz
和gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.gz
全部推送到开发板data目录并且解压,复制到开发板lib目录
javascript
hdc file send gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.gz /data
hdc file send glibc.tar.gz /data
hdc file send ollama-linux-arm64.tgz /data
hdc shell
cd data
tar -zxvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.gz
tar -zxvf glibc.tar.gz
tar -zxvf ollama-linux-arm64.tgz
mount -o remount,rw /
cd
cp /data/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/* /lib
5.开启ollama服务
javascript
# 设置Ollama模型的下载位置
# export OLLAMA_MODELS=/data
# export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
# mount -o remount,rw /
# cd data/bin
# ./ollama serve
6.新建另外一个hdc shell运行模型
javascript
# mount -o remount,rw /
# export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
# cd data/bin
# 拉取qwen:0.5b模型
# ./ollama pull qwen:0.5b
# 启动模型
# ./ollama run qwen:0.5b
![](https://dl-harmonyos.51cto.com/images/202502/b7b68572753f5dd543039713c9e00f5aaad895.png)