OrangePi Kunpeng Pro套装测评:开箱与基本功能测试
前言
大家好,我是起个网名真难。非常荣幸受到香橙派的邀请,同时也是第一次做这个事情,很荣幸对香橙派与华为鲲鹏在2024年5月12日联合发布的新品——香橙派Kunpeng Pro开发板进行深入的评测。这款开发板是香橙派与华为鲲鹏合作推出的高性能平台,其核心亮点在于搭载了强大的鲲鹏处理器,能够提供高达8TOPS的INT8计算能力,充分满足复杂算法和数据处理的需求。Kunpeng Pro 开发板提供了8GB和16GB两种内存版本,以满足不同性能需求的应用场景。它融合了鲲鹏全栈根技术的优势,为高校计算机系统教学和原生开发提供了全面的支持。开发板的独特之处在于其对FPGA+ARM的双重支持,这不仅使得从体系结构、数字逻辑设计到操作系统和编译,再到嵌入式开发的整个流程得以在一套体系结构和同一套开发板上无缝实现,而且也极大地促进了教学和研发的效率。
接下来,我将结合自己的亲身体验,从硬件配置、软件兼容性、以及AI算法性能等多个维度,为大家揭示这款开发板的潜力和实际表现。让我们一同探索这块备受瞩目的开发板,看看它如何在众多同类产品中脱颖而出,为开发者和技术爱好者带来全新的创新体验。本期先从硬件配置、软件兼容性来说,由于时间原因AI算法在下期继续。
一、开箱硬件
附带清单:开发板1,电源65W头1,C口数据线1,32G内存卡1(附带openEuler系统)图1为开箱正面,图2为开箱反面,图3为正面硬件介绍,图4为反面硬件介绍。
图1 正面开发
图2 反面开发板
图3正面硬件介绍
图4反面硬件介绍
硬件参数:
从以下几个方面看该款开发板
**处理器:**该开发板搭载的4核64位Arm处理器确保了较强的计算能力和较高的能效比,适合处理中等复杂度的任务。与市场上的其他开发板相比,如树莓派(Raspberry Pi)的四核Broadcom BCM2711处理器或ODROID系列的多核ARM处理器,Kunpeng Pro在核心数和架构上并不落后,但具体的性能表现还需考虑处理器的主频和制程技术等因素。
内存和存储:提供8GB或16GB LPDDR4X内存选项,这样的配置在开发板中属于较高规格,有利于运行内存密集型的应用程序。32MB的SPI Flash、Micro SD卡插槽、eMMC插座以及M.2接口的NVMe SSD或SATA SSD支持,为开发者提供了灵活的存储选择。与其他开发板相比,例如树莓派4B仅提供最大8GB的RAM和一个microSD卡插槽,Kunpeng Pro在存储扩展性上有明显的优势。
**网络连接:**支持10/100/1000Mbps以太网和2.4G/5G双频Wi-Fi及BT4.2,这些特性使得Kunpeng Pro在网络连接方面具有不错的竞争力。与同类产品相比,它提供了更全面的无线连接选项,不得不说这个WIFI贼强。
**外设支持:**提供了丰富的外设接口,包括USB 3.0、Type-C、HDMI、MIPI CSI摄像头接口、MIPI DSI显示接口等,这使得Kunpeng Pro能够适用于多种应用场景。特别是在视频输出和输入方面,两个HDMI接口和两个MIPI CSI摄像头接口为多媒体应用和计算机视觉任务提供了良好的支持。
总体来说,Orange Pi Kunpeng Pro开发板在硬件配置上表现出色,无论是处理器性能、内存和存储选项、网络连接能力还是外设支持,都使其成为一款功能强大的开发平台。与市场上的其他热门开发板相比,如树莓派或ODROID系列,Kunpeng Pro在某些方面提供了更高的性能和更多的功能,特别适合需要高性能处理和大量内存的应用场景。与同类产品相比,它在内存大小和存储选择上具有明显优势,但是由于开发板为新上市,资料有限,但是在面临挑战的同时也带来了无限的可能。
二. 开 机
2.1 开机画面为图2-1,账号密码均为oepnEuler,这个密码我尝试改过不能改的过于简单,可能为了安全性,在ubuntu中我一般设置为三个空格作为输入密码,现在这个还有点不适应哈哈哈哈,进去跟传统的linux也是大差不差。
2.2开机连接WIFI,调整时间、安装VNC远程
(这里我先接了HDMI屏幕)连接WIFI
如果没有屏幕 就用SSH连接进行wifi搜索配置,没什么坑插入网线,到你的路由器查看IP地址。SSH命令:ssh openEuler@192.168.0.101(这里IP是你自己的)
- 然后使用 nmcli dev wifi 命令扫描周围的 WIFI 热点。
nmcli dev wifi - 然后使用 nmcli 命令连接扫描到的 WIFI 热点,其中:
a. wifi_name 需要换成想连接的 WIFI 热点的名字。
b. wifi_passwd 需要换成想连接的 WIFI 热点的密码。
sudo nmcli dev wifi connect wifi_name password wifi_passwd - 通过 ip addr show wlan0 命令可以查看 wifi 的 IP 地址。
[openEuler@openEuler ~]$ ip a s wlan0 - 使用 ping 命令可以测试 wifi 网络的连通性,
[openEuler@openEuler ~]$ ping www.orangepi.org -I wlan0
拔掉网线可以用了。
调整时间
刚拿到开发板这个时间是1970年,用date命令可以查看时间,因为已经连接到wifi了可以联网了用下面的命令对时
sudo ntpdate pool.ntp.org
等一会就回成功,但是改了下次还是回恢复原来的时间,可以做个SH脚本开机自己运行这个脚本就执行这个对时的命令,这一期不在这里进行说明。
安装VNC
我的电脑是win11所以我电脑装的是这个TightVNC
开发板安装VNC的服务器sudo yum install tightvncserver
启动服务:vncserver
但是有时候是回拒绝你链接的为什么呢?应该是上一个异常关闭导致这个没完全占用了。所以用这个吗,用这个命令查找PID是哪个占用
我的查到了,所以用kill 9 杀掉
sudo kill -9 1849,然后就可以登录了。
还有就是需要每次都要这么设置,每次都需要手动启动,挺烦人的,这里可以参考这个博主的,https://blog.csdn.net/weixin_40929065/article/details/139248355 文章2.4.2.1。感谢isSamle大佬。
三 问题系统测试
pjdfstest 是一个用于测试 POSIX 文件系统接口的测试套件,主要用于测试文件系统对 POSIX 标准的兼容性。root下
步骤 1:安装依赖
首先,确保你已经安装了必要的依赖工具,如 git、automake、gcc 等构建工具
sudo yum install git automake gcc make libtool
步骤 2:克隆 pjdfstest 仓库 使用 git 克隆 pjdfstest 仓库:
git clone https://github.com/pjd/pjdfstest.git
cd pjdfstest //进入文件
步骤 3:准备构建环境,因为没有runtest脚本的存在,也没有makefile文件存在,所以不能够直接make,先用autotools手动生成配置文件。
autoreconf -i
./configure
Make
成功编译。。。
有一个tests文件夹
进入文件cd tests
以上文件代表什么意思呢下面是每个文件夹的简要描述:
chflags:
用于测试 chflags 系统调用,该调用用来更改文件或目录的标志(例如不可修改、不可删除等)。
chmod:
用于测试 chmod 系统调用,该调用用来更改文件或目录的权限模式(例如可读、可写、可执行等)。
chown:
用于测试 chown 系统调用,该调用用来更改文件或目录的所有者和所属组。
conf:
可能包含配置文件或用于配置测试环境的脚本。
ftruncate:
用于测试 ftruncate 系统调用,该调用用来改变打开文件的大小。
granular:
可能包含一些细粒度的测试,具体取决于项目,可能测试文件系统操作的边界情况或细节。
link:
用于测试 link 系统调用,该调用用来创建文件的硬链接。
mkdir:
用于测试 mkdir 系统调用,该调用用来创建目录。
misc.sh:
可能是包含各种杂项测试的脚本。
mkfifo:
用于测试 mkfifo 系统调用,该调用用来创建命名管道(FIFO)。
mknod:
用于测试 mknod 系统调用,该调用用来创建特殊文件(例如设备文件)。
open:
用于测试 open 系统调用,该调用用来打开文件。
posix_fallocate:
用于测试 posix_fallocate 系统调用,该调用用来为文件预分配空间。
rename:
用于测试 rename 系统调用,该调用用来重命名文件或目录。
rmdir:
用于测试 rmdir 系统调用,该调用用来删除空目录。
symlink:
用于测试 symlink 系统调用,该调用用来创建符号链接(软链接)。
truncate:
用于测试 truncate 系统调用,该调用用来改变文件的大小。
unlink:
用于测试 unlink 系统调用,该调用用来删除文件。
utimensat:
用于测试 utimensat 系统调用,该调用用来更改文件的访问和修改时间。
如果只测试一个文件那么这么使用
sh chflags/00.t
输出
[root@openEuler tests]# sh chflags/00.t 1…1 ok 1
我现在要运行所有的测试脚本,我创建了一个sh脚本,我的目录是/home/openEuler/pjdfstest/tests,写脚本要给权限,chmod 777 /home/openEuler/pjdfstest/tests
运行下列脚本 ./test.sh我现在要运行所有的测试脚本,我创建了一个sh脚本,我的目录是/home/openEuler/pjdfstest/tests,写脚本要给权限,chmod 777 /home/openEuler/pjdfstest/tests
运行下列脚本 ./test.sh
#!/bin/bash# 进入 tests 目录
cd /home/openEuler/pjdfstest/tests# 遍历所有文件夹
for folder in */; doif [ -d "$folder" ]; thenecho "Testing $folder..."# 进入文件夹cd "$folder"# 遍历文件夹中的所有脚本文件for test_case in *.t; doif [ -f "$test_case" ]; thenecho "Running test case: $test_case"sudo sh "$test_case"echofidone# 返回上一级目录cd ..fi
done
测试结果:
test
测试输出结果,似乎有一些测试通过了,但有一个测试失败了,并标记为 “TODO”。这表示该测试在 Linux 环境下的预期行为与实际行为不同,但这种差异是已知的,且在测试脚本中已经标记出来了。测试输出结果,似乎有一些测试通过了,但有一个测试失败了,并标记为 “TODO”。这表示该测试在 Linux 环境下的预期行为与实际行为不同,但这种差异是已知的,且在测试脚本中已经标记出来了。
四 软件安装测试
安装QQ
首先去这个网站下载这个.sh
https://im.qq.com/linuxqq/download.html
用SCP命令移动到开发板中
进行安装:sudo sh linuxqq_2.0.0-b2-1089_arm64.sh
[openEuler@openEuler QQ]$ sudo sh linuxqq_2.0.0-b2-1089_arm64.sh
installing /usr/share/applications/qq.desktop
installing /usr/local/bin/qq
installing /usr/local/bin/crashpad_handler
installing /usr/local/share/tencent-qq/CHANGELOG.txt
installing /usr/local/share/tencent-qq/qq.png
installing /usr/local/share/tencent-qq/credits.html
installing /usr/local/share/tencent-qq/res.db
安装成功
至于微信的话怕是有点难度,可以先用wine代替一下,或者执行老一套把,这里不演示了。
五 GPIO测试
另外对自带的gpio进行测试
我将采用C++代码对GPIO进行文件操作。
此处有一个坑sudo yum update升级问题,如果有幸进坑了那么这个glibc版本就不对了,这个gpio_operate就不用了,需要降级
降级命令:sudo yum downgrade glibc glibc-common
之后就可以用gpio_operate对对他操作了。还有需要进行在root下:
#include <iostream>
#include <fstream>
#include <string>
#include <unistd.h>using namespace std;// 定义管脚
const string GPIO_PIN = "12";// ??GPIO
void exportGPIO() {ofstream exportGPIO("/sys/class/gpio/export");if (exportGPIO.is_open()) {exportGPIO << GPIO_PIN;exportGPIO.close();} else {cerr << "无法导出GPIO" << endl;}
}// 设置GPIO方向
void setGPIODirection(const string& direction) {ofstream gpioDirection("/sys/class/gpio/gpio" + GPIO_PIN + "/direction");if (gpioDirection.is_open()) {gpioDirection << direction;gpioDirection.close();} else {cerr << " 设置GPIO方向?" << endl;}
}// 写入GPIO
void writeGPIOValue(const string& value) {ofstream gpioValue("/sys/class/gpio/gpio" + GPIO_PIN + "/value");if (gpioValue.is_open()) {gpioValue << value;gpioValue.close();} else {cerr << "无法写入GPIO" << endl;}
}int main() {// ??GIOexportGPIO();sleep(1); // 等待管教输出//设置方向setGPIODirection("out");// 设置为高writeGPIOValue("1");sleep(1); writeGPIOValue("0");return 0;
}
这里写了一个小例子,就可以对GPIO进行控制了,但是这样感觉效率不太高。不过这个板子主要用来干一些推理强一些。本期先写到这,下一期进行目标检测推理,如果训练一些轻量化的模型应该不是问题。
六 总结:
初次尝试香橙派开发板,感受到了其强大的性能和易用性。香橙派不仅预装了多款实用工具,而且接口丰富,生态系统完善,并且拥有全面的国产中文文档,极具探索价值。随着逐步深入探索,期待未来能分享更多关于香橙派的使用教程和技术博文,带来更多有趣的内容。
相关文章:

OrangePi Kunpeng Pro套装测评:开箱与基本功能测试
前言 大家好,我是起个网名真难。非常荣幸受到香橙派的邀请,同时也是第一次做这个事情,很荣幸对香橙派与华为鲲鹏在2024年5月12日联合发布的新品——香橙派Kunpeng Pro开发板进行深入的评测。这款开发板是香橙派与华为鲲鹏合作推出的高性能平…...
RocketMQ教程(二):RocketMQ以及控制台的安装
RocketMQ-Console RocketMQ-Console 是一个针对 Apache RocketMQ 的开源 Web 监控和管理平台。它提供了一个用户友好的界面,通过 Web 浏览器允许用户对 RocketMQ 集群进行管理和监控。这个控制台使得管理和监测 RocketMQ 集群变得更加直观和方便,特别是对于不熟悉命令行操作的…...

电脑记事本怎么恢复之前的内容记录
每个人都曾有过这样的时刻——在记事本上精心记录下的重要内容,一不小心就被删除了。那种心情,仿佛一瞬间从山顶跌落到谷底,无尽的懊悔涌上心头。我也曾遭遇过这样的困境,那些消失的文字对我来说意义非凡,它们的丢失仿…...

Windows下设置pip代理(proxy)
使用场景 正常网络情况下我们安装如果比较多的python包时,会选择使用这种 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-hostpypi.tuna.tsinghua.edu.cn 国内的镜像来加快下载速度。 但是,当这台被限制上…...

【调试笔记-20240530-Linux-在 OpenWRT-23.05 上为 nginx 配置 HTTPS 网站】
调试笔记-系列文章目录 调试笔记-20240530-Linux-在 OpenWRT-23.05 上为 nginx 配置 HTTPS 网站 文章目录 调试笔记-系列文章目录调试笔记-20240530-Linux-在 OpenWRT-23.05 上为 nginx 配置 HTTPS 网站 前言一、调试环境操作系统:OpenWrt 23.05.3调试环境调试目标…...
安装 hbase(伪分布式)
目录 1、安装 jdk8 (1)选择 jdk 版本 (2)下载 jdk 并解压 (3)配置环境变量 2、安装hadoop (1)添加 hadoop 用户,配置免密登录 (2)下载 hado…...
Angular-数组循环
简单数组 .ts-定义一个数组 // 第一种定义方式 public arr1:string[] [aa,bb,cc]; // 完整版 arr2:string[] [aa,bb,cc]; // 省略版 public objects:any[] [{username:Echoo,age:18},{username:Amily,age:39},{username:Mike,age:34}]; // 元素是对象 //第二种定…...

初级网络工程师之入门到入狱(一)
本文是我在学习过程中记录学习的点点滴滴,目的是为了学完之后巩固一下顺便也和大家分享一下,日后忘记了也可以方便快速的复习。 网络工程师从入门到入狱 前言一、交换机二、路由器三、DHCP(动态主机配置协议)四、路由器配置 DHCP自…...

数据挖掘与机器学习——分类算法
目录 机器学习算法最普通分类: 分类算法的定义: 分类算法的应用: 分类器实现分类: 分类器的构建标准: 概率模型: 贝叶斯公式: 朴素贝叶斯算法(朴素贝叶斯分类器)…...

变压器励磁涌流MATLAB仿真模型
微❤关注“电气仔推送”获得资料(专享优惠) 变压器励磁涌流的产生机理 1、变压器是电力系统的关键部分,在实际的 运行中,变压器需要进行相应的充电,而在充电的过 程中,就需要进行开合闸作业。在开合闸作业…...

ToxVidLLM:一个用于检测有害视频的多模态多任务框架
在一个社交媒体平台赋予用户成为内容创作者力量的时代,数字领域见证了前所未有的信息传播激增,到2023年,近82%的互联网流量是视频内容。因此,像抖音和YouTub这样的平台已经成为主要的信息来源。一个显著的统计数据凸显了这些平台的…...

比较(二)利用python绘制雷达图
比较(二)利用python绘制雷达图 雷达图(Radar Chart)简介 雷达图可以用来比较多个定量变量,也可以用于查看数据集中变量的得分高低,是显示性能表现的理想之选。缺点是变量过多容易造成阅读困难。 快速绘制…...
Visual Studio怎么用?
Visual Studio的使用涉及多个方面,以下是一个清晰的使用指南,涵盖了Visual Studio的基本功能、安装、界面介绍、项目创建、代码编写、调试和发布等关键步骤: 一、Visual Studio简介 Visual Studio是由微软公司开发的一款集成开发环境&#…...
Python工程中,__init__.py文件有什么用
在Python工程中,__init__.py 文件有几个重要的用途: 标识目录为包: 在Python 3.3之前,__init__.py 文件的存在是为了告诉解释器,该目录是一个Python包。这使得包中的模块可以被导入和使用。即使在Python 3.3之后可以没…...

YOLOv10环境搭建推理测试
引子 两个多月前YOLOv9发布(感兴趣的童鞋可以移步YOLOv9环境搭建&推理测试_yolov9安装-CSDN博客),这才过去这么短的时间,YOLOv10就横空出世了。现在YOLO系列搞得就和追剧一样了。。。OK,那就让我们开始吧。 一、…...

tomcat-memcached会话共享配置
目录 1、安装memcache服务 2、把依赖的jar包移至tomcat/lib目录下 3、配置tomcat/conf/context.xml 4、重启tomcat服务 1、安装memcache服务 具体安装步骤此处不详细说明,自行根据实际情况安装即可 2、把依赖的jar包移至tomcat/lib目录下 3、配置tomcat/conf/c…...

404错误页面源码,简单实用的html错误页面模板
源码描述 小编精心准备一款404错误页面源码,简单实用的html错误页面模板,简单大气的页面布局,可以使用到不同的网站中,相信大家一定会喜欢的 效果预览 源码下载 https://www.qqmu.com/3375.html...

AI程序员来了,大批码农要失业
根据GitHub发布的《Octoverse 2021年度报告》,2021年中国有755万程序员,排名全球第二。 ChatGPT的出现,堪比在全球互联网行业点燃了一枚“核弹”,很多人都会担心“自己的工作会不会被AI取代”。 而2024年的AI进展速度如火箭般&am…...

车联网安全入门——CAN总线模糊测试
文章目录 车联网安全入门——CAN总线模糊测试介绍主要特点使用场景 模糊测试(Fuzz Testing)CAN 总线模糊测试(CAN Packet Fuzzing)主要步骤工具和软件主要目标 Can-Hax安装使用获得指纹模糊测试 SavvyCAN 总结参考 车联网安全入门…...
JDBC常见异常(10)—预编译模式下占位符动态排序字段失效
场景需求 需要根据不同的列进行对应的排序操作,实现动态列名排序 类似🐟动态查询或更新 但是JDBC预编译模式下占位符的排序字段失效 SQL语句 分页查询 select * from (select t.*, rownum rn from(select * from emp order by empno desc) t where …...

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...

dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...

视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...