OrangePi Kunpeng Pro 开箱测评之一步到喂

前情提要:大家好,我是Samle。有幸接到 CSDN 发来的测评邀请,下面针对 OrangePi Kunpeng Pro 开发板进行一些实践操作,让大家能更好的上手这块板子。


以下内容来自 官方说明

  • OrangePi Kunpeng Pro采用4核64位处理器+AI处理器,集成图形处理器,支持8TOPS AI算力,拥有8GB/16GB LPDDR4X,可以外接32GB/64GB/128GB/256GB eMMC模块,支持双4K高清输出。

  • OrangePi Kunpeng Pro引用了相当丰富的接口,包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB(串口打印调试功能)、两个MIPI摄像头、一个MIPI屏等,预留电池接口等。

  • OrangePi Kunpeng Pro支持openEuler操作系统,满足大多数AI算法原型验证、推理应用开发的需求,同时可以为各种应用场景提供更高效的算力,如云计算、大数据、分布式存储、高性能计算等。



接下来我将从外观、环境搭建、相关服务部署等多个方面进行介绍,下面就让我们进入正题:

一、开箱

1.1 外观展示

382d6a527877497f8bc3ef4cfb6fe9ad.jpg bbb418e83f9b43e9be6ff1f8c24a121e.jpg
8b2678ec5c184a3594d7d8015fdc4078.jpg b2e055849422423aa48d5f894a7a0a6e.jpg

整个板子尺寸107x68mm,重量82g,不考虑散热模块厚度的话,比一般手机略小。相关硬件接口如下所示:

6a3b7b09c1be4289ae21ef831937155b.png

1.2 性能/接口参数

官方参数

项目参数
CPU4核64位处理器+ AI处理器
GPU集成图形处理器
AI算力8TOPS算力
内存LPDDR4X:8GB/16GB(可选),速率:3200Mbps
存储• SPI FLASH:32MB
• SATA/NVME SSD(M.2接口2280)
• eMMC插槽:32GB/64GB/128GB/256GB(可选),eMMC5.1 HS400
• TF插槽
Wi-Fi+蓝牙Wi-Fi 5双频2.4G和5G
BT4.2/BLE
以太网收发器10/100/1000Mbps以太网
显示• 2xHDMI2.0 Type-A TX 4K@60FPS
• 1x2 lane MIPI DSI via FPC connector
摄像头2x2-lane MIPI CSI camera interface,兼容树莓派摄像头
USB• USB 3.0 HOST x2
• USB Type-C 3.0 HOST x1
• Micro USB x1 串口打印功能
音频3.5mm耳机孔音频输入/输出
按键1x关机键、1xRESET键、2x启动方式拨动键、1x烧录按键
40PIN40PIN 功能扩展接口,支持以下接口类型:GPIO、UART、I2C、SPI、 I2S、PWM
风扇风扇接口x1
预留接口2PIN电池接口
电源Type-C PD 20V IN ,标准65W
支持的操作系统openEuler

1.3 上电开机

拿到板子第一步,当然是开机啦,那对于这个光秃秃的开发板,我们来看下要怎样正常开机。

1.3.1 拨码开关

开发板支持从 TF 卡、eMMC 和 SSD(支持 NVMe SSD 和 SATA SSD)启动。具体想从哪个设备启动是由开发板背面的两个拨码(BOOT1 和 BOOT2)开关来控制的。

4520b2efd168491b811131833f1d43d0.png
拨码开关

BOOT1 和 BOOT2 两个拨码开关都支持左右两种设置状态,所以总共有 4种设置状态,开发板目前只使用了其中的三种。不同的设置状态对应的启动设备如下表所示:

拨码开关 BOOT1拨码开关 BOOT2对应的启动设备
未使用
SATA SSD 和 NVMe SSD
eMMC
TF 卡
1.3.2 HDMI接口

一开始当然还是借助显示屏进行装机比较方便,开发板有两个 HDMI 接口(目前只有 HDMI0 支持显示 Linux 系统的桌面,HDMI1 显示 Linux 系统桌面的功能还需等软件更新),如果想显示 Linux 系统的桌面,可以将开发板的 HDMI0 接口连接到 HDMI 显示器。

31e7001c5029424fb56659f03b05ae3b.png
HDMI0接口位置

1.3.3 电源接口

有两个TypeC接口,右侧那个是电源接口,开发板上电开机后,需要等待一段时间,HDMI 显示器才会显示 Linux 系统的登录界面。关机键无开机功能,上电等待自动开机。

6af82e82bca64776a338a160b9869371.png
TypeC电源接口


bb716ed4193946c6a37942d44b347661.jpg
真实接线效果

上电后等待几秒钟,即可正常开机,默认初始账号 openEuler 密码 openEuler。默认 rootopenEuler 用户的密码都为 openEuler

72200753d58a4f4f8a270d9488142291.jpg 40b9fe7ad6e94051a1cc0a7318703330.jpg

二、使用说明

正常开机和接入显示设备后,我们就可以开始着手下一步的使用。

2.1 SSH连接

为了方便我们远程连接终端(不至于一直接着显示屏,毕竟众所周知,显示屏最贵的是占地面积)。
开发板默认开放SSH连接,需要先知道板子在内网的IP地址。

2.1.1 查看IP地址

网线连接模式下,(HDMI显示)桌面右上角点击可查看主菜单。点击有线展开有线设置。

0d37ca32b2ff450fa6d0a914a8a376be.jpg 6a4376b4abd84051af7f71dd31f23f43.jpg

网络有线设置的最右侧设置按钮,点击可查看IP地址。

fc9691989e864f1c9a4f6516729f95cc.jpg 3c535bd94f294f7d8e00bbd8cbb14556.jpg

2.1.2 使用SSH连接

这样我们就可以不用外接显示设备,使用任意SSH工具即可连接:账号 root 密码 openEuler

0256054415d5406ca64e830ed4a7fbb7.png 89400f97552b44328207f296f389c566.png

2.1.3 设置静态IP地址

默认分配的IP地址可能经常变动,不利于固定的使用SSH进行连接,这里需要设置静态 IP 地址。

8bdf9162d60342ec992b338d28743d71.jpg
设置静态IP,使用WIFI连接也需要进行相类似的操作进行配置即可。

d 如果使用WIFI,记得将有线网络关闭,并关闭自动连接,避免设置了相同的静态IP造成冲突导致无网络。

使用设置的IP进行连接,可以看到,IP地址已经修改成功。

549c3f99c576434b95ad63530ff43e2c.png
重新连接

2.1.4 修改Root账户密码

使用账号 root 密码 openEuler在SSH登陆,输入以下指令重设密码即可。

passwd root

2.2 安装Docker

Docker容器部署服务对于拓展功能来说还是相当方便的,所以接下来我们安装一下Docker

# 更新软件包索引
sudo yum makecache
# 安装Docker
sudo yum install docker -y
# 启动Docker服务
sudo systemctl start docker
# 设置Docker开机自启
sudo systemctl enable docker
# 验证Docker安装成功
sudo docker -v
# 下载docker-compose
curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 修改二进制文件的执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装是否成功
docker-compose --version

2.3 内网穿透 + SSH连接

2.3.1 内网穿透

参考 NPS内网穿透保姆级教程NPS内网穿透搭建(使用docker实现) 将SSH穿透到外网,以便于应对任意连接的WIFI

比如预先设置好连接手机热点,即可畅享在任何场合携带一个算力服务器

# 拉取镜像
docker pull ffdfgdfg/npc
# 创建挂载目录
mkdir -p /mnt/sdc/nps/conf
# 在NPS服务端创建客户端并展开可以查看到`客户端命令`,将命令中的server和key用来启动容器
docker run --restart=always -d --name=npc --net=host -v /mnt/sdc/nps/conf:/conf ffdfgdfg/npc -server=server-host:server-port -vkey=server-key -type=tcp
bdfcbdc47834484097c98b7ac3bdcbed.png
创建穿透隧道
2.3.2 SSH链接

即可使用外网的IP和端口进行SSH链接

4e8606b15b7e4f298c512d4b2ff6eac6.png
使用腾讯云OrcaTerm远程连接

通过右侧监控可以看到,这块OrangePi Kunpeng Pro开发板拥有4核8G的性能配置。

2.3.3 部署SSH连接工具

为了方便我们在任意有网设备上进行SSH连接,可以部署一个SSH连接工具sshwifty

# 拉取镜像
docker pull niruix/sshwifty:latest
# 创建挂载目录
mkdir -p /opt/sshwifty
# 生成秘钥 一路回车即可
openssl req -newkey rsa:4096 -nodes -keyout /opt/sshwifty/domain.key -x509 -days 90 -out /opt/sshwifty/domain.crt
# 启动容器
docker run --restart=always -d --name=sshwifty -p 5680:8182 -v /opt/sshwifty:/certs --env SSHWIFTY_DOCKER_TLSCERT="$(cat /opt/sshwifty/domain.crt)" --env SSHWIFTY_DOCKER_TLSCERTKEY="$(cat /opt/sshwifty/domain.key)" niruix/sshwifty:latest

再开穿透把5680开放到外部网络,方便使用(验证公网IP可访问,一样需要加https)

3a0c908602f64311bf9a3ad9214f8ae9.png 3fbedf8a188b489c9254c475f627ab62.png

2.4 远程桌面

远程桌面的连接形式由两种:使用Windows系统带有的远程连接进行链接,或者使用VNC,需要先使用显示器操作开放一下远程。

默认密码为openEuler

使用VNC需要先开放对应权限

f7829e51c5e84d07b97bf659e60e9aa3.png 65d9af01d72c4d4cab473532194d74f3.png

以上开放权限后,仍需在后续开启对应服务

2.4.1 XRDP + Windows远程连接

i 【异常】使用root账号登陆远程桌面会闪退

参考链接

# 引入下载源
wget https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
rpm -ivh epel-release-latest-8.noarch.rpm --nodeps
# 安装不上的时候试着删除yum remove epel-release后重新执行上面的下载安装
# 安装远程连接软件 xrdp
yum -y install xrdp
# sed -i 's/port=3389/port=3390/g' /etc/xrdp/xrdp.ini
sed -i 's/max_bpp=32/max_bpp=24/g' /etc/xrdp/xrdp.ini
touch .xsession
echo xfce4-session > /root/.xsession
chmod +x /root/.xsession
systemctl restart xrdp && systemctl enable xrdp
# 删除前面引入的下载源配置文件
rm -rf /etc/yum.repos.d/epel*
9ca4ddbd36974021b760dafc75590361.png 27846bc7402e4f3aa934cffbf9610818.png
2.4.2 VNC
# 这两行指令好像没用上
yum install python3-pip
pip3 install websockify
# 启动VNC服务器(如果在前面  2.4 远程桌面 没有设置VNC,这一步可能要设置密码,默认应该是openEuler)
vncserver
# 终止多余的会话
vncserver -kill :2
# 查看VNC占用端口(59开头的)
netstat -tulpn | grep ":59"
>>> tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      19675/Xvnc
>>> tcp6       0      0 :::5901                 :::*                    LISTEN      19675/Xvnc
# 这个方法不行
# 将VNC服务器的端口映射到一个HTTP端口(例如:6080)
# websockify 5681 localhost:5901
# 通过HTTP协议直接连接VNC服务器
# http://OpenEulerIP:5681/vnc.html

参考 Web方式交付VNC 安装 novnc 将VNC服务发布到WEB端

yum install git npm
git clone https://github.com/novnc/noVNC.git
cd ./noVNC/utils/
# 要将生成的self.pem文件放到noVNC/utils底下 一路回车
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem
# 切回主菜单
cd
# 切到项目地址
cd ./noVNC
# 安装依赖
npm install
# 切回主菜单
cd
# 测试启动项目,设置为localhost:5681的话只能通过穿透访问
./noVNC/utils/novnc_proxy --vnc localhost:5901 --listen 0.0.0.0:5681
# 通过HTTP协议直接连接VNC服务器
# http://OpenEulerIP:5681/vnc.html
30060318ce96485ab924f741bb4ac721.png
通过HTTP协议直接连接VNC服务器
2.4.2.1 NoVnc设置开机自启动
  1. 创建文件夹存放日志

    mkdir -p /opt/vnc
    
  2. 设置环境变量

    vim ~/.bashrc
    

    写入

    export HOME=/root
    

    执行生效

    source ~/.bashrc
    
  3. 创建rc-local.service文件
    如果存在的话可以不用创建

    sudo vim /etc/systemd/system/rc-local.service
    

    写入

    [Unit]
    Description=/etc/rc.local Compatibility
    ConditionPathExists=/etc/rc.local
    [Service]
    Type=forking
    ExecStart=/etc/rc.local start
    TimeoutSec=0
    StandardOutput=tty
    RemainAfterExit=yes
    SysVStartPriority=99
    [Install]
    WantedBy=multi-user.target
    
  4. 写入rc.local文件

    vi /etc/rc.local
    # vi /etc/rc.d/rc.local
    

    加入启动指令

    # 环境变量不生效报:vncserver: The HOME environment variable is not set.
    # 直接在指令前指定环境变量
    export HOME=/root
    # 不在这里启动vncserver 否则会连接异常
    # nohup sudo /usr/bin/vncserver > /opt/vnc/vncserver.log 2>&1 &
    nohup sudo /root/noVNC/utils/novnc_proxy --vnc localhost:5901 --listen 0.0.0.0:5681 > /opt/vnc/novnc.log 2>&1 &
    

    保存后授权文件

    chmod +x /etc/rc.local
    chmod +x /etc/rc.d/rc.local # 授权
    
  5. 启用服务

    sudo systemctl enable rc-local
    
  6. 启动服务并检查状态

    sudo systemctl start rc-local.service
    sudo systemctl status rc-local.service
    
  7. 重启测试

    reboot
    
  8. 或者脚本启动
    构造脚本

    vi start_vnc.sh
    

    写入

    #!/bin/bash
    # nohup sudo vncserver > /opt/vnc/vncserver.log 2>&1 &
    nohup sudo /root/noVNC/utils/novnc_proxy --vnc localhost:5901 --listen 0.0.0.0:5681 > /opt/vnc/novnc.log 2>&1 &
    

    设置

    vi /etc/rc.local
    

    加入启动指令

    export HOME=/root
    /root/start_vnc.sh
    
2.4.2.2 vncserver开机自启

w 注意:如果不使用以下方法设置,而使用rc.local开机启动vncserver,可能会导致连接异常

1913680fc40e46d2b558d5e575a7a76a.png
连接异常
  1. 添加映射用户
    编辑文件/etc/tigervnc/vncserver.users
    例如设置用户root来启动VNC显示,则添加一行 :1=root

    vi /etc/tigervnc/vncserver.users
    

    d 此处添加的用户必须是已经存在的系统用户,否则会报错提示用户不存

    726e49ac3fa24fce9eb84bc081d99c57.png

  2. 拷贝示例服务文件
    根据步骤1,将示例文件命名为对应编号的配置文件。

    cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
    
  3. 重新加载 systemd 配置

    systemctl daemon-reload
    
  4. 启动服务

    # 设置开机自启
    systemctl enable vncserver@:1.service
    # 启动服务
    systemctl start vncserver@:1.service
    # 验证服务
    systemctl status vncserver@:1.service
    # 检查服务版本
    vncserver -version
    
  5. 重启测试

    reboot
    
    b3f49410ff9948e5bea97e040cf2881f.png
    最终效果

三、用途探索

b77bbfa20303456a9ae6b08aabd539f2.png

可以看到,OrangePi Kunpeng Pro开发板预装了openEuler 22.03 (LTS-SP3)系统 以及GNOME 3.38.6可视化图形界面。实际可用内存7.4G,不具备独立显卡,使用llvmpipe (LLVM 12.0.1, 128 bits)进行图形渲染。

下面可以来看下,拥有这样一块便于携带、性能相对富裕的开发板,能够来做些什么呢:

3.1 私人网盘

# 拉取 NextCloud 镜像
sudo docker pull nextcloud
# 创建挂载目录
mkdir -p /opt/nextcloud
# 启动容器并映射到5682端口
sudo docker run -d --restart=always --name nextcloud -p 5682:80 -v /opt/nextcloud:/data nextcloud
0b0926f37f8c45f5b33fd56bd16ff761.png 15e3751d674d401382b7c071ba92e941.png

修改IP绑定

docker exec -it nextcloud bash
apt-get update
apt-get install vim
vim config/config.php

修改 trusted_domains,添加我们需要访问的域名或IP,IP 需要填写端口,域名直接写二级域名

'trusted_domains' => 
array (
  0 => '192.168.11.22:8111',
  1 => 'omv.local',
),
7243947602fb48e2b1273fc3b7c713ca.png

重启容器

docker restart nextcloud

3.2 自建集成服务

写一个简单的页面用来管理我们部署的服务,方便快速使用。

afbc7de4a30f419688e96a0a40f226e6.png 125b2c2f378e4104843a65dbce29ad37.png


四、扩容

  • 移动硬盘格式化为FAT32/exFAT

  • 插入移动硬盘后运行命令

    sudo fdisk -l
    

    根据大小找到系统盘和移动硬盘,然后执行下面的命令,把SD卡里的系统复制到硬盘中

    sudo dd bs=4M if=/dev/mmcblk1 of=/dev/sda
    

    拷贝需要一定的时间,请耐心等待

    1dc06bf2f66d4d458c28e7526e1fb66a.png

  • 需要注意几个问题:

    • bs=4M,M必须大写,否则会报错(dd invalid number 4m)
    • if=/dev/mmcblk1 是系统分区
    • of=/dev/sda 后面是内存卡的路径
  • 断电拔卡
    关机断电后,拔出SD卡替换原有的系统TF卡,然后再上电开机。

  • 磁盘分区
    可以看到存储空间并未完全使用,通过拷贝仅使用了原来的空间大小。

    23e8e5024ea4449c95ff639e2713c80c.png

    还需要输入以下指令帮助我们调整分区

    # 把/dev/mmcblk1下的第一个分区扩充到100%(应该这个是失效的,可以考虑跳过使用下面的指令)
    sudo parted /dev/mmcblk1 resizepart 1 100%
    >>> 信息: 你可能需要 /etc/fstab。
    
    # 再尝试使用(应该是这个指令生效了)
    parted -l
    # 出现如下信息
    >>> 型号:SD SD128 (sd/mmc)
    >>> 磁盘 /dev/mmcblk1:128GB
    >>> 扇区大小 (逻辑/物理):512B/512B
    >>> 分区表:gpt
    >>> 磁盘标志:
    >>> 编号  起始点  结束点  大小   文件系统  名称  标志
    >>>  1    839MB   128GB   127GB  ext4
    
    # 这个时候使用
    sudo fdisk -l
    # 或者使用均
    lsblk
    # 均可以看到已经拓展到118G,但是实际根目录还是32G
    # 磁盘空间存在异常,还需要调整(参考下面处理异常)
    >>> /dev/mmcblk1p1 1638400 249670622 248032223 118.3G Linux 文件系统
    
  • 处理异常
    换回原先的TF卡,将新卡当做U盘插入,调整修复磁盘空间

    e2fsck -f /dev/sda1
    sudo resize2fs /dev/sda1
    
    4db7cba601ef4f31a00528cbd6eec1f0.png a9e292602f314f79bc7fea508ed114ac.png

五、总结

当你做完以上步骤,恭喜你,你已经使用OrangePi Kunpeng Pro开发板,成功自己搭建了一个Linux服务器。

  • 你可以在任意地方,远程连接上放在家里的这块板子,通过VNC连接的形式进行办公或者文件下载。

  • 如果你厌倦了各大网盘的网速或者私密性,这块板子就是你的私人网盘。

  • 如果你配了自己的手机热点,你还可以随身携带这块板子,在任意地方开启服务。

  • 如果你懂一点点代码,想拥有更多服务可以自由自在的定制化开发。

今天的装机教程就到这里,谢谢大家观看。

  • 28
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

isSamle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值