OrangePi Kunpeng Pro开发板初体验——家庭小型服务器
引言
在开源硬件的浪潮中,开发板作为创新的基石,正吸引着全球开发者的目光。它们不仅为技术爱好者提供了实验的平台,更为专业开发者带来了实现复杂项目的可能性。本文将深入剖析OrangePi Kunpeng Pro开发板,从开箱到实际应用,全面评估其性能与实用性。
开箱体验
当OrangePi Kunpeng Pro套装首次映入眼帘,其精致的包装设计和周到的配件选择便令人印象深刻。套装内含的主板、电源适配器及数据线、高效散热片以及一张32GB的高速存储卡,共同构成了一个功能完备的开发环境,为创意实现提供了坚实的硬件基础。
硬件概览
OrangePi Kunpeng Pro的主板设计紧凑而不失专业,搭载了一颗性能强劲的4核64位Arm处理器,搭配8GB或16GB的LPDDR4X内存,足以应对各种中小型项目的需求。
存储方面,除了板载的32MB SPI Flash,还提供了Micro SD卡插槽、eMMC插座以及M.2 M-Key接口,支持2280规格的NVMe SSD或SATA SSD,为数据存储提供了多样化的选择。
网络连接方面,板载的RTL8211F PHY芯片支持10/100/1000Mbps以太网,而Wi-Fi+蓝牙模块则提供了2.4G和5G双频Wi-Fi及BT4.2,确保了无线连接的高速与稳定。此外,2个USB3.0 Host接口和1个Type-C接口(仅支持USB3.0)提供了丰富的外设扩展能力。
显示与音频输出同样不落下风,2个HDMI接口和1个MIPI DSI 2 Lane接口满足了多屏显示需求,而1个3.5mm耳机孔输出则为音频爱好者提供了高品质的音频体验。40 pin的扩展口更是为开发者提供了UART、I2C、SPI、PWM和GPIO等丰富的接口选项。
安装与使用
OrangePi Kunpeng Pro的安装过程异常简便。预装的openEuler 22.03操作系统让初次启动变得轻松愉快。仅需将电源接入Type-C接口、HDMI线接入HDMI0接口,并将有线鼠标和键盘插入USB-A接口,拨动拨码开关至最右侧,即可一键启动,迅速进入系统桌面。
通过设置界面,连接上wifi网络,打开终端界面,输入命令ifconfig wlan0
,记录下OrangePi Kunpeng Pro的wlan0网口IP地址。
实际应用案例——智能家居开源系统Homeassistant
将OrangePi Kunpeng Pro作为家庭小型服务器的想法,让我在家中就能享受到智能家居带来的便利。通过系统界面配置好无线网络或者有线网络,获取到ip地址后,在路由器上做一个端口转发将22端口转发出去,之后就可以抛弃桌面系统,在任何地方通过SSH远程连接至开发板,实现对家中智能设备的远程控制。
下图是在公司通过SSH成功远程连接至家里的OrangePi Kunpeng Pro开发板。
Docker安装
为了方便快速的部署Homeassistant,需要在OrangePi Kunpeng Pro开发板上安装docker服务。 在root用户下执行yum install docker -y
或在非root用户下执行sudo yum install docker -y
,等待安装完成,通过docker -v
命令查看版本号,确认docker服务安装成功。
Homeassistant简介及安装
HomeAssistant,简称HA,是一款基于Python开发的智能家居开源系统。它支持市面上众多品牌的智能家居设备,能够轻松实现设备的语音控制和自动化管理。通过Docker容器化部署,安装过程变得异常简单:
docker run -d \
--name homeassistant \
--restart=always \
--privileged \
--hostname homeassistant \
-e TZ=Asia/Shanghai \
-v /hdd/opt/homeassistant:/config \
-v /hdd/downloads:/media \
--net=host \
ghcr.io/home-assistant/home-assistant:stable
参数解释
-
docker run
:这是Docker运行容器的基本命令。 -
-d
:表示以守护进程模式运行容器。 -
--name homeassistant
:指定容器的名称为homeassistant
。 -
--restart=always
:设置容器在退出时总是尝试重启。 -
--privileged
:以特权模式运行容器,这通常用于需要访问宿主机硬件或需要更高权限的容器。 -
--hostname homeassistant
:设置容器的主机名为homeassistant
。 -
-e TZ=Asia/Shanghai
:设置容器的时区为上海时区。 -
-v /hdd/opt/homeassistant:/config
:将宿主机的/hdd/opt/homeassistant
目录挂载到容器的/config
目录,用于存储Home Assistant的配置文件。 -
-v /hdd/downloads:/media
:将宿主机的/hdd/downloads
目录挂载到容器的/media
目录,可能用于存储下载的文件或其他媒体内容。 -
--net=host
:将容器的网络设置为宿主机的网络,这样容器内的应用程序就可以直接使用宿主机的网络接口。 -
ghcr.io/home-assistant/home-assistant:stable
:指定要运行的Home Assistant镜像的来源和版本号。这里是从GitHub Container Registry (ghcr.io) 拉取的官方Home Assistant镜像,标签为stable
,表示稳定版本。
输入命令docker ps
,显示一条正在运行的homeassistant容器,那么恭喜你,homeassistant安装成功。
应用界面
接下来在浏览器中输入地址“http://localhost:8123”,不出意外的话,应该可以看到如下界面,尽情去创建自己的智能家居吧。
实际应用案例——开源种子下载工具qbittorrent
qbittorrent简介及安装
qbittorrent作为一款开源的BitTorrent下载客户端,以其强大的功能和轻巧的体积,为用户提供了一个无广告、无捆绑的下载体验。无论是4k高清电影、大型游戏还是系统镜像,都能通过它轻松下载。
docker run -d \
--name=qbittorrent \
-e PUID=0 \
-e PGID=0 \
-e TZ=Asia/Shanghai \
-e WEBUI_PORT=8080 \
--net=host \
--hostname qbittorrent \
-v /ssd/dockerData/qbittorrent/config:/config \
-v /ssd/downloads:/downloads \
--restart always \
ghcr.io/linuxserver/qbittorrent:4.6.0
参数解释
-
-d
:表示以守护进程模式运行容器。 -
--name=qbittorrent
:指定容器的名称为qbittorrent
。 -
-e PUID=0
和-e PGID=0
:设置环境变量PUID
和PGID
,分别代表用户ID和组ID。这里设置为0,通常意味着使用root用户。 -
-e TZ=Asia/Shanghai
:设置容器的时区为上海时区。 -
-e WEBUI_PORT=8080
:设置qBittorrent Web界面的端口为8080。 -
--net=host
:将容器的网络设置为宿主机的网络,这样容器内的应用程序就可以直接使用宿主机的网络接口。 -
--hostname qbittorrent
:设置容器的主机名为qbittorrent
。 -
-v /ssd/dockerData/qbittorrent/config:/config
:将宿主机的/ssd/dockerData/qbittorrent/config
目录挂载到容器的/config
目录,用于存储qBittorrent的配置文件。 -
-v /ssd/downloads:/downloads
:将宿主机的/ssd/downloads
目录挂载到容器的/downloads
目录,用于存储下载的文件。 -
--restart always
:设置容器在退出时总是尝试重启。 -
ghcr.io/linuxserver/qbittorrent:4.6.0
:指定要运行的qBittorrent镜像的来源和版本号。这里是从GitHub Container Registry (ghcr.io) 拉取的LinuxServer维护的qBittorrent镜像,版本为4.6.0。
输入命令docker ps
,同样会显示一条正在运行的qbittorrent
容器,那么恭喜你,qbittorrent
安装成功。
应用界面
接下来在浏览器中输入地址“http://localhost:8080”,显示登录界面,默认用户名和密码为admin/adminadmin,下图为下载win11镜像测试。
试用感受
经过对OrangePi Kunpeng Pro的初体验,我对OrangePi Kunpeng Pro的整体表现感到非常满意。它不仅性能卓越,而且操作简便,无论是对于初学者还是专业开发者,都是一个理想的选择。尽管在功耗方面略高于同类产品,但这并不影响它成为我心目中的理想开发板。OrangePi Kunpeng Pro以其出色的性能和实用性,无疑值得推荐给每一位寻求高性能开发板的开发者。
相关文章:

OrangePi Kunpeng Pro开发板初体验——家庭小型服务器
引言 在开源硬件的浪潮中,开发板作为创新的基石,正吸引着全球开发者的目光。它们不仅为技术爱好者提供了实验的平台,更为专业开发者带来了实现复杂项目的可能性。本文将深入剖析OrangePi Kunpeng Pro开发板,从开箱到实际应用&…...

AquaCrop农业水资源管理,模拟作物生长过程中水分的需求与消耗
AquaCrop是由世界粮食及农业组织(FAO)开发的一个先进模型,旨在研究和优化农作物的水分生产效率。这个模型在全球范围内被广泛应用于农业水管理,特别是在制定农作物灌溉计划和应对水资源限制方面显示出其强大的实用性。AquaCrop 不…...
爬虫之re数据清洗
文章目录 一、正则【Regular】二、重要语法1、获取内容: 左边(.*?)右边2、替换数据: re.sub(源数据|源数据, 目标数据, 字符串) 一、正则【Regular】 概念: 根据程序员的指示, 从<字符串>中提取数据 结果: 列表 使用频率: 正则跟xpath相比, 正则是弟弟 二、重要语法 …...

惯性动作捕捉与数字人实时交互/运营套装,对高校元宇宙实训室有何作用?
惯性动作捕捉与数字人实时交互/运营套装,可以打破时空限制,通过动捕设备写实数字人软件系统动捕设备系统定制化数字人短视频渲染平台,重塑课程教学方式,开展元宇宙沉浸式体验教学活动和参观交流活动。 写实数字人软件系统内置丰富…...

Leecode---栈---每日温度 / 最小栈及栈和队列的相互实现
栈:先入后出;队列:先入先出 一、每日温度 Leecode—739题目: 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温…...

Linux系统编程——动静态库
目录 一,关于动静态库 1.1 什么是库? 1.2 认识动静态库 1.3 动静态库特征 二,静态库 2.1 制作静态库 2.2 使用静态库 三,动态库 3.1 制作动态库 3.2 使用动态库一些问题 3.3 正确使用动态库三种方法 3.3.1 方法一&…...
json formatter哪个好用
在众多的JSON Formatter工具中,确实有几个相当出色的选择,它们各自拥有独特的特点和优势,可以满足不同用户群体的需求。下面就来为大家推荐几个好用的JSONFormatter工具: 1. JSON Formatter & Validator:这款工具…...
react的hooks是什么意思
React Hooks 是 React 16.8 版本引入的一个新特性,它允许你在不编写类组件的情况下使用状态和其他React特性。Hooks使得函数组件变得更加灵活和强大,因为你可以在其中添加状态逻辑、生命周期方法以及其他React功能。 在传统的React类组件中,…...
AVFrame相关接口(函数)
分配和释放 分配 AVFrame AVFrame *av_frame_alloc(void); 分配一个新的 AVFrame 并返回一个指向它的指针。返回的 AVFrame 需要手动释放。 释放 AVFrame void av_frame_free(AVFrame **frame); 释放由 av_frame_alloc 分配的 AVFrame。这个函数会释放帧的数据并将指针设为 …...

低代码与人工智能的深度融合:行业应用的广泛前景
引言 在当今快速变化的数字化时代,企业面临着越来越多的挑战和机遇。低代码平台和人工智能技术的兴起,为企业提供了新的解决方案,加速了应用开发和智能化转型的步伐。 低代码平台的基本概念及发展背景 低代码平台是一种软件开发方法&#x…...
嵌入式测试基础知识
1.白盒测试也称为结构测试,主要用于检测软件编码过程中的错误。 2.黑盒测试又称为功能测试,主要检测软件的每一个功能是否能够正常使用。 3.软件测试流程:根据测试需求编写测试计划、方案,测试用例,做测试分析&#…...

基于网关的ip频繁访问web限制
一、前言 外部ip对某一个web进行频繁访问,有可能是对web进行攻击,现在提供一种基于网关的ip频繁访问web限制策略,犹如带刀侍卫,审查异常身份人员。如发现异常或者暴力闯关者,即可进行识别管制。 二、基于网关的ip频繁访…...

GSM信令流程(附着、去附着、PDP激活、修改流程)
1、联合附着流程 附着包括身份认证、鉴权等 2、去附着流程 用户发起去附着 SGSN发起去附着 HLR发起去附着 GSSN使用S4发起去附着 3、Activation Procedures(PDP激活流程) 4、PDP更新或修改流程 5、Deactivate PDP Context 6、RAU(Routeing Area Update)流程 7、鉴权加…...

OAK相机如何将 YOLOv10 模型转换成 blob 格式?
编辑:OAK中国 首发:oakchina.cn 喜欢的话,请多多👍⭐️✍ 内容可能会不定期更新,官网内容都是最新的,请查看首发地址链接。 Hello,大家好,这里是OAK中国,我是Ashely。 专…...

【Python】解决Python报错:AttributeError: ‘class‘ object has no attribute ‘xxx‘
🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…...

反思 GTC 和 OFC 2024:没有一刀切的方法,但上市时间是关键!
在GTC 2024期间,英伟达宣布了最新的Blackwell B200张量核心GPU,旨在为万亿参数的AI大型语言模型提供支持。Blackwell B200需要先进的800Gbps网络,完全符合在AI工作负载的AI网络报告中概述的预测。随着人工智能工作负载的流量预计每两年增长10…...
速盾:bgp 静态 cdn
BGP(边界网关协议)是一种用于在互联网中交换路由信息的协议,它允许不同自治系统(AS)之间的路由器进行通信和交换路由信息。CDN(内容分发网络)是一种通过将内容分散放置在全球各地的服务器上&…...

union all 以及标量子查询执行计划
SELECT 1, (SELECT ID1 FROM TE WHERE IDA.ID2) FROM .TA A WHERE COLA X UNION ALL SELECT 1, (SELECT ID2 FROM TD WHERE IDA.ID1) FROM .TB A WHERE COLA X UNION ALL SELECT 1,COL2 AS PARENT_UUID FROM .TC a WHERE COLA X 三个union all 看着像是5个table joi…...

上位机图像处理和嵌入式模块部署(f103 mcu和Qt上位机联动)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 之前我们写过一篇文章,上面说的是如何利用串口对mcu进行控制,即如果利用串口实现mcu led灯的点亮和熄灭。输入1的时候&…...

TiKV学习5:TiDB SQL执行流程
目录 1. DML语句读流程概要 2. DML语句写流程概要 3. DDL 流程概要 4. SQL的Parse和Compile 5. 读取的执行 6. 写入的执行 7. DDL的执行 8. 小结 1. DML语句读流程概要 TiDB Server接收sql并处理,TiKV负责持久化数据,PD提供TSO和Region的数据字典…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
高防服务器价格高原因分析
高防服务器的价格较高,主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因: 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器,因此…...