Orange Pi 5 Plus

您所在的位置:网站首页 i219网卡连传感器相机用不了 Orange Pi 5 Plus

Orange Pi 5 Plus

2024-06-07 05:15| 来源: 网络整理| 查看: 265

目录 1 Orange Pi 5 Plus的基本特性 1.1 什么是 Orange Pi 5 Plus 1.2 Orange Pi 5 Plus的用途 1.3 Orange Pi 5 Plus的硬件规格 1.4 Orange Pi 5 Plus的顶层视图和底层视图 1.5 Orange Pi 5 Plus的接口详情图 2 开发板使用介绍 2.1 准备需要的配件 2.2 下载开发板的镜像和相关的资料 2.3 基于Windows PC将Linux镜像烧录到TF卡的方法 2.3.1 使用balenaEtcher烧录Linux镜像的方法 2.3.2 使用RKDevTool烧录Linux镜像到TF卡中的方法 2.3.3 使用Win32Diskimager烧录Linux镜像的方法 2.4 基于Ubuntu PC将Linux镜像烧录到TF卡的方法 2.5 烧录Linux镜像到eMMC中的方法 2.5.1 使用RKDevTool烧录Linux镜像到eMMC中的方法 2.5.2 使用dd命令烧录Linux镜像到eMMC中的方法 2.6 烧录Linux镜像到SPIFlash+NVMe SSD中的方法 2.6.1 使用dd命令烧录的方法 2.6.2 使用balenaEtcher软件烧录的方法 2.6.3 使用RKDevTool烧录的方法 2.7 烧录OpenWRT镜像到SPI FLASH中的方法 2.7.1 使用dd命令烧录的方法 2.7.2 使用 RKDevTool 烧录的方法 2.8 烧录Android镜像到TF卡中的方法 2.9 烧录Android镜像烧录到eMMC中的方法 2.9.1 通过Type-C线将Android 镜像烧录到eMMC中的方法 2.9.2 通过TF卡将Android 12镜像烧录到eMMC中的方法 2.10 烧录Android镜像到SPIFlash+NVMe SSD中的方法 2.11 烧录Orange Pi OS (Droid)镜像到TF卡中的方法 2.12 烧录Orange Pi OS (Droid)镜像到eMMC中的方法 2.12.1 通过Type-C线将Orange Pi OS (Droid) 镜像烧录到eMMC 2.12.2 通过TF卡将Orange Pi OS (Droid)镜像烧录到eMMC 2.13 烧录Orange Pi OS (Droid)镜像到SPIFlash+NVMe SSD中 2.14 使用RKDevTool清空SPIFlash的方法 2.15 启动香橙派开发板 2.16 调试串口的使用方法 2.16.1 调试串口的连接说明 2.16.2 Ubuntu平台调试串口的使用方法 2.16.3 Windows平台调试串口的使用方法 2.17 使用开发板40pin接口中的5v引脚供电说明 3 Ubuntu/Debian Server和Xfce桌面系统使用说明 3.1 已支持的Ubuntu/Debian镜像类型和内核版本 3.2 linux系统适配情况 3.3 本手册linux命令格式说明 3.4 linux系统登录说明 3.4.1 linux系统默认登录账号和密码 3.4.2 设置linux系统终端自动登录的方法 3.4.3 linux桌面版系统自动登录说明 3.4.4 Linux桌面版系统root用户自动登录的设置方法 3.4.5 Linux桌面版系统禁用桌面的方法 3.5 板载LED灯测试说明 3.6 网络连接测试 3.6.1 2.5G以太网口测试 3.6.2 WIFI连接测试 3.6.2.1 服务器版镜像通过命令连接WIFI 3.6.2.2 服务器版镜像通过图形化方式连接WIFI 3.6.2.3 桌面版镜像的测试方法 3.6.3 设置静态IP地址的方法 3.6.3.1 使用nmtui命令来设置静态IP地址 3.6.3.2 使用nmcli命令来设置静态IP地址 3.7 M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 3.8 SSH远程登录开发板 3.8.1 Ubuntu下SSH远程登录开发板 3.8.2 Windows下SSH远程登录开发板 3.9 ADB的使用方法 3.9.1 网络adb的使用方法 3.9.2 使用type-c数据线连接adb 3.10 上传文件到开发板Linux系统中的方法 3.10.1 在Ubuntu PC中上传文件到开发板Linux系统中的方法 3.10.1.1 使用scp命令上传文件的方法 3.10.1.2 使用filezilla上传文件的方法 3.10.2 在Windows PC中上传文件到开发板Linux系统中的方法 3.10.2.1 使用filezilla上传文件的方法 3.11 HDMI测试 3.11.1 HDMI输出测试 3.11.2 HDMI IN的测试方法 3.11.3 HDMI转VGA显示测试 3.11.4 HDMI分辨率设置方法 3.12 蓝牙使用方法 3.12.1 桌面版镜像的测试方法 3.13 USB接口测试 3.13.1 连接USB鼠标或键盘测试 3.13.2 连接USB存储设备测试 3.13.3 USB无线网卡测试 3.13.3.1 RTL8723BU测试 3.13.3.2 RTL8811测试 3.13.4 USB摄像头测试 3.14 音频测试 3.14.1 在桌面系统中测试音频方法 3.14.2 使用命令播放音频的方法 3.14.2.1 耳机接口播放音频测试 3.14.2.2 喇叭接口播放音频测试 3.14.2.3 HDMI音频播放测试 3.14.3 使用命令测试录音的方法 3.15 温度传感器 3.16 40 Pin扩展接口引脚使用说明 3.17 安装wiringOP的方法 3.18 40 pin接口GPIO、I2C、UART、SPI、CAN和PWM测试 3.18.1 40 pin GPIO口测试 3.18.2 40 pin GPIO口上下拉电阻的设置方法 3.18.3 40 pin SPI测试 3.18.4 40 pin I2C测试 3.18.5 40 pin的UART测试 3.18.6 PWM的测试方法 3.18.7 CAN的测试方法 3.18.7.1 打开CAN的方法 3.18.7.2 使用CANalyst-II分析仪测试收发消息 3.19 wiringOP-Python的安装使用方法 3.19.1 wiringOP-Python的安装方法 3.19.2 40 pin GPIO口测试 3.19.3 40 pin SPI测试 3.19.4 40 pin I2C测试 3.19.5 40 pin的UART测试 3.20 硬件看门狗测试 3.21 查看RK3588芯片的序列号 3.22 安装Docker的方法 3.23 下载安装arm64版本balenaEtcher的方法 3.24 宝塔Linux面板的安装方法 3.25 设置中文环境以及安装中文输入法 3.25.1 Debian 11系统的安装方法 3.25.2 Ubuntu 20.04系统的安装方法 3.25.3 Ubuntu 22.04系统的安装方法 3.26 远程登录Linux系统桌面的方法 3.26.1 使用NoMachine远程登录 3.26.2 使用VNC远程登录 3.27 Linux系统支持的部分编程语言测试 3.27.1 Debian Bullseye系统 3.27.2 Debian Bookworm系统 3.27.3 Ubuntu Focal系统 3.27.4 Ubuntu Jammy系统 3.28 QT的安装方法 3.29 ROS安装方法 3.29.1 Ubuntu20.04安装ROS 1 Noetic的方法 3.29.2 Ubuntu20.04安装ROS 2 Galactic的方法 3.29.3 Ubuntu22.04安装ROS 2 Humble的方法 3.30 安装内核头文件的方法 3.31 10.1寸MIPI LCD屏幕的使用方法 3.31.1 10.1寸MIPI 屏幕的组装方法 3.31.2 打开10.1寸MIPI LCD屏幕配置的方法 3.31.3 服务器版镜像旋转显示方向的方法 3.31.4 桌面版镜像旋转显示和触摸方向的方法 3.32 开关机logo使用说明 3.33 OV13850和OV13855 MIPI摄像头的测试方法 3.34 红外接收的测试方法 3.35 RTC的使用方法 3.36 PWM散热风扇的使用方法 3.37 关机和重启开发板的方法 3.37.1 安装ZFS的方法 3.37.2 创建ZFS池的方法 3.37.3 测试ZFS的数据去重功能 3.37.4 测试ZFS的数据压缩功能 3.38 关机和重启开发板的方法 4 Ubuntu22.04 Gnome Wayland桌面系统使用说明 4.1 Ubuntu22.04 Gnome桌面系统适配情况 4.2 确认系统当前使用的窗口系统为wayland的方法 4.3 切换默认音频设备的方法 4.4 GPU的测试方法 4.5 Chromium浏览器硬解播放视频的测试方法 4.6 Kodi硬解播放视频的测试方法 4.7 Ubuntu22.04 Gnome安装ROS 2 Humble的方法 4.8 设置中文环境以及安装中文输入法的方法 5 Orange Pi OS Arch系统使用说明 5.1 Orange Pi OS Arch系统适配情况 5.2 M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 5.3 10.1寸MIPI LCD屏幕的使用方法 5.3.1 10.1寸MIPI 屏幕的组装方法 5.3.2 打开10.1寸MIPI LCD屏幕配置的方法 5.3.3 旋转显示和触摸方向的方法 5.4 OV13850和OV13855 MIPI摄像头的测试方法 5.5 设置中文环境以及安装中文输入法的方法 5.6 HDMI IN的测试方法 5.7 安装wiringOP的方法 5.8 40 pin接口GPIO、I2C、UART、SPI、CAN和PWM测试 5.8.1 40 pin GPIO口测试 5.8.2 40 pin GPIO口上下拉电阻的设置方法 5.8.3 40 pin SPI测试 5.8.4 40 pin I2C测试 5.8.5 40 pin的UART测试 5.8.6 PWM的测试方法 5.8.7 CAN的测试方法 5.8.7.1 打开CAN的方法 6 Linux SDK——orangepi-build使用说明 6.1 编译系统需求 6.1.1 使用开发板的Ubuntu22.04系统编译 6.1.2 使用x64的Ubuntu22.04电脑编译 6.2 获取linux sdk的源码 6.2.1 从github下载orangepi-build 6.2.2 下载交叉编译工具链 6.2.3 orangepi-build完整目录结构说明 6.3 编译u-boot 6.4 编译linux内核 6.5 编译rootfs 6.6 编译linux镜像 7 Linux开发手册 7.1 在开发板的linux系统中单独编译内核源码的方法 8 OpenWRT系统使用说明 8.1 OpenWRT版本 8.2 OpenWRT适配情况 8.3 第一次启动扩容rootfs 8.4 登录系统的方法 8.4.1 通过串口登录 8.4.2 通过SSH登录系统 8.4.3 登录LuCI管理界面 8.4.4 通过LuCI管理界面登录终端 8.4.5 使用IP地址+端口号方式登录终端 8.5 通过命令行修改LAN口IP地址的方法 8.6 修改root密码的方法 8.6.1 通过命令行修改 8.6.2 通过LuCI管理界面修改 8.7 USB接口测试 8.7.1 在命令行下挂载USB存储设备 8.7.2 在LuCI管理界面挂载USB存储设备 8.8 M.2 E-Key PCIe无线网卡的使用方法 8.8.1 创建WIFI热点的方法 8.8.2 连接WIFI热点的方法 8.9 通过命令行安装软件包 8.9.1 在终端通过opkg安装 8.10 OpenWRT管理界面安装软件包 8.10.1 查看系统可用软件包列表 8.10.2 安装软件包示例 8.10.3 移除软件包示例 8.11 使用Samba网络共享 8.12 zerotier使用说明 9 OpenWRT源码的编译方法 9.1 下载OpenWRT源码 9.2 编译OpenWRT源码 10 Android 12系统的使用说明 10.1 已支持的Android版本 10.2 Android功能适配情况 10.3 USB无线网卡的使用方法 10.4 M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 10.5 WIFI的连接测试方法 10.6 Wi-Fi hotspot的使用方法 10.7 蓝牙的测试方法 10.8 HDMI In的测试方法 10.9 10.1寸MIPI 屏幕的使用方法 10.10 OV13850和OV13855 MIPI摄像头的测试方法 10.11 26pin 接口 GPIO、UART、SPI 和 PWM 测试 10.11.1 40pin GPIO 口测试 10.11.2 40pin的UART测试 10.11.3 26pin的SPI测试 10.11.4 26pin的PWM测试 10.12 ADB的使用方法 10.12.1 使用数据线连接adb调试 10.12.2 使用网络连接adb调试 10.13 Android Box测试过的2.4G USB遥控器 10.14 Android Box系统红外遥控器的使用方法 10.15 Android Box系统HDMI CEC功能的使用方法 11 Android 12源码的编译方法 11.1 下载Android 12的源码 11.2 编译Android 12的源码 12 Orange Pi OS Droid 系统的使用说明 12.1 OPi OS Droid系统的功能适配情况 12.2 HDMI In的测试方法 13 附录 13.1 用户手册更新历史 13.2 镜像更新历史 Orange Pi 5 Plus的基本特性

什么是 Orange Pi 5 Plus

Orange Pi 5 Plus采用了瑞芯微RK3588新一代八核64位ARM处理器,具体为四核A76和四核A55,采用的三星8nm LP制程工艺,大核主频最高可达2.4GHz,集成ARM Mali-G610 MP4 GPU,内嵌高性能3D和2D图像加速模块,内置高达6 Tops算力的AI加速器NPU,可选4GB、8GB、16GB或者32GB内存,具有高达8K显示处理能力。

Orange Pi 5 Plus引出了相当丰富的接口,包括2个HDMI输出、1个HDMI输入、USB-C/DP接口、M.2 M-key PCIe3.0x4、M.2 E-key PCIe2.0x1、2个2.5G网口、eMMC扩展接口、USB2.0、USB3.0接口、红外、耳机、板载MIC、喇叭、RTC和40pin扩展排针等。可广泛适用于高端平板、边缘计算、人工智能、云计算、AR/VR、智能安防、智能家居等领域,覆盖 AIoT各个行业。

Orange Pi 5 Plus支持Orange Pi 官方研发的操作系统Orange Pi OS,同时,支持Android 12.1、OpenWRT、Debian11、Debian12、Ubuntu20.04和Ubuntu22.04等操作系统。

Orange Pi 5 Plus的用途

我们可以用它实现:

一台Linux桌面计算机 一台Linux网络服务器 Android平板 Android游戏机等 当然还有其他更多的功能,依托强大的生态系统以及各式各样的扩展配件,Orange Pi可以帮助用户轻松实现从创意到原型再到批量生产的交付,是创客、梦想家、业余爱好者的理想创意平台。

Orange Pi 5 Plus的硬件规格 Orange Pi 5 PLUS硬件规格 主控芯片

Rockchip RK3588(8nm LP制程)

CPU

• 8核64位处理器

• 4个Cortex-A76和4个Cortex-A55及独立的NEON协处理器

• Cortex-A76主频最高2.4GHz,Cortex-A55主频最高1.8GHz

GPU

• 集成ARM Mali-G610

• 内置 3D GPU

• 兼容OpenGL ES1.1/2.0/3.2、OpenCL 2.2和Vulkan 1.2

NPU

内嵌的NPU支持INT4/INT8/INT16/FP16,算力高达6 Tops

PMU

RK806-1

RAM

4GB/8GB/16GB/32GB可选

存储

• QSPI Nor FLASH: 16MB/32MB

• MicroSD卡插槽

• eMMC插座,可外接eMMC模块

• 用于NVMe SSD (PCIe 3.0 x4) 的M.2 2280插槽

USB

• 2 x USB3.0

• 2 x USB2.0

• 1 x Type-C

视频

• 2 x HDMI 2.1 输出,高达8K@60FPS

• 1 x Type-C(DP 1.4A)输出,高达4K@60FPS

• 1 x HDMI输入,高达4K@60FPS

• 1 x MIPI DSI 4 Lane输出,高达4K@60FPS

TP接口

1 x 6Pin FPC插座

摄像头

1 x MIPI CSI 4 Lane

音频

• 1 x 3.5mm耳机孔音频输入/输出

• 1 x 板载MIC输入

• 2 x HDMI输出

• 1 x HDMI输入

• 1 x DP输出

• 1 x扬声器输出(2pin,1.25mm规格)

以太网

2 x PCIe 2.5G 以太网口(RTL8125BG )

40pin扩展口

用于扩展UART、I2C、SPI、CAN、PWM、GPIO接口

PCIe M.2 M-KEY

PCIe 3.0 x 4 lanes,用于接2280的NVMe SSD固态硬盘

PCIe M.2 E-KEY

包含PCIe 2.0 x 1/PCM/UART/USB2.0接口,支持2230的Wi-Fi6/BT模块

按键

1个MaskROM键,1个RECOVERY键,1个开关机键

供电

支持Type-C供电,5V@4A

红外接收器

1个红外接收器

LED

RGB LED三色指示灯

风扇接口

2pin,1.25mm规格,用于接5V风扇,支持PWM控制开关和转速

RTC电池接口

2pin,1.25mm规格,用于给RTC模块供电

调试

3pin调试串口(UART)

支持的操作系统

Orangepi OS(Droid)、Orangepi OS(Arch)、Orangepi OS(OH)、Ubuntu20.04、Ubuntu22.04、Debian11、Debian12、OpenWRT和Android12等

外观规格介绍 产品尺寸

100mm*75mm

重量

86.5g

Orange Pi 5 Plus的顶层视图和底层视图

(顶层视图)

(底层视图)

Orange Pi 5 Plus的接口详情图

开发板使用介绍 准备需要的配件

TF卡,最小16GB容量(推荐32GB或以上)的class10级或以上的高速闪迪卡

TF卡读卡器,用于将镜像烧录到TF卡中

HDMI接口的显示器

HDMI转HDMI连接线,用于将开发板连接到HDMI显示器或者电视进行显示

注意,如果想接4K或者8K显示器,请确保HDMI线支持4K或者8K视频显示。

Type-C转HDMI线,通过Type-C接口将开发板连接到HDMI显示器或者电视进行显示

Type-C转USB转接头,用于通过Type-C接口连接USB存储设备或者鼠标键盘等USB设备(开发板上有2个USB3.0 HOST接口和2个USB2.0 HOST接口,此配件一般用不到

10.1寸MIPI屏幕,用于显示开发板的系统界面(此屏幕和OPi5/OPi5B通用)

电源适配器,Orange Pi 5 Plus建议使用5V/4A的Type-C电源供电

开发板上有两个长得一样的Type-C接口,其中网口旁边竖着的那个才是电源接口,另外那个Type-C接口是没有供电功能的,请别接错了。

开发板的Type-C电源接口不支持PD协商功能,只支持固定的5V电压输入。

USB接口的鼠标和键盘,只要是标准USB接口的鼠标和键盘都可以,鼠标和键盘可以用来控制Orange Pi开发板

USB摄像头

5V的散热风扇。如下图所示,开发板上有用于接散热风扇的接口,接口规格为2pin 1.25mm间距

开发板上的风扇可以通过PWM来调节转速和开关。

网线,用于将开发板连接到因特网

Type-C接口的数据线,用于烧录镜像、使用ADB等功能

红外遥控器

注意,空调遥控或者电视机的遥控是无法控制Orange Pi开发板的,Orange Pi提供的操作系统默认只能保证Orange Pi提供的遥控器才可以使用。

1300万MIPI接口的OV13850摄像头(和OPi5/OPi5B通用)

1300万MIPI接口的OV13855摄像头(和OPi5/OPi5B通用)

M.2 M-KEY 2280规格的NVMe SSD固态硬盘,PCIe接口的规格为PCIe3.0x4

eMMC扩展模块(待添加实物图片

开发板上插入eMMC模块的位置如下图所示:

RTC电池,接口为2pin,1.25mm间距

开发板上接RTC电池接口的位置如下图所示:

喇叭,接口为2pin,1.25mm间距

开发板上接喇叭的接口位置如下图所示:

配套外壳(待添加图片和组装方法

3.3V的USB转TTL模块和杜邦线,使用串口调试功能时,需要USB转TTL模块和杜邦线来连接开发板和电脑

安装有Ubuntu和Windows操作系统的个人电脑

1 Ubuntu22.04 PC

可选,用于编译Linux源码

2 Windows PC

用于烧录Android和Linux镜像

下载开发板的镜像和相关的资料

中文版资料的下载网址为为:

http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html

英文版资料的下载网址为:

http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html

资料主要包含

a. 用户手册和原理图:保存在百度云盘和谷歌网盘上

b. 官方工具:主要包括开发板使用过程中需要用到的软件

c. Android源码:保存在百度云盘和谷歌网盘上

d. Linux源码:保存在Github上

e. OpenWRT源码:保存在Github上

f. Android镜像:保存在百度云盘和谷歌网盘上

g. Ubuntu镜像:保存在百度云盘和谷歌网盘上

h. Debian镜像:保存在百度云盘和谷歌网盘上

i. Orange Pi OS镜像:保存在百度云盘和谷歌网盘上

j. OpenWRT镜像: 保存在百度云盘和谷歌网盘上

基于Windows PC将Linux镜像烧录到TF卡的方法 注意,这里说的Linux镜像具体指的是从Orange Pi资料下载页面下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。

使用balenaEtcher烧录Linux镜像的方法

首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为class10级或class10级以上,建议使用闪迪等品牌的TF卡

然后使用读卡器把TF卡插入电脑

Orange Pi的资料下载页面下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”.img”结尾的文件就是操作系统的镜像文件,大小一般在2GB以上。

注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。

然后下载Linux镜像的烧录软件——balenaEtcher,下载地址为:

https://www.balena.io/etcher/

进入balenaEtcher下载页面后,点击绿色的下载按钮会跳到软件下载的地方

然后可以选择下载balenaEtcher的Portable版本的软件,Portable版本无需安装,双击打开就可以使用

如果下载的是需要安装版本的balenaEtcher,请先安装再使用。如果下载的Portable版本balenaEtcher,直接双击打开即可,打开后的balenaEtcher界面如下图所示:

打开balenaEtcher时如果提示下面的错误:

请选择balenaEtcher后点击右键,然后选择以管理员身份运行。

使用balenaEtcher烧录Linux镜像的具体步骤如下所示

首先选择要烧录的Linux镜像文件的路径

然后选择TF卡的盘符

最后点击Flash就会开始烧录Linux镜像到TF卡中

balenaEtcher烧录Linux镜像的过程显示的界面如下图所示,另外进度条显示紫色表示正在烧录Linux镜像到TF卡中

Linux镜像烧录完后,balenaEtcher默认还会对烧录到TF卡中的镜像进行校验,确保烧录过程没有出问题。如下图所示,显示绿色的进度条就表示镜像已经烧录完成,balenaEtcher正在对烧录完成的镜像进行校验

成功烧录完成后balenaEtcher的显示界面如下图所示,如果显示绿色的指示图标说明镜像烧录成功,此时就可以退出balenaEtcher,然后拔出TF卡插入到开发板的TF卡槽中使用了

使用RKDevTool烧录Linux镜像到TF卡中的方法

首先需要准备一根品质良好的Type-C接口的数据线

还需要准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为class10级或class10级以上,建议使用闪迪等品牌的TF卡

然后将TF卡插入开发板的卡槽中

然后从Orange Pi的资料下载页面下载瑞芯微驱动DriverAssitant_v5.12.zipMiniLoader以及烧录工具RKDevTool_Release_v3.15.zip

在Orange Pi的资料下载页面首先选择官方工具,然后进入下面的文件夹中

然后下载下面的所有文件

注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。

然后从Orange Pi的资料下载页面下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”.img”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上

注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。

然后用解压软件解压DriverAssitant_v5.12.zip,再在解压后的文件夹中找到DriverInstall.exe可执行文件并打开即可

打开DriverInstall.exe后安装瑞芯微驱动的步骤如下所示

点击”驱动安装”按钮

等待一段时间后,会弹出窗口提示”安装驱动成功”,然后点击“确定”按钮即可

然后解压RKDevTool_Release_v3.15.zip,此软件无需安装,在解压后的文件夹中找到RKDevTool打开即可

打开RKDevTool烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”没有发现设备

然后开始烧录Linux镜像到TF卡中

首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示

确保开发板没有连接Type-C电源

然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:

然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了。Type-C电源接口的位置如下所示:

如果前面的步骤顺利,此时开发板会进入MASKROM模式,在烧录工具的界面上会提示“发现一个MASKROM设备

然后将鼠标光标放在下面的这片区域中

然后点击鼠标右键会弹出下图所示的选择界面

然后选择导入配置选项

然后选择前面下载的MiniLoader文件夹中的rk3588_linux_tfcard.cfg配置文件,再点击打开

然后点击确定

然后点击下图所示的位置

再选择前面下载的MiniLoader文件夹中MiniLoaderAll.bin,再点击打开

然后点击下图所示的位置

然后选择想要烧录的linux镜像的路径,再点击打开

在烧录镜像前,建议将要烧录的linux镜像重命名为orangepi.img或者其它比较短的名字,这样在烧录镜像的时候就能看到烧录进度的百分比数值。

然后请勾选上强制按地址写选项

再点击执行按钮就会开始烧录linux镜像到开发板的tf卡中

linux镜像烧录完后的显示log如下图所示

烧录完linux镜像到tf卡中后,linux系统会自动启动。

使用Win32Diskimager烧录Linux镜像的方法

首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为class10级或class10级以上,建议使用闪迪等品牌的TF卡

然后使用读卡器把TF卡插入电脑

接着格式化TF卡

可以使用SD Card Formatter这个软件格式化TF卡,其下载地址为 https://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip

下载完后直接解压安装即可,然后打开软件

如果电脑只插入了TF卡,则”Select card”一栏中会显示TF卡的盘符,如果电脑插入了多个USB存储设备,可以通过下拉框选择TF卡对应的盘符

然后点击”Format”,格式化前会弹出一个警告框,选择”是(Y)”后就会开始格式化

格式化完TF卡后会弹出下图所示的信息,点击确定即可

Orange Pi的资料下载页面下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”.img”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上

注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。

使用Win32Diskimager烧录Linux镜像到TF卡

Win32Diskimager的下载页面为 http://sourceforge.net/projects/win32diskimager/files/Archive/

下载完后直接安装即可,Win32Diskimager界面如下所示

首先选择镜像文件的路径

然后确认下TF卡的盘符和”设备”一栏中显示的一致

最后点击”写入”即可开始烧录

镜像写入完成后,点击”退出”按钮退出即可,然后就可以拔出TF卡插到开发板中启动

基于Ubuntu PC将Linux镜像烧录到TF卡的方法

注意,这里说的Linux镜像具体指的是从Orange Pi资料下载页面下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像,Ubuntu PC指的是安装了Ubuntu系统的个人电脑。

首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为class10级或class10级以上,建议使用闪迪等品牌的TF卡 然后使用读卡器把TF卡插入电脑 下载balenaEtcher软件,下载地址为

https://www.balena.io/etcher/

进入balenaEtcher下载页面后,点击绿色的下载按钮会跳到软件下载的地方

然后选择下载Linux版本的软件即可

Orange Pi的资料下载页面下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”.img”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上

注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。

7z结尾的压缩包的解压命令如下所示:

test@test:~$ 7z x orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.7z

test@test:~$ ls orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.*

orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.7z orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.sha #校验和文件

orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.img #镜像文件

如果下载的是OpenWRT镜像,压缩包是以gz结尾的,解压命令如下所示:

test@test:~$ gunzip openwrt-aarch64-opi5plus-23.05-linux-5.10.110-ext4.img.gz

test@test:~$ ls openwrt-aarch64-opi5plus-23.05-linux-5.10.110-ext4.img

openwrt-aarch64-opi5plus-23.05-linux-5.10.110-ext4.img #镜像文件

解压镜像后可以先用sha256sum -c *.sha命令计算下校验和是否正确,如果提示成功说明下载的镜像没有错,可以放心的烧录到TF卡,如果提示校验和不匹配说明下载的镜像有问题,请尝试重新下载

test@test:~$ sha256sum -c *.sha

orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.img: OK

如果下载的是OpenWRT镜像,要对压缩包进行校验,不要解压后再校验

test@test:~$ sha256sum -c openwrt-aarch64-opi5plus-23.04-linux-5.10.110-ext4.img.gz.sha

openwrt-aarch64-opi5plus-23.04-linux-5.10.110-ext4.img.gz: OK

然后在Ubuntu PC的图形界面双击balenaEtcher-1.14.3-x64.AppImage即可打开balenaEtcher(无需安装),balenaEtcher打开后的界面显示如下图所示

使用balenaEtcher烧录Linux镜像的具体步骤如下所示

首先选择要烧录的Linux镜像文件的路径

然后选择TF卡的盘符

最后点击Flash就会开始烧录Linux镜像到TF卡中

balenaEtcher烧录Linux镜像的过程显示的界面如下图所示,另外进度条显示紫色表示正在烧录Linux镜像到TF卡中

Linux镜像烧录完后,balenaEtcher默认还会对烧录到TF卡中的镜像进行校验,确保烧录过程没有出问题。如下图所示,显示绿色的进度条就表示镜像已经烧录完成,balenaEtcher正在对烧录完成的镜像进行校验

成功烧录完成后balenaEtcher的显示界面如下图所示,如果显示绿色的指示图标说明镜像烧录成功,此时就可以退出balenaEtcher,然后拔出TF卡插入到开发板的TF卡槽中使用了

烧录Linux镜像到eMMC中的方法

使用RKDevTool烧录Linux镜像到eMMC中的方法

注意,下面所有的操作都是在Windows电脑中进行的。

注意,这里说的Linux镜像具体指的是从Orange Pi资料下载页面下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。

开发板预留了eMMC模块的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:

还需要准备一根品质良好的Type-C接口的数据线

然后从Orange Pi的资料下载页面下载瑞芯微驱动DriverAssitant_v5.12.zipMiniLoader以及烧录工具RKDevTool_Release_v3.15.zip

在Orange Pi的资料下载页面首先选择官方工具,然后进入下面的文件夹中

然后下载下面的所有文件

注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。

然后从Orange Pi的资料下载页面下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”.img”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上

注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。

然后用解压软件解压DriverAssitant_v5.12.zip,再在解压后的文件夹中找到DriverInstall.exe可执行文件并打开即可

打开DriverInstall.exe后安装瑞芯微驱动的步骤如下所示

点击”驱动安装”按钮

等待一段时间后,会弹出窗口提示”安装驱动成功”,然后点击“确定”按钮即可

然后解压RKDevTool_Release_v3.15.zip,此软件无需安装,在解压后的文件夹中找到 RKDevTool打开即可

打开RKDevTool 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”没有发现设备

然后开始烧录Linux镜像到eMMC中

首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示

确保开发板没有插入TF卡,没有连接电源

然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:

然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了

如果前面的步骤顺利,此时开发板会进入MASKROM模式,在烧录工具的界面上会提示”发现一个MASKROM设备

然后将鼠标光标放在下面的这片区域中

然后点击鼠标右键会弹出下图所示的选择界面

然后选择导入配置选项

然后选择前面下载的MiniLoader文件夹中的rk3588_linux_emmc.cfg配置文件,再点击打开

然后点击确定

然后点击下图所示的位置

再选择前面下载的MiniLoader文件夹中MiniLoaderAll.bin,再点击打开

然后点击下图所示的位置

然后选择想要烧录的linux镜像的路径,再点击打开

在烧录镜像前,建议将要烧录的linux镜像重命名为orangepi.img或者其它比较短的名字,这样在烧录镜像的时候就能看到烧录进度的百分比数值。

然后请勾选上强制按地址写选项

再点击执行按钮就会开始烧录linux镜像到开发板的eMMC中

linux镜像烧录完后的显示log如下图所示

烧录完linux镜像到eMMC中后,linux系统会自动启动。

注意,烧录镜像到eMMC中后如果测试发现启动不了,请清空下SPIFlash后再启动试下。清空SPIFlash的方法请参考使用RKDevTool清空SPIFlash的方法小节的内容。

使用dd命令烧录Linux镜像到eMMC中的方法

注意,这里说的Linux镜像具体指的是从Orange Pi资料下载页面下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。

开发板预留了eMMC模块的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC模块和插入开发板的方法如下所示:

使用dd命令烧录linux镜像到eMMC中需要借助TF卡来完成,所以首先需要将linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入linux系统。烧录Linux镜像到TF卡的方法请见基于Windows PC将Linux镜像烧录到TF卡的方法基于Ubuntu PC将Linux镜像烧录到TF卡的方法两小节的说明。

使用TF卡启动linux系统后,我们首先将解压后的linux镜像文件(从官网下载的Debian、Ubuntu镜像或者OPi Arch镜像)上传到TF卡中。上传linux镜像文件到开发板中的方法请参考上传文件到开发板Linux系统中的方法小节的说明。

上传完镜像到开发板的linux系统中后,我们再在开发板linux系统的命令行中进入镜像文件的存放路径,比如,我将开发板的linux镜像存放在/home/orangepi/Desktop目录下了,然后进入/home/orangepi/Desktop目录就能看到上传的镜像文件了。

orangepi@orangepi:~$ cd /home/orangepi/Desktop

orangepi@orangepi:~/Desktop$ ls

Orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img

怎么进入开发板linux系统的命令行?

使用串口登录终端的方法请参考调试串口的使用方法一小节的说明。 使用ssh远程登录linux系统请参考SSH远程登录开发板一小节的说明。 如果接了HDMI、LCD等显示屏幕,可以在桌面中打开一个命令行终端。

接下来,我们先使用下面的命令确认下eMMC的设备节点

orangepi@orangepi:~/Desktop$ ls /dev/mmcblk*boot0 | cut -c1-12

/dev/mmcblk1

然后我们可以使用dd命令清空下eMMC,注意of=参数后面请填入上面命令输出的结果

orangepi@orangepi:~/Desktop$ sudo dd bs=1M if=/dev/zero of=/dev/mmcblk1 count=1000 status=progress

orangepi@orangepi:~/Desktop$ sudo sync

然后就可以使用dd命令烧录开发板的linux镜像到eMMC中

下面的命令中 if= > 参数后面是要填写linux镜像存放的完整路径+Linux镜像的名字(比如/home/orangepi/Desktop/Linux镜像的名字)。因为上面我们已经进入linux镜像的路径下了,所以只需要填写Linux镜像的名字的即可。

下面命令中的linux镜像名请不要照抄,要替换为实际的镜像名(因为镜像的版本号可能会更新)。

sudo dd bs=1M if=Orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img of=/dev/mmcblk1 status=progress

sudo sync

注意,如果上传的是 .7z或者.xz 结尾linux镜像压缩文件,使用dd命令烧录前请记得先解压。

dd命令的所有参数的详细说明和更多用法可以在linux系统中执行man dd命令来查看。

当成功烧录开发板的linux镜像到eMMC后,此时就可以使用poweroff命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动eMMC中的linux系统了。

烧录Linux镜像到SPIFlash+NVMe SSD中的方法

注意,这里说的Linux镜像具体指的是从Orange Pi资料下载页面下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。

注意,下面所有的操作都是在Windows电脑中进行的。

使用dd命令烧录的方法

首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。

然后把NVMe SSD插入下图所示的开发板的M.2 PCIe接口,并固定好

SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置

烧录linux镜像到SPIFlash+NVMe SSD中需要借助TF卡来完成,所以首先需要将linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入linux系统。烧录Linux镜像到TF卡的方法请见基于Windows PC将Linux镜像烧录到TF卡的方法基于Ubuntu PC将Linux镜像烧录到TF卡的方法两小节的说明。

使用TF卡启动linux系统后,我们首先烧录u-boot镜像到SPI Flash中

先运行下nand-sata-install普通用户记得加sudo权限

orangepi@orangepi:~$ sudo nand-sata-install

然后选择7 Install/Update ther bootloader on SPI Flash

然后选择

然后请耐心等待烧录完成,烧录完成后显示如下所示(左下角会显示一个Done):

OPi OS Arch系统中没有nand-sata-install这个脚本,请使用下面的命令将u-boot镜像到SPI Flash中:

[orangepi@orangepi ~]$ sudo dd if=/boot/rkspi_loader.img of=/dev/mtdblock0

然后将linux镜像文件(从官网下载的Debian、Ubuntu或者OpenWRT镜像)上传到TF卡中。上传linux镜像文件到开发板中的方法请参考上传文件到开发板Linux系统中的方法小节的说明。

注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。

上传完镜像到开发板的linux系统中后,我们再在开发板linux系统的命令行中进入镜像文件的存放路径,比如,我将开发板的linux镜像存放在/home/orangepi/Desktop目录下了,然后进入/home/orangepi/Desktop目录就能看到上传的镜像文件了。

orangepi@orangepi:~$ cd /home/orangepi/Desktop

orangepi@orangepi:~/Desktop$ ls

orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img

怎么进入开发板linux系统的命令行?

使用串口登录终端的方法请参考调试串口的使用方法一小节的说明。

使用ssh远程登录linux系统请参考SSH远程登录开发板一小节的说明。

如果接了HDMI、LCD等显示屏幕,可以在桌面中打开一个命令行终端。

接下来,我们先确认下NVMe SSD已经被开发板的linux正常识别了。如果NVMe SSD正常识别了的话,使用sudo fdisk -l命令就能看到nvme相关的信息

orangepi@orangepi:~/Desktop$ sudo fdisk -l | grep "nvme0n1"

Disk /dev/nvme0n1: 1.86 TiB, 2048408248320 bytes, 4000797360 sectors

使用lspci命令可以看到一个NVMe相关的PCI设备

orangepi@orangepi:~$ lspci

0000:00:00.0 PCI bridge: Rockchip Electronics Co., Ltd Device 3588 (rev 01)

0000:01:00.0 Non-Volatile memory controller: SK hynix BC501 NVMe Solid State Drive

.…

然后我们可以使用dd命令清空下NVMe SSD(可选)

orangepi@orangepi5plus:~/Desktop$ sudo dd bs=1M if=/dev/zero of=/dev/nvme0n1 count=2000 status=progress

orangepi@orangepi5plus:~/Desktop$ sudo sync

然后就可以使用dd命令烧录开发板的linux镜像到NVMe SSD中

下面的命令中 if= > 参数后面是要填写linux镜像存放的完整路径+Linux镜像的名字(比如/home/orangepi/Desktop/Linux镜像的名字)。因为上面我们已经进入linux镜像的路径下了,所以只需要填写Linux镜像的名字的即可。

下面命令中的linux镜像名请不要照抄,要替换为实际的镜像名(因为镜像的版本号可能会更新)。

sudo dd bs=1M if=orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img of=/dev/nvme0n1 status=progress

sudo sync

注意,如果上传的是 .7z或者.xz 或者.gz结尾linux镜像压缩文件,使用dd命令烧录前请记得先解压。

dd命令的所有参数的详细说明和更多用法可以在linux系统中执行man dd命令来查看。

当成功烧录开发板的linux镜像到NVMe SSD后,此时就可以使用poweroff命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动SPIFlash+NVMe SSD中的linux系统了。

使用balenaEtcher软件烧录的方法

OPi OS Arch系统和OpenWRT系统请不要使用这种方法。

首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。

然后把NVMe SSD插入下图所示的开发板的M.2 PCIe接口,并固定好

SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置

烧录linux镜像到SPIFlash+NVMe SSD中需要借助TF卡来完成,所以首先需要将linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入linux系统。烧录Linux镜像到TF卡的方法请见基于Windows PC将Linux镜像烧录到TF卡的方法基于Ubuntu PC将Linux镜像烧录到TF卡的方法两小节的说明。

启动进入TF卡中的linux系统后,请先确认下NVMe SSD已经被开发板的linux系统正常识别了。如果NVMe SSD正常识别了的话,使用sudo fdisk -l命令就能看到nvme相关的信息

orangepi@orangepi:~/Desktop$ sudo fdisk -l | grep "nvme0n1"

Disk /dev/nvme0n1: 1.86 TiB, 2048408248320 bytes, 4000797360 sectors

使用lspci命令可以看到一个NVMe相关的PCI设备

orangepi@orangepi:~$ lspci

0000:00:00.0 PCI bridge: Rockchip Electronics Co., Ltd Device 3588 (rev 01)

0000:01:00.0 Non-Volatile memory controller: SK hynix BC501 NVMe Solid State Drive

.…

linux镜像中已经预装了balenaEtcher,打开方法如下所示:

如果没有预装,balenaEtcher arm64版本的下载安装方法请参考下载安装arm64版本balenaEtcher的方法小节的说明。

balenaEtcher打开后的界面如下所示:

使用balenaEtcher烧录u-boot到开发板SPI Flash中的方法如下所示:

首先点击Flash from file

然后进入/usr/lib/linux-u-boot-legacy-orangepi5plus_1.x.x_arm64目录,再选择rkspi_loader.img,再点击Open打开

打开rkspi_loader.img后的界面如下所示:

然后点击Select target

然后点击Show 2 hidden打开更多存储设备的选项

然后选择SPI Flash的设备名/dev/mtdblock0,然后点击Select

然后点击Flash

然后点击Yes, I’m sure

然后输入开发板linux系统的密码orangepi,就会开始烧录u-boot镜像到SPI Flash中

烧录过程的显示如下所示:

烧录完成后的显示如下所示:

烧录TF卡中的linux系统到NVMe SSD中的方法(此方法相当于将TF卡中的系统克隆到NVMe SSD)

首先点击Clone drive

然后选择TF卡的设备名/dev/mmcblk1

打开TF卡后的界面如下所示:

然后点击Select target

然后点击Show 2 hidden打开更多存储设备的选项

然后选择NVMe SSD的设备名/dev/nvme0n1,然后点击Select

然后点击Flash

然后点击Yes, I’m sure

然后输入开发板linux系统的密码orangepi,就会开始烧录linux镜像到SSD中

烧录过程的显示如下所示:

烧录完成后的显示如下所示:

然后需要扩容下NVMe SSD中rootfs分区的容量,步骤如下所示:

a) 首先打开GParted,如果系统没有预装Gparted,请使用apt命令安装下

orangepi@orangepi:~$ sudo apt-get install -y gparted

b) 然后输入linux系统的密码orangepi,再点击Authenticate

c) 然后点击Fix

d) 然后选择NVMe SSD

e) 选择NVMe SSD后的显示界面如下所所示:

f) 然后选择/dev/nvme0n1p2分区,再击点击右键,再选择Resize/Move

g) 然后在下图所示的位置将容量拖动到最大

h) 然后点击Resize/Move

i) 然后点击下图位置绿色的

j) 再点击Apply

k) 然后点击Close关闭即可

此时就可以使用sudo poweroff命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动SPIFlash+NVMe SSD中的linux系统了。

9步是克隆TF卡中的系统到NMVe SSD中,我们还可以直接烧录linux镜像文件到NVMe SSD中,这里大概说下步骤:

上传linux镜像文件到开发板的linux系统中

然后使用balenaEtcher烧录即可

使用这种方法烧录镜像后无需手动扩容,第一次启动会自动扩容。

使用RKDevTool烧录的方法

首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。

然后把NVMe SSD插入下图所示的开发板的M.2 PCIe接口,并固定好

SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置

然后需要准备一根品质良好的Type-C接口的数据线

然后从Orange Pi的资料下载页面下载瑞芯微驱动DriverAssitant_v5.12.zipMiniLoader以及烧录工具RKDevTool_Release_v3.15.zip

在Orange Pi的资料下载页面首先选择官方工具,然后进入下面的文件夹中

然后下载下面的所有文件

注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。

然后从Orange Pi的资料下载页面下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”.img”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上

注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。

然后用解压软件解压DriverAssitant_v5.12.zip,再在解压后的文件夹中找到DriverInstall.exe可执行文件并打开即可

打开DriverInstall.exe后安装瑞芯微驱动的步骤如下所示

点击”驱动安装”按钮

等待一段时间后,会弹出窗口提示”安装驱动成功”,然后点击“确定”按钮即可

然后解压RKDevTool_Release_v3.15.zip,此软件无需安装,在解压后的文件夹中找到 RKDevTool打开即可

打开RKDevTool 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”没有发现设备

然后开始烧录Linux镜像到SSD中

首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示

确保开发板没有连接电源,并且没有插入TF卡或者eMMC模块

然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:

然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了。Type-C电源接口的位置如下所示:

如果前面的步骤顺利,此时开发板会进入MASKROM模式,在烧录工具的界面上会提示”发现一个MASKROM设备

然后将鼠标光标放在下面的这片区域中

然后点击鼠标右键会弹出下图所示的选择界面

然后选择导入配置选项

然后进入前面下载的MiniLoader文件夹中,再进入pcie_loader文件夹中,然后选择rk3588_linux_pcie.cfg配置文件,再点击打开

然后点击确定

然后点击下图所示的位置

再选择前面下载的MiniLoader文件夹中MiniLoaderAll.bin,再点击打开

然后点击下图所示的位置

然后进入前面下载的MiniLoader文件夹中,然后选择rkspi_loader.img,再点击打开

然后点击下图所示的位置

然后选择想要烧录的linux镜像的路径,再点击打开

在烧录镜像前,建议将要烧录的linux镜像重命名为orangepi.img或者其它比较短的名字,这样在烧录镜像的时候就能看到烧录进度的百分比数值。

然后请勾选上强制按地址写选项

再点击执行按钮就会开始烧录u-boot+linux镜像到SPIFlash+SSD中

linux镜像烧录完后的显示log如下图所示

镜像烧录完后会自动启动SPIFlash+PCIe SSD中的linux系统,如果没有正常启动,请重新上电试下。

烧录OpenWRT镜像到SPI FLASH中的方法

此小节介绍的方法是烧录整个OpenWRT镜像到spi flash中,不需要nvme ssd。也就是说,u-boot、内核和rootfs都是存放在spi flash中的。

由于开发板上的spi flash只有16MB,所以此系统基本无法安装多少软件,目前只能实现一些基础功能。

使用dd命令烧录的方法

烧录OpenWRT镜像到SPIFlash中需要借助TF卡来完成,所以首先需要将支持TF卡启动的OpenWRT镜像烧录到TF卡上,然后使用TF卡启动开发板进入OpenWRT系统。烧录OpenWRT镜像到TF卡的方法请见基于Windows PC将Linux镜像烧写到TF卡的方法基于Ubuntu PC将Linux镜像烧写到TF卡的方法两小节的说明。

然后从Orange Pi的资料下载页面下载能够从SPIFlash启动的OpenWRT镜像。打开下载链接后可以看到下面两种类型的OpenWRT镜像,请选择SPIFlash启动镜像文件夹中的镜像进行下载

然后把从官网下载的镜像上传到TF卡中。

然后再执行下面的命令即可将OpenWRT镜像烧写到SPIFlash中。注意if=后面需要指定镜像存放的实际路径

root@OpenWrt:~# dd if=openwrt-rockchip-armv8-xunlong_orangepi-5-plus-spi-squashfs-sysupgrade.bin of=/dev/mtdblock0

然后就可以使用poweroff命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动SPIFlash中的OpenWRT系统了

使用 RKDevTool 烧录的方法

SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置

然后需要准备一根品质良好的Type-C接口的数据线

然后从Orange Pi的资料下载页面下载瑞芯微驱动DriverAssitant_v5.12.zipMiniLoader以及烧录工具RKDevTool_Release_v2.96.zip,请确保下载的RKDevTool工具的的版本为v2.96

在Orange Pi的资料下载页面首先选择官方工具,然后进入下面的文件夹中

然后下载下面的所有文件

注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。

然后从Orange Pi的资料下载页面下载能够从SPIFlash启动的OpenWRT镜像,受限于SPIFlash的容量,镜像是小于16MB的。打开下载链接后可以看到下面两种类型的OpenWRT镜像,请选择SPIFlash启动镜像文件夹中的镜像

然后用解压软件解压DriverAssitant_v5.12.zip,再在解压后的文件夹中找到DriverInstall.exe可执行文件并打开即可

打开DriverInstall.exe后安装瑞芯微驱动的步骤如下所示

点击”驱动安装”按钮

等待一段时间后,会弹出窗口提示”安装驱动成功”,然后点击“确定”按钮即可

然后解压RKDevTool_Release_v2.96.zip,此软件无需安装,在解压后的文件夹中找到 RKDevTool打开即可

打开RKDevTool 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”没有发现设备

然后开始烧录OpenWRT镜像到SPI FLASH中

首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示

确保开发板没有连接电源,并且没有插入TF卡和eMMC模块

然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:

然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了

如果前面的步骤顺利,此时开发板会进入MASKROM模式,在烧录工具的界面上会提示”发现一个MASKROM设备

然后将鼠标光标放在下面的这片区域中

然后点击鼠标右键会弹出下图所示的选择界面

然后选择导入配置选项

然后选择前面下载的MiniLoader文件夹中的rk3588_linux_spiflash.cfg配置文件,再点击打开

然后点击确定

然后点击下图所示的位置

再选择前面下载的MiniLoader文件夹中MiniLoaderAll.bin,再点击打开

然后点击下图所示的位置

再选择想要烧录的OpenWRT镜像的路径,再点击打开

在烧录镜像前,建议将要烧录的OpenWRT镜像重命名为orangepi.img或者其它比较短的名字,这样在烧录镜像的时候就能看到烧录进度的百分比数值。

然后请确保强制按地址写选项已勾上

再点击执行按钮就会开始烧录OpenWRT镜像到SPIFlash中

OpenWRT镜像烧录完后的显示log如下图所示

OpenWRT镜像烧录完后会自动启动,如果没有正常启动,请重新上电试下。

烧录Android镜像到TF卡中的方法

首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为class10或以上,建议使用闪迪等品牌的TF卡

然后使用读卡器把TF卡插入电脑

然后从Orange Pi的资料下载页面下载SDDiskTool烧写工具,请确保SDDiskTool工具的版本为最新的v1.72

然后从Orange Pi的资料下载页面下载Android12的镜像

打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择TF卡和eMMC启动镜像文件夹中的镜像进行下载

进入TF卡和eMMC启动镜像文件夹后可以看到下面三个镜像,它们的区别是:

第一个镜像专门用于HDMI显示的,支持8K显示,如果不使用LCD屏幕,请下载不带lcd的镜像

如果要使用lcd屏幕,请选择带lcd的镜像

带box的镜像是专用于电视盒子的镜像

然后使用解压软件解压下载的Android镜像的压缩包,解压后的文件中,以”.img” 结尾的文件就是Android镜像文件,大小在1GB以上

然后使用解压软件解压SDDiskTool_v1.72.zip,此软件无需安装,在解压后的文件夹中找到SD_Firmware_Tool.exe打开即可

打开SDDiskTool后,如果TF卡识别正常,会在”选择可移动磁盘设备”一栏中显示插入的磁盘设备,请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的,如果没有显示可以尝试拔插下TF卡

确认完盘符后,可以先格式化下TF卡,点击SDDiskTool中的恢复磁盘按钮即可,也可使用前面提到的SD Card Formatter进行TF卡的格式化

然后开始将Android镜像写入TF卡

首先在”选择功能模式”中勾选”SD启动

然后在”选择升级固件”一栏中选择Android镜像的路径

最后点击”开始创建”按钮就会开始烧录Android镜像到TF卡中

烧录完后即可退出SDDiskTool软件,然后就可以把TF卡从电脑中拔出来插到开发板中启动了

烧录Android镜像烧录到eMMC中的方法

注意,烧录镜像到eMMC中后如果测试发现启动不了,请清空下SPIFlash后再启动试下。清空SPIFlash的方法请参考使用RKDevTool清空SPIFlash的方法小节的内容。

通过Type-C线将Android 镜像烧录到eMMC中的方法

注意,下面所有的操作都是在Windows电脑中进行的。

开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC模块和插入开发板的方法如下所示:

还需要准备一根品质良好的Type-C接口的数据线

然后从Orange Pi的资料下载页面下载瑞芯微驱动DriverAssitant_v5.12.zip和烧录工具RKDevTool_Release_v3.15.zip

然后从Orange Pi的资料下载页面下载Android的镜像。

打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择TF卡和eMMC启动镜像文件夹中的镜像进行下载

进入TF卡和eMMC启动镜像文件夹后可以看到下面三个镜像,它们的区别是:

第一个镜像专门用于HDMI显示的,支持8K显示,如果不使用LCD屏幕,请下载不带lcd的镜像

如果要使用lcd屏幕,请选择带lcd的镜像

带box的镜像是专用于电视盒子的镜像

然后使用解压软件解压下载的Android镜像的压缩包,解压后的文件中,以”.img” 结尾的文件就是Android镜像文件,大小在1GB以上

然后用解压软件解压DriverAssitant_v5.12.zip,再在解压后的文件夹中找到DriverInstall.exe可执行文件并打开即可

打开DriverInstall.exe后安装瑞芯微驱动的步骤如下所示

点击”驱动安装”按钮

等待一段时间后,会弹出窗口提示”安装驱动成功”,然后点击“确定”按钮即可

然后解压RKDevTool_Release_v3.15.zip,此软件无需安装,在解压后的文件夹中找到 RKDevTool打开即可

打开RKDevTool 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”没有发现设备

然后开始烧录Android镜像到eMMC中

首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示

然后确保开发板没有插入TF卡,没有连接电源

然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:

然后给开发板接上Type-C接口的电源,并上电

如果前面的步骤顺利,此时开发板会进入MASKROM模式,在烧录工具的界面上会提示”发现一个MASKROM设备

然后点击烧录工具的”升级固件”一栏

接着点击”固件”按钮选择需要烧录的Android镜像的路径

最后点击”升级”按钮就会开始烧录,烧录过程中的log如下图所示。烧录完成后Android系统会自动启动。

通过TF卡将Android 12镜像烧录到eMMC中的方法

注意,下面所有的操作都是在Windows电脑中进行的。

开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC模块和插入开发板的方法如下所示:

还需要准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为class10或以上,建议使用闪迪等品牌的TF卡

然后使用读卡器把TF卡插入电脑

然后从Orange Pi的资料下载页面下载SDDiskTool烧写工具,请确保SDDiskTool工具的版本为最新的v1.72

然后从Orange Pi的资料下载页面下载Android的镜像

打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择TF卡和eMMC启动镜像文件夹中的镜像进行下载

进入TF卡和eMMC启动镜像文件夹后可以看到下面三个镜像,它们的区别是:

第一个镜像专门用于HDMI显示的,支持8K显示,如果不使用LCD屏幕,请下载不带lcd的镜像

如果要使用lcd屏幕,请选择带lcd的镜像

带box的镜像是专用于电视盒子的镜像

然后使用解压软件解压下载的Android镜像的压缩包,解压后的文件中,以”.img” 结尾的文件就是Android镜像文件,大小在1GB以上

然后使用解压软件解压SDDiskTool_v1.72.zip,此软件无需安装,在解压后的文件夹中找到SD_Firmware_Tool.exe打开即可

打开SDDiskTool后,如果TF卡识别正常,会在”选择可移动磁盘设备”一栏中显示插入的磁盘设备,请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的,如果没有显示可以尝试拔插下TF卡

确认完盘符后,可以先格式化下TF卡,点击SDDiskTool中的恢复磁盘按钮即可,也可使用前面提到的SD Card Formatter进行TF卡的格式化

然后开始将Android镜像写入TF卡

首先在“选择可移动磁盘设备”下面确认显示的盘符为TF卡对应的盘符

然后在”选择功能模式”中选择“固件升级”

然后在”选择升级固件”一栏中选择Android固件的路径

最后点击”开始创建”按钮就会开始烧录

烧录完成后的显示如下图所示,然后就可以退出SDDiskTool

然后把TF卡从电脑中拔出来插到开发板中,开发板上电启动后就会自动开始将TF卡中的Android镜像烧录到开发板的eMMC中

如果开发板连接了HDMI显示器,还可以从HDMI显示器中看到烧录Android镜像到eMMC中的进度条

当HDMI显示器显示如下信息时,说明烧录Android镜像到eMMC中已完成,此时就可以拔出TF卡,然后eMMC中的安卓系统就会开始启动。

烧录Android镜像到SPIFlash+NVMe SSD中的方法

注意,下面所有的操作都是在Windows电脑中进行的。

首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。

然后把NVMe SSD插入开发板的M.2 PCIe接口,并固定好

SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置

还需要准备一根品质良好的Type-C接口的数据线

然后从Orange Pi的资料下载页面下载瑞芯微驱动DriverAssitant_v5.12.zip和烧录工具RKDevTool_Release_v3.15.zip

然后从Orange Pi的资料下载页面下载Android12的镜像

打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择SPIFlash-NVME > SSD启动镜像文件夹中的镜像进行下载

进入SPIFlash-NVME > SSD启动镜像文件夹后可以看到下面三个镜像,它们的区别是:

第一个镜像专门用于HDMI显示的,支持8K显示,如果不使用LCD屏幕,请下载不带lcd的镜像

如果要使用lcd屏幕,请选择带lcd的镜像

带box的镜像是专用于电视盒子的镜像

然后用解压软件解压DriverAssitant_v5.12.zip,再在解压后的文件夹中找到DriverInstall.exe可执行文件并打开即可

打开DriverInstall.exe后安装瑞芯微驱动的步骤如下所示

点击”驱动安装”按钮

等待一段时间后,会弹出窗口提示”安装驱动成功”,然后点击“确定”按钮即可

然后解压RKDevTool_Release_v3.15.zip,此软件无需安装,在解压后的文件夹中找到 RKDevTool打开即可

打开RKDevTool 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”没有发现设备

然后开始烧录Android镜像到SPIFlash+NVMe SSD中

首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示

确保开发板没有插入TF和eMMC模块,没有连接电源

然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:

然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了

如果前面的步骤顺利,此时开发板会进入MASKROM模式,在烧录工具的界面上会提示”发现一个MASKROM设备

然后点击烧录工具的”升级固件”一栏

接着点击”固件”按钮选择需要烧录的Android镜像

最后点击”升级”按钮就会开始烧录,烧录的过程如下图所示,可以看到,首先会烧录固件到SPIFlash中,然后烧录固件到PCIE中。烧录完成后Android系统会自动启动。

烧录Orange Pi OS (Droid)镜像到TF卡中的方法

注意,下面所有的操作都是在Windows电脑中进行的。

首先准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为class10或以上,建议使用闪迪等品牌的TF卡

然后使用读卡器把TF卡插入电脑

然后从Orange Pi的资料下载页面下载SDDiskTool烧写工具,请确保SDDiskTool工具的版本为最新的v1.72

然后从Orange Pi的资料下载页面下载Orange Pi OS (Droid)的镜像,打开Orange Pi OS (Droid)镜像的下载链接后可以看到下面两种类型的镜像,请选择下面的镜像

然后使用解压软件解压下载的Orange Pi OS (Droid)镜像的压缩包,解压后的文件中,以”.img” 结尾的文件就是Orange Pi OS (Droid)镜像文件,大小在1GB以上

然后使用解压软件解压SDDiskTool_v1.72.zip,此软件无需安装,在解压后的文件夹中找到SD_Firmware_Tool.exe打开即可

打开SDDiskTool后,如果TF卡识别正常,会在”选择可移动磁盘设备”一栏中显示插入的磁盘设备,请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的,如果没有显示可以尝试拔插下TF卡

确认完盘符后,可以先格式化下TF卡,点击SDDiskTool中的恢复磁盘按钮即可,也可使用前面提到的SD Card Formatter进行TF卡的格式化

然后开始将Orange Pi OS (Droid)镜像写入TF卡

首先在”选择功能模式”中勾选”SD启动

然后在”选择升级固件”一栏中选择Orange Pi OS (Droid)镜像的路径

最后点击”开始创建”按钮就会开始烧录Orange Pi OS (Droid)镜像到TF卡中

烧录完后即可退出SDDiskTool软件,然后就可以把TF卡从电脑中拔出来插到开发板中启动了

烧录Orange Pi OS (Droid)镜像到eMMC中的方法

注意,烧录镜像到eMMC中后如果测试发现启动不了,请清空下SPIFlash后再启动试下。清空SPIFlash的方法请参考使用RKDevTool清空SPIFlash的方法小节的内容。

通过Type-C线将Orange Pi OS (Droid) 镜像烧录到eMMC

注意,下面所有的操作都是在Windows电脑中进行的。

开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC模块和插入开发板的方法如下所示:

还需要准备一根品质良好的Type-C接口的数据线

然后从Orange Pi的资料下载页面下载瑞芯微驱动DriverAssitant_v5.12.zip和烧录工具RKDevTool_Release_v3.15.zip

然后从Orange Pi的资料下载页面下载Orange Pi OS (Droid)的镜像

然后使用解压软件解压下载的Orange Pi OS (Droid)镜像的压缩包,解压后的文件中,以”.img” 结尾的文件就是Orange Pi OS (Droid)镜像文件,大小在1GB以上

然后用解压软件解压DriverAssitant_v5.12.zip,再在解压后的文件夹中找到DriverInstall.exe可执行文件并打开即可

打开DriverInstall.exe后安装瑞芯微驱动的步骤如下所示

点击”驱动安装”按钮

等待一段时间后,会弹出窗口提示”安装驱动成功”,然后点击“确定”按钮即可

然后解压RKDevTool_Release_v3.15.zip,此软件无需安装,在解压后的文件夹中找到RKDevTool打开即可

打开RKDevTool烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”没有发现设备

然后开始烧录Orange Pi OS (Droid)镜像到eMMC中

首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示

确保开发板没有插入TF卡,没有连接电源

然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:

然后给开发板接上Type-C接口的电源,并上电

如果前面的步骤顺利,此时开发板会进入MASKROM模式,在烧录工具的界面上会提示”发现一个MASKROM设备

然后点击烧录工具的”升级固件”一栏

接着点击”固件”按钮选择需要烧录的Orange Pi OS > (Droid)镜像的路径

最后点击”升级”按钮就会开始烧录,烧录过程中的log如下图所示。烧录完成后Orange > Pi OS (Droid)系统会自动启动。

通过TF卡将Orange Pi OS (Droid)镜像烧录到eMMC

注意,下面所有的操作都是在Windows电脑中进行的。

开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC模块和插入开发板的方法如下所示:

还需要准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为class10或以上,建议使用闪迪等品牌的TF卡

然后使用读卡器把TF卡插入电脑

然后从Orange Pi的资料下载页面下载SDDiskTool烧写工具,请确保SDDiskTool工具的版本为最新的v1.72

然后从Orange Pi的资料下载页面下载Orange Pi OS (Droid)的镜像

然后使用解压软件解压下载的Orange Pi OS (Droid)镜像的压缩包,解压后的文件中,以”.img” 结尾的文件就是Orange Pi OS (Droid)镜像文件,大小在1GB以上

然后使用解压软件解压SDDiskTool_v1.72.zip,此软件无需安装,在解压后的文件夹中找到SD_Firmware_Tool.exe打开即可

打开SDDiskTool后,如果TF卡识别正常,会在”选择可移动磁盘设备”一栏中显示插入的磁盘设备,请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的,如果没有显示可以尝试拔插下TF卡

确认完盘符后,可以先格式化下TF卡,点击SDDiskTool中的恢复磁盘按钮即可,也可使用前面提到的SD Card Formatter进行TF卡的格式化

然后开始将Orange Pi OS (Droid)镜像写入TF卡

首先在“选择可移动磁盘设备”下面确认显示的盘符为TF卡对应的盘符

然后在”选择功能模式”中选择“固件升级”

然后在”选择升级固件”一栏中选择Orange Pi OS (Droid)固件的路径

最后点击”开始创建”按钮就会开始烧录

烧录完成后的显示如下图所示,然后就可以退出SDDiskTool

然后把TF卡从电脑中拔出来插到开发板中,开发板上电启动后就会自动开始将TF卡中的Orange Pi OS (Droid)镜像烧录到开发板的eMMC中

如果开发板连接了HDMI显示器,还可以从HDMI显示器中看到烧录Orange Pi OS (Droid)镜像到eMMC中的进度条

当HDMI显示器显示如下信息时,说明烧录Orange Pi OS (Droid)镜像到eMMC中已完成,此时就可以拔出TF卡,然后eMMC中的Orange Pi OS (Droid)系统就会开始启动。

烧录Orange Pi OS (Droid)镜像到SPIFlash+NVMe SSD中

注意,下面所有的操作都是在Windows电脑中进行的。

首先需要准备一个2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。

然后把NVMe SSD插入开发板的M.2 PCIe接口,并固定好

SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置

还需要准备一根品质良好的Type-C接口的数据线

然后从Orange Pi的资料下载页面下载瑞芯微驱动DriverAssitant_v5.12.zip,烧录工具RKDevTool_Release_v3.15.zip

然后下载Orange Pi OS (Droid)的镜像,打开Orange Pi OS (Droid)镜像的下载链接后可以看到下面两种类型的镜像,请选择带spi-nvme的镜像进行下载

然后用解压软件解压DriverAssitant_v5.12.zip,再在解压后的文件夹中找到DriverInstall.exe可执行文件并打开即可

打开DriverInstall.exe后安装瑞芯微驱动的步骤如下所示

点击”驱动安装”按钮

等待一段时间后,会弹出窗口提示”安装驱动成功”,然后点击“确定”按钮即可

然后解压RKDevTool_Release_v3.15.zip,此软件无需安装,在解压后的文件夹中找到RKDevTool打开即可

打开RKDevTool烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”没有发现设备

然后开始烧录Android镜像到SPIFlash+NVMe SSD中

首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示

确保开发板没有插入TF和eMMC模块,没有连接电源

然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:

然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了

如果前面的步骤顺利,此时开发板会进入MASKROM模式,在烧录工具的界面上会提示”发现一个MASKROM设备

然后点击烧录工具的”升级固件”一栏

接着点击”固件”按钮选择需要烧录的Orange Pi OS (Droid)镜像

最后点击”升级”按钮就会开始烧录,烧录的过程如下图所示,可以看到,首先会烧录固件到SPIFlash中,然后烧录固件到PCIE中。烧录完成后Orange Pi OS (Droid)系统会自动启动。

使用RKDevTool清空SPIFlash的方法

SPI Flash在开发板上的位置如下图所示

首先需要准备一根品质良好的Type-C接口的数据线

然后从Orange Pi的资料下载页面下载瑞芯微驱动DriverAssitant_v5.12.zipMiniLoader以及烧录工具RKDevTool_Release_v3.15.zip

在Orange Pi的资料下载页面首先选择官方工具,然后进入下面的文件夹中

然后下载下面的所有文件

注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。

然后用解压软件解压DriverAssitant_v5.12.zip,再在解压后的文件夹中找到DriverInstall.exe可执行文件并打开即可

打开DriverInstall.exe后安装瑞芯微驱动的步骤如下所示

点击”驱动安装”按钮

等待一段时间后,会弹出窗口提示”安装驱动成功”,然后点击“确定”按钮即可

然后解压RKDevTool_Release_v3.15.zip,此软件无需安装,在解压后的文件夹中找到 RKDevTool打开即可

打开RKDevTool 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”没有发现设备

然后就可以开始清空SPI FLASH中的内容

首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示

确保开发板没有连接电源

然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:

然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了

如果前面的步骤顺利,此时开发板会进入MASKROM模式,在烧录工具的界面上会提示”发现一个MASKROM设备

然后请选择高级功能

然后点击下图所示的位置

再选择前面下载的MiniLoader文件夹中的MiniLoaderAll.bin,再点击打开

然后点击下载

下载完MiniLoaderAll.bin后的显示如下图所示

然后选择存储设备为SPINOR

然后点击切换存储

然后点击擦除所有就会开始擦除SPIFlash了

擦除SPIFlash后的显示log如下图所示

启动香橙派开发板 将烧录好镜像的TF卡或eMMC模块插入香橙派开发板的TF卡插槽中。如果SPIFlash+NVMe SSD已经烧录好镜像了,那么就不需要插入TF卡或eMMC模块了,只需确保NVMe SSD正常插入到开发板中即可。 开发板有HDMI接口,可以通过HDMI转HDMI连接线把开发板连接到电视或者HDMI显示器。如果有购买LCD屏幕,也可以使用LCD屏幕来显示开发板的系统界面。如果有Type-C转HDMI的线,也可以通过Type-C接口来显示开发板的系统界面。 接上USB鼠标和键盘,用于控制香橙派开发板。 开发板有以太网口,可以插入网线用来上网。 连接一个5V/4A的USB Type-C接口的高品质的电源适配。

切记不要插入电压输出大于5V的电源适配器,会烧坏开发板。

系统上电启动过程中很多不稳定的现象基本都是供电有问题导致的,所以一个靠谱的电源适配器很重要。如果启动过程中发现有不断重启的现象,请更换下电源或者Type-C数据线再试下。

Type-C电源接口是不支持PD协商的。

另外请不要接到电脑的USB接口来给开发板供电。

开发板上有两个长得一样的Type-C接口,其中网口旁边竖着的那个才是电源接口,另外那个Type-C接口是没有供电功能的,请别接错了。

然后打开电源适配器的开关,如果一切正常,此时HDMI显示器或者LCD屏幕就能看到系统的启动画面了。

如果想通过调试串口查看系统的输出信息,请使用串口线将开发板连接到电脑,串口的连接方法请参看调试串口的使用方法一节。

调试串口的使用方法 调试串口的连接说明

首先需要准备一个3.3V的USB转TTL模块,然后将USB转TTL模块的USB接口一端插入到电脑的USB接口中。

为了更好的兼容性,推荐使用CH340 USB转TTL模块,请不要使用CP2102、PL2303类型的USB转TTL模块。

购买USB转TTL模块前,请确认模块支持1500000速率的波特率。

开发板的调试串口GND、RXD和TXD引脚的对应关系如下图所示:

USB转TTL模块GND、TXD和RXD引脚需要通过杜邦线连接到开发板的调试串口上

USB转TTL模块的GND接到开发板的GND上

USB转TTL模块的RX接到开发板的TX上

USB转TTL模块的TX接到开发板的RX上

USB转TTL模块连接电脑和Orange Pi开发板的示意图如下所示

串口的TX和RX是需要交叉连接的,如果不想仔细区分TX和RX的顺序,可以把串口的TX和RX先随便接上,如果测试没有输出再交换下TX和RX的顺序,这样就总有一种顺序是对的。

Ubuntu平台调试串口的使用方法

Linux下可以使用的串口调试软件有很多,如putty、minicom等,下面演示下putty的使用方法。

首先将USB转TTL模块插入Ubuntu电脑的USB接口,如果USB转TTL模块连接识别正常,在Ubuntu PC的/dev下就可以看到对应的设备节点名,记住这个节点名,后面设置串口软件时会用到。

test@test:~$ ls /dev/ttyUSB*

/dev/ttyUSB0

然后使用下面的命令在Ubuntu PC上安装下putty

test@test:~$ sudo apt-get update

test@test:~$ sudo apt-get install -y putty

然后运行putty,记得加sudo权限

test@test:~$ sudo putty

执行putty命令后会弹出下面的界面

首先选择串口的设置界面

然后设置串口的参数

设置Serial line to connect to为/dev/ttyUSB0(修改为对应的节点名,一般为/dev/ttyUSB0)

设置Speed(baud)为1500000(串口的波特率)

设置Flow control为None

在串口的设置界面设置完后,再回到Session界面

首先选择Connection type为Serial

然后点击Open按钮连接串口

启动开发板后,就能从打开的串口终端中看到系统输出的Log信息了

Windows平台调试串口的使用方法

Windows下可以使用的串口调试软件有很多,如SecureCRT、MobaXterm等,下面演示MobaXterm的使用方法,这款软件有免费版本,无需购买序列号即可使用。

下载MobaXterm

下载MobaXterm网址如下

https://mobaxterm.mobatek.net

进入MobaXterm下载网页后点击GET XOBATERM NOW!

然后选择下载Home版本

然后选择Portable便携式版本,下载完后无需安装,直接打开就可以使用

下载完后使用解压缩软件解压下载的压缩包,即可得到MobaXterm的可执软件,然后双击打开

打开软件后,设置串口连接的步骤如下

打开会话的设置界面

选择串口类型

选择串口的端口号(根据实际的情况选择对应的端口号),如果看不到端口号,请使用360驱动大师扫描安装USB转TTL串口芯片的驱动

选择串口的波特率为1500000

最后点击”OK”按钮完成设置

点击“OK”按钮后会进入下面的界面,此时启动开发板就能看到串口的输出信息了

使用开发板40pin接口中的5v引脚供电说明

我们推荐的开发板的供电方式是使用5V/4A或者5V/5A的Type C接口的电源线插到开发板的Type-C电源接口来供电的。如果需要使用40pin接口中的5V引脚来给开发板供电,请确保使用的电源线和电源适配器能满足开发板的供电需求。如果有使用不稳定的情况,请换回Type-C电源供电。

首先需要准备一根下图所示的电源线

上图所示的电源线在淘宝可以买到,请自行搜索购买。

使用40pin接口中的5V引脚来给开发板供电,电源线的接法如下所示

上图所示的电源线USB A口需要插到5V/4A或者5V/5A的电源适配器接头上(请不要插到电脑的USB接口来供电,一般的手机充电头也不行,因为开发板没有PD功能,一般的手机充电头只能输出最低的5V/2A)

红色的杜邦线需要插到开发板40pin的5V引脚上

黑色的杜邦线需要插到40pin接口的GND引脚上

40pin接口5V引脚和GND引脚在开发板中的位置如下图所示,切记不要接反了

Ubuntu/Debian Server和Xfce桌面系统使用说明

本章内容是基于Ubuntu/Debian的服务器版本镜像和xfce桌面版本镜像编写的。

如果使用的是Ubuntu22.04 Gnome镜像,请先查看Ubuntu22.04 Gnome Wayland桌面系统使用说明一章的说明。

Ubuntu22.04 Gnome Wayland桌面系统使用说明一章中不存在的内容,可以参考此章的说明,但是有些细节是会有差异的,这点请特别注意下。

如果使用的是OPi OS Arch镜像,请查看Orange Pi OS Arch系统使用说明一章的内容。

已支持的Ubuntu/Debian镜像类型和内核版本 Linux镜像类型 内核版本 服务器版 桌面版 Debian 11 - Bullseye Linux5.10 支持 支持 Debian 12 - Bookworm Linux5.10 支持 支持 Ubuntu 20.04 - Focal Linux5.10 支持 支持 Ubuntu 22.04 - Jammy Linux5.10 支持 支持 linux系统适配情况 功能 Debian11 Debian12 Ubuntu20.04 Ubuntu22.04 HDMI TX1视频 OK OK OK OK HDMI TX1音频 OK OK OK OK HDMI TX2视频 OK OK OK OK HDMI TX2音频 OK OK OK OK HDMI RX视频 OK OK OK OK HDMI RX音频 OK OK OK OK USB2.0X2 OK OK OK OK USB3.0X2 OK OK OK OK 2.5G PCIe网口X2 OK OK OK OK 2.5G PCIe网口灯 OK OK OK OK 调试串口 OK OK OK OK RTC芯片 OK OK OK OK FAN风扇接口 OK OK OK OK eMMC扩展接口 OK OK OK OK AP6275P-WIFI OK OK OK OK AP6275P-BT OK OK OK OK AX200-WIFI OK OK OK OK AX200-BT OK OK OK OK AX210-WIFI OK OK OK OK AX210-BT OK OK OK OK RTL8852BE-WIFI OK OK OK OK RTL8852BE-BT OK OK OK OK MaskROM按键 OK OK OK OK Type-C转USB3.0 OK OK OK OK Type-C ADB功能 OK OK OK OK Type-C DP视频 OK OK OK OK Type-C DP音频 OK OK OK OK 开关机按键 OK OK OK OK 红外功能 OK OK OK OK 三色LED灯 OK OK OK OK 板载MIC OK OK OK OK 耳机播放 OK OK OK OK 耳机录音 OK OK OK OK SPK喇叭 OK OK OK OK 40PIN GPIO OK OK OK OK 40PIN I2C OK OK OK OK 40PIN SPI OK OK OK OK 40PIN UART OK OK OK OK 40PIN CAN OK OK OK OK 40PIN PWM OK OK OK OK TF卡启动 OK OK OK OK SPI+NVME启动 OK OK OK OK OV13850摄像头 OK OK OK OK OV13855摄像头 OK OK OK OK GPU OK OK OK OK VPU OK OK OK OK NPU OK OK OK OK REBOOT命令重启 OK OK OK OK Poweroff命令关机 OK OK OK OK MIPI LCD显示 OK OK OK OK MIPI LCD触摸 OK OK OK OK Chromium硬解视频 OK OK OK OK 本手册linux命令格式说明

本手册中所有需要在Linux系统中输入的命令都会使用下面的方框框起来

如下所示,黄色方框里内容表示需要特别注意的内容,这里面的命令除外。

命令前面的提示符类型说明

命令前面提示符指的是下面方框内红色部分的内容,这部分内容不是linux命令的一部分,所以在linux系统中输入命令时,请不要把红色字体部分的内容也输入进去。

orangepi@orangepi:~$ sudo apt update

root@orangepi:~# vim /boot/boot.cmd

test@test:~$ ssh [email protected]

root@test:~# ls

root@orangepi:~$ 提示符表示这个命令是在开发板的linux系统中输入的,提示符最后的 $ 表示系统当前用户为普通用户,当执行特权命令时,需要加上sudo

root@orangepi:~# 提示符表示这个命令是在开发板的linux系统中输入的,提示符最后的 # 表示系统当前用户为root用户,可以执行任何想要执行的命令

test@test:~$ 提示符表示这个命令是在Ubuntu PC或者Ubuntu虚拟机中输入的,而不是开发板的linux系统中。提示符最后的 $ 表示系统当前用户为普通用户,当执行特权命令时,需要加上sudo

root@test:~# 提示符表示这个命令是在Ubuntu PC或者Ubuntu虚拟机中输入的,而不是开发板的linux系统中。提示符最后的 # 表示系统当前用户为root用户,可以执行任何想要执行的命令

哪些是需要输入的命令?

如下所示,黑色加粗部分是需要输入的命令,命令下面的是输出的内容(有些命令有输出,有些可能没有输出),这部分内容是不需要输入的

root@orangepi:~# cat /boot/orangepiEnv.txt

verbosity=7

bootlogo=false

console=serial

如下所示,有些命令一行写不下会放到下一行,只要黑色加粗的部分就都是需要输入的命令。当这些命令输入到一行的时候,每行最后的”\”是需要去掉的,这个不是命令的一部分。另外命令的不同部分都是有空格的,请别漏了

orangepi@orangepi:~$ echo \

"deb [arch=$(dpkg --print-architecture) \

signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \

https://download.docker.com/linux/debian \

$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

linux系统登录说明 linux系统默认登录账号和密码 账号 密码 root orangepi orangepi orangepi

注意,输入密码的时候,屏幕上是不会显示输入的密码的具体内容的,请不要以为是有什么故障,输入完后直接回车即可。

当输入密码提示错误,或者ssh连接有问题,请注意,只要使用的是Orange Pi提供的Linux镜像,就请不要怀疑上面的密码不对,而是要找其它的原因。

设置linux系统终端自动登录的方法

linux系统默认就是自动登录终端的,默认登录的用户名是orangepi

使用下面的命令可以设置root用户自动登录终端

orangepi@orangepi:~$ sudo auto_login_cli.sh root

使用下面的命令可以禁止自动登录终端

orangepi@orangepi:~$ sudo auto_login_cli.sh -d

使用下面的命令可以再次设置orangepi用户自动登录终端

orangepi@orangepi:~$ sudo auto_login_cli.sh orangepi

linux桌面版系统自动登录说明

桌面版系统启动后会自动登录进入桌面,无需输入密码

运行下面的命令可以禁止桌面版系统自动登录桌面

orangepi@orangepi:~$ sudo disable_desktop_autologin.sh

然后重启系统就会出现登录对话框,此时需要输入密码才能进入系统

Linux桌面版系统root用户自动登录的设置方法

执行下面的命令可以设置桌面版系统使用root用户自动登录

orangepi@orangepi:~$ sudo desktop_login.sh root

然后重启系统,就会自动使用root用户登录桌面了

注意,如果使用root用户登录桌面系统,是无法使用右上角的pulseaudio来管理音频设备的。

另外请注意这并不是一个bug,因为pulseaudio本来就不允许在root用户下运行。

执行下面的命令可以再次设置桌面版系统使用orangepi用户自动登录

orangepi@orangepi:~$ sudo desktop_login.sh orangepi

Linux桌面版系统禁用桌面的方法

首先在命令行中输入下面的命令,请记得加sudo权限

orangepi@orangepi:~$ sudo systemctl disable lightdm.service

然后重启Linux系统就会发现不会显示桌面了

orangepi@orangepi:~$ sudo reboot

重新打开桌面的步骤如下所示:

首先在命令行中输入下面的命令,请记得加sudo权限

orangepi@orangepi:~$ sudo systemctl start lightdm.service

选择完后显示器就会显示桌面了

板载LED灯测试说明

开发板上有一个红绿蓝三色灯,所在位置如下图所示:

只要开发板打开了电源,红色的LED灯就会常亮,这是由硬件控制的,软件无法关闭。通过红色的LED灯可以确定开发板的电源是否已正常开启。

绿色和蓝色的LED灯在内核启动后会一直闪烁,这是由软件控制的。

使用命令设置绿灯亮灭和闪烁的方法如下所示:

注意,下面的操作请在root用户下进行。

首先进入绿灯的设置目录

root@orangepi:~# cd /sys/class/leds/green_led

设置绿灯停止闪烁的命令如下

root@orangepi:/sys/class/leds/green_led# echo none > trigger

设置绿灯常亮的命令如下

root@orangepi:/sys/class/leds/green_led# echo default-on > trigger

设置绿灯闪烁的命令如下

root@orangepi:/sys/class/leds/green_led# echo heartbeat > trigger

使用命令设置蓝灯亮灭和闪烁的方法如下所示:

注意,下面的操作请在root用户下进行。

首先进入蓝灯的设置目录

root@orangepi:~# cd /sys/class/leds/blue_led

设置蓝灯停止闪烁的命令如下

root@orangepi:/sys/class/leds/blue_led# echo none > trigger

设置蓝灯常亮的命令如下

root@orangepi:/sys/class/leds/blue_led# echo default-on > trigger

设置蓝灯闪烁的命令如下

root@orangepi:/sys/class/leds/blue_led# echo heartbeat > trigger

如果开机后不需要LED灯闪烁,可以使用下面的方法来关闭绿灯和蓝灯

首先运行下orangepi-config,普通用户记得加sudo权限

orangepi@orangepi:~$ sudo orangepi-config

然后选择System

然后选择Hardware

然后使用键盘的方向键定位到下图所示的位置,再使用空格选中opi5plus-disable-leds配置

然后选择保存

然后选择

然后选择重启系统使配置生效

重启后就可以看到开发板上只有红灯常亮了,绿灯和蓝灯都不会闪烁了

网络连接测试

2.5G以太网口测试

开发板有两个2.5G的以太网接口,两个网口的测试方法是一样的。首先将网线的一端插入开发板的以太网接口,网线的另一端接入路由器,并确保网络是畅通的。

系统启动后会通过DHCP自动给以太网卡分配IP地址,不需要其他任何配置

在开发板的Linux系统中查看IP地址的命令如下所示:

orangepi@orangepi:~$ ip addr show

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: enP3p49s0: mtu 1500 qdisc mq state UP group default qlen 1000

link/ether 00:e0:4c:68:00:26 brd ff:ff:ff:ff:ff:ff

inet 192.168.1.245/24 brd 192.168.1.255 scope global dynamic noprefixroute enP3p49s0

valid_lft 42537sec preferred_lft 42537sec

inet6 fe80::9005:95ac:b9c0:2beb/64 scope link noprefixroute

valid_lft forever preferred_lft forever

3: enP4p65s0: mtu 1500 qdisc mq state UP group default qlen 1000

link/ether 00:e0:4c:68:00:27 brd ff:ff:ff:ff:ff:ff

inet 192.168.1.247/24 brd 192.168.1.255 scope global dynamic noprefixroute enP4p65s0

valid_lft 43179sec preferred_lft 43179sec

inet6 fe80::62b5:dc5e:728e:39a3/64 scope link noprefixroute

valid_lft forever preferred_lft forever

当使用ifconfig查看IP地址时,如果提示下面的信息,是因为没有加sudo导致的,正确的命令是:sudo ifconfig

orangepi@orangepi:~$ ifconfig

Command 'ifconfig' is available in the following places

* /sbin/ifconfig

* /usr/sbin/ifconfig

The command could not be located because '/sbin:/usr/sbin' is not included in the PATH environment variable.

This is most likely caused by the lack of administrative privileges associated with your user account.

ifconfig: command not found

开发板启动后查看IP地址有三种方法:

接HDMI显示器,然后登录系统使用ip addr show命令查看IP地址 在调试串口终端输入ip addr show命令来查看IP地址 如果没有调试串口,也没有HDMI显示器,还可以通过路由器的管理界面来查看开发板网口的IP地址。不过这种方法经常有人会无法正常看到开发板的IP地址。如果看不到,调试方法如下所示:

首先检查Linux系统是否已经正常启动,如果开发板的三色灯在闪烁了,一般是正常启动了,如果只亮红灯,说明系统都没正常启动;

检查网线有没有插紧,或者换根网线试下;

换个路由器试下(路由器的问题有遇到过很多,比如路由器无法正常分配IP地址,或者已正常分配IP地址但在路由器中看不到);

如果没有路由器可换就只能连接HDMI显示器或者使用调试串口来查看IP地址。

另外需要注意的是开发板DHCP自动分配IP地址是不需要任何设置的。

测试网络连通性的命令如下,ping命令可以通过Ctrl+C快捷键来中断运行

orangepi@orangepi:~$ ping www.baidu.com -I enP4p65s0 #其中一个网口的测试命令

orangepi@orangepi:~$ ping www.baidu.com -I enP3p49s0 #另一个网口的测试命令

PING www.a.shifen.com (14.119.104.254) from 192.168.1.182 enP3p49s0: 56(84) bytes of data.

64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq=1 ttl=56 time=6.26 ms

64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq=6 ttl=56 time=5.69 ms

^C

--- www.a.shifen.com ping statistics ---

6 packets transmitted, 6 received, 0% packet loss, time 5008ms

rtt min/avg/max/mdev = 5.671/5.859/6.264/0.202 ms

WIFI连接测试

首先请注意Orange Pi 5 Plus开发板上是没有WIFI模块的,需要外接PCIe网卡或者USB网卡才能使用WIFI功能。

外接PCIe网卡的使用说明请参考PCIe WIFI6+蓝牙模块的使用方法一小节。

外接USB网卡的使用说明请参考USB无线网卡测试一小节。

请不要通过修改/etc/network/interfaces配置文件的方式来连接WIFI,通过这种方式连接WIFI网络使用会有问题。

服务器版镜像通过命令连接WIFI

当开发板没有连接以太网,没有连接HDMI显示器,只连接了串口时,推荐使用此小节演示的命令来连接WIFI网络。因为nmtui在某些串口软件(如minicom)中只能显示字符,无法正常显示图形界面。当然,如果开发板连接了以太网或者HDMI显示屏,也可以使用此小节演示的命令来连接WIFI网络的。

下面演示的命令都是默认WIFI的网络设备节点名为wlan0,但不同的WIFI模块节点名会有不同,请注意替换为实际看到的节点名,不要照抄。

先登录linux系统,有下面三种方式

如果开发板连接了网线,可以通过ssh远程登录linux系统

如果开发板连接好了调试串口,可以使用串口终端登录linux系统

如果连接了开发板到HDMI显示器,可以通过HDMI显示的终端登录到linux系统

首先使用nmcli dev wifi命令扫描周围的WIFI热点

orangepi@orangepi:~$ nmcli dev wifi

然后使用nmcli 命令连接扫描到的WIFI热点,其中:

wifi_name需要换成想连接的WIFI热点的名字

wifi_passwd需要换成想连接的WIFI热点的密码

orangepi@orangepi:~$ nmcli dev wifi connect wifi_name password wifi_passwd

Device 'wlan0' successfully activated with 'cf937f88-ca1e-4411-bb50-61f402eef293'.

通过ip addr show wlan0命令可以查看wifi的IP地址

WIFI的设备节点名不一定都是wlan0,请以实际看到的为准。

orangepi@orangepi:~$ ip addr show wlan0

11: wlan0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether 23:8c:d6:ae:76:bb brd ff:ff:ff:ff:ff:ff

inet 192.168.1.11/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0

valid_lft 259192sec preferred_lft 259192sec

inet6 240e:3b7:3240:c3a0:c401:a445:5002:ccdd/64 scope global dynamic noprefixroute

valid_lft 259192sec preferred_lft 172792sec

inet6 fe80::42f1:6019:a80e:4c31/64 scope link noprefixroute

valid_lft forever preferred_lft forever

使用ping命令可以测试wifi网络的连通性,ping命令可以通过Ctrl+C快捷键来中断运行

WIFI的设备节点名不一定都是wlan0,请以实际看到的为准。

orangepi@orangepi:~$ ping www.orangepi.org -I wlan0

PING www.orangepi.org (182.92.236.130) from 192.168.1.49 wlan0: 56(84) bytes of data.

64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=1 ttl=52 time=43.5 ms

64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=2 ttl=52 time=41.3 ms

64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=3 ttl=52 time=44.9 ms

64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=4 ttl=52 time=45.6 ms

64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=5 ttl=52 time=48.8 ms

^C

--- www.orangepi.org ping statistics ---

5 packets transmitted, 5 received, 0% packet loss, time 4006ms

rtt min/avg/max/mdev = 41.321/44.864/48.834/2.484 ms

服务器版镜像通过图形化方式连接WIFI

先登录linux系统,有下面三种方式

如果开发板连接了网线,可以通过ssh远程登录linux系统

如果开发板连接好了调试串口,可以使用串口终端登录linux系统(串口软件请使用MobaXterm,使用minicom无法显示图形界面)

如果连接了开发板到HDMI显示器,可以通过HDMI显示的终端登录到linux系统

然后在命令行中输入nmtui命令打开wifi连接的界面

orangepi@orangepi:~$ nmtui

输入nmtui命令打开的界面如下所示

选择Activate a connect后回车

然后就能看到所有搜索到的WIFI热点

选择想要连接的WIFI热点后再使用Tab键将光标定位到Activate后回车

然后会弹出输入密码的对话框,在Password内输入对应的密码然后回车就会开始连接WIFI

WIFI连接成功后会在已连接的WIFI名称前显示一个”*”

通过ip addr show wlan0命令可以查看wifi的IP地址

WIFI的设备节点名不一定都是wlan0,请以实际看到的为准。

orangepi@orangepi:~$ ip addr show wlan0

11: wlan0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether 24:8c:d3:aa:76:bb brd ff:ff:ff:ff:ff:ff

inet 192.168.1.11/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0

valid_lft 259069sec preferred_lft 259069sec

inet6 240e:3b7:3240:c4a0:c401:a445:5002:ccdd/64 scope global dynamic noprefixroute

valid_lft 259071sec preferred_lft 172671sec

inet6 fe80::42f1:6019:a80e:4c31/64 scope link noprefixroute

valid_lft forever preferred_lft forever

使用ping命令可以测试wifi网络的连通性,ping命令可以通过Ctrl+C快捷键来中断运行

WIFI的设备节点名不一定都是wlan0,请以实际看到的为准。

orangepi@orangepi:~$ ping www.orangepi.org -I wlan0

PING www.orangepi.org (182.92.236.130) from 192.168.1.49 wlan0: 56(84) bytes of data.

64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=1 ttl=52 time=43.5 ms

64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=2 ttl=52 time=41.3 ms

64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=3 ttl=52 time=44.9 ms

64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=4 ttl=52 time=45.6 ms

64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=5 ttl=52 time=48.8 ms

^C

--- www.orangepi.org ping statistics ---

5 packets transmitted, 5 received, 0% packet loss, time 4006ms

rtt min/avg/max/mdev = 41.321/44.864/48.834/2.484 ms

桌面版镜像的测试方法

点击桌面右上角的网络配置图标(测试WIFI时请不要连接网线)

在弹出的下拉框中点击More networks可以看到所有扫描到的WIFI热点,然后选择想要连接的WIFI热点

然后输入WIFI热点的密码,再点击Connect就会开始连接WIFI

连接好WIFI后,可以打开浏览器查看是否能上网,浏览器的入口如下图所示

打开浏览器后如果能打开其他网页说明WIFI连接正常

设置静态IP地址的方法

请不要通过修改/etc/network/interfaces配置文件的方式来设置静态IP地址。

使用nmtui命令来设置静态IP地址

首先运行nmtui命令

orangepi@orangepi:~$ nmtui

然后选择Edit a connection并按下回车键

然后选择需要设置静态IP地址的网络接口,比如设置Ethernet接口的静态IP地址选择Wired connection 1或者Wired connection 2

然后通过Tab键选择Edit并按下回车键

然后通过Tab键将光标移动到下图所示的位置进行IPv4的配置

然后回车,通过上下方向键选择Manual,然后回车确定

选择完后的显示如下图所示

然后通过Tab键将光标移动到

然后回车,回车后会弹出下面的设置界面

然后就可以在下图所示的位置设置IP地址(Addresses)、网关(Gateway)和DNS服务器的地址(里面还有很多其他设置选项,请自行探索),请根据自己的具体需求来设置,下图中设置的值只是一个示例

设置完后将光标移动到右下角的,然后回车确认

然后点击回退到上一级选择界面

然后选择Activate a connection,再将光标移动到,最后点击回车

然后选择需要设置的网络接口,比如Wired connection 2,然后将光标移动到,再按下回车键禁用Wired connection 2

然重新选择并使能Wired connection 2,这样前面设置的静态IP就会生效了

然后通过Quit按钮就可以退出nmtui

然后通过ip addr show就能看到网口的IP地址已经变成前面设置的静态IP地址了

orangepi@orangepi:~$ ip addr show enP4p65s0

3: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether 5e:ac:14:a5:92:b3 brd ff:ff:ff:ff:ff:ff

inet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute enP4p65s0

valid_lft forever preferred_lft forever

inet6 241e:3b8:3240:c3a0:e269:8305:dc08:135e/64 scope global dynamic noprefixroute

valid_lft 259149sec preferred_lft 172749sec

inet6 fe80::957d:bbbe:4928:3604/64 scope link noprefixroute

valid_lft forever preferred_lft forever

然后就可以测试网络的连通性来检查IP地址是否配置OK了,ping命令可以通过Ctrl+C快捷键来中断运行

orangepi@orangepi:~$ ping 192.168.1.47 -I enP4p65s0

PING 192.168.1.47 (192.168.1.47) from 192.168.1.188 enP4p65s0: 56(84) bytes of data.

64 bytes from 192.168.1.47: icmp_seq=1 ttl=64 time=0.233 ms

64 bytes from 192.168.1.47: icmp_seq=2 ttl=64 time=0.263 ms

^C

--- 192.168.1.47 ping statistics ---

5 packets transmitted, 5 received, 0% packet loss, time 4042ms

rtt min/avg/max/mdev = 0.233/0.262/0.275/0.015 ms

使用nmcli命令来设置静态IP地址

如果要设置网口的静态IP地址,请先将网线插入开发板,如果需要设置WIFI的静态IP地址,请先连接好WIFI,然后再开始设置静态IP地址

然后通过nmcli con show命令可以查看网络设备的名字,如下所示,Wired connection 1Wired connection 2为以太网接口的名字

orangepi@orangepi:~$ nmcli con show NAMEUUID TYPE DEVICE Wired connection 1c043c817-1156-3b72-a559-9a8cd642bf70ethernet enP3p49s0 Wired connection 26f74598a-ccc6-358b-be05-87eaf34df930ethernet enP4p65s0

然后输入下面的命令,其中

"Wired connection 1" 表示设置以太网口的静态IP地址,如果需要设置其它网口的静态IP地址,请修改为对应网络接口对应的名字(通过nmcli > con show命令可以获取到)

ipv4.addresses 后面是要设置的静态IP地址,可以修改为自己想要设置的值

ipv4.gateway 表示网关的地址

orangepi@orangepi:~$ nmcli con mod "Wired connection 1" \

ipv4.addresses "192.168.1.110" \

ipv4.gateway "192.168.1.1" \

ipv4.dns "8.8.8.8" \

ipv4.method "manual"

然后重启linux系统

orangepi@orangepi:~$ sudo reboot

然后重新进入linux系统使用ip addr show命令就可以看到IP地址已经设置为想要的值了

orangepi@orangepi:~$ ip addr show

2: enP3p49s0: mtu 1500 qdisc mq state UP group default qlen 1000

link/ether 00:e0:4c:68:00:26 brd ff:ff:ff:ff:ff:ff

inet 192.168.1.110/32 scope global noprefixroute enP3p49s0

valid_lft forever preferred_lft forever

inet6 fe80::9005:95ac:b9c0:2beb/64 scope link noprefixroute

valid_lft forever preferred_lft forever

M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 首先需要购买一个PCIe WIFI6+蓝牙模块 序号 型号 实物图片 已支持的OS 1 AX200

(PCIE+USB接口)

Debian

Ubuntu

OpenWRT

OPi OS Arch

2 AX210

(PCIE+USB接口)

Debian

Ubuntu

OpenWRT

OPi OS Arch

3 RTL8852BE

(PCIE+USB接口)

Debian

Ubuntu

Android12

OPi OS Arch

OPi OS Droid

然后将模块插入开发板的M.2 E-Key接口中并固定好,位置如下图所示:

然后使用lspci命令如果能看到WIFI模块的信息,说明模块接触良好

AX200显示如下所示

orangepi@orangepi:~$ lspci | grep "Network"

0002:21:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)

AX210显示如下所示

orangepi@orangepi:~$ lspci | grep "Network"

0002:21:00.0 Network controller: Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz (rev 1a)

RTL8852显示如下所示

orangepi@orangepi:~$ lspci | grep "Network"

0002:21:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)

然后使用下面的命令就能看到会多了一个WIFI的设备节点了

[orangepi@orangepi ~]$ ip a

WIFI的连接和测试方法请参看WIFI连接测试一节,这里不再赘述。

蓝牙的测试方法请参看蓝牙使用方法一节,这里不再赘述。

SSH远程登录开发板

Linux系统默认都开启了ssh远程登录,并且允许root用户登录系统。ssh登录前首先需要确保以太网或者wifi网络已连接,然后使用ip addr命令或者通过查看路由器的方式获取开发板的IP地址。

Ubuntu下SSH远程登录开发板 获取开发板的IP地址 然后就可以通过ssh命令远程登录linux系统

test@test:~$ ssh [email protected] (需要替换为开发板的IP地址) [email protected]'s password: (在这里输入密码,默认密码为orangepi)

注意,输入密码的时候,屏幕上是不会显示输入的密码的具体内容的,请不要以为是有什么故障,输入完后直接回车即可。

如果提示拒绝连接,只要使用的是Orange Pi提供的镜像,就请不要怀疑orangepi这个密码是不是不对,而是要找其他原因。

成功登录系统后的显示如下图所示

如果ssh无法正常登陆linux系统,首先请检查下开发板的IP地址是否能ping通,如果ping通没问题的话,可以通过串口或者HDMI显示器登录linux系统然后在开发板上输入下面的命令后再尝试是否能连接:

root@orangepi:~# reset_ssh.sh

如果还不行,请重烧系统试下。

Windows下SSH远程登录开发板

首先获取开发板的IP地址

在windows下可以使用MobaXterm远程登录开发板,首先新建一个ssh会话

打开Session

然后在Session Setting中选择SSH

然后在Remote host中输入开发板的IP地址

然后在Specify username中输入linux系统的用户名rootorangepi

最后点击OK即可

然后会提示输入密码,默认root和orangepi用户的密码都为orangepi

注意,输入密码的时候,屏幕上是不会显示输入的密码的具体内容的,请不要以为是有什么故障,输入完后直接回车即可。

成功登录系统后的显示如下图所示

ADB的使用方法 网络adb的使用方法

系统启动后请先确认下adbd已经启动了

orangepi@orangepi:~$ ps -ax | grep "adbd" 808 ?Sl0:00 /usr/bin/adbd 3707 ttyFIQ0S+0:00 grep --color=auto adbd

然后查看下开发板的IP地址,并记下来

然后在Ubuntu PC上安装adb工具

test@test:~$ sudo apt-get update

test@test:~$ sudo apt-get install -y adb

然后使用下面的命令连接网络adb

test@test:~$ adb connect 192.168.1.xx:5555 #IP地址请替换为开发板的IP地址

daemon not running; starting now at tcp:5037 daemon started successfully

connected to 192.168.1.xx:5555

test@test:~$ adb devices

List of devices attached

192.168.1.xx:5555 device

然后使用下面的命令就可以登录开发板的linux系统

test@test:~$ adb shell

root@orangepi5plus:/# 0

Out: 1: -> 1

Out: 2: -> 2

Out: 3: -> 3

Out: 4: -> 4

Out: 5: -> 5^C

PWM的测试方法

由下表可知,Orange Pi 5 Plus可用的PWM有pwm0、pwm1、pwm11、pwm12、pwm13和pwm14共六路pwm

PWM在40pin中对应的引脚如下表所示。PWM0_M0和PWM0_M2、PWM1_M0和PWM1_M2、PWM14_M0和PWM14_M2同一时间只能使用其中一个,不能同时使用,它们都是同一个PWM,只是接到不同的引脚上去了而已,请不要以为它们是两个不同的PWM总线。

PWM总线 对应40pin dtbo对应配置 PWM0_M0 5号引脚 pwm0-m0 PWM0_M2 22号引脚 pwm0-m2 PWM1_M0 3号引脚 pwm1-m0 PWM1_M2 32号引脚 pwm1-m2 PWM11_M0 12号引脚 pwm11-m0 PWM12_M0 14号引脚 pwm12-m0 PWM13_M0 16号引脚 pwm13-m0 PWM14_M0 33号引脚 pwm14-m0 PWM14_M2 7号引脚 pwm14-m0

在linux系统中,40 pin中的PWM默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:

首先运行下orangepi-config,普通用户记得加sudo权限

orangepi@orangepi:~$ sudo orangepi-config

然后选择System

然后选择Hardware

然后使用键盘的方向键定位到下图所示的位置,再使用空格选中想要打开的PWM的配置

然后选择保存

然后选择

然后选择重启系统使配置生效

当打开一个pwm后,在/sys/class/pwm/中就会多出一个pwmchipX(X为具体的的数字),比如打开pwm14后,查看/sys/class/pwm/下的pwmchipX会由两个变成了三个

orangepi@orangepi:~$ ls /sys/class/pwm/

pwmchip0 pwmchip1 pwmchip2

上面哪个pwmchip对应pwm14呢,我们先查看下 ls /sys/class/pwm/ -l命令的输出,如下所示:

然后由下表可知,pwm14寄存器的基地址为febf0020,再看 ls /sys/class/pwm/ -l命令的输出,可以看到pwmchip2中链接到了febf0020.pwm,所以pwm14对应pwmchip为pwmchip2

然后使用下面的命令可以让pwm14输出一个50Hz的方波(请先切换到root用户,再执行下面的命令)

root@orangepi:~# echo 0 > /sys/class/pwm/pwmchip2/export

root@orangepi:~# echo 20000000 > /sys/class/pwm/pwmchip2/pwm0/period

root@orangepi:~# echo 1000000 > /sys/class/pwm/pwmchip2/pwm0/duty_cycle

root@orangepi:~# echo 1 > /sys/class/pwm/pwmchip2/pwm0/enable

上面演示的pwm14的测试方法,其他pwm测试方法都是类似的。

CAN的测试方法

打开CAN的方法

由下表可知,Orange Pi 5 Plus可用的CAN总线为CAN0和CAN1共两组CAN总线

在linux系统中,40 pin中的CAN默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:

首先运行下orangepi-config,普通用户记得加sudo权限

orangepi@orangepi:~$ sudo orangepi-config

然后选择System

然后选择Hardware

然后使用键盘的方向键定位到下图所示的位置,再使用空格选中想要打开的CAN的配置(OPi > 5 Plus可选can0-m0cam1-m0

然后选择保存

然后选择

然后选择重启系统使配置生效

进入linux系统后,使用sudo ifconfig -a命令如果能看到CAN的设备节点,就说明CAN已正确打开了

orangepi@orangepi:~$ sudo ifconfig -a

can0: flags=128 mtu 16

unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)

RX packets 0 bytes 0 (0.0 B)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 0 bytes 0 (0.0 B)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

device interrupt 94

can1: flags=128 mtu 16

unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)

RX packets 0 bytes 0 (0.0 B)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 0 bytes 0 (0.0 B)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

device interrupt 95

CAN0和CAN1对应的引脚为

CAN0 CAN1 TX引脚 对应40pin的5号引脚 对应40pin的18号引脚 RX引脚 对应40pin的3号引脚 对应40pin的16号引脚

使用CANalyst-II分析仪测试收发消息

测试使用的CANalyst-II分析仪如下图所示

CANalyst-II分析仪资料下载链接

https://www.zhcxgd.com/3.html

首先要安装USBCANToolSetup这个软件

USBCANToolSetup安装后的快捷方式为

另外还需要安装一下USB驱动程序

CANalyst-II分析仪的USB接口那端需要接到电脑的USB接口中

测试CAN功能还需要准备一个下图所示的CAN收发器,CAN收发器主要功能是将CAN控制器的TTL信号转换成CAN总线的差分信号

CAN收发器的3.3V引脚需要接开发板40 pin中的3.3V引脚

CAN收发器的GND引脚需要接开发板40 pin中的GND引脚

CAN收发器的CAN TX引脚需要接开发板40 pin中CAN总线的TX引脚

CAN收发器的CAN RX引脚需要接开发板40 pin中CAN总线的RX引脚

CAN收发器的CANL引脚需要接分析仪的H接口

CAN收发器的CANL引脚需要接分析仪的L接口

然后可以打开USB-CAN软件

然后点击启动设备

然后点击确定

再设置波特率为1000k bps

成功打开后USB-CAN软件会显示序列号等信息

开发板接收CAN消息测试

首先在开发板的Linux系统中设置下CAN总线的波特率为1000kbps

orangepi@orangepi:~$ sudo ip link set can0 down

orangepi@orangepi:~$ sudo ip link set can0 type can bitrate 1000000

orangepi@orangepi:~$ sudo ip link set can0 up

然后运行candump can0命令准备接收消息

orangepi@orangepi:~$ sudo candump can0

然后在USB-CAN软件中发送一个消息给开发板

如果开发板中可以接收到分析仪发送的消息说明CAN总线能正常使用

orangepi@orangepi5plus:~$ sudo candump can0

can0 001 [8] 01 02 03 04 05 06 07 08

开发板发送CAN消息测试

首先在Linux系统中设置下CAN的波特率为1000kbps

orangepi@orangepi:~$ sudo ip link set can0 down

orangepi@orangepi:~$ sudo ip link set can0 type can bitrate 1000000

orangepi@orangepi:~$ sudo ip link set can0 up

再开发板中执行cansend命令,发送一个消息

orangepi@orangepi:~$ sudo cansend can0 123#1122334455667788

如果USB-CAN软件可以接收到开发板发过来的消息说明通信成功

wiringOP-Python的安装使用方法

wiringOP-Python是wiringOP的Python语言版本的库,用于在Python程序中操作开发板的GPIO、I2C、SPI和UART等硬件资源。

另外请注意下面所有的命令都是在root用户下操作的。

wiringOP-Python的安装方法

首先安装依赖包

root@orangepi:~# sudo apt-get update

root@orangepi:~# sudo apt-get -y install git swig python3-dev python3-setuptools

然后使用下面的命令下载wiringOP-Python的源码

注意,下面的git clone--recursive命令会自动下载wiringOP的源码,因为wiringOP-Python是依赖wiringOP的。请确保下载过程没有因为网络问题而报错。

如果从GitHub下载代码有问题,可以直接使用Linux镜像中自带的wiringOP-Python源码,存放位置为:/usr/src/wiringOP-Python

root@orangepi:~# git clone --recursive https://github.com/orangepi-xunlong/wiringOP-Python -b next

root@orangepi:~# cd wiringOP-Python

root@orangepi:~/wiringOP-Python# git submodule update --init --remote

然后使用下面的命令编译wiringOP-Python并将其安装到开发板的Linux系统中

root@orangepi:~# cd wiringOP-Python

root@orangepi:~/wiringOP-Python# python3 generate-bindings.py > bindings.i

root@orangepi:~/wiringOP-Python# sudo python3 setup.py install

然后输入下面的命令,如果有帮助信息输出,说明wiringOP-Python安装成功,按下q键可以退出帮助信息的界面

root@orangepi:~/wiringOP-Python# python3 -c "import wiringpi; help(wiringpi)"

Help on module wiringpi:

NAME

wiringpi

DESCRIPTION

# This file was automatically generated by SWIG (http://www.swig.org). # Version 4.0.2 # # Do not make changes to this file unless you know what you are doing--modify # the SWIG interface file instead.

在python命令行下测试wiringOP-Python是否安装成功的步骤如下所示:

首先使用python3命令进入python3的命令行模式

root@orangepi:~# python3

然后导入wiringpi的python模块

>>> import wiringpi;

最后输入下面的命令可以查看下wiringOP-Python的帮助信息,按下q键可以退出帮助信息的界面

>>> help(wiringpi)

Help on module wiringpi:

NAME

wiringpi

DESCRIPTION

# This file was automatically generated by SWIG (http://www.swig.org). # Version 4.0.2 # # Do not make changes to this file unless you know what you are doing--modify # the SWIG interface file instead.

CLASSES

builtins.object GPIO I2C Serial nes

class GPIO(builtins.object) | GPIO(pinmode=0) |

>>>

40 pin GPIO口测试

wiringOP-Python跟wiringOP一样,也是可以通过指定wPi号来确定操作哪一个GPIO引脚,因为wiringOP-Python中没有查看wPi号的命令,所以只能通过wiringOP中的gpio命令来查看板子wPi号与物理引脚的对应关系。

下面以7号引脚——对应GPIO为GPIO1_D6——对应wPi序号为2——为例演示如何设置GPIO口的高低电平

直接用命令测试的步骤如下所示:

首先设置GPIO口为输出模式,其中pinMode函数的第一个参数是引脚对应的wPi的序号,第二个参数是GPIO的模式

root@orangepi:~/wiringOP-Python# python3 -c "import wiringpi; \

from wiringpi import GPIO; wiringpi.wiringPiSetup() ; \

wiringpi.pinMode(2, GPIO.OUTPUT) ; "

然后设置GPIO口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功

root@orangepi:~/wiringOP-Python# python3 -c "import wiringpi; \

from wiringpi import GPIO; wiringpi.wiringPiSetup() ;\

wiringpi.digitalWrite(2, GPIO.LOW)"

然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功

root@orangepi:~/wiringOP-Python# python3 -c "import wiringpi; \

from wiringpi import GPIO; wiringpi.wiringPiSetup() ;\

wiringpi.digitalWrite(2, GPIO.HIGH)"

在python3的命令行中测试的步骤如下所示:

首先使用python3命令进入python3的命令行模式

root@orangepi:~# python3

然后导入wiringpi的python模块

>>> import wiringpi

>>> from wiringpi import GPIO

然后设置GPIO口为输出模式,其中pinMode函数的第一个参数是引脚对应的wPi的序号,第二个参数是GPIO的模式

>>> wiringpi.wiringPiSetup()

0

>>> wiringpi.pinMode(2, GPIO.OUTPUT)

然后设置GPIO口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功

>>> wiringpi.digitalWrite(2, GPIO.LOW)

然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功

>>> wiringpi.digitalWrite(2, GPIO.HIGH)

wiringOP-Python在python代码中设置GPIO高低电平的方法可以参考下examples中的blink.py测试程序,blink.py测试程序会设置开发板40 pin中所有的GPIO口的电压不断的高低变化

root@orangepi:~/wiringOP-Python# cd examples

root@orangepi:~/wiringOP-Python/examples# ls blink.py

blink.py

root@orangepi:~/wiringOP-Python/examples# python3 blink.py

40 pin SPI测试

由下图可知,Orange Pi 5 Plus可用的SPI为SPI0和SPI4

SPI0和SPI4在40pin中对应的引脚如下表所示。SPI4_M1和SPI4_M2同一时间只能使用其中一组,不能同时使用,它们都是同一个SPI4,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的SPI总线。

S PI0_M2对应40pin S PI4_M1对应40pin SP I4_M2对应40pin MOSI 19号引脚 12号引脚 8号引脚 MISO 21号引脚 31号引脚 10号引脚 CLK 23号引脚 35号引脚 22号引脚 CS0 24号引脚 40号引脚 31号引脚 CS1 26号引脚 38号引脚 dtb o配置 spi 0-m2-cs0-spidev

spi 0-m2-cs1-spidev

spi0-m2 -cs0-cs1-spidev

spi 4-m1-cs0-spidev

spi 4-m1-cs1-spidev

spi4-m1 -cs0-cs1-spidev

spi4 -m2-cs0-spidev

在linux系统中,40 pin中的SPI默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:

首先运行下orangepi-config,普通用户记得加sudo权限

orangepi@orangepi:~$ sudo orangepi-config

然后选择System

然后选择Hardware

然后使用键盘的方向键定位到下图所示的位置,再使用空格选中想要打开的SPI的配置

然后选择保存

然后选择

然后选择重启系统使配置生效

重启后进入系统先查看下linux系统中是否存在spidevx.x的设备节点,如果存在,说明SPI已经设置好了,可以直接使用。

orangepi@orangepi:~$ ls /dev/spidev*

/dev/spidev0.0 /dev/spidev0.1 /dev/spidev4.0 /dev/spidev4.1

上面是打开spi0-m2-cs0-cs1-spidev和spi4-m1-cs0-cs1-spidev后显示的结果。

然后可以使用examples中的spidev_test.py程序测试下SPI的回环功能,spidev_test.py程序需要指定下面的两个参数:

--channel:指定SPI的通道号

--port:指定SPI的端口号

先不短接SPI的MOSI和MISO两个引脚,运行spidev_test.py的输出结果如下所示,可以看到 TX 和 RX 的数据不一致

--channel和--port参数后面的x需要替换为具体SPI的通道号和SPI的端口号。

root@orangepi:~/wiringOP-Python# cd examples

root@orangepi:~/wiringOP-Python/examples# python3 spidev_test.py --channel x --port x

spi mode: 0x0

max speed: 500000 Hz (500 KHz)

Opening device /dev/spidev4.1

TX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D |......@.......…|

RX | FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF |.............….|

然后使用杜邦线短接SPI的MOSI和MISO两个引脚,再运行spidev_test.py的输出如下,可以看到发送和接收的数据一样,说明SPI回环测试正常

--channel和--port参数后面的x需要替换为具体SPI的通道号和SPI的端口号。

root@orangepi:~/wiringOP-Python# cd examples

root@orangepi:~/wiringOP-Python/examples# python3 spidev_test.py --channel x --port x

spi mode: 0x0

max speed: 500000 Hz (500 KHz)

Opening device /dev/spidev4.1

TX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D |......@.......…|

RX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D |......@.......…|

40 pin I2C测试

由下表可知,Orange Pi 5 Plus可用的i2c为i2c2、i2c4、i2c5和i2c8共四组 i2c总线。

4组I2C总线在40pin中对应的引脚如下表所示。I2C2_M0和I2C2_M4同一时间只能使用其中一组,不能同时使用,它们都是同一个I2C2,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的I2C2总线。

I2C总线 SDA对应40pin SCL对应40pin dtbo对应配置 I2C2_M0 3号引脚 5号引脚 i2c2-m0 I2C2_M4 10号引脚 8号引脚 i2c2-m4 I2C4_M3 22号引脚 32号引脚 i2c4-m3 I2C5_M3 27号引脚 28号引脚 i2c5-m3 I2C8_M2 29号引脚 7号引脚 i2c8-m2

在linux系统中,40 pin中的I2C总线默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:

首先运行下orangepi-config,普通用户记得加sudo权限

orangepi@orangepi:~$ sudo orangepi-config

然后选择System

然后选择Hardware

然后使用键盘的方向键定位到下图所示的位置,再使用空格选中想要打开的I2C的配置

然后选择保存

然后选择

然后选择重启系统使配置生效

启动linux系统后,先确认下/dev下存在对应i2c的设备节点

orangepi@orangepi:~$ ls /dev/i2c-*

然后在40 pin接头的i2c引脚上接一个i2c设备,这里以ds1307 RTC模块为例

然后使用i2cdetect -y命令如果能检测到连接的i2c设备的地址,就说明i2c能正常识别。

orangepi@orangepi:~$ sudo i2cdetect -y 2 #i2c2的命令

orangepi@orangepi:~$ sudo i2cdetect -y 4 #i2c4的命令

orangepi@orangepi:~$ sudo i2cdetect -y 5 #i2c5的命令

orangepi@orangepi:~$ sudo i2cdetect -y 8 #i2c8的命令

然后可以运行wiringOP-Python/examples文件中的ds1307.py测试程序读取RTC的时间

/dev/i2c-x需要替换是具体的i2c设备节点的序号。

root@orangepi:~/wiringOP-Python# cd examples

root@orangepi:~/wiringOP-Python/examples# python3 ds1307.py --device "/dev/i2c-x"

Thu 2023-01-05 14:57:55

Thu 2023-01-05 14:57:56

Thu 2023-01-05 14:57:57

^C

exit

40 pin的UART测试

由下表可知,Orange Pi 5 Plus可用的uart为uart1、uart3、uart4、uart6、uart7和uart8共6组uart总线

6组UART总线在40pin中对应的引脚如下表所示:

UART总线 RX`对应40pin TX对应40pin dtbo对应配置 UART1_M1 27号引脚 28号引脚 uart1-m1 UART3_M1 18号引脚 16号引脚 uart3-m1 UART4_M2 19号引脚 23号引脚 uart4-m2 UART6_M1 10号引脚 8号引脚 uart6-m1 UART7_M2 24号引脚 26号引脚 uart7-m2 UART8_M1 40号引脚 35号引脚 uart8-m1

在linux系统中,40 pin中的UART默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:

首先运行下orangepi-config,普通用户记得加sudo权限

orangepi@orangepi:~$ sudo orangepi-config

然后选择System

然后选择Hardware

然后使用键盘的方向键定位到下图所示的位置,再使用空格选中想要打开的UART的配置

然后选择保存

然后选择

然后选择重启系统使配置生效

进入linux系统后,先确认下/dev下是否存在对应uart的设备节点

orangepi@orangepi:~$ ls /dev/ttyS*

然后开始测试uart接口,先使用杜邦线短接要测试的uart接口的rx和tx引脚

然后使用wiringOP-Python/examples中的serialTest.py程序测试串口的回环功能。如下所示,如果能看到下面的打印,说明串口通信正常。

/dev/ttySX需要替换是具体的uart设备节点的序号。

root@orangepi:~/wiringOP-Python/examples# python3 serialTest.py --device "/dev/ttySX"

Out: 0: -> 0

Out: 1: -> 1

Out: 2: -> 2

Out: 3: -> 3

Out: 4:^C

exit

硬件看门狗测试

Orange Pi发布的linux系统中预装了watchdog_test程序,可以直接测试。

运行watchdog_test程序的方法如下所示:

第二个参数10表示看门狗的计数时间,如果这个时间内没有喂狗,系统会重启

我们可以通过按下键盘上的任意键(ESC除外)来喂狗,喂狗后,程序会打印一行keep alive表示喂狗成功

orangepi@orangepi:~$ sudo watchdog_test 10

open success

options is 33152,identity is sunxi-wdt

put_usr return,if 0,success:0

The old reset time is: 16

return ENOTTY,if -1,success:0

return ENOTTY,if -1,success:0

put_user return,if 0,success:0

put_usr return,if 0,success:0

keep alive

keep alive

keep alive

查看RK3588芯片的序列号

查看RK3588芯片序列号的命令如下所示,每个芯片的序列号都是不同的,所以可以使用序列号来区分多个开发板。

orangepi@orangepi:~$ cat_serial.sh

Serial : 1404a7682e86830c

安装Docker的方法

Orange Pi提供的linux镜像已经预装了Docker,只是Docker服务默认没有打开

使用enable_docker.sh脚本可以使能docker服务,然后就可以开始使用docker命令了,并且在下次启动系统时也会自动启动docker服务

orangepi@orangepi:~$ enable_docker.sh

然后可以使用下面的命令测试下docker,如果能运行hello-world说明docker能正常使用了

orangepi@orangepi:~$ docker run hello-world

Unable to find image 'hello-world:latest' locally

latest: Pulling from library/hello-world

256ab8fe8778: Pull complete

Digest: sha256:7f0a9f93b4aa3022c3a4c147a449ef11e0941a1fd0bf4a8e6c9408b2600777c5

Status: Downloaded newer image for hello-world:latest

Hello from Docker!

This message shows that your installation appears to be working correctly.

.….

下载安装arm64版本balenaEtcher的方法

balenaEtcher arm64版本的下载地址为:

deb安装包的下载地址如下所示,需要安装才能使用

https://github.com/Itai-Nelken/BalenaEtcher-arm/releases/download/v1.7.9/balena-etcher-electron_1.7.9+5945ab1f_arm64.deb

无需安装的AppImage版本的下载地址如下所示:

https://github.com/Itai-Nelken/BalenaEtcher-arm/releases/download/v1.7.9/balenaEtcher-1.7.9+5945ab1f-arm64.AppImage

deb版本balenaEtcher的安装使用方法:

deb版本的balenaEtcher安装命令如下所示:

orangepi@orangepi:~$ sudo apt install -y \

--fix-broken ./balena-etcher-electron_1.7.9+5945ab1f_arm64.deb

deb版本的balenaEtcher安装完成后,在Application中就可以打开了

balenaEtcher打开后的界面如下所示:

AppImage版本的balenaEtcher的使用方法:

首先给balenaEtcher添加权限

orangepi@orangepi:~/Desktop$ chmod +x balenaEtcher-1.7.9+5945ab1f-arm64.AppImage

然后选中AppImage版本balenaEtcher,再点击鼠标右键,再点击Execute就可以打开balenaEtcher了

宝塔Linux面板的安装方法

宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能(摘抄自宝塔官网)

宝塔Linux系统兼容性推荐的顺序为

Debian11 > Ubuntu 22.04

然后在linux系统中输入下面的命令就可以开始宝塔的安装

orangepi@orangepi:~$ sudo install_bt_panel.sh

然后宝塔安装程序会提醒是否安装Bt-Panel/www文件夹,此时输入y即可

+----------------------------------------------------------------------

| Bt-WebPanel FOR CentOS/Ubuntu/Debian

+----------------------------------------------------------------------

| Copyright © 2015-2099 BT-SOFT(http://www.bt.cn) All rights reserved.

+----------------------------------------------------------------------

| The WebPanel URL will be http://SERVER_IP:8888 when installed.

+----------------------------------------------------------------------

Do you want to install Bt-Panel to the /www directory now?(y/n): y

然后要做的就是耐心等待,当看到终端输出下面的打印信息时,说明宝塔已经安装完成,整个安装过程大约耗时9分钟,根据网络速度的不同可能会有一些差别

此时在浏览器中输入上面显示的面板地址就可以打开宝塔Linux面板的登录界面,然后在对应的位置输入上图显示的usernamepassword就可以登录进宝塔

成功登录宝塔后的会弹出下面的欢迎界面,首先请将中间的用户须知阅读完拖到最下面,然后就可以选择”我已同意并阅读《用户协议》“,接着点击”进入面板”就可以进入宝塔了

进入宝塔后首先会提示需要绑定宝塔官网的账号,如果没有账号可以去宝塔的官网(https://www.bt.cn)注册一个

最终显示的界面如下图所示,可以很直观的看到开发板Linux系统的一些状态信息,比如负载状态、CPU的使用率、内存使用率和存储空间的使用情况等

测试宝塔的SSH终端登录

打开宝塔的SSH终端后首先会提示需要输入开发板系统的密码,此时在密码框中输入orangepi(默认密码,如果有修改请填写修改后的)即可

成功登录后的显示如下图所示

在宝塔的软件商店中可以安装Apache、MySQL和PHP等软件,也可以一键部署各种应用程序,这部分功能请自行探索,这里就不一一演示了

宝塔命令行工具测试

宝塔的更多功能可以参考下面资料自行探索

使用手册:http://docs.bt.cn

论坛地址:https://www.bt.cn/bbs

GitHub链接:https://github.com/aaPanel/BaoTa

设置中文环境以及安装中文输入法

注意,安装中文输入法前请确保开发板使用的Linux系统为桌面版系统。

Debian 11系统的安装方法

首先设置默认locale为中文

输入下面的命令可以开始配置locale

orangepi@orangepi:~$ sudo dpkg-reconfigure locales

然后在弹出的界面中选择zh_CN.UTF-8 UTF-8(通过键盘上的上下方向按键来上下移动,通过空格键来选择,最后通过Tab键可以将光标移动到,然后回车即可)

然后设置默认localezh_CN.UTF-8

退出界面后就会开始locale的设置,命令行显示的输出如下所示

orangepi@orangepi:~$ sudo dpkg-reconfigure locales

Generating locales (this might take a while)...

en_US.UTF-8... done

zh_CN.UTF-8... done

Generation complete.

然后打开Input Method

然后选择OK

然后选择Yes

然后选择fcitx

然后选择OK

然后重启Linux系统才能使配置生效

然后打开Fcitx configuration

然后点击下图所示位置的+

然后搜索Google Pinyin再点击OK

然后将Google Pinyin放到最前面

然后打开Geany这个编辑器测试下中文输入法

中文输入法测试如下所示

通过Ctrl+Space快捷键可以切换中英文输入法

如果需要整个系统都显示为中文,可以将/etc/default/locale中的变量都设置为zh_CN.UTF-8

orangepi@orangepi:~$ sudo vim /etc/default/locale

# File generated by update-locale

LC_MESSAGES=zh_CN.UTF-8

LANG=zh_CN.UTF-8

LANGUAGE=zh_CN.UTF-8

然后重启系统就能看到系统显示为中文了

Ubuntu 20.04系统的安装方法

首先打开Language Support

然后找到汉语(中国)选项

然后请使用鼠标左键选中汉语(中国)并按住不动,然后往上将其拖到最开始的位置,拖完后的显示如下图所示:

注意,这一步不是很好拖动的,请耐心多试几次。

然后选择Apply System-Wide将中文设置应用到整个系统

然后设置Keyboard input method systemfcitx

然后重启Linux系统使配置生效

重新进入系统后,在下面的界面请选择不要再次询问我,然后请根据自己的喜好决定标准文件夹是否也要更新为中文

然后可以看到桌面都显示为中文了

然后我们可以打开Geany测试下中文输入法,打开方式如下图所示

打开Geany后,默认还是英文输入法,我们可以通过Ctrl+Space快捷键来切换成中文输入法,然后就能输入中文了

Ubuntu 22.04系统的安装方法

首先打开Language Support

然后找到汉语(中国)选项

然后请使用鼠标左键选中汉语(中国)并按住不动,然后往上将其拖到最开始的位置,拖完后的显示如下图所示:

注意,这一步不是很好拖动的,请耐心多试几次。

然后选择Apply System-Wide将中文设置应用到整个系统

然后重启Linux系统使配置生效

重新进入系统后,在下面的界面请选择不要再次询问我,然后请根据自己的喜好决定标准文件夹是否也要更新为中文

然后可以看到桌面都显示为中文了

然后打开Fcitx5配置程序

然后选择使用拼音输入法

选择后的界面如下所示,再点击确定即可

然后我们可以打开Geany测试下中文输入法,打开方式如下图所示

打开Geany后,默认还是英文输入法,我们可以通过Ctrl+Space快捷键来切换成中文输入法,然后就能输入中文了

远程登录Linux系统桌面的方法

Ubuntu Gnome Wayland镜像不支持使用此处介绍的Nomachine和VNC来远程登录桌面。

使用NoMachine远程登录

请确保开发板安装的Ubuntu或者Debian系统为桌面版本的系统。另外NoMachine也提供了详细的使用文档,强烈建议通读此文档来熟悉NoMachine的使用,文档链接如下所示:

https://knowledgebase.nomachine.com/DT10R00166

NoMachine支持Windows、Mac、Linux、iOS和安卓平台,所以我们可以在多种设备上通过NoMachine来远程登录控制Orange Pi开发板。下面演示下在Windows中通过NoMachine来远程登录Orange Pi开发板的Linux系统桌面。其他平台的安装方法请参考下NoMachine的官方文档。

操作前请先确保Windwos电脑和开发板在同一局域网内,并且能正常ssh登录开发板的Ubuntu或者Debian系统。

首先下载NoMachine软件Linux arm64 deb版本的安装包,然后安装到开发板的Linux系统中

由于RK3588是ARMv8架构的SOC,我们使用的系统为Ubuntu或者Debian,所以这里需要下载NoMachine for ARM ARMv8 DEB安装包,下载链接如下所示:

注意,这个下载链接可能会变,请认准Armv8/Arm64版本的deb包。

https://www.nomachine.com/download/download&id=112&s=ARM

另外在官方工具中也可以下载到NoMachine的安装包

先进入远程登录软件-NoMachine文件夹

然后下载arm64版本的deb安装包

然后将下载的nomachine_x.x.x_x_arm64.deb上传到开发板的Linux系统中

然后使用下面的命令在开发板的Linux系统中安装NoMachine

orangepi@orangepi:~$ sudo dpkg -i nomachine_x.x.x_x_arm64_arm64.deb

然后下载NoMachine软件Windows版本的安装包,下载地址如下所示

注意,这个下载链接可能会变。

https://downloads.nomachine.com/download/?id=9

然后在Windows中安装NoMachine,安装完后请重启下电脑

然后在Window中打开NoMachine

NoMachine启动后会自动扫描局域网内其他安装有NoMachine的设备,进入NoMachine的主界面后就可以看到开发板已经在可连接的设备列表里了,然后点击下图红色方框所示的位置即可开始登录开发板的Linux系统桌面

然后点击OK

然后在下图对应的位置输入开发板Linux系统的用户名和密码,再点击OK开始登陆

然后在接下来的界面中都点击OK

最后就能看到开发板Linux系统的桌面了

使用VNC远程登录

操作前请先确保Windwos电脑和开发板在同一局域网内,并且能正常ssh登录开发板的Ubuntu或者Debian系统。

Ubuntu20.04测试VNC很多问题,请不要使用这种方法。

首先运行set_vnc.sh脚本设置下vnc,记得加sudo权限

orangepi@orangepi:~$ sudo set_vnc.sh

You will require a password to access your desktops.

Password: #在这里设置vnc的密码,8位字符

Verify: #在这里设置vnc的密码,8位字符

Would you like to enter a view-only password (y/n)? n

xauth: file /root/.Xauthority does not exist

New 'X' desktop is orangepi:1

Creating default startup script /root/.vnc/xstartup

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/orangepi:1.log

Killing Xtightvnc process ID 3047

New 'X' desktop is orangepi:1

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/orangepi:1.log

使用MobaXterm软件连接开发板linux系统桌面的步骤如下所示:

首先点击Session,然后选择VNC,再填写开发板的IP地址和端口,最后点击OK确认

然后输入前面设置的VNC的密码

登录成功后的界面显示如下图所示,然后就可以远程操作开发板linux系统的桌面了

Linux系统支持的部分编程语言测试

Debian Bullseye系统

Debian Bullseye默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序

gcc的版本如下所示

orangepi@orangepi:~$ gcc --version

gcc (Debian 10.2.1-6) 10.2.1 20210110

Copyright (C) 2020 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

编写C语言的hello_world.c程序

orangepi@orangepi:~$ vim hello_world.c

#include

int main(void)

{

printf("Hello World!\n");

return 0;

}

然后编译运行hello_world.c

orangepi@orangepi:~$ gcc -o hello_world hello_world.c

orangepi@orangepi:~$ ./hello_world

Hello World!

Debian Bullseye默认安装有Python3

Python具体版本如下所示

orangepi@orangepi:~$ python3

Python 3.9.2 (default, Feb 28 2021, 17:03:44)

[GCC 10.2.1 20210110] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>>

使用Ctrl+D快捷键可退出python的交互模式。

编写Python语言的hello_world.py程序

orangepi@orangepi:~$ vim hello_world.py

print('Hello World!')

运行hello_world.py的结果如下所示

orangepi@orangepi:~$ python3 hello_world.py

Hello World!

Debian Bullseye默认没有安装Java的编译工具和运行环境

可以使用下面的命令安装openjdk,Debian > Bullseye中最新版本为openjdk-17

orangepi@orangepi:~$ sudo apt install -y openjdk-17-jdk

安装完后可以查看下Java的版本

orangepi@orangepi:~$ java --version

编写Java版本的hello_world.java

orangepi@orangepi:~$ vim hello_world.java

public class hello_world

{

public static void main(String[] args)

{

System.out.println("Hello World!");

}

}

然后编译运行hello_world.java

orangepi@orangepi:~$ javac hello_world.java

orangepi@orangepi:~$ java hello_world

Hello World!

Debian Bookworm系统

Debian Bookworm默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序

gcc的版本如下所示

orangepi@orangepi:~$ gcc --version

gcc (Debian 12.2.0-14) 12.2.0

Copyright (C) 2020 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

编写C语言的hello_world.c程序

orangepi@orangepi:~$ vim hello_world.c

#include

int main(void)

{

printf("Hello World!\n");

return 0;

}

然后编译运行hello_world.c

orangepi@orangepi:~$ gcc -o hello_world hello_world.c

orangepi@orangepi:~$ ./hello_world

Hello World!

Debian Bookworm默认安装有Python3

Python具体版本如下所示

orangepi@orangepi:~$ python3

Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>>

使用Ctrl+D快捷键可退出python的交互模式。

编写Python语言的hello_world.py程序

orangepi@orangepi:~$ vim hello_world.py

print('Hello World!')

运行hello_world.py的结果如下所示

orangepi@orangepi:~$ python3 hello_world.py

Hello World!

Debian Bookworm默认没有安装Java的编译工具和运行环境

可以使用下面的命令安装openjdk,Debian Bookworm中最新版本为openjdk-17

orangepi@orangepi:~$ sudo apt install -y openjdk-17-jdk

安装完后可以查看下Java的版本

orangepi@orangepi:~$ java --version

编写Java版本的hello_world.java

orangepi@orangepi:~$ vim hello_world.java

public class hello_world

{

public static void main(String[] args)

{

System.out.println("Hello World!");

}

}

然后编译运行hello_world.java

orangepi@orangepi:~$ javac hello_world.java

orangepi@orangepi:~$ java hello_world

Hello World!

Ubuntu Focal系统

Ubuntu Focal默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序

gcc的版本如下所示

orangepi@orangepi:~$ gcc --version

gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0

Copyright (C) 2019 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

编写C语言的hello_world.c程序

orangepi@orangepi:~$ vim hello_world.c

#include

int main(void)

{

printf("Hello World!\n");

return 0;

}

然后编译运行hello_world.c

orangepi@orangepi:~$ gcc -o hello_world hello_world.c

orangepi@orangepi:~$ ./hello_world

Hello World!

Ubuntu Focal默认安装有Python3

Python3具体版本如下所示

orangepi@orangepi:~$ python3

Python 3.8.10 (default, Nov 14 2022, 12:59:47)

[GCC 9.4.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>>

使用Ctrl+D快捷键可退出python的交互模式。

编写Python语言的hello_world.py程序

orangepi@orangepi:~$ vim hello_world.py

print('Hello World!')

运行hello_world.py的结果如下所示

orangepi@orangepi:~$ python3 hello_world.py

Hello World!

Ubuntu Focal默认没有安装Java的编译工具和运行环境

可以使用下面的命令安装openjdk-17

orangepi@orangepi:~$ sudo apt install -y openjdk-17-jdk

安装完后可以查看下Java的版本

orangepi@orangepi:~$ java --version

openjdk 17.0.2 2022-01-18

OpenJDK Runtime Environment (build 17.0.2+8-Ubuntu-120.04)

OpenJDK 64-Bit Server VM (build 17.0.2+8-Ubuntu-120.04, mixed mode, sharing)

编写Java版本的hello_world.java

orangepi@orangepi:~$ vim hello_world.java

public class hello_world

{

public static void main(String[] args)

{

System.out.println("Hello World!");

}

}

然后编译运行hello_world.java

orangepi@orangepi:~$ javac hello_world.java

orangepi@orangepi:~$ java hello_world

Hello World!

Ubuntu Jammy系统

Ubuntu Jammy默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序

gcc的版本如下所示

orangepi@orangepi:~$ gcc --version

gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0

Copyright (C) 2021 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

编写C语言的hello_world.c程序

orangepi@orangepi:~$ vim hello_world.c

#include

int main(void)

{

printf("Hello World!\n");

return 0;

}

然后编译运行hello_world.c

orangepi@orangepi:~$ gcc -o hello_world hello_world.c

orangepi@orangepi:~$ ./hello_world

Hello World!

Ubuntu Jammy默认安装有Python3

Python3具体版本如下所示

orangepi@orangepi:~$ python3

Python 3.10.4 (main, Apr 2 2022, 09:04:19) [GCC 11.2.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>>

使用Ctrl+D快捷键可退出python的交互模式。

编写Python语言的hello_world.py程序

orangepi@orangepi:~$ vim hello_world.py

print('Hello World!')

运行hello_world.py的结果如下所示

orangepi@orangepi:~$ python3 hello_world.py

Hello World!

Ubuntu Jammy默认没有安装Java的编译工具和运行环境

可以使用下面的命令安装openjdk-18

orangepi@orangepi:~$ sudo apt install -y openjdk-18-jdk

安装完后可以查看下Java的版本

orangepi@orangepi:~$ java --version

openjdk 18-ea 2022-03-22

OpenJDK Runtime Environment (build 18-ea+36-Ubuntu-1)

OpenJDK 64-Bit Server VM (build 18-ea+36-Ubuntu-1, mixed mode, sharing)

编写Java版本的hello_world.java

orangepi@orangepi:~$ vim hello_world.java

public class hello_world

{

public static void main(String[] args)

{

System.out.println("Hello World!");

}

}

然后编译运行hello_world.java

orangepi@orangepi:~$ javac hello_world.java

orangepi@orangepi:~$ java hello_world

Hello World!

QT的安装方法

使用下面的脚本可以安装QT5和QT Creator

orangepi@orangepi:~$ install_qt.sh

安装完后会自动打印QT的版本号

Ubuntu20.04自带的qt版本为5.12.8

orangepi@orangepi:~$ install_qt.sh

......

QMake version 3.1

Using Qt version 5.12.8 in /usr/lib/aarch64-linux-gnu

Ubuntu22.04自带的QT版本为5.15.3

orangepi@orangepi:~$ install_qt.sh

......

QMake version 3.1

Using Qt version 5.15.3 in /usr/lib/aarch64-linux-gnu

Debian11自带的QT版本为5.15.2

orangepi@orangepi:~$ install_qt.sh

......

QMake version 3.1

Using Qt version 5.15.2 in /usr/lib/aarch64-linux-gnu

Debian12自带的QT版本为5.15.8

orangepi@orangepi:~$ install_qt.sh

......

QMake version 3.1

Using Qt version 5.15.8 in /usr/lib/aarch64-linux-gnu

然后在Applications中就可以看到QT Creator的启动图标

也可以使用下面的命令打开QT Creator

orangepi@orangepi:~$ qtcreator

在QT和QT应用的启动过程中,如果提示下面的错误,请直接忽略,此错误对应用的运行不会有影响。

libGL error: failed to create dri screen

libGL error: failed to load driver: rockchip

libGL error: failed to create dri screen

libGL error: failed to load driver: rockchip

QT Creator打开后的界面如下所示

QT Creator的版本如下所示

QT Creator在Ubuntu20.04中的默认版本如下所示

QT Creator在Ubuntu22.04中的默认版本如下所示

QT Creator在Debian11中的默认版本如下所示

QT Creator在Debian12中的默认版本如下所示

然后设置下QT

首先打开Help->About Plugins...

然后去掉ClangCodeModel的那个勾

设置完后需要重启下QT Creator

然后确保QT Creator使用的GCC编译器,如果默认为Clang,请修改为GCC

Debian12请跳过这步。

然后就可以打开一个示例代码

点击示例代码后会自动打开对应的说明文档,可以仔细看下其中的使用说明

然后点击下Configure Project

然后点击左下角的绿色三角形编译运行下示例代码

等待一段时间后,会弹出下图所示的界面,此时就说明QT能正常编译运行

参考资料

https://wiki.qt.io/Install_Qt_5_on_Ubuntu

https://download.qt.io/archive/qtcreator

https://download.qt.io/archive/qt

ROS安装方法

Ubuntu20.04安装ROS 1 Noetic的方法 ROS 1当前活跃的版本如下所示,推荐版本为Noetic Ninjemys

http://docs.ros.org

https://wiki.ros.org/Distributions

ROS 1 Noetic Ninjemys官方安装文档链接如下所示:

http://wiki.ros.org/noetic/Installation/Ubuntu

ROS Noetic Ninjemys官方安装文档中Ubuntu推荐使用Ubuntu20.04,所以请确保开发板使用的系统为Ubuntu20.04桌面版系统

http://wiki.ros.org/noetic/Installation

然后使用下面的脚本安装ros1

orangepi@orangepi5plus:~$ install_ros.sh ros1

使用ROS工具前,首先需要初始化下rosdep,然后编译源码时就能快速的安装一些系统依赖和一些ROS中的核心组件

注意,运行下面的命令需要确保开发板能正常访问github,否则会由于网络问题而报错。

install_ros.sh脚本会尝试修改/etc/hosts并自动运行下面的命令。但是这种方法无法保证每次都能正常访问github,如果install_ros.sh安装完ros1后有提示下面的错误,请自己想其它办法让开发板的linux系统能正常访问github,然后再手动运行下面的命令。

https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml

Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml

ERROR: error loading sources list:

The read operation timed out

orangepi@orangepi:~$ source /opt/ros/noetic/setup.bash

orangepi@orangepi:~$ sudo rosdep init

Wrote /etc/ros/rosdep/sources.list.d/20-default.list

Recommended: please run

rosdep update

orangepi@orangepi:~$ rosdep update

reading in sources list data from /etc/ros/rosdep/sources.list.d

Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml

Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml

Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml

Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml

Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml

Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml

Skip end-of-life distro "ardent"

Skip end-of-life distro "bouncy"

Skip end-of-life distro "crystal"

Skip end-of-life distro "dashing"

Skip end-of-life distro "eloquent"

Add distro "foxy"

Add distro "galactic"

Skip end-of-life distro "groovy"

Add distro "humble"

Skip end-of-life distro "hydro"

Skip end-of-life distro "indigo"

Skip end-of-life distro "jade"

Skip end-of-life distro "kinetic"

Skip end-of-life distro "lunar"

Add distro "melodic"

Add distro "noetic"

Add distro "rolling"

updated cache in /home/orangepi/.ros/rosdep/sources.cache

然后在桌面中打开一个命令行终端窗口,再使用test_ros.sh脚本可以启动一个小海龟的例程来测试下ROS是否能正常使用

orangepi@orangepi:~$ test_ros.sh

运行完test_ros.sh脚本后,会弹出下图所示的一个小海龟

然后请保持刚才打开终端窗口在最上面

此时按下键盘上的方向按键就可以控制小海龟上下左右移动了

Ubuntu20.04安装ROS 2 Galactic的方法

ROS 2当前活跃的版本如下所示,推荐版本为Galactic Geochelone

http://docs.ros.org

http://docs.ros.org/en/galactic/Releases.html

ROS 2 Galactic Geochelone官方安装文档链接如下所示:

docs.ros.org/en/galactic/Installation.html

http://docs.ros.org/en/galactic/Installation/Ubuntu-Install-Debians.html

ROS 2 Galactic Geochelone官方安装文档中Ubuntu Linux推荐使用Ubuntu20.04,所以请确保开发板使用的系统为Ubuntu20.04桌面版系统。安装ROS 2有几种方法,下面演示下通过Debian packages的方式来安装ROS 2 Galactic Geochelone

使用install_ros.sh脚本可以安装ros2

orangepi@orangepi:~$ install_ros.sh ros2

install_ros.sh脚本安装完ros2后会自动运行下ros2 -h命令,如果能看到下面的打印,说明ros2安装完成

usage: ros2 [-h] Call `ros2 -h` for more detailed usage. ...

ros2 is an extensible command-line tool for ROS 2.

optional arguments:

-h, --help show this help message and exit

Commands:

action Various action related sub-commands

bag Various rosbag related sub-commands

component Various component related sub-commands

daemon Various daemon related sub-commands

doctor Check ROS setup and other potential issues

interface Show information about ROS interfaces

launch Run a launch file

lifecycle Various lifecycle related sub-commands

multicast Various multicast related sub-commands

node Various node related sub-commands

param Various param related sub-commands

pkg Various package related sub-commands

run Run a package specific executable

security Various security related sub-commands

service Various service related sub-commands

topic Various topic related sub-commands

wtf Use `wtf` as alias to `doctor`

Call `ros2 -h` for more detailed usage.

然后可以使用 test_ros.sh脚本测试下ROS 2是否安装成功,如果能看到下面的打印,说明ROS 2能正常运行

orangepi@orangepi5plus:~$ test_ros.sh

[INFO] [1671174101.200091527] [talker]: Publishing: 'Hello World: 1'

[INFO] [1671174101.235661048] [listener]: I heard: [Hello World: 1]

[INFO] [1671174102.199572327] [talker]: Publishing: 'Hello World: 2'

[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: 2]

[INFO] [1671174103.199580322] [talker]: Publishing: 'Hello World: 3'

[INFO] [1671174103.204019965] [listener]: I heard: [Hello World: 3]

运行下面的命令可以打开rviz2

orangepi@orangepi:~$ source /opt/ros/galactic/setup.bash

orangepi@orangepi:~$ ros2 run rviz2 rviz2

ROS的使用方法请参考下ROS 2的文档

http://docs.ros.org/en/galactic/Tutorials.html

Ubuntu22.04安装ROS 2 Humble的方法

使用install_ros.sh脚本可以安装ros2

orangepi@orangepi:~$ install_ros.sh ros2

install_ros.sh脚本安装完ros2后会自动运行下ros2 -h命令,如果能看到下面的打印,说明ros2安装完成

usage: ros2 [-h] Call `ros2 -h` for more detailed usage. ...

ros2 is an extensible command-line tool for ROS 2.

optional arguments:

-h, --help show this help message and exit

Commands:

action Various action related sub-commands

bag Various rosbag related sub-commands

component Various component related sub-commands

daemon Various daemon related sub-commands

doctor Check ROS setup and other potential issues

interface Show information about ROS interfaces

launch Run a launch file

lifecycle Various lifecycle related sub-commands

multicast Various multicast related sub-commands

node Various node related sub-commands

param Various param related sub-commands

pkg Various package related sub-commands

run Run a package specific executable

security Various security related sub-commands

service Various service related sub-commands

topic Various topic related sub-commands

wtf Use `wtf` as alias to `doctor`

Call `ros2 -h` for more detailed usage.

然后可以使用 test_ros.sh脚本测试下ROS 2是否安装成功,如果能看到下面的打印,说明ROS 2能正常运行

orangepi@orangepi5plus:~$ test_ros.sh

[INFO] [1671174101.200091527] [talker]: Publishing: 'Hello World: 1'

[INFO] [1671174101.235661048] [listener]: I heard: [Hello World: 1]

[INFO] [1671174102.199572327] [talker]: Publishing: 'Hello World: 2'

[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: 2]

[INFO] [1671174103.199580322] [talker]: Publishing: 'Hello World: 3'

[INFO] [1671174103.204019965] [listener]: I heard: [Hello World: 3]

运行下面的命令可以打开rviz2

orangepi@orangepi:~$ source /opt/ros/humble/setup.bash

orangepi@orangepi:~$ ros2 run rviz2 rviz2

参考文档

http://docs.ros.org/en/humble/index.html

http://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html

安装内核头文件的方法

OPi发布的Linux镜像默认自带了内核头文件的deb包,存放的位置为/opt/

orangepi@orangepi5plus:~$ ls /opt/linux-headers*

/opt/linux-headers-legacy-rockchip-rk3588_x.x.x_arm64.deb

使用下面的命令可以安装内核头文件的deb包

内核头文件deb包的名字需要替换为实际的名字,请不要照抄。

orangepi@orangepi:~$ sudo dpkg -i /opt/linux-headers-legacy-rockchip-rk3588_1.x.x_arm64.deb

安装完后在/usr/src下就能看到内核头文件所在的文件夹

orangepi@orangepi:~$ ls /usr/src

linux-headers-5.10.110-rockchip-rk3588

然后可以编写一个hello内核模块测试下内核头文件

首先编写hello内核模块的代码,如下所示:

orangepi@orangepi:~$ vim hello.c

#include

#include

static int hello_init(void)

{

printk("Hello Orange Pi -- init\n");

return 0;

}

static void hello_exit(void)

{

printk("Hello Orange Pi -- exit\n");

return;

}

module_init(hello_init);

module_exit(hello_exit);

MODULE_LICENSE("GPL");

然后编写编译hello内核模块的Makefile文件,如下所示:

orangepi@orangepi:~$ vim Makefile

ifneq ($(KERNELRELEASE),)

obj-m:=hello.o

else

KDIR :=/lib/modules/$(shell uname -r)/build

PWD :=$(shell pwd)

all:

make -C $(KDIR) M=$(PWD) modules

clean:

rm -f *.ko *.o *.mod.o *.mod *.symvers *.cmd *.mod.c *.order

endif

然后使用make命令编译hello内核模块,编译过程的输出如下所示:

如果自己复制的代码这里编译如果有问题,请去官方工具中下载源码然后上传到开发板的Linux系统中测试。

orangepi@orangepi:~$ make

make -C /lib/modules/5.10.110-rockchip-rk3588/build M=/home/orangepi modules

make[1]: Entering directory '/usr/src/linux-headers-5.10.110-rockchip-rk3588'

CC [M] /home/orangepi/hello.o

MODPOST /home/orangepi/Module.symvers

CC [M] /home/orangepi/hello.mod.o

LD [M] /home/orangepi/hello.ko

make[1]: Leaving directory '/usr/src/linux-headers-5.10.110-rockchip-rk3588'

编译完后会生成hello.ko内核模块

orangepi@orangepi:~$ ls *.ko

hello.ko

使用insmod命令可以将hello.ko内核模块插入内核中

orangepi@orangepi:~$ sudo insmod hello.ko

然后使用demsg命令可以查看下hello.ko内核模块的输出,如果能看到下面的输出说明hello.ko内核模块加载正确

orangepi@orangepi:~$ dmesg | grep "Hello"

[ 2871.893988] Hello Orange Pi -- init

使用rmmod命令可以卸载hello.ko内核模块

orangepi@orangepi:~$ sudo rmmod hello

orangepi@orangepi:~$ dmesg | grep "Hello"

[ 2871.893988] Hello Orange Pi -- init

[ 3173.800892] Hello Orange Pi -- exit

10.1寸MIPI LCD屏幕的使用方法

10.1寸MIPI 屏幕的组装方法

首先准备需要的配件

10.1寸MIPI LCD显示屏+触摸屏(此屏幕和OPi5/OPi5B通用)

屏幕转接板+31pin转40pin排线

30pin MIPI排线

12pin 触摸屏排线

按照下图将12pin 触摸屏排线、31pin转40pin排线、30pin MIPI排线接到屏幕转接板上,注意触摸屏排线蓝色的绝缘面朝下,其它两根排线绝缘面朝上,如果接错会导致无显示或者不能触摸的问题

按照下图将连接好排线的转接板置于MIPI LCD屏上面,并通过31pin转40pin排线连接MIPI LCD屏与转接板

然后通过12pin触摸屏排线连接触摸屏与转接板,注意绝缘面的朝向

最后通过30pin MIPI排线连接到开发板的LCD接口上

注意,下面的触摸接口不是给LCD MIPI屏幕使用的,目前为备用接口,使用不到。

打开10.1寸MIPI LCD屏幕配置的方法

linux镜像默认是没有打开mipi lcd屏幕的配置的,如果需要使用mipi lcd屏幕,需要手动打开才行。

开发板mipi lcd屏幕接口的位置如下所示:

打开mipi lcd配置的步骤如下所示:

首先运行下orangepi-config,普通用户记得加sudo权限

orangepi@orangepi:~$ sudo orangepi-config

然后选择System

然后选择Hardware

然后使用键盘的方向键定位到opi5plus-lcd,再使用空格选中

然后选择保存

然后选择

然后选择重启系统使配置生效

启动后可以看到lcd屏幕的显示如下所示(默认为竖屏):

服务器版镜像旋转显示方向的方法

/boot/orangepiEnv.txt中加入extraargs=fbcon=rotate:要旋转的方向这句配置就可以设置服务器版本的linux系统显示的方向,其中fbcon=rotate:后面的数字可以设置为:

0: 正常屏(默认为竖屏)

1: 顺时钟转90度

2: 翻转180度

3: 顺时钟转270度

orangepi@orangepi:~$ sudo vim /boot/orangepiEnv.txt

overlays=opi5plus-lcd

extraargs=cma=128M fbcon=rotate:3

注意,/boot/orangepiEnv.txt中如果默认有extraargs=cma=128M这行配置,fbcon=rotate:3这个配置添加到extraargs=cma=128M的后面即可(需要用空格隔开)。

然后重启linux系统就能看到lcd屏幕显示的方向已经旋转了

桌面版镜像旋转显示和触摸方向的方法

首先在linux系统中打开Display设置

然后在Rotation中选择想要旋转的方向

None: 不旋转

Left: 向左旋转90度

Inverted: 上下翻转,相当于旋转180度

Right: 向右旋转90度

然后点击Apply

然后选择Keep this configuration

此时屏幕显示就已旋转完成,然后关闭掉Display程序即可

上面的步骤只会选择显示方向,并不会旋转触摸的方向,使用set_lcd_rotate.sh脚本可以旋转下触摸的方向,此脚本设置完后会自动重启,然后就可以测试触摸是否已经能正常使用了

None: 不旋转

orangepi@orangepi:~$ set_lcd_rotate.sh none

Left: 向左旋转90度

orangepi@orangepi:~$ set_lcd_rotate.sh left

Inverted: 上下翻转,相当于旋转180度

orangepi@orangepi:~$ set_lcd_rotate.sh inverted

Right: 向右旋转90度

orangepi@orangepi:~$ set_lcd_rotate.sh right

set_lcd_rotate.sh脚本主要做四件事:

旋转framebuffer显示的方向

旋转触摸的方向

关闭开机logo

重启系统

旋转触摸的方向是通过在/usr/share/X11/xorg.conf.d/40-libinput.conf中加入Option "TransformationMatrix" "x x x x x x x x x"这行配置来实现的。其中"x x x x x x x x x"不同的方向配置不同。

触摸旋转参考资料

https://wiki.ubuntu.com/X/InputCoordinateTransformation

开关机logo使用说明

开关机logo默认只在桌面版的系统中才会显示

/boot/orangepiEnv.txt中设置bootlogo变量为false可以关闭开关机logo

orangepi@orangepi:~$ sudo vim /boot/orangepiEnv.txt

verbosity=1

bootlogo=false

/boot/orangepiEnv.txt中设置bootlogo变量为true可以开启开关机logo

orangepi@orangepi:~$ sudo vim /boot/orangepiEnv.txt

verbosity=1

bootlogo=false

开机logo图片在linux系统中的位置为

/usr/share/plymouth/themes/orangepi/watermark.png

替换开机logo图片后需要运行下命令才能生效

orangepi@orangepi:~$ sudo update-initramfs -u

OV13850和OV13855 MIPI摄像头的测试方法

目前开发板支持两款MIPI摄像头,OV13850和OV13855,具体的图片如下所示:

1300万MIPI接口的OV13850摄像头

1300万MIPI接口的OV13855摄像头

OV13850和OV13855摄像头使用的转接板和FPC排线是一样的,只是两款摄像头接在转接板上的位置不一样。FPC排线如下图所示,请注意FPC排线是有方向的,标注TO MB那端需要插到开发板的摄像头接口中,标注TO CAMERA那端需要插到摄像头转接板上。

摄像头转接板上总共有3个摄像头的接口,同一时间只能接一个使用,如下图所示,其中:

1号接口接OV13850摄像头

2号接口接OV13855摄像头

3号接口未使用,忽略即可

Orange Pi 5 Plus开发板上总共有1个摄像头接口,位置如下所示:

摄像头插在开发板的摄像头接口的方法如下所示:

连接好摄像头到开发板上后,我们可以使用下面的方法来测试下摄像头:

首先运行下orangepi-config,普通用户记得加sudo权限

orangepi@orangepi:~$ sudo orangepi-config

然后选择System

然后选择Hardware

然后使用使用键盘的方向键定位到下图所示的位置,再使用空格选中想要打开的摄像头,其中opi5plus-ov13850表示使用ov13850摄像头,opi5plus-ov13855表示使用ov13855摄像头。

然后选择保存

然后选择

然后选择重启系统使配置生效

然后在桌面系统中打开一个终端,再运行下面的脚本

orangepi@orangepi:~$ test_camera.sh

然后就能看到摄像头的预览画面了

红外接收的测试方法

开发板上自带一个红外接收器,连接到PWM15_IR_M1引脚上。查看红外接收到的键值的方法如下所示:

首先在命令行中运行evtest命令,然后选择febf0030.pwm对应的设备序号

orangepi@orangepi:~$ evtest

No device specified, trying to scan all of /dev/input/event*

Not running as root, no devices may be available.

Available devices:

/dev/input/event0: febf0030.pwm

/dev/input/event1: rk805 pwrkey

/dev/input/event2: rockchip,dp0 rockchip,dp0

/dev/input/event3: rockchip-hdmi0 rockchip-hdmi0

/dev/input/event4: rockchip-hdmi1 rockchip-hdmi1

/dev/input/event5: headset-keys

/dev/input/event6: rockchip,es8388 Headset

/dev/input/event7: adc-keys

/dev/input/event8: SONiX USB Keyboard

/dev/input/event9: SONiX USB Keyboard Consumer Control

/dev/input/event10: SONiX USB Keyboard System Control

/dev/input/event11: PixArt USB Optical Mouse

Select the device event number [0-11]: 0 #这里选择febf0030.pwm对应的序号

Input driver version is 1.0.1

Input device ID: bus 0x19 vendor 0x524b product 0x6 version 0x100

Input device name: "febf0030.pwm"

Supported events:

Event type 0 (EV_SYN)

Event type 1 (EV_KEY)

Event code 2 (KEY_1)

Event code 3 (KEY_2)

Event code 4 (KEY_3)

Event code 5 (KEY_4)

Event code 6 (KEY_5)

Event code 7 (KEY_6)

Event code 8 (KEY_7)

Event code 9 (KEY_8)

Event code 10 (KEY_9)

Event code 11 (KEY_0)

Event code 28 (KEY_ENTER)

Event code 102 (KEY_HOME)

Event code 103 (KEY_UP)

Event code 105 (KEY_LEFT)

Event code 106 (KEY_RIGHT)

Event code 108 (KEY_DOWN)

Event code 113 (KEY_MUTE)

Event code 114 (KEY_VOLUMEDOWN)

Event code 115 (KEY_VOLUMEUP)

Event code 116 (KEY_POWER)

Event code 139 (KEY_MENU)

Event code 143 (KEY_WAKEUP)

Event code 158 (KEY_BACK)

Event code 217 (KEY_SEARCH)

Event code 388 (KEY_TEXT)

Properties:

Testing ... (interrupt to exit)

然后需要准备一个下图所示的红外遥控器

注意:香橙派提供的Linux系统默认只支持香橙派提供的遥控器,电视或者空调的遥控器是不能用的。

然后对着开发板上的红外接收器按下遥控器上的按键,红外接收器在开发板上的位置如下图所示:

然后就能看到evtest会打印接收到的键值了

......

Event code 217 (KEY_SEARCH)

Event code 388 (KEY_TEXT)

Properties:

Testing ... (interrupt to exit)

Event: time 1684152321.834907, type 1 (EV_KEY), code 2 (KEY_1), value 1

Event: time 1684152321.834907, -------------- SYN_REPORT ------------

Event: time 1684152322.017512, type 1 (EV_KEY), code 2 (KEY_1), value 0

Event: time 1684152324.630961, -------------- SYN_REPORT ------------

Event: time 1684152326.482359, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 1

Event: time 1684152326.482359, -------------- SYN_REPORT ------------

Event: time 1684152326.667633, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 0

Event: time 1684152328.427632, -------------- SYN_REPORT ------------

Event: time 1684152330.761986, type 1 (EV_KEY), code 116 (KEY_POWER), value 1

Event: time 1684152330.761986, -------------- SYN_REPORT ------------

Event: time 1684152330.944243, type 1 (EV_KEY), code 116 (KEY_POWER), value 0

Event: time 1684152330.944243, -------------- SYN_REPORT ------------

RTC的使用方法

开发板上预留了一个RTC电池的接口,位置如下所示:

需要购买的RTC电池如下所示,接口为2pin,1.25mm间距

开发板上使用的RTC芯片为HYM8563TS,此芯片的特点有:

宽工作电压范围:1.0~5.5v

低休眠电流:典型值为0.25μA(VDD =3.0V, TA =25°C)

在开发板上接好RTC电池后,使用下面的方法可以测试下RTC是否已正常工作:

首先开机进入系统,然后记录下系统的当前时间

然后使用poweroff命令正常关闭系统

然后拔掉电源,确保开发板没有接入网线和无线WIFI,再等待几分钟

然后再次开机启动系统,如果进入系统后看到时间向前走了几分钟,就说明RTC模块和电池正常工作了

通过Linux系统的procfs接口查看RTC信息的命令为

orangepi@orangepi:~$ cat /proc/driver/rtc

rtc_time : 06:07:40

rtc_date : 2023-05-22

alrm_time : 03:36:00

alrm_date : 2023-05-23

alarm_IRQ : no

alrm_pending : no

update IRQ enabled : no

periodic IRQ enabled : no

periodic IRQ frequency : 1

max user IRQ frequency : 64

24hr : yes

PWM散热风扇的使用方法

开发板上有用于接散热风扇的接口,接口规格为2pin 1.25mm间距5V电压驱动,风扇接口的位置如下图所示:

开发板上的风扇可以通过PWM来调节转速和开关,使用的PWM引脚为PWM3_IR_M1

Linux系统默认使用pwm-fan驱动来控制风扇,所使用的dts配置如下所示:

orange-pi-5.10-rk3588/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts

fan: pwm-fan {

compatible = "pwm-fan";

#cooling-cells = ;

pwms = ;

cooling-levels = ;

rockchip,temp-trips =

;

status = "okay";

};

其中:

pwms = :表示控制风扇的pwm为pwm3。

cooling-levels = 255>:用来配置转速(pwm的占空比)的档位,档位数量和大小可以自己定义,这里配置6个档位,转速的范围是0-255。

rockchip,temp-trips:用来配置CPU温度和风扇转速档位的对应关系,可以根据实际需要进行调整,上面的配置50度对应档位1,70度对对应档位5。

开机后如果发现风扇没有转是正常的,因为开机后CPU的温度一般都低于50度,只有当CPU的温度达到50度后,风扇才会开始转。

使用下面的命令可以让所有CPU都跑满,然后就能看到风扇会开始工作了:

orangepi@orangepi:~$ for i in $(seq 0 $(( $(nproc --all) - 1)) ); do (taskset -c $i yes > /dev/null &); done

关机和重启开发板的方法

最新版本的Ubuntu20.04、Ubuntu22.04、Debian11和Debian12桌面版系统中已经预装了zfs,直接使用即可。

在Ubuntu20.04、Ubuntu22.04桌面版系统中预装的zfs版本是2.1.6。

在Debian11和Debian12桌面版系统中预装的zfs版本是2.1.11。

系统启动后,首先请确认下zfs的内核模块有没有被加载,如果使用lsmod命令可以看到zfs相关的内容,就说明系统已经预装了zfs。

orangepi@orangepi:~$ lsmod | grep "zfs"

zfs                     2801664     0

zunicode             327680     1   zfs

zzstd                  471040     1   zfs

zlua                    139264     1   zfs

zcommon             69632     1   zfs

znvpair                 61440     2   zfs,zcommon

zavl                      16384     1   zfs

icp                     221184     1   zfs

spl                       77824     6   zfs,icp,zzstd,znvpair,zcommon,zavl

安装ZFS的方法

安装zfs前,请先确保使用的linux镜像为最新版本。另外,如果系统中已经安装了zfs,就无需重复安装了。

安装zfs前首先需要安装内核头文件,安装内核头文件的方法请参考安装内核头文件的方法小节的说明。

在Ubuntu20.04、Ubuntu22.04和Debian11系统中,zfs是无法通过apt直接安装的,这是因为默认的apt源中zfs版本低于2.1.6,存在和rk linux5.10内核不兼容的问题,这个问题在zfs的2.1.6及以后的版本中得到了修复。

为了解决这个问题,我们提供了能正常安装的zfs的deb包,可以从开发板的官方工具中下载到。打开官方工具,然后进入Ubuntu和Debian系统使用的zfs相关的deb包文件夹后,可以看到Ubuntu20.04、Ubuntu22.04和Debian11三种类型的deb包,请下载需要的版本。

下载完对应版本的zfs deb包后,请将它们上传到开发板的Linux系统中。上传方法请参考上传文件到开发板Linux系统中的方法小节的说明。

上传完成后,再在开发板linux系统的命令行中使用cd命令进入deb包的目录,然后使用下面的命令就可以安装zfs的deb包。

orangepi@orangepi:~$ sudo apt install ./*.deb

安装完成后,使用下面的命令可以看到zfs相关的内核模块:

orangepi@orangepi:~$ ls /lib/modules/5.10.110-rockchip-rk3588/updates/dkms/icp.ko spl.ko zavl.ko zcommon.ko zfs.ko zlua.ko znvpair.ko zunicode.ko zzstd.ko

然后重启下linux系统就能看到zfs内核模块会自动加载了:

orangepi@orangepi:~$ lsmod | grep "zfs"

zfs                     2801664     0

zunicode             327680     1   zfs

zzstd                  471040     1   zfs

zlua                    139264     1   zfs

zcommon             69632     1   zfs

znvpair                 61440     2   zfs,zcommon

zavl                      16384     1   zfs

icp                     221184     1   zfs

spl                       77824     6   zfs,icp,zzstd,znvpair,zcommon,zavl

在Debian12中,zfs的默认版本为2.1.11,所以我们可以通过下面的命令直接安装zfs,再次提醒下,安装前需要确保系统已安装内核头文件的deb包。

orangepi@orangepi:~$ sudo apt install -y zfsutils-linux zfs-dkms

创建ZFS池的方法

ZFS是基于存储池的,我们可以将多个物理存储设备添加到池中,然后从这个池中分配存储空间。

下面的内容是基于开发板接了一个NVMe SSD和一个U盘来演示的。

1) 首先我们可以通过lsblk命令查看下开发板所有的存储设备,当前开发板接了一个NVMe SSD以及一个U盘,输出如下所示:

2) 然后输入下面的命令可以创建一个ZFS池,包含NVMe SSD和U盘两个存储设备

orangepi@orangepi:~$ sudo zpool create -f pool1 /dev/nvme0n1 /dev/sda

3) 然后使用zpool list命令可以看到系统已经创建了一个名为pool1的ZFS池,并且ZFS池pool1的大小是NVME SSD的大小加上U盘的大小

4) 然后执行df -h可以看到pool1被挂载到了/pool1目录

orangepi@orangepi:~$ df -h Filesystem                 Size     Used Avail Use% Mounted on tmpfs                    1.6G     18M 1.6G 2% /run /dev/mmcblk0p2     29G     6.0G 22G 22% / tmpfs                    7.7G     46M 7.7G 1% /dev/shm tmpfs                    5.0M     4.0K 5.0M 1% /run/lock tmpfs                    7.7G     944K 7.7G 1% /tmp /dev/mmcblk0p1     1022M     115M 908M 12% /boot /dev/zram1                 188M     4.5M 169M 3% /var/log tmpfs                    1.6G     80K 1.6G 1% /run/user/1000 pool1                    489G     9.3M 489G 1% /pool1

5) 使用下面的命令可以看到pool1的文件系统类型为zfs

orangepi@orangepi:~$ mount | grep pool1

pool1 on /pool1 type zfs (rw,xattr,noacl)

6) 然后我们可以测试下拷贝一个文件到ZFS池中

orangepi@orangepi:~$ sudo cp -v /usr/local/test.mp4 /pool1/

'/usr/local/test.mp4' -> '/pool1/test.mp4'

测试ZFS的数据去重功能

1) ZFS的数据去重功能默认是关闭的,我们需要执行下面的命令打开

orangepi@orangepi:~$ sudo zfs set dedup=on pool1

2) 然后做一个简单的测试,首先进入pool1中,再执行下面的命令生成1个1G大小的随机文件

orangepi@orangepi:~$ cd /pool1/ root@orangepi:/pool1$ sudo dd if=/dev/urandom of=test.1g bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 5.04367 s, 213 MB/s

3) 然后使用下面的命令将1G大小的随机文件拷贝1000份

root@orangepi:/pool1$ for ((i=0; i 0

Out: 1: -> 1

Out: 2: -> 2

Out: 3: -> 3

Out: 4: -> 4

Out: 5: -> 5^C

PWM的测试方法

由下表可知,Orange Pi 5 Plus可用的PWM有pwm0、pwm1、pwm11、pwm12、pwm13和pwm14共六路pwm

PWM在40pin中对应的引脚如下表所示。PWM0_M0和PWM0_M2、PWM1_M0和PWM1_M2、PWM14_M0和PWM14_M2同一时间只能使用其中一个,不能同时使用,它们都是同一个PWM,只是接到不同的引脚上去了而已,请不要以为它们是两个不同的PWM总线。

PWM总线 对应40pin PWM0_M0 5号引脚 PWM0_M2 22号引脚 PWM1_M0 3号引脚 PWM1_M2 32号引脚 PWM11_M0 12号引脚 PWM12_M0 14号引脚 PWM13_M0 16号引脚 PWM14_M0 33号引脚 PWM14_M2 7号引脚

在linux系统中,40 pin中的PWM默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:

首先在/boot/extlinux/extlinux.conf中加上下面的配置

[orangepi@orangepi ~]$ sudo vim /boot/extlinux/extlinux.conf

LABEL Orange Pi

LINUX /Image

FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb

FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-pwm0-m0.dtbo

上面红色字体演示的是打开pwm0-m0的配置,其他的配置如下表所示,将对应的dtbo配置添加到FDTOVERLAYS后面即可。

PWM总线 dtbo对应配置 PWM0_M0 /dtbs/rockchip/overlay/rk3588-pwm0-m0.dtbo PWM0_M2 /dtbs/rockchip/overlay/rk3588-pwm0-m2.dtbo PWM1_M0 /dtbs/rockchip/overlay/rk3588-pwm1-m0.dtbo PWM1_M2 /dtbs/rockchip/overlay/rk3588-pwm1-m2.dtbo PWM11_M0 /dtbs/rockchip/overlay/rk3588-pwm11-m0.dtbo PWM12_M0 /dtbs/rockchip/overlay/rk3588-pwm12-m0.dtbo PWM13_M0 /dtbs/rockchip/overlay/rk3588-pwm13-m0.dtbo PWM14_M0 /dtbs/rockchip/overlay/rk3588-pwm14-m0.dtbo PWM14_M2 /dtbs/rockchip/overlay/rk3588-pwm14-m2.dtbo 然后重启OPi OS Arch系统

当打开一个pwm后,在/sys/class/pwm/中就会多出一个pwmchipX(X为具体的的数字),比如打开pwm14后,查看/sys/class/pwm/下的pwmchipX会由两个变成了三个

[orangepi@orangepi ~]$ ls /sys/class/pwm/

pwmchip0 pwmchip1 pwmchip2

上面哪个pwmchip对应pwm14呢,我们先查看下 ls /sys/class/pwm/ -l命令的输出,如下所示:

然后由下表可知,pwm14寄存器的基地址为febf0020,再看 ls /sys/class/pwm/ -l命令的输出,可以看到pwmchip2中链接到了febf0020.pwm,所以pwm14对应pwmchip为pwmchip2

然后使用下面的命令可以让pwm14输出一个50Hz的方波(请先切换到root用户,再执行下面的命令)

[root@orangepi ~]# echo 0 > /sys/class/pwm/pwmchip2/export

[root@orangepi ~]# echo 20000000 > /sys/class/pwm/pwmchip2/pwm0/period

[root@orangepi ~]# echo 1000000 > /sys/class/pwm/pwmchip2/pwm0/duty_cycle

[root@orangepi ~]# echo 1 > /sys/class/pwm/pwmchip2/pwm0/enable

上面演示的pwm14的测试方法,其他pwm测试方法都是类似的。

CAN的测试方法

打开CAN的方法

由下表可知,Orange Pi 5 Plus可用的CAN总线为CAN0和CAN1共两组CAN总线

在linux系统中,40 pin中的CAN默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:

首先在/boot/extlinux/extlinux.conf中加上下面的配置

[orangepi@orangepi ~]$ sudo vim /boot/extlinux/extlinux.conf

LABEL Orange Pi

LINUX /Image

FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb

FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-can0-m0.dtbo

上面红色字体演示的是打开can0-m0的配置,其他的配置如下表所示,将对应的dtbo配置添加到FDTOVERLAYS后面即可。

CAN总线 dtbo的配置 can0-m0 /dtbs/rockchip/overlay/rk3588-can0-m0.dtbo can1-m0 /dtbs/rockchip/overlay/rk3588-can1-m0.dtbo 然后重启OPi OS Arch系统

进入linux系统后,使用sudo ifconfig -a命令如果能看到CAN的设备节点,就说明CAN已正确打开了

[orangepi@orangepi ~]$ sudo pacman -Syy net-tools

[orangepi@orangepi ~]$ sudo ifconfig -a

can0: flags=128 mtu 16

unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)

RX packets 0 bytes 0 (0.0 B)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 0 bytes 0 (0.0 B)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

device interrupt 94

can1: flags=128 mtu 16

unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)

RX packets 0 bytes 0 (0.0 B)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 0 bytes 0 (0.0 B)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

device interrupt 95

CAN0和CAN1对应的引脚为

CAN0 CAN1 TX引脚 对应40pin的5号引脚 对应40pin的18号引脚 RX引脚 对应40pin的3号引脚 对应40pin的16号引脚 使用CANalyst-II分析仪测试CAN收发消息的方法请参考下使用CANalyst-II分析仪测试收发消息一小节的内容。

Linux SDK——orangepi-build使用说明 编译系统需求

我们可以在x64的电脑中交叉编译开发板的Linux镜像,也可以在开发板的Ubuntu22.04系统中来编译开发板的Linux镜像,请根据自己的喜好二选一。

如果是在开发板的Ubuntu22.04系统中使用orangepi-build来编译Linux镜像,请做好散热(尤其是SSD启动时)。如果散热没做好,容易出现文件系统跑飞的错误。

使用开发板的Ubuntu22.04系统编译

Linux SDK,即orangepi-build,支持在开发板的Ubuntu 22.04的上运行(其它系统没有测试过),所以下载orangepi-build前,请首先确保开发板已安装的Ubuntu版本是Ubuntu 22.04。查看开发板已安装的Ubuntu版本的命令如下所示,如果Release字段显示的不是22.04,说明当前使用的Ubuntu版本不符合要求,请更换系统后再进行下面的操作。

orangepi@orangepi:~$ lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 22.04.1 LTS

Release: 22.04

Codename: jammy

由于内核和U-boot等源码都是存放在GitHub上的,所以编译镜像的时候请确保开发板能正常从GitHub下载代码,这点是非常重要的。

使用x64的Ubuntu22.04电脑编译

Linux SDK,即orangepi-build,支持在安装有Ubuntu 22.04的电脑上运行,所以下载orangepi-build前,请首先确保自己电脑已安装的Ubuntu版本是Ubuntu 22.04。查看电脑已安装的Ubuntu版本的命令如下所示,如果Release字段显示的不是22.04,说明当前使用的Ubuntu版本不符合要求,请更换系统后再进行下面的操作。

test@test:~$ lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 22.04 LTS

Release: 22.04

Codename: jammy

如果电脑安装的是Windows系统,没有安装有Ubuntu 22.04的电脑,可以考虑使用VirtualBox或者VMware来在Windows系统中安装一个Ubuntu 22.04虚拟机。但是请注意,不要在WSL虚拟机上编译orangepi-build,因为orangepi-build没有在WSL虚拟机中测试过,所以无法确保能正常在WSL中使用orangepi-build。

Ubuntu 22.04 amd64版本的安装镜像下载地址为:

https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/22.04/ubuntu-22.04-desktop-amd64.iso

或者

https://repo.huaweicloud.com/ubuntu-releases/22.04/ubuntu-22.04.1-desktop-amd64.iso

在电脑中或者虚拟机中安装完Ubuntu 22.04后,请先设置Ubuntu 22.04的软件源为清华源,不然后面安装软件的时候很容易由于网络原因而出错

替换清华源的方法参考这个网页的说明即可

https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

注意Ubuntu版本需要切换到22.04

需要替换的/etc/apt/sources.list文件的内容为

test@test:~$ sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak

test@test:~$ sudo vim /etc/apt/sources.list

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用

# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

替换完后需要更新下包信息,并确保没有报错

test@test:~$ sudo apt update

另外,由于内核和U-boot等源码都是存放在GitHub上的,所以编译镜像的时候请确保电脑能正常从GitHub下载代码,这点是非常重要的。

获取linux sdk的源码 从github下载orangepi-build linux sdk其实指的就是orangepi-build这套代码,orangepi-build是基于armbian build编译系统修改而来的,使用orangepi-build可以编译出多个版本的linux镜像。首先下载orangepi-build的代码,命令如下所示:

test@test:~$ sudo apt-get update

test@test:~$ sudo apt-get install -y git

test@test:~$ git clone https://github.com/orangepi-xunlong/orangepi-build.git -b next

注意,Orange Pi 5 Plus开发板是需要下载orangepi-build的next分支源码的,上面的git clone命令需要指定orangepi-build源码的分支为next。

通过git clone命令下载orangepi-build的代码是不需要输入github账号的用户名和密码的(下载本手册中的其他代码也是一样的),如果如输入git clone命令后Ubuntu PC提示需要输入github账号的用户名和密码,一般都是git clone后面的orangepi-build仓库的地址输入错误了,请仔细检查命令拼写是否有错误,而不是以为我们这里忘了提供github账号的用户名和密码。

开发板当前使用的u-boot和linux内核版本如下所示 分支 u-boot版本 linux内核版本 legacy u-boot 2017.09 linux5.10

这里所说的分支和orangepi-build源代码的分支不是同一个东西,请不要搞混了。此分支主要是用来区分不同内核源码版本的。

目前RK提供的linux5.10 bsp内核我们定义为legacy分支。如果以后支持主线内核了,就会添加一个current分支。

orangepi-build下载完后会包含下面的文件和文件夹

build.sh: 编译启动脚本

external: 包含编译镜像需要用的配置文件、特定的脚本以及部分程序的源码等

LICENSE: GPL 2许可证文件

README.md: orangepi-build说明文件

scripts: 编译linux镜像的通用脚本

test@test:~/orangepi-build$ ls

build.sh external LICENSE README.md scripts

如果是从github下载的orangepi-build的代码,下载完后你可能会发现orangepi-build中并没有包含u-boot和linux内核的源码,也没有编译u-boot和linux内核需要用到交叉编译工具链,这是正常的,因为这些东西都存放在其它单独的github仓库或者某些服务器上了(下文会详述其地址)。orangepi-build在脚本和配置文件中会指定u-boot、linux内核和交叉编译工具链的地址,运行orangepi-build时,当其发现本地没有这些东西,会自动去相应的地方下载的。

下载交叉编译工具链

只有在x64的电脑中使用orangepi-build编译镜像才会下载交叉编译工具链。在开发板的Ubuntu22.04中编译开发板的linux镜像是不会下载交叉编译工具链的,此时orangepi-build/toolchains会是一个空文件夹。

orangepi-build第一次运行的时候会自动下载交叉编译工具链放在toolchains文件夹中,每次运行orangepi-build的build.sh脚本后,都会检查toolchains中的交叉编译工具链是否都存在,如果不存在则会重新开始下载,如果存在则直接使用,不会重复下载。

交叉编译工具链在中国境内的镜像网址为清华大学的开源软件镜像站

https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain/

toolchains下载完后会包含多个版本的交叉编译工具链,开发板只会使用其中的两个

test@test:~/orangepi-build$ ls toolchains/

gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu

gcc-arm-11.2-2022.02-x86_64-arm-none-linux-gnueabihf

gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu

gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf

gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi

gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf

gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu

gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabi

gcc-linaro-aarch64-none-elf-4.8-2013.11_linux

gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux

gcc-linaro-arm-none-eabi-4.8-2014.04_linux

编译linux内核源码使用的交叉编译工具链为

linux5.10

gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu

编译u-boot源码使用的交叉编译工具链为

v2017.09

gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu

orangepi-build完整目录结构说明

orangepi-build仓库下载完后并不包含linux内核、u-boot的源码以及交叉编译工具链,linux内核和u-boot的源码存放在独立的git仓库中

linux内核源码存放的git仓库如下所示:

https://github.com/orangepi-xunlong/linux-orangepi/tree/orange-pi-5.10-rk3588

u-boot源码存放的git仓库如下所示:

https://github.com/orangepi-xunlong/u-boot-orangepi/tree/v2017.09-rk3588

orangepi-build第一次运行的时候会去下载交叉编译工具链、u-boot和linux内核源码,成功编译完一次linux镜像后在orangepi-build中可以看到的文件和文件夹有

build.sh: 编译启动脚本

external: 包含编译镜像需要用的配置文件、特定功能的脚本以及部分程序的源码,编译镜像过程中缓存的rootfs压缩包也存放在external中

kernel: 存放linux内核的源码,里面名为orange-pi-5.10-rk3588的文件夹存放的就是RK3588/RK3588S系列开发板legacy分支的内核源码,内核源码的文件夹的名字请不要手动修改,如果修改了,编译系统运行时会重新下载内核源码

LICENSE: GPL 2许可证文件

README.md: orangepi-build说明文件

output: 存放编译生成的u-boot、linux等deb包、编译日志以及编译生成的镜像等文件

scripts: 编译linux镜像的通用脚本

toolchains: 存放交叉编译工具链

u-boot: 存放u-boot的源码,里面名为v2017.09-rk3588的文件夹存放的就是RK3588/RK3588S系列开发板legacy分支的u-boot源码,u-boot源码的文件夹的名字请不要手动修改,如果修改了,编译系统运行时会重新下载u-boot源码

userpatches: 存放编译脚本需要用到的配置文件

test@test:~/orangepi-build$ ls

build.sh external kernel LICENSE output README.md scripts toolchains u-boot userpatches

编译u-boot

运行build.sh脚本,记得加sudo权限

test@test:~/orangepi-build$ sudo ./build.sh

选择U-boot package,然后回车

接着选择开发板的型号

然后就会开始编译u-boot,编译时提示的部分信息说明如下

u-boot源码的版本

[ o.k. ] Compiling u-boot [ v2017.09 ]

交叉编译工具链的版本

[ o.k. ] Compiler version [ aarch64-linux-gnu-gcc 7.4.1 ]

编译生成的u-boot deb包的路径

[ o.k. ] Target directory [ orangepi-build/output/debs/u-boot ]

编译生成的u-boot deb包的包名

[ o.k. ] File name [ linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb ]

编译使用的时间

[ o.k. ] Runtime [ 1 min ]

重复编译u-boot的命令,使用下面的命令无需通过图形界面选择,可以直接开始编译u-boot

[ o.k. ] Repeat Build Options [ sudo ./build.sh BOARD=orangepi5plus BRANCH=legacy BUILD_OPT=u-boot KERNEL_CONFIGURE=no ]

查看编译生成的u-boot deb包

test@test:~/orangepi-build$ ls output/debs/u-boot/

linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb

生成的u-boot的deb包包含的文件如下所示

使用下面的命令可以解压deb包

test@test:~/orangepi-build$ cd output/debs/u-boot

test@test:~/orangepi_build/output/debs/u-boot$ $ sudo dpkg -x \

linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb . (注意命令最后有个”.”)

test@test:~/orangepi_build/output/debs/u-boot$ ls

linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb usr

解压后的文件如下所示

test@test:~/orangepi-build/output/debs/u-boot$ tree usr

usr

└── lib

├── linux-u-boot-legacy-orangepi5plus_1.0.0_arm64

│   ├── idbloader.img

│   ├── rkspi_loader.img

│   └── u-boot.itb

└── u-boot

├── LICENSE

├── orangepi_5_plus_defconfig

└── platform_install.sh

3 directories, 6 files

orangepi-bulid编译系统编译u-boot源码时首先会将u-boot的源码和github服务器的u-boot源码进行同步,所以如果想修改u-boot的源码,首先需要关闭源码的下载更新功能(需要完整编译过一次u-boot后才能关闭这个功能,否则会提示找不到u-boot的源码,如果是从百度云盘下载的源码压缩包,则没有这个问题,因为u-boot的源码都已缓存好了),否则所作的修改都会被还原,方法如下:

设置userpatches/config-default.conf中的IGNORE_UPDATES变量为”yes”

test@test:~/orangepi-build$ vim userpatches/config-default.conf

IGNORE_UPDATES="yes"

调试u-boot代码时,可以使用下面的方法来更新linux镜像中的u-boot进行测试

将编译好的u-boot的deb包上传到开发板的linux系统中

test@test:~/orangepi-build$ cd output/debs/u-boot

test@test:~/orangepi_build/output/debs/u-boot$ scp \

linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb [email protected]:/root

然后登录到开发板,卸载已安装的u-boot的deb包

root@orangepi:~# apt purge -y linux-u-boot-orangepi5plus-legacy

再安装刚才上传的新的u-boot的deb包

root@orangepi:~# dpkg -i linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb

然后运行 nand-sata-install脚本

root@orangepi:~# nand-sata-install

然后选择5 Install/Update the bootloader on SD/eMM来更新TF卡中的u-boot或者7 Install/Update the bootloader on SPI Flash来更新SPI Flash中的u-boot

按下回车键后首先会弹出一个Warning

再按下回车键就会开始更新u-boot,更新完后会显示下面的信息

然后就可以重启开发板来测试u-boot的修改是否生效了

其它有用的信息

u-boot 2017.09源码中,开发板使用的defconfig配置文件为

orangepi-build/u-boot/v2017.09-rk3588/configs/orangepi_5_plus_defconfig

u-boot 2017.09源码中,开发板使用dts文件为

orangepi-build/u-boot/v2017.09-rk3588/arch/arm/dts/rk3588-orangepi-5-plus.dts

编译linux内核

运行build.sh脚本,记得加sudo权限

test@test:~/orangepi-build$ sudo ./build.sh

选择Kernel package,然后回车

接着选择开发板的型号

然后会提示是否需要显示内核配置界面,如果不需要修改内核配置,则选择第一个即可,如果需要修改内核配置,则选择第二个

如果第4) 步选择了需要显示内核配置菜单(第二个选项),则会弹出通过make menuconfig打开的内核配置的界面,此时可以直接修改内核的配置,修改完后再保存退出即可,退出后会开始编译内核源码

如果不需要修改内核的配置选项,在运行build.sh脚本时,传入KERNEL_CONFIGURE=no就可临时屏蔽弹出内核的配置界面了

test@test:~/orangepi-build$ sudo ./build.sh KERNEL_CONFIGURE=no

也可以设置orangepi-build/userpatches/config-default.conf配置文件中的KERNEL_CONFIGURE=no,这样可以永久禁用这个功能

编译内核的时候如果提示下面的错误,这是由于Ubuntu PC的终端界面太小,导致make menuconfig的界面无法显示,请把Ubuntu PC的终端调到最大,然后重新运行build.sh脚本

编译内核源码时提示的部分信息说明如下

linux内核源码的版本

[ o.k. ] Compiling current kernel [ 5.10.110 ]

使用的交叉编译工具链的版本

[ o.k. ] Compiler version [ aarch64-none-linux-gnu-gcc 11.2.1 ]

内核默认使用的配置文件以及它存放的路径

[ o.k. ] Using kernel config file [ config/kernel/linux-rockchip-rk3588-legacy.config ]

编译生成的内核相关的deb包的路径

[ o.k. ] Target directory [ orangepi-build/output/debs/ ]

编译生成的内核镜像deb包的包名

[ o.k. ] File name [ linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb ]

编译使用的时间

[ o.k. ] Runtime [ 5 min ]

最后会显示重复编译上一次选择的内核的编译命令,使用下面的命令无需通过图形界面选择,可以直接开始编译内核源码

[ o.k. ] Repeat Build Options [ sudo ./build.sh BOARD=orangepi5plus BRANCH=legacy BUILD_OPT=kernel KERNEL_CONFIGURE=no ]

查看编译生成的内核相关的deb包

linux-dtb-legacy-rockchip-rk3588_1.0.0_arm64.deb包含内核使用的dtb文件

linux-headers-legacy-rockchip-rk3588_1.0.0_arm64.deb包含内核头文件

linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb包含内核镜像和内核模块

test@test:~/orangepi-build$ ls output/debs/linux-*

output/debs/linux-dtb-legacy-rockchip-rk3588_1.0.0_arm64.deb

output/debs/linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb

output/debs/linux-headers-legacy-rockchip-rk3588_1.0.0_arm64.deb

生成的linux-image的deb包包含的文件如下所示

使用下面的命令可以解压deb包

test@test:~/orangepi-build$ cd output/debs

test@test:~/orangepi_build/output/debs$ mkdir test

test@test:~/orangepi_build/output/debs$ cp \

linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb test/

test@test:~/orangepi_build/output/debs$ cd test

test@test:~/orangepi_build/output/debs/test$ dpkg -x \

linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb .

test@test:~/orangepi_build/output/debs/test$ ls

boot etc lib linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb usr

解压后的文件如下所示

test@test:~/orangepi-build/output/debs/test$ tree -L 2

.

├── boot

│   ├── config-5.10.110-rockchip-rk3588

│   ├── System.map-5.10.110-rockchip-rk3588

│   └── vmlinuz-5.10.110-rockchip-rk3588

├── etc

│   └── kernel

├── lib

│   └── modules

├── linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb

└── usr

├── lib

└── share

orangepi-bulid编译系统编译linux内核源码时首先会将linux内核源码和github服务器的linux内核源码进行同步,所以如果想修改linux内核的源码,首先需要关闭源码的更新功能(需要完整编译过一次linux内核源码后才能关闭这个功能,否则会提示找不到linux内核的源码,如果是从百度云盘下载的源码压缩包,则没有这个问题,因为linux的源码都已缓存好了),否则所作的修改都会被还原,方法如下:

设置userpatches/config-default.conf中的IGNORE_UPDATES变量为”yes”

test@test:~/orangepi-build$ vim userpatches/config-default.conf

IGNORE_UPDATES="yes"

如果对内核做了修改,可以使用下面的方法来更新开发板linux系统的内核和内核模块

将编译好的linux内核的deb包上传到开发板的linux系统中

test@test:~/orangepi-build$ cd output/debs

test@test:~/orangepi-build/output/debs$ scp \

linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb [email protected]:/root

然后登录到开发板,卸载已安装的linux内核的deb包

root@orangepi:~# apt purge -y linux-image-legacy-rockchip-rk3588

再安装刚才上传的新的linux内核的deb包

root@orangepi:~# dpkg -i linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb

然后重启开发板,再查看内核相关的修改是否已生效

root@orangepi:~# reboot

其它有用的信息

内核配置文件存放位置如下所示,请不要到内核源码中去找开发板所使用的内核配置文件

orangepi-build/external/config/kernel/linux-rockchip-rk3588-legacy.config

开发板使用的dts文件所在的位置为

orangepi-build/kernel/orange-pi-5.10-rk3588/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts

编译rootfs

运行build.sh脚本,记得加sudo权限

test@test:~/orangepi-build$ sudo ./build.sh

选择Rootfs and all deb packages,然后回车

接着选择开发板的型号

然后选择rootfs的类型(目前主要维护bullseye/focal/jammy

然后选择镜像的类型

Image with console interface > (server)表示服务器版的镜像,体积比较小

Image with desktop environment表示带桌面的镜像,体积比较大

如果是编译服务器版的镜像,还可以选择编译Standard版本或者Minimal版本,Minimal版本预装的软件会比Standard版本少很多(没特殊需求请不要选择Minimal版本,因为很多东西默认没有预装,部分功能可能用不了

如果是编译桌面版本的镜像还需要选择桌面环境的类型,目前Ubuntu Jammy主要维护XFCE和Gnome两种桌面,Ubuntu Focal只维护XFCE桌面,Debian Bullseye主要维护XFCE和KDE桌面

然后可以选择需要安装的额外的软件包。这里请按下回车键直接跳过。

然后就会开始编译rootfs,编译时提示的部分信息说明如下所示

rootfs的类型

[ o.k. ] local not found [ Creating new rootfs cache for jammy]

编译生成的rootfs压缩包的存放路径

[ o.k. ] Target directory [ external/cache/rootfs ]

编译生成的rootfs压缩包的名字

[ o.k. ] File name [ jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4 ]

编译使用的时间

[ o.k. ] Runtime [ 13 min ]

查看编译生成的rootfs压缩包

jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4是rootfs的压缩包,名字各字段的含义为

jammy表示rootfs的linux发行版的类型

xfce表示rootfs为桌面版的类型,如果为cli则表示服务器版类型

arm64表示rootfs的架构类型

f930ff6ebbac1a72108a2e100762b18f是由rootfs安装的所有软件包的包名生成的MD5哈希值,只要没有修改rootfs安装的软件包的列表,那么这个值就不会变,编译脚本会通过这个MD5哈希值来判断是否需要重新编译rootfs

jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.list列出了rootfs安装的所有软件包的包名

test@test:~/orangepi-build$ ls external/cache/rootfs/

jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4

jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.current

jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.list

如果需要的rootfs在external/cache/rootfs下已经存在,那么再次编译rootfs就会直接跳过编译过程,不会重新开始编译,编译镜像的时候也会去external/cache/rootfs下查找是否已经有缓存可用的rootfs,如果有就直接使用,这样可以节省大量的下载编译时间。

编译linux镜像

运行build.sh脚本,记得加sudo权限

test@test:~/orangepi-build$ sudo ./build.sh

选择Full OS image for flashing,然后回车

然后选择开发板的型号

然后选择rootfs的类型(目前主要维护bullseye/focal/jammy

然后选择镜像的类型

Image with console interface (server)表示服务器版的镜像,体积比较小

Image with desktop environment表示带桌面的镜像,体积比较大

如果是编译服务器版的镜像,还可以选择编译Standard版本或者Minimal版本,Minimal版本预装的软件会比Standard版本少很多(没特殊需求请不要选择Minimal版本,因为很多东西默认没有预装,部分功能可能用不了

如果是编译桌面版本的镜像还需要选择桌面环境的类型,目前Ubuntu Jammy主要维护XFCE和Gnome两种桌面,Ubuntu Focal只维护XFCE桌面,Debian Bullseye主要维护XFCE和KDE桌面

然后可以选择需要安装的额外的软件包。这里请按下回车键直接跳过。

然后就会开始编译linux镜像,编译的大致流程如下

初始化Ubuntu PC的编译环境,安装编译过程需要的软件包

下载u-boot和linux内核的源码(如果已经缓存,则只更新代码)

编译u-boot源码,生成u-boot的deb包

编译linux源码,生成linux相关的deb包

制作linux firmware的deb包

制作orangepi-config工具的deb包

制作板级支持的deb包

如果是编译desktop版镜像,还会制作desktop相关的deb包

检查rootfs是否已经缓存,如果没有缓存,则重新制作rootfs,如果已经缓存,则直接解压使用

安装前面生成的deb包到rootfs中

对不同的开发板和不同类型镜像做一些特定的设置,如预装额外的软件包,修改系统配置等

然后制作镜像文件,并格式化分区,默认类型为ext4

再将配置好的rootfs拷贝到镜像的分区中

然后更新initramfs

最后将u-boot的bin文件通过dd命令写入到镜像中

编译完镜像后会提示下面的信息

编译生成的镜像的存放路径

[ o.k. ] Done building [ output/images/orangepi5plus_1.0.0_debian_bullseye_linux5.10.110_xfce_desktop/orangepi5plus_1.0.0_debian_bullseye_linux5.10.110_xfce_desktop.img ]

编译使用的时间

[ o.k. ] Runtime [ 19 min ]

重复编译镜像的命令,使用下面的命令无需通过图形界面选择,可以直接开始编译镜像

[ o.k. ] Repeat Build Options [ sudo ./build.sh BOARD=orangepi5plus BRANCH=legacy BUILD_OPT=image RELEASE=bullseye BUILD_MINIMAL=no BUILD_DESKTOP=no KERNEL_CONFIGURE=yes ]

Linux开发手册 在开发板的linux系统中单独编译内核源码的方法

首先下载开发板的Linux内核源码

orangepi@orangepi:~$ git clone --depth=1 -b orange-pi-5.10-rk3588 https://github.com/orangepi-xunlong/linux-orangepi

如果从github下载代码有问题,可以去开发板的官方工具中下载内核源码压缩包,然后上传到开发板的linux系统中,再解压即可。

解压内核源码压缩包的命令为:

orangepi@orangepi:~$ tar zxf orange-pi-5.10-rk3588.tar.gz

orangepi@orangepi:~$ mv orange-pi-5.10-rk3588 linux-orangepi

解压后请执行下面的命令和github同步下源码,确保源码为最新的状态:

orangepi@orangepi:~$ cd linux-orangepi

orangepi@orangepi:~/linux-orangepi$ git pull

然后配置下默认的内核配置

orangepi@orangepi:~$ cd linux-orangepi

orangepi@orangepi:~/linux-orangepi$ make rockchip_linux_defconfig

rockchip_linux_defconfig在内核源码中的路径为arch/arm64/configs/

然后编译内核源码

orangepi@orangepi:~/linux-orangepi$ make -j10

然后安装下内核模块

orangepi@orangepi:~/linux-orangepi$ sudo make modules_install

内核模块的安装路径为:/lib/modules

执行完sudo make modules_install命令后可以看到/lib/modules/下会多了一个内核模块的文件夹:

orangepi@orangepi5plus:~$ ls /lib/modules

5.10.110+ 5.10.110-rockchip-rk3588

然后安装内核镜像和uInitrd

orangepi@orangepi:~/linux-orangepi$ sudo make install

内核镜像和uInitrd的安装路径为:/boot/

执行完 sudo make install命令后可以看到/boot/下会多了一个内核文件:

orangepi@orangepi5plus:~/orange-pi-5.10-rk3588$ ls /boot/vmlinuz*

/boot/vmlinuz-5.10.110+ /boot/vmlinuz-5.10.110-rockchip-rk3588 系统启动时实际加载的是/boot/Image这个文件,Image是vmlinuz文件的拷贝。

然后安装dtb文件到/boot/dtb

orangepi@orangepi:~/linux-orangepi$ sudo make dtbs_install INSTALL_DTBS_PATH=/boot/dtb/

然后重启Linux系统就会加载新编译的内核了

orangepi@orangepi:~$ uname -r

5.10.110+

OpenWRT系统使用说明

OpenWRT版本 OpenWRT版本 内核版本 v22.03.4 Linux5.10.110

OpenWRT适配情况 功能 OpenWRT USB2.0x2 OK USB3.0x2 OK USB Type-C 3.0 OK 3pin调试串口 OK TF卡启动 OK SPIFlash+NVMe SSD启动 OK SPIFlash启动完整的系统 OK 2.5G PCIe网口X2 OK 网口状态灯 OK LED灯 OK FAN风扇接口 OK AX200-WIFI OK AX200-WIFI OK eMMC扩展接口 OK 第一次启动扩容rootfs

第一次启动OpenWRT系统时会执行resize-rootfs.sh脚本进行 rootfs 的扩容,并且扩容完成后会自动重启

登录系统后可以通过 df -h 命令来查看 rootfs 的大小,如果和存储设备(TF卡、eMMC或者NVME SSD)实际容量一致,说明自动扩容运行正确

root@OpenWrt:~# df -h

Filesystem Size Used Available Use% Mounted on /dev/root14.8G14.7G91.6M99% / tmpfs 495.5M6.1M489.4M1% /tmp tmpfs 512.0K0512.0K0% /dev /dev/root14.8G14.7G 91.6M99% /opt/docker

登录系统的方法 通过串口登录

首先调试串口的使用可以参考调试串口的使用方法章节

OpenWrt系统默认会以 root 用户自动登录,显示界面如下

通过SSH登录系统

请注意,在Orange Pi 5 Plus的OpenWrt系统中,默认将靠近typeC电源接口的网口配置成WAN口功能,靠近HDMI接口的网口配置为LAN口功能

首先用网线连接板子的LAN口到电脑的网口,以便电脑的网口能通过DHCP获取到IP地址

默认板子的LAN口IP是设置为192.168.2.1的,所以此时电脑可以获取到以192.168.2开头的IP地址

如果电脑安装的Ubuntu系统,可以执行下列命令通过SSH登录系统,默认是不需要密码直接就可以登录的

test@ubuntu:~$ ssh [email protected]

成功登录系统后的显示如下图所示

如果电脑装的Windows系统,可以参考Windows下SSH远程登录开发板一小节介绍的方法进行登录。

登录LuCI管理界面

请注意,OpenWRT系统默认将靠近Type-C电源接口的网口配置成WAN口功能,靠近HDMI接口的网口配置为LAN口功能。

首先用网线连接板子的LAN口到电脑的网口,以便电脑的网口能通过DHCP获取到IP地址 默认板子的LAN口IP是设置为192.168.2.1的,所以此时电脑可以获取到以192.168.2开头的IP地址 在电脑上的浏览器中输入IP地址192.168.2.1就可以登录LuCI界面了

OpenWrt系统默认是没有设置密码的,所以直接点击登录按钮即可,登录成功后界面显示如下图所示

通过LuCI管理界面登录终端

请注意,OpenWRT系统默认将靠近Type-C电源接口的网口配置成WAN口功能,靠近HDMI接口的网口配置为LAN口功能。

首先用网线连接板子的LAN口到电脑的网口,以便电脑的网口能通过DHCP获取到IP地址 默认板子的LAN口IP是设置为192.168.2.1的,所以此时电脑可以获取到以192.168.2开头的IP地址 在电脑上的浏览器中输入IP地址192.168.2.1就可以登录LuCI界面了 在导航栏的“服务”一栏中选择“终端”并点击进入

此时终端界面如下图所示

输入用户名root即可登录

使用IP地址+端口号方式登录终端

请注意,OpenWRT系统默认将靠近Type-C电源接口的网口配置成WAN口功能,靠近HDMI接口的网口配置为LAN口功能。

首先用网线连接板子的LAN口到电脑的网口,以便电脑的网口能通过DHCP获取到IP地址 默认板子的LAN口IP是设置为192.168.2.1的,所以此时电脑可以获取到以192.168.2开头的IP地址 然后在浏览器输入192.168.2.1:7681即可登录OpenWRT的终端

通过命令行修改LAN口IP地址的方法 在OpenWrt系统中,提供了一个命令行工具uci,它可以很方便地对配置文件中的内容进行修改、添加、删除和读取,详细说明请参考官方文档 首先使用以下命令获取网络配置,对应的配置文件是/etc/config/network,可以看到network.lan.ipaddr这一项的值是192.168.2.1

root@OpenWrt:~# uci show network

...

network.lan=interface

network.lan.device='br-lan'

network.lan.proto='static'

network.lan.ipaddr='192.168.2.1'

network.lan.netmask='255.255.255.0'

network.lan.ip6assign='60'

.…

然后输入以下命令修改network.lan.ipaddr这一项

root@OpenWrt:~# uci set network.lan.ipaddr='192.168.100.1'

然后输入以下命令完成提交,即写入到配置文件

root@OpenWrt:~# uci commit

如果红色字体的IP地址与要设置的一致,说明修改成功

root@OpenWrt:~# cat /etc/config/network

...

config interface 'lan'

option device 'br-lan'

option proto 'static'

option netmask '255.255.255.0'

option ip6assign '60'

option ipaddr '192.168.100.1'

...

通过ubus重启网络,ubus的使用说明请参考官方文档

root@OpenWrt:~# ubus call network restart

此时,输入命令可以看到LAN口的IP已经是192.168.100.1

root@OpenWrt:~# ifconfig br-lan

br-lan Link encap:Ethernet HWaddr FE:55:13:A3:EF:E7

inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0

inet6 addr: fd60:c4cd:1033::1/60 Scope:Global

UP BROADCAST MULTICAST MTU:1500 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:3 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:0 (0.0 B) TX bytes:370 (370.0 B)

修改root密码的方法 通过命令行修改 首先在系统的命令行输入passwd root,会出现以下提示信息,此时可以输入想要设置的密码,按下回车键确认

root@OpenWrt:/# passwd root

Enter new UNIX password:

接着会提示重新输入密码,此时再次输入密码确认并回车即可

Retype password:

修改成功的显示如下

passwd: password for root changed by root

通过LuCI管理界面修改

首先参考登录LuCI管理界面进入OpenWRT的管理界面

然后按照下面的步骤修改密码

在导航栏中找到”系统”选项并点击

在系统下方的竖栏选项中,选择”管理权”并点击

在Tab页中选择”路由器密码”选项

修改并保存路由器密码

在”密码”和”确认密码”的对话框中输入自己设定的密码(如果不确定密码是否输入正确,可点击对话框后面的”*”图标以显示输入字符)

点击”保存”即可保存新修改的密码

注:在”密码”和”确认密码”的对话框中,需要两次输入的密码保持一致。

密码修改成功之后,会弹出”系统密码已更改成功”的弹框,此时登录OpenWRT就需要密码才能登录

USB接口测试

在命令行下挂载USB存储设备 首先将U盘插入Orange Pi开发板的USB接口中 执行下面的命令如果能看到sdX的输出说明U盘识别成功

root@OpenWrt:~# cat /proc/partitions | grep "sd*" majorminor #blocksname 8015126528 sda

使用mount命令可以将U盘挂载到/mnt中,然后就能查看U盘中的文件了

root@OpenWrt:~# mount /dev/sda /mnt/

root@OpenWrt:~# ls /mnt/

test.txt

挂载完后通过df -h命令就能查看U盘的容量使用情况和挂载点

root@OpenWrt:~# df -h | grep "sd"

/dev/sda14.4G187.2M14.2G1% /mnt

在LuCI管理界面挂载USB存储设备

首先将U盘(或者其它存储设备)通过USB2.0连接到开发板

然后按照登录LuCI管理界面进入LuCI管理界面

然后在LuCI管理界面中,点击”系统->挂载点”进入挂载点的配置界面

然后按照下面的步骤新增一个挂载点

在挂载点全局设置界面下方找到”挂载点

挂载点下方,选择”添加”按钮并点击进入

接着会弹出下面的弹窗界面

然后就可以开始挂载存储设备

勾选”已启用

在常规设置UUID一栏中选择实际接入的设备/dev/sda(根据自己的设备选择)

在挂载点一栏中选择”自定义”,并填入要挂载到的目标目录,这里以/mnt目录为例,填好后回车确认

然后点击右下角的”保存”按钮

然后会回到挂载点全局设置页面,在页面的左下角点击”保存并应用”使挂载点生效

保存完后可以看到”已挂载的文件系统”中,该存储设备已经挂载成功

M.2 E-Key PCIe无线网卡的使用方法 目前OpenWRT镜像镜像目前适配的PCIe无线网卡型号如下所示: 序号 型号 实物图片 已支持的OS 1 AX200

(PCIE+USB接口)

Debian

Ubuntu

OpenWRT

OPi OS Arch

2 AX210

(PCIE+USB接口)

Debian

Ubuntu

OpenWRT

OPi OS Arch

3 RTL8852BE

(PCIE+USB接口)

Debian

Ubuntu

不支持OpenWRT

Android12

OPi OS Arch

OPi OS Droid

创建WIFI热点的方法

注意AX200和AX210目前仅支持2.4G频段热点,5G频段模式下会出现无线网卡修改配置后无法应用的错误。

首先将PCIe无线网卡插入开发板的M.2 E-KEY端口,然后接上Type-C电源给开发板上电。

系统启动完成,点击 网络 -> 无线 进入无线WiFi配置界面。

OpenWRT系统默认的无线配置是Master 模式,这里为了方便接下来的操作,我们将默认的无线连接移除。

然后点击页面的右下角 保存 让配置生效。

然后点击右侧的 添加 按钮。

在弹出标签页 设备配置 中,我们设置参数如下图所示。

然后在 接口配置 -> 常规设置 中,将模式设置成 接入点APESSID(无线网络名称)设置为OpenWrt ,网络指定为 lan

然后在 接口配置 -> 无线安全 中,加密算法选择 WPA2-PSK ;密钥(无线密码)设置为 password

以上设置完成后,点击页面右下角 保存,之后会退出标签页

然后点击页面右下角 保存并应用 等待配置被应用完成。

成功创建热点的显示界面如下图所示

然后使用手机或电脑搜索对应SSID的WiFi进行连接,连接成功后如下图所示

连接WIFI热点的方法

将PCIe无线网卡插入开发板的M.2 E-KEY端口,然后接上Type-C电源给开发板上电。

系统启动完成后,点击 网络 -> 无线 进入配置无线WiFi界面。

OpenWRT系统默认的无线配置是Master 模式,这里为了方便接下来的操作,我们将默认的无线连接移除。

然后点击页面的右下角 保存 让配置生效。

然后点击 扫描 按钮扫描周围的WiFi热点。

然后会弹出下面的窗口显示可用的WiFi热点,这时点击想要连接的WiFi热点右边的 加入网络 按钮来连接WiFi热点。

然后会弹出一个连接WiFi热点的界面,我们在下图所示的位置输入热点的密码,再点击 提交 按钮。

然后会弹出下面的界面,点击右下角的 保存 按钮即可。

最后会回到无线配置的主界面,点击 保存并应用 等待配置被应用完成。

成功连接到WiFi热点后,界面显示如下图所示。

通过命令行安装软件包 在终端通过opkg安装 更新可获取的软件包列表

root@OpenWrt:/# opkg update

获取软件列表

root@OpenWrt:/# opkg list

安装指定的软件包

root@OpenWrt:/# opkg install

查看已经安装的软件

root@OpenWrt:/# opkg list-installed

卸载软件

root@OpenWrt:/# opkg remove

OpenWRT管理界面安装软件包

若需要新增软件包,可通过OpenWRT的管理界面进行安装。

查看系统可用软件包列表

首先进入软件包管理页面

在导航栏中找到”系统”选项并点击进入

在系统下方的竖栏选项中,选择”软件包”并点击进入

然后会出现软件包的主页面,如下图所示,获取可用的软件列表

在软件包的”操作”选项中,点击”更新列表”,获取可用的软件包列表

在Tab页中,点击”可用”,查看当前可用软件包

查看当前可用软件包的数量

安装软件包示例

以安装软件包”luci-app-acl”为例

在OpenWRT的软件包管理界面下,点击筛选器的对话框并输入”luci-app-acl

在软件包的列表中可以看到”luci-app-acl”软件包的版本、软件包大小以及描述信息,然后点击”安装”按钮

然后会出现以下弹窗,点击”安装”即可

然后等待安装完成

安装完成的显示如下

查看软件包是否安装成功

在OpenWRT的软件包管理界面下,点击筛选器的对话框并输入”luci-app-acl

在Tab页选择点击”可用

在软件包列表中会显示”luci-app-acl”软件包,并更新状态为”已安装

移除软件包示例

以移除软件包”luci-app-acl”为例

在OpenWRT的软件包管理界面下,点击筛选器的对话框并输入”luci-app-acl

在Tab页中选择”已安装”,显示已安装的软件包列表

点击右边的”移除”,即可移除相应的软件包

然后会显示下面弹窗,点击”移除”即可

移除成功后,显示界面如下

查看软件包是否移除成功

在OpenWRT的软件包管理界面下,点击筛选器的对话框并输入”luci-app-acl

在Tab页选择点击”已安装

在软件包列表中不会显示”luci-app-acl”软件包,此时”luci-app-acl”软件包已移除成功

使用Samba网络共享

OpenWRT局域网文件共享实现主要有两个软件选择,Samba和NFS。Samba系统兼容性较好,NFS则性能表现占优。对于需要使用Windows设备的用户来说,建议选择Samba。

进入Samba网络共享的管理页面

在导航栏中找到”服务”选项并点击进入

在服务下方的竖栏选项中,选择”网络共享”并点击进入

选择Samba服务需要监听的接口

在网络共享的导航栏中选择”常规设置”并点击进入

接口根据实际需求指定,如果想通过”wan口”访问,则设置为”wan

设置网络共享的共享目录

在网络共享的”常规设置”的”共享目录”总点击”新增”共享目录地址

在名称下面输入共享文件夹的名称为”mmt

在共享目录的路径下,选择设置共享的目录位置”/mnt

勾选”可浏览”和”运行匿名用户

点击”保存并应用”,保存配置

window10启动网络发现与共享

注:在windows10系统下访问Samba,共享需要先确认window10是否已经启动网络发现与共享,如未启动,先进行如下设置。

启用Samba v1/v2的访问

进入windows10的”控制面板”

在控制面板的左侧导航栏点击”程序”

在程序和功能中选择”启用或关闭Windows功能”

在启用或关闭Windows功能的弹框中勾选”SMB 1.0/CIFS文件共享支持”

点击”确定”,配置应用

打开Windows10的网络发现

进入windows10的”控制面板”

在控制面板中选择”网络和Internet”

然后打开”网络和共享中心”

点击|“高级共享设置”

打开”启用网络发现”和”启用文件和打印机共享

点击”保存更改”,保存Windows10的网络发现配置

设置完成后,在资源管理器的地址栏输入\\OpenWrt即可访问共享目录,用户名为root,密码为开发板主机设定的密码

zerotier使用说明

OpenWRT系统已经预装了zerotier客户端,在zerotier官网创建虚拟局域网后,在客户端可以通过Network ID直接加入其中,具体操作如下文所示。

登录zerotier官网https://my.zerotier.com/network,注册登录后点击Network->Create A Network,创建一个虚拟局域网

点击进入网络控制台页面,可以把隐私选项设置为公共,这样加入的网络节点就不需要验证

下面自动分配地址这里可以自己选择网段,此处选择的是172.27.*.*

在OpenWRT终端输入下面命令就可以加入到上面创建的虚拟局域网,其中8286ac0e47d53bb5是上面创建的虚拟局域网的Network ID

root@OpenWrt:/# zerotier-one -d #启动zerotier客户端

root@OpenWrt:/# zerotier-cli join 8286ac0e47d53bb5 #加入网络

在终端输入ifconfig可以看到已经有个新增的ztks54inm2设备,IP地址为172.27.214.213

root@OpenWrt:/# ifconfig

ztks54inm2 Link encap:Ethernet HWaddr F6:4E:DE:BF:D8:52

inet addr:172.27.214.213 Bcast:172.27.255.255 Mask:255.255.0.0 inet6 addr: fe80::e82f:d0ff:fe5a:867e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:2800 Metric:1 RX packets:18 errors:0 dropped:0 overruns:0 frame:0 TX packets:48 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1720 (1.6 KiB) TX byte81 (8.2 KiB) 在另一台设备上安装zerotier客户端(此处以Ubuntu18.04为例),执行下面命令进行安装,安装完成后需要重启电脑

test@ubuntu:~$ curl -s https://install.zerotier.com | sudo bash

重启后根据Network ID加入虚拟局域网,也可以看到已经获取到zerotier分配的ip地址,此时该Ubuntu PC和OrangePi R1 Plus LTS处于同一局域网中,两者可以自由通信

test@ubuntu:~$ sudo zerotier-cli join 8286ac0e47d53bb5

test@ubuntu:~$ ifconfig

ztks54inm2: flags=4163 mtu 2800

inet 172.27.47.214 netmask 255.255.0.0 broadcast 172.27.255.255 inet6 fe80::5ce1:85ff:fe2b:6918 prefixlen 64 scopeid 0x20 ether f6:fd:87:68:12:cf txqueuelen 1000 (以太网) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 46 bytes 10006 (10.0 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 测试两个终端是否可以通信

root@OpenWrt:/# ping 172.27.47.214 -I ztks54inm2

PING 172.27.47.214 (172.27.47.214): 56 data bytes

64 bytes from 172.27.47.214: seq=0 ttl=64 time=1.209 ms

64 bytes from 172.27.47.214: seq=1 ttl=64 time=1.136 ms

64 bytes from 172.27.47.214: seq=2 ttl=64 time=1.203 ms

64 bytes from 172.27.47.214: seq=3 ttl=64 time=1.235 ms

^C

--- 172.27.47.214 ping statistics ---

4 packets transmitted, 4 packets received, 0% packet loss

round-trip min/avg/max = 1.136/1.195/1.235 ms

zerotier其他常用命令

root@OpenWrt:/# zerotier-one -d #启动zerotier客户端

root@OpenWrt:/# zerotier-cli status #获取地址和服务状态

root@OpenWrt:/# zerotier-cli join # Network ID #加入网络

root@OpenWrt:/# zerotier-cli leave # Network ID #离开网络

root@OpenWrt:/# zerotier-cli listnetworks #列出网络

OPENWRT_DEVICE_REVISION="v0"

OPENWRT_RELEASE="OpenWrt 22.03.4 r20123-38ccc47687"

OpenWRT源码的编译方法

下载OpenWRT源码 首先执行下面的命令下载openwrt-22.03分支代码

test@test:~$ sudo apt update

test@test:~$ sudo apt install -y git

test@test:~$ git clone https://github.com/orangepi-xunlong/openwrt.git -b openwrt-22.03

OpenWRT代码下载完后会包含下面的文件和文件夹

test@test:~/openwrt$ ls

BSDmakefile     Config.in     include     Makefile     README.md     scripts     toolchain

Config     feeds.conf.default     LICENSE     package     rules.mk     target     tools

编译OpenWRT源码

首先安装下面这些依赖包(目前仅测试了在Ubuntu20.04上编译需要安装下列依赖包,如果在其他版本的系统上编译,请根据出错信息自行安装依赖包)

方法1:使用脚本安装依赖包的命令如下所示:

test@test:~/openwrt$ sudo ./install_dep.sh

方法2:直接使用下面的命令安装依赖包

test@test:~/openwrt$ sudo apt update

test@test:~/openwrt$ sudo apt install -y ack antlr3 asciidoc autoconf \

automake autopoint binutils bison build-essential \

bzip2 ccache cmake cpio curl device-tree-compiler fastjar \

flex gawk gettext gcc-multilib g++-multilib git gperf haveged \

help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev \

libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev \

libncurses5-dev \libncursesw5-dev libreadline-dev libssl-dev \

libtool lrzsz mkisofs msmtp nano ninja-build p7zip p7zip-full \

patch pkgconf python2.7 python3 python3-pyelftools \

libpython3-dev qemu-utils rsync scons squashfs-tools \

subversion swig texinfo uglifyjs upx-ucl unzip \

vim wget xmlto xxd zlib1g-dev

然后执行./scripts/feeds update -a./scripts/feeds install -a下载依赖包

test@test:~/openwrt$ ./scripts/feeds update -a

test@test:~/openwrt$ ./scripts/feeds install -a

然后选择使用OrangePi 5 Plus的配置文件

编译支持TF卡、eMMC、NVMe启动的镜像,选择如下的配置

test@test:~/openwrt$ cp configs/orangepi-5-plus-rk3588_defconfig .config

编译支持SPIFlash启动的镜像,选择如下的配置

test@test:~/openwrt$ cp configs/orangepi-5-plus-rk3588-spi_defconfig .config

然后执行下面的命令使配置生效

test@test:~/openwrt$ make defconfig

执行下面的命令开始编译openwrt源码

test@test:~/openwrt$ make V=s

编译完成后,镜像生成所在的路径为:

test@test:~/openwrt$ tree -L 1 bin/targets/rockchip/armv8/

bin/targets/rockchip/armv8/

├── config.buildinfo

├── feeds.buildinfo

├── openwrt-rockchip-armv8-xunlong_orangepi-5-plus-ext4-sysupgrade.img.gz

├── openwrt-rockchip-armv8-xunlong_orangepi-5-plus.manifest

├── openwrt-rockchip-armv8-xunlong_orangepi-5-plus-squashfs-sysupgrade.img.gz

├── packages

├── profiles.json

├── sha256sums

└── version.buildinfo

1 directory, 9 files

Android 12系统的使用说明

已支持的Android版本 Android版本 内核版本 Android 12 Linux5.10 Android 12 Box Linux5.10

Android功能适配情况 功能 Android 12 Android12 Box HDMI TX1显示-1080p OK OK HDMI TX1显示-4K 120HZ OK OK HDMI TX1显示-8K 60HZ OK OK HDMI TX1音频 OK OK HDMI TX2显示-1080p OK OK HDMI TX2显示-4K 120HZ OK OK HDMI TX2显示-8K 60HZ OK OK HDMI TX2音频 OK OK HDMI RX显示 OK OK HDMI RX音频 OK OK USB2.0X2 OK OK 2.5G PCIe网口X2 OK OK 2.5G PCIe网口灯 OK OK 调试串口 OK OK RTC OK OK FAN风扇接口 OK OK eMMC扩展接口 OK OK AP6275P-WIFI OK OK AP6275P-BT OK OK AX200-WIFI NO NO AX200-BT NO NO AX210-WIFI NO NO AX210-BT NO NO RTL8852BE-WIFI OK OK RTL8852BE-BT OK OK Recovery按键 OK OK Type-C接口USB3.0功能 OK OK Type-C接口ADB功能 OK OK Type-C接口DP显示功能 OK OK Type-C接口DP音频播放 OK OK USB3.0 Hub OK OK 开关机按键 OK OK 红外功能 OK OK LED灯 OK OK 板载MIC OK OK 耳机播放 OK OK 耳机录音 OK OK SPK喇叭 OK OK 40PIN GPIO OK OK 40PIN I2C OK OK 40PIN SPI OK OK 40PIN UART OK OK 40PIN PWM OK OK TF卡启动 OK OK SPI Flash+NVME固态启动 OK OK OV13850摄像头 OK OK OV13855摄像头 OK OK GPU OK OK VPU OK OK NPU OK OK MIPI LCD显示 OK OK MIPI LCD触摸 OK OK MIPI LCD背光 OK OK HDMI CEC功能 NO OK

USB无线网卡的使用方法 目前Android镜像适配的USB无线网卡型号如下所示: 芯片型号 功能 VID&PID 适配情况 RTL8723BU 2.4G WIFI+BT4.0 0bda:b720 支持WIFI和蓝牙功能,不支持开热点 RTL8811CU 2.4G +5G WIFI 0bda:c811 支持WIFI功能和开热点

上面两款USB无线网卡的图片如下所示:

RTL8723BU USB无线网卡模块的图片如下所示:

RTL8811CU USB无线网卡模块的图片如下所示:

以上2种型号的USB无线网卡的测试方法都是相同的,首先需要将USB网卡插入开发板的USB接口

然后WIFI的连接和测试方法请参考WIFI的连接测试方法一节的内容

蓝牙的测试请参考蓝牙的测试方法一节的内容

M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 目前Android12适配的PCIe无线网卡型号如下所示: 序号 型号 实物图片 1 RTL8852BE

(PCIE+USB接口)

首先将PCIe无线网卡插入开发板的M.2 E-KEY接口中并固定好

然后给开发板接上Type-C接口的电源,并上电

系统启动后,WIFI的连接和测试方法请参考WIFI的连接测试方法一节的内容

蓝牙的测试请参考蓝牙的测试方法一节的内容

WIFI的连接测试方法

首先请注意Orange Pi 5 Plus开发板上是没有WIFI模块的,需要外接PCIe网卡或者USB网卡才能使用WIFI功能。

外接PCIe网卡的使用说明请参考M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法一小节。

外接USB网卡的使用说明请参考USB无线网卡的使用方法一小节。

首先点击进入Setting 然后选择Network & internet

然后选择Internet

然后打开Wi-Fi开关

打开Wi-Fi后如果一切正常,就可以扫描到附近的Wi-Fi热点了

然后选择想连接的Wi-Fi后会弹出下图所示的密码输入界面

然后使用键盘输入Wi-Fi对应的密码,再使用鼠标点击虚拟键盘中的回车按钮就会开始连接Wi-Fi了

Wi-Fi连接成功后的显示如下图所示:

Wi-Fi hotspot的使用方法

首先请确保以太网口已连接网线,并且能正常上网

然后选择Settings

然后选择Network & internet

然后选择Hotspot & tethering

然后选择Wi-Fi hotspot

然后打开Wi-Fi hotspot,下图中还可以看到生成的热点的名字和密码,记住它们,在连接热点的时候要用到(如果需要修改热点的名字和密码,需要先关闭Wi-Fi hotspot,然后才能修改

此时可以拿出你的手机,如果一切正常,在手机搜索到的WI-FI列表中就能找到上图Hotspot name下面显示的同名(这里为 AndroidAP_6953)的WIFI热点了。然后可以点击AndroidAP_6953连接热点,密码在上图的Hotspot password 下面可以看到

连接成功后显示如下图所示(不同手机界面会有区别,具体界面以你手机显示的为准)。此时就可以在手机上打开一个网页看下能否上网了,如果能正常打开网页, 说明开发板的WI-FI Hotspot 能正常使用

蓝牙的测试方法

请注意,Orange Pi 5 Plus开发板上是没有蓝牙模块的,需要外接带蓝牙的PCIe网卡或者带蓝牙的USB网卡才能使用蓝牙功能。

外接PCIe网卡的使用说明请参考M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法一小节。

外接USB网卡的使用说明请参考USB无线网卡的使用方法一小节。

首先点击进入Setting

然后选择Connected devices

然后点击Pair new device打开蓝牙并开始扫描周围的蓝牙设备

搜索到的蓝牙设备会在Available devices下面显示出来

然后点击想要连接的蓝牙设备就可以开始配对了,当弹出下面的界面时,请使用鼠标选择Pair选项

这里测试的是开发板和安卓手机蓝牙的配置过程,此时在手机上会弹出下面的确认界面,在手机上也点击配对按钮后就会开始配对过程

配对完成后,可以看到如下图所示的已配对的蓝牙设备

此时可以使用手机蓝牙给开发板发送一张图片,发送后,在开发板的安卓系统中可以看到下面的确认界面,然后点击Accept就可以开始接收手机发过来的图片了

开发板Android系统蓝牙接收到的图片可以在文件管理器中打开Download目录查看

HDMI In的测试方法

开发板HDMI In接口的所在位置如下所示:

然后使用下图所示的HDMI转HDMI线将其它设备的HDMI输出接到开发板的HDMI In接口上

确保连接到HDMI In接口的设备的HDMI输出是正常的,然后打开HDMI In测试APP

然后就可以看到HDMI In的视频输入了,同时HDMI In的音频输入也会从开发板的HDMI TX接口或者耳机接口输出。下图显示的是通过HDMI In输入的OPi5开发板Linux系统的桌面。

10.1寸MIPI 屏幕的使用方法

请确保使用的Android镜像为下面的两个版本的镜像:

OrangePi5Plus_RK3588_Android12_lcd_v1.x.x.img

OrangePi5Plus_RK3588_Android12_spi-nvme_lcd_v1.x.x.img

首先需要组装好屏幕,请参考10.1寸MIPI屏幕的组装方法

开发板上LCD的接口位置如下图所示:

注意,下面的触摸接口不是给LCD MIPI屏幕使用的,目前为备用接口,使用不到。

将组装好的屏幕接到LCD接口,给板子接通Type-C电源,并上电,系统启动后,就可以看到屏幕显示如下图所示

OV13850和OV13855 MIPI摄像头的测试方法

目前开发板支持两款MIPI摄像头,OV13850和OV13855,具体的图片如下所示:

1300万MIPI接口的OV13850摄像头

1300万MIPI接口的OV13855摄像头

OV13850和OV13855摄像头使用的转接板和FPC排线是一样的,只是两款摄像头接在转接板上的位置不一样。FPC排线如下图所示,请注意FPC排线是有方向的,标注TO MB那端需要插到开发板的摄像头接口中,标注TO CAMERA那端需要插到摄像头转接板上。

摄像头转接板上总共有3个摄像头的接口,同一时间只能接一个使用,如下图所示,其中:

1号接口接OV13850摄像头

2号接口接OV13855摄像头

3号接口未使用,忽略即可

Orange Pi 5 Plus开发板摄像头接口的位置如下图所示:

摄像头插在开发板CAM接口的方法如下所示:

连接好摄像头到开发板上后,我们可以使用下面的方法来测试下摄像头:

在桌面中打开相机APP

然后就能看到摄像头的预览画面了

在摄像头APP下图红框所示的区域中按住鼠标然后向右拖动可以调出拍照和摄像的切换界面

拍照和摄像的切换界面如下所示,点击Video即可切换到录像模式

点击下图所示的位置可以进入摄像头的设置界面

摄像头的设置界面如下所示:

26pin 接口 GPIO、UART、SPI 和 PWM 测试

40pin GPIO 口测试

首先点击wiringOP图标打开wiringOP APP

wiringOP APP的主界面显示如下图所示,然后点击GPIO_TEST按钮打开GPIO测试界面

GPIO测试界面如下图所示,左边的两排CheckBox按钮跟26pin引脚是一一对应的关系。当勾选CheckBox按钮时,对应的GPIO引脚会被设置为OUT模式,引脚电平设置为高电平;当取消勾选时,GPIO引脚电平设置为低电平;当点击右边的GPIO READALL按钮时,可以获取到wPi号、GPIO模式、引脚电平等信息。

然后点击GPIO READALL按钮,输出信息如下图所示:

开发板40pin中总共有28个GPIO口可以使用,下面以11号引脚——对应GPIO为GPIO1_A4 ——对应wPi序号为5——为例演示如何设置GPIO口的高低电平。首先点击11号引脚对应的CheckBox按钮,当按钮为选中状态时,11号引脚会设置为高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功

然后点击GPIO READALL按钮,可以看到当前的7号引脚模式为OUT,引脚电平为高电平

再次点击下图的CheckBox按钮取消勾选状态,11号引脚会设置为低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功

然后点击GPIO READALL按钮,可以看到当前的11号引脚模式为OUT,引脚电平为低电平

40pin的UART测试

Android中默认打开了UART3UART8,在40pin的位置如下图所示,对应的设备节点分别是/dev/ttyS3/dev/ttyS8

首先点击wiringOP图标打开wiringOP APP

wiringOP APP的主界面显示如下图所示,然后点击UART_TEST按钮打开UART测试界面

APP的串口测试界面如下图所示

下面以测试UART3为例,在选择框中选择/dev/ttyS3节点,在编辑框中输入想要设置的波特率,然后点击OPEN按钮打开/dev/ttyS3节点,打开成功后,OPEN按钮变为不可选中状态,CLOSE按钮和SEND按钮变为可选中状态

然后使用杜邦线短接uart3的RXD和TXD引脚

然后可以在下面的发送编辑框中输入一段字符,点击SEND按钮开始发送

如果一切正常,接收框内会显示已接收到的字符串

26pin的SPI测试

由下表可知,Orange Pi 5 Plus可用的SPI为SPI0和SPI4

Android系统默认打开的是SPI0的配置,这里演示下通过w25q64模块来测试SPI0接口,首先在SPI0接口接入w25q64设备

然后点击wiringOP图标打开wiringOP APP

wiringOP APP的主界面显示如下图所示,点击SPI_TEST按钮打开SPI的测试界面

然后点击OPEN按钮初始化SPI

然后填充需要发送的字节,比如读取w25q64的ID信息,在data[0]中填入地址0x9f,然后点击TRANSFER按钮

最后APP会显示读取到的ID信息

w25q64模块的MANUFACTURER ID为EFh,Device ID为4017h,跟上面读取到的值是对应的(h代表是16进制)

26pin的PWM测试

Android默认开启了PWM10PWM14,对应的引脚在40pin的所在位置如下图所示:

首先点击wiringOP图标打开wiringOP APP

然后在wiringOP的主界面点击PWM_TEST按钮进入PWM的测试界面

PWM10对应的基地址是febe0020,PWM14对应的基地址是febf0020,这里pwmchip0右边显示是fd8b0020.pwm,这时需要点击下拉选项选择其它的pwmchip,直到右边显示febe0020或者febf0020为止。

当下拉选项菜单选择pwmchip2时,右边对应的就是PWM10的基地址febe0020

当下拉选项菜单选择pwmchip4时,右边对应的就是PWM14的基地址febe0020

以测试PWM10为例,我们需要选择pwmchip2

然后确认PWM的周期,默认的配置是50000ns,转换为PWM频率是20KHz,可自行修改,点击开启按钮导出PWM10

然后拖动下面的拖动条,就可以改变PWM的占空比,然后勾选Enable就可以输出PWM波形了

然后使用示波器测量开发板40pin中的第31号引脚就可以看到下面的波形了

ADB的使用方法 使用数据线连接adb调试

首先准备一根品质良好的Type-C数据线

然后通过Type-C数据线连接好开发板与Ubuntu PC,开发板Type-C接口的位置如下图所示:

然后在Ubuntu PC上安装adb工具

test@test:~$ sudo apt update

test@test:~$ sudo apt -y install adb

通过下面的命令可以查看识别到的ADB设备

test@test:~$ adb devices

List of devices attached

S63QCF54CJ device

test@test:~$ lsusb

Bus 003 Device 006: ID 2207:0006

然后在Ubuntu PC上通过adb shell就可以登录到android系统了

test@test:~$ adb shell

console:/ $

执行下面的命令可以重新挂载Android系统

test@test:~$ adb root

test@test:~$ adb remount

然后就可以传输文件到Android系统了

test@test:~$ adb push example.txt /system/

使用网络连接adb调试

使用网络adb无需Typc-C接口的数据线来连接电脑和开发板,而是通过网络来通信,所以首先请确保开发板的有线或者无线网络已经连接好了,然后获取开发板的IP地址,后面要用到。

确保Android系统的service.adb.tcp.port设置为5555端口号

console:/ # getprop | grep "adb.tcp"

[service.adb.tcp.port]: [5555]

如果service.adb.tcp.port没有设置,可以使用下面的命令设置网络adb的端口号

console:/ # setprop service.adb.tcp.port 5555

console:/ # stop adbd

console:/ # start adbd

在Ubuntu PC上安装adb工具

test@test:~$ sudo apt update

test@test:~$ sudo apt install -y adb

然后在Ubuntu PC上连接网络adb

test@test:~$ adb connect 192.168.1.xxx (IP地址需要修改为开发板的IP地址)

* daemon not running; starting now at tcp:5037

* daemon started successfully

connected to 192.168.1.xxx:5555

test@test:~$ adb devices

List of devices attached

192.168.1.xxx:5555 device

然后在Ubuntu PC上通过adb shell就可以登录到android系统

test@test:~$ adb shell

console:/ #

Android Box测试过的2.4G USB遥控器

目前测试过的一款2.4G USB遥控器如下图所示

包含一个遥控器

一个USB无线接收器

Android Box系统无需任何配置,插上就可以用了

Android Box系统红外遥控器的使用方法

开发板自带有红外接收器,其所在位置如下图所示:

测试红外接收前我们需要准备一个红外遥控器

注意:香橙派提供的Android系统默认只支持香橙派提供的遥控器,电视或者空调的遥控器是不能用的。

Android Box系统已经适配了这款遥控器,直接就可以使用了,无需其它的设置。

Android Box系统HDMI CEC功能的使用方法

HDMI CEC允许用户只用一个遥控器,就能通过HDMI控制所有连接的设备,基于这个功能,我们用电视机的遥控器就可以控制开发板。

测试此功能前,请确保您的电视机是支持HDMI CEC的。

首先将开发板通过HDMI线连接到电视,然后上电启动

然后在电视的设置中开启HDMI CEC功能,不同电视开启方式可能有差异,这里以小米电视为例,按下遥控器的菜单键,然后选中CEC遥控并按下确认键

然后选择“开”就可以打开HDMI CEC遥控

此时就可以通过电视的遥控器控制开发板的Android Box系统了

Android 12源码的编译方法

下载Android 12的源码

首先从百度云盘或者谷歌网盘下载Android 12源码的分卷压缩包

百度云盘

谷歌网盘

Android 12源码的分卷压缩包下载完后,请先检查下MD5校验和是否正确,如果不正确,请重新下载源码

test@test:~$ md5sum -c Android_12.tar.gz.md5sum

Android_12.tar.gz00: 确定

Android_12.tar.gz01: 确定

Android_12.tar.gz02: 确定

Android_12.tar.gz03: 确定

Android_12.tar.gz04: 确定

Android_12.tar.gz05: 确定

Android_12.tar.gz06: 确定

Android_12.tar.gz07: 确定

然后需要将多个压缩文件合并成一个,再进行解压

test@test:~$ cat Android_12.tar.gz0* > Android_12.tar.gz

test@test:~$ tar -xvf Android_12.tar.gz

编译Android 12的源码

首先安装编译Android12源码需要的软件包

test@test:~$ sudo apt-get update

test@test:~$ sudo apt-get install -y git gnupg flex bison gperf build-essential \

zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \

lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache \

libgl1-mesa-dev libxml2-utils xsltproc unzip

test@test:~$ sudo apt-get install -y u-boot-tools

源码中有build.sh编译脚本,编译参数如下

-U:编译uboot

-K:编译kernel

-A:编译android

-u:打包生成update.img与update_spi_nvme.img

-o:编译OTA包

-d:指定kernel dts

编译uboot、kernel、android并打包成update.img

编译支持HDMI 8K显示镜像(默认关闭LCD)的命令如下所示:

test@test:~$ cd Android_12

test@test:~/ Android_12$ source build/envsetup.sh

test@test:~/ Android_12$ lunch rk3588_s-userdebug

test@test:~/ Android_12$ ./build.sh -AUKu

编译支持LCD显示镜像的命令如下所示:

test@test:~$ cd Android_12

test@test:~/ Android_12$ export DUAL_LCD=true

test@test:~/ Android_12$ source build/envsetup.sh

test@test:~/ Android_12$ lunch rk3588_s-userdebug

test@test:~/ Android_12$ ./build.sh -AUKu

编译Box版本的镜像的命令如下所示:

test@test:~$ cd Android_12

test@test:~/ Android_12$ export BOARD=orangepi5plus

test@test:~/ Android_12$ source build/envsetup.sh

test@test:~/ Android_12$ lunch rk3588_box-userdebug

test@test:~/ Android_12$ ./build.sh -AUKu

编译完成后会打印下面的信息

********rkImageMaker ver 2.1********

Generating new image, please wait...

Writing head info...

Writing boot file...

Writing firmware...

Generating MD5 data...

MD5 data generated successfully!

New image generated successfully!

Making update.img OK.

Make update image ok!

最终生成的镜像文件会放在rockdev/Image-rk3588_s目录下。其中update.img是支持TF卡和eMMC启动镜像,update_spi_nvme.img是NVME SSD启动镜像

test@test:~/Android_12$ cd rockdev/Image-rk3588s_s

test@test:~/Android_12/rockdev/Image-rk3588s_s $ ls update*

update.img update_spi_nvme.img

如果编译的是Box版本的镜像,最终生成的镜像文件会放在rockdev/Image-rk3588_box目录下

test@test:~/Android_12$ cd rockdev/Image-rk3588_box

test@test:~/Android_12/rockdev/Image-rk3588_box$ ls update*

update.img update_spi_nvme.img

Orange Pi OS Droid 系统的使用说明

OPi OS Droid系统的功能适配情况 功能 OPi OS Droid功能适配情况 HDMI TX1显示 OK HDMI TX1音频 OK HDMI TX2显示 OK HDMI TX2音频 OK HDMI RX显示 OK HDMI RX音频 OK USB2.0X2 OK 2.5G PCIe网口X2 OK 2.5G PCIe网口灯 OK 调试串口 OK RTC OK FAN风扇接口 OK eMMC扩展接口 OK AP6275P-WIFI OK AP6275P-BT OK AX200-WIFI NO AX200-BT NO AX210-WIFI NO AX210-BT NO RTL8852BE-WIFI OK RTL8852BE-BT OK Recovery按键 OK Type-C接口USB3.0功能 OK Type-C接口ADB功能 OK Type-C接口DP显示功能 OK Type-C接口DP音频播放 OK USB3.0 Hub OK 开关机按键 OK 红外功能 OK LED灯 OK 板载MIC OK 耳机播放 OK 耳机录音 OK SPK喇叭 OK 40PIN GPIO OK 40PIN I2C OK 40PIN SPI OK 40PIN UART OK 40PIN PWM OK TF卡启动 OK SPI Flash+NVME固态启动 OK OV13850摄像头 OK OV13855摄像头 OK GPU OK VPU OK NPU OK MIPI LCD NO HDMI CEC NO

HDMI In的测试方法

开发板HDMI In接口的所在位置如下所示:

然后使用下图所示的HDMI转HDMI线将其它设备的HDMI输出接到开发板的HDMI In接口上

确保连接到HDMI In接口的设备的HDMI输出是正常的,然后打开HDMI In测试APP

然后会出现如下图所示的窗口,这时是看不到HDMI In的视频输入的,需要点击下图红框标记的位置放大为全屏

然后就可以看到HDMI In的视频输入了,同时HDMI In的音频输入也会从开发板的HDMI TX接口或者耳机接口输出。下图显示的是通过HDMI In输入的OPi5开发板Linux系统的桌面。

附录 用户手册更新历史 版本 日期 更新说明 v1.0 2023-05-22 初始版本 v1.1 2023-05-24

1. Android Box系统红外遥控器的使用方法

2. Orange Pi OS Droid 系统的使用说明

v1.2 2023-05-26

1. Ubuntu/Debian:HDMI IN的测试方法

2. 删除RTL8821CU USB WIFI模块的使用说明,不推荐使用此模块

v1.3 2023-05-29

1. 更新使用RKDevTool烧录镜像到SPIFlash+SSD中的方法

2. 使用RKDevTool清空SPIFlash的方法

v1.4 2023-05-31

1. 更新M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法

2. Ubuntu/Debian:ZFS文件系统的使用方法

3. Ubuntu/Debian:开机默认关闭绿灯和蓝灯的方法

4. 添加Debian12系统的使用说明(分散在多个小节中)

5. 使用开发板40pin接口中的5v引脚供电说明

v1.5 2023-06-07

1. 添加eMMC模块的图片

2. 更正散热风扇接口的图片

3. 添加查看nvme ssd温度的方法

镜像更新历史 日期 更新说明 2023-05-19 Orangepi5plus_1.0.0_debian_bullseye_server_linux5.10.110.7z

Orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.7z

Orangepi5plus_1.0.0_debian_bullseye_desktop_kde-plasma_linux5.10.110.7z

Orangepi5plus_1.0.0_ubuntu_focal_server_linux5.10.110.7z

Orangepi5plus_1.0.0_ubuntu_focal_desktop_xfce_linux5.10.110.7z

Orangepi5plus_1.0.0_ubuntu_jammy_server_linux5.10.110.7z

Orangepi5plus_1.0.0_ubuntu_jammy_desktop_xfce_linux5.10.110.7z

Orangepi5plus_1.0.0_ubuntu_jammy_desktop_gnome_linux5.10.110.7z

Opios-droid-aarch64-opi5plus-23.05-linux5.10.110.tar.gz

Opios-droid-aarch64-opi5plus-23.05-linux5.10.110-spi-nvme.tar.gz

OrangePi5Plus_RK3588_Android12_v1.0.0.tar.gz

OrangePi5Plus_RK3588_Android12_lcd_v1.0.0.tar.gz

OrangePi5Plus-RK3588_Android12-box_v1.0.0.tar.gz

OrangePi5Plus_RK3588_Android12_spi-nvme_v1.0.0.tar.gz

OrangePi5Plus_RK3588_Android12_spi-nvme_lcd_v1.0.0.tar.gz

OrangePi5Plus-RK3588_Android12-box_spi-nvme_v1.0.0.tar.gz

openwrt-aarch64-opi5plus-23.05-linux5.10.110-ext4.img.gz

初始版本 2023-05-22 Opios-arch-aarch64-gnome-opi5plus-23.05-linux5.10.110.img.xz

openwrt-rockchip -armv8-xunlong_orangepi-5-plus-spi-squashfs-sysupgrade.bin

初始版本 2023-05-24 Orangepi5plus_1.0.2_debian_bullseye_desktop_kde-plasma_linux5.10.110.7z 修复桌面音频无法使用的问题 更新chromium浏览器为chromium-brow ser_110.0,支持h264、h265、vp8、vp9和av1格式的视频硬解播放 2023-05-26 Opios-arch-aarch64-gnome-opi5plus-23.05.1-linux5.10.110.img.xz 任务栏:去掉日历和音乐,添加命令行终端和浏览器的快捷方式 支持通过CTRL+ALT+T快捷键打开命令行终端

OrangePi5Plus_RK3588_Android12_v1.0.1.tar.gz

OrangePi5Plus_RK3588_Android12_v1.0.1_lcd.tar.gz

OrangePi5Plus_RK3588_Android12_v1.0.1_spi-nvme.tar.gz

OrangePi5Plus_RK3588_Android12_v1.0.1_lcd_spi-nvme.tar.gz

预装google play store

Orangepi5plus_1.0.4_debian_bullseye_desktop_kde-plasma_linux5.10.110.7z

支持CTRL+ALT+T快捷方式打开命令行终端 任务栏新增konsole终端和chromium浏览器的快捷方式 优化音频设备显示的名字 优化test_hdmiin.sh测试脚本 修复spiflash+nvme ssd无法启动的问题

Orangepi5plus_1.0.4_debian_bullseye_desktop_xfce_linux5.10.110.7z

支持CTRL+ALT+T快捷方式打开命令行终端 优化音频设备显示的名字 优化test_hdmiin.sh测试脚本 更新chromium浏览器为chromium-brows er_110.0,支持h264、h265、vp8、vp9和av1格式的视频硬解播放 修复spiflash+nvme ssd无法启动的问题

Orangepi5plus_1.0.4_ubuntu_focal_desktop_xfce_linux5.10.110.7z Orangepi5plus_1.0.4_ubuntu_jammy_desktop_xfce_linux5.10.110.7z Orangepi5plus_1.0.4_ubuntu_jammy_desktop_gnome_linux5.10.110.7z

支持CTRL+ALT+T快捷方式打开命令行终端 优化音频设备显示的名字 优化test_hdmiin.sh测试脚本 修复spiflash+nvme ssd无法启动的问题

Orangepi5plus_1.0.4_debian_bullseye_server_linux5.10.110.7z Orangepi5plus_1.0.4_ubuntu_focal_server_linux5.10.110.7z Orangepi5plus_1.0.4_ubuntu_jammy_server_linux5.10.110.7z

修复spiflash+nvme ssd无法启动的问题 2023-05-29 Opios-droid-aarch64-opi5plus-23.05.1-linux5.10.110-en.tar.gz

Opios-droid-aarch64-opi5plus-23.05.1-linux5.10.110-en-spi-nvme.tar.gz

预装google play store (上面镜像名中的en表示英文版,需要去谷歌网盘下载) 2023-06-01 Orangepi5plus_1.0.6_ubuntu_jammy_desktop_xfce_linux5.10.110.7z

修复zfs文件系统无法安装的问题 增加rk3588-opi5plus-disable-leds.dtbo,用于关闭蓝灯和绿灯 更新chromium浏览器为chromium-browser_110.0,支持h264、h265、vp8、vp9和av1格式的视频硬解播放

Orangepi5plus_1.0.6_debian_bullseye_desktop_xfce_linux5.10.110.7z

Orangepi5plus_1.0.6_debian_bullseye_desktop_kde-plasma_linux5.10.110.7z

更新mpp包 修复zfs文件系统无法安装的问题 增加rk3588-opi5plus-disable-leds.dtbo,用于关闭蓝灯和绿灯

Orangepi5plus_1.0.6_ubuntu_focal_desktop_xfce_linux5.10.110.7z

Orangepi5plus_1.0.6_ubuntu_jammy_desktop_gnome_linux5.10.110.7z

Orangepi5plus_1.0.6_ubuntu_focal_server_linux5.10.110.7z

Orangepi5plus_1.0.6_debian_bullseye_server_linux5.10.110.7z

Orangepi5plus_1.0.6_ubuntu_jammy_server_linux5.10.110.7z

增加rk3588-opi5plus-disable-leds.dtbo,用于关闭蓝灯和绿灯 修复zfs文件系统无法安装的问题

Orangepi5plus_1.0.6_debian_bookworm_server_linux5.10.110

Orangepi5plus_1.0.6_debian_bookworm_desktop_xfce_linux5.10.110

初始版本


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3