【香橙派】Orange pi AIpro开发板使用之一键部署springboot项目

前言

        最近有幸收到一份新款 OrangePi AIpro 开发板,之前手里也捣鼓过一些板子,这次尝试从零开始部署一个简单的后端服务。OrangePi AIpro 采用昇腾AI技术路线,具体为4核64位处理器+AI处理器,可配16GB内存容量,各种复杂应用都能流畅运行,板载1000Mbps以太网,传输更快更稳定,配置了各种丰富的接口,应用场景广泛。

开发板简介

  1. OrangePi AIpro 开发板配备4核64位处理器+ AI处理器, 8GB/16GB的LPDDR4X内存,足以满足大部分的AI推理应用场景和其他大内存的产品应用场景,速度更快,功耗更低。
  2. 支持双HDMI视频输出,支持双4K高清输出,支持一个MIPI DSI屏输出,支持两个MIPI接口摄像头输入,足够满足在有视频源输入场景的需求。
  3. 板载支持1000Mbps以太网,拥有wifi 2.5G/5G和有线两种接入方式,网络连接更大、更稳定,传输更高速。
  4. 板载M.2接口,支持接入SATA/NVMe SSD 2280硬盘,增加海量数据存储空间,满足快速读写和大容量存储的需求。
  5. 汇聚了MIPI DSI、MIPI CSI、USB 3.0、Type-C 3.0、HDMI 2.0、千兆以太网、支持SATA/NVMe SSD 2280的M.2插槽等各类流行的接口,可应用于外部设备控制和扩展。

配图:

硬件规格参数
OrangePi AIpro 开发板和斐讯N1盒子(历史遗留产物)的大小对比
开发板详细图

开发版资料

        在体验的过程中, OrangePi AIpro 开发板的资料是非常全面,这也是我完全没有想到的,这也让我在后面的配置中少走了很多弯路。不过这里也稍微提一点建议,可以将资料分发在不同的平台进行下载,毕竟“云盘限速”很烦人。

        开发版资料:访问链接

官方资料截图

系统安装

1、前期准备

必需品

        Orange Ai Pro开发版一块、TF卡(建议32GB或以上)、TF读卡器、一台电脑、有线网络或WIFI

非必需品

        HDMI显示器连接线、串口线、显示器、外接鼠标、外接键盘等

电脑所需安装软件

        balenaEtcher(烧录镜像软件)、MobaXterm(或其他远程软件,如xShell等)

镜像准备

        下载官方镜像中的 ubuntu 镜像 

2、烧录镜像

        将准备的TF卡插入TF读卡器,并插入准备好的电脑中,确认TF卡中的数据已经备份(数据无价);

        在电脑打开 balenaEtcher 软件,将准备的镜像烧录到TF卡中,如图1-2-1。建议使用 Portable 版本不需要安装,打开即可使用。烧录过程中出现了如图1-2-2报错,我是通过 7zip 解压后重新烧录,可以成功。

图1-2-1

        

图1-2-2

3、配置TF卡启动

        确认 OrangePi AIpro 开发板启动设置是否配置为从 TF 卡启动,如果不是,得按照文档拨动开关到从 TF 卡启动的配置下(拨动开关都拨到右边)。拨动开关位置如图1-3-1,拨动开关对应说明如图1-3-2。注意:切换拨码开关后,必须插拔电源重新上下电才能生效。开发板的复位按键是不会使新的拨动开关配置生效。

图1-3-1
图1-3-2

4、上电启动

        将TF卡插到 OrangePi AIpro 开发板上,如图1-4-1,有条件可接入 HDMI 显示器,重新下上电。等待1分钟左右,屏幕上显示系统登录页面,如图1-4-2。登录的账号为HwHiAiUser,密码为Mind@123。

图1-4-1
图1-4-2

5、远程连接

        在 OrangePi AIpro 开发板上输入 ifconfig 获取当前设备ip或者在路由器上获取  OrangePi AIpro 开发板的ip地址。
        打开 MobaXterm 或其他ssh工具(如xShell等),在工具中输入ip地址、端口号、用户名,点击连接,端口号默认22,如图1-5-1。输入密码后即可连接上,注意输入密码时不会显示,直接输入后回车即可。

图1-5-1

6、更新配置

        在命令行中执行以下命令切换root账号

sudo -i

        在命令行执行以下命令创建对应文件夹备用

mkdir -p /data/software
mkdir -p /data/download
mkdir -p /data/project

        在命令行执行以下命令更新 apt 包,确保后续能下载更新包

apt update

环境配置

1、安装运维工具

        进入下载文件夹/data/download

cd /data/download

        输入以下命令运行安装运维工具 1panel,参考在线文档:链接

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

2、安装JDK和maven环境

        在命令行执行以下命令安装jdk17和maven

apt install openjdk-17-jdk
apt install maven

        系统默认存在git环境,可以不用安装

3、编写springboot测试用例

        编写 springboot 项目,在项目中编写一个接口,返回字符串信息。代码如下:

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/test")
public class TestController {
    
    @RequestMapping(value = "/get",method = RequestMethod.GET)
    public String get(){
        return "Hello World";
    }
    
}

        或者直接使用项目地址:gitee地址

4、一键发布

         通过ip和配置的端口进入运维页面,登录配置的用户名和密码。登录后在左侧菜单中点击创建计划任务,如图2-4-1

图2-4-1

        创建 Shell 脚本的任务,脚本内容中输入以下脚本,如图2-4-2

#发布分支或tag
projectTag=master
#发布jar包版本
projectVersion=0.0.1-SNAPSHOT
#git名称
gitName=springboot
#系统名称
projectName=springboot
#基本路径
basePath=/data/project
#git仓库token
gitToken=token
#git仓库地址
git=gitee.com/hufewzk/springboot.git
gitPathName=git
dockerPathName=docker
#系统clone路径
projectPath=${basePath}/${projectName}
#docker发布系统路径
dockerPath=${projectPath}/${dockerPathName}/${projectName}
# 移除项目文件夹
if [ -d "${projectPath}/" ];then
    rm -rf ${projectPath}/
else
    echo '不存在'${projectPath}'项目文件夹'
fi
#创建项目文件夹
mkdir -p ${projectPath}/${dockerPathName}/${projectName}
cd ${projectPath}
git clone --branch ${projectTag} https://oauth2:${gitToken}@${git}
mv ${gitName} ${gitPathName}
cd ${gitPathName}
mvn clean package -Dmaven.test.skip=true
mv ${projectPath}/${gitPathName}/target/${gitName}-${projectVersion}.jar /${projectPath}/${dockerPathName}/${projectName}.jar
mv ${projectPath}/${gitPathName}/workWXbin/linux /${projectPath}/${dockerPathName}/linux
mv ${projectPath}/${gitPathName}/Dockerfile ${projectPath}/${dockerPathName}/Dockerfile
mv ${projectPath}/${gitPathName}/docker-compose.yml ${dockerPath}/docker-compose.yml
cd ${projectPath}/${dockerPathName}
docker stop ${projectName}
docker rm ${projectName}
docker rmi ${projectName}/${projectName}:latest
docker rmi $(docker images -f "dangling=true" -q)
docker build --rm -t ${projectName}/${projectName}:latest .
cd ${dockerPath}
/usr/local/bin/docker-compose up -d
2-4-2

        点击执行,在报告中显示输出信息,没有报错则发布成功。在容器中也能看到发布的 springboot 项目

5、测试接口

        在电脑浏览器中输入 http://{ip}:8081/test/get 访问,浏览器打印如下,则发布成功,如图2-5-1

图2-5-1

使用测评

        这款 OrangePi AIpro 开发板除了能满足普通应用程序的需求,如:自开发项目、Home Assistant、Halo等,也能部署 AI 项目,有强大 AI 处理器的性能支撑,如:Ollama、RAGFlow、官方示例等。它拥有的丰富的硬件接口、便捷的开发环境和完整的文档支撑,能应对不同的使用场景。其功耗低,运行稳定,搭一个 nas 也是一个不错的选择。

        资源消耗和运行时间如图3-1-1、图3-1-2:

图3-1-1
图3-1-2

结论

        OrangePi AIpro 开发板满足了我日常开发和生活使用,性价比高,完善的文档支撑和丰富的样例,会让使用者少走很多弯路。建议的话,还是希望文档等资料能够提供不同途径的下载方式,如阿里云盘、夸克云盘等;还有在扇热风扇的声音上还能够减少一点。后续这块板子我也将用来发布 Home Assistant ,将智能家居设备联动起来,期待它能有更好的表现。

        最后期待国产AI开发板能够越做越好,在未来的项目中能够发挥越来越重要的作用。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 20:02:07       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 20:02:07       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 20:02:07       58 阅读
  4. Python语言-面向对象

    2024-07-15 20:02:07       69 阅读

热门阅读

  1. PYTHON 常用算法 33个

    2024-07-15 20:02:07       17 阅读
  2. k8s集群创建devops项目一直等待状态,没有发现host

    2024-07-15 20:02:07       20 阅读
  3. C++:异常

    2024-07-15 20:02:07       21 阅读
  4. C++的模板(十一):算法的轨迹

    2024-07-15 20:02:07       19 阅读
  5. goframe 之ORM链式封装

    2024-07-15 20:02:07       22 阅读
  6. 高通平台android的Framework开发遇到的一些问题总结

    2024-07-15 20:02:07       20 阅读
  7. 第六章 动画【Android基础学习】

    2024-07-15 20:02:07       17 阅读
  8. 【爬虫】爬虫基础

    2024-07-15 20:02:07       19 阅读
  9. CSS 技巧与案例详解:开篇介绍

    2024-07-15 20:02:07       21 阅读
  10. 力扣刷题之2732.找到矩阵中的好子集

    2024-07-15 20:02:07       20 阅读