OrangePi Kunpeng Pro套装测评:开箱与基本功能测试

2024-06-04 05:36

本文主要是介绍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是你自己的)

  1. 然后使用 nmcli dev wifi 命令扫描周围的 WIFI 热点。
    nmcli dev wifi
  2. 然后使用 nmcli 命令连接扫描到的 WIFI 热点,其中:
    a. wifi_name 需要换成想连接的 WIFI 热点的名字。
    b. wifi_passwd 需要换成想连接的 WIFI 热点的密码。
    sudo nmcli dev wifi connect wifi_name password wifi_passwd
  3. 通过 ip addr show wlan0 命令可以查看 wifi 的 IP 地址。
    [openEuler@openEuler ~]$ ip a s wlan0
  4. 使用 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套装测评:开箱与基本功能测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1029206

相关文章

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

C 语言的基本数据类型

C 语言的基本数据类型 注:本文面向 C 语言初学者,如果你是熟手,那就不用看了。 有人问我,char、short、int、long、float、double 等这些关键字到底是什么意思,如果说他们是数据类型的话,那么为啥有这么多数据类型呢? 如果写了一句: int a; 那么执行的时候在内存中会有什么变化呢? 橡皮泥大家都玩过吧,一般你买橡皮泥的时候,店家会赠送一些模板。 上

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

Java 多线程的基本方式

Java 多线程的基本方式 基础实现两种方式: 通过实现Callable 接口方式(可得到返回值):

Java基础回顾系列-第一天-基本语法

基本语法 Java基础回顾系列-第一天-基本语法基础常识人机交互方式常用的DOS命令什么是计算机语言(编程语言) Java语言简介Java程序运行机制Java虚拟机(Java Virtual Machine)垃圾收集机制(Garbage Collection) Java语言的特点面向对象健壮性跨平台性 编写第一个Java程序什么是JDK, JRE下载及安装 JDK配置环境变量 pathHe

Gradle的基本使用

新建一个项目后,在项目文件夹下创建build.gradle文件,并加入内容:       apply plugin: 'eclipse'。    然后在终端运行gradle eclipse即可构建eclipse IDE的开发环境。    gradle默认值:gradle有些目录是有默认值存在,建议项目的配置,承袭了maven的风格,如:         java的源码目录:src/mai

QML入门之基本元素

元素分为可视元素与非可视元素,可能元素例如Rectangle、Button等。非可视元素如Timer(定时器)、MouseArea(鼠标区域)等。非可视元素一般用于操作可视元素。 基础元素 Item Item(基础元素对象)是所有可视元素的基础对象,它们都继承自Item。可是元素存在以下共有属性。 Group(分组)Properties(属性)Geometry(几何属性)x

2021-8-14 react笔记-2 创建组件 基本用法

1、目录解析 public中的index.html为入口文件 src目录中文件很乱,先整理文件夹。 新建components 放组件 新建assets放资源   ->/images      ->/css 把乱的文件放进去  修改App.js 根组件和index.js入口文件中的引入路径 2、新建组件 在components文件夹中新建[Name].js文件 //组件名首字母大写

ExpandableListView的基本用法

QQ上的好友列表在Android怎么实现,有一个最简单的方法,那就是ExpandableListView,下面简单介绍一下ExpandableListview的用法。 先看看效果图,没有找到大小合适的图片,所以凑合着看吧。     一、准备工作(界面,和需要的数据)             <? xml   version = "1.0"   encoding =