Orange Pi 5 Plus |
您所在的位置:网站首页 › i219网卡连传感器相机用不了 › Orange Pi 5 Plus |
目录 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 PMURK806-1 RAM4GB/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-KEYPCIe 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个红外接收器 LEDRGB 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.zip和MiniLoader以及烧录工具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.zip和MiniLoader以及烧录工具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.zip和MiniLoader以及烧录工具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.zip和MiniLoader以及烧录工具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.zip和MiniLoader以及烧录工具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 1和Wired 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接口) DebianUbuntu OpenWRT OPi OS Arch 2 AX210(PCIE+USB接口) DebianUbuntu OpenWRT OPi OS Arch 3 RTL8852BE(PCIE+USB接口) DebianUbuntu 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系统的用户名root或orangepi 最后点击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 successfullyconnected 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-m0和cam1-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 wiringpiDESCRIPTION # 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 wiringpiDESCRIPTION # 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 nesclass 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-spidevspi 0-m2-cs1-spidev spi0-m2 -cs0-cs1-spidev spi 4-m1-cs0-spidevspi 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面板的登录界面,然后在对应的位置输入上图显示的username和password就可以登录进宝塔 成功登录宝塔后的会弹出下面的欢迎界面,首先请将中间的用户须知阅读完拖到最下面,然后就可以选择”我已同意并阅读《用户协议》“,接着点击”进入面板”就可以进入宝塔了 进入宝塔后首先会提示需要绑定宝塔官网的账号,如果没有账号可以去宝塔的官网(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键可以将光标移动到,然后回车即可) 然后设置默认locale为zh_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 system为fcitx 然后重启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 outorangepi@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接口) DebianUbuntu OpenWRT OPi OS Arch 2 AX210(PCIE+USB接口) DebianUbuntu OpenWRT OPi OS Arch 3 RTL8852BE(PCIE+USB接口) DebianUbuntu 不支持OpenWRT Android12 OPi OS Arch OPi OS Droid 创建WIFI热点的方法 注意AX200和AX210目前仅支持2.4G频段热点,5G频段模式下会出现无线网卡修改配置后无法应用的错误。 首先将PCIe无线网卡插入开发板的M.2 E-KEY端口,然后接上Type-C电源给开发板上电。 系统启动完成,点击 网络 -> 无线 进入无线WiFi配置界面。 OpenWRT系统默认的无线配置是Master 模式,这里为了方便接下来的操作,我们将默认的无线连接移除。 然后点击页面的右下角 保存 让配置生效。 然后点击右侧的 添加 按钮。 在弹出标签页 设备配置 中,我们设置参数如下图所示。 然后在 接口配置 -> 常规设置 中,将模式设置成 接入点AP ,ESSID(无线网络名称)设置为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.213root@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中默认打开了UART3和UART8,在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默认开启了PWM10和PWM14,对应的引脚在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-241. Android Box系统红外遥控器的使用方法 2. Orange Pi OS Droid 系统的使用说明 v1.2 2023-05-261. Ubuntu/Debian:HDMI IN的测试方法 2. 删除RTL8821CU USB WIFI模块的使用说明,不推荐使用此模块 v1.3 2023-05-291. 更新使用RKDevTool烧录镜像到SPIFlash+SSD中的方法 2. 使用RKDevTool清空SPIFlash的方法 v1.4 2023-05-311. 更新M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 2. Ubuntu/Debian:ZFS文件系统的使用方法 3. Ubuntu/Debian:开机默认关闭绿灯和蓝灯的方法 4. 添加Debian12系统的使用说明(分散在多个小节中) 5. 使用开发板40pin接口中的5v引脚供电说明 v1.5 2023-06-071. 添加eMMC模块的图片 2. 更正散热风扇接口的图片 3. 添加查看nvme ssd温度的方法 镜像更新历史 日期 更新说明 2023-05-19 Orangepi5plus_1.0.0_debian_bullseye_server_linux5.10.110.7zOrangepi5plus_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.xzopenwrt-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 storeOrangepi5plus_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.gzOpios-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 |