打开主菜单

Wiki-Orange Pi β

更改

Orange Pi 5 Plus

添加89,829字节, 2023年5月26日 (五) 17:23
无编辑摘要
<span id="orange-pi-'''Orange Pi 5-plus的基本特性"><Plus''' '''用户手册''' [[File:media/span>image2.png|576x446px]] '''目录''' = 1. Orange Pi 5 Plus的基本特性 =1 1.1. 什么是 Orange Pi 5 Plus 1 1.2. Orange Pi 5 Plus的用途 1 1.3. Orange Pi 5 Plus的硬件规格 2 1.4. Orange Pi 5 Plus的顶层视图和底层视图 4 1.5. Orange Pi 5 Plus的接口详情图 5 2. 开发板使用介绍 6 2.1. 准备需要的配件 6 2.2. 下载开发板的镜像和相关的资料 13 2.3. 基于Windows PC将Linux镜像烧录到TF卡的方法 14 2.3.1. 使用balenaEtcher烧录Linux镜像的方法 14 2.3.2. 使用RKDevTool烧录Linux镜像到TF卡中的方法 18
<span id="什么是-orange-pi-5-plus"></span>== 什么是 Orange Pi 5 Plus ==2.3.3. 使用Win32Diskimager烧录Linux镜像的方法 28
Orange Pi 5 Plus采用了瑞芯微RK3588新一代八核64位ARM处理器,具体为四核A76和四核A55,采用的三星8nm LP制程工艺,大核主频最高可达22.4GHz,集成ARM Mali-G610 MP4 GPU,内嵌高性能3D和2D图像加速模块,内置高达6 Tops算力的AI加速器NPU,可选4GB、8GB、16GB或者32GB内存,具有高达8K显示处理能力。4. 基于Ubuntu PC将Linux镜像烧录到TF卡的方法 30
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、USB35.0接口、红外、耳机、板载MIC、喇叭、RTC和40pin扩展排针等。可广泛适用于高端平板、边缘计算、人工智能、云计算、AR/VR、智能安防、智能家居等领域,覆盖 AIoT各个行业。烧录Linux镜像到eMMC中的方法 35
Orange Pi 2.5 Plus支持Orange Pi 官方研发的操作系统Orange Pi OS,同时,支持Android 12.1、OpenWRT、Debian11、Debian12、Ubuntu20.04和Ubuntu221.04等操作系统。使用RKDevTool烧录Linux镜像到eMMC中的方法 35
<span id="orange-pi-2.5-plus的用途"></span>== Orange Pi 5 Plus的用途 ==.2. 使用dd命令烧录Linux镜像到eMMC中的方法 46
我们可以用它实现:2.6. 烧录Linux镜像到SPIFlash+NVMe SSD中的方法 48
* 一台Linux桌面计算机* 一台Linux网络服务器* Android平板* Android游戏机等2.6.1. 使用RKDevTool烧录的方法 48
'''当然还有其他更多的功能,依托强大的生态系统以及各式各样的扩展配件,OPi 5 Plus可以帮助用户轻松实现从创意到原型再到批量生产的交付,是创客、梦想家、业余爱好者的理想创意平台。'''2.6.2. 使用dd命令烧录的方法 64
<span id="section"></span>2.6.3. 使用balenaEtcher软件烧录的方法 68
<span id="orange-pi-5-plus的硬件规格"></span>2.7. 烧录OpenWRT镜像到SPI FLASH中的方法 83
== Orange Pi 5 Plus的硬件规格 ==2.7.1. 使用 RKDevTool 烧录的方法 83
{| class="wikitable"2.7.2. 使用dd命令烧录的方法 92|-! '''Orange Pi 5 PLUS硬件规格'''2.8. 烧录Android镜像到TF卡中的方法 93!|-2.9. 烧录Android镜像烧录到eMMC中的方法 96| 主控芯片| Rockchip RK3588(8nm LP制程)|2.9.1. 通过Type-C线将Android 镜像烧录到eMMC中的方法 96| CPU| • 8核64位处理器 • 4个Cortex-A76和4个Cortex-A55及独立的NEON协处理器 • Cortex-A76主频最高22.9.4GHz,Cortex-A55主频最高12.8GHz|-通过TF卡将Android 12镜像烧录到eMMC中的方法 101| GPU| • 集成ARM Mali-G610 • 内置 3D GPU • 兼容OpenGL ES1.1/2.0/310.2、OpenCL 烧录Android镜像到SPIFlash+NVMe SSD中的方法 106 2.2和Vulkan 111.2烧录Orange Pi OS (Droid)镜像到TF卡中的方法 112|-| NPU2.12. 烧录Orange Pi OS (Droid)镜像到eMMC中的方法 114| 内嵌的NPU支持INT4/INT8/INT16/FP16,算力高达6 Tops|-| PMU| RK806-2.12.1|. 通过Type-C线将Orange Pi OS (Droid) 镜像烧录到eMMC 114| RAM| 4GB/8GB/16GB/32GB可选|-| 存储| • QSPI Nor FLASH: 16MB/32MB • MicroSD卡插槽 • eMMC插座,可外接eMMC模块 • 用于NVMe SSD (PCIe 32.0 x4) 的M12.2 2280插槽. 通过TF卡将Orange Pi OS (Droid)镜像烧录到eMMC 119|-| USB| • 2 x USB3.0 • 2 x USB213.0 • 1 x Type-C烧录Orange Pi OS (Droid)镜像到SPIFlash+NVMe SSD中 124|-| 视频| • 2 x HDMI 2.1 输出,高达8K@60FPS • 1 x Type-C(DP 114.4A)输出,高达4K@60FPS • 1 x HDMI输入,高达4K@60FPS • 1 x MIPI DSI 4 Lane输出,高达4K@60Hz启动香橙派开发板 129|-| TP接口2.15. 调试串口的使用方法 130| 1 x 6Pin FPC插座|-| 摄像头| 2.15.1 x MIPI CSI 4 Lane. 调试串口的连接说明 130|-| 音频| • 1 x 32.15.5mm耳机孔音频输入/输出 • 1 x 板载MIC输入 • 2 x HDMI输出 • 1 x HDMI输入 • 1 x DP输出 • 1 x扬声器输出(2pin,1.25mm规格)|-Ubuntu平台调试串口的使用方法 132| 以太网| 2 x PCIe 2.5G 以太网口(RTL8125BG )|-| 40pin扩展口| 用于扩展UART、I2C、SPI、CAN、PWM、GPIO接口|-| PCIe M15.2 M-KEY| PCIe 3.0 x 4 lanes,用于接2280的NVMe SSD固态硬盘Windows平台调试串口的使用方法 134|-| PCIe M3.2 E-KEYUbuntu/Debian Server和Xfce桌面系统使用说明 138 | 包含PCIe 23.0 x 1/PCM/UART/USB2.0接口,支持2230的Wi-Fi6 已支持的Ubuntu/BT模块Debian镜像类型和内核版本 138|-| 按键3.2. linux系统适配情况 138| 1个MaskROM键,1个RECOVERY键,1个开关机键|-3.3. 本手册linux命令格式说明 140| 供电| 支持Type-C供电,5V@4A3.4. linux系统登录说明 141|-| 红外接收器3.4.1. linux系统默认登录账号和密码 141| 1个红外接收器|-3.4.2. 设置linux系统终端自动登录的方法 142| LED| RGB LED三色指示灯|-| 风扇接口| 2pin,13.4.3.25mm规格,用于接5V风扇,支持PWM控制开关和转速linux桌面版系统自动登录说明 142|-| RTC电池接口| 2pin,13.25mm规格,用于给RTC模块供电|-| 调试| 3pin调试串口(UART)|-| 支持的操作系统| Orangepi OS(Droid)、Orangepi OS(Arch)、Orangepi OS(OH)、Ubuntu204.04、Ubuntu224.04、Debian11、Debian12、OpenWRT和Android12等Linux桌面版系统root用户自动登录的设置方法 144|-| 外观规格介绍||-| 产品尺寸| 100mm*75mm|-| 重量| 863.4.5g|-| [[File:media/145907f387ac84f3d723a2655eee1bf75.png|橙子LOGO-透明 (6)]] '''rangePi™是深圳市迅龙软件有限公司的注册商标'''||}Linux桌面版系统禁用桌面的方法 144
<span id="orange-pi-3.5-plus的顶层视图和底层视图"></span>== Orange Pi 5 Plus的顶层视图和底层视图 ==. 板载LED灯测试说明 145
'''顶层视图:'''3.6. 网络连接测试 146
<div class="figure">3.6.1. 2.5G以太网口测试 146
[[File:media/2dfcfcfd5ec58bfde1c59b454d9051753.jpeg|Orange-Pi-5-PLUS-1]]6.2. WIFI连接测试 148
</div>'''底层视图:'''3.6.3. 设置静态IP地址的方法 155
'''[[File:media/8af0d060c57c1540a5a9b30d638e1f8b3.jpeg|Orange7. M.2 E-Pi-5-PLUS-2]]'''Key PCIe WIFI6+蓝牙模块的使用方法 163
<span id="orange-pi-5-plus的接口详情图"></span>== Orange Pi 5 Plus的接口详情图 ==3.8. SSH远程登录开发板 165
<div class="figure">3.8.1. Ubuntu下SSH远程登录开发板 165
[[File:media/65e01296b63ef44854780897f4f8b4383.jpeg|d33968888c1840571eb373aa98d167ac]]8.2. Windows下SSH远程登录开发板 166
</div>= '''开发板使用介绍''' =3.9. ADB的使用方法 168
== 准备需要的配件 ==3.9.1. 网络adb的使用方法 168
# TF卡,最小16GB容量(推荐32GB或以上)的'''class10'''级或以上的高速闪迪卡3.9.2. 使用type-c数据线连接adb 170
[[File:media/6e9eb24684d742368f6c1fd7198269f23.png]]10. 上传文件到开发板Linux系统中的方法 172
# TF卡读卡器,用于将镜像烧录到TF卡中3.10.1. 在Ubuntu PC中上传文件到开发板Linux系统中的方法 172
[[File:media/9aeb47c08e101b5ae5944f0b37186b5b3.png]]10.2. 在Windows PC中上传文件到开发板Linux系统中的方法 176
# HDMI接口的显示器3.11. HDMI测试 180
[[File:media/6e703c0c7ed5ad1316d29481c52b69e13.png]]11.1. HDMI输出测试 180
# HDMI转HDMI连接线,用于将开发板连接到HDMI显示器或者电视进行显示3.11.2. HDMI IN的测试方法 182
[[File:media/4c06c9135e500bd449b1dc7078fb72353.png]]11.3. HDMI转VGA显示测试 184
'''注意,如果想接4K或者8K显示器,请确保HDMI线支持4K或者8K视频显示。'''3.11.4. HDMI分辨率设置方法 186
# Type-C转HDMI线,通过Type-C接口将开发板连接到HDMI显示器或者电视进行显示3.12. 蓝牙使用方法 188
<div class="figure">3.12.1. 桌面版镜像的测试方法 188
[[File:media/0174a4b79602bae0961fca3d6f4778b83.jpeg|IMG_256]]13. USB接口测试 191
</div># Type-C转USB转接头,用于通过Type-C接口连接USB存储设备或者鼠标键盘等USB设备('''开发板上有2个USB33.0 HOST接口和2个USB213.0 HOST接口,此配件一般用不到''')1. 连接USB鼠标或键盘测试 191
<div class="figure">3.13.2. 连接USB存储设备测试 191
[[File:media/d87207918bd57eee554d6a502cd7a6523.jpeg|98F5D70E2C9B3673E8ECE4B8ABDDFD80]]13.3. USB无线网卡测试 192
</div># 103.1寸MIPI屏幕,用于显示开发板的系统界面(此屏幕和OPi5/OPi5B通用)13.4. USB摄像头测试 196
<div class="figure">3.14. 音频测试 199
[[File:media/86b6898415454b15a150b5d91ca7baf43.jpeg|IMG_7546]]14.1. 在桌面系统中测试音频方法 199
</div># 电源适配器,Orange Pi 5 Plus建议使用5V/4A的Type-C电源供电3.14.2. 使用命令播放音频的方法 201
[[File:media/77b8b78b238fb92cfcce413cdbe5a5593.png]]14.3. 使用命令测试录音的方法 203
'''开发板上有两个长得一样的Type-C接口,其中网口旁边竖着的那个才是电源接口,另外那个Type-C接口是没有供电功能的,请别接错了。'''3.15. 温度传感器 204
[[File:media/be21ec9a0619208250c105cfbdfa9eb83.png]]16. 40 Pin扩展接口引脚使用说明 205
'''开发板的Type-C电源接口不支持PD协商功能,只支持固定的5V电压输入。'''3.17. 安装wiringOP的方法 207
# USB接口的鼠标和键盘,只要是标准USB接口的鼠标和键盘都可以,鼠标和键盘可以用来控制Orange Pi开发板3.18. 40 pin接口GPIO、I2C、UART、SPI、CAN和PWM测试 209
[[File:media/5727ec7dde759bc93ad1296aef20b2f83.png]]18.1. 40 pin GPIO口测试 209
# USB摄像头3.18.2. 40 pin GPIO口上下拉电阻的设置方法 211
[[File:media/25529640bdf8e911199feaefc0fa32b33.png]]18.3. 40 pin SPI测试 212
# 5V的散热风扇。如下图所示,开发板上有用于接散热风扇的接口,接口规格为'''2pin 13.25mm间距'''18.4. 40 pin I2C测试 215
'''开发板上的风扇可以通过PWM来调节转速和开关。'''3.18.5. 40 pin的UART测试 217
[[File:media/b649c2ec8b48ce2e46f7fd44e6201ede3.png]]18.6. PWM的测试方法 220
# 网线,用于将开发板连接到因特网3.18.7. CAN的测试方法 224
[[File:media/e80a4ec8fa226847c3bd4550bc5f69023.png]]19. wiringOP-Python的安装使用方法 232
# Type3.19.1. wiringOP-C接口的数据线,用于烧录镜像、使用ADB等功能Python的安装方法 232
[[File:media/d84ad9c1e0e447425ddd86cfefafca1e3.png]]19.2. 40 pin GPIO口测试 234
# 红外遥控器3.19.3. 40 pin SPI测试 236
[[File:media/72c9dfb70a7826f59ef6818e8f96d1d43.png]]19.4. 40 pin I2C测试 240
'''注意,空调遥控或者电视机的遥控是无法控制Orange Pi开发板的,Orange Pi提供的操作系统默认只能保证Orange Pi提供的遥控器才可以使用。'''3.19.5. 40 pin的UART测试 243
# 1300万MIPI接口的OV13850摄像头(和OPi5/OPi5B通用)3.20. 硬件看门狗测试 245
[[File:media/5941e6fa8b5a03d3b89ab5891bd1ff2c3.png]]21. 查看RK3588芯片的序列号 246
# 1300万MIPI接口的OV13855摄像头(和OPi5/OPi5B通用)3.22. 安装Docker的方法 246
[[File:media/1ef03ad657d3490c06607c7619bc11b33.png]]23. 下载安装arm64版本balenaEtcher的方法 247
# M3.2 M-KEY 2280规格的NVMe SSD固态硬盘,PCIe接口的规格为PCIe324.0x4宝塔Linux面板的安装方法 249
[[File:media/6b09ed51c8f4954ed95742cd63b21c743.png]]25. 设置中文环境以及安装中文输入法 254
# eMMC扩展模块('''待添加实物图片''')3.25.1. Debian 11系统的安装方法 254
'''开发板上插入eMMC模块的位置如下图所示:'''3.25.2. Ubuntu 20.04系统的安装方法 260
[[File:media/7cf53c40aa181a8659960c7e93c5d50d3.png]]25.3. Ubuntu 22.04系统的安装方法 264
# RTC电池,接口为2pin,13.25mm间距26. 远程登录Linux系统桌面的方法 270
[[File:media/1bb8d4996cde71588fc6fbf3de4f170a3.png]]26.1. 使用NoMachine远程登录 270
'''开发板上接RTC电池接口的位置如下图所示:'''3.26.2. 使用VNC远程登录 273
[[File:media/970ae11d12051603830ef685964784483.png]]27. Linux系统支持的部分编程语言测试 275
# 喇叭,接口为2pin,13.25mm间距27.1. Debian Bullseye系统 275
[[File:media/2ad7918730932cd74a38cd49aab96cde3.png]]27.2. Ubuntu Focal系统 277
'''开发板上接喇叭的接口位置如下图所示:'''3.27.3. Ubuntu Jammy系统 279
[[File:media/9cc3dd3182bd9a880c3a546e0269ce673.png]]28. QT的安装方法 281
# 配套外壳('''待添加图片和组装方法''')# '''3.3V'''的USB转TTL模块和杜邦线,使用串口调试功能时,需要USB转TTL模块和杜邦线来连接开发板和电脑29. ROS安装方法 289
[G7U7JZX(V`L$`A6864]38$P](media/60df9f424365ab96dfe9f13045c378bc3.png) [[File:media/ddba63922cf2518ef6c326ed2eb9b96929.png]]1. Ubuntu20.04安装ROS 1 Noetic的方法 289
# 安装有Ubuntu和Windows操作系统的个人电脑3.29.2. Ubuntu20.04安装ROS 2 Galactic的方法 293
{| class="wikitable"|-! 1! 3.29.3. Ubuntu22.04 PC! 可选,用于编译Linux源码|-| 04安装ROS 2| Windows PC| 用于烧录Android和Linux镜像|}Humble的方法 296
== 下载开发板的镜像和相关的资料 ==3.30. 安装内核头文件的方法 298
# 中文版资料的下载网址为:3.31. 10.1寸MIPI LCD屏幕的使用方法 300
'''http://www3.orangepi31.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus1.html'''http://www10.orangepi.cn/downloadresourcescn/1寸MIPI 屏幕的组装方法 300
[[File:media/3cf8969721141beb1274aead93d070163.png]]31.2. 打开10.1寸MIPI LCD屏幕配置的方法 303
# 英文版资料的下载网址为:3.31.3. 服务器版镜像旋转显示方向的方法 305
'''http://www3.orangepi31.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus4.html'''http://www.orangepi.org/downloadresources/桌面版镜像旋转显示和触摸方向的方法 306
[[File:media/66d687eb9d1b68472f31b5702f574e013.png]]32. 开关机logo使用说明 308
# 资料主要包含## '''用户手册和原理图:'''保存在百度云盘和谷歌网盘上## '''官方工具:'''主要包括开发板使用过程中需要用到的软件## '''Android源码''':保存在百度云盘和谷歌网盘上## '''Linux源码''':保存在Github上## '''OpenWRT源码''':保存在Github上## '''Android镜像''':保存在百度云盘和谷歌网盘上## '''Ubuntu镜像''':保存在百度云盘和谷歌网盘上## '''Debian镜像''':保存在百度云盘和谷歌网盘上## '''Orange Pi OS镜像''':保存在百度云盘和谷歌网盘上## '''OpenWRT镜像''':保存在百度云盘和谷歌网盘上3.33. OV13850和OV13855 MIPI摄像头的测试方法 309
<span id="基于windows-pc将linux镜像烧录到tf卡的方法"></span>== 基于Windows PC将Linux镜像烧录到TF卡的方法 ==3.34. 红外接收的测试方法 312
'''注意,这里说的Linux镜像具体指的是从'''[http://www3.orangepi35.cn/html/serviceAndSupport/index.html '''Orange Pi资料下载页面''']'''下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。'''RTC的使用方法 315
<span id="使用balenaetcher烧录linux镜像的方法"></span>=== 使用balenaEtcher烧录Linux镜像的方法 ===3.36. PWM散热风扇的使用方法 316
# 首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''级或'''class10'''级以上,建议使用闪迪等品牌的TF卡# 然后使用读卡器把TF卡插入电脑# 从[http://www3.orangepi37.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以“'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般在2GB以上。关机和重启开发板的方法 317
'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载“TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''4. Ubuntu22.04 Gnome Wayland桌面系统使用说明 319
[[File:media/523a42e43bc947bbb3d03d565485dbb84.png]]1. Ubuntu22.04 Gnome桌面系统适配情况 319
# 然后下载Linux镜像的烧录软件——'''balenaEtcher''',下载地址为:4.2. 确认系统当前使用的窗口系统为wayland的方法 321
[https://www4.balena3.io/etcher/ '''https://www.balena.io/etcher/''']切换默认音频设备的方法 322
# 进入balenaEtcher下载页面后,点击绿色的下载按钮会跳到软件下载的地方4.4. GPU的测试方法 323
[[File:media/02b7cfcad5a6ddd29787302af9ba17254.png]]5. Chromium浏览器硬解播放视频的测试方法 324
# 然后可以选择下载balenaEtcher的Portable版本的软件,Portable版本无需安装,双击打开就可以使用4.6. Kodi硬解播放视频的测试方法 326
[[File:media/8006683a887af694c7f110f69cd2ffab4.png]]7. Ubuntu22.04 Gnome安装ROS 2 Humble的方法 334
# 如果下载的是需要安装版本的balenaEtcher,请先安装再使用。如果下载的Portable版本balenaEtcher,直接双击打开即可,打开后的balenaEtcher界面如下图所示:4.8. 设置中文环境以及安装中文输入法的方法 336
[[File:media/1c6f6f6847b6ee3a626d7a61409542b65.png]]Orange Pi OS Arch系统使用说明 343
'''打开balenaEtcher时如果提示下面的错误:'''5.1. Orange Pi OS Arch系统适配情况 343
[[File:media/2ad61de4e6ea2756929a84fbbc45cd0e5.png]]2. M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 345
'''请选择balenaEtcher后点击右键,然后选择以管理员身份运行。'''5.3. 10.1寸MIPI LCD屏幕的使用方法 352
[[File:media/62ebf30a0897652d5bec2a5d021cc5475.png]]3.1. 10.1寸MIPI 屏幕的组装方法 352
# 使用balenaEtcher烧录Linux镜像的具体步骤如下所示## 首先选择要烧录的Linux镜像文件的路径## 然后选择TF卡的盘符## 最后点击Flash就会开始烧录Linux镜像到TF卡中5.3.2. 打开10.1寸MIPI LCD屏幕配置的方法 355
[[File:media/2a6c7787d912052416983e21633e4ace5.png]]3.3. 旋转显示和触摸方向的方法 356
# balenaEtcher烧录Linux镜像的过程显示的界面如下图所示,另外进度条显示紫色表示正在烧录Linux镜像到TF卡中5.4. OV13850和OV13855 MIPI摄像头的测试方法 359
[[File:media/ea192c78911ed00788792961ff282c715.png]]5. 设置中文环境以及安装中文输入法的方法 361
# Linux镜像烧录完后,balenaEtcher默认还会对烧录到TF卡中的镜像进行校验,确保烧录过程没有出问题。如下图所示,显示绿色的进度条就表示镜像已经烧录完成,balenaEtcher正在对烧录完成的镜像进行校验5.6. HDMI IN的测试方法 366
[[File:media/a28b8867823058b385a693baa564e33b5.png]]7. 安装wiringOP的方法 370
# 成功烧录完成后balenaEtcher的显示界面如下图所示,如果显示绿色的指示图标说明镜像烧录成功,此时就可以退出balenaEtcher,然后拔出TF卡插入到开发板的TF卡槽中使用了5.8. 40 pin接口GPIO、I2C、UART、SPI、CAN和PWM测试 372
[[File:media/452d9c831f3c38c0a58686bfa19d300b5.png]]8.1. 40 pin GPIO口测试 372
<span id="使用rkdevtool烧录linux镜像到tf卡中的方法"></span>=== 使用RKDevTool烧录Linux镜像到TF卡中的方法 ===5.8.2. 40 pin GPIO口上下拉电阻的设置方法 373
# 首先需要准备一根品质良好的Type-C接口的数据线5.8.3. 40 pin SPI测试 374
[[File:media/d84ad9c1e0e447425ddd86cfefafca1e5.png]]8.4. 40 pin I2C测试 376
# 还需要准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''级或'''class10'''级以上,建议使用闪迪等品牌的TF卡# 然后将TF卡插入开发板的卡槽中5.8.5. 40 pin的UART测试 378
[[File:media/4bef33e466ce90bd23eed732af50389f5.png]]8.6. PWM的测试方法 379
# 然后从[http://www5.orangepi8.cn/html/serviceAndSupport/index7.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和'''MiniLoader'''以及烧录工具'''RKDevTool_Release_v2.96.zip''',请确保下载的'''RKDevTool'''工具的的版本为'''v2.96'''## 在[http://www.orangepi.cn/html/serviceAndSupport/index.html Orange Pi 的资料下载页面]首先选择'''官方工具''',然后进入下面的文件夹中CAN的测试方法 382
[[File:media/816e86dd538ef9fa9cb9cb253871f73f6.png]]Linux SDK——orangepi-build使用说明 385
# 然后下载下面的所有文件6.1. 编译系统需求 385
[[File:media/4828a75a2a73dd5e1f4ea5dcb0a8e3e86.png]]1.1. 使用开发板的Ubuntu22.04系统编译 385
'''注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。'''6.1.2. 使用x64的Ubuntu22.04电脑编译 385
# 然后从[http://www6.orangepi2.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以“'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上获取linux sdk的源码 387
'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载“TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''6.2.1. 从github下载orangepi-build 387
[[File:media/523a42e43bc947bbb3d03d565485dbb86.png]]2.2. 下载交叉编译工具链 389
# 然后用解压软件解压'''DriverAssitant_v56.122.zip''',再在解压后的文件夹中找到'''DriverInstall3.exe'''可执行文件并打开即可orangepi-build完整目录结构说明 390
[[File:media/3abe751bd0c4c5e9be6a83f839a1e4c26.png]]3. 编译u-boot 391
# 打开'''DriverInstall6.exe'''后安装瑞芯微驱动的步骤如下所示## 点击“'''驱动安装'''”按钮4. 编译linux内核 395
[[File:media/bc5fc637f8588abefa4f2ff7e0dc26836.png]]5. 编译rootfs 399
# 等待一段时间后,会弹出窗口提示“'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可6.6. 编译linux镜像 403
[[File:media/48720c90a698617c0f884059ac1d68857.png]]Linux开发手册 407
# 然后解压'''RKDevTool_Release_v27.961.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可在开发板的linux系统中单独编译内核源码的方法 407
[[File:media/c20745924f6e330c0bc60639e5ee8c1b8.png]]OpenWRT系统使用说明 409
# 打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示“'''没有发现设备'''”8.1. OpenWRT版本 409
[[File:media/ca4b9e37ca9d9cce3f888c4278bd37268.png]]2. OpenWRT适配情况 409
# 然后开始烧录Linux镜像到TF卡中## 首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示8.3. 第一次启动扩容rootfs 409
[[File:media/293482d42e80a8b3e2962b40e834bb418.png]]4. 登录系统的方法 410
# 确保开发板没有连接Type-C电源## 然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:8.4.1. 通过串口登录 410
[[File:media/b5c295a072c9e13167488051a2a2cb048.png]]4.2. 通过SSH登录系统 410
# 然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了。Type-C电源接口的位置如下所示:8.4.3. 登录LuCI管理界面 411
[[File:media/1f65f9666af69c591813b5597e806ccb8.png]]4.4. 通过LuCI管理界面登录终端 412
# 如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示“'''发现一个MASKROM设备'''”8.4.5. 使用IP地址+端口号方式登录终端 415
[[File:media/18276e05fbda6e29cb92f7582ba887d48.png]]5. 通过命令行修改LAN口IP地址的方法 415
# 然后将鼠标光标放在下面的这片区域中8.6. 修改root密码的方法 417
[[File:media/86a56c049f0d8807cf1685e7b89306eb8.png]]6.1. 通过命令行修改 417
# 然后点击鼠标右键会弹出下图所示的选择界面8.6.2. 通过LuCI管理界面修改 417
[[File:media/e21e70e17552c5c4b75c570c4c1674648.png]]7. USB接口测试 419
# 然后选择'''导入配置'''选项8.7.1. 在命令行下挂载USB存储设备 419
[[File:media/02a57b0477b87251ffdaaf062e80025d8.png]]7.2. 在LuCI管理界面挂载USB存储设备 420
# 然后选择前面下载的'''MiniLoader'''文件夹中的'''rk3588_linux_tfcard8.cfg'''配置文件,再点击'''打开'''8. M.2 E-Key PCIe无线网卡的使用方法 423
[[File:media/57d5786fd4820bb193fdbc33711ac72e8.png]]8.1. 创建WIFI热点的方法 423
# 然后点击'''确定'''8.8.2. 连接WIFI热点的方法 428
[[File:media/c7c890a23f728a94224f270e61b4a7f48.png]]9. 通过命令行安装软件包 432
# 然后点击下图所示的位置8.9.1. 在终端通过opkg安装 432
[[File:media/82fb5a8dd506d6301435d038c1d099e28.png]]10. OpenWRT管理界面安装软件包 432
# 再选择前面下载的'''MiniLoader'''文件夹中'''MiniLoaderAll8.bin''',再点击'''打开'''10.1. 查看系统可用软件包列表 432
[[File:media/3679d114ef42d45c105bc92d6c74e07a8.png]]10.2. 安装软件包示例 433
# 然后点击下图所示的位置8.10.3. 移除软件包示例 436
[[File:media/2e0cbdef7e813cbdfce311fd9af223f78.png]]11. 使用Samba网络共享 437
# 然后选择想要烧录的linux镜像的路径,再点击'''打开'''8.12. zerotier使用说明 441
[[File:media/2a719a7cdf76bfc55d66425871d200809.png]]OpenWRT源码的编译方法 444
# 然后请勾选上'''强制按地址写'''选项9.1. 下载OpenWRT源码 444
[[File:media/4514cff4fc70772df0a100ab84cafc389.png]]2. 编译OpenWRT源码 444
# 再点击执行按钮就会开始烧录linux镜像到开发板的tf卡中10. Android 12系统的使用说明 446
[[File:media/e18a310a8ea594ec4378b3cbee5e217210.png]]1. 已支持的Android版本 446
# linux镜像烧录完后的显示log如下图所示10.2. Android功能适配情况 446
[[File:media/60b77a623b8cbd1d682537d46ee1f8b810.png]]3. USB无线网卡的使用方法 448
# 烧录完linux镜像到tf卡中后,linux系统会自动启动。10.4. M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 448
<span id="使用win32diskimager烧录linux镜像的方法"></span>=== 使用Win32Diskimager烧录Linux镜像的方法 ===10.5. WIFI的连接测试方法 449
# 首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''级或'''class10'''级以上,建议使用闪迪等品牌的TF卡# 然后使用读卡器把TF卡插入电脑# 接着格式化TF卡## 可以使用'''SD Card Formatter'''这个软件格式化TF卡,其下载地址为10.6. Wi-Fi hotspot的使用方法 452
[https://www10.sdcard7.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip '''https://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip''']蓝牙的测试方法 454
# 下载完后直接解压安装即可,然后打开软件# 如果电脑只插入了TF卡,则“'''Select card'''”一栏中会显示TF卡的盘符,如果电脑插入了多个USB存储设备,可以通过下拉框选择TF卡对应的盘符10.8. HDMI In的测试方法 457
<div class="figure">10.9. 10.1寸MIPI 屏幕的使用方法 459
[[File:media/4384069bc700c0f22175ca3d90d0ac0210.png|选区_199]]10. OV13850和OV13855 MIPI摄像头的测试方法 460
</div># 然后点击“'''Format'''”,格式化前会弹出一个警告框,选择“'''是(Y)'''”后就会开始格式化10.11. 26pin 接口 GPIO、UART、SPI 和 PWM 测试 464
[[File:media/d99155121da7a5b973411b322db68e1d10.png]]11.1. 40pin GPIO 口测试 464
<ol style="list-style-type: decimal;"><li><p>格式化完TF卡后会弹出下图所示的信息,点击确定即可</p><p>[[File:media/9f5034d52491ddc935af7485ac71469a10.png]]</p></li><li><p>从[http://www11.orangepi2.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以“'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</p></li></ol>40pin的UART测试 467
'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载“TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''10.11.3. 26pin的SPI测试 470
[[File:media/523a42e43bc947bbb3d03d565485dbb810.png]]11.4. 26pin的PWM测试 472
# 使用'''Win32Diskimager'''烧录Linux镜像到TF卡## Win32Diskimager的下载页面为10.12. ADB的使用方法 475
[http://sourceforge10.net/projects/win32diskimager/files/Archive/ '''http://sourceforge12.net/projects/win32diskimager/files/Archive/''']1. 使用数据线连接adb调试 475
# 下载完后直接安装即可,Win32Diskimager界面如下所示## 首先选择镜像文件的路径### 然后确认下TF卡的盘符和“'''设备'''”一栏中显示的一致### 最后点击“'''写入'''”即可开始烧录10.12.2. 使用网络连接adb调试 476
[[File:media/86dd166de4133a78e758cbb2ad88913a10.png]]13. Android Box测试过的2.4G USB遥控器 477
# 镜像写入完成后,点击“'''退出'''”按钮退出即可,然后就可以拔出TF卡插到开发板中启动10.14. Android Box系统红外遥控器的使用方法 478
<span id="基于ubuntu-pc将linux镜像烧录到tf卡的方法"></span>== 基于Ubuntu PC将Linux镜像烧录到TF卡的方法 ==10.15. Android Box系统HDMI CEC功能的使用方法 478
'''注意,这里说的Linux镜像具体指的是从'''[http://www11.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi资料下载页面''']'''下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像,Ubuntu PC指的是安装了Ubuntu系统的个人电脑。'''Android 12源码的编译方法 480
# 首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''级或'''class10'''级以上,建议使用闪迪等品牌的TF卡# 然后使用读卡器把TF卡插入电脑# 下载balenaEtcher软件,下载地址为11.1. 下载Android 12的源码 480
[https://www11.balena2.io/etcher/ '''https://www.balena.io/etcher/''']编译Android 12的源码 481
# 进入balenaEtcher下载页面后,点击绿色的下载按钮会跳到软件下载的地方12. Orange Pi OS Droid 系统的使用说明 483
[[File:media/02b7cfcad5a6ddd29787302af9ba172512.png]]1. OPi OS Droid系统的功能适配情况 483
# 然后选择下载Linux版本的软件即可12.2. HDMI In的测试方法 484
[[File:media/9d4e2d241c50c100259713ac21d481fe13.png]]附录 487
# 从[http://www13.orangepi1.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以“'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上用户手册更新历史 487
'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载“TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''13.2. 镜像更新历史 487
[[File:media<span id="orange-pi-5-plus的基本特性"></523a42e43bc947bbb3d03d565485dbb8.png]]span>= Orange Pi 5 Plus的基本特性 =
7z结尾的压缩包的解压命令如下所示:<span id="什么是-orange-pi-5-plus"></span>== 什么是 Orange Pi 5 Plus ==
test@test:~$ '''7z x orangepi5plus_1Orange Pi 5 Plus采用了瑞芯微RK3588新一代八核64位ARM处理器,具体为四核A76和四核A55,采用的三星8nm LP制程工艺,大核主频最高可达2.0.0_debian_bullseye_desktop_xfce_linux5.10.110.7z'''4GHz,集成ARM Mali-G610 MP4 GPU,内嵌高性能3D和2D图像加速模块,内置高达6 Tops算力的AI加速器NPU,可选4GB、8GB、16GB或者32GB内存,具有高达8K显示处理能力。
test@test:~$ '''ls orangepi5plus_1Orange Pi 5 Plus引出了相当丰富的接口,包括2个HDMI输出、1个HDMI输入、USB-C/DP接口、M.02 M-key PCIe3.0_debian_bullseye_desktop_xfce_linux50x4、M.102 E-key PCIe2.1100x1、2个2.*'''5G网口、eMMC扩展接口、USB2.0、USB3.0接口、红外、耳机、板载MIC、喇叭、RTC和40pin扩展排针等。可广泛适用于高端平板、边缘计算、人工智能、云计算、AR/VR、智能安防、智能家居等领域,覆盖 AIoT各个行业。
orangepi5plus_1Orange Pi 5 Plus支持Orange Pi 官方研发的操作系统Orange Pi OS,同时,支持Android 12.01、OpenWRT、Debian11、Debian12、Ubuntu20.0_debian_bullseye_desktop_xfce_linux504和Ubuntu22.10.110.7z orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.sha #校验和文件04等操作系统。
orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.img #镜像文件<span id="orange-pi-5-plus的用途"></span>== Orange Pi 5 Plus的用途 ==
如果下载的是OpenWRT镜像,压缩包是以gz结尾的,解压命令如下所示:我们可以用它实现:
test@test:~$ '''gunzip openwrt-aarch64-opi5plus-23.05-linux-5.10.110-ext4.img.gz'''* 一台Linux桌面计算机* 一台Linux网络服务器* Android平板* Android游戏机等
test@test:~$ '''ls openwrt-aarch64-opi5plus-23.05-linux-当然还有其他更多的功能,依托强大的生态系统以及各式各样的扩展配件,OPi 5.10.110-ext4.imgPlus可以帮助用户轻松实现从创意到原型再到批量生产的交付,是创客、梦想家、业余爱好者的理想创意平台。'''
'''openwrt-aarch64-opi5plus-23.05-linux-5.10.110-ext4.img''' #镜像文件<span id="section"></span>== ==
# 解压镜像后可以先用'''sha256sum <span id="orange-c *.sha'''命令计算下校验和是否正确,如果提示'''成功'''说明下载的镜像没有错,可以放心的烧录到TF卡,如果提示'''校验和不匹配'''说明下载的镜像有问题,请尝试重新下载pi-5-plus的硬件规格"></span>== Orange Pi 5 Plus的硬件规格 ==
test@test:~$ {| class="wikitable"|-| '''sha256sum -c *.shaOrange Pi 5 PLUS硬件规格'''||-| 主控芯片| Rockchip RK3588(8nm LP制程)|-| CPU| • 8核64位处理器
orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.img: OK• 4个Cortex-A76和4个Cortex-A55及独立的NEON协处理器
如果下载的是OpenWRT镜像,要对压缩包进行校验,不要解压后再校验• Cortex-A76主频最高2.4GHz,Cortex-A55主频最高1.8GHz
test@test:~$ '''sha256sum |-c openwrt| GPU| • 集成ARM Mali-aarch64-opi5plus-23.04-linux-5.10.110-ext4.img.gz.sha'''G610
openwrt-aarch64-opi5plus-23.04-linux-5.10.110-ext4.img.gz: OK• 内置 3D GPU
# 然后在Ubuntu PC的图形界面双击'''balenaEtcher-• 兼容OpenGL ES1.1/2.140/3.3-x642、OpenCL 2.2和Vulkan 1.AppImage'''即可打开balenaEtcher('''无需安装'''),balenaEtcher打开后的界面显示如下图所示2
[[File|-| NPU| 内嵌的NPU支持INT4/INT8/INT16/FP16,算力高达6 Tops|-| PMU| RK806-1|-| RAM| 4GB/8GB/16GB/32GB可选|-| 存储| • QSPI Nor FLASH:media16MB/26204e2f341c12fc900164f2b8ba7dfa.png]]32MB
# 使用balenaEtcher烧录Linux镜像的具体步骤如下所示## 首先选择要烧录的Linux镜像文件的路径## 然后选择TF卡的盘符## 最后点击Flash就会开始烧录Linux镜像到TF卡中• MicroSD卡插槽
[[File:media/9a391c046432e77581d1c3fb3e8977ad.png]]• eMMC插座,可外接eMMC模块
# balenaEtcher烧录Linux镜像的过程显示的界面如下图所示,另外进度条显示紫色表示正在烧录Linux镜像到TF卡中• 用于NVMe SSD (PCIe 3.0 x4) 的M.2 2280插槽
[[File:media/9c28592e064af1b64771bdb654cf03ed|-| USB| • 2 x USB3.png]]0
# Linux镜像烧录完后,balenaEtcher默认还会对烧录到TF卡中的镜像进行校验,确保烧录过程没有出问题。如下图所示,显示绿色的进度条就表示镜像已经烧录完成,balenaEtcher正在对烧录完成的镜像进行校验• 2 x USB2.0
[[File:media/78d21f8608325b4f70982f721d173e85.png]]• 1 x Type-C
# 成功烧录完成后balenaEtcher的显示界面如下图所示,如果显示绿色的指示图标说明镜像烧录成功,此时就可以退出balenaEtcher,然后拔出TF卡插入到开发板的TF卡槽中使用了|-| 视频| • 2 x HDMI 2.1 输出,高达8K@60FPS
[[File:media/82137b25d46bf405b908d12d43aa9df9• 1 x Type-C(DP 1.png]]4A)输出,高达4K@60FPS
<span id="烧录linux镜像到emmc中的方法"></span>== 烧录Linux镜像到eMMC中的方法 ==• 1 x HDMI输入,高达4K@60FPS
<span id="使用rkdevtool烧录linux镜像到emmc中的方法"></span>=== 使用RKDevTool烧录Linux镜像到eMMC中的方法 ===• 1 x MIPI DSI 4 Lane输出,高达4K@60Hz
'''注意,下面所有的操作都是在Windows电脑中进行的。'''|-| TP接口'''注意,这里说的Linux镜像具体指的是从'''[http://www.orangepi| 1 x 6Pin FPC插座|-| 摄像头| 1 x MIPI CSI 4 Lane|-| 音频| • 1 x 3.cn/html5mm耳机孔音频输入/serviceAndSupport/index.html '''Orange Pi资料下载页面''']'''下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。''' # 开发板预留了eMMC模块的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:输出
[[File:media/509c9654850ee23aaabfc364310b90d9.png]]• 1 x 板载MIC输入
# 还需要准备一根品质良好的Type-C接口的数据线• 2 x HDMI输出
[[File:media/d84ad9c1e0e447425ddd86cfefafca1e.png]]• 1 x HDMI输入
# 然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和'''MiniLoader'''以及烧录工具'''RKDevTool_Release_v2.96.zip''',请确保下载的'''RKDevTool'''工具的的版本为'''v2.96'''## 在[http://www.orangepi.cn/html/serviceAndSupport/index.html Orange Pi的资料下载页面]首先选择官方工具,然后进入下面的文件夹中• 1 x DP输出
[[File:media/816e86dd538ef9fa9cb9cb253871f73f• 1 x扬声器输出(2pin,1.png]]25mm规格)
# 然后下载下面的所有文件|-| 以太网| 2 x PCIe 2.5G 以太网口(RTL8125BG )|-| 40pin扩展口| 用于扩展UART、I2C、SPI、CAN、PWM、GPIO接口|-| PCIe M.2 M-KEY| PCIe 3.0 x 4 lanes,用于接2280的NVMe SSD固态硬盘|-| PCIe M.2 E-KEY| 包含PCIe 2.0 x 1/PCM/UART/USB2.0接口,支持2230的Wi-Fi6 /BT模块|-| 按键| 1个MaskROM键,1个RECOVERY键,1个开关机键|-| 供电| 支持Type-C供电,5V@4A|-| 红外接收器| 1个红外接收器|-| LED| RGB LED三色指示灯|-| 风扇接口| 2p in,1.25mm规格,用于接5V风扇,支持PWM控制开关和转速|-| RTC电池接口| 2pin,1.25mm规格,用于给RTC模块供电|-| 调试| 3pin调试串口(UART)|-| 支持的操作系统| Orangepi OS(Droid)、Orangepi OS(Arch)、Orangepi OS(OH)、Ubuntu20.04、Ub untu22.04、Debian11、Debian12、OpenWRT和Android12等|-| 外观规格介绍||-| 产品尺寸| 100mm*75mm|-| 重量| 86.5g|-| ! [[media%20/image3.png|橙子LOGO-透明 (6)]]{w idth=“0.269444 44444444443in” hei ght=“0.3152777 7777777777in”}
[[File:media/4828a75a2a73dd5e1f4ea5dcb0a8e3e8.png]]'''ra ngePi™是深圳市 迅龙软件有限公 司的注册商标'''
'''注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。'''||}
# 然后从[http:<span id="orange-pi-5-plus的顶层视图和底层视图"><//www.orangepi.cn/html/serviceAndSupport/index.html '''span>== Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以“'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上Pi 5 Plus的顶层视图和底层视图 ==
'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载“TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。顶层视图:'''
[[File:media/523a42e43bc947bbb3d03d565485dbb8.png]]<div class="figure">
# 然后用解压软件解压'''DriverAssitant_v5[[File:media/image4.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可jpeg|486x342px|Orange-Pi-5-PLUS-1]]
[[File:media</3abe751bd0c4c5e9be6a83f839a1e4c2.png]]div>'''底层视图:'''
# 打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示## 点击“'''驱动安装'''”按钮<div class="figure">
[[File:media/bc5fc637f8588abefa4f2ff7e0dc2683image5.pngjpeg|495x329px|Orange-Pi-5-PLUS-2]]
# 等待一段时间后,会弹出窗口提示“'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</div><span id="orange-pi-5-plus的接口详情图"></span>== Orange Pi 5 Plus的接口详情图 ==
[[File:media/48720c90a698617c0f884059ac1d6885.png]]<div class="figure">
# 然后解压'''RKDevTool_Release_v2[[File:media/image6.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可jpeg|477x790px|d33968888c1840571eb373aa98d167ac]]
[[File:media</c20745924f6e330c0bc60639e5ee8c1b.png]]div>= '''开发板使用介绍''' =
# 打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示“'''没有发现设备'''”== 准备需要的配件 ==
<ol style="list-style-type: decimal;"><li><p>TF卡,最小16GB容量(推荐32GB或以上)的'''class10'''级或以上的高速闪迪卡</p><p>[[File:media/ca4b9e37ca9d9cce3f888c4278bd3726image7.png|124x96px]]</p></li><li><p>TF卡读卡器,用于将镜像烧录到TF卡中</p><p>[[File:media/image8.png|139x106px]]</p></li><li><p>HDMI接口的显示器</p><p>[[File:media/image9.png|313x239px]]</p></li><li><p>HDMI转HDMI连接线,用于将开发板连接到HDMI显示器或者电视进行显示</p><p>[[File:media/image10.png|199x129px]]</p><p>'''注意,如果想接4K或者8K显示器,请确保HDMI线支持4K或者8K视频显示。'''</p></li><li><p>Type-C转HDMI线,通过Type-C接口将开发板连接到HDMI显示器或者电视进行显示</p><div class="figure">
# 然后开始烧录Linux镜像到eMMC中## 首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示[[File:media/image11.jpeg|243x166px|IMG_256]]
[[File:media</293482d42e80a8b3e2962b40e834bb41div></li><li><p>Type-C转USB转接头,用于通过Type-C接口连接USB存储设备或者鼠标键盘等USB设备('''开发板上有2个USB3.png]]0 HOST接口和2个USB2.0 HOST接口,此配件一般用不到''')</p><div class="figure">
# 确保开发板没有插入TF卡,没有连接电源## 然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:[[File:media/image12.jpeg|245x166px|98F5D70E2C9B3673E8ECE4B8ABDDFD80]]
[[File:media</b5c295a072c9e13167488051a2a2cb04div></li><li><p>10.png]]1寸MIPI屏幕,用于显示开发板的系统界面(此屏幕和OPi5/OPi5B通用)</p><div class="figure">
# 然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了[[File:media/image13.jpeg|223x203px|IMG_7546]]
</div></li><li><p>电源适配器,Orange Pi 5 Plus建议使用5V/4A的Type-C电源供电</p><p>[[File:media/image14.png|274x194px]]</p><p>'''开发板上有两个长得一样的Type-C接口,其中网口旁边竖着的那个才是电源接口,另外那个Type-C接口是没有供电功能的,请别接错了。'''</p><p>[[File:media/image15.png|262x234px]]</p><p>'''开发板的Type-C电源接口不支持PD协商功能,只支持固定的5V电压输入。'''</p></li><li><p>USB接口的鼠标和键盘,只要是标准USB接口的鼠标和键盘都可以,鼠标和键盘可以用来控制Orange Pi开发板</p><p>[[File:media/image16.png|266x220px]]</p></li><li><p>USB摄像头</p><p>[[File:media/image17.png|331x191px]]</p></li><li><p>5V的散热风扇。如下图所示,开发板上有用于接散热风扇的接口,接口规格为'''2pin 1.25mm间距'''</p><p>'''开发板上的风扇可以通过PWM来调节转速和开关。'''</p><p>[[File:media/image18.png|440x169px]]</p></li><li><p>网线,用于将开发板连接到因特网</p><p>[[File:media/image19.png|143x112px]]</p></li><li><p>Type-C接口的数据线,用于烧录镜像、使用ADB等功能</p><p>[[File:media/image20.png|143x113px]]</p></li><li><p>红外遥控器</p><p>[[File:media/image21.png|152x143px]]</p><p>'''注意,空调遥控或者电视机的遥控是无法控制Orange Pi开发板的,Orange Pi提供的操作系统默认只能保证Orange Pi提供的遥控器才可以使用。'''</p></li><li><p>1300万MIPI接口的OV13850摄像头(和OPi5/OPi5B通用)</p><p>[[File:media/1f65f9666af69c591813b5597e806ccbimage22.png|268x151px]]</p></li><li><p>1300万MIPI接口的OV13855摄像头(和OPi5/OPi5B通用)</p><p>[[File:media/image23.png|253x150px]]</p></li><li><p>M.2 M-KEY 2280规格的NVMe SSD固态硬盘,PCIe接口的规格为PCIe3.0x4</p><p>[[File:media/image24.png|358x104px]]</p></li><li><p>eMMC扩展模块('''待添加实物图片''')</p><p>'''开发板上插入eMMC模块的位置如下图所示:'''</p><p>[[File:media/image25.png|317x144px]]</p></li><li><p>RTC电池,接口为2pin,1.25mm间距</p><p>[[File:media/image26.png|250x134px]]</p><p>'''开发板上接RTC电池接口的位置如下图所示:'''</p><p>[[File:media/image27.png|344x126px]]</p></li><li><p>喇叭,接口为2pin,1.25mm间距</p><p>[[File:media/image28.png|200x138px]]</p><p>'''开发板上接喇叭的接口位置如下图所示:'''</p><p>[[File:media/image29.png|312x158px]]</p></li><li><p>配套外壳('''待添加图片和组装方法''')</p></li><li><p>'''3.3V'''的USB转TTL模块和杜邦线,使用串口调试功能时,需要USB转TTL模块和杜邦线来连接开发板和电脑</p><p>[[File:media/image30.png|217x89px|G7U7JZX(V`L$`A6864]38$P]] [[File:media/image31.png|305x110px]]</p></li><li><p>安装有Ubuntu和Windows操作系统的个人电脑</p></li></ol>
# 如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示“'''发现一个MASKROM设备'''”{| class="wikitable"|-| style="text-align: left;"| 1| style="text-align: left;"| Ubuntu22.04 PC| style="text-align: left;"| 可选,用于编译Linux源码|-| style="text-align: left;"| 2| style="text-align: left;"| Windows PC| style="text-align: left;"| 用于烧录Android和Linux镜像|}
[[File:media/18276e05fbda6e29cb92f7582ba887d4.png]]== 下载开发板的镜像和相关的资料 ==
# 然后将鼠标光标放在下面的这片区域中中文版资料的下载网址为:
[[File'''http:media/86a56c049f0d8807cf1685e7b89306eb/www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.png]]html'''
# 然后点击鼠标右键会弹出下图所示的选择界面[[File:media/image32.png|344x274px]]
<ol start="2" style="list-style-type: decimal;"><li><p>英文版资料的下载网址为:</p><p>'''http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html'''</p><p>[[File:media/e21e70e17552c5c4b75c570c4c167464image33.png|361x300px]]</p></li><li><p>资料主要包含</p><ol style="list-style-type: lower-alpha;"><li><p>'''用户手册和原理图:'''保存在百度云盘和谷歌网盘上</p></li><li><p>'''官方工具:'''主要包括开发板使用过程中需要用到的软件</p></li><li><p>'''Android源码''':保存在百度云盘和谷歌网盘上</p></li><li><p>'''Linux源码''':保存在Github上</p></li><li><p>'''OpenWRT源码''':保存在Github上</p></li><li><p>'''Android镜像''':保存在百度云盘和谷歌网盘上</p></li><li><p>'''Ubuntu镜像''':保存在百度云盘和谷歌网盘上</p></li><li><p>'''Debian镜像''':保存在百度云盘和谷歌网盘上</p></li><li><p>'''Orange Pi OS镜像''':保存在百度云盘和谷歌网盘上</p></li><li><p>'''OpenWRT镜像''':保存在百度云盘和谷歌网盘上</p></li></ol></li></ol>
# 然后选择'''导入配置'''选项<span id="基于windows-pc将linux镜像烧录到tf卡的方法"></span>== 基于Windows PC将Linux镜像烧录到TF卡的方法 ==
'''注意,这里说的Linux镜像具体指的是从[[Filehttp:media/02a57b0477b87251ffdaaf062e80025d/www.orangepi.cn/html/serviceAndSupport/index.png]html Orange Pi资料下载页面]下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。'''
# 然后选择前面下载的<span id="使用balenaetcher烧录linux镜像的方法"></span>=== '''MiniLoader使用'''文件夹中的balenaEtcher'''rk3588_linux_emmc.cfg'''配置文件,再点击'''打开烧录Linux镜像的方法'''===
<ol style="list-style-type: decimal;"><li><p>首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''级或'''class10'''级以上,建议使用闪迪等品牌的TF卡</p></li><li><p>然后使用读卡器把TF卡插入电脑</p></li><li><p>从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般在2GB以上。</p><p>'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''</p><p>[[File:media/4bdabe5bde016a30d5388e1c13d78442image34.png|227x65px]]</p></li><li><p>然后下载Linux镜像的烧录软件——'''balenaEtcher''',下载地址为:</p></li></ol>
# 然后点击[https://www.balena.io/etcher/ '''确定https://www.balena.io/etcher/''']
<ol start="5" style="list-style-type: decimal;"><li><p>进入balenaEtcher下载页面后,点击绿色的下载按钮会跳到软件下载的地方</p><p>[[File:media/image35.png|575x276px]]</p></li><li><p>然后可以选择下载balenaEtcher的Portable版本的软件,Portable版本无需安装,双击打开就可以使用</p><p>[[File:media/f553629a04bdec64defd25641f0aeeffimage36.png|576x213px]]</p></li><li><p>如果下载的是需要安装版本的balenaEtcher,请先安装再使用。如果下载的Portable版本balenaEtcher,直接双击打开即可,打开后的balenaEtcher界面如下图所示:</p><p>[[File:media/image37.png|483x304px]]</p></li></ol>
# 然后点击下图所示的位置'''打开balenaEtcher时如果提示下面的错误:'''
[[File:media/4069975205588ba8282c74d28712b4a9image38.png|261x205px]]
# 再选择前面下载的'''MiniLoader'''文件夹中'''MiniLoaderAll.bin''',再点击'''打开请选择balenaEtcher后点击右键,然后选择以管理员身份运行。'''
[[File:media/3679d114ef42d45c105bc92d6c74e07aimage39.png|375x51px]]
# 然后点击下图所示的位置<ol start="8" style="list-style-type: decimal;"><li><p>使用balenaEtcher烧录Linux镜像的具体步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>首先选择要烧录的Linux镜像文件的路径</p></li><li><p>然后选择TF卡的盘符</p></li><li><p>最后点击Flash就会开始烧录Linux镜像到TF卡中</p><p>[[File:media/image40.png|501x281px]]</p></li></ol></li><li><p>balenaEtcher烧录Linux镜像的过程显示的界面如下图所示,另外进度条显示紫色表示正在烧录Linux镜像到TF卡中</p><p>[[File:media/image41.png|506x317px]]</p></li><li><p>Linux镜像烧录完后,balenaEtcher默认还会对烧录到TF卡中的镜像进行校验,确保烧录过程没有出问题。如下图所示,显示绿色的进度条就表示镜像已经烧录完成,balenaEtcher正在对烧录完成的镜像进行校验</p><p>[[File:media/image42.png|519x325px]]</p></li><li><p>成功烧录完成后balenaEtcher的显示界面如下图所示,如果显示绿色的指示图标说明镜像烧录成功,此时就可以退出balenaEtcher,然后拔出TF卡插入到开发板的TF卡槽中使用了</p><p>[[File:media/image43.png|523x324px]]</p></li></ol>
[[File:media<span id="使用rkdevtool烧录linux镜像到tf卡中的方法"></5f60d2fd6cee4d10da6c84863661ad35.png]]span>=== 使用RKDevTool烧录Linux镜像到TF卡中的方法 ===
# <ol style="list-style-type: decimal;"><li><p>首先需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:media/image20.png|193x196px]]</p></li><li><p>还需要准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''级或'''class10'''级以上,建议使用闪迪等品牌的TF卡</p></li><li><p>然后将TF卡插入开发板的卡槽中</p><p>[[File:media/image44.png|300x87px]]</p></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和'''MiniLoader'''以及烧录工具'''RKDevTool_Release_v2.96.zip''',请确保下载的'''RKDevTool'''工具的的版本为'''v2.96'''</p><ol style="list-style-type: lower-alpha;"><li><p>在[http://www.orangepi.cn/html/serviceAndSupport/index.html Orange Pi &gt; 的资料下载页面]首先选择'''官方工具''',然后进入下面的文件夹中</p><p>[[File:media/image45.png|366x77px]]</p></li><li><p>然后下载下面的所有文件</p><p>[[File:media/image46.png|324x116px]]</p><p>'''注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。'''</p></li></ol></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</p><p>'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''</p><p>[[File:media/image34.png|227x65px]]</p></li><li><p>然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可</p><p>[[File:media/image47.png|575x169px]]</p></li><li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>点击”'''驱动安装'''”按钮</p><p>[[File:media/image48.png|300x157px]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:media/image49.png|429x223px]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可</p><p>[[File:media/image50.png|575x170px]]</p></li><li><p>打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:media/image51.png|575x270px]]</p></li><li><p>然后开始烧录Linux镜像到TF卡中</p><ol style="list-style-type: lower-alpha;"><li><p>首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示</p><p>[[File:media/image52.png|576x163px]]</p></li><li><p>确保开发板没有连接Type-C电源</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:media/image53.png|576x130px]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了。Type-C电源接口的位置如下所示:</p><p>[[File:media/image54.png|575x176px]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p><p>[[File:media/image55.png|575x270px]]</p></li><li><p>然后将鼠标光标放在下面的这片区域中</p><p>[[File:media/image56.png|575x273px]]</p></li><li><p>然后点击鼠标右键会弹出下图所示的选择界面</p><p>[[File:media/image57.png|575x270px]]</p></li><li><p>然后选择'''导入配置'''选项</p><p>[[File:media/image58.png|575x270px]]</p></li><li><p>然后选择前面下载的'''MiniLoader'''文件夹中的'''rk3588_linux_tfcard.cfg'''配置文件,再点击'''打开'''</p><p>[[File:media/image59.png|411x193px]]</p></li><li><p>然后点击'''确定'''</p><p>[[File:media/image60.png|575x270px]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:media/image61.png|575x270px]]</p></li><li><p>再选择前面下载的'''MiniLoader'''文件夹中'''MiniLoaderAll.bin''',再点击'''打开'''</p><p>[[File:media/image62.png|428x201px]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:media/image63.png|575x270px]]</p></li><li><p>然后选择想要烧录的linux镜像的路径,再点击'''打开'''</p><p>[[File:media/image64.png|575x270px]]</p></li><li><p>然后请勾选上'''强制按地址写'''选项</p><p>[[File:media/image65.png|575x270px]]</p></li><li><p>再点击执行按钮就会开始烧录linux镜像到开发板的tf卡中</p><p>[[File:media/image66.png|575x270px]]</p></li><li><p>linux镜像烧录完后的显示log如下图所示</p><p>[[File:media/image67.png|575x270px]]</p></li><li><p>烧录完linux镜像到tf卡中后,linux系统会自动启动。</p></li></ol></li></ol>
[[File:media<span id="使用win32diskimager烧录linux镜像的方法"></2a719a7cdf76bfc55d66425871d20080.png]]span>=== '''使用Win32Diskimager烧录Linux镜像的方法''' ===
# 然后请勾选上<ol style="list-style-type: decimal;"><li><p>首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为'''强制按地址写class10'''选项级或'''class10'''级以上,建议使用闪迪等品牌的TF卡</p></li><li><p>然后使用读卡器把TF卡插入电脑</p></li><li><p>接着格式化TF卡</p><ol style="list-style-type: lower-alpha;"><li>可以使用'''SD Card Formatter'''这个软件格式化TF卡,其下载地址为</li></ol></li></ol>
[[Filehttps:media/b3ac884db8cce87a2ebe03807fac10bf/www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip '''https://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.png]zip''']
# 再点击执行按钮就会开始烧录linux镜像到开发板的eMMC中<ol start="2" style="list-style-type: lower-alpha;"><li><p>下载完后直接解压安装即可,然后打开软件</p></li><li><p>如果电脑只插入了TF卡,则”'''Select card'''”一栏中会显示TF卡的盘符,如果电脑插入了多个USB存储设备,可以通过下拉框选择TF卡对应的盘符</p><div class="figure">
[[File:media/f0a83b5f00c165d570ec67b18bfea528image68.png|209x228px|选区_199]]
# linux镜像烧录完后的显示log如下图所示</div></li><li><p>然后点击”'''Format'''”,格式化前会弹出一个警告框,选择”'''是(Y)'''”后就会开始格式化</p></li></ol>
[[File:media/cbfa85c214ab9bd71d88b43d0bf3a0fbimage69.png|304x147px]]
# 烧录完linux镜像到eMMC中后,linux系统会自动启动。 <span idol start="使用dd命令烧录linux镜像到emmc中的方法5" style="list-style-type: lower-alpha;"><li><p>格式化完TF卡后会弹出下图所示的信息,点击确定即可</spanp>=== 使用dd命令烧录Linux镜像到eMMC中的方法 ===<p>[[File:media/image70.png|186x149px]]</p></li></ol>
<!-- --><ol start="4" style="list-style-type: decimal;"><li><p>从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''注意,这里说的Linux镜像具体指的是从Orange Pi资料下载页面下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</p><p>'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''</p><p>[[File:media/image34.png|227x65px]]</p></li><li><p>使用'''Win32Diskimager'''烧录Linux镜像到TF卡</p><ol style="list-style-type: lower-alpha;"><li>Win32Diskimager的下载页面为</li></ol></li></ol>
# 开发板预留了eMMC模块的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:[http://sourceforge.net/projects/win32diskimager/files/Archive/ '''http://sourceforge.net/projects/win32diskimager/files/Archive/''']
<ol start="2" style="list-style-type: lower-alpha;"><li><p>下载完后直接安装即可,Win32Diskimager界面如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>首先选择镜像文件的路径</p></li><li><p>然后确认下TF卡的盘符和”'''设备'''”一栏中显示的一致</p></li><li><p>最后点击”'''写入'''”即可开始烧录</p><p>[[File:media/509c9654850ee23aaabfc364310b90d9image71.png|297x206px]]</p></li></ol></li><li><p>镜像写入完成后,点击”'''退出'''”按钮退出即可,然后就可以拔出TF卡插到开发板中启动</p></li></ol>
# 使用dd命令烧录linux镜像到eMMC中需要借助TF卡来完成,所以首先需要将linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入linux系统。烧录Linux镜像到TF卡的方法请见[[#_基于Windows%20PC将Linux镜像烧录到TF卡的方法|'''基于Windows PC将Linux镜像烧录到TF卡的方法''']]和[[#_基于Ubuntu%20PC将Linux镜像烧录到TF卡的方法|'''<span id="基于ubuntu-pc将linux镜像烧录到tf卡的方法"></span>== 基于Ubuntu PC将Linux镜像烧录到TF卡的方法''']]两小节的说明。# 使用TF卡启动linux系统后,我们首先将解压后的linux镜像文件(从官网下载的Debian、Ubuntu镜像或者OPi Arch镜像)上传到TF卡中。上传linux镜像文件到开发板中的方法请参考[[#_上传文件到开发板Linux系统中的方法|'''上传文件到开发板Linux系统中的方法''']]小节的说明。# 上传完镜像到开发板的linux系统中后,我们再在开发板linux系统的命令行中进入镜像文件的存放路径,比如,我将开发板的linux镜像存放在'''/home/orangepi/Desktop'''目录下了,然后进入'''/home/orangepi/Desktop'''目录就能看到上传的镜像文件了。==
orangepi@orangepi:~$ '''cd 注意,这里说的Linux镜像具体指的是从[http:/home/www.orangepi.cn/html/serviceAndSupport/Desktopindex.html Orange Pi资料下载页面]下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像,Ubuntu PC指的是安装了Ubuntu系统的个人电脑。'''
orangepi@orangepi:~/Desktop$ # 首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为'''lsclass10'''级或'''class10'''级以上,建议使用闪迪等品牌的TF卡# 然后使用读卡器把TF卡插入电脑# 下载balenaEtcher软件,下载地址为
Orangepi5plus_x[https://www.xbalena.x_debian_bullseye_desktop_xfce_linux5io/etcher/ '''https://www.10balena.110.imgio/etcher/''']
<ol start="4" style="list-style-type: decimal;"><li><p>进入balenaEtcher下载页面后,点击绿色的下载按钮会跳到软件下载的地方</p><p>[[File:media/image35.png|575x276px]]</p></li><li><p>然后选择下载Linux版本的软件即可</p><p>[[File:media/image72.png|575x218px]]</p></li><li><p>从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''怎么进入开发板linux系统的命令行?Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</p><p>'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''</p><p>[[File:media/image34.png|227x65px]]</p><p>7z结尾的压缩包的解压命令如下所示:</p><p>test@test:~$ '''7z x orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.7z'''</p><p>test@test:~$ '''ls orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.*'''</p><p>orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.7z orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.sha #校验和文件</p><p>orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.img #镜像文件</p><p>如果下载的是OpenWRT镜像,压缩包是以gz结尾的,解压命令如下所示:</p><p>test@test:~$ '''gunzip openwrt-aarch64-opi5plus-23.05-linux-5.10.110-ext4.img.gz'''</p><p>test@test:~$ '''ls openwrt-aarch64-opi5plus-23.05-linux-5.10.110-ext4.img'''</p><p>'''openwrt-aarch64-opi5plus-23.05-linux-5.10.110-ext4.img''' #镜像文件</p></li><li><p>解压镜像后可以先用'''sha256sum -c *.sha'''命令计算下校验和是否正确,如果提示'''成功'''说明下载的镜像没有错,可以放心的烧录到TF卡,如果提示'''校验和不匹配'''说明下载的镜像有问题,请尝试重新下载</p><p>test@test:~$ '''sha256sum -c *.sha'''</p><p>orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.img: OK</p><p>如果下载的是OpenWRT镜像,要对压缩包进行校验,不要解压后再校验</p><p>test@test:~$ '''sha256sum -c openwrt-aarch64-opi5plus-23.04-linux-5.10.110-ext4.img.gz.sha'''</p><p>openwrt-aarch64-opi5plus-23.04-linux-5.10.110-ext4.img.gz: OK</p></li><li><p>然后在Ubuntu PC的图形界面双击'''balenaEtcher-1.14.3-x64.AppImage'''即可打开balenaEtcher('''无需安装'''),balenaEtcher打开后的界面显示如下图所示</p><p>[[File:media/image73.png|423x251px]]</p></li><li><p>使用balenaEtcher烧录Linux镜像的具体步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>首先选择要烧录的Linux镜像文件的路径</p></li><li><p>然后选择TF卡的盘符</p></li><li><p>最后点击Flash就会开始烧录Linux镜像到TF卡中</p><p>[[File:media/image74.png|431x278px]]</p></li></ol></li><li><p>balenaEtcher烧录Linux镜像的过程显示的界面如下图所示,另外进度条显示紫色表示正在烧录Linux镜像到TF卡中</p><p>[[File:media/image75.png|576x247px]]</p></li></ol>
# '''使用串口登录终端的方法请参考'''<!-- --><ol start="12" style="list-style-type: decimal;"><li><p>Linux镜像烧录完后,balenaEtcher默认还会对烧录到TF卡中的镜像进行校验,确保烧录过程没有出问题。如下图所示,显示绿色的进度条就表示镜像已经烧录完成,balenaEtcher正在对烧录完成的镜像进行校验</p><p>[[#_调试串口的使用方法File:media/image76.png|'''调试串口的使用方法'''576x252px]]'''一小节的说明。'''</p></li><li><p>成功烧录完成后balenaEtcher的显示界面如下图所示,如果显示绿色的指示图标说明镜像烧录成功,此时就可以退出balenaEtcher,然后拔出TF卡插入到开发板的TF卡槽中使用了</p># '''使用ssh远程登录linux系统请参考'''<p>[[#_SSH远程登录开发板File:media/image77.png|'''SSH远程登录开发板'''576x340px]]'''一小节的说明。'''# '''如果接了HDMI、LCD等显示屏幕,可以在桌面中打开一个命令行终端。'''# 接下来,我们先使用下面的命令确认下eMMC的设备节点</p></li></ol>
orangepi@orangepi:~<span id="烧录linux镜像到emmc中的方法"></Desktop$ '''ls /dev/mmcblk*boot0 | cut -c1-12'''span>== 烧录Linux镜像到eMMC中的方法 ==
'''<span id="使用rkdevtool烧录linux镜像到emmc中的方法"></dev/mmcblk1'''span>=== 使用RKDevTool烧录Linux镜像到eMMC中的方法 ===
# 然后我们可以使用dd命令清空下eMMC,注意'''of=注意,下面所有的操作都是在Windows电脑中进行的。'''参数后面请填入上面命令输出的结果
orangepi@orangepi:~/Desktop$ '''sudo dd bs=1M if=注意,这里说的Linux镜像具体指的是从[http:/dev/zero of=www.orangepi.cn/html/devserviceAndSupport/mmcblk1 count=1000 status=progressindex.html Orange Pi资料下载页面]下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。'''
<ol style="list-style-type: decimal;"><li><p>开发板预留了eMMC模块的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:</p><p>[[File:media/image78.png|307x141px]]</p></li><li><p>还需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:media/image20.png|150x152px]]</p></li><li><p>然后从[http://www.orangepi@.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和'''MiniLoader'''以及烧录工具'''RKDevTool_Release_v2.96.zip''',请确保下载的'''RKDevTool'''工具的的版本为'''v2.96'''</p><ol style="list-style-type: lower-alpha;"><li><p>在[http://www.orangepi.cn/html/serviceAndSupport/index.html Orange &gt; Pi的资料下载页面]首先选择官方工具,然后进入下面的文件夹中</p><p>[[File:media/image45.png|366x77px]]</p></li><li><p>然后下载下面的所有文件</p><p>[[File:media/image46.png|324x116px]]</p><p>'''注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。'''</p></li></ol></li><li><p>然后从[http:~/Desktop$ /www.orangepi.cn/html/serviceAndSupport/index.html '''sudo syncOrange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</p><p>'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''</p><p>[[File:media/image34.png|227x65px]]</p></li><li><p>然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可</p><p>[[File:media/image47.png|575x169px]]</p></li><li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>点击”'''驱动安装'''”按钮</p><p>[[File:media/image48.png|300x157px]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:media/image49.png|429x223px]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可</p><p>[[File:media/image50.png|575x170px]]</p></li><li><p>打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:media/image51.png|575x270px]]</p></li><li><p>然后开始烧录Linux镜像到eMMC中</p><ol style="list-style-type: lower-alpha;"><li><p>首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示</p><p>[[File:media/image52.png|576x163px]]</p></li><li><p>确保开发板没有插入TF卡,没有连接电源</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:media/image53.png|576x130px]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了</p><p>[[File:media/image54.png|575x176px]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p><p>[[File:media/image55.png|575x270px]]</p></li><li><p>然后将鼠标光标放在下面的这片区域中</p><p>[[File:media/image56.png|575x273px]]</p></li><li><p>然后点击鼠标右键会弹出下图所示的选择界面</p><p>[[File:media/image57.png|575x270px]]</p></li><li><p>然后选择'''导入配置'''选项</p><p>[[File:media/image58.png|575x270px]]</p></li><li><p>然后选择前面下载的'''MiniLoader'''文件夹中的'''rk3588_linux_emmc.cfg'''配置文件,再点击'''打开'''</p><p>[[File:media/image79.png|575x270px]]</p></li><li><p>然后点击'''确定'''</p><p>[[File:media/image80.png|575x270px]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:media/image81.png|575x270px]]</p></li><li><p>再选择前面下载的'''MiniLoader'''文件夹中'''MiniLoaderAll.bin''',再点击'''打开'''</p><p>[[File:media/image62.png|575x270px]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:media/image82.png|575x270px]]</p></li><li><p>然后选择想要烧录的linux镜像的路径,再点击'''打开'''</p><p>[[File:media/image64.png|575x270px]]</p></li><li><p>然后请勾选上'''强制按地址写'''选项</p><p>[[File:media/image83.png|575x270px]]</p></li><li><p>再点击执行按钮就会开始烧录linux镜像到开发板的eMMC中</p><p>[[File:media/image84.png|575x270px]]</p></li><li><p>linux镜像烧录完后的显示log如下图所示</p><p>[[File:media/image85.png|576x272px]]</p></li><li><p>烧录完linux镜像到eMMC中后,linux系统会自动启动。</p></li></ol></li></ol>
# 然后就可以使用dd命令烧录开发板的linux镜像到eMMC中## 下面的命令中 '''if<span id=''' 参数后面是要填写linux镜像存放的完整路径+Linux镜像的名字(比如'''"使用dd命令烧录linux镜像到emmc中的方法"></home/orangepi/Desktop/Linux镜像的名字''')。因为上面我们已经进入linux镜像的路径下了,所以只需要填写Linux镜像的名字的即可。span>## 下面命令中的linux镜像名请不要照抄,要替换为实际的镜像名(因为镜像的版本号可能会更新)。=== 使用dd命令烧录Linux镜像到eMMC中的方法 ===
'''sudo dd bs=1M if=Orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img of=/dev/mmcblk1 status=progress注意,这里说的Linux镜像具体指的是从Orange Pi资料下载页面下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。'''
<ol style="list-style-type: decimal;"><li><p>开发板预留了eMMC模块的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:</p><p>[[File:media/image78.png|312x143px]]</p></li><li><p>使用dd命令烧录linux镜像到eMMC中需要借助TF卡来完成,所以首先需要将linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入linux系统。烧录Linux镜像到TF卡的方法请见[[\l|'''sudo基于Windows PC将Linux镜像烧录到TF卡的方法''' ]]和[[\l|'''sync基于Ubuntu PC将Linux镜像烧录到TF卡的方法''']]两小节的说明。</p></li><li><p>使用TF卡启动linux系统后,我们首先将解压后的linux镜像文件(从官网下载的Debian、Ubuntu镜像或者OPi Arch镜像)上传到TF卡中。上传linux镜像文件到开发板中的方法请参考[[\l|'''上传文件到开发板Linux系统中的方法''']]小节的说明。</p></li><li><p>上传完镜像到开发板的linux系统中后,我们再在开发板linux系统的命令行中进入镜像文件的存放路径,比如,我将开发板的linux镜像存放在'''/home/orangepi/Desktop'''目录下了,然后进入'''/home/orangepi/Desktop'''目录就能看到上传的镜像文件了。</p><p>orangepi@orangepi:~$ '''cd /home/orangepi/Desktop'''</p><p>orangepi@orangepi:~/Desktop$ '''ls'''</p><p>Orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img</p><p>'''怎么进入开发板linux系统的命令行?'''</p></li></ol>
<!-- --># '''注意,如果上传的是 .7z或者.xz 结尾linux镜像压缩文件,使用dd命令烧录前请记得先解压。使用串口登录终端的方法请参考[[\l|调试串口的使用方法]]一小节的说明。'''# '''使用ssh远程登录linux系统请参考[[\l|SSH远程登录开发板]]一小节的说明。'''# '''dd命令的所有参数的详细说明和更多用法可以在linux系统中执行man dd命令来查看。如果接了HDMI、LCD等显示屏幕,可以在桌面中打开一个命令行终端。'''
# <!-- --><ol start="5" style="list-style-type: decimal;"><li><p>接下来,我们先使用下面的命令确认下eMMC的设备节点</p><p>orangepi@orangepi:~/Desktop$ '''ls /dev/mmcblk*boot0 | cut -c1-12'''</p><p>'''/dev/mmcblk1'''</p></li><li><p>然后我们可以使用dd命令清空下eMMC,注意'''of='''参数后面请填入上面命令输出的结果</p><p>orangepi@orangepi:~/Desktop$ '''sudo dd bs=1M if=/dev/zero of=/dev/mmcblk1 count=1000 status=progress'''</p><p>orangepi@orangepi:~/Desktop$ '''sudo sync'''</p></li><li><p>然后就可以使用dd命令烧录开发板的linux镜像到eMMC中</p><ol style="list-style-type: lower-alpha;"><li><p>下面的命令中 '''if=''' &gt; 参数后面是要填写linux镜像存放的完整路径+Linux镜像的名字(比如'''/home/orangepi/Desktop/Linux镜像的名字''')。因为上面我们已经进入linux镜像的路径下了,所以只需要填写Linux镜像的名字的即可。</p></li><li><p>下面命令中的linux镜像名请不要照抄,要替换为实际的镜像名(因为镜像的版本号可能会更新)。</p><p>'''sudo dd bs=1M if=Orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img of=/dev/mmcblk1 status=progress'''</p><p>'''sudo''' '''sync'''</p><p>'''注意,如果上传的是 .7z或者.xz 结尾linux镜像压缩文件,使用dd命令烧录前请记得先解压。'''</p><p>'''dd命令的所有参数的详细说明和更多用法可以在linux系统中执行man dd命令来查看。'''</p></li></ol></li><li><p>当成功烧录开发板的linux镜像到eMMC后,此时就可以使用'''poweroff'''命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动eMMC中的linux系统了。</p></li></ol>
<span id="烧录linux镜像到spiflashnvme-ssd中的方法"></span>
== 烧录Linux镜像到SPIFlash+NVMe SSD中的方法 ==
'''注意,这里说的Linux镜像具体指的是从'''[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi资料下载页面''']'''下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。'''
'''注意,下面所有的操作都是在Windows电脑中进行的。'''
=== 使用RKDevTool烧录的方法 ===
# <ol style="list-style-type: decimal;"><li><p>首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。</p><p>[[File:media/image24.png|261x75px]]</p></li><li><p>然后把NVMe SSD插入下图所示的开发板的M.2 PCIe接口,并固定好</p><p>[[File:media/image86.png|259x104px]]</p></li><li><p>SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</p><p>[[File:media/image87.png|340x94px]]</p></li><li><p>然后需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:media/image20.png|123x124px]]</p></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和'''MiniLoader'''以及烧录工具'''RKDevTool_Release_v2.96.zip''',请确保下载的'''RKDevTool'''工具的的版本为'''v2.96'''</p><ol style="list-style-type: lower-alpha;"><li><p>在[http://www.orangepi.cn/html/serviceAndSupport/index.html Orange &gt; Pi的资料下载页面]首先选择'''官方工具''',然后进入下面的文件夹中</p><p>[[File:media/image45.png|366x77px]]</p></li><li><p>然后下载下面的所有文件</p><p>[[File:media/image46.png|324x116px]]</p><p>'''注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。'''</p></li></ol></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</p><p>'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''</p><p>[[File:media/image34.png|227x65px]]</p></li><li><p>然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可</p><p>[[File:media/image47.png|575x169px]]</p></li><li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>点击”'''驱动安装'''”按钮</p><p>[[File:media/image48.png|300x157px]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:media/image49.png|429x223px]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可</p><p>[[File:media/image50.png|575x170px]]</p></li><li><p>打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:media/image51.png|575x270px]]</p></li><li><p>然后开始烧录Linux镜像到SSD中</p><ol style="list-style-type: lower-alpha;"><li><p>首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示</p><p>[[File:media/image52.png|576x163px]]</p></li><li><p>确保开发板没有连接电源,'''并且没有插入TF卡或者eMMC模块'''</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:media/image53.png|576x130px]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了。Type-C电源接口的位置如下所示:</p><p>[[File:media/image54.png|575x176px]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p><p>[[File:media/image55.png|575x270px]]</p></li><li><p>然后将鼠标光标放在下面的这片区域中</p><p>[[File:media/image56.png|575x273px]]</p></li><li><p>然后点击鼠标右键会弹出下图所示的选择界面</p><p>[[File:media/image57.png|575x270px]]</p></li><li><p>然后选择'''导入配置'''选项</p><p>[[File:media/image58.png|575x270px]]</p></li><li><p>然后进入前面下载的'''MiniLoader'''文件夹中,再进入'''pcie_loader'''文件夹中,然后选择'''rk3588_linux_pcie.cfg'''配置文件,再点击'''打开'''</p><p>[[File:media/image88.png|575x212px]]</p></li><li><p>然后点击'''确定'''</p><p>[[File:media/image89.png|575x270px]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:media/image90.png|575x270px]]</p></li><li><p>再选择前面下载的'''MiniLoader'''文件夹中'''MiniLoaderAll.bin''',再点击'''打开'''</p><p>[[File:media/image62.png|575x270px]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:media/image91.png|575x270px]]</p></li><li><p>然后进入前面下载的'''MiniLoader'''文件夹中,再进入'''pcie_loader'''文件夹中,然后选择'''uboot'''文件,再点击'''打开'''</p><p>[[File:media/image92.png|576x213px]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:media/image93.png|575x270px]]</p></li><li><p>然后选择想要烧录的linux镜像的路径,再点击'''打开'''</p><p>[[File:media/image64.png|575x270px]]</p></li><li><p>然后请勾选上'''强制按地址写'''选项</p><p>[[File:media/image94.png|575x270px]]</p></li><li><p>再点击执行按钮就会开始烧录linux镜像到SSD中</p><p>[[File:media/image95.png|575x270px]]</p></li><li><p>linux镜像烧录完后的显示log如下图所示</p><p>[[File:media/image96.png|576x272px]]</p></li><li><p>然后烧录启动SSD中linux系统需要的uboot镜像到SPIFlash,'''首先再次进入MaskROM模式'''</p></li><li><p>然后选择'''导入配置'''选项</p><p>[[File:media/image97.png|575x270px]]</p></li><li><p>然后选择前面下载的'''MiniLoader'''文件夹中的'''rk3588_linux_spiflash.cfg'''配置文件,再点击'''打开'''</p><p>[[File:media/image98.png|575x270px]]</p></li><li><p>然后点击'''确定'''</p><p>[[File:media/image99.png|575x270px]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:media/image100.png|575x270px]]</p></li><li><p>再选择前面下载的'''MiniLoader'''文件夹中'''MiniLoaderAll.bin''',再点击'''打开'''</p><p>[[File:media/image62.png|575x270px]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:media/image101.png|575x270px]]</p></li><li><p>再选择前面下载的'''MiniLoader'''文件夹中'''rkspi_loader''',再点击'''打开'''</p><p>[[File:media/image102.png|575x270px]]</p></li><li><p>然后请确保'''强制按地址写'''选项已勾上</p><p>[[File:media/image103.png|575x270px]]</p></li><li><p>再点击'''执行'''按钮就会开始烧录u-boot镜像到SPIFlash中</p><p>[[File:media/image104.png|575x270px]]</p></li><li><p>u-boot镜像烧录完后的显示log如下图所示</p><p>[[File:media/image105.png|575x270px]]</p></li><li><p>u-boot镜像烧录完后会自动启动SPIFlash+PCIe &gt; SSD中的linux系统,如果没有正常启动,请重新上电试下。</p></li></ol></li></ol>
[[File:media/6b09ed51c8f4954ed95742cd63b21c74.png]]=== 使用dd命令烧录的方法 ===
# <ol style="list-style-type: decimal;"><li><p>首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。</p><p>[[File:media/image24.png|306x89px]]</p></li><li><p>然后把NVMe SSD插入下图所示的开发板的M.2 PCIe接口,并固定好</p><p>[[File:media/image86.png|274x110px]]</p></li><li><p>SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</p><p>[[File:media/image87.png|416x115px]]</p></li><li><p>烧录linux镜像到SPIFlash+NVMe SSD中需要借助TF卡来完成,所以首先需要将linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入linux系统。烧录Linux镜像到TF卡的方法请见[[\l|'''基于Windows PC将Linux镜像烧写到TF卡的方法''']]和[[\l|'''基于Ubuntu PC将Linux镜像烧写到TF卡的方法''']]两小节的说明。</p></li><li><p>使用TF卡启动linux系统后,我们首先烧录u-boot镜像到SPI Flash中</p><ol style="list-style-type: lower-alpha;"><li><p>先运行下'''nand-sata-install''','''普通用户记得加sudo权限'''</p><p>orangepi@orangepi:~$ '''sudo nand-sata-install'''</p></li><li><p>然后选择'''7 Install/Update ther bootloader on SPI Flash'''</p></li></ol></li></ol>
[[File:media/eff81166492ce92b30912818342b0d5b.png]]<div class="figure">
# SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置[[File:media/image106.png|355x174px|IMG_256]]
[[File</div><ol start="3" style="list-style-type:medialower-alpha;"><li>然后选择'''&lt;Yes&gt;'''</li></815ee597fcdbd832b687cc3df51795b6.png]]ol>
# 然后需要准备一根品质良好的Type-C接口的数据线<div class="figure">
[[File:media/d84ad9c1e0e447425ddd86cfefafca1eimage107.png|356x179px|IMG_256]]
# 然后从[http</div><ol start="4" style="list-style-type://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面lower-alpha;"><li>然后请耐心等待烧录完成,烧录完成后显示如下所示(左下角会显示一个''']下载瑞芯微驱动Done'''DriverAssitant_v5.12.zip'''和'''MiniLoader'''以及烧录工具'''RKDevTool_Release_v2.96.zip''',请确保下载的'''RKDevTool'''工具的的版本为'''v2.96'''## 在[http://www.orangepi.cn/html):</serviceAndSupportli></index.html Orange Pi的资料下载页面]首先选择'''官方工具''',然后进入下面的文件夹中ol>
[[File:media/816e86dd538ef9fa9cb9cb253871f73fimage108.png|406x199px]]
# 然后下载下面的所有文件'''OPi OS Arch系统中没有nand-sata-install这个脚本,请使用下面的命令将u-boot镜像到SPI Flash中:'''
[[File:mediaorangepi@orangepi ~]$ '''sudo dd if=/4828a75a2a73dd5e1f4ea5dcb0a8e3e8boot/rkspi_loader.png]]img of=/dev/mtdblock0'''
<ol start="6" style="list-style-type: decimal;"><li><p>然后将linux镜像文件(从官网下载的Debian、Ubuntu或者OpenWRT镜像)上传到TF卡中。上传linux镜像文件到开发板中的方法请参考[[\l|'''上传文件到开发板Linux系统中的方法''']]小节的说明。</p><p>'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''</p><p>[[File:media/image34.png|227x65px]]</p></li><li><p>上传完镜像到开发板的linux系统中后,我们再在开发板linux系统的命令行中进入镜像文件的存放路径,比如,我将开发板的linux镜像存放在'''/home/orangepi/Desktop''注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。'目录下了,然后进入'''/home/orangepi/Desktop'''目录就能看到上传的镜像文件了。</p><p>orangepi@orangepi:~$ '''cd /home/orangepi/Desktop'''</p><p>orangepi@orangepi:~/Desktop$ '''ls'''</p><p>orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img</p><p>'''怎么进入开发板linux系统的命令行?'''</p></li></ol>
# 然后从<!-- --><ol start="4" style="list-style-type: decimal;"><li><p>'''使用串口登录终端的方法请参考[http://www.orangepi.cn[\l|调试串口的使用方法]]一小节的说明。'''</htmlp></serviceAndSupport/index.html li><li><p>'''Orange Pi的资料下载页面使用ssh远程登录linux系统请参考[[\l|SSH远程登录开发板]]一小节的说明。''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以“</p></li><li><p>'''.img如果接了HDMI、LCD等显示屏幕,可以在桌面中打开一个命令行终端。'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</p></li></ol>
<!-- --><ol start="8" style="list-style-type: decimal;"><li><p>接下来,我们先确认下NVMe SSD已经被开发板的linux正常识别了。如果NVMe SSD正常识别了的话,使用'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载“TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。sudo fdisk -l'''命令就能看到'''nvme'''相关的信息</p><p>orangepi@orangepi:~/Desktop$ '''sudo fdisk -l | grep &quot;nvme0n1&quot;'''</p><p>Disk /dev/nvme0n1: 1.86 TiB, 2048408248320 bytes, 4000797360 sectors</p><p>使用'''lspci'''命令可以看到一个NVMe相关的PCI设备</p><p>orangepi@orangepi:~$ '''lspci'''</p><p>0000:00:00.0 PCI bridge: Rockchip Electronics Co., Ltd Device 3588 (rev 01)</p><p>0000:01:00.0 Non-Volatile memory controller: SK hynix BC501 '''NVMe''' Solid State Drive</p><p>.…</p></li><li><p>然后我们可以使用dd命令清空下NVMe SSD(可选)</p><p>orangepi@orangepi5plus:~/Desktop$ '''sudo dd bs=1M if=/dev/zero of=/dev/nvme0n1 count=2000 status=progress'''</p><p>orangepi@orangepi5plus:~/Desktop$ '''sudo sync'''</p></li><li><p>然后就可以使用dd命令烧录开发板的linux镜像到NVMe SSD中</p><ol style="list-style-type: lower-alpha;"><li><p>下面的命令中 '''if=''' &gt; 参数后面是要填写linux镜像存放的完整路径+Linux镜像的名字(比如'''/home/orangepi/Desktop/Linux镜像的名字''')。因为上面我们已经进入linux镜像的路径下了,所以只需要填写Linux镜像的名字的即可。</p></li><li><p>下面命令中的linux镜像名请不要照抄,要替换为实际的镜像名(因为镜像的版本号可能会更新)。</p><p>'''sudo dd bs=1M if=orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img of=/dev/nvme0n1 status=progress'''</p><p>'''sudo''' '''sync'''</p><p>'''注意,如果上传的是 .7z或者.xz 或者.gz结尾linux镜像压缩文件,使用dd命令烧录前请记得先解压。'''</p><p>'''dd命令的所有参数的详细说明和更多用法可以在linux系统中执行man dd命令来查看。'''</p></li></ol></li><li><p>当成功烧录开发板的linux镜像到NVMe SSD后,此时就可以使用'''poweroff'''命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动SPIFlash+NVMe SSD中的linux系统了。</p></li></ol>
[[File:media<span id="使用balenaetcher软件烧录的方法"></523a42e43bc947bbb3d03d565485dbb8.png]]span>=== 使用balenaEtcher软件烧录的方法 ===
# 然后用解压软件解压'''DriverAssitant_v5.12.zipOPi OS Arch系统和OpenWRT系统请不要使用这种方法。''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可
<ol style="list-style-type: decimal;"><li><p>首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。</p><p>[[File:media/image24.png|375x108px]]</p></li><li><p>然后把NVMe SSD插入下图所示的开发板的M.2 PCIe接口,并固定好</p><p>[[File:media/image86.png|349x140px]]</p></li><li><p>SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</p><p>[[File:media/3abe751bd0c4c5e9be6a83f839a1e4c2image87.png|395x109px]]</p></li><li><p>烧录linux镜像到SPIFlash+NVMe SSD中需要借助TF卡来完成,所以首先需要将linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入linux系统。烧录Linux镜像到TF卡的方法请见[[\l|'''基于Windows PC将Linux镜像烧写到TF卡的方法''']]和[[\l|'''基于Ubuntu PC将Linux镜像烧写到TF卡的方法''']]两小节的说明。</p></li><li><p>启动进入TF卡中的linux系统后,请先确认下NVMe SSD已经被开发板的linux系统正常识别了。如果NVMe SSD正常识别了的话,使用'''sudo fdisk -l'''命令就能看到'''nvme'''相关的信息</p><p>orangepi@orangepi:~/Desktop$ '''sudo fdisk -l | grep &quot;nvme0n1&quot;'''</p><p>Disk /dev/nvme0n1: 1.86 TiB, 2048408248320 bytes, 4000797360 sectors</p><p>使用'''lspci'''命令可以看到一个NVMe相关的PCI设备</p><p>orangepi@orangepi:~$ '''lspci'''</p><p>0000:00:00.0 PCI bridge: Rockchip Electronics Co., Ltd Device 3588 (rev 01)</p><p>0000:01:00.0 Non-Volatile memory controller: SK hynix BC501 '''NVMe''' Solid State Drive</p><p>.…</p></li><li><p>linux镜像中已经预装了balenaEtcher,打开方法如下所示:</p></li></ol>
# 打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示## 点击“'''驱动安装'''”按钮<div class="figure">
[[File:media/bc5fc637f8588abefa4f2ff7e0dc2683image109.png|506x249px|IMG_256]]
# 等待一段时间后,会弹出窗口提示“</div>'''安装驱动成功如果没有预装,balenaEtcher arm64版本的下载安装方法请参考[[\l|下载安装arm64版本balenaEtcher的方法]]小节的说明。'''”,然后点击'''“确定”'''按钮即可
[[File<ol start="7" style="list-style-type:mediadecimal;"><li>balenaEtcher打开后的界面如下所示:</48720c90a698617c0f884059ac1d6885.png]]li></ol>
# 然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可<div class="figure">
[[File:media/c20745924f6e330c0bc60639e5ee8c1bimage110.png|406x207px|IMG_256]]
# 打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type</div><ol start="8" style="list-style-type: decimal;"><li><p>使用balenaEtcher烧录u-boot到开发板SPI Flash中的方法如下所示:</p><ol style="list-style-type: lower-C线连接上开发板,所以左下角会提示“alpha;"><li>首先点击'''没有发现设备Flash from file'''</li></ol></li></ol>
[[File:media/ca4b9e37ca9d9cce3f888c4278bd3726.png]]<div class="figure">
# 然后开始烧录Linux镜像到SSD中## 首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示[[File:media/image111.png|406x205px|IMG_256]]
[[File</div><ol start="2" style="list-style-type:medialower-alpha;"><li>然后进入'''/usr/lib/293482d42e80a8b3e2962b40e834bb41linux-u-boot-legacy-orangepi5plus_1.png]]x.x_arm64'''目录,再选择'''rkspi_loader.img''',再点击'''Open'''打开</li></ol>
# 确保开发板没有连接电源,'''并且没有插入TF卡或者eMMC模块'''## 然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:[[File:media/image112.png|575x162px]]
<ol start="3" style="list-style-type: lower-alpha;"><li><p>打开'''rkspi_loader.img'''后的界面如下所示:</p><p>[[File:media/b5c295a072c9e13167488051a2a2cb04image113.png|379x181px]]</p></li><li><p>然后点击'''Select target'''</p></li></ol>
# 然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了。Type-C电源接口的位置如下所示:<div class="figure">
[[File:media/1f65f9666af69c591813b5597e806ccbimage114.png|379x171px|IMG_256]]
# 如果前面的步骤顺利,此时开发板会进入</div><ol start="5" style="list-style-type: lower-alpha;"><li>然后点击'''MASKROMShow 2 hidden'''模式,在烧录工具的界面上会提示“'''发现一个MASKROM设备'''”打开更多存储设备的选项</li></ol>
[[File:media/18276e05fbda6e29cb92f7582ba887d4.png]]<div class="figure">
# 然后将鼠标光标放在下面的这片区域中[[File:media/image115.png|385x155px|IMG_256]]
[[File</div><ol start="6" style="list-style-type:medialower-alpha;"><li>然后选择SPI Flash的设备名'''/dev/mtdblock0''',然后点击'''Select'''</li></86a56c049f0d8807cf1685e7b89306eb.png]]ol>
# 然后点击鼠标右键会弹出下图所示的选择界面<div class="figure">
[[File:media/e21e70e17552c5c4b75c570c4c167464image116.png|389x264px|IMG_256]]
# 然后选择</div><ol start="7" style="list-style-type: lower-alpha;"><li>然后点击'''导入配置Flash'''选项</li></ol>
[[File:media/02a57b0477b87251ffdaaf062e80025d.png]]<div class="figure">
# 然后进入前面下载的'''MiniLoader'''文件夹中,再进入'''pcie_loader'''文件夹中,然后选择'''rk3588_linux_pcie[[File:media/image117.cfg'''配置文件,再点击'''打开'''png|394x268px|IMG_256]]
[[File</div><ol start="8" style="list-style-type:medialower-alpha;"><li>然后点击'''Yes, I’m sure'''</li></baca1aa12e72875e7ff1adb16bb8c49e.png]]ol>
# 然后点击'''确定'''<div class="figure">
[[File:media/56af00f0bde1c1269ea5314e35d5fa50image118.png|396x269px|IMG_256]]
# 然后点击下图所示的位置</div><ol style="list-style-type: lower-roman;"><li>然后输入开发板linux系统的密码'''orangepi''',就会开始烧录u-boot镜像到SPI &gt; Flash中</li></ol>
[[File:media/1d34861eb15435c8833e6b551fd60a09.png]]<div class="figure">
# 再选择前面下载的'''MiniLoader'''文件夹中'''MiniLoaderAll[[File:media/image119.bin''',再点击'''打开'''png|393x269px|IMG_256]]
[[File</div><ol start="10" style="list-style-type:medialower-alpha;"><li>烧录过程的显示如下所示:</li></3679d114ef42d45c105bc92d6c74e07a.png]]ol>
# 然后点击下图所示的位置<div class="figure">
[[File:media/772de6bbeec502ba94b8061abc3e18f5image120.png|397x272px|IMG_256]]
# 然后进入前面下载的'''MiniLoader'''文件夹中,再进入'''pcie_loader'''文件夹中,然后选择'''uboot'''文件,再点击'''打开'''</div><ol start="11" style="list-style-type: lower-alpha;"><li>烧录完成后的显示如下所示:</li></ol>
[[File:media/12c0bda5f8618e3ba6a9fe470f7af082.png]]<div class="figure">
# 然后点击下图所示的位置[[File:media/image121.png|395x225px|IMG_256]]
[[File</div><ol start="9" style="list-style-type: decimal;"><li><p>烧录TF卡中的linux系统到NVMe SSD中的方法(此方法相当于将TF卡中的系统克隆到NVMe SSD)</p><ol style="list-style-type:medialower-alpha;"><li>首先点击'''Clone drive'''</li></ol></li></388f3cddbef853c69fda064fd88e62a2.png]]ol>
# 然后选择想要烧录的linux镜像的路径,再点击'''打开'''<div class="figure">
[[File:media/2a719a7cdf76bfc55d66425871d20080image122.png|386x204px|IMG_256]]
# 然后请勾选上</div><ol start="2" style="list-style-type: lower-alpha;"><li>然后选择TF卡的设备名'''强制按地址写/dev/mmcblk1'''选项</li></ol>
[[File:media/3140a7526761d3d8763b33fb6a7f7c0f.png]]<div class="figure">
# 再点击执行按钮就会开始烧录linux镜像到SSD中[[File:media/image123.png|386x261px|IMG_256]]
[[File</div><ol start="3" style="list-style-type:medialower-alpha;"><li>打开TF卡后的界面如下所示:</li></27dde6f6413ee1a80eb7b94f3438c099.png]]ol>
# linux镜像烧录完后的显示log如下图所示<div class="figure">
[[File:media/51749642e585969b5357d41d130492bbimage124.png|381x191px|IMG_256]]
# 然后烧录启动SSD中linux系统需要的uboot镜像到SPIFlash,'''首先再次进入MaskROM模式'''</div><ol start="4" style="list-style-type: lower-alpha;">## 然后选择<li>然后点击'''导入配置Select target'''选项</li></ol>
[[File:media/5d16da28e59cd345d3b86b7669d5ccde.png]]<div class="figure">
# 然后选择前面下载的'''MiniLoader'''文件夹中的'''rk3588_linux_spiflash[[File:media/image114.cfg'''配置文件,再点击'''打开'''png|379x171px|IMG_256]]
[[File</div><ol start="5" style="list-style-type:medialower-alpha;"><li>然后点击'''Show 2 hidden'''打开更多存储设备的选项</li></16fd256dd887bb4809776eec8c720d31.png]]ol>
# 然后点击'''确定'''<div class="figure">
[[File:media/be2834019fb098c81bf4b08aaba8b702image115.png|385x155px|IMG_256]]
# 然后点击下图所示的位置</div><ol start="6" style="list-style-type: lower-alpha;"><li>然后选择NVMe SSD的设备名'''/dev/nvme0n1''',然后点击'''Select'''</li></ol>
[[File:media/d9480ca861f660193824c5a89200147dimage125.png|386x264px]]
# 再选择前面下载的<ol start="7" style="list-style-type: lower-alpha;"><li>然后点击'''MiniLoader'''文件夹中'''MiniLoaderAll.bin''',再点击'''打开Flash'''</li></ol>
[[File:media/3679d114ef42d45c105bc92d6c74e07a.png]]<div class="figure">
# 然后点击下图所示的位置[[File:media/image126.png|389x264px|IMG_256]]
[[File</div><ol start="8" style="list-style-type:medialower-alpha;"><li>然后点击'''Yes, I’m sure'''</li></bf61d76c5509d50ce663566689bca37b.png]]ol>
# 再选择前面下载的'''MiniLoader'''文件夹中'''rkspi_loader''',再点击'''打开'''<div class="figure">
[[File:media/917c492414698dd632b26fd1fa7f8bcaimage127.png|392x268px|IMG_256]]
# 然后请确保'''强制按地址写'''选项已勾上</div><ol style="list-style-type: lower-roman;"><li>然后输入开发板linux系统的密码orangepi,就会开始烧录linux镜像到SSD中</li></ol>
[[File:media/f9f9c995b91de0abba1301b12a439ab4.png]]<div class="figure">
# 再点击'''执行'''按钮就会开始烧录u-boot镜像到SPIFlash中[[File:media/image128.png|390x267px|IMG_256]]
[[File</div><ol start="10" style="list-style-type:medialower-alpha;"><li>烧录过程的显示如下所示:</li></237f0a286c0a52bf5f65dd9f54651ef4.png]]ol>
# u-boot镜像烧录完后的显示log如下图所示[[File:media/image129.png|393x212px]]
[[File:media/ee4027d49848cea09db08cb1bb0dc506.png]]<div class="figure">
# u-boot镜像烧录完后会自动启动SPIFlash+PCIe SSD中的linux系统,如果没有正常启动,请重新上电试下。[[File:media/image130.png|395x205px|IMG_256]]
</div><ol start="11" style== 使用dd命令烧录的方法 ==="list-style-type: lower-alpha;"><li>烧录完成后的显示如下所示:</li></ol>
# 首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板M[[File:media/image131.2插槽PCIe接口的规格为PCIe3.0x4。png|398x227px]]
[[File<ol start="12" style="list-style-type:medialower-alpha;"><li><p>然后需要扩容下NVMe SSD中rootfs分区的容量,步骤如下所示:</6b09ed51c8f4954ed95742cd63b21c74.png]]p><ol style="list-style-type: lower-alpha;"><li>首先打开'''GParted'''</li></ol></li></ol>
# 然后把NVMe SSD插入下图所示的开发板的M.2 PCIe接口,并固定好<div class="figure">
[[File:media/eff81166492ce92b30912818342b0d5bimage132.png|590x317px|IMG_256]]
# SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</div><ol start="2" style="list-style-type: lower-alpha;">[[File:media<li>然后输入linux系统的密码orangepi,再点击'''Authenticate'''</li></815ee597fcdbd832b687cc3df51795b6.png]]ol>
# 烧录linux镜像到SPIFlash+NVMe SSD中需要借助TF卡来完成,所以首先需要将linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入linux系统。烧录Linux镜像到TF卡的方法请见[[#_基于Windows%20PC将Linux镜像烧写到TF卡的方法File:media/image133.png|'''基于Windows PC将Linux镜像烧写到TF卡的方法'''356x173px]]和[[#_基于Ubuntu%20PC将Linux镜像烧写到TF卡的方法|'''基于Ubuntu PC将Linux镜像烧写到TF卡的方法''']]两小节的说明。# 使用TF卡启动linux系统后,我们首先烧录u-boot镜像到SPI Flash中## 先运行下'''nand-sata-install''','''普通用户记得加sudo权限'''
orangepi@orangepi<ol start="3" style="list-style-type:~$ lower-alpha;"><li><p>然后点击'''sudo nand-sata-installFix'''</p><p>[[File:media/image134.png|375x276px]]</p></li># 然后选择'''7 Install<li><p>然后选择NVMe SSD</p></li></Update ther bootloader on SPI Flash'''ol>
<div class="figure">
[[File:media/28d309141c910fd8c70f95fa2b79fd71image135.png|452x187px|IMG_256]]
</div>
# 然后选择'''&lt<ol start="5" style="list-style-type: lower-alpha;Yes&gt;'''"><li>选择NVMe SSD后的显示界面如下所所示:</li></ol>
<div class="figure">
[[File:media/014d57f7b10cab0c4214fd1c3d6da9e8image136.png|451x187px|IMG_256]]
</div>
# 然后请耐心等待烧录完成,烧录完成后显示如下所示(左下角会显示一个<ol start="6" style="list-style-type: lower-alpha;"><li>然后选择'''Done/dev/nvme0n1p2'''):分区,再击点击右键,再选择'''Resize/Move'''</li></ol>
[[File:media/96caeb7df4bc0747972dfe80d39b458d.png]]<div class="figure">
'''OPi OS Arch系统中没有nand-sata-install这个脚本,请使用下面的命令将u-boot镜像到SPI Flash中:'''[[File:media/image137.png|448x345px|IMG_256]]
</div><ol start="7" style="list-style-type: lower-alpha;"><li><p>然后在下图所示的位置将容量拖动到最大</p><p>[[File:media/image138.png|339x210px]]</p></li><li><p>然后点击'''Resize/Move'''</p><p>[[orangepi@orangepi ~File:media/image139.png|339x212px]]$ </p></li><li><p>然后点击下图位置绿色的'''√'''sudo dd if=</p><p>[[File:media/image140.png|425x166px]]</p></li><li><p>再点击'''Apply'''</bootp><p>[[File:media/rkspi_loaderimage141.img of=png|378x276px]]</devp></mtdblock0li><li><p>然后点击'''Close'''关闭即可</p><p>[[File:media/image142.png|383x234px]]</p></li></ol>
# 然后将linux镜像文件(从官网下载的Debian、Ubuntu或者OpenWRT镜像)上传到TF卡中。上传linux镜像文件到开发板中的方法请参考[[#_上传文件到开发板Linux系统中的方法|<!-- --><ol start="13" style="list-style-type: lower-alpha;"><li>此时就可以使用'''上传文件到开发板Linux系统中的方法sudo &gt; poweroff''']]小节的说明。命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动SPIFlash+NVMe &gt; SSD中的linux系统了。</li></ol>
<!-- --><ol start="10" style="list-style-type: decimal;"><li><p>第'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载“TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。9)'''步是克隆TF卡中的系统到NMVe SSD中,我们还可以直接烧录linux镜像文件到NVMe SSD中,这里大概说下步骤:</p><ol style="list-style-type: lower-alpha;"><li><p>上传linux镜像文件到开发板的linux系统中</p></li><li><p>然后使用balenaEtcher烧录即可</p><p>[[File:media/image143.png|463x291px]]</p></li><li><p>'''使用这种方法烧录镜像后无需手动扩容,第一次启动会自动扩容。'''</p></li></ol></li></ol>
[[File:media<span id="烧录openwrt镜像到spi-flash中的方法"></523a42e43bc947bbb3d03d565485dbb8.png]]span>== 烧录OpenWRT镜像到SPI FLASH中的方法 ==
# 上传完镜像到开发板的linux系统中后,我们再在开发板linux系统的命令行中进入镜像文件的存放路径,比如,我将开发板的linux镜像存放在'''/home/orangepi/Desktop此小节介绍的方法是烧录整个OpenWRT镜像到spi flash中,不需要nvme ssd。也就是说,u-boot、内核和rootfs都是存放在spi flash中的。'''目录下了,然后进入'''/home/orangepi/Desktop'''目录就能看到上传的镜像文件了。
orangepi@orangepi:~$ '''cd /home/orangepi/Desktop由于开发板上的spi flash只有16MB,所以此系统基本无法安装多少软件,目前只能实现一些基础功能。'''
orangepi@orangepi:~<span id="使用-rkdevtool-烧录的方法"></Desktop$ '''ls'''span>=== 使用 RKDevTool 烧录的方法 ===
orangepi5plus_x<ol style="list-style-type: decimal;"><li><p>SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</p><p>[[File:media/image87.xpng|389x107px]]</p></li><li><p>然后需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:media/image20.x_debian_bullseye_desktop_xfce_linux5png|152x154px]]</p></li><li><p>然后从[http://www.10orangepi.110cn/html/serviceAndSupport/index.imghtml '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和'''MiniLoader'''以及烧录工具'''RKDevTool_Release_v2.96.zip''',请确保下载的'''RKDevTool'''工具的的版本为'''v2.96'''</p><ol style="list-style-type: lower-alpha;"><li><p>在[http://www.orangepi.cn/html/serviceAndSupport/index.html Orange &gt; Pi的资料下载页面]首先选择'''官方工具''',然后进入下面的文件夹中</p><p>[[File:media/image45.png|366x77px]]</p></li><li><p>然后下载下面的所有文件</p><p>[[File:media/image46.png|324x116px]]</p><p>'''注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。'''</p></li></ol></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载能够从SPIFlash启动的OpenWRT镜像,受限于SPIFlash的容量,镜像是小于'''16MB'''的。打开下载链接后可以看到下面两种类型的'''OpenWRT'''镜像,请选择'''SPIFlash启动镜像'''文件夹中的镜像</p><p>[[File:media/image144.png|313x83px]]</p></li><li><p>然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可</p><p>[[File:media/image47.png|575x169px]]</p></li><li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>点击”'''驱动安装'''”按钮</p><p>[[File:media/image48.png|276x145px]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:media/image49.png|287x149px]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可</p><p>[[File:media/image50.png|575x170px]]</p></li><li><p>打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:media/image51.png|575x270px]]</p></li><li><p>然后开始烧录OpenWRT镜像到SPI FLASH中</p><ol style="list-style-type: lower-alpha;"><li><p>首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示</p><p>[[File:media/image52.png|424x120px]]</p></li><li><p>确保开发板没有连接电源,'''并且没有插入TF卡和eMMC模块'''</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:media/image53.png|418x94px]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了</p><p>[[File:media/image54.png|402x123px]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p><p>[[File:media/image55.png|466x219px]]</p></li><li><p>然后将鼠标光标放在下面的这片区域中</p><p>[[File:media/image56.png|467x221px]]</p></li><li><p>然后点击鼠标右键会弹出下图所示的选择界面</p><p>[[File:media/image57.png|514x241px]]</p></li><li><p>然后选择'''导入配置'''选项</p><p>[[File:media/image58.png|517x243px]]</p></li><li><p>然后选择前面下载的'''MiniLoader'''文件夹中的'''rk3588_linux_spiflash.cfg'''配置文件,再点击'''打开'''</p><p>[[File:media/image98.png|575x270px]]</p></li><li><p>然后点击'''确定'''</p><div class="figure">
'''怎么进入开发板linux系统的命令行?'''[[File:media/image145.png|575x271px|3b7b326151b95df2a98f0ec476e5c887]]
# '''使用串口登录终端的方法请参考'''[[#_调试串口的使用方法|'''调试串口的使用方法''']]'''一小节的说明。'''</div></li># '''使用ssh远程登录linux系统请参考'''[[#_SSH远程登录开发板|'''SSH远程登录开发板''']]'''一小节的说明。'''<li><p>然后点击下图所示的位置</p># '''如果接了HDMI、LCD等显示屏幕,可以在桌面中打开一个命令行终端。'''# 接下来,我们先确认下NVMe SSD已经被开发板的linux正常识别了。如果NVMe SSD正常识别了的话,使用'''sudo fdisk -l'''命令就能看到'''nvme'''相关的信息<div class="figure">
orangepi@orangepi[[File:~media/Desktop$ '''sudo fdisk -l image146.png| grep “nvme0n1”'''575x270px|}QYR7OA61XB6U5Y1S@W8{OR]]
Disk </devdiv></nvme0n1li><li><p>再选择前面下载的'''MiniLoader'''文件夹中'''MiniLoaderAll.bin''',再点击'''打开'''</p><p>[[File: 1media/image62.86 TiB, 2048408248320 bytes, 4000797360 sectorspng|575x270px]]</p></li><li><p>然后点击下图所示的位置</p><div class="figure">
使用'''lspci'''命令可以看到一个NVMe相关的PCI设备[[File:media/image147.png|575x270px|H5OM6~IN1[F8FN$L7ACC`%5]]
orangepi@orangepi:~$ </div></li><li><p>再选择想要烧录的OpenWRT镜像的路径,再点击'''lspci打开'''</p><div class="figure">
0000[[File:00:00media/image148.0 PCI bridge: Rockchip Electronics Co., Ltd Device 3588 (rev 01png|575x219px|1VT6F}8C`H)]0RYPSVT@)XE]]
0000:01:00.0 Non-Volatile memory controller: SK hynix BC501 </div></li><li><p>然后请确保'''NVMe强制按地址写''' Solid State Drive选项已勾上</p><div class="figure">
[[File:media/image149.png|575x270px|QDMZW$_J@VTSZ4QIE}516EO]]
# 然后我们可以使用dd命令清空下NVMe SSD(可选)</div></li><li><p>再点击'''执行'''按钮就会开始烧录OpenWRT镜像到SPIFlash中</p><div class="figure">
orangepi@orangepi5plus[[File:~media/Desktop$ '''sudo dd bs=1M if=/dev/zero of=/dev/nvme0n1 count=2000 status=progress'''image150.png|575x270px|UA8B5)GA[KO{5%53CH2YNZJ]]
orangepi@orangepi5plus:~</Desktop$ '''sudo sync'''div></li><li><p>OpenWRT镜像烧录完后的显示log如下图所示</p><div class="figure">
# 然后就可以使用dd命令烧录开发板的linux镜像到NVMe SSD中## 下面的命令中 '''if=''' 参数后面是要填写linux镜像存放的完整路径+Linux镜像的名字(比如'''[[File:media/home/orangepi/Desktop/Linux镜像的名字''')。因为上面我们已经进入linux镜像的路径下了,所以只需要填写Linux镜像的名字的即可。## 下面命令中的linux镜像名请不要照抄,要替换为实际的镜像名(因为镜像的版本号可能会更新)。image151.png|575x270px|21EM~CZW2KAX{TZ1S3~3Q33]]
'''sudo dd bs=1M if=orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img of=</devdiv></nvme0n1 status=progress'''li><li><p>OpenWRT镜像烧录完后会自动启动,如果没有正常启动,请重新上电试下。</p></li></ol></li></ol>
'''sudo''' '''sync'''<span id="使用dd命令烧录的方法-1"></span>=== 使用dd命令烧录的方法 ===
<ol style="list-style-type: decimal;"><li><p>烧录OpenWRT镜像到SPIFlash中需要借助TF卡来完成,所以首先需要将支持TF卡启动的OpenWRT镜像烧录到TF卡上,然后使用TF卡启动开发板进入OpenWRT系统。烧录OpenWRT镜像到TF卡的方法请见[[\l|'''注意,如果上传的是 基于Windows PC将Linux镜像烧写到TF卡的方法''']]和[[\l|'''基于Ubuntu PC将Linux镜像烧写到TF卡的方法''']]两小节的说明。</p></li><li><p>然后从[http://www.7z或者orangepi.xz 或者cn/html/serviceAndSupport/index.gz结尾linux镜像压缩文件,使用dd命令烧录前请记得先解压。html '''Orange Pi的资料下载页面''']下载能够从'''SPIFlash'''启动的'''OpenWRT'''镜像。打开下载链接后可以看到下面两种类型的OpenWRT镜像,请选择'''SPIFlash启动镜像'''文件夹中的镜像进行下载</p><p>[[File:media/image144.png|313x83px]]</p></li><li><p>然后把从官网下载的镜像上传到TF卡中。</p></li><li><p>然后再执行下面的命令即可将OpenWRT镜像烧写到SPIFlash中</p></li><li><p>然后就可以使用'''poweroff'''命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动SPIFlash中的OpenWRT系统了</p></li></ol>
'''dd命令的所有参数的详细说明和更多用法可以在linux系统中执行man dd命令来查看。'''<span id="烧录android镜像到tf卡中的方法"></span>== 烧录Android镜像到TF卡中的方法 ==
# 当成功烧录开发板的linux镜像到NVMe SSD后,此时就可以使用<ol style="list-style-type: decimal;"><li><p>首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为'''poweroffclass10'''命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动SPIFlash+NVMe SSD中的linux系统了。或以上,建议使用闪迪等品牌的TF卡</p></li><li><p>然后使用读卡器把TF卡插入电脑</p></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载SDDiskTool烧写工具,'''请确保SDDiskTool工具的版本为最新的v1.72'''</p></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载Android12的镜像</p><ol style="list-style-type: lower-alpha;"><li><p>打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择'''TF卡和eMMC启动镜像'''文件夹中的镜像进行下载</p><p>[[File:media/image152.png|224x82px]]</p></li><li><p>进入'''TF卡和eMMC启动镜像'''文件夹后可以看到下面三个镜像,它们的区别是:</p><ol style="list-style-type: lower-alpha;"><li><p>第一个镜像专门用于HDMI显示的,支持8K显示,如果不使用LCD屏幕,请下载不带lcd的镜像</p></li><li><p>如果要使用lcd屏幕,请选择带lcd的镜像</p></li><li><p>带box的镜像是专用于电视盒子的镜像</p><p>[[File:media/image153.png|255x97px]]</p></li></ol></li></ol></li><li><p>然后使用解压软件解压下载的Android镜像的压缩包,解压后的文件中,以”.img” 结尾的文件就是Android镜像文件,大小在1GB以上</p></li><li><p>然后使用解压软件解压'''SDDiskTool_v1.72.zip''',此软件无需安装,在解压后的文件夹中找到'''SD_Firmware_Tool.exe'''打开即可</p><p>[[File:media/image154.png|575x138px]]</p></li><li><p>打开'''SDDiskTool'''后,如果TF卡识别正常,会在”'''选择可移动磁盘设备'''”一栏中显示插入的磁盘设备,'''请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的''',如果没有显示可以尝试拔插下TF卡</p><p>[[File:media/image155.png|267x228px]]</p></li><li><p>确认完盘符后,可以先格式化下TF卡,点击'''SDDiskTool'''中的'''恢复磁盘'''按钮即可,也可使用前面提到的'''SD Card Formatter'''进行TF卡的格式化</p><p>[[File:media/image156.png|247x212px]]</p></li><li><p>然后开始将Android镜像写入TF卡</p><ol style="list-style-type: lower-alpha;"><li><p>首先在”'''选择功能模式'''”中勾选”'''SD启动'''”</p></li><li><p>然后在”'''选择升级固件'''”一栏中选择Android镜像的路径</p></li><li><p>最后点击”'''开始创建'''”按钮就会开始烧录Android镜像到TF卡中</p><p>[[File:media/image157.png|346x292px]]</p></li></ol></li><li><p>烧录完后即可退出SDDiskTool软件,然后就可以把TF卡从电脑中拔出来插到开发板中启动了</p><p>[[File:media/image158.png|304x258px]]</p></li></ol>
<span id="使用balenaetcher软件烧录的方法烧录android镜像烧录到emmc中的方法"></span>=== 使用balenaEtcher软件烧录的方法 =烧录Android镜像烧录到eMMC中的方法 ==
'''OPi OS Arch系统和OpenWRT系统请不要使用这种方法。'''<span id="通过type-c线将android-镜像烧录到emmc中的方法"></span>=== 通过Type-C线将Android 镜像烧录到eMMC中的方法 ===
# 首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。'''注意,下面所有的操作都是在Windows电脑中进行的。'''
<ol style="list-style-type: decimal;"><li><p>开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:</p><p>[[File:media/image78.png|307x141px]]</p></li><li><p>还需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:media/image20.png|134x136px]]</p></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和烧录工具'''RKDevTool_Release_v2.96.zip''',请确保下载的'''RKDevTool'''工具的的版本为'''v2.96'''</p></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载Android的镜像。</p><ol style="list-style-type: lower-alpha;"><li><p>打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择'''TF卡和eMMC启动镜像'''文件夹中的镜像进行下载</p><p>[[File:media/image152.png|224x82px]]</p></li><li><p>进入'''TF卡和eMMC启动镜像'''文件夹后可以看到下面三个镜像,它们的区别是:</p><ol style="list-style-type: lower-alpha;"><li><p>第一个镜像专门用于HDMI显示的,支持8K显示,如果不使用LCD屏幕,请下载不带lcd的镜像</p></li><li><p>如果要使用lcd屏幕,请选择带lcd的镜像</p></li><li><p>带box的镜像是专用于电视盒子的镜像</p><p>[[File:media/image153.png|255x97px]]</p></li></ol></li></ol></li><li><p>然后使用解压软件解压下载的Android镜像的压缩包,解压后的文件中,以”.img” 结尾的文件就是Android镜像文件,大小在1GB以上</p></li><li><p>然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可</p><p>[[File:media/image47.png|575x169px]]</p></li><li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>点击”'''驱动安装'''”按钮</p><p>[[File:media/image48.png|300x157px]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:media/image49.png|429x223px]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可</p><p>[[File:media/image50.png|575x170px]]</p></li><li><p>打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:media/image51.png|575x270px]]</p></li><li><p>然后开始烧录Android镜像到eMMC中</p><ol style="list-style-type: lower-alpha;"><li><p>首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示</p><p>[[File:media/image52.png|576x163px]]</p></li><li><p>然后确保开发板没有插入TF卡,没有连接电源</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:media/image53.png|576x130px]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电</p><p>[[File:media/6b09ed51c8f4954ed95742cd63b21c74image54.png|575x176px]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p><p>[[File:media/image55.png|575x270px]]</p></li><li><p>然后点击烧录工具的”'''升级固件'''”一栏</p><p>[[File:media/image159.png|576x119px]]</p></li><li><p>接着点击”'''固件'''”按钮选择需要烧录的Android镜像的路径</p><p>[[File:media/image160.png|575x123px]]</p></li><li><p>最后点击”'''升级'''”按钮就会开始烧录,烧录过程中的log如下图所示。烧录完成后Android系统会自动启动。</p><p>[[File:media/image161.png|575x270px]]</p></li></ol></li></ol>
# 然后把NVMe SSD插入下图所示的开发板的M.2 PCIe接口,并固定好<span id="通过tf卡将android-12镜像烧录到emmc中的方法"></span>=== 通过TF卡将Android 12镜像烧录到eMMC中的方法 ===
[[File:media/eff81166492ce92b30912818342b0d5b.png]]'''注意,下面所有的操作都是在Windows电脑中进行的。'''
# SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置<ol style="list-style-type: decimal;"><li><p>开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:</p><p>[[File:media/image78.png|576x264px]]</p></li><li><p>还需要准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''或以上,建议使用闪迪等品牌的TF卡</p></li><li><p>然后使用读卡器把TF卡插入电脑</p></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载SDDiskTool烧写工具,'''请确保SDDiskTool工具的版本为最新的v1.72'''</p></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载Android的镜像</p><ol style="list-style-type: lower-alpha;"><li><p>打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择'''TF卡和eMMC启动镜像'''文件夹中的镜像进行下载</p><p>[[File:media/image152.png|224x82px]]</p></li><li><p>进入'''TF卡和eMMC启动镜像'''文件夹后可以看到下面三个镜像,它们的区别是:</p><ol style="list-style-type: lower-alpha;"><li><p>第一个镜像专门用于HDMI显示的,支持8K显示,如果不使用LCD屏幕,请下载不带lcd的镜像</p></li><li><p>如果要使用lcd屏幕,请选择带lcd的镜像</p></li><li><p>带box的镜像是专用于电视盒子的镜像</p><p>[[File:media/image153.png|255x97px]]</p></li></ol></li></ol></li><li><p>然后使用解压软件解压下载的Android镜像的压缩包,解压后的文件中,以”.img” 结尾的文件就是Android镜像文件,大小在1GB以上</p></li><li><p>然后使用解压软件解压'''SDDiskTool_v1.72.zip''',此软件无需安装,在解压后的文件夹中找到'''SD_Firmware_Tool.exe'''打开即可</p><p>[[File:media/image154.png|575x138px]]</p></li><li><p>打开'''SDDiskTool'''后,如果TF卡识别正常,会在”'''选择可移动磁盘设备'''”一栏中显示插入的磁盘设备,'''请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的''',如果没有显示可以尝试拔插下TF卡</p><p>[[File:media/image155.png|267x228px]]</p></li><li><p>确认完盘符后,可以先格式化下TF卡,点击'''SDDiskTool'''中的'''恢复磁盘'''按钮即可,也可使用前面提到的'''SD Card Formatter'''进行TF卡的格式化</p><p>[[File:media/image156.png|247x212px]]</p></li><li><p>然后开始将Android镜像写入TF卡</p><ol style="list-style-type: lower-alpha;"><li><p>首先在'''“选择可移动磁盘设备”'''下面确认显示的盘符为TF卡对应的盘符</p></li><li><p>然后在”'''选择功能模式'''”中选择'''“固件升级”'''</p></li><li><p>然后在”'''选择升级固件'''”一栏中选择Android固件的路径</p></li><li><p>最后点击”'''开始创建'''”按钮就会开始烧录</p><p>[[File:media/image162.png|341x290px]]</p></li></ol></li><li><p>烧录完成后的显示如下图所示,然后就可以退出SDDiskTool</p><p>[[File:media/image163.png|285x243px]]</p></li><li><p>然后把TF卡从电脑中拔出来插到开发板中,开发板上电启动后就会自动开始将TF卡中的Android镜像烧录到开发板的eMMC中</p></li><li><p>如果开发板连接了HDMI显示器,还可以从HDMI显示器中看到烧录Android镜像到eMMC中的进度条</p><p>[[File:media/image164.png|430x247px]]</p></li><li><p>当HDMI显示器显示如下信息时,说明烧录Android镜像到eMMC中已完成,此时就可以拔出TF卡,然后eMMC中的安卓系统就会开始启动。</p><p>[[File:media/image165.png|576x389px]]</p></li></ol>
[[File:media<span id="烧录android镜像到spiflashnvme-ssd中的方法"></815ee597fcdbd832b687cc3df51795b6.png]]span>== 烧录Android镜像到SPIFlash+NVMe SSD中的方法 ==
# 烧录linux镜像到SPIFlash+NVMe SSD中需要借助TF卡来完成,所以首先需要将linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入linux系统。烧录Linux镜像到TF卡的方法请见[[#_基于Windows%20PC将Linux镜像烧写到TF卡的方法|'''基于Windows PC将Linux镜像烧写到TF卡的方法注意,下面所有的操作都是在Windows电脑中进行的。''']]和[[#_基于Ubuntu%20PC将Linux镜像烧写到TF卡的方法|'''基于Ubuntu PC将Linux镜像烧写到TF卡的方法''']]两小节的说明。# 启动进入TF卡中的linux系统后,请先确认下NVMe SSD已经被开发板的linux系统正常识别了。如果NVMe SSD正常识别了的话,使用'''sudo fdisk -l'''命令就能看到'''nvme'''相关的信息
<ol style="list-style-type: decimal;"><li><p>首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。</p><p>[[File:media/image24.png|361x104px]]</p></li><li><p>然后把NVMe SSD插入开发板的M.2 PCIe接口,并固定好</p><p>[[File:media/image86.png|355x143px]]</p></li><li><p>SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</p><p>[[File:media/image87.png|415x114px]]</p></li><li><p>还需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:media/image20.png|150x152px]]</p></li><li><p>然后从[http://www.orangepi@.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和烧录工具'''RKDevTool_Release_v2.96.zip''',请确保下载的'''RKDevTool'''工具的的版本为'''v2.96'''</p></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载Android12的镜像</p><ol style="list-style-type: lower-alpha;"><li><p>打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择'''SPIFlash-NVME &gt; SSD启动镜像'''文件夹中的镜像进行下载</p><p>[[File:media/image166.png|195x65px]]</p></li><li><p>进入'''SPIFlash-NVME &gt; SSD启动镜像'''文件夹后可以看到下面三个镜像,它们的区别是:</p><ol style="list-style-type: lower-alpha;"><li><p>第一个镜像专门用于HDMI显示的,支持8K显示,如果不使用LCD屏幕,请下载不带lcd的镜像</p></li><li><p>如果要使用lcd屏幕,请选择带lcd的镜像</p></li><li><p>带box的镜像是专用于电视盒子的镜像</p><p>[[File:media/image167.png|241x70px]]</p></li></ol></li></ol></li><li><p>然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可</p><p>[[File:media/image47.png|575x169px]]</p></li><li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>点击”'''驱动安装'''”按钮</p><p>[[File:media/image48.png|300x157px]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:media/image49.png|429x223px]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可</p><p>[[File:~media/Desktop$ image50.png|575x170px]]</p></li><li><p>打开'''sudo fdisk RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:media/image51.png|575x270px]]</p></li><li><p>然后开始烧录Android镜像到SPIFlash+NVMe SSD中</p><ol style="list-style-type: lower-alpha;"><li><p>首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-l C接口的位置如下图所示</p><p>[[File:media/image52.png|576x163px]]</p></li><li><p>确保开发板没有插入TF和eMMC模块,没有连接电源</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:media/image53.png|576x130px]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了</p><p>[[File:media/image54.png|575x176px]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p><p>[[File:media/image55.png|575x270px]]</p></li><li><p>然后点击烧录工具的”'''升级固件'''”一栏</p><p>[[File:media/image159.png| grep “nvme0n1”576x119px]]</p></li><li><p>接着点击”'''固件'''”按钮选择需要烧录的Android镜像</p><p>[[File:media/image160.png|575x123px]]</p></li><li><p>最后点击”'''升级'''”按钮就会开始烧录,烧录的过程如下图所示,可以看到,首先会烧录固件到SPIFlash中,然后烧录固件到PCIE中。烧录完成后Android系统会自动启动。</p><p>[[File:media/image168.png|575x270px]]</p></li></ol></li></ol>
Disk <span id="烧录orange-pi-os-droid镜像到tf卡中的方法"></dev/nvme0n1: 1.86 TiB, 2048408248320 bytes, 4000797360 sectorsspan>== 烧录Orange Pi OS (Droid)镜像到TF卡中的方法 ==
使用'''lspci注意,下面所有的操作都是在Windows电脑中进行的。'''命令可以看到一个NVMe相关的PCI设备
<ol style="list-style-type: decimal;"><li><p>首先准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''或以上,建议使用闪迪等品牌的TF卡</p></li><li><p>然后使用读卡器把TF卡插入电脑</p></li><li><p>然后从[http://www.orangepi@.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载SDDiskTool烧写工具,'''请确保SDDiskTool工具的版本为最新的v1.72'''</p></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载Orange Pi OS (Droid)的镜像,打开Orange Pi OS (Droid)镜像的下载链接后可以看到下面两种类型的镜像,请选择下面的镜像</p><p>[[File:media/image169.png|286x49px]]</p></li><li><p>然后使用解压软件解压下载的Orange Pi OS (Droid)镜像的压缩包,解压后的文件中,以”.img” 结尾的文件就是Orange Pi OS (Droid)镜像文件,大小在1GB以上</p></li><li><p>然后使用解压软件解压'''SDDiskTool_v1.72.zip''',此软件无需安装,在解压后的文件夹中找到'''SD_Firmware_Tool.exe'''打开即可</p><p>[[File:media/image154.png|575x138px]]</p></li><li><p>打开'''SDDiskTool'''后,如果TF卡识别正常,会在”'''选择可移动磁盘设备'''”一栏中显示插入的磁盘设备,'''请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的''',如果没有显示可以尝试拔插下TF卡</p><p>[[File:~$ media/image155.png|248x212px]]</p></li><li><p>确认完盘符后,可以先格式化下TF卡,点击'''SDDiskTool'lspci''中的'''恢复磁盘'''按钮即可,也可使用前面提到的'''SD Card Formatter'''进行TF卡的格式化</p><p>[[File:media/image156.png|244x209px]]</p></li><li><p>然后开始将Orange Pi OS (Droid)镜像写入TF卡</p><ol style="list-style-type: lower-alpha;"><li><p>首先在”'''选择功能模式'''”中勾选”'''SD启动'''”</p></li><li><p>然后在”'''选择升级固件'''”一栏中选择Orange Pi OS (Droid)镜像的路径</p></li><li><p>最后点击”'''开始创建'''”按钮就会开始烧录Orange Pi OS &gt; (Droid)镜像到TF卡中</p><p>[[File:media/image157.png|308x261px]]</p></li></ol></li><li><p>烧录完后即可退出SDDiskTool软件,然后就可以把TF卡从电脑中拔出来插到开发板中启动了</p></li></ol>
0000[[File:00:00.0 PCI bridge: Rockchip Electronics Comedia/image158., Ltd Device 3588 (rev 01)png|304x258px]]
0000:01:00.0 Non<span id="烧录orange-Volatile memory controller: SK hynix BC501 '''NVMe''' Solid State Drivepi-os-droid镜像到emmc中的方法"></span>== 烧录Orange Pi OS (Droid)镜像到eMMC中的方法 ==
….<span id="通过type-c线将orange-pi-os-droid-镜像烧录到emmc"></span>=== 通过Type-C线将Orange Pi OS (Droid) 镜像烧录到eMMC ===
# linux镜像中已经预装了balenaEtcher,打开方法如下所示:'''注意,下面所有的操作都是在Windows电脑中进行的。'''
<div classol style="figurelist-style-type: decimal;"><li><p>开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:</p><p>[[File:media/image78.png|324x149px]]</p></li><li><p>还需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:media/image20.png|127x129px]]</p></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和烧录工具'''RKDevTool_Release_v2.96.zip''',请确保下载的'''RKDevTool'''工具的的版本为'''v2.96'''</p></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载Orange Pi OS (Droid)的镜像</p><p>[[File:media/image169.png|286x49px]]</p></li><li><p>然后使用解压软件解压下载的Orange Pi OS (Droid)镜像的压缩包,解压后的文件中,以”.img” 结尾的文件就是Orange Pi OS (Droid)镜像文件,大小在1GB以上</p></li><li><p>然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可</p><p>[[File:media/image47.png|575x169px]]</p></li><li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>点击”'''驱动安装'''”按钮</p><p>[[File:media/image48.png|300x157px]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:media/image49.png|429x223px]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可</p><p>[[File:media/image50.png|575x170px]]</p></li><li><p>打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:media/image51.png|575x270px]]</p></li><li><p>然后开始烧录Orange Pi OS (Droid)镜像到eMMC中</p><ol style="list-style-type: lower-alpha;"><li><p>首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示</p><p>[[File:media/image52.png|576x163px]]</p></li><li><p>确保开发板没有插入TF卡,没有连接电源</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:media/image53.png|576x130px]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电</p><p>[[File:media/image54.png|575x176px]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p><p>[[File:media/image55.png|575x270px]]</p></li><li><p>然后点击烧录工具的”'''升级固件'''”一栏</p><p>[[File:media/image159.png|576x119px]]</p></li><li><p>接着点击”'''固件'''”按钮选择需要烧录的Orange Pi OS &gt; (Droid)镜像的路径</p><p>[[File:media/image160.png|575x123px]]</p></li><li><p>最后点击”'''升级'''”按钮就会开始烧录,烧录过程中的log如下图所示。烧录完成后Orange &gt; Pi OS (Droid)系统会自动启动。</p><p>[[File:media/image170.png|575x270px]]</p></li></ol></li></ol>
[[File:media<span id="通过tf卡将orange-pi-os-droid镜像烧录到emmc"></db463db0603506d0545ab7365958e3d7.png|IMG_256]]span>=== 通过TF卡将Orange Pi OS (Droid)镜像烧录到eMMC ===
</div>'''如果没有预装,balenaEtcher arm64版本的下载安装方法请参考'''[[#_下载安装arm64版本balenaEtcher的方法|'''下载安装arm64版本balenaEtcher的方法''']]'''小节的说明。注意,下面所有的操作都是在Windows电脑中进行的。'''
# balenaEtcher打开后的界面如下所示:<ol style="list-style-type: decimal;"><li><p>开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:</p><p>[[File:media/image78.png|367x168px]]</p></li><li><p>还需要准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''或以上,建议使用闪迪等品牌的TF卡</p></li><li><p>然后使用读卡器把TF卡插入电脑</p></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载SDDiskTool烧写工具,'''请确保SDDiskTool工具的版本为最新的v1.72'''</p></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载Orange Pi OS (Droid)的镜像</p><p>[[File:media/image169.png|286x49px]]</p></li><li><p>然后使用解压软件解压下载的Orange Pi OS (Droid)镜像的压缩包,解压后的文件中,以”.img” 结尾的文件就是Orange Pi OS (Droid)镜像文件,大小在1GB以上</p></li><li><p>然后使用解压软件解压'''SDDiskTool_v1.72.zip''',此软件无需安装,在解压后的文件夹中找到'''SD_Firmware_Tool.exe'''打开即可</p><p>[[File:media/image154.png|575x138px]]</p></li><li><p>打开'''SDDiskTool'''后,如果TF卡识别正常,会在”'''选择可移动磁盘设备'''”一栏中显示插入的磁盘设备,'''请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的''',如果没有显示可以尝试拔插下TF卡</p><p>[[File:media/image155.png|267x228px]]</p></li><li><p>确认完盘符后,可以先格式化下TF卡,点击'''SDDiskTool'''中的'''恢复磁盘'''按钮即可,也可使用前面提到的'''SD Card Formatter'''进行TF卡的格式化</p><p>[[File:media/image156.png|247x212px]]</p></li><li><p>然后开始将Orange Pi OS (Droid)镜像写入TF卡</p><ol style="list-style-type: lower-alpha;"><li><p>首先在'''“选择可移动磁盘设备”'''下面确认显示的盘符为TF卡对应的盘符</p></li><li><p>然后在”'''选择功能模式'''”中选择'''“固件升级”'''</p></li><li><p>然后在”'''选择升级固件'''”一栏中选择Orange Pi OS (Droid)固件的路径</p></li><li><p>最后点击”'''开始创建'''”按钮就会开始烧录</p><p>[[File:media/image162.png|341x290px]]</p></li></ol></li><li><p>烧录完成后的显示如下图所示,然后就可以退出SDDiskTool</p><p>[[File:media/image163.png|285x243px]]</p></li><li><p>然后把TF卡从电脑中拔出来插到开发板中,开发板上电启动后就会自动开始将TF卡中的Orange Pi OS (Droid)镜像烧录到开发板的eMMC中</p></li><li><p>如果开发板连接了HDMI显示器,还可以从HDMI显示器中看到烧录Orange Pi OS (Droid)镜像到eMMC中的进度条</p><p>[[File:media/image164.png|430x247px]]</p></li><li><p>当HDMI显示器显示如下信息时,说明烧录Orange Pi OS (Droid)镜像到eMMC中已完成,此时就可以拔出TF卡,然后eMMC中的Orange Pi OS (Droid)系统就会开始启动。</p><p>[[File:media/image165.png|576x389px]]</p></li></ol>
<div classspan id="figure烧录orange-pi-os-droid镜像到spiflashnvme-ssd中"></span>== 烧录Orange Pi OS (Droid)镜像到SPIFlash+NVMe SSD中 ==
[[File:media/4bfda35a981f23c25b02b064980a0b7f.png|IMG_256]]'''注意,下面所有的操作都是在Windows电脑中进行的。'''
<ol style="list-style-type: decimal;"><li><p>首先需要准备一个2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。</p><p>[[File:media/image24.png|314x91px]]</p></li><li><p>然后把NVMe SSD插入开发板的M.2 PCIe接口,并固定好</p><p>[[File:media/image86.png|323x130px]]</p></li><li><p>SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</p><p>[[File:media/image87.png|382x105px]]</p></li><li><p>还需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:media/image20.png|143x145px]]</p></li><li><p>然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip''',烧录工具'''RKDevTool_Release_v2.96.zip''',请确保下载的'''RKDevTool'''工具的的版本为'''v2.96'''</p></li><li><p>然后下载Orange Pi OS (Droid)的镜像,打开Orange Pi OS (Droid)镜像的下载链接后可以看到下面两种类型的镜像,请选择带'''spi-nvme'''的镜像进行下载</p><p>[[File:media/image171.png|352x62px]]</p></li><li><p>然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可</p><p>[[File:media/image47.png|575x169px]]</p></divli># 使用balenaEtcher烧录u<li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-boot到开发板SPI Flash中的方法如下所示:type: lower-alpha;">## 首先点击<li><p>点击”'''驱动安装'''”按钮</p><p>[[File:media/image48.png|300x157px]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'Flash from file''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:media/image49.png|429x223px]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可</p><p>[[File:media/image50.png|575x170px]]</p></li><li><p>打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:media/image51.png|575x270px]]</p></li><li><p>然后开始烧录Android镜像到SPIFlash+NVMe SSD中</p><ol style="list-style-type: lower-alpha;"><li><p>首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示</p><p>[[File:media/image52.png|576x163px]]</p></li><li><p>确保开发板没有插入TF和eMMC模块,没有连接电源</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:media/image53.png|576x130px]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了</p><p>[[File:media/image54.png|575x176px]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p><p>[[File:media/image55.png|575x270px]]</p></li><li><p>然后点击烧录工具的”'''升级固件'''”一栏</p><p>[[File:media/image159.png|576x119px]]</p></li><li><p>接着点击”'''固件'''”按钮选择需要烧录的Orange Pi OS (Droid)镜像</p><p>[[File:media/image160.png|575x123px]]</p></li><li><p>最后点击”'''升级'''”按钮就会开始烧录,烧录的过程如下图所示,可以看到,首先会烧录固件到SPIFlash中,然后烧录固件到PCIE中。烧录完成后Orange &gt; Pi OS (Droid)系统会自动启动。</p><p>[[File:media/image168.png|575x270px]]</p></li></ol></li></ol>
<div class="figure">= 启动香橙派开发板 ==
[[File:media/bcd77dfc718bcd24d2b3b07d39888566.png|IMG_256]]# 将烧录好镜像的TF卡或eMMC模块插入香橙派开发板的TF卡插槽中。如果SPIFlash+NVMe SSD已经烧录好镜像了,那么就不需要插入TF卡或eMMC模块了,只需确保NVMe SSD正常插入到开发板中即可。# 开发板有HDMI接口,可以通过HDMI转HDMI连接线把开发板连接到电视或者HDMI显示器。如果有购买LCD屏幕,也可以使用LCD屏幕来显示开发板的系统界面。如果有Type-C转HDMI的线,也可以通过Type-C接口来显示开发板的系统界面。# 接上USB鼠标和键盘,用于控制香橙派开发板。</div># 开发板有以太网口,可以插入网线用来上网。# 然后进入'''/usr/lib连接一个5V/linux-u-boot4A的USB Type-legacy-orangepi5plus_1.x.x_arm64'''目录,再选择'''rkspi_loader.img''',再点击C接口的'''Open高品质'''打开的电源适配。
[[File:media/0f071bc08470c49f60b9cede5ff613cd.png]]'''切记不要插入电压输出大于5V的电源适配器,会烧坏开发板。'''
# 打开'''rkspi_loader.img系统上电启动过程中很多不稳定的现象基本都是供电有问题导致的,所以一个靠谱的电源适配器很重要。如果启动过程中发现有不断重启的现象,请更换下电源或者Type-C数据线再试下。'''后的界面如下所示:
[[File:media/b0894fc0f790a30947a020b647e61ca3.png]]'''Type-C电源接口是不支持PD协商的。'''
# 然后点击'''Select target另外请不要接到电脑的USB接口来给开发板供电。'''
<div class="figure">'''开发板上有两个长得一样的Type-C接口,其中网口旁边竖着的那个才是电源接口,另外那个Type-C接口是没有供电功能的,请别接错了。'''
[[File:media/c136bf32af304d3ed19fdca6c2cfad6bimage15.png|IMG_256262x234px]]
<ol start="6" style="list-style-type: decimal;"><li><p>然后打开电源适配器的开关,如果一切正常,此时HDMI显示器或者LCD屏幕就能看到系统的启动画面了。</divp></li># 然后点击<li><p>如果想通过调试串口查看系统的输出信息,请使用串口线将开发板连接到电脑,串口的连接方法请参看[[\l|'''Show 2 hidden调试串口的使用方法'''打开更多存储设备的选项]]一节。</p></li></ol>
<div class="figure">= 调试串口的使用方法 ==
[[File:media/ac2317519307c6249b11b5a090ab8991.png|IMG_256]]=== 调试串口的连接说明 ===
</div># 然后选择SPI Flash的设备名首先需要准备一个'''/dev/mtdblock0''',然后点击'''Select3.3V'''的USB转TTL模块,然后将USB转TTL模块的USB接口一端插入到电脑的USB接口中。
<div class="figure">'''为了更好的兼容性,推荐使用CH340 USB转TTL模块,请不要使用CP2102、PL2303类型的USB转TTL模块。'''
[[File:media/21e68b1f9a0f46c7f00253209c359823.png|IMG_256]]'''购买USB转TTL模块前,请确认模块支持1500000速率的波特率。'''
<[[File:media/div># 然后点击'''Flash'''image172.png|569x114px]]
<ol start="2" style="list-style-type: decimal;">
<li><p>开发板的调试串口GND、RXD和TXD引脚的对应关系如下图所示:</p>
<p>[[File:media/image173.png|485x174px]]</p></li>
<li><p>USB转TTL模块GND、TXD和RXD引脚需要通过杜邦线连接到开发板的调试串口上</p>
<ol style="list-style-type: lower-alpha;">
<li><p>USB转TTL模块的GND接到开发板的GND上</p></li>
<li><p>USB转TTL模块的'''RX接到开发板的TX上'''</p></li>
<li><p>USB转TTL模块的'''TX接到开发板的RX上'''</p></li></ol>
</li>
<li><p>USB转TTL模块连接电脑和Orange Pi开发板的示意图如下所示</p>
<div class="figure">
[[File:media/fc6bd6a8c7c07de69ec06060a6573dddimage174.pngjpeg|IMG_256524x189px|QQ图片20210204145010]]
</div>
# 然后点击<p>'''Yes, I’m sure串口的TX和RX是需要交叉连接的,如果不想仔细区分TX和RX的顺序,可以把串口的TX和RX先随便接上,如果测试没有输出再交换下TX和RX的顺序,这样就总有一种顺序是对的。'''</p></li></ol>
<div classspan id="figureubuntu平台调试串口的使用方法"></span>=== Ubuntu平台调试串口的使用方法 ===
[[File:media/3e8e47b9496aa156568cfd7435c1ddeb.png|IMG_256]]'''Linux下可以使用的串口调试软件有很多,如putty、minicom等,下面演示下putty的使用方法。'''
<ol style="list-style-type: decimal;"><li><p>首先将USB转TTL模块插入Ubuntu电脑的USB接口,如果USB转TTL模块连接识别正常,在Ubuntu PC的'''/dev'''下就可以看到对应的设备节点名,记住这个节点名,后面设置串口软件时会用到。</divp># 然后输入开发板linux系统的密码<p>test@test:~$ '''orangepils /dev/ttyUSB*''',就会开始烧录u</p><p>/dev/ttyUSB0</p></li><li><p>然后使用下面的命令在Ubuntu PC上安装下putty</p><p>test@test:~$ '''sudo apt-boot镜像到SPI Flash中get update'''</p><p>test@test:~$ '''sudo apt-get install -y putty'''</p></li><li><p>然后运行putty,'''记得加sudo权限'''</p><p>test@test:~$ '''sudo putty'''</p></li><li><p>执行putty命令后会弹出下面的界面</p><p>[[File:media/image175.png|367x321px]]</p></li><li><p>首先选择串口的设置界面</p><p>[[File:media/image176.png|359x352px]]</p></li><li><p>然后设置串口的参数</p><ol style="list-style-type: lower-alpha;"><li><p>设置Serial line to connect &gt; to为/dev/ttyUSB0(修改为对应的节点名,一般为/dev/ttyUSB0)</p></li><li><p>设置Speed(baud)为'''1500000'''(串口的波特率)</p></li><li><p>设置Flow control为None</p><p>[[File:media/image177.png|316x312px]]</p></li></ol></li><li><p>在串口的设置界面设置完后,再回到Session界面</p><ol style="list-style-type: lower-alpha;"><li><p>首先选择Connection type为Serial</p></li><li><p>然后点击Open按钮连接串口</p><p>[[File:media/image178.png|345x340px]]</p></li></ol></li><li><p>启动开发板后,就能从打开的串口终端中看到系统输出的Log信息了</p><p>[[File:media/image179.png|287x208px]]</p></li></ol>
<div classspan id="figurewindows平台调试串口的使用方法"></span>=== Windows平台调试串口的使用方法 ===
[[File:media/2d34eeb0deab3c91d2469620a3746c0f.png|IMG_256]]'''Windows下可以使用的串口调试软件有很多,如SecureCRT、MobaXterm等,下面演示MobaXterm的使用方法,这款软件有免费版本,无需购买序列号即可使用。'''
<ol style="list-style-type: decimal;"><li><p>下载MobaXterm</p><ol style="list-style-type: lower-alpha;"><li><p>下载MobaXterm网址如下</p><p>[https://mobaxterm.mobatek.net/ '''https://mobaxterm.mobatek.net''']</p></li><li><p>进入MobaXterm下载网页后点击'''GET XOBATERM NOW!'''</p><p>[[File:media/image180.png|576x334px]]</p></li><li><p>然后选择下载Home版本</p><p>[[File:media/image181.png|353x231px]]</p></li><li><p>然后选择Portable便携式版本,下载完后无需安装,直接打开就可以使用</p><p>[[File:media/image182.png|575x259px]]</p></li></ol></divli># 烧录过程的显示如下所示:<li><p>下载完后使用解压缩软件解压下载的压缩包,即可得到MobaXterm的可执软件,然后双击打开</p><p>[[File:media/image183.png|576x81px]]</p></li><li><p>打开软件后,设置串口连接的步骤如下</p><ol style="list-style-type: lower-alpha;"><li><p>打开会话的设置界面</p></li><li><p>选择串口类型</p></li><li><p>选择串口的端口号(根据实际的情况选择对应的端口号),如果看不到端口号,请使用[http://weishi.360.cn/qudongdashi/ '''360驱动大师''']扫描安装USB转TTL串口芯片的驱动</p></li><li><p>选择串口的波特率为'''1500000'''</p></li><li><p>最后点击”'''OK'''”按钮完成设置</p></li></ol></li></ol>
<div class="figure">[[File:media/image184.png|575x438px]]
<ol start="4" style="list-style-type: decimal;"><li><p>点击”'''OK'''”按钮后会进入下面的界面,此时启动开发板就能看到串口的输出信息了</p><p>[[File:media/06073e8f64c978992df7c77365af9102image185.png|IMG_256575x291px]]</p></li></ol>
<span id="ubuntudebian-server和xfce桌面系统使用说明"></divspan># 烧录完成后的显示如下所示:= Ubuntu/Debian Server和Xfce桌面系统使用说明 =
<div class="figure">'''本章内容是基于Ubuntu/Debian的服务器版本镜像和xfce桌面版本镜像编写的。'''
'''如果使用的是Ubuntu22.04 Gnome镜像,请先查看[[File:media/dacdf69b64bb2e7dda8465d942be44c4\l|Ubuntu22.png|IMG_25604 Gnome Wayland桌面系统使用说明]]一章的说明。'''
</div># 烧录TF卡中的linux系统到NVMe SSD中的方法(此方法相当于将TF卡中的系统克隆到NVMe SSD)## 首先点击'''Clone drive[[\l|Ubuntu22.04 Gnome Wayland桌面系统使用说明]]一章中不存在的内容,可以参考此章的说明,但是有些细节是会有差异的,这点请特别注意下。'''
<div class="figure">'''如果使用的是OPi OS Arch镜像,请查看[[\l|Orange Pi OS Arch系统使用说明]]一章的内容。'''
[[File:media<span id="已支持的ubuntudebian镜像类型和内核版本"></09bb4c33bf4872ce16fec074697560cb.png|IMG_256]]span>== 已支持的Ubuntu/Debian镜像类型和内核版本 ==
</div>{| class="wikitable"|-| style="text-align: left;"| '''Linux镜像类型'''| style="text-align: left;"| '''内核版本'''| style="text-align: left;"| '''服务器版'''| style="text-align: left;"| '''桌面版'''|-| style="text-align: left;"| '''Debian 11 - Bullseye'''| style="text-align: left;"| '''Linux5.10'''| style="text-align: left;"| '''支持'''# 然后选择TF卡的设备名| style="text-align: left;"| '''/dev/mmcblk1支持'''|-<div class| style="text-align: left;"| '''Debian 12 - Bookworm'''| style="text-align: left;"| '''Linux5.10'''| style="text-align: left;"| '''计划支持'''| style="text-align: left;"| '''计划支持'''|-| style="text-align: left;"| '''Ubuntu 20.04 - Focal'''| style="text-align: left;"| '''Linux5.10'''| style="text-align: left;"| '''支持'''| style="text-align: left;"| '''支持'''|-| style="text-align: left;"| '''Ubuntu 22.04 - Jammy'''| style="text-align: left;"| '''Linux5.10'''| style="text-align: left;"| '''支持'''| style="figuretext-align: left;">| '''支持'''|}
[[File:media/b37893e28622574fc5efe99bce1e1819.png|IMG_256]]== linux系统适配情况 ==
</div>{| class="wikitable"# 打开TF卡后的界面如下所示:|-| style="text-align: left;"| '''功能'''<div class| style="figuretext-align: left;">| '''Linux5.10驱动'''| style="text-align: left;"| '''Debian11'''[[File| style="text-align:media/12049fba8819f7ec5924d8a9abe7b243left;"| '''Ubuntu20.png04'''| style="text-align: left;"| '''Ubuntu22.04'''|-| style="text-align: left;"| '''HDMI TX1视频'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX1音频'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX2视频'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX2音频'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI RX视频'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI RX音频'''| style="text-align: left;"| '''OK'''| style="text-align: left;"|IMG_256]]'''OK'''| style="text-align: left;"| '''OK'''</div>| style="text-align: left;"| '''OK'''|-# 然后点击| style="text-align: left;"| '''Select targetUSB2.0X2'''| style="text-align: left;"| '''OK'''<div class| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="figuretext-align: left;">| '''OK'''|-[[File| style="text-align:media/c136bf32af304d3ed19fdca6c2cfad6bleft;"| '''USB3.png0X2'''| style="text-align: left;"| '''OK'''| style="text-align: left;"|IMG_256]]'''OK'''| style="text-align: left;"| '''OK'''</div>| style="text-align: left;"| '''OK'''# 然后点击|-| style="text-align: left;"| '''Show 2 hidden.5G PCIe网口X2'''打开更多存储设备的选项| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''<div class| style="figuretext-align: left;">| '''OK'''|-[[File| style="text-align:media/ac2317519307c6249b11b5a090ab8991left;"| '''2.png5G PCIe网口灯'''|IMG_256]]style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''</div>| style="text-align: left;"| '''OK'''# 然后选择NVMe SSD的设备名| style="text-align: left;"| '''/dev/nvme0n1OK''',然后点击|-| style="text-align: left;"| '''Select调试串口'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''[[File| style="text-align:media/52daeb90d9b6df19685ff9cb0fa23888left;"| '''OK'''|-| style="text-align: left;"| '''RTC芯片'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''FAN风扇接口'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''eMMC扩展接口'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AP6275P-WIFI'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AP6275P-BT'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AX200-WIFI'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AX200-BT'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AX210-WIFI'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AX210-BT'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''RTL8852BE-WIFI'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''RTL8852BE-BT'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''MaskROM按键'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C转USB3.png]]0'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C ADB功能'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C DP视频'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C DP音频'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''开关机按键'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''红外功能'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''三色LED灯'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''板载MIC'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''耳机播放'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''耳机录音'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''SPK喇叭'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-# 然后点击| style="text-align: left;"| '''Flash40PIN GPIO'''| style="text-align: left;"| '''OK'''<div class| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN I2C'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN SPI'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN UART'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN CAN'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN PWM'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''TF卡启动'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''SPI+NVME启动'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''OV13850摄像头'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''OV13855摄像头'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''GPU'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''VPU'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''NPU'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''REBOOT命令重启'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Poweroff命令关机'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''MIPI LCD显示'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''MIPI LCD触摸'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="figuretext-align: left;">| '''OK'''|-| style="text-align: left;"| '''Chromium硬解视频'''[[File| style="text-align:media/d4bdce400cdffa1cd1899e991274a04f.pngleft;"|IMG_256]]'''OK'''| style="text-align: left;"| '''OK'''</div>| style="text-align: left;"| '''OK'''# 然后点击| style="text-align: left;"| '''Yes, I’m sureOK'''|}
<div class="figure">= 本手册linux命令格式说明 ==
<ol style="list-style-type: decimal;"><li><p>本手册中所有需要在Linux系统中输入的命令都会使用下面的方框框起来</p><p>如下所示,黄色方框里内容表示需要特别注意的内容,这里面的命令除外。</p></li><li><p>命令前面的提示符类型说明</p><ol style="list-style-type: lower-alpha;"><li><p>命令前面提示符指的是下面方框内红色部分的内容,这部分内容不是linux命令的一部分,所以在linux系统中输入命令时,请不要把红色字体部分的内容也输入进去。</p><p>'''orangepi@orangepi:~$ sudo apt update'''</p><p>'''root@orangepi:~#''' '''vim /boot/boot.cmd'''</p><p>'''test@test:~$ ssh [mailto:root@192.168.1.36 root@192.168.1.]xxx'''</p><p>'''root@test:~# ls'''</p></li><li><p>'''root@orangepi:~$''' &gt; 提示符表示这个命令是在'''开发板的linux系统'''中输入的, &gt; 提示符最后的 '''$''' &gt; 表示系统当前用户为普通用户,当执行特权命令时,需要加上'''sudo'''</p></li><li><p>'''root@orangepi:~#''' &gt; 提示符表示这个命令是在'''开发板的linux系统'''中输入的, &gt; 提示符最后的 '''#''' &gt; 表示系统当前用户为root用户,可以执行任何想要执行的命令</p></li><li><p>'''test@test:~$''' 提示符表示这个命令是在Ubuntu &gt; PC或者Ubuntu虚拟机中输入的,而不是开发板的linux系统中。提示符最后的 &gt; '''$''' &gt; 表示系统当前用户为普通用户,当执行特权命令时,需要加上'''sudo'''</p></li><li><p>'''root@test:~#''' 提示符表示这个命令是在Ubuntu &gt; PC或者Ubuntu虚拟机中输入的,而不是开发板的linux系统中。提示符最后的 &gt; '''#''' 表示系统当前用户为root用户,可以执行任何想要执行的命令</p></li></ol></li><li><p>哪些是需要输入的命令?</p><ol style="list-style-type: lower-alpha;"><li><p>如下所示,'''黑色加粗部分'''是需要输入的命令,命令下面的是输出的内容(有些命令有输出,有些可能没有输出),这部分内容是不需要输入的</p><p>root@orangepi:~# '''cat /boot/orangepiEnv.txt'''</p><p>'''verbosity=7'''</p><p>bootlogo=false</p><p>'''console=serial'''</p></li><li><p>如下所示,有些命令一行写不下会放到下一行,只要黑色加粗的部分就都是需要输入的命令。当这些命令输入到一行的时候,每行最后的”'''\'''”是需要去掉的,这个不是命令的一部分。另外命令的不同部分都是有空格的,请别漏了</p><p>orangepi@orangepi:~$ '''echo \'''</p><p>'''&quot;deb [Filearch=$(dpkg --print-architecture) \'''</p><p>'''signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \'''</p><p>'''https:media/854a2530f68e66a7028b93704b61b753/download.pngdocker.com/linux/debian \'''</p><p>'''$(lsb_release -cs) stable&quot; |IMG_256]]sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null'''</p></li></ol></li></ol>
</div># 然后输入开发板linux系统的密码orangepi,就会开始烧录linux镜像到SSD中== linux系统登录说明 ==
<div class="figure">== linux系统默认登录账号和密码 ===
[[File{| class="wikitable"|-| style="text-align: left;"| '''账号'''| style="text-align: left;"| '''密码'''|-| style="text-align: left;"| '''root'''| style="text-align: left;"| '''orangepi'''|-| style="text-align: left;"| '''orangepi'''| style="text-align:media/5633a026d977e654c258b88a042b8b29.pngleft;"| '''orangepi'''|IMG_256]]} '''注意,输入密码的时候,屏幕上是不会显示输入的密码的具体内容的,请不要以为是有什么故障,输入完后直接回车即可。'''</div># 烧录过程的显示如下所示:'''当输入密码提示错误,或者ssh连接有问题,请注意,只要使用的是Orange Pi提供的Linux镜像,就请不要怀疑上面的密码不对,而是要找其它的原因。'''
[[File:media/a6a0747563cc053e29be4160b337a89e.png]]=== 设置linux系统终端自动登录的方法 ===
<div classol style="figurelist-style-type: decimal;"><li><p>linux系统默认就是自动登录终端的,默认登录的用户名是'''orangepi'''</p><p>[[File:media/image186.png|575x376px]]</p></li><li><p>使用下面的命令可以设置root用户自动登录终端</p><p>orangepi@orangepi:~$ '''sudo auto_login_cli.sh root'''</p></li><li><p>使用下面的命令可以禁止自动登录终端</p><p>orangepi@orangepi:~$ '''sudo auto_login_cli.sh -d'''</p></li><li><p>使用下面的命令可以再次设置orangepi用户自动登录终端</p><p>orangepi@orangepi:~$ '''sudo auto_login_cli.sh orangepi'''</p></li></ol>
[[File:media/52b419038836c65e66a22f49d779fa66.png|IMG_256]]=== linux桌面版系统自动登录说明 ===
<ol style="list-style-type: decimal;"><li><p>桌面版系统启动后会自动登录进入桌面,无需输入密码</p><divclass="figure"># 烧录完成后的显示如下所示:
[[File:media/091e14751d63864d74bb976f558c9983image187.png|576x324px|1]]
# 然后需要扩容下NVMe SSD中rootfs分区的容量,步骤如下所示:</div></li>## 首先打开<li><p>运行下面的命令可以禁止桌面版系统自动登录桌面</p><p>orangepi@orangepi:~$ '''sudo disable_desktop_autologin.sh'''</p></li><li><p>然后重启系统就会出现登录对话框,此时需要输入[[\l|'''GParted密码''']]才能进入系统</p></li></ol>
<div class="figure">
[[File:media/f9e7ee4c7b9d283ef85636374fd137c6image188.png|569x320px|IMG_256]]
</div>
# 然后输入linux系统的密码orangepi,再点击'''Authenticate'''<span id="linux桌面版系统root用户自动登录的设置方法"></span>=== Linux桌面版系统root用户自动登录的设置方法 ===
<ol style="list-style-type: decimal;"><li><p>执行下面的命令可以设置桌面版系统使用root用户自动登录</p><p>orangepi@orangepi:~$ '''sudo desktop_login.sh root'''</p></li><li><p>然后重启系统,就会自动使用root用户登录桌面了</p><p>[[File:media/0b31f76e5827f43bf2b22cafd024915cimage189.png|448x187px]]</p><p>'''注意,如果使用root用户登录桌面系统,是无法使用右上角的pulseaudio来管理音频设备的。'''</p><p>'''另外请注意这并不是一个bug,因为pulseaudio本来就不允许在root用户下运行。'''</p></li><li><p>执行下面的命令可以再次设置桌面版系统使用orangepi用户自动登录</p><p>orangepi@orangepi:~$ '''sudo desktop_login.sh orangepi'''</p></li></ol>
# 然后点击'''Fix'''<span id="linux桌面版系统禁用桌面的方法"></span>=== Linux桌面版系统禁用桌面的方法 ===
[[File<ol style="list-style-type:mediadecimal;"><li><p>首先在命令行中输入下面的命令,'''请记得加sudo权限'''</ae4cead90a273e276b4668cc3fb88002p><p>orangepi@orangepi:~$ '''sudo systemctl disable lightdm.png]]service'''</p></li><li><p>然后重启Linux系统就会发现不会显示桌面了</p><p>orangepi@orangepi:~$ '''sudo reboot'''</p></li><li><p>重新打开桌面的步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先在命令行中输入下面的命令,'''请记得加sudo权限'''</p><p>orangepi@orangepi:~$ '''sudo systemctl start lightdm.service'''</p></li><li><p>选择完后显示器就会显示桌面了</p></li></ol></li></ol>
# 然后选择NVMe SSD<span id="板载led灯测试说明"></span>== 板载LED灯测试说明 ==
<div ol style="list-style-type: decimal;"><li><p>开发板上有一个红绿蓝三色灯,所在位置如下图所示:</p><p>[[File:media/image190.png|374x77px]]</p></li><li><p>'''只要开发板打开了电源,红色的LED灯就会常亮,这是由硬件控制的,软件无法关闭。通过红色的LED灯可以确定开发板的电源是否已正常开启。'''</p></li><li><p>绿色和蓝色的LED灯在内核启动后会一直闪烁,这是由软件控制的。</p></li><li><p>设置绿灯亮灭和闪烁的方法如下所示:</p><p>'''注意,下面的操作请在root用户下进行。'''</p><ol style="list-style-type: lower-alpha;"><li><p>首先进入绿灯的设置目录</p><p>root@orangepi:~# '''cd /sys/class/leds/green_led'''</p></li><li><p>设置绿灯停止闪烁的命令如下</p><p>root@orangepi:/sys/class/leds/green_led# '''echo none &gt; trigger'''</p></li><li><p>设置绿灯常亮的命令如下</p><p>root@orangepi:/sys/class/leds/green_led# '''echo default-on &gt; trigger'''</p></li><li><p>设置绿灯闪烁的命令如下</p><p>root@orangepi:/sys/class/leds/green_led# '''echo heartbeat &gt; trigger'''</p></li></ol></li><li><p>设置蓝灯亮灭和闪烁的方法如下所示:</p><p>'''注意,下面的操作请在root用户下进行。'''</p><ol style="figurelist-style-type: lower-alpha;"><li><p>首先进入绿灯的设置目录</p><p>root@orangepi:~# '''cd /sys/class/leds/blue_led'''</p></li><li><p>设置绿灯停止闪烁的命令如下</p><p>root@orangepi:/sys/class/leds/blue_led# '''echo none &gt; trigger'''</p></li><li><p>设置绿灯常亮的命令如下</p><p>root@orangepi:/sys/class/leds/blue_led# '''echo default-on &gt; trigger'''</p></li><li><p>设置绿灯闪烁的命令如下</p><p>root@orangepi:/sys/class/leds/blue_led# '''echo heartbeat &gt; trigger'''</p></li></ol></li></ol>
[[File:media/26724aba59165d5ff0b04942c7f447a7.png|IMG_256]]== 网络连接测试 ==
<span id="g以太网口测试"></divspan># 选择NVMe SSD后的显示界面如下所所示:=== 2.5G以太网口测试 ===
<div classol style="figurelist-style-type: decimal;"><li><p>开发板有两个2.5G的以太网接口,两个网口的测试方法是一样的。首先将网线的一端插入开发板的以太网接口,网线的另一端接入路由器,并确保网络是畅通的。</p></li><li><p>系统启动后会通过'''DHCP'''自动给以太网卡分配IP地址,'''不需要其他任何配置'''。</p></li><li><p>在开发板的Linux系统中查看IP地址的命令如下所示:</p><p>orangepi@orangepi:~$ '''ip addr show'''</p><p>1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000</p><p>link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00</p><p>inet 127.0.0.1/8 scope host lo</p><p>valid_lft forever preferred_lft forever</p><p>inet6 ::1/128 scope host</p><p>valid_lft forever preferred_lft forever</p><p>2: '''enP3p49s0''': &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP group default qlen 1000</p><p>link/ether 00:e0:4c:68:00:26 brd ff:ff:ff:ff:ff:ff</p><p>inet '''192.168.1.245'''/24 brd 192.168.1.255 scope global dynamic noprefixroute enP3p49s0</p><p>valid_lft 42537sec preferred_lft 42537sec</p><p>inet6 fe80::9005:95ac:b9c0:2beb/64 scope link noprefixroute</p><p>valid_lft forever preferred_lft forever</p><p>3: '''enP4p65s0''': &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP group default qlen 1000</p><p>link/ether 00:e0:4c:68:00:27 brd ff:ff:ff:ff:ff:ff</p><p>inet '''192.168.1.247'''/24 brd 192.168.1.255 scope global dynamic noprefixroute enP4p65s0</p><p>valid_lft 43179sec preferred_lft 43179sec</p><p>inet6 fe80::62b5:dc5e:728e:39a3/64 scope link noprefixroute</p><p>valid_lft forever preferred_lft forever</p><p>'''当使用ifconfig查看IP地址时,如果提示下面的信息,是因为没有加sudo导致的,正确的命令是:sudo ifconfig'''</p><p>orangepi@orangepi:~$ '''ifconfig'''</p><p>Command 'ifconfig' is available in the following places</p><p>* /sbin/ifconfig</p><p>* /usr/sbin/ifconfig</p><p>The command could not be located because '/sbin:/usr/sbin' is not included in the PATH environment variable.</p><p>This is most likely caused by the lack of administrative privileges associated with your user account.</p><p>ifconfig: command not found</p></li></ol>
[[File:media/1178f121a97a7e9eb91f37478a2fd603.png|IMG_256]]'''开发板启动后查看IP地址有三种方法:'''
</div># '''接HDMI显示器,然后登录系统使用ip addr show命令查看IP地址'''# 然后选择'''/dev/nvme0n1p2在调试串口终端输入ip addr show命令来查看IP地址'''分区,再击点击右键,再选择# '''Resize/Move如果没有调试串口,也没有HDMI显示器,还可以通过路由器的管理界面来查看开发板网口的IP地址。不过这种方法经常有人会无法正常看到开发板的IP地址。如果看不到,调试方法如下所示:'''
<div class!-- --><ol style="figurelist-style-type: upper-alpha;"><li><p>'''首先检查Linux系统是否已经正常启动,如果开发板的三色灯在闪烁了,一般是正常启动了,如果只亮红灯,说明系统都没正常启动;'''</p></li><li><p>'''检查网线有没有插紧,或者换根网线试下;'''</p></li><li><p>'''换个路由器试下(路由器的问题有遇到过很多,比如路由器无法正常分配IP地址,或者已正常分配IP地址但在路由器中看不到);'''</p></li><li><p>'''如果没有路由器可换就只能连接HDMI显示器或者使用调试串口来查看IP地址。'''</p><p>'''另外需要注意的是开发板DHCP自动分配IP地址是不需要任何设置的。'''</p></li></ol>
[[File<!-- --><ol start="4" style="list-style-type:mediadecimal;"><li><p>测试网络连通性的命令如下,'''ping'''命令可以通过'''Ctrl+C'''快捷键来中断运行</598e77754a7b79e0dc612384eb63e444p><p>orangepi@orangepi:~$ '''ping www.baidu.com -I enP4p65s0 #其中一个网口的测试命令'''</p><p>orangepi@orangepi:~$ '''ping www.baidu.com -I enP3p49s0 #另一个网口的测试命令'''</p><p>PING www.a.shifen.com (14.119.104.254) from 192.168.1.182 enP3p49s0: 56(84) bytes of data.</p><p>64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq=1 ttl=56 time=6.26 ms</p><p>64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq=6 ttl=56 time=5.69 ms</p><p>^C</p><p>--- www.a.shifen.com ping statistics ---</p><p>6 packets transmitted, 6 received, 0% packet loss, time 5008ms</p><p>rtt min/avg/max/mdev = 5.671/5.859/6.264/0.png|IMG_256]]202 ms</p></li></ol>
<span id="wifi连接测试"></divspan># 然后在下图所示的位置将容量拖动到最大=== WIFI连接测试 ===
[[File:media/46b9871924b98afb0ee2a394e73e8e59.png]]'''首先请注意Orange Pi 5 Plus开发板上是没有WIFI模块的,需要外接PCIe网卡或者USB网卡才能使用WIFI功能。'''
# 然后点击'''Resize/Move外接PCIe网卡的使用说明请参考[[\l|PCIe WIFI6+蓝牙模块的使用方法]]一小节。'''
'''外接USB网卡的使用说明请参考[[File:media/08cf1d9f66400c2132bb37c5e7486ea4.png\l|USB无线网卡测试]]一小节。'''
# 然后点击下图位置绿色的'''请不要通过修改/etc/network/interfaces配置文件的方式来连接WIFI,通过这种方式连接WIFI网络使用会有问题。'''
[[File:media<span id="服务器版镜像通过命令连接wifi"></fec0790461f2c591f97baf4f06c86e4d.png]]span>==== 服务器版镜像通过命令连接WIFI ====
# 再点击'''Apply当开发板没有连接以太网,没有连接HDMI显示器,只连接了串口时,推荐使用此小节演示的命令来连接WIFI网络。因为nmtui在某些串口软件(如minicom)中只能显示字符,无法正常显示图形界面。当然,如果开发板连接了以太网或者HDMI显示屏,也可以使用此小节演示的命令来连接WIFI网络的。'''
[[File:media/ce3376d260f85c58842061e833487cec.png]]'''下面演示的命令都是默认WIFI的网络设备节点名为wlan0,但不同的WIFI模块节点名会有不同,请注意替换为实际看到的节点名,不要照抄。'''
# 然后点击<ol style="list-style-type: decimal;"><li><p>先登录linux系统,有下面三种方式</p><ol style="list-style-type: lower-alpha;"><li>如果开发板连接了网线,可以通过[[\l|'''Closessh远程登录linux系统'''关闭即可]]</li></ol>
[[File<!-- --><ol style="list-style-type:medialower-alpha;"><li><p>如果开发板连接好了调试串口,可以使用串口终端登录linux系统</db6e7741c5dd47ed8138381fe951f887.png]]p></li><li><p>如果连接了开发板到HDMI显示器,可以通过HDMI显示的终端登录到linux系统</p></li></ol></li></ol>
# 此时就可以使用<!-- --><ol style="list-style-type: decimal;"><li><p>首先使用'''sudo poweroffnmcli dev wifi'''命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动SPIFlash+NVMe SSD中的linux系统了。命令扫描周围的WIFI热点</p># 第<p>orangepi@orangepi:~$ '''9)nmcli dev wifi''' 步是克隆TF卡中的系统到NMVe SSD中,我们还可以直接烧录linux镜像文件到NVMe SSD中,这里大概说下步骤:## 上传linux镜像文件到开发板的linux系统中</p>## 然后使用balenaEtcher烧录即可<div class="figure">
[[File:media/f364ea68c540dfd15dec8845e8345f54image191.png|575x250px|选区_011]]
# </div></li><li><p>然后使用'''使用这种方法烧录镜像后无需手动扩容,第一次启动会自动扩容。nmcli'''命令连接扫描到的WIFI热点,其中:</p><ol style="list-style-type: lower-alpha;"><li><p>'''wifi_name'''需要换成想连接的WIFI热点的名字</p></li><li><p>'''wifi_passwd'''需要换成想连接的WIFI热点的密码</p><p>orangepi@orangepi:~$ '''nmcli dev wifi connect wifi_name password wifi_passwd'''</p><p>Device 'wlan0' successfully activated with 'cf937f88-ca1e-4411-bb50-61f402eef293'.</p></li></ol></li><li><p>通过'''ip addr show wlan0'''命令可以查看wifi的IP地址</p><p>'''WIFI的设备节点名不一定都是wlan0,请以实际看到的为准。'''</p><p>orangepi@orangepi:~$ '''ip addr show wlan0'''</p><p>11: wlan0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000</p><p>link/ether 23:8c:d6:ae:76:bb brd ff:ff:ff:ff:ff:ff</p><p>inet '''192.168.1.11'''/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0</p><p>valid_lft 259192sec preferred_lft 259192sec</p><p>inet6 240e:3b7:3240:c3a0:c401:a445:5002:ccdd/64 scope global dynamic noprefixroute</p><p>valid_lft 259192sec preferred_lft 172792sec</p><p>inet6 fe80::42f1:6019:a80e:4c31/64 scope link noprefixroute</p><p>valid_lft forever preferred_lft forever</p></li><li><p>使用'''ping'''命令可以测试wifi网络的连通性,'''ping'''命令可以通过'''Ctrl+C'''快捷键来中断运行</p><p>'''WIFI的设备节点名不一定都是wlan0,请以实际看到的为准。'''</p><p>orangepi@orangepi:~$ '''ping www.orangepi.org -I wlan0'''</p><p>PING www.orangepi.org (182.92.236.130) from 192.168.1.49 wlan0: 56(84) bytes of data.</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=1 ttl=52 time=43.5 ms</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=2 ttl=52 time=41.3 ms</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=3 ttl=52 time=44.9 ms</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=4 ttl=52 time=45.6 ms</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=5 ttl=52 time=48.8 ms</p><p>^C</p><p>--- www.orangepi.org ping statistics ---</p><p>5 packets transmitted, 5 received, 0% packet loss, time 4006ms</p><p>rtt min/avg/max/mdev = 41.321/44.864/48.834/2.484 ms</p></li></ol>
<span id="烧录openwrt镜像到spi-flash中的方法服务器版镜像通过图形化方式连接wifi"></span>== 烧录OpenWRT镜像到SPI FLASH中的方法 == 服务器版镜像通过图形化方式连接WIFI ====
<ol style="list-style-type: decimal;"><li><p>先登录linux系统,有下面三种方式</p><ol style="list-style-type: lower-alpha;"><li><p>如果开发板连接了网线,可以通过[[\l|'''ssh远程登录linux系统''']]</p></li><li><p>如果开发板连接好了调试串口,可以使用串口终端登录linux系统(串口软件请使用MobaXterm,使用minicom无法显示图形界面)</p></li><li><p>如果连接了开发板到HDMI显示器,可以通过HDMI显示的终端登录到linux系统</p></li></ol></li><li><p>然后在命令行中输入nmtui命令打开wifi连接的界面</p><p>orangepi@orangepi:~$ ''此小节介绍的方法是烧录整个OpenWRT镜像到spi flash中,不需要nvme ssd。也就是说,u'nmtui'''</p></li><li><p>输入nmtui命令打开的界面如下所示</p><p>[[File:media/image192.png|345x215px]]</p></li><li><p>选择'''Activate a connect'''后回车</p><p>[[File:media/image193.png|349x216px]]</p></li><li><p>然后就能看到所有搜索到的WIFI热点</p><p>[[File:media/image194.png|360x229px]]</p></li><li><p>选择想要连接的WIFI热点后再使用Tab键将光标定位到'''Activate'''后回车</p><p>[[File:media/image195.png|366x230px]]</p></li><li><p>然后会弹出输入密码的对话框,在'''Password'''内输入对应的密码然后回车就会开始连接WIFI</p><p>[[File:media/image196.png|352x225px]]</p></li><li><p>WIFI连接成功后会在已连接的WIFI名称前显示一个”*”</p><p>[[File:media/image197.png|349x223px]]</p></li><li><p>通过'''ip addr show wlan0'''命令可以查看wifi的IP地址</p><p>'''WIFI的设备节点名不一定都是wlan0,请以实际看到的为准。'''</p><p>orangepi@orangepi:~$ '''ip addr show wlan0'''</p><p>11: wlan0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000</p><p>link/ether 24:8c:d3:aa:76:bb brd ff:ff:ff:ff:ff:ff</p><p>inet '''192.168.1.11'''/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0</p><p>valid_lft 259069sec preferred_lft 259069sec</p><p>inet6 240e:3b7:3240:c4a0:c401:a445:5002:ccdd/64 scope global dynamic noprefixroute</p><p>valid_lft 259071sec preferred_lft 172671sec</p><p>inet6 fe80::42f1:6019:a80e:4c31/64 scope link noprefixroute</p><p>valid_lft forever preferred_lft forever</p></li><li><p>使用'''ping'''命令可以测试wifi网络的连通性,'''ping'''命令可以通过'''Ctrl+C'''快捷键来中断运行</p><p>'''WIFI的设备节点名不一定都是wlan0,请以实际看到的为准。'''</p><p>orangepi@orangepi:~$ '''ping www.orangepi.org -boot、内核和rootfs都是存放在spi flash中的。I wlan0'''</p><p>PING www.orangepi.org (182.92.236.130) from 192.168.1.49 wlan0: 56(84) bytes of data.</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=1 ttl=52 time=43.5 ms</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=2 ttl=52 time=41.3 ms</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=3 ttl=52 time=44.9 ms</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=4 ttl=52 time=45.6 ms</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=5 ttl=52 time=48.8 ms</p><p>^C</p><p>--- www.orangepi.org ping statistics ---</p><p>5 packets transmitted, 5 received, 0% packet loss, time 4006ms</p><p>rtt min/avg/max/mdev = 41.321/44.864/48.834/2.484 ms</p></li></ol>
'''由于开发板上的spi flash只有16MB,所以此系统基本无法安装多少软件,目前只能实现一些基础功能。'''==== 桌面版镜像的测试方法 ====
<span idol style="使用list-rkdevtoolstyle-烧录的方法type: decimal;"><li><p>点击桌面右上角的网络配置图标(测试WIFI时请不要连接网线)</p><p>[[File:media/image198.png|377x166px]]</p></li><li><p>在弹出的下拉框中点击'''More networks'''可以看到所有扫描到的WIFI热点,然后选择想要连接的WIFI热点</p><p>[[File:media/image199.png|576x353px]]</p></li><li><p>然后输入WIFI热点的密码,再点击'''Connect'''就会开始连接WIFI</p><p>[[File:media/image200.png|320x163px]]</p></li><li><p>连接好WIFI后,可以打开浏览器查看是否能上网,浏览器的入口如下图所示</spanp><p>[[File:media/image201.png|576x308px]]</p></li><li><p>打开浏览器后如果能打开其他网页说明WIFI连接正常</p><div class=== 使用 RKDevTool 烧录的方法 ==="figure">
# SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置[[File:media/image202.png|576x273px|5]]
[[File:media</815ee597fcdbd832b687cc3df51795b6.png]]div></li></ol>
# 然后需要准备一根品质良好的Type-C接口的数据线<span id="设置静态ip地址的方法"></span>=== 设置静态IP地址的方法 ===
[[File:media'''请不要通过修改/d84ad9c1e0e447425ddd86cfefafca1e.png]]etc/network/interfaces配置文件的方式来设置静态IP地址。'''
# 然后从[http:<span id="使用nmtui命令来设置静态ip地址"><//www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和'''MiniLoader'''以及烧录工具'''RKDevTool_Release_v2.96.zip''',请确保下载的'''RKDevTool'''工具的的版本为'''v2.96'''span>## 在[http://www.orangepi.cn/html/serviceAndSupport/index.html Orange Pi的资料下载页面]首先选择'''官方工具''',然后进入下面的文件夹中==== 使用nmtui命令来设置静态IP地址 ====
<ol style="list-style-type: decimal;"><li><p>首先运行'''nmtui'''命令</p><p>orangepi@orangepi:~$ '''nmtui'''</p></li><li><p>然后选择'''Edit a connection'''并按下回车键</p><p>[[File:media/image203.png|234x234px]]</p></li><li><p>然后选择需要设置静态IP地址的网络接口,比如设置'''Ethernet'''接口的静态IP地址选择'''Wired connection 1'''或者'''Wired connection 2'''</p><p>[[File:media/image204.png|306x121px]]</p></li><li><p>然后通过'''Tab'''键选择'''Edit'''并按下回车键</p><p>[[File:media/image205.png|356x142px]]</p></li><li><p>然后通过Tab键将光标移动到下图所示的'''&lt;Automatic&gt;'''位置进行IPv4的配置</p><p>[[File:media/image206.png|576x215px]]</p></li><li><p>然后回车,通过上下方向键选择'''Manual''',然后回车确定</p><p>[[File:media/image207.png|575x212px]]</p></li><li><p>选择完后的显示如下图所示</p><p>[[File:media/image208.png|575x215px]]</p></li><li><p>然后通过Tab键将光标移动到'''&lt;Show&gt;'''</p><p>[[File:media/image209.png|576x215px]]</p></li><li><p>然后回车,回车后会弹出下面的设置界面</p><p>[[File:media/image210.png|576x386px]]</p></li><li><p>然后就可以在下图所示的位置设置IP地址(Addresses)、网关(Gateway)和DNS服务器的地址(里面还有很多其他设置选项,请自行探索),'''请根据自己的具体需求来设置,下图中设置的值只是一个示例'''</p><p>[[File:media/image211.png|575x217px]]</p></li><li><p>设置完后将光标移动到右下角的'''&lt;OK&gt;''',然后回车确认</p><p>[[File:media/816e86dd538ef9fa9cb9cb253871f73fimage212.png|575x114px]]</p></li><li><p>然后点击'''&lt;Back&gt;'''回退到上一级选择界面</p><p>[[File:media/image213.png|278x341px]]</p></li><li><p>然后选择'''Activate a connection''',再将光标移动到'''&lt;OK&gt;''',最后点击回车</p><p>[[File:media/image214.png|226x224px]]</p></li><li><p>然后选择需要设置的网络接口,比如'''Wired connection 2''',然后将光标移动到'''&lt;Deactivate&gt;''',再按下回车键禁用'''Wired connection 2'''</p><p>[[File:media/image215.png|417x159px]]</p></li><li><p>然重新选择并使能'''Wired connection 2''',这样前面设置的静态IP就会生效了</p><p>[[File:media/image216.png|414x160px]]</p></li><li><p>然后通过'''&lt;Back&gt;'''和'''Quit'''按钮就可以退出nmtui</p><p>[[File:media/image217.png|260x224px]] [[File:media/image218.png|225x225px]]</p></li><li><p>然后通过'''ip addr show'''就能看到网口的IP地址已经变成前面设置的静态IP地址了</p><p>orangepi@orangepi:~$ '''ip addr show enP4p65s0'''</p><p>3: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000</p><p>link/ether 5e:ac:14:a5:92:b3 brd ff:ff:ff:ff:ff:ff</p><p>inet '''192.168.1.100'''/24 brd 192.168.1.255 scope global noprefixroute enP4p65s0</p><p>valid_lft forever preferred_lft forever</p><p>inet6 241e:3b8:3240:c3a0:e269:8305:dc08:135e/64 scope global dynamic noprefixroute</p><p>valid_lft 259149sec preferred_lft 172749sec</p><p>inet6 fe80::957d:bbbe:4928:3604/64 scope link noprefixroute</p><p>valid_lft forever preferred_lft forever</p></li><li><p>然后就可以测试网络的连通性来检查IP地址是否配置OK了,'''ping'''命令可以通过'''Ctrl+C'''快捷键来中断运行</p><p>orangepi@orangepi:~$ '''ping 192.168.1.47 -I enP4p65s0'''</p><p>PING 192.168.1.47 (192.168.1.47) from 192.168.1.188 enP4p65s0: 56(84) bytes of data.</p><p>64 bytes from 192.168.1.47: icmp_seq=1 ttl=64 time=0.233 ms</p><p>64 bytes from 192.168.1.47: icmp_seq=2 ttl=64 time=0.263 ms</p><p>^C</p><p>--- 192.168.1.47 ping statistics ---</p><p>5 packets transmitted, 5 received, 0% packet loss, time 4042ms</p><p>rtt min/avg/max/mdev = 0.233/0.262/0.275/0.015 ms</p></li></ol>
# 然后下载下面的所有文件<span id="使用nmcli命令来设置静态ip地址"></span>==== 使用nmcli命令来设置静态IP地址 ====
[[File<ol style="list-style-type:mediadecimal;"><li><p>如果要设置网口的静态IP地址,请先将网线插入开发板,'''如果需要设置WIFI的静态IP地址,请先连接好WIFI''',然后再开始设置静态IP地址</4828a75a2a73dd5e1f4ea5dcb0a8e3e8p></li><li><p>然后通过'''nmcli con show'''命令可以查看网络设备的名字,如下所示,'''Wired connection 1'''和'''Wired connection 2'''为以太网接口的名字</p><p>orangepi@orangepi:~$ '''nmcli con show'''</p><p>NAME UUID TYPE DEVICE</p><p>Wired connection 1 c043c817-1156-3b72-a559-9a8cd642bf70 ethernet enP3p49s0</p><p>Wired connection 2 6f74598a-ccc6-358b-be05-87eaf34df930 ethernet enP4p65s0</p></li><li><p>然后输入下面的命令,其中</p><ol style="list-style-type: lower-alpha;"><li><p>'''&quot;Wired connection 1&quot;''' &gt; 表示设置以太网口的静态IP地址,如果需要设置其它网口的静态IP地址,请修改为对应网络接口对应的名字(通过'''nmcli &gt; con show'''命令可以获取到)</p></li><li><p>'''ipv4.addresses'''后面是要设置的静态IP地址,可以修改为自己想要设置的值</p></li><li><p>'''ipv4.gateway''' 表示网关的地址</p><p>orangepi@orangepi:~$ '''nmcli con mod &quot;Wired connection 1&quot; \'''</p><p>'''ipv4.addresses &quot;192.168.1.110&quot; \'''</p><p>'''ipv4.gateway &quot;192.168.1.1&quot; \'''</p><p>'''ipv4.dns &quot;8.8.8.8&quot; \'''</p><p>'''ipv4.method &quot;manual&quot;'''</p></li></ol></li><li><p>然后重启linux系统</p><p>orangepi@orangepi:~$ '''sudo reboot'''</p></li><li><p>然后重新进入linux系统使用'''ip addr show'''命令就可以看到IP地址已经设置为想要的值了</p><p>orangepi@orangepi:~$ '''ip addr show'''</p><p>2: enP3p49s0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP group default qlen 1000</p><p>link/ether 00:e0:4c:68:00:26 brd ff:ff:ff:ff:ff:ff</p><p>inet '''192.168.1.png]]110'''/32 scope global noprefixroute enP3p49s0</p><p>valid_lft forever preferred_lft forever</p><p>inet6 fe80::9005:95ac:b9c0:2beb/64 scope link noprefixroute</p><p>valid_lft forever preferred_lft forever</p></li></ol>
'''注意,“MiniLoader<span id="m.2-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。'''e-key-pcie-wifi6蓝牙模块的使用方法"></span>== M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 ==
# 然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载能够从SPIFlash启动的OpenWRT镜像,受限于SPIFlash的容量,镜像是小于'''16MB'''的。打开下载链接后可以看到下面两种类型的'''OpenWRT'''镜像,请选择'''SPIFlash启动镜像'''文件夹中的镜像首先需要购买一个PCIe WIFI6+蓝牙模块
[[File:media/a52efe9584feb0dc952a7468bcd7ce93.png]]{| class="wikitable"|-| '''序 号'''| '''型号'''| '''实物图片'''| '''已支持的OS'''|-| '''1'''| '''AX200'''
# 然后用解压软件解压'''DriverAssitant_v5.12.zip(PCIE+USB接口)''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可
| [[File:media/3abe751bd0c4c5e9be6a83f839a1e4c2image219.pngp%20ng]]| '''Debian'''
# 打开'''DriverInstall.exeUbuntu'''后安装瑞芯微驱动的步骤如下所示## 点击“'''驱动安装'''”按钮
[[File:media/bc5fc637f8588abefa4f2ff7e0dc2683.png]]'''OpenWRT'''
# 等待一段时间后,会弹出窗口提示“'''安装驱动成功OPi OS Arch'''”,然后点击'''“确定”'''按钮即可
[[File:media/48720c90a698617c0f884059ac1d6885.png]]|-| '''2'''| '''AX210'''
# 然后解压'''RKDevTool_Release_v2.96.zip(PCIE+USB接口)''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可
| [[File:media%20/c20745924f6e330c0bc60639e5ee8c1bimage220.png]]{w idth=“1.06875in” height=“1.45in”}| '''Debian'''
# 打开'''RKDevToolUbuntu''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示“'''没有发现设备'''”
[[File:media/ca4b9e37ca9d9cce3f888c4278bd3726.png]]'''OpenWRT'''
# 然后开始烧录OpenWRT镜像到SPI FLASH中## 首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示'''OPi OS Arch'''
[[File:media/293482d42e80a8b3e2962b40e834bb41.png]]|-| '''3'''| '''RTL8852BE'''
# 确保开发板没有连接电源,'''并且没有插入TF卡和eMMC模块(PCIE+USB接口)'''## 然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:
| [[File:media/b5c295a072c9e13167488051a2a2cb04image221.pngp%20ng]]| '''Debian'''
# 然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了'''Ubuntu'''
[[File:media/1f65f9666af69c591813b5597e806ccb.png]]'''Android12'''
# 如果前面的步骤顺利,此时开发板会进入'''MASKROMOPi OS Arch'''模式,在烧录工具的界面上会提示“'''发现一个MASKROM设备'''”
[[File:media/18276e05fbda6e29cb92f7582ba887d4.png]]'''OPi OS Droid'''
# 然后将鼠标光标放在下面的这片区域中|}
<ol start="2" style="list-style-type: decimal;"><li><p>然后将模块插入开发板的M.2 E-Key接口中并固定好,位置如下图所示:</p><p>[[File:media/image222.png|296x133px]]</p></li><li><p>然后在Linux系统中打开WIFI模块的配置,步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p><p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li><li><p>然后选择'''System'''</p><p>[[File:media/86a56c049f0d8807cf1685e7b89306ebimage223.png|374x173px]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:media/image224.png|373x162px]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中'''wifi-pcie'''配置</p><p>[[File:media/image225.png|298x40px]]</p></li><li><p>然后选择'''&lt;Save&gt;'''保存</p><p>[[File:media/image226.png|297x80px]]</p></li><li><p>然后选择'''&lt;Back&gt;'''</p><p>[[File:media/image227.png|255x71px]]</p></li><li><p>然后选择'''&lt;Reboot&gt;'''重启系统使配置生效</p><p>[[File:media/image228.png|256x113px]]</p></li></ol></li><li><p>重启系统后如果一切正常,此时使用下面的命令就能看到会多了一个WIFI的设备节点了。如果看不到,请先检查前面的配置是否有问题</p><p>[orangepi@orangepi ~]$ '''ip addr show'''</p></li><li><p>WIFI的连接和测试方法请参看[[\l|'''WIFI连接测试''']]一节,这里不再赘述。</p></li><li><p>蓝牙的测试方法请参看[[\l|'''蓝牙使用方法''']]一节,这里不再赘述。</p></li></ol>
# 然后点击鼠标右键会弹出下图所示的选择界面<span id="ssh远程登录开发板"></span>== SSH远程登录开发板 ==
[[File:media/e21e70e17552c5c4b75c570c4c167464.png]]'''Linux系统默认都开启了ssh远程登录,并且允许root用户登录系统。ssh登录前首先需要确保以太网或者wifi网络已连接,然后使用ip addr命令或者通过查看路由器的方式获取开发板的IP地址。'''
# 然后选择'''导入配置'''选项<span id="ubuntu下ssh远程登录开发板"></span>=== Ubuntu下SSH远程登录开发板 ===
[[File:media/02a57b0477b87251ffdaaf062e80025d.png]]# 获取开发板的IP地址# 然后就可以通过ssh命令远程登录linux系统
# 然后选择前面下载的test@test:~$ '''MiniLoader'''文件夹中的'''rk3588_linux_spiflashssh [mailto:root@192.168.1.36 root@192.168.1.cfg'''配置文件,再点击'''打开]xxx'''(需要替换为开发板的IP地址)
[[Fileroot@192.168.1.xx's password:media/16fd256dd887bb4809776eec8c720d31.png]](在这里输入密码,默认密码为orangepi)
# 然后点击'''确定注意,输入密码的时候,屏幕上是不会显示输入的密码的具体内容的,请不要以为是有什么故障,输入完后直接回车即可。'''
<div class="figure"> [[File:media/7c4d8296584d4a759fe485bbdeb8ff1d.png|3b7b326151b95df2a98f0ec476e5c887]] </div># 然后点击下图所示的位置'''如果提示拒绝连接,只要使用的是Orange Pi提供的镜像,就请不要怀疑orangepi这个密码是不是不对,而是要找其他原因。'''
<ol start="3" style="list-style-type: decimal;">
<li><p>成功登录系统后的显示如下图所示</p>
<div class="figure">
[[File:media/0cc7e5082314344827e7b5b1df9e10c9image229.png|}QYR7OA61XB6U5Y1S@W8{OR437x262px|953iring_001]]
</div>
# 再选择前面下载的<p>'''MiniLoader'''文件夹中'''MiniLoaderAll.bin''',再点击'''打开如果ssh无法正常登陆linux系统,首先请检查下开发板的IP地址是否能ping通,如果ping通没问题的话,可以通过串口或者HDMI显示器登录linux系统然后在开发板上输入下面的命令后再尝试是否能连接:'''</p></li></ol>
[[Fileroot@orangepi:media/3679d114ef42d45c105bc92d6c74e07a~# '''reset_ssh.png]]sh'''
# 然后点击下图所示的位置'''如果还不行,请重烧系统试下。'''
![H5OM6~IN1[[media<span id="windows下ssh远程登录开发板"></01f9cb368ecbc8f09a7f5f6415b6982a.png|F8FN$L7ACC`%5]]span>=== Windows下SSH远程登录开发板 ===
# 再选择想要烧录的OpenWRT镜像的路径,再点击<ol style="list-style-type: decimal;"><li><p>首先获取开发板的IP地址</p></li><li><p>在windows下可以使用MobaXterm远程登录开发板,首先新建一个ssh会话</p><ol style="list-style-type: lower-alpha;"><li><p>打开'''Session'''</p></li><li><p>然后在'''Session Setting'''中选择'''SSH'''</p></li><li><p>然后在'''Remote host'''中输入开发板的IP地址</p></li><li><p>然后在'''Specify &gt; username'''打开中输入linux系统的用户名'''root'''或'''orangepi'''</p></li><li><p>最后点击'''OK'''即可</p><p>[[File:media/image230.png|576x292px]]</p></li></ol></li><li><p>然后会提示输入密码,默认root和orangepi用户的密码都为orangepi</p><p>'''注意,输入密码的时候,屏幕上是不会显示输入的密码的具体内容的,请不要以为是有什么故障,输入完后直接回车即可。'''</p></li></ol>
[1VT6F}8C`H)]0RYPSVT@)XE]([File:media/d12a0aa9d912afa12e5f74d3a811736bimage231.png)|576x192px]]
# 然后请确保'''强制按地址写'''选项已勾上<ol start="4" style="list-style-type: decimal;"><li>成功登录系统后的显示如下图所示</li></ol>
<div class="figure">[[File:media/image232.png|575x353px]]
[[File:media<span id="adb的使用方法"></8ad87b32c21b6446467cf38ae06781b1.png|QDMZW$_J@VTSZ4QIE}516EO]]span>== ADB的使用方法 ==
</div># 再点击'''执行'''按钮就会开始烧录OpenWRT镜像到SPIFlash中=== 网络adb的使用方法 ===
![UA8B5)GA[[media<ol style="list-style-type: decimal;"><li><p>系统启动后请先确认下'''adbd'''已经启动了</fed987ef930abca415de8df6d9cd3990.pngp><p>orangepi@orangepi:~$ '''ps -ax |KO{5%53CH2YNZJ]]grep &quot;adbd&quot;'''</p><p>808 ? Sl 0:00 /usr/bin/adbd</p><p>3707 ttyFIQ0 S+ 0:00 grep --color=auto adbd</p></li><li><p>然后查看下开发板的IP地址,并记下来</p></li><li><p>然后在Ubuntu PC上安装adb工具</p><p>test@test:~$ '''sudo apt-get update'''</p><p>test@test:~$ '''sudo apt-get install -y adb'''</p></li><li><p>然后使用下面的命令连接网络adb</p></li></ol>
test@test:~$ '''adb connect 192.168.1.xx:5555 # OpenWRT镜像烧录完后的显示log如下图所示IP地址请替换为开发板的IP地址'''
<div class="figure">* daemon not running; starting now at tcp:5037
[[File:media/329ec96c7caa8377aecad9e400727516.png|21EM~CZW2KAX{TZ1S3~3Q33]]* daemon started successfully
</div># OpenWRT镜像烧录完后会自动启动,如果没有正常启动,请重新上电试下。connected to 192.168.1.xx:5555
<span id="使用dd命令烧录的方法-1"></span>=== 使用dd命令烧录的方法 ===test@test:~$ '''adb devices'''
# 烧录OpenWRT镜像到SPIFlash中需要借助TF卡来完成,所以首先需要将支持TF卡启动的OpenWRT镜像烧录到TF卡上,然后使用TF卡启动开发板进入OpenWRT系统。烧录OpenWRT镜像到TF卡的方法请见[[#_基于Windows%20PC将Linux镜像烧录到TF卡的方法|'''基于Windows PC将Linux镜像烧写到TF卡的方法''']]和[[#_基于Ubuntu%20PC将Linux镜像烧录到TF卡的方法|'''基于Ubuntu PC将Linux镜像烧写到TF卡的方法''']]两小节的说明。# 然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载能够从'''SPIFlash'''启动的'''OpenWRT'''镜像。打开下载链接后可以看到下面两种类型的OpenWRT镜像,请选择'''SPIFlash启动镜像'''文件夹中的镜像进行下载List of devices attached
[[File'''192.168.1.xx:media/a52efe9584feb0dc952a7468bcd7ce93.png]]5555 device'''
# 然后把从官网下载的镜像上传到TF卡中。<ol start="5" style="list-style-type: decimal;"># 然后再执行下面的命令即可将OpenWRT镜像烧写到SPIFlash中# 然后就可以使用'''poweroff'''命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动SPIFlash中的OpenWRT系统了<li>然后使用下面的命令就可以登录开发板的linux系统</li></ol>
<span id="烧录android镜像到tf卡中的方法"></span>== 烧录Android镜像到TF卡中的方法 ==test@test:~$ '''adb shell'''
# 首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''或以上,建议使用闪迪等品牌的TF卡# 然后使用读卡器把TF卡插入电脑# 然后从[httproot@orangepi5plus://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载SDDiskTool烧写工具,'''请确保SDDiskTool工具的版本为最新的v1.72'''# 然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载Android12的镜像## 打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择'''TF卡和eMMC启动镜像&lt;--- 看到这个提示符后说明已成功登录开发板'''文件夹中的镜像进行下载
[[File<ol start="6" style="list-style-type:mediadecimal;"><li><p>使用adb上传文件到开发板的命令如下所示</350842f0522fe231ed1d086428f064e5p><p>test@test:~$ '''adb push filename /root'''</p><p>filename: 1 file pushed. 3.7 MB/s (1075091 bytes in 0.png]]277s)</p></li><li><p>使用adb重启开发板的命令如下所示</p><p>test@test:~$ '''adb reboot'''</p></li></ol>
# 进入'''TF卡和eMMC启动镜像如果您的Windows系统中没有adb工具,可以使用RKDevTool软件([[\l|使用RKDevTool烧录Linux镜像到TF卡中的方法]]一小节有用到这个软件)中的adb程序。'''文件夹后可以看到下面三个镜像,它们的区别是:## 第一个镜像专门用于HDMI显示的,支持8K显示,如果不使用LCD屏幕,请下载不带lcd的镜像### 如果要使用lcd屏幕,请选择带lcd的镜像### 带box的镜像是专用于电视盒子的镜像
[[File:media/d8100e59a8e2115f5da066c8bd149170image233.png|576x131px]]
# 然后使用解压软件解压下载的Android镜像的压缩包,解压后的文件中,以“.img” 结尾的文件就是Android镜像文件,大小在1GB以上# 然后使用解压软件解压'''SDDiskTool_v1.72.zip在Windows中使用adb的示例如下所示:''',此软件无需安装,在解压后的文件夹中找到'''SD_Firmware_Tool.exe'''打开即可
[[File:media/0368da194342b31d165057aa92eda2adimage234.png|576x335px]]
# 打开'''SDDiskTool'''后,如果TF卡识别正常,会在“'''选择可移动磁盘设备'''”一栏中显示插入的磁盘设备,'''请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的''',如果没有显示可以尝试拔插下TF卡=== 使用type-c数据线连接adb ===
<ol style="list-style-type: decimal;"><li><p>首先准备一根品质良好的Type-C数据线</p><p>[[File:media/image20.png|125x126px]]</p></li><li><p>然后通过Type-C数据线连接好开发板与Ubuntu PC,开发板Type-C接口的位置如下图所示:</p><p>[[File:media/b56645d0ada2cc60a79509b0ea711638image52.png|319x90px]]</p></li><li><p>然后运行下面的命令将Type-C接口设置为'''device'''模式</p><p>orangepi@orangepi:~$ '''sudo set_device.sh'''</p><p>如果linux系统中不存在'''set_device.sh'''脚本,请直接使用下面的命令:</p><p>orangepi@orangepi:~$ '''sudo bash -c &quot;echo device &gt; /sys/kernel/debug/usb/fc000000.usb/mode&quot;'''</p><p>orangepi@orangepi:~$ '''sudo systemctl restart usbdevice'''</p></li><li><p>然'''后请确认下adbd已经启动了'''</p><p>orangepi@orangepi:~$ '''ps -ax | grep &quot;adbd&quot;'''</p><p>808 ? Sl 0:00 /usr/bin/adbd</p><p>3707 ttyFIQ0 S+ 0:00 grep --color=auto adbd</p></li><li><p>然后在Ubuntu PC上安装下adb工具</p><p>test@test:~$ '''sudo apt-get update'''</p><p>test@test:~$ '''sudo apt-get install -y adb'''</p></li><li><p>然后使用下面的命令查看下有没有识别到adb设备</p></li></ol>
# 确认完盘符后,可以先格式化下TF卡,点击test@test:~$ '''SDDiskTooladb devices'''中的'''恢复磁盘'''按钮即可,也可使用前面提到的'''SD Card Formatter'''进行TF卡的格式化
[[File:media/74fd8a52c97e0b0f86bb7228291fbe6a.png]]List of devices attached
# 然后开始将Android镜像写入TF卡## 首先在“'''选择功能模式e0f9f71bc343c305 device'''”中勾选“'''SD启动'''”## 然后在“'''选择升级固件'''”一栏中选择Android镜像的路径## 最后点击“'''开始创建'''”按钮就会开始烧录Android镜像到TF卡中
[[File<ol start="8" style="list-style-type:mediadecimal;"><li>然后使用下面的命令就可以登录开发板的linux系统</f9d8ef3d894b68734db549f3e25c7ee4.png]]li></ol>
# 烧录完后即可退出SDDiskTool软件,然后就可以把TF卡从电脑中拔出来插到开发板中启动了test@test:~$ '''adb shell'''
[[File'''root@orangepi5plus:media/5616b51a8ee998dbc83ea26d5388515d.png]]# &lt;--- 看到这个提示符后说明已成功登录开发板'''
<span idol start="烧录android镜像烧录到emmc中的方法9"style="list-style-type: decimal;"><li><p>使用adb上传文件到开发板的命令如下所示</p><p>test@test:~$ '''adb push filename /root'''</spanp>== 烧录Android镜像烧录到eMMC中的方法 ==<p>filename: 1 file pushed. 3.7 MB/s (1075091 bytes in 0.277s)</p></li></ol>
<span id="通过type-c线将android-镜像烧录到emmc中的方法"></span>=== 通过Type-C线将Android 镜像烧录到eMMC中的方法 ==='''如果您的Windows系统中没有adb工具,可以使用RKDevTool软件([[\l|使用RKDevTool烧录Linux镜像到TF卡中的方法]]一小节有用到这个软件)中的adb程序。'''
'''注意,下面所有的操作都是在Windows电脑中进行的。'''[[File:media/image233.png|576x131px]]
# 开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:'''在Windows中使用adb的示例如下所示:'''
[[File:media/509c9654850ee23aaabfc364310b90d9image235.png|576x304px]]
# 还需要准备一根品质良好的Type-C接口的数据线<span id="上传文件到开发板linux系统中的方法"></span>== 上传文件到开发板Linux系统中的方法 ==
[[File:media<span id="在ubuntu-pc中上传文件到开发板linux系统中的方法"></d84ad9c1e0e447425ddd86cfefafca1e.png]]span>=== 在Ubuntu PC中上传文件到开发板Linux系统中的方法 ===
# 然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和烧录工具'''RKDevTool_Release_v2.96.zip''',请确保下载的'''RKDevTool'''工具的的版本为'''v2.96'''# 然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载Android的镜像。## 打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择'''TF卡和eMMC启动镜像'''文件夹中的镜像进行下载==== 使用scp命令上传文件的方法 ====
[[File<ol style="list-style-type:mediadecimal;"><li><p>使用scp命令可以在Ubuntu PC中上传文件到开发板的Linux系统中,具体命令如下所示</350842f0522fe231ed1d086428f064e5p><ol style="list-style-type: lower-alpha;"><li><p>'''file_path:'''需要替换为要上传文件的路径</p></li><li><p>'''orangepi:'''为开发板linux系统的用户名,也可以替换成其它的,比如root</p></li><li><p>'''192.168.xx.xx:''' 为开发板的IP地址,请根据实际情况进行修改</p></li><li><p>'''/home/orangepi:''' &gt; 开发板linux系统中的路径,也可以修改为其它的路径</p><p>test@test:~$ '''scp file_path orangepi@192.168.xx.xx:/home/orangepi/'''</p></li></ol></li><li><p>如果要上传文件夹,需要加上-r参数</p><p>test@test:~$ '''scp -r dir_path orangepi@192.168.xx.png]]xx:/home/orangepi/'''</p></li><li><p>scp还有更多的用法,请使用下面的命令查看man手册</p></li></ol>
# 进入test@test:~$ '''TF卡和eMMC启动镜像man scp'''文件夹后可以看到下面三个镜像,它们的区别是:## 第一个镜像专门用于HDMI显示的,支持8K显示,如果不使用LCD屏幕,请下载不带lcd的镜像### 如果要使用lcd屏幕,请选择带lcd的镜像### 带box的镜像是专用于电视盒子的镜像
[[File:media/d8100e59a8e2115f5da066c8bd149170.png]]==== 使用filezilla上传文件的方法 ====
# 然后使用解压软件解压下载的Android镜像的压缩包,解压后的文件中,以“.img” 结尾的文件就是Android镜像文件,大小在1GB以上<ol style="list-style-type: decimal;"># 然后用解压软件解压<li><p>首先在Ubuntu PC中安装filezilla</p><p>test@test:~$ '''DriverAssitant_v5.12.zipsudo apt install -y filezilla''',再在解压后的文件夹中找到</p></li><li><p>然后使用下面的命令打开filezilla</p><p>test@test:~$ '''DriverInstall.exefilezilla'''可执行文件并打开即可</p></li><li><p>filezilla打开后的界面如下所示,此时右边远程站点下面显示的是空的</p><div class="figure">
[[File:media/3abe751bd0c4c5e9be6a83f839a1e4c2image236.png|576x453px|截图 2022-12-03 19-04-40]]
# 打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</div></li>## 点击“'''驱动安装'''”按钮<li><p>连接开发板的方法如下图所示</p></li></ol>
[[File:media/bc5fc637f8588abefa4f2ff7e0dc2683.png]]<div class="figure">
# 等待一段时间后,会弹出窗口提示“'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可[[File:media/image237.png|577x128px|IMG_256]]
</div><ol start="5" style="list-style-type: decimal;"><li><p>然后选择'''保存密码''',再点击'''确定'''</p><p>[[File:media/48720c90a698617c0f884059ac1d6885image238.png|249x181px]]</p></li><li><p>然后选择'''总是信任该主机''',再点击'''确定'''</p></li></ol>
# 然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可<div class="figure">
[[File:media/c20745924f6e330c0bc60639e5ee8c1bimage239.png|278x150px|IMG_256]]
# 打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type</div><ol start="7" style="list-C线连接上开发板,所以左下角会提示“'''没有发现设备'''”style-type: decimal;"><li>连接成功后在filezilla软件的右边就可以看到开发板linux文件系统的目录结构了</li></ol>
[[File:media/ca4b9e37ca9d9cce3f888c4278bd3726.png]]<div class="figure">
# 然后开始烧录Android镜像到eMMC中## 首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示[[File:media/image240.png|533x330px|IMG_256]]
[[File</div><ol start="8" style="list-style-type:mediadecimal;"><li>然后在filezilla软件的右边选择要上传到开发板中的路径,再在filezilla软件的左边选中Ubuntu PC中要上传的文件,再点击鼠标右键,再点击上传选项就会开始上传文件到开发板中了。</li></293482d42e80a8b3e2962b40e834bb41.png]]ol>
# 然后确保开发板没有插入TF卡,没有连接电源## 然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:<div class="figure">
[[File:media/b5c295a072c9e13167488051a2a2cb04image241.png|529x414px|IMG_256]]
# 然后给开发板接上Type</div><ol start="9" style="list-C接口的电源,并上电style-type: decimal;"><li><p>上传完成后就可以去开发板linux系统中的对应路径中查看上传的文件了</p></li><li><p>上传文件夹的方法和上传文件的方法是一样的,这里就不再赘述了</p></li></ol>
[[File:media<span id="在windows-pc中上传文件到开发板linux系统中的方法"></1f65f9666af69c591813b5597e806ccb.png]]span>=== 在Windows PC中上传文件到开发板Linux系统中的方法 ===
# 如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示“'''发现一个MASKROM设备'''”<span id="使用filezilla上传文件的方法-1"></span>==== 使用filezilla上传文件的方法 ====
<ol style="list-style-type: decimal;"><li><p>首先下载filezilla软件Windows版本的安装文件,下载链接如下所示</p><p>[[Filehttps://filezilla-project.org/download.php?type=server '''https:media/18276e05fbda6e29cb92f7582ba887d4/filezilla-project.org/download.png]php#close''']</p></li></ol>
# 然后点击烧录工具的“'''升级固件'''”一栏<div class="figure">
[[File:media/3e9bea3f77dce0b408bac9df3a5b416bimage242.png|472x171px|IMG_256]]
# 接着点击“'''固件'''”按钮选择需要烧录的Android镜像的路径</div>[[File:media/image243.png|384x276px]]
[[File<ol start="2" style="list-style-type:mediadecimal;"><li><p>下载的安装包如下所示,然后双击直接安装即可</c3d19212664a98ca47af3920fe1bf596p><p>'''FileZilla_Server_1.png]]5.1_win64-setup.exe'''</p></li></ol>
# 最后点击“安装过程中,下面的安装界面请选择'''升级Decline''',然后再选择'''Next&gt;'''”按钮就会开始烧录,烧录过程中的log如下图所示。烧录完成后Android系统会自动启动。
[[File:media/fddaf8b13961a864c9ec6f66552ac584.png]]<div class="figure">
<span id="通过tf卡将android-12镜像烧录到emmc中的方法"><[[File:media/span>=== 通过TF卡将Android 12镜像烧录到eMMC中的方法 ===image244.png|355x279px|IMG_256]]
'''注意,下面所有的操作都是在Windows电脑中进行的。'''</div><ol start="3" style="list-style-type: decimal;"><li>filezilla打开后的界面如下所示,此时右边远程站点下面显示的是空的</li></ol>
# 开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:<div class="figure">
[[File:media/509c9654850ee23aaabfc364310b90d9image245.png|451x357px|IMG_256]]
# 还需要准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''或以上,建议使用闪迪等品牌的TF卡</div># 然后使用读卡器把TF卡插入电脑# 然后从[http<ol start="4" style="list-style-type://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载SDDiskTool烧写工具,'''请确保SDDiskTool工具的版本为最新的v1.72'''decimal;"># 然后从[http://www.orangepi.cn<li>连接开发板的方法如下图所示:</htmlli></serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载Android的镜像## 打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择'''TF卡和eMMC启动镜像'''文件夹中的镜像进行下载ol>
[[File:media/350842f0522fe231ed1d086428f064e5.png]]<div class="figure">
# 进入'''TF卡和eMMC启动镜像'''文件夹后可以看到下面三个镜像,它们的区别是:## 第一个镜像专门用于HDMI显示的,支持8K显示,如果不使用LCD屏幕,请下载不带lcd的镜像### 如果要使用lcd屏幕,请选择带lcd的镜像### 带box的镜像是专用于电视盒子的镜像[[File:media/image246.png|522x108px|IMG_256]]
[[File</div><ol start="5" style="list-style-type:mediadecimal;"><li>然后选择'''保存密码''',再点击'''确定'''</li></d8100e59a8e2115f5da066c8bd149170.png]]ol>
# 然后使用解压软件解压下载的Android镜像的压缩包,解压后的文件中,以“.img” 结尾的文件就是Android镜像文件,大小在1GB以上# 然后使用解压软件解压'''SDDiskTool_v1.72.zip''',此软件无需安装,在解压后的文件夹中找到'''SD_Firmware_Tool.exe'''打开即可<div class="figure">
[[File:media/0368da194342b31d165057aa92eda2adimage247.png|207x146px|IMG_256]]
# 打开</div><ol start="6" style="list-style-type: decimal;"><li>然后选择'''SDDiskTool总是信任该主机'''后,如果TF卡识别正常,会在“,再点击'''选择可移动磁盘设备确定'''”一栏中显示插入的磁盘设备,'''请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的''',如果没有显示可以尝试拔插下TF卡</li></ol>
[[File:media/b56645d0ada2cc60a79509b0ea711638.png]]<div class="figure">
# 确认完盘符后,可以先格式化下TF卡,点击'''SDDiskTool'''中的'''恢复磁盘'''按钮即可,也可使用前面提到的'''SD Card Formatter'''进行TF卡的格式化[[File:media/image248.png|221x109px|IMG_256]]
[[File</div><ol start="7" style="list-style-type:mediadecimal;"><li>连接成功后在filezilla软件的右边就可以看到开发板linux文件系统的目录结构了</li></74fd8a52c97e0b0f86bb7228291fbe6a.png]]ol>
# 然后开始将Android镜像写入TF卡## 首先在'''“选择可移动磁盘设备”'''下面确认显示的盘符为TF卡对应的盘符## 然后在“'''选择功能模式'''”中选择'''“固件升级”'''## 然后在“'''选择升级固件'''”一栏中选择Android固件的路径## 最后点击“'''开始创建'''”按钮就会开始烧录<div class="figure">
[[File:media/b2d877a351549f41d6dae7ae22d96cb4image249.png|449x332px|IMG_256]]
# 烧录完成后的显示如下图所示,然后就可以退出SDDiskTool</div><ol start="8" style="list-style-type: decimal;"><li>然后在filezilla软件的右边选择要上传到开发板中的路径,再在filezilla软件的左边选中Windows PC中要上传的文件,再点击鼠标右键,再点击上传选项就会开始上传文件到开发板中了</li></ol>
[[File:media/c999fc9ee19372b1b76a2d69848537b5.png]]<div class="figure">
# 然后把TF卡从电脑中拔出来插到开发板中,开发板上电启动后就会自动开始将TF卡中的Android镜像烧录到开发板的eMMC中# 如果开发板连接了HDMI显示器,还可以从HDMI显示器中看到烧录Android镜像到eMMC中的进度条[[File:media/image250.png|461x340px|IMG_256]]
[[File</div><ol start="9" style="list-style-type:mediadecimal;"><li><p>上传完成后就可以去开发板linux系统中的对应路径中查看上传的文件了</p></li><li><p>上传文件夹的方法和上传文件的方法是一样的,这里就不再赘述了</p></li></21725ffae6d6578fbb4ae157698a7624.png]]ol>
# 当HDMI显示器显示如下信息时,说明烧录Android镜像到eMMC中已完成,此时就可以拔出TF卡,然后eMMC中的安卓系统就会开始启动。<span id="hdmi测试"></span>== HDMI测试 ==
[[File:media<span id="hdmi输出测试"></14acd8efbf40564fe8111876419a3667.png]]span>=== HDMI输出测试 ===
<span idol style="烧录android镜像到spiflashnvmelist-ssd中的方法style-type: decimal;"><li><p>开发板有两个HDMI输出接口,所在位置如下图所示:</p><p>[[File:media/image251.png|333x92px]]</p></spanli><li><p>Linux系统默认配置HDMI_TX1支持8K显示,HDMI_TX2默认只支持4K显示(同一时间只能有1个HDMI_TX接口支持8K显示)。如果想设置HDMI_TX2支持8K显示,请按照如下步骤设置下:</p><ol style== 烧录Android镜像到SPIFlash+NVMe SSD中的方法 =="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p><p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li><li><p>然后选择'''System'''</p><p>[[File:media/image223.png|362x167px]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:media/image224.png|362x157px]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中'''hdmi2-8k'''配置</p><p>[[File:media/image252.png|361x66px]]</p></li><li><p>然后选择'''&lt;Save&gt;'''保存</p><p>[[File:media/image253.png|363x105px]]</p></li><li><p>然后选择'''&lt;Back&gt;'''</p><p>[[File:media/image254.png|362x110px]]</p></li><li><p>然后选择'''&lt;Reboot&gt;'''重启系统使配置生效</p><p>[[File:media/image228.png|276x121px]]</p></li></ol></li><li><p>然后使用HDMI转HDMI线连接Orange Pi开发板和HDMI显示器</p><p>[[File:media/image10.png|199x129px]]</p><p>'''注意,如果想接4K或者8K显示器,请确保HDMI线支持4K或者8K视频显示。'''</p></li><li><p>启动linux系统后如果HDMI显示器有图像输出说明HDMI接口使用正常</p></li></ol>
'''注意,下面所有的操作都是在Windows电脑中进行的。注意,很多笔记本电脑虽然带有HDMI接口,但是笔记本的HDMI接口一般只有输出功能,并没有HDMI in的功能,也就是说并不能将开发板的HDMI输出显示到笔记本的屏幕上。'''
# 首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。'''当想把开发板的HDMI接到笔记本电脑HDMI接口时,请先确认清楚您的笔记本是支持HDMI in的功能。'''
[[File:media/6b09ed51c8f4954ed95742cd63b21c74.png]]'''当HDMI没有显示的时候,请先检查下HDMI线有没有插紧,确认接线没问题后,可以换一个不同的屏幕试下有没有显示。'''
# 然后把NVMe SSD插入开发板的M.2 PCIe接口,并固定好<span id="hdmi-in的测试方法"></span>=== HDMI IN的测试方法 ===
<ol style="list-style-type: decimal;"><li><p>开发板HDMI In接口的所在位置如下所示:</p><p>[[File:media/image255.png|351x112px]]</p></li><li><p>首先使用下图所示的HDMI转HDMI线将其它设备的HDMI输出接到开发板的HDMI In接口上</p><p>[[File:media/image10.png|199x129px]]</p></li><li><p>Linux系统HDMI In功能默认是关闭的,打开方法如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p><p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li><li><p>然后选择'''System'''</p><p>[[File:media/image223.png|362x167px]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:media/image224.png|362x157px]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中'''hdmirx'''配置</p><p>[[File:media/image256.png|359x82px]]</p></li><li><p>然后选择'''&lt;Save&gt;'''保存</p><p>[[File:media/image253.png|363x105px]]</p></li><li><p>然后选择'''&lt;Back&gt;'''</p><p>[[File:media/image254.png|362x110px]]</p></li><li><p>然后选择'''&lt;Reboot&gt;'''重启系统使配置生效</p><p>[[File:media/eff81166492ce92b30912818342b0d5bimage228.png|276x121px]]</p></li></ol></li><li><p>重启进入系统后再在桌面上打开一个终端,然后运行下'''test_hdmiin.sh'''脚本</p><p>[orangepi@orangepi ~]$ '''test_hdmiin.sh'''</p></li><li><p>然后就能看到HDMI In的输入画面了(下图中HDMI In显示的是opi5开发板HDMI输出的画面,此时正在播放一个视频)。'''test_hdmiin.sh'''脚本默认会将HDMI In输入的音频播放到开发板的HDMI_TX1、HDMI_TX2和ES8388(代表喇叭或者耳机)中去。</p><div class="figure">
# SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置[[File:media/image257.png|576x324px|1]]
[[File:media</815ee597fcdbd832b687cc3df51795b6.png]]div></li></ol>
# 还需要准备一根品质良好的Type-C接口的数据线<span id="hdmi转vga显示测试"></span>=== HDMI转VGA显示测试 ===
<ol style="list-style-type: decimal;"><li><p>首先需要准备下面的配件</p><ol style="list-style-type: lower-alpha;"><li><p>HDMI转VGA转换器</p><p>[[File:media/image258.png|155x104px]]</p></li><li><p>一根VGA线</p><p>[[File:media/image259.png|148x133px]]</p></li><li><p>一个支持VGA接口的显示器或者电视</p></li></ol></li><li><p>HDMI转VGA显示测试如下所示:</p><p>[[File:media/d84ad9c1e0e447425ddd86cfefafca1eimage260.png|575x341px]]</p><p>'''使用HDMI转VGA显示时,开发板以及开发板的Linux系统是不需要做任何设置的,只需要开发板HDMI接口能正常显示就可以了。所以如果测试有问题,请检查HDMI转VGA转换器、VGA线以及显示器是否有问题。'''</p></li></ol>
# 然后从[http:<span id="hdmi分辨率设置方法"><//www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和烧录工具'''RKDevTool_Release_v2.96.zip''',请确保下载的'''RKDevTool'''工具的的版本为'''v2.96'''# 然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载Android12的镜像span>## 打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择'''SPIFlash-NVME SSD启动镜像'''文件夹中的镜像进行下载=== HDMI分辨率设置方法 ===
<ol style="list-style-type: decimal;"><li><p>首先在'''Settings'''中打开'''Display'''</p><p>[[File:media/c184a625bb30b4a53c4d07e4c6f7814aimage261.png|576x370px]]</p></li><li><p>然后就能看到系统当前的分辨率</p><p>[[File:media/image262.png|288x191px]]</p></li><li><p>点击Resolution(分辨率)的下拉框,就可以看到显示器当前支持的所有分辨率</p><p>[[File:media/image263.png|353x233px]]</p></li><li><p>然后选择想要设置的分辨率,再点击Apply</p><p>[[File:media/image264.png|351x234px]]</p></li><li><p>等新的分辨率设置完后再选择'''Keep the configuration'''即可</p><p>[[File:media/image265.png|462x251px]]</p></li></ol>
# 进入'''SPIFlash-NVME SSD启动镜像'''文件夹后可以看到下面三个镜像,它们的区别是:## 第一个镜像专门用于HDMI显示的,支持8K显示,如果不使用LCD屏幕,请下载不带lcd的镜像### 如果要使用lcd屏幕,请选择带lcd的镜像### 带box的镜像是专用于电视盒子的镜像== 蓝牙使用方法 ==
[[File:media/4b7258a8692d675d4aaad728c7dd09fa.png]]'''请注意,Orange Pi 5 Plus开发板上是没有蓝牙模块的,需要外接带蓝牙的PCIe网卡或者带蓝牙的USB网卡才能使用蓝牙功能。'''
# 然后用解压软件解压'''DriverAssitant_v5.12.zip外接PCIe网卡的使用说明请参考[[\l|PCIe WIFI6+蓝牙模块的使用方法]]一小节。''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可
'''外接USB网卡的使用说明请参考[[File:media/3abe751bd0c4c5e9be6a83f839a1e4c2.png\l|USB无线网卡测试]]一小节。'''
# 打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示<span id="桌面版镜像的测试方法-1"></span>## 点击“'''驱动安装'''”按钮=== 桌面版镜像的测试方法 ===
<ol style="list-style-type: decimal;"><li><p>点击桌面右上角的蓝牙图标</p><p>[[File:media/image266.png|386x149px]]</p></li><li><p>然后选择适配器</p><p>[[File:media/image267.png|375x165px]]</p></li><li><p>如果有提示下面的界面,请选择'''Yes'''</p><p>[[File:media/image268.png|248x85px]]</p></li><li><p>然后在蓝牙的适配器设置界面中设置'''Visibility Setting'''为'''Always visible''',然后关闭即可</p><p>[[File:media/bc5fc637f8588abefa4f2ff7e0dc2683image269.png|243x229px]]</p></li><li><p>然后打开蓝牙设备的配置界面</p><p>[[File:media/image270.png|438x179px]]</p></li><li><p>点击'''Search'''即可开始扫描周围的蓝牙设备</p><p>[[File:media/image271.png|322x217px]]</p></li></ol>
# 等待一段时间后,会弹出窗口提示“<!-- --><ol start="6" style="list-style-type: decimal;"><li><p>然后选择想要连接的蓝牙设备,再点击鼠标右键就会弹出对此蓝牙设备的操作界面,选择'''安装驱动成功Pair'''”,然后点击即可开始配对,这里演示的是和Android手机配对</p><p>[[File:media/image272.png|338x263px]]</p></li><li><p>配对时,桌面的右上角会弹出配对确认框,选择'''“确定”Confirm'''按钮即可确认即可,此时手机上也同样需要进行确认</p><p>[[File:media/image273.png|417x152px]]</p></li><li><p>和手机配对完后,可以选择已配对的蓝牙设备,然后右键选择'''Send a File'''即可开始给手机发送一张图片</p><p>[[File:media/image274.png|439x259px]]</p></li><li><p>发送图片的界面如下所示</p><p>[[File:media/image275.png|437x253px]]</p></li></ol>
[[File:media<span id="usb接口测试"></48720c90a698617c0f884059ac1d6885.png]]span>== USB接口测试 ==
# 然后解压'''RKDevTool_Release_v2.96.zipUSB接口是可以接USB hub来扩展USB接口的数量的。''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可
[[File:media<span id="连接usb鼠标或键盘测试"></c20745924f6e330c0bc60639e5ee8c1b.png]]span>=== 连接USB鼠标或键盘测试 ===
# 打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示“'''没有发现设备'''”将USB接口的键盘插入Orange Pi开发板的USB接口中# 连接Orange Pi开发板到HDMI显示器# 如果鼠标或键盘能正常操作系统说明USB接口使用正常(鼠标只有在桌面版的系统中才能使用)
[[File:media<span id="连接usb存储设备测试"></ca4b9e37ca9d9cce3f888c4278bd3726.png]]span>=== 连接USB存储设备测试 ===
# 然后开始烧录Android镜像到SPIFlash+NVMe SSD中首先将U盘或者USB移动硬盘插入Orange Pi开发板的USB接口中## 首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示执行下面的命令如果能看到sdX的输出说明U盘识别成功
[[Fileorangepi@orangepi:media~$ '''cat /293482d42e80a8b3e2962b40e834bb41.png]]proc/partitions | grep &quot;sd*&quot;'''
major minor # 确保开发板没有插入TF和eMMC模块,没有连接电源## 然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:blocks name
[[File:media/b5c295a072c9e13167488051a2a2cb04.png]]8 0 30044160 '''sda'''
# 然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了8 1 30043119 '''sda1'''
[[File<ol start="3" style="list-style-type:mediadecimal;"><li>使用mount命令可以将U盘挂载到'''/1f65f9666af69c591813b5597e806ccb.png]]mnt'''中,然后就能查看U盘中的文件了</li></ol>
# 如果前面的步骤顺利,此时开发板会进入orangepi@orangepi:~$ '''MASKROMsudo mount /dev/sda1 /mnt/'''模式,在烧录工具的界面上会提示“'''发现一个MASKROM设备'''”
[[Fileorangepi@orangepi:media~$ '''ls /18276e05fbda6e29cb92f7582ba887d4.png]]mnt/'''
# 然后点击烧录工具的“'''升级固件'''”一栏test.txt
[[File<ol start="4" style="list-style-type:mediadecimal;"><li>挂载完后通过'''df -h'''命令就能查看U盘的容量使用情况和挂载点</3e9bea3f77dce0b408bac9df3a5b416b.png]]li></ol>
# 接着点击“orangepi@orangepi:~$ '''固件df -h | grep &quot;sd&quot;'''”按钮选择需要烧录的Android镜像
[[File:media/c3d19212664a98ca47af3920fe1bf596.png]]dev/sda1 29G 208K 29G 1% /mnt
# 最后点击“'''升级'''”按钮就会开始烧录,烧录的过程如下图所示,可以看到,首先会烧录固件到SPIFlash中,然后烧录固件到PCIE中。烧录完成后Android系统会自动启动。<span id="usb无线网卡测试"></span>=== USB无线网卡测试 ===
[[File:media/c6f65462132a7004e1c5d4c6056d8ac7.png]]目前'''测试过的'''能用的USB无线网卡如下所示,其他型号的USB无线网卡请自行测试,如果无法使用就需要移植对应的USB无线网卡驱动
<span id{| class="烧录orangewikitable"|-pi| 序 号| 型号| 实物图片|-os-droid镜像到tf卡中的方法"></span>== 烧录Orange Pi OS (Droid)镜像到TF卡中的方法 ==| 1| RTL8723BU
'''注意,下面所有的操作都是在Windows电脑中进行的。'''支持2.4G WIFI+BT4.0
# 首先准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''或以上,建议使用闪迪等品牌的TF卡# 然后使用读卡器把TF卡插入电脑# 然后从| [[httpFile:me%20dia//wwwimage276.orangepipng]]{width =“0.cn/html/serviceAndSupport/index7868055555555555in” height= “0.html '''Orange Pi的资料下载页面''']下载SDDiskTool烧写工具,'''请确保SDDiskTool工具的版本为最新的v1.72'''8291666666666667in”}|-| 2# 然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载Orange Pi OS (Droid)的镜像,打开Orange Pi OS (Droid)镜像的下载链接后可以看到下面两种类型的镜像,请选择下面的镜像| RTL8811
[[File:media/f21092f6cc6b075f4dc1a24178a83e0f支持2.png]]4G +5G WIFI
# 然后使用解压软件解压下载的Orange Pi OS (Droid)镜像的压缩包,解压后的文件中,以“| [[File:me%20dia/image277.img” 结尾的文件就是Orange Pi OS (Droid)镜像文件,大小在1GB以上# 然后使用解压软件解压'''SDDiskTool_v1png]]{width =“0.728555555555555555in” height= “0.zip''',此软件无需安装,在解压后的文件夹中找到'''SD_Firmware_Tool.exe'''打开即可8145833333333333in”}|-| 3| RTL8821CU
[[File:media/0368da194342b31d165057aa92eda2ad支持2.png]]4G +5G WIFI
# 打开'''SDDiskTool'''后,如果TF卡识别正常,会在“'''选择可移动磁盘设备'''”一栏中显示插入的磁盘设备,'''请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的''',如果没有显示可以尝试拔插下TF卡支持BT 4.2
| [[File:mediamed%20ia/b56645d0ada2cc60a79509b0ea711638image278.pngjpeg|tb_image_s hare_1670833201123]]{width =“0.8777777777777778in” height= “0.8777777777777778in”}|}
# 确认完盘符后,可以先格式化下TF卡,点击'''SDDiskTool'''中的'''恢复磁盘'''按钮即可,也可使用前面提到的'''SD Card Formatter'''进行TF卡的格式化<span id="rtl8723bu测试"></span>==== RTL8723BU测试 ====
<ol style="list-style-type: decimal;"><li><p>首先将RTL8723BU无线网卡模块插入开发板的USB接口中</p></li><li><p>然后linux系统会自动加载RTL8723BU蓝牙和WIFI相关的内核模块,通过lsmod命令可以看到下面内核模块已自动加载</p><p>orangepi@orangepi:~$ '''lsmod'''</p><p>Module Size Used by</p><p>rfcomm 57344 16</p><p>rtl8xxxu 106496 0</p><p>rtk_btusb 61440 0</p></li><li><p>通过dmesg命令可以看到RTL8723BU模块的加载信息</p><p>orangepi@orangepi:~$ '''dmesg'''</p><p>......</p><p>[ 83.438901] usb 2-1: new high-speed USB device number 2 using ehci-platform</p><p>[ 83.588375] usb 2-1: New USB device found, idVendor=0bda, idProduct=b720, bcdDevice= 2.00</p><p>[ 83.588403] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3</p><p>[ 83.588422] usb 2-1: Product: 802.11n WLAN Adapter</p><p>[ 83.588443] usb 2-1: Manufacturer: Realtek</p><p>[ 83.588460] usb 2-1: SerialNumber: 00e04c000001</p><p>[ 83.601974] Bluetooth: hci0: RTL: examining hci_ver=06 hci_rev=000b lmp_ver=06 lmp_subver=8723</p><p>[ 83.603894] Bluetooth: hci0: RTL: rom_version status=0 version=1</p><p>[ 83.603920] Bluetooth: hci0: RTL: loading rtl_bt/rtl8723b_fw.bin</p><p>[ 83.610108] Bluetooth: hci0: RTL: loading rtl_bt/rtl8723b_config.bin</p><p>[ 83.611274] Bluetooth: hci0: RTL: cfg_sz 68, total sz 22564</p><p>[ 83.658494] rtk_btusb: Realtek Bluetooth USB driver ver 3.1.6d45ddf.20220519-142432</p><p>[ 83.658651] usbcore: registered new interface driver rtk_btusb</p><p>[ 83.667124] usb 2-1: This Realtek USB WiFi dongle (0x0bda:0xb720) is untested!</p><p>[ 83.667137] usb 2-1: Please report results to Jes.Sorensen@gmail.com</p><p>[ 83.890140] usb 2-1: Vendor: Realtek</p><p>[ 83.890153] usb 2-1: Product: 802.11n WLAN Adapter</p><p>[ 83.890159] usb 2-1: rtl8723bu_parse_efuse: dumping efuse (0x200 bytes):</p><p>......</p><p>[ 83.890412] usb 2-1: RTL8723BU rev E (SMIC) 1T1R, TX queues 3, WiFi=1, BT=1, GPS=0, HI PA=0</p><p>[ 83.890417] usb 2-1: RTL8723BU MAC: 00:13:ef:f4:58:ae</p><p>[ 83.890421] usb 2-1: rtl8xxxu: Loading firmware rtlwifi/rtl8723bu_nic.bin</p><p>[ 83.895289] usb 2-1: Firmware revision 35.0 (signature 0x5301)</p><p>[ 84.050893] Bluetooth: hci0: RTL: fw version 0x0e2f9f73</p><p>[ 84.266905] Bluetooth: RFCOMM TTY layer initialized</p><p>[ 84.266949] Bluetooth: RFCOMM socket layer initialized</p><p>[ 84.266999] Bluetooth: RFCOMM ver 1.11</p><p>[ 84.884270] usbcore: registered new interface driver rtl8xxxu</p><p>[ 84.912046] rtl8xxxu 2-1:1.2 wlx0013eff458ae: renamed from wlan0</p></li><li><p>然后通过'''sudo ifconfig'''命令可以看到RTL8723BU WIFI的设备节点,WIFI的连接和测试方法请参看[[\l|'''WIFI连接测试''']]一节,这里不再赘述</p><p>orangepi@orangepi:~$ '''sudo ifconfig wlx0013eff458ae'''</p><p>wlx0013eff458ae: flags=4099&lt;UP,BROADCAST,MULTICAST&gt; mtu 1500</p><p>ether 00:13:ef:f4:58:ae txqueuelen 1000 (Ethernet)</p><p>RX packets 0 bytes 0 (0.0 B)</p><p>RX errors 0 dropped 0 overruns 0 frame 0</p><p>TX packets 0 bytes 0 (0.0 B)</p><p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</p></li><li><p>然后通过'''hciconfig'''命令可以看到USB的蓝牙设备</p><p>orangepi@orangepi:~$ '''sudo apt update &amp;&amp; sudo apt install bluez'''</p><p>orangepi@orangepi:~$ '''hciconfig'''</p><p>hci0: Type: Primary Bus: '''USB'''</p><p>BD Address: 00:13:EF:F4:58:AE ACL MTU: 820:8 SCO MTU: 255:16</p><p>DOWN</p><p>RX bytes:1252 acl:0 sco:0 events:125 errors:0</p><p>TX bytes:23307 acl:0 sco:0 commands:125 errors:0</p></li><li><p>在桌面中也可以看到出现了蓝牙图标,此时蓝牙还未打开,所以会显示一个红色的'''x'''</p><p>[[File:media/image279.png|576x157px]]</p></li><li><p>点击'''Turn Bluetooth On'''可以打开蓝牙</p><p>[[File:media/image280.png|576x262px]]</p></li><li><p>打开蓝牙后的显示如下所示</p><p>[[File:media/74fd8a52c97e0b0f86bb7228291fbe6aimage281.png|576x164px]]</p></li><li><p>蓝牙的测试方法请参看[[\l|'''蓝牙使用方法''']]一节,这里不再赘述</p></li></ol>
# 然后开始将Orange Pi OS (Droid)镜像写入TF卡<span id="rtl8811测试"></span>## 首先在“'''选择功能模式'''”中勾选“'''SD启动'''”## 然后在“'''选择升级固件'''”一栏中选择Orange Pi OS (Droid)镜像的路径## 最后点击“'''开始创建'''”按钮就会开始烧录Orange Pi OS (Droid)镜像到TF卡中==== RTL8811测试 ====
<ol style="list-style-type: decimal;"><li><p>首先将RTL8811无线网卡模块插入开发板的USB接口中</p></li><li><p>然后linux系统会自动加载RTL8811 WIFI相关的内核模块,通过lsmod命令可以看到下面内核模块已自动加载</p><p>orangepi@orangepi:~$ '''lsmod'''</p><p>Module Size Used by</p><p>8821cu 1839104 0</p></li><li><p>通过dmesg命令可以看到RTL8811模块的加载信息</p><p>orangepi@orangepi:~$ '''dmesg'''</p><p>[118.618194] usb 2-1: new high-speed USB device number 2 using ehci-platform</p><p>[File118.767152] usb 2-1:mediaNew USB device found, idVendor=0bda, idProduct=c811, bcdDevice= 2.00</f9d8ef3d894b68734db549f3e25c7ee4p><p>[ 118.png767181]usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3</p><p>[ 118.767199]usb 2-1: Product: 802.11ac NIC</p><p>[ 118.767219] usb 2-1: Manufacturer: Realtek</p><p>[ 118.767235] usb 2-1: SerialNumber: 123456</p><p>[ 119.500530] usbcore: registered new interface driver rtl8821cu</p><p>[ 119.525498] rtl8821cu 2-1:1.0 wlx1cbfced9d260: renamed from wlan0</p></li><li><p>然后通过'''sudo ifconfig'''命令可以看到WIFI的设备节点,WIFI的连接和测试方法请参看[[\l|'''WIFI连接测试''']]一节,这里不再赘述</p><p>orangepi@orangepi:~$ '''sudo ifconfig wlx1cbfced9d260'''</p><p>wlx1cbfced9d260: flags=4099&lt;UP,BROADCAST,MULTICAST&gt; mtu 1500</p><p>ether 1c:bf:ce:d9:d2:60 txqueuelen 1000 (Ethernet)</p><p>RX packets 0 bytes 0 (0.0 B)</p><p>RX errors 0 dropped 0 overruns 0 frame 0</p><p>TX packets 0 bytes 0 (0.0 B)</p><p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</p></li></ol>
# 烧录完后即可退出SDDiskTool软件,然后就可以把TF卡从电脑中拔出来插到开发板中启动了<span id="usb摄像头测试"></span>=== USB摄像头测试 ===
<ol style="list-style-type: decimal;"><li><p>首先需要准备一个下图所示的或者类似的支持UVC协议的USB摄像头,然后将USB摄像头插入到Orange Pi开发板的USB接口中</p><p>[[File:media/image17.png|277x160px]]</p></li><li><p>通过v4l2-ctl命令可以看到USB摄像头的设备节点信息为/dev/video0</p><p>orangepi@orangepi:~$ '''v4l2-ctl --list-devices'''</p><p>Q8 HD Webcam: Q8 HD Webcam ('''usb'''-fc880000.usb-1):</p><p>'''/dev/video0'''</p><p>/dev/video1</p><p>/dev/media0</p><p>'''注意v4l2中的l是小写字母l,不是数字1。'''</p><p>'''另外video的序号不一定都是video0,请以实际看到的为准。'''</p></li><li><p>在桌面系统中可以使用Cheese直接打开USB摄像头,Cheese打开方法如下图所示:</p><p>[[File:media/5616b51a8ee998dbc83ea26d5388515dimage282.png|474x302px]]</p><p>Cheese打开USB摄像头后的界面如下图所示:</p><p>[[File:media/image283.png|480x282px]]</p></li><li><p>使用fswebcam测试USB摄像头的方法</p><ol style="list-style-type: lower-alpha;"><li><p>安装fswebcam</p><p>orangepi@orangepi:~$ '''sudo''' '''apt update'''</p><p>orangepi@orangepi:~$ '''sudo apt-get install -y fswebcam'''</p></li><li><p>安装完fswebcam后可以使用下面的命令来拍照</p><ol style="list-style-type: lower-alpha;"><li><p>-d 选项用于指定USB摄像头的设备节点</p></li><li><p>--no-banner用于去除照片的水印</p></li><li><p>-r 选项用于指定照片的分辨率</p></li><li><p>-S 选项用设置于跳过前面的帧数</p></li><li><p>./image.jpg 用于设置生成的照片的名字和路径</p><p>orangepi@orangepi:~$ '''sudo''' '''fswebcam -d /dev/video0 \'''</p><p>'''--no-banner -r 1280x720 -S 5 ./image.jpg'''</p></li></ol></li><li><p>在服务器版的linux系统中,拍完照后可以使用scp命令将拍好的图片传到Ubuntu &gt; PC上镜像观看</p><p>orangepi@orangepi:~$ '''scp image.jpg [mailto:test@192.168.1.55:/home/test test@192.168.1.55:/home/test](根据实际情况修改IP地址和路径)'''</p></li><li><p>在桌面版的linux系统中,可以通过HDMI显示器直接查看拍摄的图片</p></li></ol></li></ol>
<span id="烧录orange-pi-os-droid镜像到emmc中的方法"></span>== 烧录Orange Pi OS (Droid)镜像到eMMC中的方法 音频测试 ==
<span id="通过type-c线将orange-pi-os-droid-镜像烧录到emmc"></span>=== 通过Type-C线将Orange Pi OS (Droid) 镜像烧录到eMMC 在桌面系统中测试音频方法 ===
<ol style="list-style-type: decimal;"><li><p>首先打开文件管理器</p><p>[[File:media/image284.png|357x176px]]</p></li><li><p>然后找到下面这个文件(如果系统中没有这个音频文件,可以自己上传一个音频文件到系统中)</p><p>[[File:media/image285.png|283x225px]]</p></li><li><p>然后选中audio.wav文件,右键选择使用vlc打开就可以开始播放</p><p>[[File:media/image286.png|288x234px]]</p></li><li><p>切换HDMI播放和耳机播放等不同音频设备的方法</p><ol style="list-style-type: lower-alpha;"><li><p>首先打开音量控制界面</p><p>[[File:media/image287.png|294x161px]]</p></li><li><p>播放音频的时候,在'''注意,下面所有的操作都是在Windows电脑中进行的。Playback'''中会显示播放软件可以使用的音频设备选项,如下图所示,在这里可以设置需要播放到哪个音频设备</p><p>[[File:media/image288.png|575x303px]]</p></li></ol></li></ol>
# 开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:=== 使用命令播放音频的方法 ===
[[File:media/509c9654850ee23aaabfc364310b90d9.png]]==== 耳机接口播放音频测试 ====
<ol style="list-style-type: decimal;"><li><p>首先将耳机插入开发板的耳机孔中</p><p>[[File:media/image289.png|365x89px]]</p></li><li><p>然后可以通过'''aplay -l'''命令可以查看下linux系统支持的声卡设备,从下面的输出可知,'''card 3'''为es8388的声卡设备,也就是耳机的声卡设备</p><p>orangepi@orangepi:~$ '''aplay -l'''</p><p>**** List of PLAYBACK Hardware Devices ****</p><p>card 0: rockchipdp0 [rockchip,dp0], device 0: rockchip,dp0 spdif-hifi-0 [rockchip,dp0 spdif-hifi-0]</p><p>Subdevices: 0/1</p><p>Subdevice #0: subdevice #0</p><p>card 1: rockchiphdmi0 [rockchip-hdmi0], device 0: rockchip-hdmi0 i2s-hifi-0 [rockchip-hdmi0 i2s-hifi-0]</p><p>Subdevices: 0/1</p><p>Subdevice #0: subdevice #0</p><p>card 2: rockchiphdmi1 [rockchip-hdmi1], device 0: rockchip-hdmi1 i2s-hifi-0 [rockchip-hdmi1 i2s-hifi-0]</p><p>Subdevices: 1/1</p><p>Subdevice #0: subdevice #0</p><p>'''card 3: rockchipes8388 [rockchip,es8388], device 0: dailink-multicodecs ES8323.7-0011-0 [dailink-multicodecs ES8323.7-0011-0]'''</p><p>'''Subdevices: 0/1'''</p><p>'''Subdevice #0: subdevice # 还需要准备一根品质良好的Type0'''</p></li><li><p>然后使用'''aplay'''命令播放下系统自带的音频文件,如果耳机能听到声音说明硬件能正常使用</p><p>orangepi@orangepi:~$ '''aplay -C接口的数据线D hw:3,0 /usr/share/sounds/alsa/audio.wav'''</p><p>Playing WAVE 'audio.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p></li></ol>
[[File:media/d84ad9c1e0e447425ddd86cfefafca1e.png]]==== 喇叭接口播放音频测试 ====
# 然后从[http<ol style="list-style-type://www.orangepi.cn/html/serviceAndSupport/index.html decimal;"><li><p>首先需要准备一个下图所示的喇叭,开发板上喇叭座子的规格为'''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v52pin 1.12.zip25mm'''和烧录工具'''RKDevTool_Release_v2间距</p><p>[[File:media/image28.96png|229x158px]]</p></li><li><p>开发板上喇叭接口的位置如下所示,准备好喇叭后,请将其插入到开发板的喇叭接口中</p><p>[[File:media/image290.zippng|325x184px]]</p></li><li><p>喇叭和耳机使用的同一个声卡,使用喇叭前,请确保耳机接口没有插入耳机(如果插入了耳机,音频会播放到耳机)。然后使用''',请确保下载的aplay'''RKDevTool命令播放下系统自带的音频文件,如果喇叭能听到声音说明硬件能正常使用</p><p>orangepi@orangepi:~$ '''工具的的版本为'''v2.96'''# 然后从[httpaplay -D hw:3,0 /usr/www.orangepi.cnshare/htmlsounds/serviceAndSupportalsa/indexaudio.html wav'''Orange Pi的资料下载页面</p><p>Playing WAVE 'audio.wav'']下载Orange Pi OS (Droid)的镜像: Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p></li></ol>
[[File:media<span id="hdmi音频播放测试"></f21092f6cc6b075f4dc1a24178a83e0f.png]]span>==== HDMI音频播放测试 ====
<ol style="list-style-type: decimal;"><li><p>首先使用HDMI 转HDMI线将Orange Pi开发板连接到电视机上(其他的HDMI显示器需要确保可以播放音频)</p></li><li><p>然后查看下HDMI的声卡序号,从下面的输出可以知道HDMI_TX1的声卡为'''card 1''',HDMI_TX2的声卡为'''card 2'''</p><p>orangepi@orangepi:~$ '''aplay -l'''</p><p>**** List of PLAYBACK Hardware Devices ****</p><p>card 0: rockchipdp0 [rockchip,dp0], device 0: rockchip,dp0 spdif-hifi-0 [rockchip,dp0 spdif-hifi-0]</p><p>Subdevices: 1/1</p><p>Subdevice #0: subdevice # 然后使用解压软件解压下载的Orange Pi OS (Droid)镜像的压缩包,解压后的文件中,以“.img” 结尾的文件就是Orange Pi OS (Droid)镜像文件,大小在1GB以上0</p><p>'''card 1: rockchiphdmi0 [rockchip-hdmi0], device 0: rockchip-hdmi0 i2s-hifi-0 [rockchip-hdmi0 i2s-hifi-0]'''</p><p>'''Subdevices: 1/1'''</p><p>'''Subdevice #0: subdevice #0'''</p><p>'''card 2: rockchiphdmi1 [rockchip-hdmi1], device 0: rockchip-hdmi1 i2s-hifi-0 [rockchip-hdmi1 i2s-hifi-0]'''</p><p>'''Subdevices: 1/1'''</p><p>'''Subdevice #0: subdevice # 然后用解压软件解压0'''DriverAssitant_v5</p></li><li><p>然后使用'''aplay'''命令播放下系统自带的音频文件,如果HDMI显示器或者电视能听到声音说明硬件能正常使用</p><ol style="list-style-type: lower-alpha;"><li><p>播放音频到HDMI_TX1的命令如下所示:</p><p>orangepi@orangepi:~$ '''aplay -D hw:1,0 /usr/share/sounds/alsa/audio.12.zipwav''',再在解压后的文件夹中找到</p></li><li><p>播放音频到HDMI_TX2的命令如下所示:</p><p>orangepi@orangepi:~$ '''DriverInstallaplay -D hw:2,0 /usr/share/sounds/alsa/audio.exewav'''可执行文件并打开即可</p></li></ol></li></ol>
[[File:media/3abe751bd0c4c5e9be6a83f839a1e4c2.png]]=== 使用命令测试录音的方法 ===
# 打开<ol style="list-style-type: decimal;"><li><p>开发板上有板载MIC,位置如下所示:</p><p>[[File:media/image291.png|339x112px]]</p></li><li><p>运行'''test_record.sh main'''命令会通过板载MIC录制一段音频,然后播放到HDMI_TX1和耳机。</p><p>orangepi@orangepi:~$ '''test_record.sh main'''DriverInstall</p><p>Start recording: /tmp/test.exewav</p><p>Recording WAVE '/tmp/test.wav': Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p><p>Start playing</p><p>Playing WAVE '/tmp/test.wav'后安装瑞芯微驱动的步骤如下所示: Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p>## 点击“<p>Playing WAVE '/tmp/test.wav': Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p></li><li><p>除了板载MIC,我们还可以通过带MIC功能的耳机来录制音频。将带MIC功能的耳机插入开发板后,运行'驱动安装''test_record.sh headset'''命令会通过耳机录制一段音频,然后播放到HDMI_TX1和耳机。</p><p>orangepi@orangepi:~$ '''test_record.sh headset'''</p><p>Start recording: /tmp/test.wav</p><p>Recording WAVE '/tmp/test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p><p>Start playing</p><p>Playing WAVE '/tmp/test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p><p>Playing WAVE '/tmp/test.wav'”按钮: Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p></li></ol>
[[File:media/bc5fc637f8588abefa4f2ff7e0dc2683.png]]== 温度传感器 ==
# 等待一段时间后,会弹出窗口提示“'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可查看系统温度传感器的命令为:
[[Fileorangepi@orangepi:media/48720c90a698617c0f884059ac1d6885.png]]~$ '''sensors'''
# 然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可gpu_thermal-virtual-0
[[FileAdapter:media/c20745924f6e330c0bc60639e5ee8c1b.png]]Virtual device
# 打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示“'''没有发现设备'''”temp1: +47.2°C
[[File:media/ca4b9e37ca9d9cce3f888c4278bd3726.png]]littlecore_thermal-virtual-0
# 然后开始烧录Orange Pi OS (Droid)镜像到eMMC中## 首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示Adapter: Virtual device
[[Filetemp1:media/293482d42e80a8b3e2962b40e834bb41+47.png]]2°C
# 确保开发板没有插入TF卡,没有连接电源## 然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:bigcore0_thermal-virtual-0
[[FileAdapter:media/b5c295a072c9e13167488051a2a2cb04.png]]Virtual device
# 然后给开发板接上Type-C接口的电源,并上电temp1: +47.2°C
[[File:media/1f65f9666af69c591813b5597e806ccb.png]]tcpm_source_psy_6_0022-i2c-6-22
# 如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示“'''发现一个MASKROM设备'''”Adapter: rk3x-i2c
[[Filein0:media/18276e05fbda6e29cb92f7582ba887d40.png]]00 V (min = +0.00 V, max = +0.00 V)
# 然后点击烧录工具的“'''升级固件'''”一栏curr1: 0.00 A (max = +0.00 A)
[[File:media/3e9bea3f77dce0b408bac9df3a5b416b.png]]npu_thermal-virtual-0
# 接着点击“'''固件'''”按钮选择需要烧录的Orange Pi OS (Droid)镜像的路径Adapter: Virtual device
[[Filetemp1:media/c3d19212664a98ca47af3920fe1bf596+47.png]]2°C
# 最后点击“'''升级'''”按钮就会开始烧录,烧录过程中的log如下图所示。烧录完成后Orange Pi OS (Droid)系统会自动启动。center_thermal-virtual-0
[[FileAdapter:media/0679ed0d11458c418a27c06f1f331b54.png]]Virtual device
<span id="通过tf卡将orange-pi-os-droid镜像烧录到emmc"></span>=== 通过TF卡将Orange Pi OS (Droid)镜像烧录到eMMC ===temp1: +47.2°C
'''注意,下面所有的操作都是在Windows电脑中进行的。'''bigcore1_thermal-virtual-0
# 开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:Adapter: Virtual device
[[Filetemp1:media/509c9654850ee23aaabfc364310b90d9+47.png]]2°C
# 还需要准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''或以上,建议使用闪迪等品牌的TF卡# 然后使用读卡器把TF卡插入电脑# 然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载SDDiskTool烧写工具,'''请确保SDDiskTool工具的版本为最新的v1.72'''# 然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载Orange Pi OS (Droid)的镜像soc_thermal-virtual-0
[[FileAdapter:media/f21092f6cc6b075f4dc1a24178a83e0f.png]]Virtual device
# 然后使用解压软件解压下载的Orange Pi OS temp1: +47.2°C (Droid)镜像的压缩包,解压后的文件中,以“crit = +115.img” 结尾的文件就是Orange Pi OS (Droid0°C)镜像文件,大小在1GB以上# 然后使用解压软件解压'''SDDiskTool_v1.72.zip''',此软件无需安装,在解压后的文件夹中找到'''SD_Firmware_Tool.exe'''打开即可
[[File:media<span id="pin扩展接口引脚使用说明"></0368da194342b31d165057aa92eda2ad.png]]span>== 40 Pin扩展接口引脚使用说明 ==
# 打开'''SDDiskTool'''后,如果TF卡识别正常,会在“'''选择可移动磁盘设备'''”一栏中显示插入的磁盘设备,'''请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的''',如果没有显示可以尝试拔插下TF卡<div class="figure">
[[File:media/b56645d0ada2cc60a79509b0ea711638image292.pngjpeg|575x166px|5725d46c4ff256fbd1d42ed5ba883f9f]]
# 确认完盘符后,可以先格式化下TF卡,点击</div><ol style="list-style-type: decimal;"><li><p>Orange Pi 5 Plus开发板40 pin扩展接口引脚的顺序请参考下图:</p><p>[[File:media/image293.png|575x380px]]</p></li><li><p>Orange Pi 5 Plus开发板40 pin接口引脚的功能如下表所示</p><ol style="list-style-type: lower-alpha;"><li><p>下面是40 pin完整的引脚图</p><p>[[File:media/image294.png|575x137px]]</p><p>下面这张是彩图,包含上面表格中的部分内容:</p><p>[[File:media/image295.png|575x199px]]</p></li><li><p>下面的表格是上面完整表格左半边部分的图,能看得清楚点</p><p>[[File:media/image296.png|576x287px]]</p></li><li><p>下面的表格是上面完整表格右半边部分的图,能看得清楚点</p><p>[[File:media/image297.png|575x263px]]</p><p>'''SDDiskTool上面表格中pwm都标出了对应的寄存器的基地址,在查看/sys/class/pwm/中哪个pwmchip对应40 pin排针中哪个pwm引脚时很有用。'''中的</p></li></ol></li><li><p>40 pin接口中总共有'''恢复磁盘28'''按钮即可,也可使用前面提到的个GPIO口,所有GPIO口的电压都是'''SD Card Formatter3.3v'''进行TF卡的格式化。</p></li></ol>
[[File:media<span id="安装wiringop的方法"></74fd8a52c97e0b0f86bb7228291fbe6a.png]]span>== 安装wiringOP的方法 ==
# 然后开始将Orange Pi OS (Droid)镜像写入TF卡## 首先在'''“选择可移动磁盘设备”注意,Orange Pi发布的linux镜像中已经预装了wiringOP,除非wiringOP的代码有更新,否则无需重新下载编译安装,直接使用即可。'''下面确认显示的盘符为TF卡对应的盘符## 然后在“'''选择功能模式'''”中选择'''“固件升级”'''## 然后在“'''选择升级固件'''”一栏中选择Orange Pi OS (Droid)固件的路径## 最后点击“'''开始创建'''”按钮就会开始烧录
[[File:media/b2d877a351549f41d6dae7ae22d96cb4.png]]'''编译好的wiringOP的deb包在orangepi-build中的存放路径为:'''
# 烧录完成后的显示如下图所示,然后就可以退出SDDiskTool'''orangepi-build/external/cache/debs/arm64/wiringpi_x.xx.deb'''
[[File:media/c999fc9ee19372b1b76a2d69848537b5.png]]'''进入系统后可以运行下gpio readall命令,如果能看到下面的输出,说明wiringOP已经预装并且能正常使用。'''
# 然后把TF卡从电脑中拔出来插到开发板中,开发板上电启动后就会自动开始将TF卡中的Orange Pi OS (Droid)镜像烧录到开发板的eMMC中# 如果开发板连接了HDMI显示器,还可以从HDMI显示器中看到烧录Orange Pi OS (Droid)镜像到eMMC中的进度条<div class="figure">
[[File:media/21725ffae6d6578fbb4ae157698a7624image298.png|575x403px|876iring_001]]
# 当HDMI显示器显示如下信息时,说明烧录Orange Pi OS (Droid)镜像到eMMC中已完成,此时就可以拔出TF卡,然后eMMC中的Orange Pi OS (Droid)系统就会开始启动。</div>'''wiringOP目前主要适配了设置GPIO口输入输出,设置GPIO口输出高低电平以及设置上下拉电阻的功能,像硬件PWM这样的功能是用不了的。'''
[[File<ol style="list-style-type:mediadecimal;"><li><p>下载wiringOP的代码</14acd8efbf40564fe8111876419a3667p><p>orangepi@orangepi:~$ '''sudo apt update'''</p><p>orangepi@orangepi:~$ '''sudo apt install -y git'''</p><p>orangepi@orangepi:~$ '''git clone https://github.png]]com/orangepi-xunlong/wiringOP.git -b next'''</p><p>'''注意,Orange Pi 5 Plus需要下载wiringOP next分支的代码,请别漏了-b next这个参数。'''</p><p>'''如果从GitHub下载代码有问题,可以直接使用Linux镜像中自带的wiringOP源码,存放位置为:/usr/src/wiringOP'''</p></li><li><p>编译安装wiringOP</p><p>orangepi@orangepi:~$ '''cd wiringOP'''</p><p>orangepi@orangepi:~/wiringOP$ '''sudo ./build clean'''</p><p>orangepi@orangepi:~/wiringOP$ '''sudo ./build'''</p></li><li><p>测试gpio readall命令的输出如下</p><div class="figure">
<span id="烧录orange-pi-os-droid镜像到spiflashnvme-ssd中"><[[File:media/span>== 烧录Orange Pi OS (Droid)镜像到SPIFlash+NVMe SSD中 ==image298.png|575x403px|876iring_001]]
'''注意,下面所有的操作都是在Windows电脑中进行的。'''</div></li></ol>
# 首先需要准备一个2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。<span id="pin接口gpioi2cuartspican和pwm测试"></span>== 40 pin接口GPIO、I2C、UART、SPI、CAN和PWM测试 ==
[[File:media<span id="pin-gpio口测试"></6b09ed51c8f4954ed95742cd63b21c74.png]]span>=== 40 pin GPIO口测试 ===
# 然后把NVMe SSD插入开发板的M.2 PCIe接口,并固定好'''Orange Pi发布的linux系统中有预装一个blink_all_gpio程序,这个程序会设置40 pin中的所有28个GPIO口不停的切换高低电平。'''
[[File:media/eff81166492ce92b30912818342b0d5b'''运行blink_all_gpio程序后,当用万用表去测量GPIO口的电平时,会发现GPIO引脚会在0和3.png]]3v之间不停的切换。使用这个程序我们可以来测试GPIO口是否能正常工作。'''
# SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置'''运行blink_all_gpio程序的方式如下所示:'''
[[Fileorangepi@orangepi5plus:media/815ee597fcdbd832b687cc3df51795b6.png]]~$ '''sudo blink_all_gpio #记得加sudo权限'''
[sudo] password for orangepi: '''# 还需要准备一根品质良好的Type-C接口的数据线在这里需要输入密码'''
[[File<ol style="list-style-type:mediadecimal;"><li><p>开发板40 pin中总共有'''28'''个GPIO口可以使用,下面以7号引脚——对应GPIO为GPIO1_D6 ——对应wPi序号为2——为例演示如何设置GPIO口的高低电平</d84ad9c1e0e447425ddd86cfefafca1e.png]]p><div class="figure">
# 然后从[http[File:media//wwwimage299.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面'''png|575x145px|874iring_001]]下载瑞芯微驱动'''DriverAssitant_v5.12.zip''',烧录工具'''RKDevTool_Release_v2.96.zip''',请确保下载的'''RKDevTool'''工具的的版本为'''v2.96'''# 然后下载Orange Pi OS (Droid)的镜像,打开Orange Pi OS (Droid)镜像的下载链接后可以看到下面两种类型的镜像,请选择带'''spi-nvme'''的镜像进行下载
[[File</div></li><li><p>首先设置GPIO口为输出模式,其中第三个参数需要输入引脚对应的wPi的序号</p><p>root@orangepi:~/wiringOP# '''gpio mode 2 out'''</p></li><li><p>然后设置GPIO口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功</p><p>root@orangepi:media~/wiringOP# '''gpio write 2 0'''</p><p>使用gpio readall可以看到7号引脚的值(V)变为了0</1ea829666fe6cb4d44baca4a5ced4ea9.png]]p><div class="figure">
# 然后用解压软件解压'''DriverAssitant_v5[[File:media/image300.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可png|575x127px|874iring_002]]
[[File</div></li><li><p>然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功</p><p>root@orangepi:media~/3abe751bd0c4c5e9be6a83f839a1e4c2.png]]wiringOP# '''gpio write 2 1'''</p><p>使用gpio readall可以看到7号引脚的值(V)变为了1</p><div class="figure">
# 打开'''DriverInstall[[File:media/image301.exe'''后安装瑞芯微驱动的步骤如下所示## 点击“'''驱动安装'''”按钮png|575x131px|875iring_001]]
[[File:media</bc5fc637f8588abefa4f2ff7e0dc2683.png]]div></li><li><p>其他引脚的设置方法类似,只需修改wPi的序号为引脚对应的序号即可</p></li></ol>
# 等待一段时间后,会弹出窗口提示“'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可<span id="pin-gpio口上下拉电阻的设置方法"></span>=== 40 pin GPIO口上下拉电阻的设置方法 ===
[[File<ol style="list-style-type:mediadecimal;"><li><p>下面以7号引脚——对应GPIO为GPIO1_D6 ——对应wPi序号为2——为例演示如何设置GPIO口的上下拉电阻</48720c90a698617c0f884059ac1d6885.png]]p><div class="figure">
# 然后解压'''RKDevTool_Release_v2[[File:media/image301.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可png|575x131px|875iring_001]]
[[File</div></li><li><p>首先需要设置GPIO口为输入模式,其中第三个参数需要输入引脚对应的wPi的序号</p><p>root@orangepi:~/wiringOP# '''gpio mode 2 in'''</p></li><li><p>设置为输入模式后,执行下面的命令可以设置GPIO口为上拉模式</p><p>root@orangepi:~/wiringOP# '''gpio mode 2 up'''</p></li><li><p>然后输入下面的命令读取GPIO口的电平,如果电平为1,说明上拉模式设置成功</p><p>root@orangepi:~/wiringOP# '''gpio read 2'''</p><p>'''1'''</p></li><li><p>然后执行下面的命令可以设置GPIO口为下拉模式</p><p>root@orangepi:~/wiringOP# '''gpio mode 2 down'''</p></li><li><p>然后输入下面的命令读取GPIO口的电平,如果电平为0,说明下拉模式设置成功</p><p>root@orangepi:media~/wiringOP# '''gpio read 2'''</p><p>'''0'''</p></li></c20745924f6e330c0bc60639e5ee8c1b.png]]ol>
# 打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type<span id="pin-C线连接上开发板,所以左下角会提示“'''没有发现设备'''”spi测试"></span>=== 40 pin SPI测试 ===
<ol style="list-style-type: decimal;"><li><p>由下图可知,Orange Pi 5 Plus可用的SPI为SPI0和SPI4</p><p>[[File:media/ca4b9e37ca9d9cce3f888c4278bd3726image294.png|575x137px]]</p></li><li><p>SPI0和SPI4在40pin中对应的引脚如下表所示。SPI4_M1和SPI4_M2同一时间只能使用其中一组,不能同时使用,它们都是同一个SPI4,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的SPI总线。</p></li></ol>
# 然后开始烧录Android镜像到SPIFlash+NVMe SSD中{| class="wikitable"## 首先通过Type|-C数据线连接好开发板与Windows电脑,开发板Type|| '''S PI0_M2对应40pin'''| '''S PI4_M1对应40pin'''| '''SP I4_M2对应40pin'''|-C接口的位置如下图所示| * *MOSI**
[[File:media/293482d42e80a8b3e2962b40e834bb41.png]]| '''19号引脚'''| '''12号引脚'''| '''8号引脚'''|-| * *MISO**
# 确保开发板没有插入TF和eMMC模块,没有连接电源| '''21号引脚'''## 然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:| '''31号引脚'''| '''10号引脚'''|-| '''CLK'''| '''23号引脚'''| '''35号引脚'''| '''22号引脚'''|-| '''CS0'''| '''24号引脚'''| '''40号引脚'''| '''31号引脚'''|-| '''CS1'''| '''26号引脚'''| '''38号引脚'''| '''无'''|-| '''dtb o配置'''| '''spi 0-m2-cs0-spidev'''
[[File:media/b5c295a072c9e13167488051a2a2cb04.png]]'''spi 0-m2-cs1-spidev'''
# 然后给开发板接上Type'''spi0-C接口的电源,并上电,然后就可以松开MaskROM按键了m2 -cs0-cs1-spidev'''
[[File:media/1f65f9666af69c591813b5597e806ccb.png]]| '''spi 4-m1-cs0-spidev'''
# 如果前面的步骤顺利,此时开发板会进入'''MASKROMspi 4-m1-cs1-spidev'''模式,在烧录工具的界面上会提示“'''发现一个MASKROM设备'''”
[[File:media/18276e05fbda6e29cb92f7582ba887d4.png]]'''spi4-m1 -cs0-cs1-spidev'''
# 然后点击烧录工具的“| '''升级固件spi4 -m2-cs0-spidev'''”一栏|}
<ol start="3" style="list-style-type: decimal;"><li><p>在linux系统中,40 pin中的SPI默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p><p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li><li><p>然后选择'''System'''</p><p>[[File:media/image223.png|389x180px]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:media/image224.png|389x169px]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的SPI的配置</p><p>[[File:media/image302.png|388x132px]]</p></li><li><p>然后选择'''&lt;Save&gt;'''保存</p><p>[[File:media/image253.png|391x113px]]</p></li><li><p>然后选择'''&lt;Back&gt;'''</p><p>[[File:media/image254.png|404x123px]]</p></li><li><p>然后选择'''&lt;Reboot&gt;'''重启系统使配置生效</p><p>[[File:media/3e9bea3f77dce0b408bac9df3a5b416bimage228.png|332x146px]]</p></li></ol></li><li><p>重启后进入系统先查看下linux系统中是否存在'''spidevx.x'''的设备节点,如果存在,说明SPI已经设置好了,可以直接使用。</p><p>orangepi@orangepi:~$ '''ls /dev/spidev*'''</p><p>/dev/spidev0.0 /dev/spidev0.1 /dev/spidev4.0 /dev/spidev4.1</p><p>'''上面是打开spi0-m2-cs0-cs1-spidev和spi4-m1-cs0-cs1-spidev后显示的结果。'''</p></li><li><p>然后先不短接SPI0或者SPI4的MOSI和MISO两个引脚,运行spidev_test的输出结果如下所示,可以看到TX和RX的数据不一致</p><p>orangepi@orangepi:~$ '''sudo spidev_test -v -D /dev/spidev4.0'''</p><p>'''或者'''</p><p>orangepi@orangepi:~$ '''sudo spidev_test -v -D /dev/spidev0.0'''</p><p>spi mode: 0x0</p><p>bits per word: 8</p><p>max speed: 500000 Hz (500 KHz)</p><p>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 | ......@.…▒..................▒.</p><p>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 | ............................….</p></li><li><p>然后短接SPI0或者SPI4的MOSI和MISO两个引脚再运行spidev_test的输出如下,可以看到发送和接收的数据一样,说明SPI回环测试正常。</p><p>orangepi@orangepi:~$ '''sudo spidev_test -v -D /dev/spidev4.0'''</p><p>'''或者'''</p><p>orangepi@orangepi:~$ '''sudo spidev_test -v -D /dev/spidev0.0'''</p><p>spi mode: 0x0</p><p>bits per word: 8</p><p>max speed: 500000 Hz (500 KHz)</p><p>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 | ......@.…▒..................▒.</p><p>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 | ......@.…▒..................▒.</p></li></ol>
# 接着点击“'''固件'''”按钮选择需要烧录的Orange Pi OS (Droid)镜像<span id="pin-i2c测试"></span>=== 40 pin I2C测试 ===
<ol style="list-style-type: decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的i2c为i2c2、i2c4、i2c5和i2c8共四组 i2c总线。</p><p>[[File:media/c3d19212664a98ca47af3920fe1bf596image294.png|575x137px]]</p></li><li><p>4组I2C总线在40pin中对应的引脚如下表所示。I2C2_M0和I2C2_M4同一时间只能使用其中一组,不能同时使用,它们都是同一个I2C2,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的I2C2总线。</p></li></ol>
# 最后点击“{| class="wikitable"|-| style="text-align: left;"| '''升级I2C总线'''”按钮就会开始烧录,烧录的过程如下图所示,可以看到,首先会烧录固件到SPIFlash中,然后烧录固件到PCIE中。烧录完成后Orange Pi OS (Droid)系统会自动启动。| style="text-align: left;"| '''SDA对应40pin'''| style="text-align: left;"| '''SCL对应40pin'''| style="text-align: left;"| '''dtbo对应配置'''|-| style="text-align: left;"| '''I2C2_M0'''| style="text-align: left;"| '''3号引脚'''| style="text-align: left;"| '''5号引脚'''| style="text-align: left;"| '''i2c2-m0'''|-| style="text-align: left;"| '''I2C2_M4'''| style="text-align: left;"| '''10号引脚'''| style="text-align: left;"| '''8号引脚'''| style="text-align: left;"| '''i2c2-m4'''|-| style="text-align: left;"| '''I2C4_M3'''| style="text-align: left;"| '''22号引脚'''| style="text-align: left;"| '''32号引脚'''| style="text-align: left;"| '''i2c4-m3'''|-| style="text-align: left;"| '''I2C5_M3'''| style="text-align: left;"| '''27号引脚'''| style="text-align: left;"| '''28号引脚'''| style="text-align: left;"| '''i2c5-m3'''|-| style="text-align: left;"| '''I2C8_M2'''| style="text-align: left;"| '''29号引脚'''| style="text-align: left;"| '''7号引脚'''| style="text-align: left;"| '''i2c8-m2'''|}
<ol start="3" style="list-style-type: decimal;"><li><p>在linux系统中,40 pin中的I2C总线默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p><p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li><li><p>然后选择'''System'''</p><p>[[File:media/c6f65462132a7004e1c5d4c6056d8ac7image223.png|397x184px]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:media/image224.png|401x174px]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的I2C的配置</p><p>[[File:media/image303.png|406x153px]]</p></li><li><p>然后选择'''&lt;Save&gt;'''保存</p><p>[[File:media/image253.png|380x109px]]</p></li><li><p>然后选择'''&lt;Back&gt;'''</p><p>[[File:media/image254.png|355x108px]]</p></li><li><p>然后选择'''&lt;Reboot&gt;'''重启系统使配置生效</p><p>[[File:media/image228.png|323x142px]]</p></li></ol></li><li><p>启动linux系统后,先确认下'''/dev'''下存在需要使用I2C的设备节点</p><p>orangepi@orangepi:~$ '''ls /dev/i2c-*'''</p></li><li><p>然后在40 pin接口对应的I2C引脚上接一个I2C设备</p></li><li><p>然后使用'''i2cdetect -y'''命令如果能检测到连接的i2c设备的地址,就说明i2c能正常使用</p><p>orangepi@orangepi:~$ '''sudo i2cdetect -y 2''' #i2c2的命令</p><p>orangepi@orangepi:~$ '''sudo i2cdetect -y 4''' #i2c4的命令</p><p>orangepi@orangepi:~$ '''sudo i2cdetect -y 5''' #i2c5的命令</p><p>orangepi@orangepi:~$ '''sudo i2cdetect -y 8''' #i2c8的命令</p></li></ol>
<div class== 启动香橙派开发板 =="figure">
# 将烧录好镜像的TF卡或eMMC模块插入香橙派开发板的TF卡插槽中。如果SPIFlash+NVMe SSD已经烧录好镜像了,那么就不需要插入TF卡或eMMC模块了,只需确保NVMe SSD正常插入到开发板中即可。# 开发板有HDMI接口,可以通过HDMI转HDMI连接线把开发板连接到电视或者HDMI显示器。如果有购买LCD屏幕,也可以使用LCD屏幕来显示开发板的系统界面。如果有Type-C转HDMI的线,也可以通过Type-C接口来显示开发板的系统界面。# 接上USB鼠标和键盘,用于控制香橙派开发板。# 开发板有以太网口,可以插入网线用来上网。# 连接一个5V[[File:media/4A的USB Type-C接口的'''高品质'''的电源适配。image304.png|336x170px|521iring_001]]
'''切记不要插入电压输出大于5V的电源适配器,会烧坏开发板。'''</div><span id="pin的uart测试"></span>=== 40 pin的UART测试 ===
'''系统上电启动过程中很多不稳定的现象基本都是供电有问题导致的,所以一个靠谱的电源适配器很重要。如果启动过程中发现有不断重启的现象,请更换下电源或者Type<ol style="list-C数据线再试下。'''style-type: decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的uart为uart1、uart3、uart4、uart6、uart7和uart8共6组uart总线</p><p>[[File:media/image294.png|575x137px]]</p></li><li><p>6组UART总线在40pin中对应的引脚如下表所示:</p></li></ol>
{| class="wikitable"|-| style="text-align: left;"| '''UART总线'''| style="text-align: left;"| '''RX对应40pin'''| style="text-align: left;"| '''TX对应40pin'''| style="text-align: left;"| '''dtbo对应配置'''|-| style="text-align: left;"| '''UART1_M1'''| style="text-align: left;"| '''27号引脚'''| style="text-align: left;"| '''28号引脚'''| style="text-align: left;"| '''uart1-m1'''|-| style="text-align: left;"| '''UART3_M1'''| style="text-align: left;"| '''18号引脚'''| style="text-align: left;"| '''16号引脚'''| style="text-align: left;"| '''uart3-m1'''|-| style="text-align: left;"| '''UART4_M2'''| style="text-align: left;"| '''19号引脚'''| style="text-align: left;"| '''23号引脚'''| style="text-align: left;"| '''uart4-m2'''|-| style="text-align: left;"| '''UART6_M1'''| style="text-align: left;"| '''10号引脚'''| style="text-align: left;"| '''8号引脚'''| style="text-align: left;"| '''uart6-m1'''|-| style="text-align: left;"| '''UART7_M2'''| style="text-align: left;"| '''24号引脚'''| style="text-align: left;"| '''26号引脚'''| style="text-align: left;"| '''uart7-m2'''|-| style="text-align: left;"| '''UART8_M1'''| style="text-align: left;"| '''40号引脚'''| style="text-align: left;"| '''35号引脚'''| style="text-align: left;"| '''Typeuart8-C电源接口是不支持PD协商的。m1'''|}
<ol start="3" style="list-style-type: decimal;"><li><p>在linux系统中,40 pin中的UART默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''另外请不要接到电脑的USB接口来给开发板供电。orangepi-config''',普通用户记得加'''sudo'''权限</p><p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li><li><p>然后选择'''System'''</p><p>[[File:media/image223.png|403x186px]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:media/image224.png|413x179px]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的UART的配置</p><p>[[File:media/image305.png|408x144px]]</p></li><li><p>然后选择'''&lt;Save&gt;'''保存</p><p>[[File:media/image253.png|405x117px]]</p></li><li><p>然后选择'''&lt;Back&gt;'''</p><p>[[File:media/image254.png|401x122px]]</p></li><li><p>然后选择'''&lt;Reboot&gt;'''重启系统使配置生效</p><p>[[File:media/image228.png|320x141px]]</p></li></ol></li><li><p>进入linux系统后,先确认下/dev下是否存在对应uart的设备节点</p><p>orangepi@orangepi:~$ '''ls /dev/ttyS*'''</p></li><li><p>然后开始测试uart接口,先使用杜邦线短接要测试的uart接口的rx和tx引脚</p></li><li><p>使用'''gpio serial'''命令测试串口的回环功能如下所示,如果能看到下面的打印,说明串口通信正常(ttySX需要替换为对应uart的节点名,请不要照抄)</p><p>orangepi@orangepi:~$ '''sudo gpio serial /dev/ttySX'''</p><p>[sudo] password for orangepi: #在这里输入密码</p><p>Out: 0: -&gt; 0</p><p>Out: 1: -&gt; 1</p><p>Out: 2: -&gt; 2</p><p>Out: 3: -&gt; 3</p><p>Out: 4: -&gt; 4</p><p>Out: 5: -&gt; 5^C</p></li></ol>
'''开发板上有两个长得一样的Type-C接口,其中网口旁边竖着的那个才是电源接口,另外那个Type-C接口是没有供电功能的,请别接错了。'''<span id="pwm的测试方法"></span>=== PWM的测试方法 ===
<ol style="list-style-type: decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的PWM有pwm0、pwm1、pwm11、pwm12、pwm13和pwm14共六路pwm</p><p>[[File:media/be21ec9a0619208250c105cfbdfa9eb8image294.png|575x137px]]</p></li><li><p>PWM在40pin中对应的引脚如下表所示。PWM0_M0和PWM0_M2、PWM1_M0和PWM1_M2、PWM14_M0和PWM14_M2同一时间只能使用其中一个,不能同时使用,它们都是同一个PWM,只是接到不同的引脚上去了而已,请不要以为它们是两个不同的PWM总线。</p></li></ol>
# 然后打开电源适配器的开关,如果一切正常,此时HDMI显示器或者LCD屏幕就能看到系统的启动画面了。{| class="wikitable"|-| style="text-align: left;"| '''PWM总线'''| style="text-align: left;"| '''对应40pin'''| style="text-align: left;"| '''dtbo对应配置'''|-| style="text-align: left;"| '''PWM0_M0'''| style="text-align: left;"| '''5号引脚'''| style="text-align: left;"| '''pwm0-m0'''|-| style="text-align: left;"| '''PWM0_M2'''# 如果想通过调试串口查看系统的输出信息,请使用串口线将开发板连接到电脑,串口的连接方法请参看[[#_调试串口的使用方法| style="text-align: left;"|'''调试串口的使用方法22号引脚''']]一节。| style="text-align: left;"| '''pwm0-m2'''|-| style="text-align: left;"| '''PWM1_M0'''| style="text-align: left;"| '''3号引脚'''| style="text-align: left;"| '''pwm1-m0'''|-| style="text-align: left;"| '''PWM1_M2'''| style="text-align: left;"| '''32号引脚'''| style="text-align: left;"| '''pwm1-m2'''|-| style="text-align: left;"| '''PWM11_M0'''| style="text-align: left;"| '''12号引脚'''| style="text-align: left;"| '''pwm11-m0'''|-| style="text-align: left;"| '''PWM12_M0'''| style="text-align: left;"| '''14号引脚'''| style="text-align: left;"| '''pwm12-m0'''|-| style="text-align: left;"| '''PWM13_M0'''| style="text-align: left;"| '''16号引脚'''| style="text-align: left;"| '''pwm13-m0'''|-| style="text-align: left;"| '''PWM14_M0'''| style="text-align: left;"| '''33号引脚'''| style="text-align: left;"| '''pwm14-m0'''|-| style="text-align: left;"| '''PWM14_M2'''| style="text-align: left;"| '''7号引脚'''| style="text-align: left;"| '''pwm14-m0'''|}
<ol start="3" style= 调试串口的使用方法 "list-style-type: decimal;"><li><p>在linux系统中,40 pin中的PWM默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p><p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li><li><p>然后选择'''System'''</p><p>[[File:media/image223.png|416x192px]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:media/image224.png|457x198px]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的PWM的配置</p><p>[[File:media/image306.png|279x222px]]</p></li><li><p>然后选择'''&lt;Save&gt;'''保存</p><p>[[File:media/image253.png|368x106px]]</p></li><li><p>然后选择'''&lt;Back&gt;'''</p><p>[[File:media/image254.png|370x112px]]</p></li><li><p>然后选择'''&lt;Reboot&gt;'''重启系统使配置生效</p><p>[[File:media/image228.png|303x133px]]</p></li></ol></li><li><p>当打开一个pwm后,在'''/sys/class/pwm/'''中就会多出一个pwmchipX(X为具体的的数字),比如打开pwm14后,查看'''/sys/class/pwm/'''下的pwmchipX会由两个变成了三个</p><p>orangepi@orangepi:~$ '''ls /sys/class/pwm/'''</p><p>pwmchip0 pwmchip1 pwmchip2</p></li><li><p>上面哪个pwmchip对应pwm14呢,我们先查看下 '''ls /sys/class/pwm/ -l'''命令的输出,如下所示:</p><div class="figure">
=== 调试串口的连接说明 ===[[File:media/image307.png|576x77px|985iring_001]]
# 首先需要准备一个</div></li><li><p>然后由下表可知,pwm14寄存器的基地址为febf0020,再看 '''3.3Vls /sys/class/pwm/ -l'''的USB转TTL模块,然后将USB转TTL模块的USB接口一端插入到电脑的USB接口中。命令的输出,可以看到pwmchip2中链接到了febf0020.pwm,所以pwm14对应pwmchip为pwmchip2</p><p>[[File:media/image308.png|575x287px]]</p></li><li><p>然后使用下面的命令可以让pwm14输出一个50Hz的方波(请先切换到root用户,再执行下面的命令)</p></li></ol>
root@orangepi:~# '''为了更好的兼容性,推荐使用CH340 USB转TTL模块,请不要使用CP2102、PL2303类型的USB转TTL模块。echo 0 &gt; /sys/class/pwm/pwmchip2/export'''
root@orangepi:~# '''购买USB转TTL模块前,请确认模块支持1500000速率的波特率。echo 20000000 &gt; /sys/class/pwm/pwmchip2/pwm0/period'''
[[Fileroot@orangepi:media~# '''echo 1000000 &gt; /535a6a26ef013767b4779e527e38b33d.png]]sys/class/pwm/pwmchip2/pwm0/duty_cycle'''
root@orangepi:~# 开发板的调试串口GND、RXD和TXD引脚的对应关系如下图所示:'''echo 1 &gt; /sys/class/pwm/pwmchip2/pwm0/enable'''
[[File:media/0c20aec6e73010155a5f9b521e0091dfimage309.png|575x346px]]
# USB转TTL模块GND、TXD和RXD引脚需要通过杜邦线连接到开发板的调试串口上<ol start="8" style="list-style-type: decimal;">## USB转TTL模块的GND接到开发板的GND上## USB转TTL模块的'''RX接到开发板的TX上'''## USB转TTL模块的'''TX接到开发板的RX上'''# USB转TTL模块连接电脑和Orange Pi开发板的示意图如下所示<li>上面演示的pwm14的测试方法,其他pwm测试方法都是类似的。</li></ol>
<div classspan id="figurecan的测试方法"></span>=== CAN的测试方法 ===
[[File:media<span id="打开can的方法"></3ec828638547de28b3e8dd72788bb899.jpeg|QQ图片20210204145010]]span>==== 打开CAN的方法 ====
<ol style="list-style-type: decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的CAN总线为CAN0和CAN1共两组CAN总线</p><p>[[File:media/image310.png|574x137px]]</p></li><li><p>在linux系统中,40 pin中的CAN默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p><p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></divli><li><p>然后选择'''System'''串口的TX和RX是需要交叉连接的,如果不想仔细区分TX和RX的顺序,可以把串口的TX和RX先随便接上,如果测试没有输出再交换下TX和RX的顺序,这样就总有一种顺序是对的。</p><p>[[File:media/image223.png|374x173px]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:media/image224.png|370x160px]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的CAN的配置(OPi &gt; 5 Plus可选'''can0-m0'''和'''cam1-m0''')</p><p>[[File:media/image311.png|370x61px]]</p></li><li><p>然后选择'''&lt;Save&gt;'''保存</p><p>[[File:media/image253.png|332x96px]]</p></li><li><p>然后选择'''&lt;Back&gt;'''</p><p>[[File:media/image254.png|341x103px]]</p></li><li><p>然后选择'''&lt;Reboot&gt;'''重启系统使配置生效</p><p>[[File:media/image228.png|283x125px]]</p></li></ol></li><li><p>进入linux系统后,使用'''sudo ifconfig -a'''命令如果能看到CAN的设备节点,就说明CAN已正确打开了</p><p>orangepi@orangepi:~$ '''sudo ifconfig -a'''</p><p>can0: flags=128&lt;NOARP&gt; mtu 16</p><p>unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)</p><p>RX packets 0 bytes 0 (0.0 B)</p><p>RX errors 0 dropped 0 overruns 0 frame 0</p><p>TX packets 0 bytes 0 (0.0 B)</p><p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</p><p>device interrupt 94</p><p>can1: flags=128&lt;NOARP&gt; mtu 16</p><p>unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)</p><p>RX packets 0 bytes 0 (0.0 B)</p><p>RX errors 0 dropped 0 overruns 0 frame 0</p><p>TX packets 0 bytes 0 (0.0 B)</p><p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</p><p>device interrupt 95</p></li><li><p>CAN0和CAN1对应的引脚为</p></li></ol>
<span id{| class="ubuntu平台调试串口的使用方法wikitable"></span>|-|| style="text-align: left;"| '''CAN0'''| style="text-align: left;"| '''CAN1'''|-| '''TX引脚'''| style= Ubuntu平台调试串口的使用方法 "text-align: left;"| '''对应40pin的5号引脚'''| style="text-align: left;"| '''对应40pin的18号引脚'''|-| '''RX引脚'''| style="text-align: left;"| '''对应40pin的3号引脚'''| style="text-align: left;"| '''对应40pin的16号引脚'''|}
'''Linux下可以使用的串口调试软件有很多,如putty、minicom等,下面演示下putty的使用方法。'''<span id="使用canalyst-ii分析仪测试收发消息"></span>==== 使用CANalyst-II分析仪测试收发消息 ====
# 首先将USB转TTL模块插入Ubuntu电脑的USB接口,如果USB转TTL模块连接识别正常,在Ubuntu PC的<ol style="list-style-type: decimal;"><li><p>测试使用的CANalyst-II分析仪如下图所示</p><p>[[File:media/image312.png|165x134px]]</p></li><li><p>CANalyst-II分析仪资料下载链接</p><p>[https://www.zhcxgd.com/3.html '''https://www.zhcxgd.com/3.html''']</p></li><li><p>首先要安装USBCANToolSetup这个软件</p><p>[[File:media/image313.png|553x94px]]</p></li><li><p>USBCANToolSetup安装后的快捷方式为</p><p>[[File:media/image314.png|59x80px]]</p></li><li><p>另外还需要安装一下USB驱动程序</p><p>[[File:media/image315.png|553x112px]]</p></li><li><p>CANalyst-II分析仪的USB接口那端需要接到电脑的USB接口中</p><p>[[File:media/image316.png|137x121px]]</p></li><li><p>测试CAN功能还需要准备一个下图所示的CAN收发器,CAN收发器主要功能是将CAN控制器的TTL信号转换成CAN总线的差分信号</p><ol style="list-style-type: lower-alpha;"><li><p>CAN收发器的3.3V引脚需要接开发板40 pin中的3.3V引脚</p></li><li><p>CAN收发器的GND引脚需要接开发板40 pin中的GND引脚</p></li><li><p>CAN收发器的CAN TX引脚需要接开发板40 pin中CAN总线的TX引脚</p></li><li><p>CAN收发器的CAN RX引脚需要接开发板40 pin中CAN总线的RX引脚</p></li><li><p>CAN收发器的CANL引脚需要接分析仪的H接口</p></li><li><p>CAN收发器的CANL引脚需要接分析仪的L接口</p><p>[[File:media/image317.png|243x78px]]</p></li></ol></li><li><p>然后可以打开USB-CAN软件</p><p>[[File:media/image318.png|553x267px]]</p></li><li><p>然后点击启动设备</p><p>[[File:media/image319.png|553x238px]]</p></li><li><p>然后点击确定</p><p>[[File:media/image320.png|279x110px]]</p></li><li><p>再设置波特率为1000k bps</p><p>[[File:media/image321.png|322x268px]]</p></li><li><p>成功打开后USB-CAN软件会显示序列号等信息</p><p>[[File:media/image322.png|553x262px]]</p></li><li><p>开发板接收CAN消息测试</p><ol style="list-style-type: lower-alpha;"><li><p>首先在开发板的Linux系统中设置下CAN总线的波特率为'''1000kbps'''</p><p>orangepi@orangepi:~$ '''sudo ip link set can0 down'''</p><p>orangepi@orangepi:~$ '''sudo ip link set can0 type can bitrate 1000000'''</p><p>orangepi@orangepi:~$ '''sudo ip link set can0 up'''</p></li><li><p>然后运行'''candump can0'''命令准备接收消息</p><p>orangepi@orangepi:~$ '''sudo candump can0'''</p></li><li><p>然后在USB-CAN软件中发送一个消息给开发板</p><p>[[File:media/image323.png|553x188px]]</p></li><li><p>如果开发板中可以接收到分析仪发送的消息说明CAN总线能正常使用</p><p>orangepi@orangepi5plus:~$ '''sudo candump can0'''</p><p>'''can0 001 [8] 01 02 03 04 05 06 07 08'''</p></li></ol></li><li><p>开发板发送CAN消息测试</p><ol style="list-style-type: lower-alpha;"><li><p>首先在Linux系统中设置下CAN的波特率为'''1000kbps'''</p><p>orangepi@orangepi:~$ '''sudo ip link set can0 down'''</p><p>orangepi@orangepi:~$ '''sudo ip link set can0 type can bitrate 1000000'''</p><p>orangepi@orangepi:~$ '''sudo ip link set can0 up'''</p></li><li><p>再开发板中执行'''cansend'''命令,发送一个消息</devp><p>orangepi@orangepi:~$ '''下就可以看到对应的设备节点名,记住这个节点名,后面设置串口软件时会用到。sudo cansend can0 123#1122334455667788'''</p></li><li><p>如果USB-CAN软件可以接收到开发板发过来的消息说明通信成功</p><p>[[File:media/image324.png|481x375px]]</p></li></ol></li></ol>
test@test:~$ '''ls <span id="wiringop-python的安装使用方法"></dev/ttyUSB*'''span>== wiringOP-Python的安装使用方法 ==
/dev/ttyUSB0'''wiringOP-Python是wiringOP的Python语言版本的库,用于在Python程序中操作开发板的GPIO、I2C、SPI和UART等硬件资源。'''
# 然后使用下面的命令在Ubuntu PC上安装下putty'''另外请注意下面所有的命令都是在root用户下操作的。'''
test@test:~$ '''sudo apt<span id="wiringop-get update'''python的安装方法"></span>=== wiringOP-Python的安装方法 ===
test<ol style="list-style-type: decimal;"><li><p>首先安装依赖包</p><p>root@testorangepi:~$ # '''sudo apt-get update'''</p><p>root@orangepi:~# '''sudo apt-get -y install git swig python3-y puttydev python3-setuptools'''</p></li><li><p>然后使用下面的命令下载wiringOP-Python的源码</p></li></ol>
# 然后运行putty,'''记得加sudo权限注意,下面的git clone--recursive命令会自动下载wiringOP的源码,因为wiringOP-Python是依赖wiringOP的。请确保下载过程没有因为网络问题而报错。'''
test@test:~$ '''sudo putty如果从GitHub下载代码有问题,可以直接使用Linux镜像中自带的wiringOP-Python源码,存放位置为:/usr/src/wiringOP-Python'''
root@orangepi:~# 执行putty命令后会弹出下面的界面'''git clone --recursive https://github.com/orangepi-xunlong/wiringOP-Python -b next'''
[[File:media/4cb7aaad274d23f21834af0dc996ee8fCloning into 'wiringOP-Python'...png]]
# 首先选择串口的设置界面remote: Enumerating objects: 602, done.
[[Fileremote:mediaCounting objects: 100% (40/1f8ad933c1ef10b3b4c5db492a1a017140), done.png]]
# 然后设置串口的参数## 设置Serial line to connect to为remote: Compressing objects: 100% (28/dev/ttyUSB0(修改为对应的节点名,一般为/dev/ttyUSB0)## 设置Speed(baud28)为'''1500000'''(串口的波特率)## 设置Flow control为None, done.
[[Fileremote:media/5cffd82cb8bc49d25de65f3c6794a8c2.png]]Total 602 (delta 20), reused 26 (delta 12), pack-reused 562
# 在串口的设置界面设置完后,再回到Session界面## 首先选择Connection type为Serial## 然后点击Open按钮连接串口Receiving objects: 100% (602/602), 309.30 KiB | 1.23 MiB/s, done.
[[FileResolving deltas:media100% (349/ac16d5b208878c112460a63fce155007349), done.png]]
# 启动开发板后,就能从打开的串口终端中看到系统输出的Log信息了Submodule 'wiringOP' (https://github.com/orangepi-xunlong/wiringOP.git) registered for path 'wiringOP'
[[File:mediaCloning into '/58cd299d346f1eab252489e23f4fb533root/test/wiringOP-Python/wiringOP'...png]]
<span id="windows平台调试串口的使用方法"></span>=== Windows平台调试串口的使用方法 ===remote: Enumerating objects: 654, done.
'''Windows下可以使用的串口调试软件有很多,如SecureCRT、MobaXterm等,下面演示MobaXterm的使用方法,这款软件有免费版本,无需购买序列号即可使用。'''remote: Counting objects: 100% (273/273), done.
# 下载MobaXterm## 下载MobaXterm网址如下remote: Compressing objects: 100% (33/33), done.
[httpsremote://mobaxterm.mobatek.net/ '''https://mobaxterm.mobatek.net''']Total 654 (delta 244), reused 245 (delta 238), pack-reused 381
# 进入MobaXterm下载网页后点击'''GET XOBATERM NOW!'''Receiving objects: 100% (654/654), 360.54 KiB | 1.73 MiB/s, done.
[[FileResolving deltas:media100% (424/417679229a973d6c98ccd8d6d8de9c8c424), done.png]]
# 然后选择下载Home版本Submodule path 'wiringOP': checked out '85f1331cd8fda668115461ec1c06cb342057eb03'
[[File<ol start="3" style="list-style-type:mediadecimal;"><li><p>然后使用下面的命令编译wiringOP-Python并将其安装到开发板的Linux系统中</db2428c0da9263ccd5f44e0163c4adf4p><p>root@orangepi:~# '''cd wiringOP-Python'''</p><p>root@orangepi:~/wiringOP-Python# '''python3 generate-bindings.py &gt; bindings.i'''</p><p>root@orangepi:~/wiringOP-Python# '''sudo python3 setup.png]]py install'''</p></li><li><p>然后输入下面的命令,如果有帮助信息输出,说明wiringOP-Python安装成功,按下'''q'''键可以退出帮助信息的界面</p></li></ol>
root@orangepi:~/wiringOP-Python# 然后选择Portable便携式版本,下载完后无需安装,直接打开就可以使用'''python3 -c &quot;import wiringpi; help(wiringpi)&quot;'''
[[FileHelp on module wiringpi:media/77684f844781eb72bc35373cf7c069c8.png]]
# 下载完后使用解压缩软件解压下载的压缩包,即可得到MobaXterm的可执软件,然后双击打开NAME
[[File:media/119198b28093131b7bd8c2ef66196440.png]]wiringpi
# 打开软件后,设置串口连接的步骤如下## 打开会话的设置界面## 选择串口类型## 选择串口的端口号(根据实际的情况选择对应的端口号),如果看不到端口号,请使用[http://weishi.360.cn/qudongdashi/ '''360驱动大师''']扫描安装USB转TTL串口芯片的驱动## 选择串口的波特率为'''1500000'''## 最后点击“'''OK'''”按钮完成设置DESCRIPTION
[[File# This file was automatically generated by SWIG (http:media/9d93e4eb4f9f5bf5588075a37943c357/www.swig.org).png]]
# 点击“'''OK'''”按钮后会进入下面的界面,此时启动开发板就能看到串口的输出信息了Version 4.0.2
[[File:media/5796bb79c7388cc64ac2b7ecf5cf1225.png]]#
<span id="ubuntudebian# Do not make changes to this file unless you know what you are doing-server和xfce桌面系统使用说明"></span>= Ubuntu/Debian Server和Xfce桌面系统使用说明 =-modify
# the SWIG interface file instead. <ol start="5" style="list-style-type: decimal;"><li><p>在python命令行下测试wiringOP-Python是否安装成功的步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li>首先使用python3命令进入python3的命令行模式</li></ol></li></ol> root@orangepi:~# '''python3''' <ol start="2" style="list-style-type: lower-alpha;"><li>然后导入wiringpi的python模块</li></ol> &gt;&gt;&gt; '''import wiringpi;'''本章内容是基于Ubuntu <ol start="3" style="list-style-type: lower-alpha;"><li>最后输入下面的命令可以查看下wiringOP-Python的帮助信息,按下'''q'''键可以退出帮助信息的界面</li></Debian的服务器版本镜像和xfce桌面版本镜像编写的。ol> &gt;&gt;&gt; '''help(wiringpi)''' Help on module wiringpi: NAME wiringpi
'''如果使用的是Ubuntu22.04 Gnome镜像,请先查看'''[[#_Ubuntu22.04%20Gnome%20Wayland桌面系统使用说明|'''Ubuntu22.04 Gnome Wayland桌面系统使用说明''']]'''一章的说明。'''DESCRIPTION
[[#_Ubuntu22This file was automatically generated by SWIG (http://www.04%20Gnome%20Wayland桌面系统使用说明|'''Ubuntu22swig.org).04 Gnome Wayland桌面系统使用说明''']]'''一章中不存在的内容,可以参考此章的说明,但是有些细节是会有差异的,这点请特别注意下。'''
'''如果使用的是OPi OS Arch镜像,请查看'''[[#_Orange%20Pi%20OS%20Arch系统使用说明|'''Orange Pi OS Arch系统使用说明''']]'''一章的内容。'''Version 4.0.2
<span id="已支持的ubuntudebian镜像类型和内核版本"></span>== 已支持的Ubuntu/Debian镜像类型和内核版本 ==#
{| class="wikitable"|# Do not make changes to this file unless you know what you are doing-! '''Linux镜像类型'''! '''内核版本'''! '''服务器版'''! '''桌面版'''|-| '''Debian 11 - Bullseye'''| '''Linux5.10'''| '''支持'''| '''支持'''|-| '''Debian 12 - Bookworm'''| '''Linux5.10'''| '''计划支持'''| '''计划支持'''|-| '''Ubuntu 20.04 - Focal'''| '''Linux5.10'''| '''支持'''| '''支持'''|-| '''Ubuntu 22.04 - Jammy'''| '''Linux5.10'''| '''支持'''| '''支持'''|}modify
== linux系统适配情况 ==# the SWIG interface file instead.
{CLASSES builtins.object GPIO I2C Serial nes class GPIO(builtins.object) | GPIO(pinmode=0) | &gt;&gt;&gt; <span id="pin-gpio口测试-1"></span>=== 40 pin GPIO口测试 === '''wiringOP-Python跟wiringOP一样,也是可以通过指定wPi号来确定操作哪一个GPIO引脚,因为wiringOP-Python中没有查看wPi号的命令,所以只能通过wiringOP中的gpio命令来查看板子wPi号与物理引脚的对应关系。''' <div class="figure"> [[File:media/image298.png|415x291px| 876iring_001]] </div><ol style="list-style-type: decimal;"><li><p>下面以7号引脚——对应GPIO为GPIO1_D6——对应wPi序号为2——为例演示如何设置GPIO口的高低电平</p><div class="wikitablefigure"> [[File:media/image299.png|419x106px|874iring_001]] </div></li><li><p>直接用命令测试的步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先设置GPIO口为输出模式,其中'''pinMode'''函数的第一个参数是引脚对应的wPi的序号,第二个参数是GPIO的模式</p><p>root@orangepi:~/wiringOP-Python# '''python3 -c &quot;import wiringpi; \'''</p>! <p>'''功能from wiringpi import GPIO; wiringpi.wiringPiSetup() ; \'''</p>! <p>'''Linux5wiringpi.10驱动pinMode(2, GPIO.OUTPUT) ; &quot;'''</p></li>! <li><p>然后设置GPIO口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功</p><p>root@orangepi:~/wiringOP-Python# '''Debian11python3 -c &quot;import wiringpi; \'''</p>! <p>'''Ubuntu20from wiringpi import GPIO; wiringpi.04wiringPiSetup() ;\'''</p>! <p>'''Ubuntu22wiringpi.04digitalWrite(2, GPIO.LOW)&quot;'''</p></li>|<li><p>然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功</p><p>root@orangepi:~/wiringOP-Python# '''python3 -c &quot;import wiringpi; \'''</p>| <p>'''HDMI TX1视频from wiringpi import GPIO; wiringpi.wiringPiSetup() ;\'''</p>| <p>'''OKwiringpi.digitalWrite(2, GPIO.HIGH)&quot;'''</p></li></ol></li><li><p>在python3的命令行中测试的步骤如下所示:</p>| <ol style="list-style-type: lower-alpha;"><li><p>首先使用python3命令进入python3的命令行模式</p><p>root@orangepi:~# '''OKpython3'''</p></li><li><p>然后导入wiringpi的python模块</p>| <p>&gt;&gt;&gt; '''OKimport wiringpi'''</p>| <p>&gt;&gt;&gt; '''OKfrom wiringpi import GPIO'''</p></li>|-| <li><p>然后设置GPIO口为输出模式,其中'''HDMI TX1音频pinMode'''函数的第一个参数是引脚对应的wPi的序号,第二个参数是GPIO的模式</p>| <p>&gt;&gt;&gt; '''OKwiringpi.wiringPiSetup()'''</p>| <p>0</p><p>&gt;&gt;&gt; '''OKwiringpi.pinMode(2, GPIO.OUTPUT)'''</p></li><li><p>然后设置GPIO口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功</p>| <p>&gt;&gt;&gt; '''OKwiringpi.digitalWrite(2, GPIO.LOW)'''</p></li>| <li><p>然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功</p><p>&gt;&gt;&gt; '''OKwiringpi.digitalWrite(2, GPIO.HIGH)'''</p></li></ol>|</li><li><p>wiringOP-| Python在python代码中设置GPIO高低电平的方法可以参考下examples中的'''blink.py'''测试程序,'''HDMI TX2视频blink.py'''测试程序会设置开发板40 pin中所有的GPIO口的电压不断的高低变化</p>| <p>root@orangepi:~/wiringOP-Python# '''OKcd examples'''</p>| <p>root@orangepi:~/wiringOP-Python/examples# '''OKls blink.py'''</p>| <p>'''OKblink.py'''</p>| <p>root@orangepi:~/wiringOP-Python/examples'''OK# python3 blink.py'''</p></li></ol> <span id="pin-spi测试-1"></span>=== 40 pin SPI测试 === <ol style="list-style-type: decimal;"><li><p>由下图可知,Orange Pi 5 Plus可用的SPI为SPI0和SPI4</p><p>[[File:media/image294.png|575x137px]]</p></li><li><p>SPI0和SPI4在40pin中对应的引脚如下表所示。SPI4_M1和SPI4_M2同一时间只能使用其中一组,不能同时使用,它们都是同一个SPI4,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的SPI总线。</p></li></ol> {| class="wikitable"
|-
| '''HDMI TX2音频'''| '''OK'''| '''OKS PI0_M2对应40pin'''| '''OKS PI4_M1对应40pin'''| '''OKSP I4_M2对应40pin'''
|-
| '''HDMI RX视频'''* *MOSI**| '''OK'''| '''OK19号引脚'''| '''OK12号引脚'''| '''OK8号引脚'''
|-
| '''HDMI RX音频'''* *MISO**| '''OK'''| '''OK21号引脚'''| '''OK31号引脚'''| '''OK10号引脚'''
|-
| '''USB2.0X2CLK'''| '''OK23号引脚'''| '''OK35号引脚'''| '''OK'''| '''OK22号引脚'''
|-
| '''USB3.0X2CS0'''| '''OK24号引脚'''| '''OK40号引脚'''| '''OK'''| '''OK31号引脚'''
|-
| '''2.5G PCIe网口X2CS1'''| '''OK26号引脚'''| '''OK38号引脚'''| '''OK'''| '''OK'''
|-
| '''2dtb o配置'''| '''spi 0-m2-cs0-spidev''' '''spi 0-m2-cs1-spidev''' '''spi0-m2 -cs0-cs1-spidev''' | '''spi 4-m1-cs0-spidev''' '''spi 4-m1-cs1-spidev''' '''spi4-m1 -cs0-cs1-spidev''' | '''spi4 -m2-cs0-spidev'''|} <ol start="3" style="list-style-type: decimal;"><li><p>在linux系统中,40 pin中的SPI默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p><p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li><li><p>然后选择'''System'''</p><p>[[File:media/image223.5G PCIe网口灯png|413x191px]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:media/image224.png| 419x182px]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''OK空格'''选中想要打开的SPI的配置</p><p>[[File:media/image302.png| 415x141px]]</p></li><li><p>然后选择'''OK&lt;Save&gt;'''保存</p><p>[[File:media/image253.png| 415x120px]]</p></li><li><p>然后选择'''OK&lt;Back&gt;'''</p><p>[[File:media/image254.png| 414x126px]]</p></li><li><p>然后选择'''OK&lt;Reboot&gt;'''重启系统使配置生效</p><p>[[File:media/image228.png|293x129px]]</p></li></ol></li><li><p>重启后进入系统先查看下linux系统中是否存在'''spidevx.x'''的设备节点,如果存在,说明SPI已经设置好了,可以直接使用。</p><p>orangepi@orangepi:~$ '''ls /dev/spidev*'''</p><p>/dev/spidev0.0 /dev/spidev0.1 /dev/spidev4.0 /dev/spidev4.1</p><p>'''上面是打开spi0-m2-cs0-cs1-spidev和spi4-m1-cs0-cs1-spidev后显示的结果。'''</p></li><li><p>然后可以使用examples中的'''spidev_test.py'''程序测试下SPI的回环功能,'''spidev_test.py'''程序需要指定下面的两个参数:</p><ol style="list-style-type: lower-alpha;"><li><p>'''--channel''':指定SPI的通道号</p></li><li><p>'''--port''':指定SPI的端口号</p></li></ol></li><li><p>先不短接SPI的MOSI和MISO两个引脚,运行'''spidev_test.py'''的输出结果如下所示,可以看到 TX 和 RX 的数据不一致</p><p>'''--channel和--port参数后面的x需要替换为具体SPI的通道号和SPI的端口号。'''</p><p>root@orangepi:~/wiringOP-Python# '''cd examples'''</p></li></ol> 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 |.............….|  <ol start="7" style="list-style-type: decimal;"><li><p>然后使用杜邦线短接SPI的MOSI和MISO两个引脚,再运行'''OKspidev_test.py'''的输出如下,可以看到发送和接收的数据一样,说明SPI回环测试正常</p><p>'''--channel和--port参数后面的x需要替换为具体SPI的通道号和SPI的端口号。'''</p>| <p>root@orangepi:~/wiringOP-Python# '''cd examples'''</p></li></ol> root@orangepi:~/wiringOP-Python/examples# '''OKpython3 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 '''OK40 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 '''OK40 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 |......@.......…| <span id="pin-i2c测试-1"></span>=== 40 pin I2C测试 === <ol style="list-style-type: decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的i2c为i2c2、i2c4、i2c5和i2c8共四组 i2c总线。</p><p>[[File:media/image294.png|575x137px]]</p></li><li><p>4组I2C总线在40pin中对应的引脚如下表所示。I2C2_M0和I2C2_M4同一时间只能使用其中一组,不能同时使用,它们都是同一个I2C2,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的I2C2总线。</p></li></ol> {| class="wikitable"
|-
| style="text-align: left;"| '''RTC芯片I2C总线'''| style="text-align: left;"| '''OKSDA对应40pin'''| style="text-align: left;"| '''OKSCL对应40pin'''| '''OK'''style="text-align: left;"| '''OKdtbo对应配置'''
|-
| style="text-align: left;"| '''FAN风扇接口I2C2_M0'''| style="text-align: left;"| '''OK3号引脚'''| style="text-align: left;"| '''OK5号引脚'''| '''OK'''style="text-align: left;"| '''OKi2c2-m0'''
|-
| style="text-align: left;"| '''eMMC扩展接口I2C2_M4'''| style="text-align: left;"| '''OK10号引脚'''| style="text-align: left;"| '''OK8号引脚'''| '''OK'''style="text-align: left;"| '''OKi2c2-m4'''
|-
| '''AP6275Pstyle="text-WIFI'''align: left;"| '''OKI2C4_M3'''| style="text-align: left;"| '''OK22号引脚'''| style="text-align: left;"| '''OK32号引脚'''| style="text-align: left;"| '''OKi2c4-m3'''
|-
| '''AP6275Pstyle="text-BT'''align: left;"| '''OKI2C5_M3'''| style="text-align: left;"| '''OK27号引脚'''| style="text-align: left;"| '''OK28号引脚'''| style="text-align: left;"| '''OKi2c5-m3'''
|-
| style="text-align: left;"| '''I2C8_M2'AX200''| style="text-WIFIalign: left;"| '''29号引脚'''| style="text-align: left;"| '''OK7号引脚'''| style="text-align: left;"| '''OKi2c8-m2'''| } <ol start="3" style="list-style-type: decimal;"><li><p>在linux系统中,40 pin中的I2C总线默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''OK权限</p><p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li><li><p>然后选择'''System'''</p><p>[[File:media/image223.png| 382x176px]]</p></li><li><p>然后选择'''Hardware''OK'</p><p>[[File:media/image224.png|385x167px]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的I2C的配置</p><p>[[File:media/image303.png|381x144px]]</p></li><li><p>然后选择'''&lt;Save&gt;'''保存</p><p>[[File:media/image253.png|347x100px]]</p></li><li><p>然后选择'''&lt;Back&gt;'''</p><p>[[File:media/image254.png|325x98px]]</p></li><li><p>然后选择'''&lt;Reboot&gt;'''重启系统使配置生效</p><p>[[File:media/image228.png|254x112px]]</p></li></ol></li><li><p>启动linux系统后,先确认下'''/dev'''下存在对应i2c的设备节点</p><p>orangepi@orangepi:~$ '''ls /dev/i2c-*'''</p></li><li><p>然后在40 pin接头的i2c引脚上接一个i2c设备,这里以ds1307 RTC模块为例</p><p>[[File:media/image325.png|124x106px]]</p></li><li><p>然后使用'''i2cdetect -y'''命令如果能检测到连接的i2c设备的地址,就说明i2c能正常识别。</p><p>orangepi@orangepi:~$ '''sudo i2cdetect -y 2''' #i2c2的命令</p><p>orangepi@orangepi:~$ '''sudo i2cdetect -y 4''' #i2c4的命令</p><p>orangepi@orangepi:~$ '''sudo i2cdetect -y 5''' #i2c5的命令</p><p>orangepi@orangepi:~$ '''sudo i2cdetect -y 8''' #i2c8的命令</p></li><li><p>然后可以运行'''wiringOP-Python/examples'''文件中的'''ds1307.py'''测试程序读取RTC的时间</p><p>'''/dev/i2c-x需要替换是具体的i2c设备节点的序号。'''</p><p>root@orangepi:~/wiringOP-Python# '''cd examples'''</p><p>root@orangepi:~/wiringOP-Python/examples# '''python3 ds1307.py --device &quot;/dev/i2c-x&quot;'''</p><p>Thu 2023-01-05 14:57:55</p><p>Thu 2023-01-05 14:57:56</p><p>Thu 2023-01-05 14:57:57</p><p>^C</p><p>exit</p></li></ol> <span id="pin的uart测试-1"></span>=== 40 pin的UART测试 === <ol style="list-style-type: decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的uart为uart1、uart3、uart4、uart6、uart7和uart8共6组uart总线</p><p>[[File:media/image294.png|575x137px]]</p></li><li><p>6组UART总线在40pin中对应的引脚如下表所示:</p></li></ol> {| class="wikitable"
|-
| '''AX200style="text-BT'''align: left;"| '''OKUART总线'''| style="text-align: left;"| '''OKRX`对应40pin'''| style="text-align: left;"| '''OKTX对应40pin'''| style="text-align: left;"| '''OKdtbo对应配置'''
|-
| '''AX210style="text-WIFI'''align: left;"| '''OKUART1_M1'''| style="text-align: left;"| '''OK27号引脚'''| style="text-align: left;"| '''OK28号引脚'''| style="text-align: left;"| '''OKuart1-m1'''
|-
| '''AX210style="text-BT'''align: left;"| '''OKUART3_M1'''| style="text-align: left;"| '''OK18号引脚'''| style="text-align: left;"| '''OK16号引脚'''| style="text-align: left;"| '''OKuart3-m1'''
|-
| '''RTL8852BEstyle="text-WIFI'''align: left;"| '''OKUART4_M2'''| style="text-align: left;"| '''OK19号引脚'''| style="text-align: left;"| '''OK23号引脚'''| style="text-align: left;"| '''OKuart4-m2'''
|-
| '''RTL8852BEstyle="text-BT'''align: left;"| '''OKUART6_M1'''| style="text-align: left;"| '''OK10号引脚'''| style="text-align: left;"| '''OK8号引脚'''| style="text-align: left;"| '''OKuart6-m1'''
|-
| style="text-align: left;"| '''MaskROM按键UART7_M2'''| style="text-align: left;"| '''OK24号引脚'''| style="text-align: left;"| '''OK26号引脚'''| '''OK'''style="text-align: left;"| '''OKuart7-m2'''
|-
| '''Typestyle="text-C转USB3.0'''align: left;"| '''OKUART8_M1'''| style="text-align: left;"| '''OK40号引脚'''| '''OK'''style="text-align: left;"| '''OK35号引脚'''|style="text-align: left;"| '''Typeuart8-C ADB功能m1'''| } <ol start="3" style="list-style-type: decimal;"><li><p>在linux系统中,40 pin中的UART默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''OK'orangepi-config'''| ,普通用户记得加'''OKsudo'''权限</p>| <p>orangepi@orangepi:~$ '''OKsudo orangepi-config'''</p></li>| <li><p>然后选择'''OKSystem'''</p><p>[[File:media/image223.png|-404x186px]]</p></li>| <li><p>然后选择'''Type-C DP视频Hardware'''</p><p>[[File:media/image224.png| 403x175px]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''OK空格'''选中想要打开的UART的配置</p><p>[[File:media/image305.png| 350x124px]]</p></li><li><p>然后选择'''OK&lt;Save&gt;'''保存</p><p>[[File:media/image253.png| 334x96px]]</p></li><li><p>然后选择'''OK&lt;Back&gt;'''</p><p>[[File:media/image254.png| 336x102px]]</p></li><li><p>然后选择'''OK&lt;Reboot&gt;'''重启系统使配置生效</p><p>[[File:media/image228.png|-235x103px]]</p></li></ol></li><li><p>进入linux系统后,先确认下/dev下是否存在对应uart的设备节点</p>| <p>orangepi@orangepi:~$ '''Type-C DP音频ls /dev/ttyS*'''</p></li>| <li><p>然后开始测试uart接口,先使用杜邦线短接要测试的uart接口的rx和tx引脚</p></li><li><p>然后使用'''OKwiringOP-Python/examples'''| 中的'''OKserialTest.py'''程序测试串口的回环功能。如下所示,如果能看到下面的打印,说明串口通信正常。</p>| <p>'''OK/dev/ttySX需要替换是具体的uart设备节点的序号。'''</p>| <p>root@orangepi:~/wiringOP-Python/examples# '''OKpython3 serialTest.py --device &quot;/dev/ttySX&quot;'''</p>|<p>Out: 0: -&gt; 0</p>| '''开关机按键'''<p>Out: 1: -&gt; 1</p>| '''OK'''<p>Out: 2: -&gt; 2</p>| '''OK'''<p>Out: 3: -&gt; 3</p><p>Out: 4:^C</p><p>exit</p></li></ol> == 硬件看门狗测试 == Orange Pi发布的linux系统中预装了watchdog_test程序,可以直接测试。 运行watchdog_test程序的方法如下所示: <ol style="list-style-type: lower-alpha;"><li><p>第二个参数10表示看门狗的计数时间,如果这个时间内没有喂狗,系统会重启</p></li><li><p>我们可以通过按下键盘上的任意键(ESC除外)来喂狗,喂狗后,程序会打印一行keep alive表示喂狗成功</p>| <p>orangepi@orangepi:~$ '''OKsudo watchdog_test 10'''</p>| '''OK'''<p>open success</p>|<p>options is 33152,identity is sunxi-wdt</p>| '''红外功能'''<p>put_usr return,if 0,success:0</p>| '''OK'''<p>The old reset time is: 16</p>| <p>return ENOTTY,if -1,success:0</p><p>return ENOTTY,if -1,success:0</p><p>put_user return,if 0,success:0</p><p>put_usr return,if 0,success:0</p><p>keep alive</p><p>keep alive</p><p>keep alive</p></li></ol> <span id="查看rk3588芯片的序列号"></span>== 查看RK3588芯片的序列号 == 查看RK3588芯片序列号的命令如下所示,每个芯片的序列号都是不同的,所以可以使用序列号来区分多个开发板。 orangepi@orangepi:~$ '''OKcat_serial.sh'''| Serial : '''OK1404a7682e86830c'''| '''OK'''|<span id="安装docker的方法"></span>== 安装Docker的方法 == <ol style="list-style-type: decimal;">| <li><p>Orange Pi提供的linux镜像已经预装了Docker,只是Docker服务默认没有打开</p></li><li><p>使用'''三色LED灯enable_docker.sh'''脚本可以使能docker服务,然后就可以开始使用docker命令了,并且在下次启动系统时也会自动启动docker服务</p>| <p>orangepi@orangepi:~$ '''OKenable_docker.sh'''</p></li>| <li><p>然后可以使用下面的命令测试下docker,如果能运行hello-world说明docker能正常使用了</p><p>orangepi@orangepi:~$ '''OKdocker run hello-world'''</p>| '''OK'<p>Unable to find image 'hello-world:latest'locally</p><p>latest: Pulling from library/hello-world</p><p>256ab8fe8778: Pull complete</p>| '''OK'''<p>Digest: sha256:7f0a9f93b4aa3022c3a4c147a449ef11e0941a1fd0bf4a8e6c9408b2600777c5</p>|<p>Status: Downloaded newer image for hello-world:latest</p>| <p>'''板载MICHello from Docker!'''</p>| <p>'''OKThis message shows that your installation appears to be working correctly.'''</p>| <p>'''OK.….'''</p></li></ol> <span id="下载安装arm64版本balenaetcher的方法"></span>| '''OK'''== 下载安装arm64版本balenaEtcher的方法 ==| '''OK'''|<ol style="list-style-type: decimal;">| '''耳机播放'''<li><p>balenaEtcher arm64版本的下载地址为:</p>| '<ol style="list-style-type: lower-alpha;"><li><p>deb安装包的下载地址如下所示,需要安装才能使用</p><p>[https://github.com/Itai-Nelken/BalenaEtcher-arm/releases/download/v1.7.9/balena-etcher-electron_1.7.9+5945ab1f_arm64.deb ''OK'https://github.com/Itai-Nelken/BalenaEtcher-arm/releases/download/v1.7.9/balena-etcher-electron_1.7.9+5945ab1f_arm64.deb''']</p></li>| <li><p>无需安装的AppImage版本的下载地址如下所示:</p><p>[https://github.com/Itai-Nelken/BalenaEtcher-arm/releases/download/v1.7.9/balenaEtcher-1.7.9+5945ab1f-arm64.AppImage '''OKhttps://github.com/Itai-Nelken/BalenaEtcher-arm/releases/download/v1.7.9/balenaEtcher-1.7.9+5945ab1f-arm64.AppImage''']</p></li></ol>| </li></ol> <div class="figure"> [[File:media/image326.png|527x211px|IMG_256]] </div><ol start="2" style="list-style-type: decimal;"><li><p>deb版本balenaEtcher的安装使用方法:</p><ol style="list-style-type: lower-alpha;"><li><p>deb版本的balenaEtcher安装命令如下所示:</p><p>orangepi@orangepi:~$ '''OKsudo apt install -y \'''</p>| <p>'''OK'''|-| '''耳机录音-fix-broken ./balena-etcher-electron_1.7.9+5945ab1f_arm64.deb'''</p></li><li><p>deb版本的balenaEtcher安装完成后,在Application中就可以打开了</p><div class="figure"> [[File:media/image109.png| '''OK'''507x249px|IMG_256]] </div></li><li><p>balenaEtcher打开后的界面如下所示:</p></li></ol></li></ol> <div class="figure">| '''OK'''[[File:media/image327.png| 429x263px|IMG_256]] </div><ol start="3" style="list-style-type: decimal;"><li><p>AppImage版本的balenaEtcher的使用方法:</p><ol style="list-style-type: lower-alpha;"><li><p>首先给balenaEtcher添加权限</p><p>orangepi@orangepi:~/Desktop$ '''OKchmod +x balenaEtcher-1.7.9+5945ab1f-arm64.AppImage'''</p></li><li><p>然后选中AppImage版本balenaEtcher,再点击鼠标右键,再点击Execute就可以打开balenaEtcher了</p><p>[[File:media/image328.png| 145x118px]]</p></li></ol></li></ol> <span id="宝塔linux面板的安装方法"></span>== 宝塔Linux面板的安装方法 == '''OK宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能(摘抄自[https://www.bt.cn/ 宝塔官网])'''|<ol style="list-style-type: decimal;">| <li><p>宝塔Linux系统兼容性推荐的顺序为</p><p>'''SPK喇叭Debian11 &gt; Ubuntu 22.04'''</p></li>| <li><p>然后在linux系统中输入下面的命令就可以开始宝塔的安装</p><p>orangepi@orangepi:~$ '''OKsudo install_bt_panel.sh'''</p></li>| <li><p>然后宝塔安装程序会提醒是否安装'''OKBt-Panel'''| '''OK/www'''| 文件夹,此时输入'''OKy'''即可</p>|<p>+-----------------------| '''40PIN GPIO'''| '''OK'''| '''OK'''| '''OK'''| '''OK'''|-----------------------------------------------</p><p>| '''40PIN I2C'''| '''OK'''| '''OK'''| '''OK'''Bt-WebPanel FOR CentOS/Ubuntu/Debian</p>| '''OK'''|<p>+-------------------------| '''40PIN SPI'''| '''OK'''| '''OK'''| '''OK'''| '''OK'''|---------------------------------------------</p><p>| '''40PIN UART'''| '''OK'''| '''OK'''| '''OK'''| '''OK'''Copyright © 2015-2099 BT-SOFT(http://www.bt.cn) All rights reserved.</p>|<p>+------------------------| '''40PIN CAN'''| '''OK'''| '''OK'''| '''OK'''| '''OK'''|-| '''40PIN PWM'''| '''OK'''| '''OK'''---------------------------------------------</p><p>| '''OK'''The WebPanel URL will be http://SERVER_IP:8888 when installed.</p>| '''OK'''|<p>+-------------------------| '''TF卡启动'''| '''OK'''| '''OK'''| '''OK'''| '''OK'''|---------------------------------------------</p>| '''SPI+NVME启动'''| '''OK'''| '''OK'''| <p>Do you want to install Bt-Panel to the /www directory now?(y/n): '''OKy'''</p></li><li><p>然后要做的就是耐心等待,当看到终端输出下面的打印信息时,说明宝塔已经安装完成,整个安装过程大约耗时9分钟,根据网络速度的不同可能会有一些差别</p><p>[[File:media/image329.png| 363x237px]]</p></li><li><p>此时在浏览器中输入上面显示的'''面板地址''OK'就可以打开宝塔Linux面板的登录界面,然后在对应的位置输入上图显示的''|-| 'username''OV13850摄像头'''| '''OKpassword'''就可以登录进宝塔</p><p>[[File:media/image330.png| '''OK'''576x241px]]</p></li><li><p>成功登录宝塔后的会弹出下面的欢迎界面,首先请将中间的用户须知阅读完拖到最下面,然后就可以选择”我已同意并阅读《用户协议》“,接着点击”进入面板”就可以进入宝塔了</p><p>[[File:media/image331.png| 576x213px]]</p></li><li><p>进入宝塔后首先会提示需要绑定宝塔官网的账号,如果没有账号可以去宝塔的官网('''OKhttps://www.bt.cn''')注册一个</p><p>[[File:media/image332.png| '''OK'''576x218px]]</p></li><li><p>最终显示的界面如下图所示,可以很直观的看到开发板Linux系统的一些状态信息,比如负载状态、CPU的使用率、内存使用率和存储空间的使用情况等</p><p>[[File:media/image333.png|574x283px]]</p></li><li><p>测试宝塔的SSH终端登录</p>|<ol style="list-style-type: lower-alpha;">| <li><p>打开宝塔的SSH终端后首先会提示需要输入开发板系统的密码,此时在密码框中输入'''OV13855摄像头orangepi'''(默认密码,如果有修改请填写修改后的)即可</p><p>[[File:media/image334.png| '''OK'''475x330px]]</p></li><li><p>成功登录后的显示如下图所示</p><p>[[File:media/image335.png| '''OK'''575x206px]]</p></li></ol></li><li><p>在宝塔的软件商店中可以安装Apache、MySQL和PHP等软件,也可以一键部署各种应用程序,这部分功能请自行探索,这里就不一一演示了</p><p>[[File:media/image336.png|575x279px]]</p></li><li><p>宝塔命令行工具测试</p><div class="figure"> [[File:media/image337.png| 388x343px|815iring_001]] </div></li><li><p>宝塔的更多功能可以参考下面资料自行探索</p><p>使用手册:[http://docs.bt.cn '''OKhttp://docs.bt.cn''']</p>| <p>论坛地址:[https://www.bt.cn/bbs '''OKhttps://www.bt.cn/bbs''']</p>|-| <p>GitHub链接:'''GPUhttps://github.com/aaPanel/BaoTa'''</p></li></ol> == 设置中文环境以及安装中文输入法 == | '''OK注意,安装中文输入法前请确保开发板使用的Linux系统为桌面版系统。'''| <span id="debian-11系统的安装方法"></span>=== Debian 11系统的安装方法 === <ol style="list-style-type: decimal;"><li><p>首先设置默认'''OKlocale'''为中文</p>| <ol style="list-style-type: lower-alpha;"><li><p>输入下面的命令可以开始配置'''OKlocale'''</p>| <p>orangepi@orangepi:~$ '''OKsudo dpkg-reconfigure locales'''</p></li>|-| <li><p>然后在弹出的界面中选择'''VPUzh_CN.UTF-8 &gt; UTF-8'''| (通过键盘上的上下方向按键来上下移动,通过空格键来选择,最后通过Tab键可以将光标移动到'''&lt;OK&gt;''',然后回车即可)</p><p>[[File:media/image338.png| 575x296px]]</p></li><li><p>然后设置默认'''OKlocale'''| '''OKzh_CN.UTF-8'''</p><p>[[File:media/image339.png| 575x160px]]</p></li><li><p>退出界面后就会开始'''OKlocale'''的设置,命令行显示的输出如下所示</p>|-| <p>orangepi@orangepi:~$ '''NPUsudo dpkg-reconfigure locales'''</p>| <p>Generating locales (this might take a while)...</p><p>en_US.UTF-8... done</p><p>zh_CN.UTF-8... done</p><p>Generation complete.</p></li></ol></li><li><p>然后打开'''OKInput Method'''</p><p>[[File:media/image340.png| 575x361px]]</p></li><li><p>然后选择'''OK'''</p><p>[[File:media/image341.png| 295x212px]]</p></li><li><p>然后选择'''OKYes'''</p><p>[[File:media/image342.png| 303x192px]]</p></li><li><p>然后选择'''OKfcitx'''</p><p>[[File:media/image343.png|-307x220px]]</p></li>| <li><p>然后选择'''REBOOT命令重启OK'''</p><p>[[File:media/image344.png| 305x216px]]</p></li><li><p>'''OK然后重启Linux系统才能使配置生效'''</p></li>| <li><p>然后打开'''OKFcitx configuration'''</p><p>[[File:media/image345.png| 575x376px]]</p></li><li><p>然后点击下图所示位置的'''OK+'''号</p><p>[[File:media/image346.png| 280x187px]]</p></li><li><p>然后搜索'''OKGoogle Pinyin'''|-| 再点击'''Poweroff命令关机OK'''</p><p>[[File:media/image347.png| 291x196px]]</p></li><li><p>然后将'''OKGoogle Pinyin'''放到最前面</p><p>[[File:media/image348.png|299x202px]]</p><p>[[File:media/image349.png| 300x202px]]</p></li><li><p>然后打开'''OKGeany'''这个编辑器测试下中文输入法</p><p>[[File:media/image350.png|349x212px]]</p></li><li><p>中文输入法测试如下所示</p><p>[[File:media/image351.png| 575x325px]]</p></li><li><p>通过'''OKCtrl+Space'''快捷键可以切换中英文输入法</p></li>| <li><p>如果需要整个系统都显示为中文,可以将'''OK/etc/default/locale'''|-| 中的变量都设置为'''MIPI LCD显示zh_CN.UTF-8'''</p>| <p>orangepi@orangepi:~$ '''OKsudo vim /etc/default/locale'''</p>| <p># File generated by update-locale</p><p>LC_MESSAGES='''OKzh_CN.UTF-8'''</p>| <p>LANG='''OKzh_CN.UTF-8'''</p>| <p>LANGUAGE='''OKzh_CN.UTF-8'''</p></li>|-| <li><p>然后'''MIPI LCD触摸重启系统'''就能看到系统显示为中文了</p><p>[[File:media/image352.png| '''OK'''576x356px]]</p></li></ol> | '<span id="ubuntu-20.04系统的安装方法"></span>=== Ubuntu 20.04系统的安装方法 === <ol style="list-style-type: decimal;"><li><p>首先打开'''OKLanguage Support'''</p><p>[[File:media/image353.png|575x351px]]</p></li><li><p>然后找到'''汉语(中国)'''选项</p><p>[[File:media/image354.png| 318x311px]]</p></li><li><p>然后请使用鼠标左键选中'''OK汉语(中国)'''并按住不动,然后往上将其拖到最开始的位置,拖完后的显示如下图所示:</p><p>[[File:media/image355.png| 324x320px]]</p></li></ol> '''OK'''|''注意,这一步不是很好拖动的,请耐心多试几次。''' <ol start="4" style="list-style-type: decimal;"><li><p>然后选择'''Apply System-Wide'''将中文设置应用到整个系统</p><p>[[File:media/image356.png|321x316px]]</p></li><li><p>然后设置'''Keyboard input method system'''为'''fcitx'''</p><p>[[File:media/image357.png|327x320px]]</p></li><li><p>'''然后重启Linux系统使配置生效'''</p></li><li><p>重新进入系统后,在下面的界面请选择'''不要再次询问我''',然后请根据自己的喜好决定标准文件夹是否也要更新为中文</p><p>[[File:media/image358.png|303x247px]]</p></li><li><p>然后可以看到桌面都显示为中文了</p><p>[[File:media/image359.png|575x383px]]</p></li><li><p>然后我们可以打开'''Geany'''测试下中文输入法,打开方式如下图所示</p><p>[[File:media/image360.png|576x292px]]</p></li><li><p>打开'''Geany'''后,默认还是英文输入法,我们可以通过'''Ctrl+Space'''快捷键来切换成中文输入法,然后就能输入中文了</p><p>[[File:media/image361.png|575x308px]]</p></li></ol> <span id="ubuntu-22.04系统的安装方法"></span>=== Ubuntu 22.04系统的安装方法 === <ol style="list-style-type: decimal;"><li><p>首先打开'''Language Support'''</p><p>[[File:media/image353.png|575x351px]]</p></li><li><p>然后找到'''汉语(中国)'''选项</p><p>[[File:media/image362.png|249x242px]]</p></li><li><p>然后请使用鼠标左键选中'''汉语(中国)'''并按住不动,然后往上将其拖到最开始的位置,拖完后的显示如下图所示:</p><p>[[File:media/image363.png|267x262px]]</p></li></ol> '''注意,这一步不是很好拖动的,请耐心多试几次。''' <ol start="4" style="list-style-type: decimal;"><li><p>然后选择'''Apply System-Wide'''将中文设置应用到整个系统</p><p>[[File:media/image364.png|287x282px]]</p></li><li><p>'''然后重启Linux系统使配置生效'''</p></li><li><p>重新进入系统后,在下面的界面请选择'''不要再次询问我''',然后请根据自己的喜好决定标准文件夹是否也要更新为中文</p><p>[[File:media/image358.png|303x247px]]</p></li><li><p>然后可以看到桌面都显示为中文了</p><p>[[File:media/image359.png|575x383px]]</p></li><li><p>然后打开Fcitx5配置程序</p><p>[[File:media/image365.png|575x349px]]</p></li><li><p>然后选择使用拼音输入法</p><p>[[File:media/image366.png|338x267px]]</p></li><li><p>选择后的界面如下所示,再点击确定即可</p><p>[[File:media/image367.png|366x290px]]</p></li><li><p>然后我们可以打开'''Geany'''测试下中文输入法,打开方式如下图所示</p><p>[[File:media/image360.png|576x292px]]</p></li><li><p>打开'''Geany'''后,默认还是英文输入法,我们可以通过'''Ctrl+Space'''快捷键来切换成中文输入法,然后就能输入中文了</p><p>[[File:media/image368.png|434x308px]]</p></li></ol> <span id="远程登录linux系统桌面的方法"></span>== 远程登录Linux系统桌面的方法 == '''Ubuntu Gnome Wayland镜像不支持使用此处介绍的Nomachine和VNC来远程登录桌面。''' <span id="使用nomachine远程登录"></span>=== 使用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系统。''' <ol style="list-style-type: decimal;"><li><p>首先下载NoMachine软件Linux '''arm64''' deb版本的安装包,然后安装到开发板的Linux系统中</p><ol style="list-style-type: lower-alpha;"><li>由于RK3588是ARMv8架构的SOC,我们使用的系统为Ubuntu或者Debian,所以这里需要下载'''NoMachine &gt; for ARM ARMv8 DEB'''安装包,下载链接如下所示:</li></ol></li></ol> '''注意,这个下载链接可能会变,请认准Armv8/Arm64版本的deb包。''' [https://www.nomachine.com/download/download&id=112&s=ARM '''https://downloads.nomachine.com/download/?id=118&amp;distro=ARM'''] [[File:media/image369.png|575x227px]] <ol start="2" style="list-style-type: lower-alpha;"><li><p>另外在'''官方工具'''中也可以下载到'''NoMachine'''的安装包</p><p>[[File:media/image370.png|70x86px]]</p><p>先进入'''远程登录软件-NoMachine'''文件夹</p><p>[[File:media/image371.png|256x46px]]</p><p>然后下载arm64版本的deb安装包</p><p>[[File:media/image372.png|180x109px]]</p></li><li><p>然后将下载的'''nomachine_x.x.x_x_arm64.deb'''上传到开发板的Linux系统中</p></li><li><p>然后使用下面的命令在开发板的Linux系统中安装'''NoMachine'''</p><p>orangepi@orangepi:~$ '''sudo dpkg -i nomachine_x.x.x_x_arm64_arm64.deb'''</p></li></ol> <!-- --><ol start="2" style="list-style-type: decimal;">| '''Chromium硬解视频'''| '''OK'''| '''OK'''| '''OK'''| '''OK'''|}<li>然后下载NoMachine软件Windows版本的安装包,下载地址如下所示</li></ol>
== 本手册linux命令格式说明 =='''注意,这个下载链接可能会变。'''
# 本手册中所有需要在Linux系统中输入的命令都会使用下面的方框框起来'''https://downloads.nomachine.com/download/?id=9'''
如下所示,黄色方框里内容表示需要特别注意的内容,这里面的命令除外。[[File:media/image373.png|575x163px]]
# 命令前面的提示符类型说明<ol start="3" style="list-style-type: decimal;">## 命令前面提示符指的是下面方框内红色部分的内容,这部分内容不是linux命令的一部分,所以在linux系统中输入命令时,请不要把红色字体部分的内容也输入进去。<li><p>然后在Windows中安装NoMachine,'''安装完后请重启下电脑'''</p></li><li><p>然后在Window中打开'''NoMachine'''</p><p>[[File:media/image374.png|76x66px]]</p></li><li><p>NoMachine启动后会自动扫描局域网内其他安装有NoMachine的设备,进入NoMachine的主界面后就可以看到开发板已经在可连接的设备列表里了,然后点击下图红色方框所示的位置即可开始登录开发板的Linux系统桌面</p><p>[[File:media/image375.png|321x92px]]</p></li><li><p>然后点击'''OK'''</p><p>[[File:media/image376.png|269x184px]]</p></li><li><p>然后在下图对应的位置输入开发板Linux系统的用户名和密码,再点击'''OK'''开始登陆</p><p>[[File:media/image377.png|303x204px]]</p></li><li><p>然后在接下来的界面中都点击OK</p></li><li><p>最后就能看到开发板Linux系统的桌面了</p><p>[[File:media/image378.png|411x246px]]</p></li></ol>
'''orangepi@orangepi:~$ sudo apt update'''<span id="使用vnc远程登录"></span>=== 使用VNC远程登录 ===
'''root@orangepi:~#''' '''vim /boot/boot.cmd操作前请先确保Windwos电脑和开发板在同一局域网内,并且能正常ssh登录开发板的Ubuntu或者Debian系统。'''
'''test@test:~$ ssh''' [mailto:root@192Ubuntu20.168.1.36 '''root@192.168.1.''']'''xxx04测试VNC很多问题,请不要使用这种方法。'''
<ol style="list-style-type: decimal;"><li><p>首先运行'''set_vnc.sh''root'脚本设置下vnc,'''记得加sudo权限'''</p><p>orangepi@testorangepi:~$ '''sudo set_vnc.sh'''</p><p>You will require a password to access your desktops.</p><p>Password: '''# ls在这里设置vnc的密码,8位字符'''</p><p>Verify: '''#在这里设置vnc的密码,8位字符'''</p><p>Would you like to enter a view-only password (y/n)? '''n'''</p><p>xauth: file /root/.Xauthority does not exist</p><p>New 'X' desktop is orangepi:1</p><p>Creating default startup script /root/.vnc/xstartup</p><p>Starting applications specified in /root/.vnc/xstartup</p><p>Log file is /root/.vnc/orangepi:1.log</p><p>Killing Xtightvnc process ID 3047</p><p>New 'X' desktop is orangepi:1</p><p>Starting applications specified in /root/.vnc/xstartup</p><p>Log file is /root/.vnc/orangepi:1.log</p></li><li><p>使用MobaXterm软件连接开发板linux系统桌面的步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li>首先点击Session,然后选择VNC,再填写开发板的IP地址和端口,最后点击OK确认</li></ol></li></ol>
# '''root@orangepi[[File:~$''' 提示符表示这个命令是在'''开发板的linux系统'''中输入的, 提示符最后的 '''$''' 表示系统当前用户为普通用户,当执行特权命令时,需要加上'''sudo'''## '''root@orangepi:~#''' 提示符表示这个命令是在'''开发板的linux系统'''中输入的, 提示符最后的 '''#''' 表示系统当前用户为root用户,可以执行任何想要执行的命令## '''test@test:~$''' 提示符表示这个命令是在Ubuntu PC或者Ubuntu虚拟机中输入的,而不是开发板的linux系统中。提示符最后的 '''$''' 表示系统当前用户为普通用户,当执行特权命令时,需要加上'''sudo'''## '''root@test:~#''' 提示符表示这个命令是在Ubuntu PC或者Ubuntu虚拟机中输入的,而不是开发板的linux系统中。提示符最后的 '''#''' 表示系统当前用户为root用户,可以执行任何想要执行的命令# 哪些是需要输入的命令?## 如下所示,'''黑色加粗部分'''是需要输入的命令,命令下面的是输出的内容(有些命令有输出,有些可能没有输出),这部分内容是不需要输入的media/image379.png|421x300px]]
root@orangepi<ol start="2" style="list-style-type:~# '''cat lower-alpha;"><li><p>然后输入前面设置的VNC的密码</bootp><p>[[File:media/orangepiEnvimage380.txt'''png|221x105px]]</p></li><li><p>登录成功后的界面显示如下图所示,然后就可以远程操作开发板linux系统的桌面了</p></li></ol>
'''verbosity=7'''[[File:media/image381.png|405x293px]]
bootlogo<span id="linux系统支持的部分编程语言测试"></span>== Linux系统支持的部分编程语言测试 ==false
'''console<span id="debian-bullseye系统"></span>=== Debian Bullseye系统 ===serial'''
<ol style="list-style-type: decimal;">
<li><p>如下所示,有些命令一行写不下会放到下一行,只要黑色加粗的部分就都是需要输入的命令。当这些命令输入到一行的时候,每行最后的“Debian Bullseye默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序</p><ol style="list-style-type: lower-alpha;"><li><p>gcc的版本如下所示</p><p>orangepi@orangepi:~$ '''gcc --version'''\</p><p>gcc (Debian 10.2.1-6) 10.2.1 20210110</p><p>Copyright (C) 2020 Free Software Foundation, Inc.</p><p>This is free software; see the source for copying conditions. There is NO</p><p>warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</p></li><li><p>编写C语言的'''hello_world.c'''”是需要去掉的,这个不是命令的一部分。另外命令的不同部分都是有空格的,请别漏了程序</p><p>orangepi@orangepi:~$ '''echo vim hello_world.c'''</p><p>#include &lt;stdio.h&gt;</p><p>int main(void)</p><p>{</p><p>printf(&quot;Hello World!\n&quot;);</p><p>return 0;</p><p>}</p></li><li><p>然后编译运行'''hello_world.c'''</p><p>orangepi@orangepi:~$ '''“deb [arch=$(dpkg –printgcc -architecture) \o hello_world hello_world.c'''</p><p>orangepi@orangepi:~$ '''signed-by=./hello_world'''</p><p>Hello World!</p></usrli></shareol></keyringsli><li><p>Debian Bullseye默认安装有Python3</dockerp><ol style="list-archivestyle-keyring.gpg] \type: lower-alpha;"><li><p>Python具体版本如下所示</p><p>orangepi@orangepi:~$ '''python3'''</p><p>'''httpsPython 3.9.2''' (default, Feb 28 2021, 17:03:44)</p><p>[GCC 10.2.1 20210110] on linux</downloadp><p>Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.docker.com</linuxp><p>&gt;&gt;&gt;</debian \p><p>'''使用Ctrl+D快捷键可退出python的交互模式。'''</p></li><li><p>编写Python语言的'''hello_world.py'''程序</p><p>orangepi@orangepi:~$'''vim hello_world.py'''</p><p>print(lsb_release 'Hello World!')</p></li><li><p>运行'''hello_world.py'''的结果如下所示</p><p>orangepi@orangepi:~$ '''python3 hello_world.py'''</p><p>Hello World!</p></li></ol></li><li><p>Debian Bullseye默认没有安装Java的编译工具和运行环境</p><ol style="list-cs) stable” | style-type: lower-alpha;"><li><p>可以使用下面的命令安装openjdk,Debian &gt; Bullseye中最新版本为openjdk-17</p><p>orangepi@orangepi:~$ '''sudo tee apt install -y openjdk-17-jdk'''</p></li><li><p>安装完后可以查看下Java的版本</etcp><p>orangepi@orangepi:~$ '''java --version'''</aptp></sourcesli><li><p>编写Java版本的'''hello_world.listjava'''</p><p>orangepi@orangepi:~$ '''vim hello_world.djava'''</p><p>public class hello_world</dockerp><p>{</p><p>public static void main(String[] args)</p><p>{</p><p>System.list out.println(&quot;Hello World!&gtquot;); </devp><p>}</nullp><p>}</p></li><li><p>然后编译运行'''hello_world.java'''</p><p>orangepi@orangepi:~$ '''javac hello_world.java'''</p><p>orangepi@orangepi:~$ '''java hello_world'''</p><p>Hello World!</p></li></ol></li></ol>
<span id="ubuntu-focal系统"></span>=== Ubuntu Focal系统 = linux系统登录说明 ==
<ol style="list-style-type: decimal;"><li><p>Ubuntu Focal默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序</p><ol style="list-style-type: lower-alpha;"><li><p>gcc的版本如下所示</p><p>orangepi@orangepi:~$ '''gcc --version'''</p><p>gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0</p><p>Copyright (C) 2019 Free Software Foundation, Inc.</p><p>This is free software; see the source for copying conditions. There is NO</p><p>warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</p></li><li><p>编写C语言的'''hello_world.c'''程序</p><p>orangepi@orangepi:~$ '''vim hello_world.c'''</p><p>#include &lt;stdio.h&gt;</p><p>int main(void)</p><p>{</p><p>printf(&quot;Hello World!\n&quot;);</p><p>return 0;</p><p>}</p></li><li><p>然后编译运行'''hello_world.c'''</p><p>orangepi@orangepi:~$ '''gcc -o hello_world hello_world.c'''</p><p>orangepi@orangepi:~$ '''./hello_world'''</p><p>Hello World!</p></li></ol></li><li><p>Ubuntu Focal默认安装有Python3</p><ol style= linux系统默认登录账号和密码 =="list-style-type: lower-alpha;"><li><p>Python3具体版本如下所示</p><p>orangepi@orangepi:~$ '''python3'''</p><p>Python 3.8.10 (default, Nov 14 2022, 12:59:47)</p><p>[GCC 9.4.0] on linux</p><p>Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.</p><p>&gt;&gt;&gt;</p><p>'''使用Ctrl+D快捷键可退出python的交互模式。'''</p></li><li><p>编写Python语言的'''hello_world.py'''程序</p><p>orangepi@orangepi:~$ '''vim hello_world.py'''</p><p>print('Hello World!')</p></li><li><p>运行'''hello_world.py'''的结果如下所示</p><p>orangepi@orangepi:~$ '''python3 hello_world.py'''</p><p>Hello World!</p></li></ol></li><li><p>Ubuntu Focal默认没有安装Java的编译工具和运行环境</p><ol style="list-style-type: lower-alpha;"><li><p>可以使用下面的命令安装openjdk-17</p><p>orangepi@orangepi:~$ '''sudo apt install -y openjdk-17-jdk'''</p></li><li><p>安装完后可以查看下Java的版本</p><p>orangepi@orangepi:~$ '''java --version'''</p><p>openjdk 17.0.2 2022-01-18</p><p>OpenJDK Runtime Environment (build 17.0.2+8-Ubuntu-120.04)</p><p>OpenJDK 64-Bit Server VM (build 17.0.2+8-Ubuntu-120.04, mixed mode, sharing)</p></li><li><p>编写Java版本的'''hello_world.java'''</p><p>orangepi@orangepi:~$ '''vim hello_world.java'''</p><p>public class hello_world</p><p>{</p><p>public static void main(String[] args)</p><p>{</p><p>System.out.println(&quot;Hello World!&quot;);</p><p>}</p><p>}</p></li><li><p>然后编译运行'''hello_world.java'''</p><p>orangepi@orangepi:~$ '''javac hello_world.java'''</p><p>orangepi@orangepi:~$ '''java hello_world'''</p><p>Hello World!</p></li></ol></li></ol>
{| class<span id="wikitableubuntu-jammy系统"></span>|-! '''账号'''! '''密码'''|-| '''root'''| '''orangepi'''|-| '''orangepi'''| '''orangepi'''|}=== Ubuntu Jammy系统 ===
<ol start="4" style="list-style-type: decimal;"><li><p>Ubuntu Jammy默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序</p><ol style="list-style-type: lower-alpha;"><li><p>gcc的版本如下所示</p><p>orangepi@orangepi:~$ '''注意,输入密码的时候,屏幕上是不会显示输入的密码的具体内容的,请不要以为是有什么故障,输入完后直接回车即可。gcc --version'''</p><p>gcc (Ubuntu 11.2.0-19ubuntu1) '''11.2.0'''</p><p>Copyright (C) 2021 Free Software Foundation, Inc.</p><p>This is free software; see the source for copying conditions. There is NO</p><p>warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</p></li><li><p>编写C语言的'''hello_world.c'''程序</p><p>orangepi@orangepi:~$ '''vim hello_world.c'''</p><p>#include &lt;stdio.h&gt;</p><p>int main(void)</p><p>{</p><p>printf(&quot;Hello World!\n&quot;);</p><p>return 0;</p><p>}</p></li><li><p>然后编译运行'''hello_world.c'''</p><p>orangepi@orangepi:~$ '''gcc -o hello_world hello_world.c'''</p><p>orangepi@orangepi:~$ '''./hello_world'''</p><p>Hello World!</p></li></ol></li><li><p>Ubuntu Jammy默认安装有Python3</p><ol style="list-style-type: lower-alpha;"><li><p>Python3具体版本如下所示</p><p>orangepi@orangepi:~$ '''python3'''</p><p>Python '''3.10.4''' (main, Apr 2 2022, 09:04:19) [GCC 11.2.0] on linux</p><p>Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.</p><p>&gt;&gt;&gt;</p><p>'''使用Ctrl+D快捷键可退出python的交互模式。'''</p></li><li><p>编写Python语言的'''hello_world.py'''程序</p><p>orangepi@orangepi:~$ '''vim hello_world.py'''</p><p>print('Hello World!')</p></li><li><p>运行'''hello_world.py'''的结果如下所示</p><p>orangepi@orangepi:~$ '''python3 hello_world.py'''</p><p>Hello World!</p></li></ol></li><li><p>Ubuntu Jammy默认没有安装Java的编译工具和运行环境</p><ol style="list-style-type: lower-alpha;"><li><p>可以使用下面的命令安装openjdk-18</p><p>orangepi@orangepi:~$ '''sudo apt install -y openjdk-18-jdk'''</p></li><li><p>安装完后可以查看下Java的版本</p><p>orangepi@orangepi:~$ '''java --version'''</p><p>openjdk 18-ea 2022-03-22</p><p>OpenJDK Runtime Environment (build 18-ea+36-Ubuntu-1)</p><p>OpenJDK 64-Bit Server VM (build 18-ea+36-Ubuntu-1, mixed mode, sharing)</p></li><li><p>编写Java版本的'''hello_world.java'''</p><p>orangepi@orangepi:~$ '''vim hello_world.java'''</p><p>public class hello_world</p><p>{</p><p>public static void main(String[] args)</p><p>{</p><p>System.out.println(&quot;Hello World!&quot;);</p><p>}</p><p>}</p></li><li><p>然后编译运行'''hello_world.java'''</p><p>orangepi@orangepi:~$ '''javac hello_world.java'''</p><p>orangepi@orangepi:~$ '''java hello_world'''</p><p>Hello World!</p></li></ol></li></ol>
'''当输入密码提示错误,或者ssh连接有问题,请注意,只要使用的是Orange Pi提供的Linux镜像,就请不要怀疑上面的密码不对,而是要找其它的原因。'''<span id="qt的安装方法"></span>== QT的安装方法 ==
<ol style="list-style-type: decimal;"><li><p>使用下面的脚本可以安装QT5和QT Creator</p><p>orangepi@orangepi:~$ '''install_qt.sh'''</p></li><li><p>安装完后会自动打印QT的版本号</p><ol style="list-style-type: lower-alpha;"><li><p>Ubuntu20.04自带的qt版本为'''5.12.8'''</p><p>orangepi@orangepi:~$ '''install_qt.sh'''</p><p>......</p><p>QMake version 3.1</p><p>Using Qt version '''5.12.8''' in /usr/lib/aarch64-linux-gnu</p></li><li><p>Ubuntu22.04自带的QT版本为'''5.15.3'''</p><p>orangepi@orangepi:~$ '''install_qt.sh'''</p><p>......</p><p>QMake version 3.1</p><p>Using Qt version '''5.15.3''' in /usr/lib/aarch64-linux-gnu</p></li><li><p>Debian11自带的QT版本为'''5.15.2'''</p><p>orangepi@orangepi:~$ '''install_qt.sh'''</p><p>......</p><p>QMake version 3.1</p><p>Using Qt version '''5.15.2''' in /usr/lib/aarch64-linux-gnu</p></li></ol></li><li><p>然后在'''Applications'''中就可以看到QT Creator的启动图标</p><p>[[File:media/image382.png|576x270px]]</p><p>也可以使用下面的命令打开QT Creator</p><p>orangepi@orangepi:~$ '''qtcreator'''</p><p>'''在QT和QT应用的启动过程中,如果提示下面的错误,请直接忽略,此错误对应用的运行不会有影响。'''</p><p>'''libGL error: failed to create dri screen'''</p><p>'''libGL error: failed to load driver: rockchip'''</p><p>'''libGL error: failed to create dri screen'''</p><p>'''libGL error: failed to load driver: rockchip'''</p></li><li><p>QT Creator打开后的界面如下所示</p><p>[[File:media/image383.png|576x306px]]</p></li><li><p>QT Creator的版本如下所示</p><ol style= 设置linux系统终端自动登录的方法 =="list-style-type: lower-alpha;"><li><p>QT Creator在'''Ubuntu20.04'''中的默认版本如下所示</p><p>[[File:media/image384.png|576x308px]]</p></li><li><p>QT Creator在'''Ubuntu22.04'''中的默认版本如下所示</p><p>[[File:media/image385.png|575x307px]]</p></li><li><p>QT Creator在'''Debian11'''中的默认版本如下所示</p><p>[[File:media/image386.png|575x309px]]</p></li></ol></li><li><p>然后设置下QT</p><ol style="list-style-type: lower-alpha;"><li><p>首先打开'''Help'''-&gt;'''About Plugins...'''</p><p>[[File:media/image387.png|573x164px]]</p></li><li><p>然后去掉'''ClangCodeModel'''的那个勾</p><p>[[File:media/image388.png|575x359px]]</p></li><li><p>'''设置完后需要重启下QT Creator'''</p></li><li><p>然后确保QT Creator使用的GCC编译器,如果默认为Clang,请修改为GCC</p><p>[[File:media/image389.png|576x315px]]</p><p>[[File:media/image390.png|575x307px]]</p></li></ol></li><li><p>然后就可以打开一个示例代码</p><p>[[File:media/image391.png|575x312px]]</p></li><li><p>点击示例代码后会自动打开对应的说明文档,可以仔细看下其中的使用说明</p><p>[[File:media/image392.png|576x218px]]</p></li><li><p>然后点击下'''Configure Project'''</p><p>[[File:media/image393.png|575x304px]]</p></li><li><p>然后点击左下角的绿色三角形编译运行下示例代码</p><p>[[File:media/image394.png|575x312px]]</p></li><li><p>等待一段时间后,会弹出下图所示的界面,此时就说明QT能正常编译运行</p><p>[[File:media/image395.png|576x308px]]</p></li><li><p>参考资料</p><p>[https://wiki.qt.io/Install_Qt_5_on_Ubuntu '''https://wiki.qt.io/Install_Qt_5_on_Ubuntu''']</p><p>[https://download.qt.io/archive/qtcreator '''https://download.qt.io/archive/qtcreator''']</p><p>[https://download.qt.io/archive/qt '''https://download.qt.io/archive/qt''']</p></li></ol>
# linux系统默认就是自动登录终端的,默认登录的用户名是'''orangepi'''<span id="ros安装方法"></span>== ROS安装方法 ==
[[File:media<span id="ubuntu20.04安装ros-1-noetic的方法"></02c5ddf60e06bfa30f01b3466c102d43span>=== Ubuntu20.png]]04安装ROS 1 Noetic的方法 ===
# 使用下面的命令可以设置root用户自动登录终端ROS 1当前活跃的版本如下所示,推荐版本为'''Noetic Ninjemys'''
orangepi@orangepi[[File:~$ '''sudo auto_login_climedia/image396.sh root'''png|345x235px]]
# 使用下面的命令可以禁止自动登录终端[[File:media/image397.png|576x210px]]
orangepi@orangepi[http:~$ //docs.ros.org/ '''sudo auto_login_clihttp://docs.ros.sh -dorg''']
# 使用下面的命令可以再次设置orangepi用户自动登录终端'''https://wiki.ros.org/Distributions'''
<ol start="2" style="list-style-type: decimal;"><li><p>ROS 1 '''Noetic Ninjemys'''官方安装文档链接如下所示:</p><p>[http://wiki.ros.org/noetic/Installation/Ubuntu '''http://wiki.ros.org/noetic/Installation/Ubuntu''']</p></li><li><p>ROS '''Noetic Ninjemys'''官方安装文档中Ubuntu推荐使用Ubuntu20.04,所以请确保开发板使用的系统为'''Ubuntu20.04桌面版系统'''</p><p>[http://wiki.ros.org/noetic/Installation '''http://wiki.ros.org/noetic/Installation''']</p><p>[[File:media/image398.png|312x176px]]</p></li><li><p>然后使用下面的脚本安装ros1</p><p>orangepi@orangepiorangepi5plus:~$ '''sudo auto_login_cliinstall_ros.sh orangepiros1'''</p></li><li><p>使用ROS工具前,首先需要初始化下rosdep,然后编译源码时就能快速的安装一些系统依赖和一些ROS中的核心组件</p></li></ol>
=== linux桌面版系统自动登录说明 ==='''注意,运行下面的命令需要确保开发板能正常访问github,否则会由于网络问题而报错。'''
# 桌面版系统启动后会自动登录进入桌面,无需输入密码'''install_ros.sh脚本会尝试修改/etc/hosts并自动运行下面的命令。但是这种方法无法保证每次都能正常访问github,如果install_ros.sh安装完ros1后有提示下面的错误,请自己想其它办法让开发板的linux系统能正常访问github,然后再手动运行下面的命令。'''
<div class="figure">'''https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml'''
[[File'''Hit https:media/d2f40d044ad0e2ffef5815070adf5f80/raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.png|1]]yaml'''
</div># 运行下面的命令可以禁止桌面版系统自动登录桌面'''ERROR: error loading sources list:'''
orangepi@orangepi:~$ '''sudo disable_desktop_autologin.shThe read operation timed out'''
# 然后重启系统就会出现登录对话框,此时需要输入[[#_linux系统默认登录账号和密码|orangepi@orangepi:~$ '''密码source /opt/ros/noetic/setup.bash''']]才能进入系统
<div class="figure">orangepi@orangepi:~$ '''sudo rosdep init'''
[[File:mediaWrote /10be49a9de980c18ea13be55fe252501etc/ros/rosdep/sources.list.d/20-default.png|IMG_256]]list
</div><span id="linux桌面版系统root用户自动登录的设置方法"></span>=== Linux桌面版系统root用户自动登录的设置方法 ===Recommended: please run
# 执行下面的命令可以设置桌面版系统使用root用户自动登录rosdep update
orangepi@orangepi:~$ '''sudo desktop_login.sh rootrosdep update'''
# 然后重启系统,就会自动使用root用户登录桌面了reading in sources list data from /etc/ros/rosdep/sources.list.d
[[FileHit https:media/aa945ef5c7ffc88116693712e82d7b23/raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.png]]yaml
'''注意,如果使用root用户登录桌面系统,是无法使用右上角的pulseaudio来管理音频设备的。'''Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
'''另外请注意这并不是一个bug,因为pulseaudio本来就不允许在root用户下运行。'''Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
# 执行下面的命令可以再次设置桌面版系统使用orangepi用户自动登录Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
orangepi@orangepiHit https:~$ '''sudo desktop_login//raw.sh orangepi'''githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
<span id="linux桌面版系统禁用桌面的方法"><Query rosdistro index https:/span>=== Linux桌面版系统禁用桌面的方法 ===/raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
# 首先在命令行中输入下面的命令,'''请记得加sudo权限'''Skip end-of-life distro &quot;ardent&quot;
orangepi@orangepi:~$ '''sudo systemctl disable lightdm.service'''Skip end-of-life distro &quot;bouncy&quot;
# 然后重启Linux系统就会发现不会显示桌面了Skip end-of-life distro &quot;crystal&quot;
orangepi@orangepi:~$ '''sudo reboot'''Skip end-of-life distro &quot;dashing&quot;
# 重新打开桌面的步骤如下所示:## 首先在命令行中输入下面的命令,'''请记得加sudo权限'''Skip end-of-life distro &quot;eloquent&quot;
orangepi@orangepi:~$ '''sudo systemctl start lightdm.service'''Add distro &quot;foxy&quot;
# 选择完后显示器就会显示桌面了Add distro &quot;galactic&quot;
<span id="板载led灯测试说明"></span>== 板载LED灯测试说明 ==Skip end-of-life distro &quot;groovy&quot;
# 开发板上有一个红绿蓝三色灯,所在位置如下图所示:Add distro &quot;humble&quot;
[[File:media/254e993446dedf4387be6fd80f20297e.png]]Skip end-of-life distro &quot;hydro&quot;
# '''只要开发板打开了电源,红色的LED灯就会常亮,这是由硬件控制的,软件无法关闭。通过红色的LED灯可以确定开发板的电源是否已正常开启。'''# 绿色和蓝色的LED灯在内核启动后会一直闪烁,这是由软件控制的。# 设置绿灯亮灭和闪烁的方法如下所示:Skip end-of-life distro &quot;indigo&quot;
'''注意,下面的操作请在root用户下进行。'''Skip end-of-life distro &quot;jade&quot;
# 首先进入绿灯的设置目录Skip end-of-life distro &quot;kinetic&quot;
root@orangepi:~# '''cd /sys/class/leds/green_led'''Skip end-of-life distro &quot;lunar&quot;
# 设置绿灯停止闪烁的命令如下Add distro &quot;melodic&quot;
root@orangepi:/sys/class/leds/green_led# '''echo none Add distro &gtquot;noetic&quot; trigger'''
# 设置绿灯常亮的命令如下Add distro &quot;rolling&quot;
root@updated cache in /home/orangepi:/sys/class.ros/ledsrosdep/green_led# '''echo default-on &gt; trigger'''sources.cache
# 设置绿灯闪烁的命令如下<ol start="6" style="list-style-type: decimal;"><li><p>然后在'''桌面'''中打开一个命令行终端窗口,再使用'''test_ros.sh'''脚本可以启动一个小海龟的例程来测试下ROS是否能正常使用</p><p>orangepi@orangepi:~$ '''test_ros.sh'''</p></li><li><p>运行完'''test_ros.sh'''脚本后,会弹出下图所示的一个小海龟</p><p>[[File:media/image399.png|576x276px]]</p></li><li><p>然后请保持刚才打开终端窗口在最上面</p></li></ol>
root@orangepi[[File:media/sys/class/leds/green_led# '''echo heartbeat &gt; trigger'''image400.png|576x275px]]
# 设置蓝灯亮灭和闪烁的方法如下所示:<ol start="9" style="list-style-type: decimal;"><li><p>此时按下键盘上的方向按键就可以控制小海龟上下左右移动了</p><p>[[File:media/image401.png|575x296px]]</p></li></ol>
'''注意,下面的操作请在root用户下进行。'''<span id="ubuntu20.04安装ros-2-galactic的方法"></span>=== Ubuntu20.04安装ROS 2 Galactic的方法 ===
# 首先进入绿灯的设置目录<ol style="list-style-type: decimal;"><li><p>ROS 2当前活跃的版本如下所示,推荐版本为'''Galactic Geochelone'''</p><p>[[File:media/image402.png|576x271px]]</p><p>[[File:media/image403.png|575x265px]]</p><p>[http://docs.ros.org/ '''http://docs.ros.org''']</p><p>'''http://docs.ros.org/en/galactic/Releases.html'''</p></li><li><p>ROS 2 '''Galactic Geochelone'''官方安装文档链接如下所示:</p><p>'''docs.ros.org/en/galactic/Installation.html'''</p><p>'''http://docs.ros.org/en/galactic/Installation/Ubuntu-Install-Debians.html'''</p></li><li><p>ROS 2 '''Galactic Geochelone'''官方安装文档中Ubuntu Linux推荐使用Ubuntu20.04,所以请确保开发板使用的系统为'''Ubuntu20.04桌面版系统'''。安装ROS 2有几种方法,下面演示下通过'''Debian packages'''的方式来安装ROS 2 '''Galactic Geochelone'''</p></li><li><p>使用'''install_ros.sh'''脚本可以安装ros2</p><p>orangepi@orangepi:~$ '''install_ros.sh ros2'''</p></li><li><p>'''install_ros.sh'''脚本安装完ros2后会自动运行下'''ros2 -h'''命令,如果能看到下面的打印,说明ros2安装完成</p><p>usage: ros2 [-h] Call `ros2 &lt;command&gt; -h` for more detailed usage. ...</p><p>ros2 is an extensible command-line tool for ROS 2.</p><p>optional arguments:</p><p>-h, --help show this help message and exit</p><p>Commands:</p><p>action Various action related sub-commands</p><p>bag Various rosbag related sub-commands</p><p>component Various component related sub-commands</p><p>daemon Various daemon related sub-commands</p><p>doctor Check ROS setup and other potential issues</p><p>interface Show information about ROS interfaces</p><p>launch Run a launch file</p><p>lifecycle Various lifecycle related sub-commands</p><p>multicast Various multicast related sub-commands</p><p>node Various node related sub-commands</p><p>param Various param related sub-commands</p><p>pkg Various package related sub-commands</p><p>run Run a package specific executable</p><p>security Various security related sub-commands</p><p>service Various service related sub-commands</p><p>topic Various topic related sub-commands</p><p>wtf Use `wtf` as alias to `doctor`</p><p>Call `ros2 &lt;command&gt; -h` for more detailed usage.</p></li><li><p>然后可以使用 '''test_ros.sh'''脚本测试下ROS 2是否安装成功,如果能看到下面的打印,说明ROS 2能正常运行</p><p>orangepi@orangepi5plus:~$ '''test_ros.sh'''</p><p>[INFO] [1671174101.200091527] [talker]: Publishing: 'Hello World: 1'</p><p>[INFO] [1671174101.235661048] [listener]: I heard: [Hello World: 1]</p><p>[INFO] [1671174102.199572327] [talker]: Publishing: 'Hello World: 2'</p><p>[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: 2]</p><p>[INFO] [1671174103.199580322] [talker]: Publishing: 'Hello World: 3'</p><p>[INFO] [1671174103.204019965] [listener]: I heard: [Hello World: 3]</p></li><li><p>运行下面的命令可以打开rviz2</p><p>orangepi@orangepi:~$ '''source /opt/ros/galactic/setup.bash'''</p><p>orangepi@orangepi:~$ '''ros2 run rviz2 rviz2'''</p><div class="figure">
root@orangepi[[File:~# '''cd media/sys/class/leds/blue_led'''image404.png|576x324px|1]]
# 设置绿灯停止闪烁的命令如下</div></li><li><p>ROS的使用方法请参考下ROS 2的文档</p><p>[http://docs.ros.org/en/galactic/Tutorials.html '''http://docs.ros.org/en/galactic/Tutorials.html''']</p></li></ol>
root@orangepi:<span id="ubuntu22.04安装ros-2-humble的方法"></sys/class/leds/blue_led# '''echo none &gt; trigger'''span>=== Ubuntu22.04安装ROS 2 Humble的方法 ===
# 设置绿灯常亮的命令如下<ol style="list-style-type: decimal;"><li><p>使用'''install_ros.sh'''脚本可以安装ros2</p><p>orangepi@orangepi:~$ '''install_ros.sh ros2'''</p></li><li><p>'''install_ros.sh'''脚本安装完ros2后会自动运行下'''ros2 -h'''命令,如果能看到下面的打印,说明ros2安装完成</p><p>usage: ros2 [-h] Call `ros2 &lt;command&gt; -h` for more detailed usage. ...</p><p>ros2 is an extensible command-line tool for ROS 2.</p><p>optional arguments:</p><p>-h, --help show this help message and exit</p><p>Commands:</p><p>action Various action related sub-commands</p><p>bag Various rosbag related sub-commands</p><p>component Various component related sub-commands</p><p>daemon Various daemon related sub-commands</p><p>doctor Check ROS setup and other potential issues</p><p>interface Show information about ROS interfaces</p><p>launch Run a launch file</p><p>lifecycle Various lifecycle related sub-commands</p><p>multicast Various multicast related sub-commands</p><p>node Various node related sub-commands</p><p>param Various param related sub-commands</p><p>pkg Various package related sub-commands</p><p>run Run a package specific executable</p><p>security Various security related sub-commands</p><p>service Various service related sub-commands</p><p>topic Various topic related sub-commands</p><p>wtf Use `wtf` as alias to `doctor`</p><p>Call `ros2 &lt;command&gt; -h` for more detailed usage.</p></li><li><p>然后可以使用 '''test_ros.sh'''脚本测试下ROS 2是否安装成功,如果能看到下面的打印,说明ROS 2能正常运行</p><p>orangepi@orangepi5plus:~$ '''test_ros.sh'''</p><p>[INFO] [1671174101.200091527] [talker]: Publishing: 'Hello World: 1'</p><p>[INFO] [1671174101.235661048] [listener]: I heard: [Hello World: 1]</p><p>[INFO] [1671174102.199572327] [talker]: Publishing: 'Hello World: 2'</p><p>[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: 2]</p><p>[INFO] [1671174103.199580322] [talker]: Publishing: 'Hello World: 3'</p><p>[INFO] [1671174103.204019965] [listener]: I heard: [Hello World: 3]</p></li><li><p>运行下面的命令可以打开rviz2</p><p>orangepi@orangepi:~$ '''source /opt/ros/humble/setup.bash'''</p><p>orangepi@orangepi:~$ '''ros2 run rviz2 rviz2'''</p><div class="figure">
root@orangepi[[File:media/sys/class/leds/blue_led# '''echo defaultimage405.png|576x324px|Screenshot from 2023-05-20 17-42-on &gt; trigger'''58]]
# 设置绿灯闪烁的命令如下</div></li><li><p>参考文档</p><p>'''http://docs.ros.org/en/humble/index.html'''</p><p>[http://docs.ros.org/en/galactic/Tutorials.html '''http://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html''']</p></li></ol>
root@orangepi:/sys/class/leds/blue_led# '''echo heartbeat &gt; trigger'''== 安装内核头文件的方法 ==
<ol style="list-style-type: decimal;"><li><p>OPi发布的Linux镜像默认自带了内核头文件的deb包,存放的位置为'''/opt/'''</p><p>orangepi@orangepi5plus:~$ '''ls /opt/linux-headers*'''</p><p>/opt/linux-headers-legacy-rockchip-rk3588_x.x.x_arm64.deb</p></li><li><p>使用下面的命令可以安装内核头文件的deb包</p><p>'''内核头文件deb包的名字需要替换为实际的名字,请不要照抄。'''</p><p>orangepi@orangepi:~$ '''sudo dpkg -i /opt/linux-headers-legacy-rockchip-rk3588_1.x.x_arm64.deb'''</p></li><li><p>安装完后在'''/usr/src'''下就能看到内核头文件所在的文件夹</p><p>orangepi@orangepi:~$ '''ls /usr/src'''</p><p>linux-headers-5.10.110-rockchip-rk3588</p></li><li><p>然后可以编写一个hello内核模块测试下内核头文件</p><ol style= 网络连接测试 "list-style-type: lower-alpha;"><li><p>首先编写hello内核模块的代码,如下所示:</p><p>orangepi@orangepi:~$ '''vim hello.c'''</p><p>#include &lt;linux/init.h&gt;</p><p>#include &lt;linux/module.h&gt;</p><p>static int hello_init(void)</p><p>{</p><p>printk(&quot;Hello Orange Pi -- init\n&quot;);</p><p>return 0;</p><p>}</p><p>static void hello_exit(void)</p><p>{</p><p>printk(&quot;Hello Orange Pi -- exit\n&quot;);</p><p>return;</p><p>}</p><p>module_init(hello_init);</p><p>module_exit(hello_exit);</p><p>MODULE_LICENSE(&quot;GPL&quot;);</p></li><li><p>然后编写编译hello内核模块的Makefile文件,如下所示:</p><p>orangepi@orangepi:~$ '''vim Makefile'''</p><p>ifneq ($(KERNELRELEASE),)</p><p>obj-m:=hello.o</p><p>else</p><p>KDIR :=/lib/modules/$(shell uname -r)/build</p><p>PWD :=$(shell pwd)</p><p>all:</p><p>make -C $(KDIR) M=$(PWD) modules</p><p>clean:</p><p>rm -f *.ko *.o *.mod.o *.mod *.symvers *.cmd *.mod.c *.order</p><p>endif</p></li><li><p>然后使用make命令编译hello内核模块,编译过程的输出如下所示:</p><p>'''如果自己复制的代码这里编译如果有问题,请去[http://www.orangepi.cn/html/serviceAndSupport/index.html 官方工具]中下载源码然后上传到开发板的Linux系统中测试。'''</p><p>[[File:media/image406.png|253x41px]]</p><p>orangepi@orangepi:~$ '''make'''</p><p>make -C /lib/modules/5.10.110-rockchip-rk3588/build M=/home/orangepi modules</p><p>make[1]: Entering directory '/usr/src/linux-headers-5.10.110-rockchip-rk3588'</p><p>CC [M] /home/orangepi/hello.o</p><p>MODPOST /home/orangepi/Module.symvers</p><p>CC [M] /home/orangepi/hello.mod.o</p><p>LD [M] /home/orangepi/hello.ko</p><p>make[1]: Leaving directory '/usr/src/linux-headers-5.10.110-rockchip-rk3588'</p></li><li><p>编译完后会生成'''hello.ko'''内核模块</p><p>orangepi@orangepi:~$ '''ls *.ko'''</p><p>hello.ko</p></li><li><p>使用'''insmod'''命令可以将'''hello.ko'''内核模块插入内核中</p><p>orangepi@orangepi:~$ '''sudo insmod hello.ko'''</p></li><li><p>然后使用'''demsg'''命令可以查看下'''hello.ko'''内核模块的输出,如果能看到下面的输出说明'''hello.ko'''内核模块加载正确</p><p>orangepi@orangepi:~$ '''dmesg | grep &quot;Hello&quot;'''</p><p>[ 2871.893988] '''Hello Orange Pi -- init'''</p></li><li><p>使用'''rmmod'''命令可以卸载'''hello.ko'''内核模块</p><p>orangepi@orangepi:~$ '''sudo rmmod hello'''</p><p>orangepi@orangepi:~$ '''dmesg | grep &quot;Hello&quot;'''</p><p>[ 2871.893988] Hello Orange Pi -- init</p><p>[ 3173.800892] '''Hello Orange Pi -- exit'''</p></li></ol></li></ol>
<span id="g以太网口测试寸mipi-lcd屏幕的使用方法"></span>=== 210.5G以太网口测试 =1寸MIPI LCD屏幕的使用方法 ==
# 开发板有两个2<span id="寸mipi-屏幕的组装方法"></span>=== 10.5G的以太网接口,两个网口的测试方法是一样的。首先将网线的一端插入开发板的以太网接口,网线的另一端接入路由器,并确保网络是畅通的。# 系统启动后会通过'''DHCP'''自动给以太网卡分配IP地址,'''不需要其他任何配置'''。# 在开发板的Linux系统中查看IP地址的命令如下所示:1寸MIPI 屏幕的组装方法 ===
orangepi@orangepi<ol style="list-style-type:~$ '''ip addr show'''decimal;"><li><p>首先准备需要的配件</p><ol style="list-style-type: lower-alpha;"><li><p>10.1寸MIPI LCD显示屏+触摸屏(此屏幕和OPi5/OPi5B通用)</p><p>[[File:media/image407.png|338x252px]]</p></li><li><p>屏幕转接板+31pin转40pin排线</p><div class="figure">
1[[File: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000media/image408.png|230x199px|DD9A8F44-0D8F-4f06-9473-B539DEED850C]]
link</loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00div></li><li><p>30pin MIPI排线</p><div class="figure">
inet 127.0.0[[File:media/image409.1/8 scope host lopng|443x41px|C2164119-6EC3-49ae-9A95-BE323F51FAE1]]
valid_lft forever preferred_lft forever</div></li><li><p>12pin 触摸屏排线</p><p>[[File:media/image410.png|344x50px]]</p></li></ol></li><li><p>按照下图将12pin 触摸屏排线、31pin转40pin排线、30pin MIPI排线接到屏幕转接板上,注意'''触摸屏排线蓝色的绝缘面朝下''',其它两根排线绝缘面朝上,如果接错会导致无显示或者不能触摸的问题</p><p>[[File:media/image411.png|574x142px]]</p></li><li><p>按照下图将连接好排线的转接板置于MIPI LCD屏上面,并通过31pin转40pin排线连接MIPI LCD屏与转接板</p></li></ol>
inet6 [[File::1media/128 scope hostimage412.png|382x563px]]
valid_lft forever preferred_lft forever<ol start="4" style="list-style-type: decimal;"><li><p>然后通过12pin触摸屏排线连接触摸屏与转接板,注意绝缘面的朝向</p><p>[[File:media/image413.png|253x161px]]</p></li><li><p>最后通过30pin MIPI排线连接到开发板的LCD接口上</p><p>[[File:media/image414.png|405x225px]]</p><p>'''注意,下面的触摸接口不是给LCD MIPI屏幕使用的,目前为备用接口,使用不到。'''</p><p>[[File:media/image415.png|334x70px]]</p></li></ol>
2: '''enP3p49s0''': &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP group default qlen 1000<span id="打开10.1寸mipi-lcd屏幕配置的方法"></span>=== 打开10.1寸MIPI LCD屏幕配置的方法 ===
link<ol style="list-style-type: decimal;"><li><p>linux镜像默认是没有打开mipi lcd屏幕的配置的,如果需要使用mipi lcd屏幕,需要手动打开才行。</ether 00p></li><li><p>开发板mipi lcd屏幕接口的位置如下所示:</p><p>[[File:e0media/image416.png|428x77px]]</p></li><li><p>打开mipi lcd配置的步骤如下所示:</p><ol style="list-style-type:4clower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p><p>orangepi@orangepi:68~$ '''sudo orangepi-config'''</p></li><li><p>然后选择'''System'''</p><p>[[File:00media/image223.png|379x175px]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:26 brd ffmedia/image224.png|379x164px]]</p></li><li><p>然后使用键盘的方向键定位到'''opi5plus-lcd''',再使用'''空格'''选中</p><p>[[File:ffmedia/image417.png|349x57px]]</p></li><li><p>然后选择'''&lt;Save&gt;'''保存</p><p>[[File:ffmedia/image418.png|263x123px]]</p></li><li><p>然后选择'''&lt;Back&gt;'''</p><p>[[File:ffmedia/image419.png|264x116px]]</p></li><li><p>然后选择'''&lt;Reboot&gt;'''重启系统使配置生效</p><p>[[File:ff:ffmedia/image420.png|226x105px]]</p></li></ol></li><li><p>启动后可以看到lcd屏幕的显示如下所示(默认为竖屏):</p></li></ol>
inet '''192.168.1.245'''[[File:media/24 brd 192.168.1image421.255 scope global dynamic noprefixroute enP3p49s0png|169x244px]]
valid_lft 42537sec preferred_lft 42537sec=== 服务器版镜像旋转显示方向的方法 ===
inet6 fe80<ol style="list-style-type:decimal;"><li><p>在'''/boot/orangepiEnv.txt'''中加入'''extraargs=fbcon=rotate:要旋转的方向'''这句配置就可以设置服务器版本的linux系统显示的方向,其中'''fbcon=rotate:9005'''后面的数字可以设置为:</p><ol style="list-style-type:95aclower-alpha;"><li><p>0:b9c0正常屏(默认为竖屏)</p></li><li><p>1:2beb顺时钟转90度</p></li><li><p>2: 翻转180度</p></li><li><p>3: 顺时钟转270度</p><p>orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt'''</p><p>overlays=opi5plus-lcd</p><p>'''extraargs=cma=128M fbcon=rotate:3'''</p><p>'''注意,/boot/orangepiEnv.txt中如果默认有extraargs=cma=128M这行配置,fbcon=rotate:3这个配置添加到extraargs=cma=128M的后面即可(需要用空格隔开)。'''</p></li></ol></li><li><p>然后'''重启'''linux系统就能看到lcd屏幕显示的方向已经旋转了</p></li></64 scope link noprefixrouteol>
valid_lft forever preferred_lft forever=== 桌面版镜像旋转显示和触摸方向的方法 ===
3<ol style="list-style-type: decimal;"><li><p>首先在linux系统中打开'''Display'''设置</p><p>[[File:media/image422.png|339x234px]]</p></li><li><p>然后在'''enP4p65s0Rotation'''中选择想要旋转的方向</p><ol style="list-style-type: &ltlower-alpha;BROADCAST,MULTICAST,UP,LOWER_UP&gt"><li><p>'''None''': 不旋转</p></li><li><p>'''Left''': 向左旋转90度</p></li><li><p>'''Inverted''': 上下翻转,相当于旋转180度</p></li><li><p>'''Right''': 向右旋转90度</p><p>[[File:media/image423.png|330x208px]]</p></li></ol></li><li><p>然后点击'''Apply'''</p><p>[[File:media/image424.png|330x207px]]</p></li><li><p>然后选择'''Keep this configuration'''</p><p>[[File:media/image425.png|458x258px]]</p></li><li><p>此时屏幕显示就已旋转完成,然后关闭掉'''Display'''程序即可</p></li><li><p>上面的步骤只会选择显示方向,并不会旋转触摸的方向,使用'''set_lcd_rotate.sh'''脚本可以旋转下触摸的方向,此脚本设置完后会自动重启,然后就可以测试触摸是否已经能正常使用了</p><ol style="list-style-type: lower-alpha; mtu 1500 qdisc mq state UP group default qlen 1000"><li><p>'''None''': 不旋转</p><p>orangepi@orangepi:~$ '''set_lcd_rotate.sh none'''</p></li><li><p>'''Left''': 向左旋转90度</p><p>orangepi@orangepi:~$ '''set_lcd_rotate.sh left'''</p></li><li><p>'''Inverted''': 上下翻转,相当于旋转180度</p><p>orangepi@orangepi:~$ '''set_lcd_rotate.sh inverted'''</p></li><li><p>'''Right''': 向右旋转90度</p><p>orangepi@orangepi:~$ '''set_lcd_rotate.sh right'''</p><p>'''set_lcd_rotate.sh脚本主要做四件事:'''</p></li></ol></li></ol>
link<!-- --><ol style="list-style-type: decimal;"><li><p>'''旋转framebuffer显示的方向'''</p></li><li><p>'''旋转触摸的方向'''</ether 00:e0:4c:68:00:27 brd ff:ff:ff:ff:ff:ffp></li><li><p>'''关闭开机logo'''</p></li><li><p>'''重启系统'''</p><p>'''旋转触摸的方向是通过在/usr/share/X11/xorg.conf.d/40-libinput.conf中加入Option &quot;TransformationMatrix&quot; &quot;x x x x x x x x x&quot;这行配置来实现的。其中&quot;x x x x x x x x x&quot;不同的方向配置不同。'''</p></li></ol>
inet <!-- --><ol start="7" style="list-style-type: decimal;"><li><p>触摸旋转参考资料</p><p>[https://wiki.ubuntu.com/X/InputCoordinateTransformation '''192https://wiki.168ubuntu.1.247com/X/InputCoordinateTransformation''']</p></li></24 brd 192.168.1.255 scope global dynamic noprefixroute enP4p65s0ol>
valid_lft 43179sec preferred_lft 43179sec== 开关机logo使用说明 ==
inet6 fe80<ol style="list-style-type:decimal;"><li><p>开关机logo默认只在桌面版的系统中才会显示</p></li><li><p>在'''/boot/orangepiEnv.txt'''中设置'''bootlogo'''变量为'''false'''可以关闭开关机logo</p><p>orangepi@orangepi:62b5~$ '''sudo vim /boot/orangepiEnv.txt'''</p><p>verbosity=1</p><p>'''bootlogo=false'''</p></li><li><p>在'''/boot/orangepiEnv.txt'''中设置'''bootlogo'''变量为'''true'''可以开启开关机logo</p><p>orangepi@orangepi:dc5e~$ '''sudo vim /boot/orangepiEnv.txt'''</p><p>verbosity=1</p><p>'''bootlogo=true'''</p></li><li><p>开机logo图片在linux系统中的位置为</p><p>'''/usr/share/plymouth/themes/orangepi/watermark.png'''</p></li><li><p>替换开机logo图片后需要运行下命令才能生效</p><p>orangepi@orangepi:728e:39a3~$ '''sudo update-initramfs -u'''</p></li></64 scope link noprefixrouteol>
valid_lft forever preferred_lft forever<span id="ov13850和ov13855-mipi摄像头的测试方法"></span>== OV13850和OV13855 MIPI摄像头的测试方法 ==
'''当使用ifconfig查看IP地址时,如果提示下面的信息,是因为没有加sudo导致的,正确的命令是:sudo ifconfig'''目前开发板支持两款MIPI摄像头,OV13850和OV13855,具体的图片如下所示:
orangepi@orangepi<ol style="list-style-type:~$ lower-alpha;"><li><p>1300万MIPI接口的OV13850摄像头</p><p>[[File:media/image22.png|268x151px]]</p></li><li><p>1300万MIPI接口的OV13855摄像头</p><p>[[File:media/image23.png|253x150px]]</p><p>OV13850和OV13855摄像头使用的转接板和FPC排线是一样的,只是两款摄像头接在转接板上的位置不一样。FPC排线如下图所示,请注意FPC排线是有方向的,标注'''TO MB'''那端需要插到开发板的摄像头接口中,标注'''ifconfigTO CAMERA'''那端需要插到摄像头转接板上。</p></li></ol>
Command ‘ifconfig’ is available in the following places[[File:media/image426.png|373x78px]]
* /sbin/ifconfig摄像头转接板上总共有3个摄像头的接口,同一时间只能接一个使用,如下图所示,其中:
* <ol style="list-style-type: lower-alpha;"><li><p>'''1号接口接OV13850摄像头'''</usrp></sbinli><li><p>'''2号接口接OV13855摄像头'''</ifconfigp></li><li><p>3号接口未使用,忽略即可</p></li></ol>
The command could not be located because ‘/sbin[[File:media/usr/sbin’ is not included in the PATH environment variableimage427.png|288x172px]]
This is most likely caused by the lack of administrative privileges associated with your user account.Orange Pi 5 Plus开发板上总共有1个摄像头接口,位置如下所示:
ifconfig[[File: command not foundmedia/image428.png|408x95px]]
'''开发板启动后查看IP地址有三种方法:'''摄像头插在开发板的摄像头接口的方法如下所示:
# '''接HDMI显示器,然后登录系统使用ip addr show命令查看IP地址'''# '''在调试串口终端输入ip addr show命令来查看IP地址'''# '''如果没有调试串口,也没有HDMI显示器,还可以通过路由器的管理界面来查看开发板网口的IP地址。不过这种方法经常有人会无法正常看到开发板的IP地址。如果看不到,调试方法如下所示:'''# '''首先检查Linux系统是否已经正常启动,如果开发板的三色灯在闪烁了,一般是正常启动了,如果只亮红灯,说明系统都没正常启动;'''# '''检查网线有没有插紧,或者换根网线试下;'''# '''换个路由器试下(路由器的问题有遇到过很多,比如路由器无法正常分配IP地址,或者已正常分配IP地址但在路由器中看不到);'''# '''如果没有路由器可换就只能连接HDMI显示器或者使用调试串口来查看IP地址。'''[[File:media/image429.png|332x154px]]
'''另外需要注意的是开发板DHCP自动分配IP地址是不需要任何设置的。'''连接好摄像头到开发板上后,我们可以使用下面的方法来测试下摄像头:
# 测试网络连通性的命令如下,<ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''pingorangepi-config'''命令可以通过,普通用户记得加'''Ctrl+Csudo'''快捷键来中断运行权限</p><p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li><li><p>然后选择'''System'''</p><p>[[File:media/image223.png|399x184px]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:media/image224.png|403x175px]]</p></li><li><p>然后使用使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的摄像头,其中'''opi5plus-ov13850'''表示使用ov13850摄像头,'''opi5plus-ov13855'''表示使用ov13855摄像头。</p><p>[[File:media/image430.png|400x37px]]</p></li><li><p>然后选择'''&lt;Save&gt;'''保存</p><p>[[File:media/image431.png|338x109px]]</p></li><li><p>然后选择'''&lt;Back&gt;'''</p><p>[[File:media/image432.png|338x86px]]</p></li><li><p>然后选择'''&lt;Reboot&gt;'''重启系统使配置生效</p><p>[[File:media/image228.png|316x139px]]</p></li><li><p>然后在桌面系统中打开一个终端,再运行下面的脚本</p><p>orangepi@orangepi:~$ '''test_camera.sh'''</p></li><li><p>然后就能看到摄像头的预览画面了</p><div class="figure">
orangepi@orangepi[[File:~$ '''ping wwwmedia/image433.baidu.com -I enP4p65s0 #其中一个网口的测试命令'''png|576x324px|1]]
orangepi@orangepi:~$ '''ping www.baidu.com -I enP3p49s0 #另一个网口的测试命令'''</div></li></ol>
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开发板上自带一个红外接收器,连接到'''PWM15_IR_M1'''引脚上。查看红外接收到的键值的方法如下所示:
64 bytes from 14<ol style="list-style-type: decimal;"><li><p>首先在命令行中运行'''evtest'''命令,然后选择'''febf0030.pwm'''对应的设备序号</p><p>orangepi@orangepi:~$ '''evtest'''</p><p>No device specified, trying to scan all of /dev/input/event*</p><p>Not running as root, no devices may be available.</p><p>Available devices:</p><p>'''/dev/input/event0: febf0030.pwm'''</p><p>/dev/input/event1: rk805 pwrkey</p><p>/dev/input/event2: rockchip,dp0 rockchip,dp0</p><p>/dev/input/event3: rockchip-hdmi0 rockchip-hdmi0</p><p>/dev/input/event4: rockchip-hdmi1 rockchip-hdmi1</p><p>/dev/input/event5: headset-keys</p><p>/dev/input/event6: rockchip,es8388 Headset</p><p>/dev/input/event7: adc-keys</p><p>/dev/input/event8: SONiX USB Keyboard</p><p>/dev/input/event9: SONiX USB Keyboard Consumer Control</p><p>/dev/input/event10: SONiX USB Keyboard System Control</p><p>/dev/input/event11: PixArt USB Optical Mouse</p><p>Select the device event number [0-11]: '''0 #这里选择febf0030.119pwm对应的序号'''</p><p>Input driver version is 1.1040.1</p><p>Input device ID: bus 0x19 vendor 0x524b product 0x6 version 0x100</p><p>Input device name: &quot;febf0030.254 pwm&quot;</p><p>Supported events:</p><p>Event type 0 (EV_SYN)</p><p>Event type 1 (EV_KEY)</p><p>Event code 2 (KEY_1)</p><p>Event code 3 (KEY_2)</p><p>Event code 4 (KEY_3)</p><p>Event code 5 (KEY_4)</p><p>Event code 6 (14KEY_5)</p><p>Event code 7 (KEY_6)</p><p>Event code 8 (KEY_7)</p><p>Event code 9 (KEY_8)</p><p>Event code 10 (KEY_9)</p><p>Event code 11 (KEY_0)</p><p>Event code 28 (KEY_ENTER)</p><p>Event code 102 (KEY_HOME)</p><p>Event code 103 (KEY_UP)</p><p>Event code 105 (KEY_LEFT)</p><p>Event code 106 (KEY_RIGHT)</p><p>Event code 108 (KEY_DOWN)</p><p>Event code 113 (KEY_MUTE)</p><p>Event code 114 (KEY_VOLUMEDOWN)</p><p>Event code 115 (KEY_VOLUMEUP)</p><p>Event code 116 (KEY_POWER)</p><p>Event code 139 (KEY_MENU)</p><p>Event code 143 (KEY_WAKEUP)</p><p>Event code 158 (KEY_BACK)</p><p>Event code 217 (KEY_SEARCH)</p><p>Event code 388 (KEY_TEXT)</p><p>Properties:</p><p>Testing .119.104.254(interrupt to exit): icmp_seq=6 ttl</p></li><li><p>然后需要准备一个下图所示的红外遥控器</p><p>'''注意:香橙派提供的Linux系统默认只支持香橙派提供的遥控器,电视或者空调的遥控器是不能用的。'''</p><div class=56 time=5.69 ms"figure">
^C[[File:media/image434.jpeg|199x183px|IMG_256]]
</div></li><li><p>然后对着开发板上的红外接收器按下遥控器上的按键,红外接收器在开发板上的位置如下图所示:</p><p>[[File:media/image435.png|346x92px]]</p></li><li><p>然后就能看到'''evtest'''会打印接收到的键值了</p><p>......</p><p>Event code 217 (KEY_SEARCH)</p><p>Event code 388 (KEY_TEXT)</p><p>Properties:</p><p>Testing ... (interrupt to exit)</p><p>Event: time 1684152321.834907, type 1 (EV_KEY), code 2 (KEY_1), value 1</p><p>Event: time 1684152321.834907, -------------- SYN_REPORT ------------</p><p>Event: time 1684152322.017512, type 1 (EV_KEY), code 2 (KEY_1), value 0</p><p>Event: time 1684152324.630961, -------------- SYN_REPORT ------------</p><p>Event: time 1684152326.482359, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 1</p><p>Event: time 1684152326.482359, -------------- SYN_REPORT ----------– www--</p><p>Event: time 1684152326.a667633, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 0</p><p>Event: time 1684152328.427632, -------------- SYN_REPORT ------------</p><p>Event: time 1684152330.shifen761986, type 1 (EV_KEY), code 116 (KEY_POWER), value 1</p><p>Event: time 1684152330.com ping statistics —761986, -------------- SYN_REPORT ------------</p><p>Event: time 1684152330.944243, type 1 (EV_KEY), code 116 (KEY_POWER), value 0</p><p>Event: time 1684152330.944243, -------------- SYN_REPORT ------------</p></li></ol>
6 packets transmitted, 6 received, 0% packet loss, time 5008ms<span id="rtc的使用方法"></span>== RTC的使用方法 ==
rtt min<ol style="list-style-type: decimal;"><li><p>开发板上预留了一个RTC电池的接口,位置如下所示:</p><p>[[File:media/image27.png|344x126px]]</p></li><li><p>需要购买的RTC电池如下所示,接口为2pin,1.25mm间距</p><p>[[File:media/image26.png|152x81px]]</avgp></maxli><li><p>开发板上使用的RTC芯片为HYM8563TS,此芯片的特点有:</mdev p><ol style= "list-style-type: lower-alpha;"><li><p>宽工作电压范围:1.0~5.6715v</5p></li><li><p>低休眠电流:典型值为0.25μA(VDD =3.8590V, TA =25°C)</p></li></ol></li><li><p>在开发板上接好RTC电池后,使用下面的方法可以测试下RTC是否已正常工作:</p><ol style="list-style-type: lower-alpha;"><li><p>首先开机进入系统,然后记录下系统的当前时间</p></li><li><p>然后使用poweroff命令正常关闭系统</p></li><li><p>然后拔掉电源,确保开发板没有接入网线和无线WIFI,再等待几分钟</p></li><li><p>然后再次开机启动系统,如果进入系统后看到时间向前走了几分钟,就说明RTC模块和电池正常工作了</p></li></ol></li><li><p>通过Linux系统的procfs接口查看RTC信息的命令为</p><p>orangepi@orangepi:~$ '''cat /proc/driver/6.264rtc'''</p><p>rtc_time : 06:07:40</p><p>rtc_date : 2023-05-22</p><p>alrm_time : 03:36:00</p><p>alrm_date : 2023-05-23</p><p>alarm_IRQ : no</p><p>alrm_pending : no</p><p>update IRQ enabled : no</p><p>periodic IRQ enabled : no</p><p>periodic IRQ frequency : 1</p><p>max user IRQ frequency : 64</p><p>24hr : yes</p></li></0.202 msol>
<span id="wifi连接测试pwm散热风扇的使用方法"></span>=== WIFI连接测试 =PWM散热风扇的使用方法 ==
<ol style="list-style-type: decimal;"><li><p>开发板上有用于接散热风扇的接口,接口规格为'''首先请注意Orange Pi 2pin 1.25mm间距''','''5V电压驱动''',风扇接口的位置如下图所示:</p><p>[[File:media/image18.png|440x169px]]</p></li><li><p>开发板上的风扇可以通过PWM来调节转速和开关,使用的PWM引脚为'''PWM3_IR_M1'''</p></li><li><p>Linux系统默认使用[https://github.com/orangepi-xunlong/linux-orangepi/blob/orange-pi-5.10-rk3588/drivers/hwmon/pwm-fan.c '''pwm-fan''']驱动来控制风扇,所使用的dts配置如下所示:</p><p>'''orange-pi-5.10-rk3588/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts'''</p><p>fan: pwm-fan {</p><p>compatible = &quot;pwm-fan&quot;;</p><p>#cooling-cells = &lt;2&gt;;</p><p>pwms = &lt;&amp;pwm3 0 50000 0&gt;;</p><p>cooling-levels = &lt;0 50 100 150 200 255&gt;;</p><p>rockchip,temp-trips = &lt;</p><p>50000 1</p><p>55000 2</p><p>60000 3</p><p>65000 4</p><p>70000 5 Plus开发板上是没有WIFI模块的,需要外接PCIe网卡或者USB网卡才能使用WIFI功能。</p><p>&gt;;</p><p>status = &quot;okay&quot;;</p><p>};</p><p>其中:</p><ol style="list-style-type: lower-alpha;"><li><p>'''pwms = &lt;&amp;pwm3 0 50000 0&gt;''':表示控制风扇的pwm为pwm3。</p></li><li><p>'''cooling-levels = &lt;0 50 100 150 200 &gt; 255&gt;''':用来配置转速(pwm的占空比)的档位,档位数量和大小可以自己定义,这里配置6个档位,转速的范围是0-255。</p></li><li><p>'''rockchip,temp-trips''':用来配置CPU温度和风扇转速档位的对应关系,可以根据实际需要进行调整,上面的配置50度对应档位1,70度对对应档位5。</p><p>'''开机后如果发现风扇没有转是正常的,因为开机后CPU的温度一般都低于50度,只有当CPU的温度达到50度后,风扇才会开始转。'''</p><p>'''使用下面的命令可以让所有CPU都跑满,然后就能看到风扇会开始工作了:'''</p><p>orangepi@orangepi:~$ '''for i in $(seq 0 $(( $(nproc --all) - 1)) ); do (taskset -c $i yes &gt; /dev/null &amp;); done'''</p></li></ol></li></ol>
'''外接PCIe网卡的使用说明请参考'''[[#_PCIe%20WIFI6+蓝牙模块的使用方法|'''PCIe WIFI6+蓝牙模块的使用方法''']]'''一小节。'''== 关机和重启开发板的方法 ==
<ol style="list-style-type: decimal;"><li><p>在Linux系统运行的过程中,如果直接拔掉Type-C电源断电,可能会导致文件系统丢失某些数据或者损坏,所以在断电前请先使用'''外接USB网卡的使用说明请参考poweroff'''[[#_USB无线网卡测试|命令关闭开发板的Linux系统,然后再拔掉电源。</p><p>orangepi@orangepi:~$ '''USB无线网卡测试sudo poweroff''']]</p></li><li><p>另外开发板配有开关机按键,还可以'''一小节。短按'''开发板上的开关机按键来关机。</p><p>[[File:media/image436.png|444x98px]]</p></li></ol>
'''请不要通过修改/etc/network/interfaces配置文件的方式来连接WIFI,通过这种方式连接WIFI网络使用会有问题。注意,Linux桌面版系统按下开关机按键后会弹出下图所示的确认框,需要点击Shut Down选项后才会关机。''' <span id="服务器版镜像通过命令连接wifi"></span>==== 服务器版镜像通过命令连接WIFI ====
'''当开发板没有连接以太网,没有连接HDMI显示器,只连接了串口时,推荐使用此小节演示的命令来连接WIFI网络。因为nmtui在某些串口软件(如minicom)中只能显示字符,无法正常显示图形界面。当然,如果开发板连接了以太网或者HDMI显示屏,也可以使用此小节演示的命令来连接WIFI网络的。'''[[File:media/image437.png|256x240px]]
<ol start="3" style="list-style-type: decimal;"><li><p>关机后短按开发板上的开关机按键即可开机。</p><p>[[File:media/image436.png|444x98px]]</p></li><li><p>重启linux系统的命令为</p><p>orangepi@orangepi:~$ '''下面演示的命令都是默认WIFI的网络设备节点名为wlan0,但不同的WIFI模块节点名会有不同,请注意替换为实际看到的节点名,不要照抄。sudo''''''reboot'''</p></li></ol>
# 先登录linux系统,有下面三种方式<span id="ubuntu22.04-gnome-wayland桌面系统使用说明"></span>## 如果开发板连接了网线,可以通过[[#_SSH远程登录开发板|'''ssh远程登录linux系统''']]## 如果开发板连接好了调试串口,可以使用串口终端登录linux系统## 如果连接了开发板到HDMI显示器,可以通过HDMI显示的终端登录到linux系统# 首先使用'''nmcli dev wifi'''命令扫描周围的WIFI热点= Ubuntu22.04 Gnome Wayland桌面系统使用说明 =
orangepi@orangepi:~$ '''nmcli dev wifiubuntu22.04 gnome镜像默认预装panfork mesa用户空间库,预装的kodi播放器和chromium浏览器支持硬解播放视频。'''
<div class="figure">'''需要注意的是此镜像需要在wayland下使用,如果需要使用x11,请选择xfce类型的镜像。'''
[[File:media<span id="ubuntu22.04-gnome桌面系统适配情况"></6fffc39743b74d468801e729811a5c4dspan>== Ubuntu22.png|选区_011]]04 Gnome桌面系统适配情况 ==
</div>{| class="wikitable"|-| style="text-align: left;"| '''功能'''| style="text-align: left;"| '''Ubuntu22.04 Gnome Wayland'''|-| style="text-align: left;"| '''HDMI TX1视频'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX1音频'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX2视频'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX2音频'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI RX视频'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI RX音频'''# 然后使用| style="text-align: left;"| '''nmcliOK''' 命令连接扫描到的WIFI热点,其中:## |-| style="text-align: left;"| '''wifi_nameUSB2.0X2'''需要换成想连接的WIFI热点的名字## | style="text-align: left;"| '''wifi_passwdOK'''需要换成想连接的WIFI热点的密码|-orangepi@orangepi| style="text-align:~$ left;"| '''nmcli dev wifi connect wifi_name password wifi_passwdUSB3.0X2'''| style="text-align: left;"| '''OK'''Device ‘wlan0’ successfully activated with ‘cf937f88|-ca1e| style="text-4411align: left;"| '''2.5G PCIe网口X2'''| style="text-align: left;"| '''OK'''|-bb50| style="text-61f402eef293’align: left;"| '''2.5G PCIe网口灯'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''调试串口'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''RTC芯片'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''FAN风扇接口'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''eMMC扩展接口'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AP6275P-WIFI'''# 通过| style="text-align: left;"| '''ip addr show wlan0OK'''命令可以查看wifi的IP地址|-orangepi@orangepi| style="text-align:~$ left;"| '''ip addr show wlan0AP6275P-BT'''| style="text-align: left;"| '''OK'''|-11| style="text-align: wlan0left;"| '''AX200-WIFI'''| style="text-align: &ltleft;BROADCAST,MULTICAST,UP,LOWER_UP&gt"| '''OK'''|-| style="text-align: left; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000"| '''AX200-BT'''| style="text-align: left;"| '''OK'''|-link/ether 23| style="text-align:8cleft;"| '''AX210-WIFI'''| style="text-align:d6left;"| '''OK'''|-| style="text-align:aeleft;"| '''AX210-BT'''| style="text-align:76left;"| '''OK'''|-| style="text-align:bb brd ffleft;"| '''RTL8852BE-WIFI'''| style="text-align:ffleft;"| '''OK'''|-| style="text-align:ffleft;"| '''RTL8852BE-BT'''| style="text-align:ffleft;"| '''OK'''|-| style="text-align:ffleft;"| '''MaskROM按键'''| style="text-align:ffleft;"| '''OK'''|-inet | style="text-align: left;"| '''192Type-C转USB3.168.1.110'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C ADB功能'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C DP视频'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C DP音频'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''开关机按键'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''红外功能'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''三色LED灯'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''板载MIC'''| style="text-align: left;"| '''OK'''/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0|-valid_lft 259192sec preferred_lft 259192sec| style="text-align: left;"| '''耳机播放'''| style="text-align: left;"| '''OK'''inet6 240e|-| style="text-align:3b7left;"| '''耳机录音'''| style="text-align:3240left;"| '''OK'''|-| style="text-align:c3a0left;"| '''SPK喇叭'''| style="text-align:c401left;"| '''OK'''|-| style="text-align:a445left;"| '''40PIN GPIO'''| style="text-align:5002left;"| '''OK'''|-| style="text-align:ccdd/64 scope global dynamic noprefixrouteleft;"| '''40PIN I2C'''| style="text-align: left;"| '''OK'''valid_lft 259192sec preferred_lft 172792sec|-| style="text-align: left;"| '''40PIN SPI'''inet6 fe80| style="text-align:left;"| '''OK'''|-| style="text-align:42f1left;"| '''40PIN UART'''| style="text-align:6019left;"| '''OK'''|-| style="text-align:a80eleft;"| '''40PIN CAN'''| style="text-align:4c31/64 scope link noprefixrouteleft;"| '''OK'''|-valid_lft forever preferred_lft forever| style="text-align: left;"| '''40PIN PWM'''| style="text-align: left;"| '''OK'''|-# 使用| style="text-align: left;"| '''pingTF卡启动'''命令可以测试wifi网络的连通性,| style="text-align: left;"| '''pingOK'''命令可以通过|-| style="text-align: left;"| '''CtrlSPI+CNVME启动'''| style="text-align: left;"| '''OK'''快捷键来中断运行|-orangepi@orangepi| style="text-align:~$ left;"| '''ping www.orangepi.org OV13850摄像头'''| style="text-I wlan0align: left;"| '''OK'''|-| style="text-align: left;"| '''OV13855摄像头'''PING www.orangepi.org (182.92.236.130) from 192.168.1.49 wlan0| style="text-align: 56(84) bytes of data.left;"| '''OK'''|-64 bytes from 182.92.236.130 (182.92.236.130)| style="text-align: icmp_seqleft;"| '''GPU'''| style=1 ttl"text-align: left;"| '''OK'''|-| style=52 time"text-align: left;"| '''VPU'''| style=43.5 ms"text-align: left;"| '''OK'''|-64 bytes from 182.92.236.130 (182.92.236.130)| style="text-align: icmp_seqleft;"| '''NPU'''| style=2 ttl"text-align: left;"| '''OK'''|-| style=52 time"text-align: left;"| '''REBOOT命令重启'''| style=41.3 ms"text-align: left;"| '''OK'''|-64 bytes from 182.92.236.130 (182.92.236.130)| style="text-align: icmp_seqleft;"| '''Poweroff命令关机'''| style=3 ttl"text-align: left;"| '''OK'''|-| style=52 time"text-align: left;"| '''MIPI LCD显示'''| style=44.9 ms"text-align: left;"| '''OK'''|-64 bytes from 182.92.236.130 (182.92.236.130)| style="text-align: icmp_seqleft;"| '''MIPI LCD触摸'''| style=4 ttl"text-align: left;"| '''OK'''|-| style=52 time"text-align: left;"| '''看门狗测试'''| style=45.6 ms"text-align: left;"| '''OK'''|-64 bytes from 182.92.236.130 (182.92.236.130)| style="text-align: icmp_seqleft;"| '''Chromium硬解视频'''| style=5 ttl"text-align: left;"| '''OK'''|-| style=52 time"text-align: left;"| '''MPV硬解视频'''| style=48.8 ms"text-align: left;"| '''OK'''|-^C| style="text-align: left;"| '''Kodi硬解视频'''| style="text-align: left;"| '''OK'''-– www.orangepi.org ping statistics —|}
5 packets transmitted, 5 received, 0% packet loss, time 4006ms== 确认系统当前使用的窗口系统为wayland的方法 ==
rtt min<ol style="list-style-type: decimal;"><li><p>系统默认使用的窗口系统为wayland,确认方法如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先打开设置</p><p>[[File:media/avgimage438.png|243x181px]]</maxp></mdev = 41li><li><p>然后选择'''About''',如果'''Windowing &gt; System'''一栏显示的'''wayland'''说明设置正确</p><p>[[File:media/image439.321png|362x303px]]</p></li></ol></li><li><p>当'''Log Out'''出系统后会进入下面的登录界面</44p><p>[[File:media/image440.864png|258x108px]]</p></li><li><p>再次登录系统前请先点击下图所示的位置</48p><p>[[File:media/image441.834png|259x108px]]</2p></li><li><p>然后选择'''Ubuntu on Wayland''',再输入密码登录系统</p><p>[[File:media/image442.484 mspng|218x312px]]</p></li></ol>
<span id="服务器版镜像通过图形化方式连接wifi"></span>==== 服务器版镜像通过图形化方式连接WIFI ==切换默认音频设备的方法 ==
# 先登录linux系统,有下面三种方式<ol style="list-style-type: decimal;">## 如果开发板连接了网线,可以通过<li><p>首先打开设置</p><p>[[#_SSH远程登录开发板File:media/image438.png|221x164px]]</p></li><li><p>然后选择'''ssh远程登录linux系统Sound''',然后在'''Output Device'''中选择想要使用的音频设备即可</p><p>[[File:media/image443.png|375x314px]]## 如果开发板连接好了调试串口,可以使用串口终端登录linux系统(串口软件请使用MobaXterm,使用minicom无法显示图形界面)## 如果连接了开发板到HDMI显示器,可以通过HDMI显示的终端登录到linux系统# 然后在命令行中输入nmtui命令打开wifi连接的界面</p></li></ol>
orangepi@orangepi:~$ '''nmtui'''<span id="gpu的测试方法"></span>== GPU的测试方法 ==
# 输入nmtui命令打开的界面如下所示<ol style="list-style-type: decimal;"><li><p>在桌面中打开一个终端,然后输入 '''glmark2'''命令,如果能看到'''GL_VERDOR'''后面显示为'''Panfrost'''说明有使用到GPU</p><p>orangepi@orangepi:~$ '''glmark2'''</p><p>[[File:media/image444.png|381x258px]]</p></li><li><p>glmark2跑分测试一般为1000多分</p><p>[[File:media/image445.png|331x222px]]</p></li><li><p>运行'''gpu_load.sh'''脚本可以查看GPU当前的负载情况</p><p>orangepi@orangepi:~$ '''gpu_load.sh'''</p><p>[[File:media/image446.png|529x281px]]</p></li></ol>
[[File:media<span id="chromium浏览器硬解播放视频的测试方法"></be42c1722b75038edd0ec1af2c86346b.png]]span>== Chromium浏览器硬解播放视频的测试方法 ==
# 选择<ol style="list-style-type: decimal;"><li><p>首先打开Chromium浏览器</p><p>[[File:media/image447.png|576x324px]]</p></li><li><p>然后在Chromium浏览器中输入'''Activate a connectchrome://gpu'''后回车可以查看下GPU和视频解码的支持情况</p><p>[[File:media/image448.png|337x197px]]</p></li><li><p>然后可以打开视频网站播放一个视频文件,或者在浏览器中输入下面的路径名播放系统自带的一个测试视频文件</p><p>'''/usr/local/test.mp4'''</p></li><li><p>播放视频的时候可以在终端中运行下'''vpu_debug.sh'''脚本,如果有下图右下角的打印输出,说明有使用硬件来解码视频</p><p>orangepi@orangepi:~$ '''vpu_debug.sh'''</p><div class="figure">
[[File:media/d489ff7fcdd00af10e64ce6d291a9c9fimage449.png|576x324px|Screenshot from 2023-05-22 15-01-46]]
# 然后就能看到所有搜索到的WIFI热点</div></li></ol>
[[File:media<span id="kodi硬解播放视频的测试方法"></8056e216d61a504c94e3fd8ee9f34491.png]]span>== Kodi硬解播放视频的测试方法 ==
# 选择想要连接的WIFI热点后再使用Tab键将光标定位到'''Activate注意,在Wayland桌面中直接打开Kodi显示会有有问题,请严格按照下面的方法打开Kodi。'''后回车
<ol style="list-style-type: decimal;"><li><p>首先登出系统</p><p>[[File:media/image450.png|231x153px]] [[File:media/image451.png|266x118px]]</p></li><li><p>当登出系统后会进入下面的登录界面</p><p>[[File:media/image440.png|258x108px]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:media/85aa0329c4c2fcbcbbe460364dcf79b8image441.png|259x108px]]</p></li><li><p>然后选择'''Kodi Wayland''',再输入密码登录系统</p><p>[[File:media/image452.png|262x273px]]</p></li><li><p>Kodi打开后的界面显示如下所示</p><div class="figure">
# 然后会弹出输入密码的对话框,在'''Password'''内输入对应的密码然后回车就会开始连接WIFI[[File:media/image453.png|461x259px|Screenshot from 2023-03-03 14-31-20]]
</div></li><li><p>然后点击设置</p><p>[[File:media/image454.png|343x149px]]</p></li><li><p>然后选择'''Player'''</p><p>[[File:media/image455.png|474x268px]]</p></li><li><p>然后选择'''Videos''',然后点击左下角的'''Standard'''</p><p>[[File:media/image456.png|477x268px]]</p></li><li><p>点击两次后会切换成'''Expert'''模式,具体显示如下图所示</p><p>[[File:media/image457.png|441x249px]]</p></li><li><p>然后在'''Processing'''设置中打开'''Allow using DRM PRIME decoder'''</p><p>[[File:media/image458.png|442x250px]]</p></li><li><p>然后我们来导入一个系统自带的测试视频测试下,你也可以上传想要播放的视频到系统中,然后导入播放</p><ol style="list-style-type: lower-alpha;"><li><p>首先进入主界面,然后选择'''Movies'''</p><p>[[File:media/16eb47e7d1df183b0f3e5fa869ed37b5image459.png|424x239px]]</p></li><li><p>然后选择'''Add videos...'''</p><p>[[File:media/image460.png|429x242px]]</p></li><li><p>然后选择'''Browse'''</p><p>[[File:media/image461.png|428x270px]]</p></li><li><p>然后选择'''Root filesystem'''</p><p>[[File:media/image462.png|414x169px]]</p></li><li><p>然后选择'''usr'''</p><p>[[File:media/image463.png|416x273px]]</p></li><li><p>然后选择'''local'''</p><p>[[File:media/image464.png|417x274px]]</p></li><li><p>然后选择'''OK'''</p><p>[[File:media/image465.png|425x278px]]</p></li><li><p>然后选择'''OK'''</p><p>[[File:media/image466.png|431x273px]]</p></li><li><p>然后选择OK</p><p>[[File:media/image467.png|454x260px]]</p></li><li><p>然后进入local文件夹中</p><p>[[File:media/image468.png|456x258px]]</p></li><li><p>然后就可以播放'''test.mp4'''测试视频了</p><p>[[File:media/image469.png|462x262px]]</p></li></ol></li><li><p>播放视频的时候可以在命令行中(通过ssh或者串口)运行下'''vpu_debug.sh'''脚本,如果有下面的打印输出,说明有使用硬件来解码视频</p><p>orangepi@orangepi:~$ '''vpu_debug.sh'''</p><p>[ 1830.938378] rk_vcodec: fdc48100.rkvdec-core:1 session 3573:2 time: 2728 us</p><p>[ 1830.938461] rk_vcodec: fdc38100.rkvdec-core:0 session 3573:2 time: 2617 us</p><p>[ 1830.941179] rk_vcodec: fdc48100.rkvdec-core:1 session 3573:2 time: 2661 us</p><p>[ 1830.941777] rk_vcodec: fdc38100.rkvdec-core:0 session 3573:2 time: 2708 us</p><p>[ 1830.944727] rk_vcodec: fdc48100.rkvdec-core:1 session 3573:2 time: 3444 us</p><p>[ 1830.945211] rk_vcodec: fdc38100.rkvdec-core:0 session 3573:2 time: 3331 us</p><p>[ 1830.970563] rk_vcodec: fdc48100.rkvdec-core:1 session 3573:2 time: 2547 us</p><p>[ 1831.199650] rk_vcodec: fdc38100.rkvdec-core:0 session 3573:2 time: 2703 us</p></li><li><p>播放'''test.mp4'''视频文件CPU的占用率在'''20%~30%'''左右。</p><p>[[File:media/image470.png|577x126px]]</p></li></ol>
# WIFI连接成功后会在已连接的WIFI名称前显示一个“*”<span id="ubuntu22.04-gnome安装ros-2-humble的方法"></span>== Ubuntu22.04 Gnome安装ROS 2 Humble的方法 ==
<ol style="list-style-type: decimal;"><li><p>使用'''install_ros.sh'''脚本可以安装ros2</p><p>orangepi@orangepi:~$ '''install_ros.sh ros2'''</p></li><li><p>install'''_ros.sh'''脚本安装完ros2后会自动运行下'''ros2 -h'''命令,如果能看到下面的打印,说明ros2安装完成</p><p>usage: ros2 [-h] Call `ros2 &lt;command&gt; -h` for more detailed usage. ...</p><p>ros2 is an extensible command-line tool for ROS 2.</p><p>optional arguments:</p><p>-h, --help show this help message and exit</p><p>Commands:</p><p>action Various action related sub-commands</p><p>bag Various rosbag related sub-commands</p><p>component Various component related sub-commands</p><p>daemon Various daemon related sub-commands</p><p>doctor Check ROS setup and other potential issues</p><p>interface Show information about ROS interfaces</p><p>launch Run a launch file</p><p>lifecycle Various lifecycle related sub-commands</p><p>multicast Various multicast related sub-commands</p><p>node Various node related sub-commands</p><p>param Various param related sub-commands</p><p>pkg Various package related sub-commands</p><p>run Run a package specific executable</p><p>security Various security related sub-commands</p><p>service Various service related sub-commands</p><p>topic Various topic related sub-commands</p><p>wtf Use `wtf` as alias to `doctor`</p><p>Call `ros2 &lt;command&gt; -h` for more detailed usage.</p></li><li><p>然后可以使用 '''test_ros.sh'''脚本测试下ROS 2是否安装成功,如果能看到下面的打印,说明ROS 2能正常运行</p><p>orangepi@orangepi5plus:~$ '''test_ros.sh'''</p><p>[FileINFO] [1671174101.200091527] [talker]: Publishing:media'Hello World: 1'</47dc3826be0342a12c631c645f3ea91ep><p>[INFO] [1671174101.png235661048][listener]: I heard: [Hello World: 1]</p><p>[INFO] [1671174102.199572327] [talker]: Publishing: 'Hello World: 2'</p><p>[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: 2]</p><p>[INFO] [1671174103.199580322] [talker]: Publishing: 'Hello World: 3'</p><p>[INFO] [1671174103.204019965] [listener]: I heard: [Hello World: 3]</p></li><li><p>运行下面的命令可以打开rviz2</p><p>orangepi@orangepi:~$ '''source /opt/ros/humble/setup.bash'''</p><p>orangepi@orangepi:~$ '''ros2 run rviz2 rviz2'''</p><div class="figure">
# 通过'''ip addr show wlan0'''命令可以查看wifi的IP地址[[File:media/image471.png|576x324px|Screenshot from 2023-05-22 15-17-44]]
orangepi@orangepi</div></li><li><p>参考文档</p><p>'''http://docs.ros.org/en/humble/index.html'''</p><p>[http:~$ //docs.ros.org/en/galactic/Tutorials.html '''ip addr show wlan0http://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html''']</p></li></ol>
11: wlan0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000== 设置中文环境以及安装中文输入法的方法 ==
link<ol style="list-style-type: decimal;"><li><p>首先打开设置</ether 24p><p>[[File:8cmedia/image438.png|243x181px]]</p></li><li><p>然后找到'''Region &amp; Language'''选项,然后点击'''Manage Installed Languages'''选项</p><p>[[File:d3media/image472.png|576x352px]]</p></li><li><p>然后请使用鼠标左键选中'''汉语(中国)'''并按住不动,然后往上将其拖到最开始的位置,拖完后的显示如下图所示:</p><p>[[File:aamedia/image473.png|575x428px]]</p></li><li><p>然后选择'''Apply System-Wide'''将中文设置应用到整个系统</p><p>[[File:76media/image474.png|576x427px]]</p></li><li><p>'''然后重启Linux系统使配置生效'''</p></li><li><p>重新进入系统后,在下面的界面请选择'''不要再次询问我''',然后请根据自己的喜好决定标准文件夹是否也要更新为中文</p><p>[[File:bb brd ff:ff:ff:ff:ff:ffmedia/image475.png|340x276px]]</p></li><li><p>然后可以看到桌面都显示为中文了</p><div class="figure">
inet '''192.168.1.11'''[[File:media/24 brd 192.168.1image476.255 scope global dynamic noprefixroute wlan0png|576x324px|截图 2023-03-08 09-34-07]]
valid_lft 259069sec preferred_lft 259069sec</div></li><li><p>然后打开Fcitx5配置程序</p><p>[[File:media/image477.png|576x326px]]</p></li><li><p>然后选择使用拼音输入法</p><p>[[File:media/image478.png|576x430px]]</p></li><li><p>选择后的界面如下所示,再点击确定即可</p><p>[[File:media/image479.png|504x373px]]</p></li><li><p>然后我们可以打开'''Geany'''测试下中文输入法,打开方式如下图所示</p><p>[[File:media/image480.png|575x325px]]</p></li><li><p>打开'''Geany'''后,默认还是英文输入法,我们可以通过'''Ctrl+Space'''快捷键来切换成中文输入法,然后就能输入中文了</p><p>[[File:media/image481.png|576x364px]]</p></li></ol>
inet6 240e:3b7:3240:c4a0:c401:a445:5002:ccdd<span id="orange-pi-os-arch系统使用说明"></64 scope global dynamic noprefixroutespan>= Orange Pi OS Arch系统使用说明 =
valid_lft 259071sec preferred_lft 172671sec<span id="orange-pi-os-arch系统适配情况"></span>== Orange Pi OS Arch系统适配情况 ==
inet6 fe80{| class="wikitable"|-| style="text-align:left;"| '''功能'''| '''OPi OS Arch Gnome'''| style="text-align:42f1left;"| '''OPi OS Arch Xfce(待发布)'''|-| style="text-align:6019left;"| '''HDMI TX1视频'''| '''OK'''| style="text-align:a80eleft;"| '''OK'''|-| style="text-align:4c31/64 scope link noprefixrouteleft;"| '''HDMI TX1音频'''| '''OK'''valid_lft forever preferred_lft forever| style="text-align: left;"| '''OK'''|-# 使用| style="text-align: left;"| '''pingHDMI TX2视频'''命令可以测试wifi网络的连通性,| '''pingOK'''命令可以通过| style="text-align: left;"| '''Ctrl+COK'''快捷键来中断运行|-orangepi@orangepi| style="text-align:~$ left;"| '''HDMI TX2音频''ping www.orangepi.org '| '''OK'''| style="text-I wlan0align: left;"| '''OK'''|-PING www.orangepi.org (182.92.236.130) from 192.168.1.49 wlan0| style="text-align: 56(84) bytes of data.left;"| '''HDMI RX视频'''| '''OK'''64 bytes from 182.92.236.130 (182.92.236.130)| style="text-align: icmp_seqleft;"| '''OK'''|-| style=1 ttl"text-align: left;"| '''HDMI RX音频'''| '''OK'''| style=52 time"text-align: left;"| '''OK'''|-| style=43"text-align: left;"| '''USB2.5 ms0X2'''| '''OK'''| style="text-align: left;"| '''OK'''|-64 bytes from 182| style="text-align: left;"| '''USB3.92.236.130 (182.92.236.130)0X2'''| '''OK'''| style="text-align: icmp_seqleft;"| '''OK'''|-| style="text-align: left;"| '''2 ttl=52 time=41.3 ms5G PCIe网口X2'''| '''OK'''64 bytes from 182.92.236.130 (182.92.236.130)| style="text-align: icmp_seqleft;"| '''OK'''|-| style=3 ttl=52 time=44"text-align: left;"| '''2.9 ms5G PCIe网口灯'''| '''OK'''64 bytes from 182.92.236.130 (182.92.236.130)| style="text-align: icmp_seqleft;"| '''OK'''|-| style=4 ttl"text-align: left;"| '''调试串口'''| '''OK'''| style=52 time"text-align: left;"| '''OK'''|-| style=45.6 ms"text-align: left;"| '''RTC芯片'''| '''OK'''64 bytes from 182.92.236.130 (182.92.236.130)| style="text-align: icmp_seqleft;"| '''OK'''|-| style=5 ttl"text-align: left;"| '''FAN风扇接口'''| '''OK'''| style=52 time"text-align: left;"| '''OK'''|-| style=48.8 ms"text-align: left;"| '''eMMC扩展接口'''| '''OK'''^C| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AP6275P-– www.orangepi.org ping statistics —WIFI'''| '''OK'''5 packets transmitted, 5 received, 0% packet loss, time 4006ms| style="text-align: left;"| '''OK'''|-rtt min/avg/max/mdev | style= 41.321/44.864/48.834/2.484 ms"text-align: left;"| '''AP6275P-BT'''| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AX200-WIFI'''| '''OK'''| style="text-align: left;"| '''OK'''|-| style= 桌面版镜像的测试方法 "text-align: left;"| '''AX200-BT'''| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AX210-WIFI'''| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AX210-BT'''| '''OK'''# 点击桌面右上角的网络配置图标(测试WIFI时请不要连接网线)| style="text-align: left;"| '''OK'''|-[[File| style="text-align:media/11c2c1eabe35785b8d5d923066a3ec33.png]]left;"| '''RTL8852BE-WIFI'''| '''OK'''# 在弹出的下拉框中点击| style="text-align: left;"| '''More networksOK'''可以看到所有扫描到的WIFI热点,然后选择想要连接的WIFI热点|-[[File| style="text-align:media/59eafdc9367e0ff5f48c58b4d46d1113.png]]left;"| '''RTL8852BE-BT'''| '''OK'''# 然后输入WIFI热点的密码,再点击| style="text-align: left;"| '''ConnectOK'''就会开始连接WIFI|-[[File| style="text-align:media/08964ae814fa621e4443e36dd282734f.png]]left;"| '''MaskROM按键'''| '''OK'''# 连接好WIFI后,可以打开浏览器查看是否能上网,浏览器的入口如下图所示| style="text-align: left;"| '''OK'''|-[[File| style="text-align:media/abbe2becd8842c4f373eab2358d1fdb8left;"| '''Type-C转USB3.png]]0'''| '''OK'''# 打开浏览器后如果能打开其他网页说明WIFI连接正常| style="text-align: left;"| '''OK'''|-<div class| style="figuretext-align: left;">| '''Type-C DP视频'''| '''OK'''[[File| style="text-align:media/bb072200775e332be38aa39b62a9d08c.pngleft;"| '''OK'''|5]]-| style="text-align: left;"| '''Type-C DP音频'''</div>| '''OK'''<span id| style="设置静态ip地址的方法text-align: left;"></span>| '''OK'''|-| style="text-align: left;"| '''开关机按键'''| '''OK'''| style="text-align: left;"| '''OK'''|-| style= 设置静态IP地址的方法 "text-align: left;"| '''红外功能'''| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''三色LED灯'''| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''请不要通过修改/etc/network/interfaces配置文件的方式来设置静态IP地址。板载MIC'''| '''OK'''<span id| style="使用nmtui命令来设置静态ip地址text-align: left;"></span>| '''OK'''|-| style="text-align: left;"| '''耳机播放'''| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''耳机录音'''| '''OK'''| style= 使用nmtui命令来设置静态IP地址 "text-align: left;"| '''OK'''|-| style="text-align: left;"| '''SPK喇叭'''| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN GPIO'''| '''OK'''| style="text-align: left;"| '''OK'''|-# 首先运行| style="text-align: left;"| '''nmtui40PIN I2C'''命令| '''OK'''orangepi@orangepi| style="text-align:~$ left;"| '''nmtuiOK'''|-# 然后选择| style="text-align: left;"| '''Edit a connection40PIN SPI'''并按下回车键| '''OK'''[[File| style="text-align:media/d26bc0465b36f531a18b6d8a19625fab.png]]left;"| '''OK'''|-# 然后选择需要设置静态IP地址的网络接口,比如设置| style="text-align: left;"| '''Ethernet40PIN UART'''接口的静态IP地址选择| '''Wired connection 1OK'''或者| style="text-align: left;"| '''Wired connection 2OK'''|-[[File| style="text-align:media/94aea4e82529fa735592f8d010b681d1.png]]left;"| '''40PIN CAN''' # 然后通过| '''TabOK'''键选择| style="text-align: left;"| '''EditOK'''并按下回车键|-[[File| style="text-align:media/d064997e35c46cc968fd96c7102d16de.png]]left;"| '''40PIN PWM'''| '''OK'''# 然后通过Tab键将光标移动到下图所示的| style="text-align: left;"| '''&lt;Automatic&gt;OK'''位置进行IPv4的配置|-[[File| style="text-align:media/5fabf89cecc0e3a7b75a76006be9b2db.png]]left;"| '''TF卡启动'''| '''OK'''# 然后回车,通过上下方向键选择| style="text-align: left;"| '''ManualOK''',然后回车确定|-[[File| style="text-align:media/d7af3737379521191a730b2956bab39e.png]]left;"| '''SPI+NVME启动'''| '''OK'''# 选择完后的显示如下图所示| style="text-align: left;"| '''OK'''|-[[File| style="text-align:media/069275e6daffa6daf0e569a97aa37699.png]]left;"| '''OV13850摄像头'''| '''OK'''# 然后通过Tab键将光标移动到| style="text-align: left;"| '''&lt;Show&gt;OK'''|-[[File| style="text-align:media/c58f2e40d2d2dcee017103071d3cad95.png]]left;"| '''OV13855摄像头'''| '''OK'''# 然后回车,回车后会弹出下面的设置界面| style="text-align: left;"| '''OK'''|-[[File| style="text-align:media/e3617e1dc9e606c7370a8ec226cd7ea8.png]]left;"| '''GPU'''| '''OK'''# 然后就可以在下图所示的位置设置IP地址(Addresses)、网关(Gateway)和DNS服务器的地址(里面还有很多其他设置选项,请自行探索),| style="text-align: left;"| '''请根据自己的具体需求来设置,下图中设置的值只是一个示例OK'''|-[[File| style="text-align:media/95a7640c6218cf925d16c3d49bc129d4.png]]left;"| '''VPU'''| '''OK'''# 设置完后将光标移动到右下角的| style="text-align: left;"| '''&lt;OK&gt'''|-| style="text-align: left;"| '''NPU''',然后回车确认| '''NO'''[[File| style="text-align:media/1b3cc3dff83bef7d056d89527d8587d1.png]]left;"| '''NO'''|-# 然后点击| style="text-align: left;"| '''REBOOT命令重启'''| ''&lt'OK'''| style="text-align: left;Back&gt"| '''OK'''|-| style="text-align: left;"| '''Poweroff命令关机'''回退到上一级选择界面| '''OK'''[[File| style="text-align:media/b5d562738f610e46e18d0e2b71ae5f75.png]]left;"| '''OK'''|-# 然后选择| style="text-align: left;"| '''MIPI LCD显示'''Activate a connection| ''',再将光标移动到OK'''&lt| style="text-align: left;"| '''OK&gt'''|-| style="text-align: left;"| '''MIPI LCD触摸''',最后点击回车| '''OK'''[[File| style="text-align:media/dcc055c7849cf758c080780d2cd4fe60.png]]left;"| '''OK'''|-# 然后选择需要设置的网络接口,比如| style="text-align: left;"| '''看门狗测试'''Wired connection 2| ''',然后将光标移动到OK'''&lt| style="text-align: left;Deactivate&gt"| '''OK'''|-| style="text-align: left;"| '''Chromium硬解视频''',再按下回车键禁用| '''Wired connection 2NO''' [[File| style="text-align:media/2365b3686a6260b12552c9a07ef7d738.png]]left;"| '''NO'''|-# 然重新选择并使能| style="text-align: left;"| '''Wired connection 2MPV硬解视频''',这样前面设置的静态IP就会生效了| '''OK'''[[File| style="text-align:media/ca9b82e063071009c7f223ec771d4d5e.png]]left;"| '''OK'''|}
# 然后通过'''&lt;Back&gt;'''和'''Quit'''按钮就可以退出nmtui<span id="m.2-e-key-pcie-wifi6蓝牙模块的使用方法-1"></span>== M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 ==
[[File:media/695d3e846f595e5cffa36e73ffa61123.png]] [[File:media/6dbccb5e63f3b7ff27a907b2814448d3.png]]# 首先需要购买一个PCIe WIFI6+蓝牙模块
# 然后通过{| class="wikitable"|-| '''ip addr show序 号'''| '''型号'''| '''实物图片'''| '''已支持的OS'''|-| '''1'''| '''AX200'''就能看到网口的IP地址已经变成前面设置的静态IP地址了
orangepi@orangepi:~$ '''ip addr show enP4p65s0(PCIE+USB接口)'''
3| [[File: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000media/image219.p%20ng]]| '''Debian'''
link/ether 5e:ac:14:a5:92:b3 brd ff:ff:ff:ff:ff:ff'''Ubuntu'''
inet '''192.168.1.100OpenWRT'''/24 brd 192.168.1.255 scope global noprefixroute enP4p65s0
valid_lft forever preferred_lft forever'''OPi OS Arch'''
inet6 241e:3b8:3240:c3a0:e269:8305:dc08:135e/64 scope global dynamic noprefixroute|-| '''2'''| '''AX210'''
valid_lft 259149sec preferred_lft 172749sec'''(PCIE+USB接口)'''
inet6 fe80| [[File::957d:bbbe:4928:3604media%20/64 scope link noprefixrouteimage220.png]]{w idth=“1.06875in” height=“1.45in”}| '''Debian'''
valid_lft forever preferred_lft forever'''Ubuntu'''
# 然后就可以测试网络的连通性来检查IP地址是否配置OK了,'''pingOpenWRT'''命令可以通过'''Ctrl+C'''快捷键来中断运行
orangepi@orangepi:~$ '''ping 192.168.1.47 -I enP4p65s0OPi OS Arch'''
PING 192.168.1.47 (192.168.1.47) from 192.168.1.188 enP4p65s0: 56(84) bytes of data.|-| '''3'''| '''RTL8852BE'''
64 bytes from 192.168.1.47: icmp_seq=1 ttl=64 time=0.233 ms'''(PCIE+USB接口)'''
64 bytes from 192.168.1.47| [[File: icmp_seq=2 ttl=64 time=0media/image221.263 msp%20ng]]| '''Debian'''
^C'''Ubuntu'''
-– 192.168.1.47 ping statistics —'''Android12'''
5 packets transmitted, 5 received, 0% packet loss, time 4042ms'''OPi OS Arch'''
rtt min/avg/max/mdev = 0.233/0.262/0.275/0.015 ms'''OPi OS Droid'''
<span id="使用nmcli命令来设置静态ip地址"></span>==== 使用nmcli命令来设置静态IP地址 ====|}
<ol start="2" style="list-style-type: decimal;"><li><p>然后将WIFI模块插入开发板的M.2 E-Key接口中并固定好</p><p>[[File:media/image222.png|403x181px]]</p></li><li><p>然后在OPi OS Arch系统中打开WIFI模块的配置,步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先在'''/boot/extlinux/extlinux.conf'''中添加一行下面的配置</p><p>[orangepi@orangepi ~]$ '''sudo vim /boot/extlinux/extlinux.conf'''</p><p>LABEL Orange Pi</p><p>LINUX /Image</p><p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p><p>'''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-wifi-pcie.dtbo # 如果要设置网口的静态IP地址,请先将网线插入开发板,需要添加的'''如果需要设置WIFI的静态IP地址,请先连接好WIFI</p></li><li><p>''',然后再开始设置静态IP地址然后重启OPi OS Arch系统'''</p></li></ol># 然后通过</li><li><p>重启系统后如果一切正常,此时使用下面的命令就能看到WIFI设备节点了。如果看不到,请先检查前面的配置是否有问题</p><p>[orangepi@orangepi ~]$ '''nmcli con ip addr showwlan0'''</p><p>......</p><p>4: '''命令可以查看网络设备的名字,如下所示,wlan0'''Wired connection : &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc noqueue state UP group default qlen 1000</p><p>link/ether 38:7a:0e:e3:80:05 brd ff:ff:ff:ff:ff:ff</p><p>inet 192.168.1.237/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0</p><p>valid_lft 42938sec preferred_lft 42938sec</p><p>inet6 fe80::a098:5942:16e:e817/64 scope link noprefixroute</p><p>valid_lft forever preferred_lft forever</p></li><li><p>连接WIFI的步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先点击桌面右上角的这块区域</p><p>[[File:media/image482.png|252x160px]]</p></li><li><p>然后选择Wi-Fi</p><p>[[File:media/image483.png|337x215px]]</p></li><li><p>然后选择想要连接的WIFI</p><p>[[File:media/image484.png|466x249px]]</p></li><li><p>然后输入WIFI的密码,再点击'''Connect'''Wired connection 2</p><p>[[File:media/image485.png|284x188px]]</p></li><li><p>然后再次进入下面的界面就能看到WIFI已连接</p><p>[[File:media/image486.png|544x383px]]</p></li></ol></li><li><p>蓝牙的使用示例:</p><ol style="list-style-type: lower-alpha;"><li><p>首先点击桌面右上角的这块区域</p><p>[[File:media/image482.png|272x173px]]</p></li><li><p>然后打开设置</p><p>[[File:media/image487.png|288x238px]]</p></li><li><p>然后在设置中选择蓝牙,并确保蓝牙右上角的开关按钮已打开</p><p>[[File:media/image488.png|457x301px]]</p></li><li><p>然后选择想要配置对的蓝牙设备,比如和安卓手机配对</p><p>[[File:media/image489.png|451x296px]]</p></li><li><p>然后点击'''Confirm''',手机端也需要确认配对</p><p>[[File:media/image490.png|221x142px]]</p></li><li><p>蓝牙和安卓手机连接后的显示如下所示:</p><p>[[File:media/image491.png|451x296px]]</p></li><li><p>然后点击已配对的蓝牙设备会弹出下图所示的操作界面</p><p>[[File:media/image492.png|480x315px]]</p></li><li><p>此时点击'''Send Files...'''为以太网接口的名字就可给手机发送一个文件</p></li></ol></li></ol>
orangepi@orangepi[[File:~$ '''nmcli con show'''media/image493.png|525x297px]]
NAME UUID TYPE DEVICE<ol style="list-style-type: lower-roman;"><li><p>蓝牙发送图片给手机的示意图如下所示:</p><div class="figure">
Wired connection 1 c043c817[[File:media/image494.png|576x324px|Screenshot from 2023-115604-3b7221 04-a55917-9a8cd642bf70 ethernet enP3p49s007]]
Wired connection 2 6f74598a-ccc6-358b-be05-87eaf34df930 ethernet enP4p65s0</div></li></ol>
# 然后输入下面的命令,其中<span id="寸mipi-lcd屏幕的使用方法-1"></span>## '''“Wired connection 1”''' 表示设置以太网口的静态IP地址,如果需要设置其它网口的静态IP地址,请修改为对应网络接口对应的名字(通过'''nmcli con show'''命令可以获取到)## '''ipv4.addresses'''后面是要设置的静态IP地址,可以修改为自己想要设置的值## '''ipv4== 10.gateway''' 表示网关的地址1寸MIPI LCD屏幕的使用方法 ==
orangepi@orangepi:~$ '''nmcli con mod “Wired connection 1” \'''<span id="寸mipi-屏幕的组装方法-1"></span>=== 10.1寸MIPI 屏幕的组装方法 ===
'''ipv4<ol style="list-style-type: decimal;"><li><p>首先准备需要的配件</p><ol style="list-style-type: lower-alpha;"><li><p>10.addresses “1921寸MIPI LCD显示屏+触摸屏(和OPi5/OPi5B通用)</p><p>[[File:media/image407.168.1.110” \'''png|308x237px]]</p></li><li><p>屏幕转接板+31pin转40pin排线</p><div class="figure">
'''ipv4[[File:media/image408.gateway “192.168.1.1” \'''png|160x139px|DD9A8F44-0D8F-4f06-9473-B539DEED850C]]
'''ipv4.dns “8.8.8.8” \'''</div></li><li><p>30pin MIPI排线</p><div class="figure">
'''ipv4[[File:media/image409.method “manual”'''png|421x39px|C2164119-6EC3-49ae-9A95-BE323F51FAE1]]
# 然后重启linux系统</div></li><li><p>12pin 触摸屏排线</p><p>[[File:media/image410.png|300x44px]]</p></li></ol></li><li><p>按照下图将12pin 触摸屏排线、31pin转40pin排线、30pin MIPI排线接到屏幕转接板上,注意'''触摸屏排线蓝色的绝缘面朝下''',其它两根排线绝缘面朝上,如果接错会导致无显示或者不能触摸的问题</p><p>[[File:media/image411.png|574x142px]]</p></li><li><p>按照下图将连接好排线的转接板置于MIPI LCD屏上面,并通过31pin转40pin排线连接MIPI LCD屏与转接板</p></li></ol>
orangepi@orangepi[[File:~$ '''sudo reboot'''media/image412.png|382x563px]]
# 然后重新进入linux系统使用<ol start="4" style="list-style-type: decimal;"><li><p>然后通过12pin触摸屏排线连接触摸屏与转接板,注意绝缘面的朝向</p><p>[[File:media/image413.png|246x156px]]</p></li><li><p>最后通过30pin MIPI排线连接到开发板的LCD接口上</p><p>[[File:media/image414.png|363x202px]]</p><p>'''ip addr show注意,下面的触摸接口不是给LCD MIPI屏幕使用的,目前为备用接口,使用不到。'''命令就可以看到IP地址已经设置为想要的值了</p><p>[[File:media/image415.png|334x70px]]</p></li></ol>
orangepi@orangepi:~$ '''ip addr show'''<span id="打开10.1寸mipi-lcd屏幕配置的方法-1"></span>=== 打开10.1寸MIPI LCD屏幕配置的方法 ===
2<ol style="list-style-type: enP3p49s0decimal;"><li><p>开发板上mipi lcd屏幕的接口的位置如下图所示</p><p>[[File: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gtmedia/image416.png|575x103px]]</p></li><li><p>OPi OS Arch镜像默认是没有打开mipi lcd屏幕配置的,如果需要使用mipi lcd屏幕,需要手动打开才行。打开mipi lcd配置的方法如下所示:</p><ol style="list-style-type: lower-alpha; mtu 1500 qdisc mq state UP group default qlen 1000"><li><p>首先在'''/boot/extlinux/extlinux.conf'''中加入下面的配置</p><p>[orangepi@orangepi ~]$ '''sudo vim /boot/extlinux/extlinux.conf'''</p><p>LABEL Orange Pi</p><p>LINUX /Image</p><p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p><p>'''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-opi5plus-lcd.dtbo #需要添加的配置'''</p></li><li><p>'''然后重启OPi OS Arch系统'''</p></li></ol></li><li><p>重启后可以看到lcd屏幕的显示如下所示(默认为竖屏):</p></li></ol>
link[[File:media/ether 00:e0:4c:68:00:26 brd ff:ff:ff:ff:ff:ffimage495.png|162x242px]]
inet '''192.168.1.110'''/32 scope global noprefixroute enP3p49s0=== 旋转显示和触摸方向的方法 ===
valid_lft forever preferred_lft forever<ol style="list-style-type: decimal;"><li><p>首先点击桌面右上角的这块区域</p><p>[[File:media/image482.png|193x123px]]</p></li><li><p>然后打开设置</p><p>[[File:media/image487.png|193x159px]]</p></li><li><p>然后选择'''Displays'''</p><p>[[File:media/image496.png|424x279px]]</p></li><li><p>然后在'''Displays'''的'''Orientation'''中选择想要旋转的方向</p><p>[[File:media/image497.png|426x282px]]</p></li><li><p>然后选择'''Apply'''</p><p>[[File:media/image498.png|425x282px]]</p></li><li><p>然后就能看到屏幕已经旋转好了,此时还需要选择'''Keep Changes'''来最后确定旋转</p><p>[[File:media/image499.png|259x130px]]</p></li><li><p>LCD屏幕旋转90度后的显示如下所示:</p><p>[[File:media/image500.png|359x229px]]</p></li><li><p>'''OPi OS Arch系统LCD屏幕的触摸功能会随着显示方向的旋转而旋转,无需其他设置。'''</p></li></ol>
inet6 fe80::9005:95ac:b9c0:2beb<span id="ov13850和ov13855-mipi摄像头的测试方法-1"></64 scope link noprefixroutespan>== OV13850和OV13855 MIPI摄像头的测试方法 ==
valid_lft forever preferred_lft forever目前开发板支持两款MIPI摄像头,OV13850和OV13855,具体的图片如下所示:
<span idol style="m.2-elist-keystyle-pcietype: lower-wifi6蓝牙模块的使用方法alpha;"><li><p>1300万MIPI接口的OV13850摄像头</spanp>== M<p>[[File:media/image22.png|215x121px]]</p></li><li><p>1300万MIPI接口的OV13855摄像头</p><p>[[File:media/image23.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 ==png|189x112px]]</p><p>OV13850和OV13855摄像头使用的转接板和FPC排线是一样的,只是两款摄像头接在转接板上的位置不一样。FPC排线如下图所示,请注意FPC排线是有方向的,标注'''TO MB'''那端需要插到开发板的摄像头接口中,标注'''TO CAMERA'''那端需要插到摄像头转接板上。</p></li></ol>
# 首先需要购买一个PCIe WIFI6+蓝牙模块[[File:media/image426.png|370x77px]]
{| class="wikitable"|-! '''序号'''! '''型号'''! '''实物图片'''! '''已支持的OS'''|-| '''1'''| '''AX200''' '''(PCIE+USB接口)'''| '''[[File:media/82893e51bf9b88e7de55f1851d3258fa.png]]'''| '''Debian''' '''Ubuntu''' '''OpenWRT''' '''OPi OS Arch'''|-| '''2'''| '''AX210''' '''(PCIE+USB接口)'''| '''[[File:media/0780dbc2efb3d2d207de783b499d324f.png]]'''| '''Debian''' '''Ubuntu''' '''OpenWRT''' '''OPi OS Arch'''|-| '''3'''| '''RTL8852BE''' '''(PCIE+USB接口)'''| '''[[File:media/3107bc4a7d847ec89a39d0fa01dae5be.png]]'''| '''Debian''' '''Ubuntu''' '''Android12''' '''OPi OS Arch''' '''OPi OS Droid'''|}摄像头转接板上总共有3个摄像头的接口,同一时间只能接一个使用,如下图所示,其中:
# 然后将模块插入开发板的M.2 E<ol style="list-Key接口中并固定好,位置如下图所示:style-type: lower-alpha;"><li><p>'''1号接口接OV13850摄像头'''</p></li><li><p>'''2号接口接OV13855摄像头'''</p></li><li><p>3号接口未使用,忽略即可</p></li></ol>
[[File:media/d8e854d861505b4dfca06d5573b8b642image427.png|288x172px]]
# 然后在Linux系统中打开WIFI模块的配置,步骤如下所示:## 首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限Orange Pi 5 Plus开发板上总共有1个摄像头接口,位置如下所示:
orangepi@orangepi[[File:~$ '''sudo orangepi-config'''media/image428.png|367x85px]]
# 然后选择'''System'''摄像头插在开发板的摄像头接口的方法如下所示:
[[File:media/5b020440753c1c1d150d0993f08eacfdimage429.png|332x154px]]
# 然后选择'''Hardware'''连接好摄像头到开发板上后,我们可以使用下面的方法来测试下摄像头:
[[File<ol style="list-style-type:medialower-alpha;"><li><p>首先在'''/boot/extlinux/0d5151e38da17701cc4920f1997e064cextlinux.png]conf'''中加上下面的配置</p><p>[orangepi@orangepi ~]$ '''sudo vim /boot/extlinux/extlinux.conf'''</p><p>LABEL Orange Pi</p><p>LINUX /Image</p><p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p><p>'''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-opi5plus-ov13850.dtbo'''</p><p>上面红色字体演示的是摄像头接口接'''ov13850'''的配置,其他的配置如下表所示,将对应的dtbo配置添加到'''FDTOVERLAYS'''后面即可。</p></li></ol>
# 然后使用键盘的方向键定位到下图所示的位置,再使用{| class="wikitable"|-| style="text-align: left;"| '''空格摄像头'''选中| style="text-align: left;"| '''wifidtbo的配置'''|-pcie| style="text-align: left;"| '''接ov13850'''配置| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-opi5plus-ov13850.dtbo'''|-| style="text-align: left;"| '''接ov13855'''[[File| style="text-align:medialeft;"| '''/dtbs/rockchip/overlay/968610ad438d5321b038d3a77d144bbdrk3588-opi5plus-ov13855.png]]dtbo'''|}
# 然后选择<ol start="2" style="list-style-type: lower-alpha;"><li><p>'''&lt;Save&gt;然后重启OPi OS Arch系统'''</p></li><li><p>然后在桌面系统中打开一个终端,再运行下面的脚本</p><p>orangepi@orangepi:~$ '''test_camera.sh'''保存</p></li><li><p>然后就能看到摄像头的预览画面了</p><div class="figure">
[[File:media/0b7277228937ba33db13c06e82225708image501.png|576x324px|Screenshot from 2023-04-20 17-16-08]]
# 然后选择'''&lt;Back&gt;'''</div></li></ol>
[[File:media<span id="设置中文环境以及安装中文输入法的方法-1"></ec12dd17ab5e65c5fd03d54eadd60a2f.png]]span>== 设置中文环境以及安装中文输入法的方法 ==
# 然后选择<ol style="list-style-type: decimal;"><li><p>首先点击桌面右上角的这块区域</p><p>[[File:media/image482.png|217x138px]]</p></li><li><p>然后打开设置</p><p>[[File:media/image502.png|259x196px]]</p></li><li><p>然后找到'''Region &lt;Reboot&gtamp;Language'''选项</p><p>[[File:media/image503.png|394x260px]]</p></li><li><p>然后选择'''Language'''</p><p>[[File:media/image504.png|401x264px]]</p></li><li><p>然后选择汉语</p><p>[[File:media/image505.png|443x290px]]</p></li><li><p>然后点击'''Select'''</p><p>[[File:media/image506.png|443x292px]]</p></li><li><p>然后点击'''Logout...'''重启系统使配置生效登出系统,再重新登入系统</p><p>[[File:media/image507.png|395x260px]]</p></li><li><p>然后可以看到桌面都显示为中文了</p><div class="figure">
[[File:media/03310676d04e3df78bf5a4f3536ad49cimage508.png|498x280px|截图 2023-04-20 20-20-06]]
# 重启系统后如果一切正常,此时使用下面的命令就能看到会多了一个WIFI的设备节点了。如果看不到,请先检查前面的配置是否有问题</div></li><li><p>然后安装下'''fcitx-im'''和'''fcitx-configtool'''</p><p>[orangepi@orangepi ~]$ '''sudo pacman -S fcitx-im fcitx-configtool'''</p><p>:: 在组 fcitx-im 中有 3 成员:</p><p>:: 软件仓库 community</p><p>1) fcitx 2) fcitx-qt5 3) fcitx-qt6</p><p>输入某个选择 ( 默认=全部选定 ): '''1'''</p></li><li><p>然后打开Fcitx配置程序</p><p>[[File:media/image509.png|395x223px]]</p><p>[[File:media/image510.png|396x223px]]</p></li><li><p>然后添加'''Google拼音'''输入法</p><p>[[File:media/image511.png|248x228px]]</p><p>[[File:media/image512.png|372x252px]]</p></li><li><p>然后我们可以打开一个终端测试下中文输入法,打开终端后,如果默认还是英文输入法,我们可以通过'''Ctrl+Space'''快捷键来切换成中文输入法,然后就能输入中文了</p><div class="figure">
[orangepi@orangepi ~[File:media/image513.png|459x258px|截图 2023-04-20 20-38-24]]$ '''ip addr show'''
# WIFI的连接和测试方法请参看[[#_WIFI连接测试|'''WIFI连接测试''']]一节,这里不再赘述。# 蓝牙的测试方法请参看[[#_桌面版镜像的测试方法_1|'''蓝牙使用方法''']]一节,这里不再赘述。</div></li></ol>
<span id="ssh远程登录开发板hdmi-in的测试方法-1"></span>== SSH远程登录开发板 HDMI IN的测试方法 ==
<ol start="6" style="list-style-type: decimal;"><li><p>开发板HDMI In接口的所在位置如下所示:</p><p>[[File:media/image255.png|351x112px]]</p></li><li><p>首先使用下图所示的HDMI转HDMI线将其它设备的HDMI输出接到开发板的HDMI In接口上</p><p>[[File:media/image10.png|199x129px]]</p></li><li><p>OPi OS Arch系统HDMI In功能默认是关闭的,打开方法如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先在'''Linux系统默认都开启了ssh远程登录,并且允许root用户登录系统。ssh登录前首先需要确保以太网或者wifi网络已连接,然后使用ip addr命令或者通过查看路由器的方式获取开发板的IP地址。/boot/extlinux/extlinux.conf'''中加上下面的配置</p><p>[orangepi@orangepi ~]$ '''sudo vim /boot/extlinux/extlinux.conf'''</p><p>LABEL Orange Pi</p><p>LINUX /Image</p><p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p><p>'''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-hdmirx.dtbo #需要添加的配置'''</p></li><li><p>'''然后重启OPi OS Arch系统'''</p></li></ol></li><li><p>重启进入系统后再在桌面上打开一个终端,然后运行下'''test_hdmiin.sh'''脚本</p><p>[orangepi@orangepi ~]$ '''test_hdmiin.sh'''</p></li><li><p>然后就能看到HDMI In的输入画面了(下图中HDMI In显示的是opi5开发板HDMI输出的画面,此时正在播放一个视频)。'''test_hdmiin.sh'''脚本默认会将HDMI In输入的音频播放到开发板的HDMI_TX1、HDMI_TX2和ES8388(代表喇叭或者耳机)中去。</p><p>[[File:media/image514.png|576x326px]]</p></li><li><p>除了使用'''test_hdmiin.sh'''脚本来测试HDMI In外,我们还可以使用'''Qt V4L2 test Utility'''来测试HDMI In的视频('''此方法目前无法测试音频''')。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>先进入应用程序列表中</p><p>[[File:media/image515.png|356x200px]]</p></li><li><p>然后找到'''Qt V4L2 test Utility'''并打开</p><p>[[File:media/image516.png|367x205px]]</p></li><li><p>然后请确保'''Qt V4L2 test Utility'''识别到了HDMI In设备</p><p>[[File:media/image517.png|508x185px]]</p></li><li><p>然后点击下图所示的位置就可以看到HDMI In输入的视频</p><p>[[File:media/image518.png|508x359px]]</p></li><li><p>HDMI In输入的视频窗口如下所示:</p><div class="figure">
<span id="ubuntu下ssh远程登录开发板"><[[File:media/span>=== Ubuntu下SSH远程登录开发板 ===image519.png|572x322px|Screenshot from 2023-05-22 18-12-56]]
# 获取开发板的IP地址</div></li></ol># 然后就可以通过ssh命令远程登录linux系统</li></ol>
test@test:~$ '''ssh''' [mailto:root@192.168.<span id="安装wiringop的方法-1.36 '''root@192.168.1.''']'''xxx''' (需要替换为开发板的IP地址)"></span>== 安装wiringOP的方法 ==
root@192.168.1.xx’s password: (在这里输入密码,默认密码为orangepi)'''注意,Orange Pi发布的OPi OS Arch镜像中已经预装了wiringOP,除非wiringOP的代码有更新,否则无需重新下载编译安装,直接使用即可。'''
'''注意,输入密码的时候,屏幕上是不会显示输入的密码的具体内容的,请不要以为是有什么故障,输入完后直接回车即可。进入系统后可以运行下gpio readall命令,如果能看到下面的输出,说明wiringOP已经预装并且能正常使用。'''
'''如果提示拒绝连接,只要使用的是Orange Pi提供的镜像,就请不要怀疑orangepi这个密码是不是不对,而是要找其他原因。'''[[File:media/image520.png|434x308px]]
# 成功登录系统后的显示如下图所示'''wiringOP目前主要适配了设置GPIO口输入输出,设置GPIO口输出高低电平以及设置上下拉电阻的功能,像硬件PWM这样的功能是用不了的。'''
<div classol style="figurelist-style-type: decimal;"><li><p>下载wiringOP的代码</p><p>[orangepi@orangepi ~]$ '''sudo pacman -Syy git'''</p><p>[orangepi@orangepi ~]$ '''git clone https://github.com/orangepi-xunlong/wiringOP.git -b next'''</p><p>'''注意,Orange Pi 5 Plus需要下载wiringOP next分支的代码,请别漏了-b next这个参数。'''</p><p>'''如果从GitHub下载代码有问题,可以去[http://www.orangepi.cn/html/serviceAndSupport/index.html Orange Pi 5 Plus资料下载页面的官方工具]中下载wiringOP.tar.gz的源码压缩包。'''</p><p>[[File:media/image521.png|287x83px]]</p></li><li><p>编译安装wiringOP</p><p>[orangepi@orangepi ~]$ '''sudo pacman -Syy make gcc'''</p><p>[orangepi@orangepi ~]$ '''cd wiringOP'''</p><p>[orangepi@orangepi wiringOP]$ '''sudo ./build clean'''</p><p>[orangepi@orangepi wiringOP]$ '''sudo ./build'''</p></li><li><p>测试gpio readall命令的输出如下</p><p>[[File:media/image520.png|568x403px]]</p></li></ol>
[[File:media<span id="pin接口gpioi2cuartspican和pwm测试-1"></94f91ae178aa3f3432998e5f31cfe179.png|953iring_001]]span>== 40 pin接口GPIO、I2C、UART、SPI、CAN和PWM测试 ==
</div>'''如果ssh无法正常登陆linux系统,首先请检查下开发板的IP地址是否能ping通,如果ping通没问题的话,可以通过串口或者HDMI显示器登录linux系统然后在开发板上输入下面的命令后再尝试是否能连接:注意,如果需要设置fdt overlays同时打开多个配置,请像下面红色字体配置那样使用空格隔开写在一行即可。'''
root[orangepi@orangepi:~# ]$ '''reset_sshsudo vim /boot/extlinux/extlinux.shconf'''
'''如果还不行,请重烧系统试下。'''LABEL Orange Pi
<span id="windows下ssh远程登录开发板"><LINUX /span>=== Windows下SSH远程登录开发板 ===Image
# 首先获取开发板的IP地址# 在windows下可以使用MobaXterm远程登录开发板,首先新建一个ssh会话## 打开'''Session'''## 然后在'''Session Setting'''中选择'''SSH'''## 然后在'''Remote host'''中输入开发板的IP地址## 然后在'''Specify username'''中输入linux系统的用户名'''root'''或'''FDT /dtbs/rockchip/rk3588s-orangepi'''## 最后点击'''OK'''即可-5.dtb
[[File:media'''FDTOVERLAYS /e6c71d27251439f7a6a50d4060e4de9cdtbs/rockchip/overlay/rk3588-i2c1-m2.dtbo /dtbs/rockchip/overlay/rk3588-uart0-m2.png]]dtbo'''
# 然后会提示输入密码,默认root和orangepi用户的密码都为orangepi<span id="pin-gpio口测试-2"></span>=== 40 pin GPIO口测试 ===
<ol style="list-style-type: decimal;"><li><p>开发板40 pin中总共有'''注意,输入密码的时候,屏幕上是不会显示输入的密码的具体内容的,请不要以为是有什么故障,输入完后直接回车即可。28'''个GPIO口可以使用,下面以7号引脚——对应GPIO为GPIO1_D6 ——对应wPi序号为2——为例演示如何设置GPIO口的高低电平</p><p>[[File:media/image522.png|576x147px]]</p></li><li><p>首先设置GPIO口为输出模式,其中第三个参数需要输入引脚对应的wPi的序号</p><p>[orangepi@orangepi ~]$ '''gpio mode 2 out'''</p></li><li><p>然后设置GPIO口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功</p><p>[orangepi@orangepi ~]$ '''gpio write 2 0'''</p></li><li><p>然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功</p><p>[orangepi@orangepi ~]$ '''gpio write 2 1'''</p></li></ol>
[[File:media/6dea5ad1f260d425d8a12c2719e6e5de.png]]<!-- --># 其他引脚的设置方法类似,只需修改wPi的序号为引脚对应的序号即可
# 成功登录系统后的显示如下图所示<span id="pin-gpio口上下拉电阻的设置方法-1"></span>=== 40 pin GPIO口上下拉电阻的设置方法 ===
<ol style="list-style-type: decimal;"><li><p>下面以7号引脚——对应GPIO为GPIO1_D6 ——对应wPi序号为2——为例演示如何设置GPIO口的上下拉电阻</p><p>[[File:media/574f6acd6e720878669f4d1a9217769fimage522.png|576x147px]]</p></li><li><p>首先需要设置GPIO口为输入模式,其中第三个参数需要输入引脚对应的wPi的序号</p><p>[orangepi@orangepi ~]$ '''gpio mode 2 in'''</p></li><li><p>设置为输入模式后,执行下面的命令可以设置GPIO口为上拉模式</p><p>[orangepi@orangepi ~]$ '''gpio mode 2 up'''</p></li><li><p>然后输入下面的命令读取GPIO口的电平,如果电平为1,说明上拉模式设置成功</p><p>[orangepi@orangepi ~]$ '''gpio read 2'''</p><p>'''1'''</p></li><li><p>然后执行下面的命令可以设置GPIO口为下拉模式</p><p>[orangepi@orangepi ~]$ '''gpio mode 2 down'''</p></li><li><p>然后输入下面的命令读取GPIO口的电平,如果电平为0,说明下拉模式设置成功</p><p>[orangepi@orangepi ~]$ '''gpio read 2'''</p><p>'''0'''</p></li></ol>
<span id="adb的使用方法pin-spi测试-2"></span>== ADB的使用方法 = 40 pin SPI测试 ===
<ol style=== 网络adb的使用方法 ==="list-style-type: decimal;"><li><p>由下图可知,Orange Pi 5 Plus可用的SPI为SPI0和SPI4</p><p>[[File:media/image294.png|575x137px]]</p></li><li><p>SPI0和SPI4在40pin中对应的引脚如下表所示。SPI4_M1和SPI4_M2同一时间只能使用其中一组,不能同时使用,它们都是同一个SPI4,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的SPI总线。</p></li></ol>
# 系统启动后请先确认下{| class="wikitable"|-|| style="text-align: left;"| '''adbdSPI0_M2对应40pin'''已经启动了| style="text-align: left;"| '''SPI4_M1对应40pin'''| style="text-align: left;"| '''SPI4_M2对应40pin'''|-| '''MOSI'''| style="text-align: left;"| '''19号引脚'''| style="text-align: left;"| '''12号引脚'''| style="text-align: left;"| '''8号引脚'''|-| '''MISO'''| style="text-align: left;"| '''21号引脚'''| style="text-align: left;"| '''31号引脚'''| style="text-align: left;"| '''10号引脚'''|-| '''CLK'''| style="text-align: left;"| '''23号引脚'''| style="text-align: left;"| '''35号引脚'''| style="text-align: left;"| '''22号引脚'''|-| '''CS0'''| style="text-align: left;"| '''24号引脚'''| style="text-align: left;"| '''40号引脚'''| style="text-align: left;"| '''31号引脚'''|-| '''CS1'''| style="text-align: left;"| '''26号引脚'''| style="text-align: left;"| '''38号引脚'''| style="text-align: left;"| '''无'''|}
<ol start="3" style="list-style-type: decimal;"><li><p>在linux系统中,40 pin中的SPI默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先在'''/boot/extlinux/extlinux.conf'''中加上下面的配置</p><p>[orangepi@orangepi:~]$ '''ps sudo vim /boot/extlinux/extlinux.conf'''</p><p>LABEL Orange Pi</p><p>LINUX /Image</p><p>FDT /dtbs/rockchip/rk3588-ax | grep “adbd”orangepi-5-plus.dtb</p><p>'''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-spi0-m2-cs0-cs1-spidev.dtbo'''</p><p>上面红色字体演示的是打开'''spi0-m2并使用cs0和cs1引脚'''的配置,其他的配置如下表所示,将对应的dtbo配置添加到'''FDTOVERLAYS'''后面即可。</p></li></ol></li></ol>
808 ? Sl 0{| class="wikitable"|-| style="text-align:00 left;"| '''SPI总线'''| style="text-align: left;"| '''dtbo的配置'''|-| style="text-align: left;"| '''SPI0_M2-cs0'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-spi0-m2-cs0-spidev.dtbo'''|-| style="text-align: left;"| '''SPI0_M2-cs1'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-spi0-m2-cs1-spidev.dtbo'''|-| style="text-align: left;"| '''SPI0_M2-cs0-cs1'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-spi0-m2-cs0-cs1-spidev.dtbo'''|-| style="text-align: left;"| '''SPI4_M1-cs0'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-spi4-m1-cs0-spidev.dtbo'''|-| style="text-align: left;"| '''SPI4_M1-cs1'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-spi4-m1-cs1-spidev.dtbo'''|-| style="text-align: left;"| '''SPI4_M1-cs0-cs1'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-spi4-m1-cs0-cs1-spidev.dtbo'''|-| style="text-align: left;"| '''SPI4_M2-cs0'''| style="text-align: left;"| '''/dtbs/usrrockchip/binoverlay/adbdrk3588-spi4-m2-cs0-spidev.dtbo'''|}
3707 ttyFIQ0 S+ 0<ol start="2" style="list-style-type:00 grep –color=auto adbdlower-alpha;"><li>然后'''重启OPi OS Arch系统'''</li></ol>
# 然后查看下开发板的IP地址,并记下来<!-- --># 然后在Ubuntu PC上安装adb工具<ol start="4" style="list-style-type: decimal;"><li><p>重启后进入系统先查看下linux系统中是否存在'''spidevx.x'''的设备节点,如果存在,说明SPI已经设置好了,可以直接使用。</p><p>[orangepi@orangepi ~]$ '''ls /dev/spidev*'''</p><p>/dev/spidev0.0 /dev/spidev0.1 /dev/spidev4.0 /dev/spidev4.1</p><p>'''上面是打开spi0-m2-cs0-cs1-spidev和spi4-m1-cs0-cs1-spidev后显示的结果。'''</p></li><li><p>然后先不短接SPI0或者SPI4的MOSI和MISO两个引脚,运行spidev_test的输出结果如下所示,可以看到TX和RX的数据不一致</p><p>[orangepi@orangepi ~]$ '''sudo spidev_test -v -D /dev/spidev4.0'''</p><p>'''或者'''</p><p>[orangepi@orangepi ~]$ '''sudo spidev_test -v -D /dev/spidev0.0'''</p><p>spi mode: 0x0</p><p>bits per word: 8</p><p>max speed: 500000 Hz (500 KHz)</p><p>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 | ......@.…▒..................▒.</p><p>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 | ............................….</p></li><li><p>然后短接SPI0或者SPI4的MOSI和MISO两个引脚再运行spidev_test的输出如下,可以看到发送和接收的数据一样,说明SPI回环测试正常。</p><p>[orangepi@orangepi ~]$ '''sudo spidev_test -v -D /dev/spidev4.0'''</p><p>'''或者'''</p><p>[orangepi@orangepi ~]$ '''sudo spidev_test -v -D /dev/spidev0.0'''</p><p>spi mode: 0x0</p><p>bits per word: 8</p><p>max speed: 500000 Hz (500 KHz)</p><p>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 | ......@.…▒..................▒.</p><p>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 | ......@.…▒..................▒.</p></li></ol>
test@test:~$ '''sudo apt<span id="pin-get update'''i2c测试-2"></span>=== 40 pin I2C测试 ===
test@test:~$ '''sudo apt<ol style="list-get install style-y adb'''type: decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的i2c为i2c2、i2c4、i2c5和i2c8共四组 i2c总线。</p><p>[[File:media/image294.png|575x137px]]</p></li><li><p>4组I2C总线在40pin中对应的引脚如下表所示。I2C2_M0和I2C2_M4同一时间只能使用其中一组,不能同时使用,它们都是同一个I2C2,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的I2C2总线。</p></li></ol>
# 然后使用下面的命令连接网络adb{| class="wikitable"|-| style="text-align: left;"| '''I2C总线'''| style="text-align: left;"| '''SDA对应40pin'''| style="text-align: left;"| '''SCL对应40pin'''|-| style="text-align: left;"| '''I2C2_M0'''| style="text-align: left;"| '''3号引脚'''| style="text-align: left;"| '''5号引脚'''|-| style="text-align: left;"| '''I2C2_M4'''| style="text-align: left;"| '''10号引脚'''| style="text-align: left;"| '''8号引脚'''|-| style="text-align: left;"| '''I2C4_M3'''| style="text-align: left;"| '''22号引脚'''| style="text-align: left;"| '''32号引脚'''|-| style="text-align: left;"| '''I2C5_M3'''| style="text-align: left;"| '''27号引脚'''| style="text-align: left;"| '''28号引脚'''|-| style="text-align: left;"| '''I2C8_M2'''| style="text-align: left;"| '''29号引脚'''| style="text-align: left;"| '''7号引脚'''|}
test<ol start="3" style="list-style-type: decimal;"><li><p>在linux系统中,40 pin中的I2C总线默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先在'''/boot/extlinux/extlinux.conf'''中加上下面的配置</p><p>[orangepi@test:orangepi ~]$ '''adb connect 192sudo vim /boot/extlinux/extlinux.168conf'''</p><p>LABEL Orange Pi</p><p>LINUX /Image</p><p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.1dtb</p><p>'''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-i2c2-m0.xx:5555 #IP地址请替换为开发板的IP地址dtbo'''</p><p>上面红色字体演示的是打开'''i2c2-m0'''的配置,其他的配置如下表所示,将对应的dtbo配置添加到'''FDTOVERLAYS'''后面即可。</p></li></ol></li></ol>
* daemon not running{| class="wikitable"|-| style="text-align: left;"| '''I2C总线'''| style="text-align: left;"| '''dtbo的配置'''|-| style="text-align: left;"| '''I2C2_M0'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-i2c2-m0.dtbo'''|-| style="text-align: left; starting now at tcp"| '''I2C2_M4'''| style="text-align:5037left;"| '''/dtbs/rockchip/overlay/rk3588-i2c2-m4.dtbo'''|-| style="text-align: left;"| '''I2C4_M3'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-i2c4-m3.dtbo'''|-| style="text-align: left;"| '''I2C5_M3'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-i2c5-m3.dtbo'''|-| style="text-align: left;"| '''I2C8_M2'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-i2c8-m2.dtbo'''* daemon started successfully|}
connected to 192.168.1.xx<ol start="2" style="list-style-type:5555lower-alpha;"><li>然后'''重启OPi OS Arch系统'''</li></ol>
test<!-- --><ol start="4" style="list-style-type: decimal;"><li><p>启动linux系统后,先确认下'''/dev'''下存在需要使用I2C的设备节点</p><p>orangepi@testorangepi:~$ '''adb devicesls /dev/i2c-*'''</p></li><li><p>然后在40 pin接口对应的I2C引脚上接一个I2C设备</p></li><li><p>然后使用'''i2cdetect -y'''命令如果能检测到连接的i2c设备的地址,就说明i2c能正常使用</p><p>[orangepi@orangepi ~]$ '''sudo pacman -S i2c-tools''' #首先现在i2c工具</p><p>[orangepi@orangepi ~]$ '''sudo i2cdetect -y 2''' #i2c2的测试命令</p><p>[orangepi@orangepi ~]$ '''sudo i2cdetect -y 4''' #i2c4的测试命令</p><p>[orangepi@orangepi ~]$ '''sudo i2cdetect -y 5''' #i2c5的测试命令</p><p>[orangepi@orangepi ~]$ '''sudo i2cdetect -y 8'''#i2c8的测试命令</p></li></ol>
List of devices attached<span id="pin的uart测试-2"></span>=== 40 pin的UART测试 ===
<ol style="list-style-type: decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的uart为uart1、uart3、uart4、uart6、uart7和uart8共6组uart总线</p><p>[[File:media/image294.png|575x137px]]</p></li><li><p>在linux系统中,40 pin中的UART默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先在'''192/boot/extlinux/extlinux.168conf'''中加上下面的配置</p><p>[orangepi@orangepi ~]$ '''sudo vim /boot/extlinux/extlinux.1conf'''</p><p>LABEL Orange Pi</p><p>LINUX /Image</p><p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p><p>'''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-uart1-m1.xx:5555 devicedtbo'''</p><p>上面红色字体演示的是打开'''uart1-m1'''的配置,其他的配置如下表所示,将对应的dtbo配置添加到'''FDTOVERLAYS'''后面即可。</p></li></ol></li></ol>
# 然后使用下面的命令就可以登录开发板的linux系统{| class="wikitable"|-| style="text-align: left;"| '''UART总线'''| style="text-align: left;"| '''dtbo对应配置'''|-| style="text-align: left;"| '''UART1_M1'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-uart1-m1.dtbo'''|-| style="text-align: left;"| '''UART3_M1'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-uart3-m1.dtbo'''|-| style="text-align: left;"| '''UART4_M2'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-uart4-m2.dtbo'''|-| style="text-align: left;"| '''UART6_M1'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-uart6-m1.dtbo'''|-| style="text-align: left;"| '''UART7_M2'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-uart7-m2.dtbo'''|-| style="text-align: left;"| '''UART8_M1'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-uart8-m1.dtbo'''|}
test@test<ol start="2" style="list-style-type:~$ lower-alpha;"><li>然后'''adb shell重启OPi OS Arch系统'''</li></ol>
<!-- --><ol start="3" style="list-style-type: decimal;"><li><p>进入linux系统后,先确认下'''root/dev'''下是否存在对应uart的设备节点</p><p>[orangepi@orangepi5plus:orangepi ~]$ '''ls /dev/# &lt;— 看到这个提示符后说明已成功登录开发板ttyS*'''</p></li><li><p>然后开始测试uart接口,先使用杜邦线短接要测试的uart接口的rx和tx引脚</p></li></ol>
# 使用adb上传文件到开发板的命令如下所示{| class="wikitable"|-| style="text-align: left;"| '''UART总线'''| style="text-align: left;"| '''RX对应40pin'''| style="text-align: left;"| '''TX对应40pin'''|-| style="text-align: left;"| '''UART1_M1'''| style="text-align: left;"| '''27号引脚'''| style="text-align: left;"| '''28号引脚'''|-| style="text-align: left;"| '''UART3_M1'''| style="text-align: left;"| '''18号引脚'''| style="text-align: left;"| '''16号引脚'''|-| style="text-align: left;"| '''UART4_M2'''| style="text-align: left;"| '''19号引脚'''| style="text-align: left;"| '''23号引脚'''|-| style="text-align: left;"| '''UART6_M1'''| style="text-align: left;"| '''10号引脚'''| style="text-align: left;"| '''8号引脚'''|-| style="text-align: left;"| '''UART7_M2'''| style="text-align: left;"| '''24号引脚'''| style="text-align: left;"| '''26号引脚'''|-| style="text-align: left;"| '''UART8_M1'''| style="text-align: left;"| '''40号引脚'''| style="text-align: left;"| '''35号引脚'''|}
test<ol start="5" style="list-style-type: decimal;"><li><p>使用'''gpio serial'''命令测试串口的回环功能如下所示,如果能看到下面的打印,说明串口通信正常(ttySX需要替换为对应uart的节点名,请不要照抄)</p><p>[orangepi@test:orangepi ~]$ '''adb push filename sudo gpio serial /rootdev/ttySX'''</p><p>[sudo] password for orangepi: #在这里输入密码</p><p>Out: 0: -&gt; 0</p><p>Out: 1: -&gt; 1</p><p>Out: 2: -&gt; 2</p><p>Out: 3: -&gt; 3</p><p>Out: 4: -&gt; 4</p><p>Out: 5: -&gt; 5^C</p></li></ol>
filename: <span id="pwm的测试方法-1 file pushed. 3.7 MB"></s (1075091 bytes in 0.277s)span>=== PWM的测试方法 ===
# 使用adb重启开发板的命令如下所示<ol style="list-style-type: decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的PWM有pwm0、pwm1、pwm11、pwm12、pwm13和pwm14共六路pwm</p><p>[[File:media/image294.png|575x137px]]</p></li><li><p>PWM在40pin中对应的引脚如下表所示。PWM0_M0和PWM0_M2、PWM1_M0和PWM1_M2、PWM14_M0和PWM14_M2同一时间只能使用其中一个,不能同时使用,它们都是同一个PWM,只是接到不同的引脚上去了而已,请不要以为它们是两个不同的PWM总线。</p></li></ol>
test@test{| class="wikitable"|-| style="text-align:~$ left;"| '''adb rebootPWM总线'''| style="text-align: left;"| '''对应40pin'''|-| style="text-align: left;"| '''PWM0_M0'''| style="text-align: left;"| '''5号引脚'''|-| style="text-align: left;"| '''PWM0_M2'''| style="text-align: left;"| '''22号引脚'''|-| style="text-align: left;"| '''PWM1_M0'''| style="text-align: left;"| '''3号引脚'''|-| style="text-align: left;"| '''PWM1_M2'''| style="text-align: left;"| '''32号引脚'''|-| style="text-align: left;"| '''PWM11_M0'''| style="text-align: left;"| '''12号引脚'''|-| style="text-align: left;"| '''PWM12_M0'''| style="text-align: left;"| '''14号引脚'''|-| style="text-align: left;"| '''PWM13_M0'''| style="text-align: left;"| '''16号引脚'''|-| style="text-align: left;"| '''PWM14_M0'''| style="text-align: left;"| '''33号引脚'''|-| style="text-align: left;"| '''PWM14_M2'''| style="text-align: left;"| '''7号引脚'''|}
<ol start="3" style="list-style-type: decimal;"><li><p>在linux系统中,40 pin中的PWM默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先在'''如果您的Windows系统中没有adb工具,可以使用RKDevTool软件(/boot/extlinux/extlinux.conf'''中加上下面的配置</p><p>[[#_使用RKDevTool烧录Linux镜像到TF卡中的方法|orangepi@orangepi ~]$ '''sudo vim /boot/extlinux/extlinux.conf'''</p><p>LABEL Orange Pi</p><p>LINUX /Image</p><p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p><p>'''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-pwm0-m0.dtbo'''</p><p>上面红色字体演示的是打开'''使用RKDevTool烧录Linux镜像到TF卡中的方法pwm0-m0''']]的配置,其他的配置如下表所示,将对应的dtbo配置添加到'''一小节有用到这个软件)中的adb程序。FDTOVERLAYS'''后面即可。</p></li></ol></li></ol>
[[File{| class="wikitable"|-| style="text-align:medialeft;"| '''PWM总线'''| style="text-align: left;"| '''dtbo对应配置'''|-| style="text-align: left;"| '''PWM0_M0'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-pwm0-m0.dtbo'''|-| style="text-align: left;"| '''PWM0_M2'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-pwm0-m2.dtbo'''|-| style="text-align: left;"| '''PWM1_M0'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-pwm1-m0.dtbo'''|-| style="text-align: left;"| '''PWM1_M2'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-pwm1-m2.dtbo'''|-| style="text-align: left;"| '''PWM11_M0'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-pwm11-m0.dtbo'''|-| style="text-align: left;"| '''PWM12_M0'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-pwm12-m0.dtbo'''|-| style="text-align: left;"| '''PWM13_M0'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-pwm13-m0.dtbo'''|-| style="text-align: left;"| '''PWM14_M0'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-pwm14-m0.dtbo'''|-| style="text-align: left;"| '''PWM14_M2'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/7b7fc88499b4e0bfe94534a34803ba14rk3588-pwm14-m2.png]]dtbo'''|}
<ol style="list-style-type: lower-alpha;"><li>然后'''在Windows中使用adb的示例如下所示:重启OPi OS Arch系统'''</li></ol>
[[File<!-- --><ol start="4" style="list-style-type:mediadecimal;"><li><p>当打开一个pwm后,在'''/sys/class/pwm/'''中就会多出一个pwmchipX(X为具体的的数字),比如打开pwm14后,查看'''/sys/class/pwm/'''下的pwmchipX会由两个变成了三个</d6ce50010881a3b7c814d9bb4d386004.png]p><p>[orangepi@orangepi ~]$ '''ls /sys/class/pwm/'''</p><p>pwmchip0 pwmchip1 pwmchip2</p></li><li><p>上面哪个pwmchip对应pwm14呢,我们先查看下 '''ls /sys/class/pwm/ -l'''命令的输出,如下所示:</p><div class="figure">
=== 使用type-c数据线连接adb ===[[File:media/image523.png|575x78px|1010iring_001]]
# 首先准备一根品质良好的Type</div></li><li><p>然后由下表可知,pwm14寄存器的基地址为febf0020,再看 '''ls /sys/class/pwm/ -C数据线l'''命令的输出,可以看到pwmchip2中链接到了febf0020.pwm,所以pwm14对应pwmchip为pwmchip2</p><p>[[File:media/image308.png|575x287px]]</p></li><li><p>然后使用下面的命令可以让pwm14输出一个50Hz的方波(请先切换到root用户,再执行下面的命令)</p></li></ol>
[[File:mediaroot@orangepi ~]# '''echo 0 &gt; /sys/class/d84ad9c1e0e447425ddd86cfefafca1e.png]]pwm/pwmchip2/export'''
[root@orangepi ~]# 然后通过Type-C数据线连接好开发板与Ubuntu PC,开发板Type-C接口的位置如下图所示:'''echo 20000000 &gt; /sys/class/pwm/pwmchip2/pwm0/period'''
[[File:mediaroot@orangepi ~]# '''echo 1000000 &gt; /sys/class/pwm/pwmchip2/pwm0/293482d42e80a8b3e2962b40e834bb41.png]]duty_cycle'''
[root@orangepi ~]# 然后运行下面的命令将Type-C接口设置为'''deviceecho 1 &gt; /sys/class/pwm/pwmchip2/pwm0/enable'''模式
orangepi@orangepi[[File:~$ '''sudo set_devicemedia/image309.sh'''png|575x346px]]
如果linux系统中不存在'''set_device.sh'''脚本,请直接使用下面的命令:<ol start="8" style="list-style-type: decimal;"><li>上面演示的pwm14的测试方法,其他pwm测试方法都是类似的。</li></ol>
orangepi@orangepi:~$ '''sudo bash <span id="can的测试方法-c “echo device &gt; 1"></sys/kernel/debug/usb/fc000000.usb/mode”'''span>=== CAN的测试方法 ===
orangepi@orangepi:~$ '''sudo systemctl restart usbdevice'''<span id="打开can的方法-1"></span>==== 打开CAN的方法 ====
# 然<ol style="list-style-type: decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的CAN总线为CAN0和CAN1共两组CAN总线</p><p>[[File:media/image310.png|574x137px]]</p></li><li><p>在linux系统中,40 pin中的CAN默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先在'''后请确认下adbd已经启动了/boot/extlinux/extlinux.conf'''中加上下面的配置</p><p>[orangepi@orangepi ~]$ '''sudo vim /boot/extlinux/extlinux.conf'''</p><p>LABEL Orange Pi</p><p>LINUX /Image</p><p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p><p>'''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-can0-m0.dtbo'''</p><p>上面红色字体演示的是打开'''can0-m0'''的配置,其他的配置如下表所示,将对应的dtbo配置添加到'''FDTOVERLAYS'''后面即可。</p></li></ol></li></ol>
orangepi@orangepi{| class="wikitable"|-| style="text-align:~$ left;"| '''CAN总线''ps '| style="text-ax align: left;"| grep “adbd”'''dtbo的配置'''|-| style="text-align: left;"| '''can0-m0'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-can0-m0.dtbo'''|-| style="text-align: left;"| '''can1-m0'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-can1-m0.dtbo'''|}
808 ? Sl 0<ol start="2" style="list-style-type:00 lower-alpha;"><li>然后'''重启OPi OS Arch系统'''</usrli></bin/adbdol>
3707 ttyFIQ0 S+ <!-- --><ol start="3" style="list-style-type: decimal;"><li><p>进入linux系统后,使用'''sudo ifconfig -a'''命令如果能看到CAN的设备节点,就说明CAN已正确打开了</p><p>[orangepi@orangepi ~]$ '''sudo pacman -Syy net-tools'''</p><p>[orangepi@orangepi ~]$ '''sudo ifconfig -a'''</p><p>can0: flags=128&lt;NOARP&gt; mtu 16</p><p>unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)</p><p>RX packets 0 bytes 0 (0.0 B)</p><p>RX errors 0 dropped 0 overruns 0 frame 0</p><p>TX packets 0 bytes 0 (0.0 B)</p><p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</p><p>device interrupt 94</p><p>can1:flags=128&lt;NOARP&gt; mtu 16</p><p>unspec 00-00-00-00-00-00-00-00-00 grep –color=auto adbd-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)</p><p>RX packets 0 bytes 0 (0.0 B)</p><p>RX errors 0 dropped 0 overruns 0 frame 0</p><p>TX packets 0 bytes 0 (0.0 B)</p><p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</p><p>device interrupt 95</p></li><li><p>CAN0和CAN1对应的引脚为</p></li></ol>
# 然后在Ubuntu PC上安装下adb工具{| class="wikitable"|-|| style="text-align: left;"| '''CAN0'''| style="text-align: left;"| '''CAN1'''|-| '''TX引脚'''| style="text-align: left;"| '''对应40pin的5号引脚'''| style="text-align: left;"| '''对应40pin的18号引脚'''|-| '''RX引脚'''| style="text-align: left;"| '''对应40pin的3号引脚'''| style="text-align: left;"| '''对应40pin的16号引脚'''|}
test@test<ol start="5" style="list-style-type:~$ decimal;"><li>使用CANalyst-II分析仪测试CAN收发消息的方法请参考下[[\l|'''sudo apt使用CANalyst-get updateII分析仪测试收发消息''']]一小节的内容。</li></ol>
test@test:~$ '''sudo apt<span id="linux-get install sdkorangepi-y adb'''build使用说明"></span>= Linux SDK——orangepi-build使用说明 =
# 然后使用下面的命令查看下有没有识别到adb设备== 编译系统需求 ==
test@test:~$ '''adb devices我们可以在x64的电脑中交叉编译开发板的Linux镜像,也可以在开发板的Ubuntu22.04系统中来编译开发板的Linux镜像,请根据自己的喜好二选一。'''
List of devices attached'''如果是在开发板的Ubuntu22.04系统中使用orangepi-build来编译Linux镜像,请做好散热(尤其是SSD启动时)。如果散热没做好,容易出现文件系统跑飞的错误。'''
'''e0f9f71bc343c305 device'''<span id="使用开发板的ubuntu22.04系统编译"></span>=== 使用开发板的Ubuntu22.04系统编译 ===
# 然后使用下面的命令就可以登录开发板的linux系统<ol style="list-style-type: decimal;"><li><p>Linux SDK,即'''orangepi-build''',支持在开发板的'''Ubuntu 22.04'''的上运行(其它系统没有测试过),所以下载orangepi-build前,请首先确保开发板已安装的Ubuntu版本是Ubuntu 22.04。查看开发板已安装的Ubuntu版本的命令如下所示,如果Release字段显示的不是'''22.04''',说明当前使用的Ubuntu版本不符合要求,请更换系统后再进行下面的操作。</p><p>orangepi@orangepi:~$ '''lsb_release -a'''</p><p>No LSB modules are available.</p><p>Distributor ID: Ubuntu</p><p>Description: Ubuntu 22.04.1 LTS</p><p>Release: '''22.04'''</p><p>Codename: jammy</p></li><li><p>'''由于内核和U-boot等源码都是存放在GitHub上的,所以编译镜像的时候请确保开发板能正常从GitHub下载代码,这点是非常重要的。'''</p></li></ol> <span id="使用x64的ubuntu22.04电脑编译"></span>=== 使用x64的Ubuntu22.04电脑编译 === <ol style="list-style-type: decimal;"><li><p>Linux SDK,即'''orangepi-build''',支持在安装有'''Ubuntu 22.04'''的电脑上运行,所以下载orangepi-build前,请首先确保自己电脑已安装的Ubuntu版本是Ubuntu 22.04。查看电脑已安装的Ubuntu版本的命令如下所示,如果Release字段显示的不是'''22.04''',说明当前使用的Ubuntu版本不符合要求,请更换系统后再进行下面的操作。</p><p>test@test:~$ '''lsb_release -a'''</p><p>No LSB modules are available.</p><p>Distributor ID: Ubuntu</p><p>Description: Ubuntu 22.04 LTS</p><p>Release: '''22.04'''</p><p>Codename: jammy</p></li><li><p>如果电脑安装的是Windows系统,没有安装有Ubuntu 22.04的电脑,可以考虑使用'''VirtualBox'''或者'''VMware'''来在Windows系统中安装一个Ubuntu 22.04虚拟机。但是请注意,不要在WSL虚拟机上编译orangepi-build,因为orangepi-build没有在WSL虚拟机中测试过,所以无法确保能正常在WSL中使用orangepi-build。</p></li><li><p>Ubuntu 22.04 '''amd64'''版本的安装镜像下载地址为:</p><p>[https://repo.huaweicloud.com/ubuntu-releases/21.04/ubuntu-21.04-desktop-amd64.iso '''https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/22.04/ubuntu-22.04-desktop-amd64.iso''']</p><p>或者</p><p>'''https://repo.huaweicloud.com/ubuntu-releases/22.04/ubuntu-22.04.1-desktop-amd64.iso'''</p></li><li><p>在电脑中或者虚拟机中安装完Ubuntu 22.04后,请先设置Ubuntu 22.04的软件源为清华源,不然后面安装软件的时候很容易由于网络原因而出错</p><ol style="list-style-type: lower-alpha;"><li>替换清华源的方法参考这个网页的说明即可</li></ol></li></ol>
test@test[https:~$ //mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ '''adb shellhttps://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/''']
<ol start="2" style="list-style-type: lower-alpha;"><li><p>注意Ubuntu版本需要切换到22.04</p><p>[[File:media/image524.png|576x241px]]</p></li><li><p>需要替换的'''/etc/apt/sources.list'''文件的内容为</p><p>test@test:~$ '''sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak'''root</p><p>test@orangepi5plustest:~$ '''sudo vim /etc/apt/sources.list'''</p><p># 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释</p><p>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse</p><p># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse</p><p>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse</p><p># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse</p><p>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse</p><p># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse</p><p>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse</p><p># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse</p><p># 预发布软件源,不建议启用</p><p># &lt;— 看到这个提示符后说明已成功登录开发板deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse</p><p># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse</p></li><li><p>替换完后需要更新下包信息,并确保没有报错</p><p>test@test:~$ '''sudo apt update'''</p></li><li><p>'''另外,由于内核和U-boot等源码都是存放在GitHub上的,所以编译镜像的时候请确保电脑能正常从GitHub下载代码,这点是非常重要的。'''</p></li></ol>
# 使用adb上传文件到开发板的命令如下所示<span id="获取linux-sdk的源码"></span>== 获取linux sdk的源码 ==
test@test:~$ '''adb push filename /root'''=== 从github下载orangepi-build ===
filename: 1 file pushed. 3.7 MB/s (1075091 bytes in 0.277s)# linux sdk其实指的就是orangepi-build这套代码,orangepi-build是基于armbian build编译系统修改而来的,使用orangepi-build可以编译出多个版本的linux镜像。首先下载orangepi-build的代码,命令如下所示:
test@test:~$ '''如果您的Windows系统中没有adb工具,可以使用RKDevTool软件('''[[#_使用RKDevTool烧录Linux镜像到TF卡中的方法|'''使用RKDevTool烧录Linux镜像到TF卡中的方法''']]'''一小节有用到这个软件)中的adb程序。sudo apt-get update'''
[[Filetest@test:media/7b7fc88499b4e0bfe94534a34803ba14.png]]~$ '''sudo apt-get install -y git'''
test@test:~$ '''在Windows中使用adb的示例如下所示:git clone https://github.com/orangepi-xunlong/orangepi-build.git -b next'''
[[File:media/dfee068ae45e64ddd03fa640b96056be.png]]'''注意,Orange Pi 5 Plus开发板是需要下载orangepi-build的next分支源码的,上面的git clone命令需要指定orangepi-build源码的分支为next。'''
<span id="上传文件到开发板linux系统中的方法"><[[File:media/span>== 上传文件到开发板Linux系统中的方法 ==image525.png|576x298px]]
<span id="在ubuntu'''通过git clone命令下载orangepi-pc中上传文件到开发板linux系统中的方法"></span>=== 在Ubuntu PC中上传文件到开发板Linux系统中的方法 ===build的代码是不需要输入github账号的用户名和密码的(下载本手册中的其他代码也是一样的),如果如输入git clone命令后Ubuntu PC提示需要输入github账号的用户名和密码,一般都是git clone后面的orangepi-build仓库的地址输入错误了,请仔细检查命令拼写是否有错误,而不是以为我们这里忘了提供github账号的用户名和密码。'''
<ol start="2" style=== 使用scp命令上传文件的方法 ===="list-style-type: decimal;"><li>开发板当前使用的u-boot和linux内核版本如下所示</li></ol>
# 使用scp命令可以在Ubuntu PC中上传文件到开发板的Linux系统中,具体命令如下所示{| class="wikitable"## |-| style="text-align: left;"| '''file_path:分支'''需要替换为要上传文件的路径## | style="text-align: left;"| '''orangepi:u-boot版本'''为开发板linux系统的用户名,也可以替换成其它的,比如root## | style="text-align: left;"| '''192.168.xx.xxlinux内核版本'''|-| style="text-align:left;"| '''legacy''' 为开发板的IP地址,请根据实际情况进行修改## | style="text-align: left;"| '''/home/orangepiu-boot 2017.09'''| style="text-align:left;"| '''linux5.10''' 开发板linux系统中的路径,也可以修改为其它的路径|}
test@test:~$ '''scp file_path orangepi@192.168.xx.xx:/home/orangepi/这里所说的分支和orangepi-build源代码的分支不是同一个东西,请不要搞混了。此分支主要是用来区分不同内核源码版本的。'''
# 如果要上传文件夹,需要加上-r参数'''目前RK提供的linux5.10 bsp内核我们定义为legacy分支。如果以后支持主线内核了,就会添加一个current分支。'''
<ol start="3" style="list-style-type: decimal;"><li><p>orangepi-build下载完后会包含下面的文件和文件夹</p><ol style="list-style-type: lower-alpha;"><li><p>'''build.sh''': 编译启动脚本</p></li><li><p>'''external''': &gt; 包含编译镜像需要用的配置文件、特定的脚本以及部分程序的源码等</p></li><li><p>'''LICENSE''': GPL 2许可证文件</p></li><li><p>'''README.md''': orangepi-build说明文件</p></li><li><p>'''scripts''': 编译linux镜像的通用脚本</p><p>test@test:~/orangepi-build$ '''scp -r dir_path orangepi@192ls'''</p><p>'''build.168sh external LICENSE README.xx.xx:/home/orangepimd scripts'''</p><p>'''如果是从github下载的orangepi-build的代码,下载完后你可能会发现orangepi-build中并没有包含u-boot和linux内核的源码,也没有编译u-boot和linux内核需要用到交叉编译工具链,这是正常的,因为这些东西都存放在其它单独的github仓库或者某些服务器上了(下文会详述其地址)。orangepi-build在脚本和配置文件中会指定u-boot、linux内核和交叉编译工具链的地址,运行orangepi-build时,当其发现本地没有这些东西,会自动去相应的地方下载的。'''</p></li></ol></li></ol>
# scp还有更多的用法,请使用下面的命令查看man手册=== 下载交叉编译工具链 ===
test@test:~$ '''man scp只有在x64的电脑中使用orangepi-build编译镜像才会下载交叉编译工具链。在开发板的Ubuntu22.04中编译开发板的linux镜像是不会下载交叉编译工具链的,此时orangepi-build/toolchains会是一个空文件夹。'''
<ol style="list-style-type: decimal;"><li><p>orangepi-build第一次运行的时候会自动下载交叉编译工具链放在'''toolchains'''文件夹中,每次运行orangepi-build的build.sh脚本后,都会检查'''toolchains'''中的交叉编译工具链是否都存在,如果不存在则会重新开始下载,如果存在则直接使用,不会重复下载。</p><div class=== 使用filezilla上传文件的方法 ===="figure">
# 首先在Ubuntu PC中安装filezilla[[File:media/image526.png|575x278px|选区_396]]
</div></li><li><p>交叉编译工具链在中国境内的镜像网址为清华大学的开源软件镜像站</p><p>[https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain/ '''https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain/''']</p></li><li><p>'''toolchains'''下载完后会包含多个版本的交叉编译工具链,开发板只会使用其中的两个</p><p>test@test:~/orangepi-build$ '''sudo apt install ls toolchains/'''</p><p>gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu</p><p>gcc-arm-11.2-2022.02-x86_64-arm-none-linux-gnueabihf</p><p>gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu</p><p>gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf</p><p>gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi</p><p>gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf</p><p>gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu</p><p>gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabi</p><p>gcc-linaro-aarch64-none-elf-4.8-2013.11_linux</p><p>gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux</p><p>gcc-linaro-arm-none-eabi-4.8-2014.04_linux</p></li><li><p>编译linux内核源码使用的交叉编译工具链为</p><ol style="list-style-type: lower-alpha;"><li><p>linux5.10</p><p>'''gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu'''</p></li></ol></li><li><p>编译u-boot源码使用的交叉编译工具链为</p><ol style="list-style-type: lower-alpha;"><li><p>v2017.09</p><p>'''gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-y filezillagnu'''</p></li></ol></li></ol>
# 然后使用下面的命令打开filezilla=== orangepi-build完整目录结构说明 ===
<ol style="list-style-type: decimal;"><li><p>orangepi-build仓库下载完后并不包含linux内核、u-boot的源码以及交叉编译工具链,linux内核和u-boot的源码存放在独立的git仓库中</p><ol style="list-style-type: lower-alpha;"><li><p>linux内核源码存放的git仓库如下所示:</p><p>'''https://github.com/orangepi-xunlong/linux-orangepi/tree/orange-pi-5.10-rk3588'''</p></li><li><p>u-boot源码存放的git仓库如下所示:</p><p>'''https://github.com/orangepi-xunlong/u-boot-orangepi/tree/v2017.09-rk3588'''</p></li></ol></li><li><p>orangepi-build第一次运行的时候会去下载交叉编译工具链、u-boot和linux内核源码,成功编译完一次linux镜像后在orangepi-build中可以看到的文件和文件夹有</p><ol style="list-style-type: lower-alpha;"><li><p>'''build.sh''': 编译启动脚本</p></li><li><p>'''external''': &gt; 包含编译镜像需要用的配置文件、特定功能的脚本以及部分程序的源码,编译镜像过程中缓存的rootfs压缩包也存放在external中</p></li><li><p>'''kernel''': &gt; 存放linux内核的源码,里面名为'''orange-pi-5.10-rk3588'''的文件夹存放的就是RK3588/RK3588S系列开发板legacy分支的内核源码,内核源码的文件夹的名字请不要手动修改,如果修改了,编译系统运行时会重新下载内核源码</p></li><li><p>'''LICENSE''': GPL 2许可证文件</p></li><li><p>'''README.md''': orangepi-build说明文件</p></li><li><p>'''output''': &gt; 存放编译生成的u-boot、linux等deb包、编译日志以及编译生成的镜像等文件</p></li><li><p>'''scripts''': 编译linux镜像的通用脚本</p></li><li><p>'''toolchains''': 存放交叉编译工具链</p></li><li><p>'''u-boot''': &gt; 存放u-boot的源码,里面名为'''v2017.09-rk3588'''的文件夹存放的就是RK3588/RK3588S系列开发板legacy分支的u-boot源码,u-boot源码的文件夹的名字请不要手动修改,如果修改了,编译系统运行时会重新下载u-boot源码</p></li><li><p>'''userpatches''': 存放编译脚本需要用到的配置文件</p><p>test@test:~/orangepi-build$ '''filezillals'''</p><p>'''build.sh external kernel LICENSE output README.md scripts toolchains u-boot userpatches'''</p></li></ol></li></ol>
# filezilla打开后的界面如下所示,此时右边远程站点下面显示的是空的== 编译u-boot ==
<ol style="list-style-type: decimal;">
<li><p>运行build.sh脚本,记得加sudo权限</p>
<p>test@test:~/orangepi-build$ '''sudo ./build.sh'''</p></li>
<li><p>选择'''U-boot package''',然后回车</p>
<div class="figure">
[[File:media/3b7360ea29e03dd177b776501aa12c22image527.png|截图 2022-12-03 19-04-40576x132px|选区_238]] </div># 连接开发板的方法如下图所示
</div></li>
<li><p>接着选择开发板的型号</p>
<div class="figure">
[[File:media/503bb172ac97f241bca7cb024a3fa743image528.png|IMG_256576x289px|6]]
</div></li><li><p>然后就会开始编译u-boot,编译时提示的部分信息说明如下</p><ol style="list-style-type: lower-alpha;"><li><p>u-boot源码的版本</p><p>[ o.k. ] Compiling u-boot [ '''v2017.09''' ]</p></li><li><p>交叉编译工具链的版本</p><p>[ o.k. ] Compiler version [ '''aarch64-linux-gnu-gcc 7.4.1''' ]</p></li><li><p>编译生成的u-boot deb包的路径</p><p>[ o.k. ] Target directory [ '''orangepi-build/output/debs/u-boot''' ]</p></li><li><p>编译生成的u-boot deb包的包名</p><p>[ o.k. ] File name [ '''linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb''' ]</p></li><li><p>编译使用的时间</p><p>[ o.k. ] Runtime [ '''1 min''' ]</p></li><li><p>重复编译u-boot的命令,使用下面的命令无需通过图形界面选择,可以直接开始编译u-boot</p><p>[ o.k. ] Repeat Build Options [ '''sudo ./build.sh BOARD=orangepi5plus BRANCH=legacy BUILD_OPT=u-boot KERNEL_CONFIGURE=no''' ]</p></li></ol></li><li><p>查看编译生成的u-boot deb包</p><p>test@test:~/orangepi-build$ '''ls output/debs/u-boot/'''</p><p>linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb</p></li><li><p>生成的u-boot的deb包包含的文件如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>使用下面的命令可以解压deb包</p><p>test@test:~/orangepi-build$ '''cd output/debs/u-boot'''</p><p>test@test:~/orangepi_build/output/debs/u-boot$ $ '''sudo dpkg -x''' \</p><p>'''linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb . (注意命令最后有个”.”)'''</p><p>test@test:~/orangepi_build/output/debs/u-boot$ '''ls'''</p><p>linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb '''usr'''</p></li><li><p>解压后的文件如下所示</p><p>test@test:~/orangepi-build/output/debs/u-boot$ '''tree usr'''</p><p>usr</p><p>└── lib</p><p>├── linux-u-boot-legacy-orangepi5plus_1.0.0_arm64</p><p>│   ├── idbloader.img</p><p>│   ├── rkspi_loader.img</p><p>│   └── u-boot.itb</p><p>└── u-boot</p><p>├── LICENSE</p><p>├── orangepi_5_plus_defconfig</p><p>└── platform_install.sh</p><p>3 directories, 6 files</p></li></ol></li><li><p>orangepi-bulid编译系统编译u-boot源码时首先会将u-boot的源码和github服务器的u-boot源码进行同步,所以如果想修改u-boot的源码,首先需要关闭源码的下载更新功能('''需要完整编译过一次u-boot后才能关闭这个功能,否则会提示找不到u-boot的源码,如果是从百度云盘下载的源码压缩包,则没有这个问题,因为u-boot的源码都已缓存好了'''),否则所作的修改都会被还原,方法如下:</p><p>设置userpatches/config-default.conf中的IGNORE_UPDATES变量为”yes”</p><p>test@test:~/orangepi-build$ '''vim userpatches/config-default.conf'''</p><p>IGNORE_UPDATES=&quot;'''yes'''&quot;</p></li><li><p>调试u-boot代码时,可以使用下面的方法来更新linux镜像中的u-boot进行测试</p><ol style="list-style-type: lower-alpha;"><li><p>将编译好的u-boot的deb包上传到开发板的linux系统中</p><p>test@test:~/orangepi-build$ '''cd output/debs/u-boot'''</p><p>test@test:~/orangepi_build/output/debs/u-boot$ '''scp \'''</p><p>'''linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb [mailto:root@192.168.1.xxx:/root root@192.168.1.xxx:/root]'''</p></li><li><p>然后登录到开发板,卸载已安装的u-boot的deb包</p><p>root@orangepi:~# '''apt purge -y linux-u-boot-orangepi5plus-legacy'''</p></li><li><p>再安装刚才上传的新的u-boot的deb包</p><p>root@orangepi:~# '''dpkg -i''' '''linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb'''</p></li><li><p>然后运行 nand-sata-install脚本</p><p>root@orangepi:~# '''nand-sata-install'''</p></li><li><p>然后选择'''保存密码5 Install/Update the bootloader on SD/eMM'''来更新TF卡中的u-boot或者'''7 Install/Update the bootloader on SPI Flash'',再点击'来更新SPI Flash中的u-boot</p><p>[[File:media/image529.png|317x154px]]</p></li><li><p>按下回车键后首先会弹出一个Warring</p><p>[[File:media/image530.png|314x170px]]</p></li><li><p>再按下回车键就会开始更新u-boot,更新完后会显示下面的信息</p><p>[[File:media/image531.png|223x125px]]</p></li><li><p>然后就可以重启开发板来测试u-boot的修改是否生效了</p></li></ol></li><li><p>其它有用的信息</p><ol style="list-style-type: lower-alpha;"><li><p>u-boot 2017.09源码中,开发板使用的defconfig配置文件为</p></li><li><p>[https://github.com/orangepi-xunlong/u-boot-orangepi/blob/v2017.09-rk3588/configs/orangepi_5_plus_defconfig ''确定'orangepi-build/u-boot/v2017.09-rk3588/configs/orangepi_5_plus_defconfig''']u-boot &gt; 2017.09源码中,开发板使用dts文件为</p></li></ol></li></ol>
<span id="orangepi-buildu-bootv2017.09-rk3588archarmdtsrk3588-orangepi-5-plus.dts编译linux内核"></span>== [[Filehttps:media/c359910f5c6337e8e3028609f8c2cf73/github.com/orangepi-xunlong/u-boot-orangepi/blob/v2017.png]] # 然后选择09-rk3588/arch/arm/dts/rk3588-orangepi-5-plus.dts '''总是信任该主机''',再点击'''确定orangepi-build/u-boot/v2017.09-rk3588/arch/arm/dts/rk3588-orangepi-5-plus.dts''']编译linux内核 ==
<ol style="list-style-type: decimal;">
<li><p>运行build.sh脚本,记得加sudo权限</p>
<p>test@test:~/orangepi-build$ '''sudo ./build.sh'''</p></li>
<li><p>选择'''Kernel package''',然后回车</p>
<div class="figure">
[[File:media/364fc9c47a12b288156e284afe51d842image532.png|IMG_256575x116px|选区_240]] </div># 连接成功后在filezilla软件的右边就可以看到开发板linux文件系统的目录结构了
</div></li>
<li><p>接着选择开发板的型号</p>
<div class="figure">
[[File:media/755a60b1e73071a96951dbcbd3b8e47fimage528.png|IMG_256576x289px|6]]
</div></li># 然后在filezilla软件的右边选择要上传到开发板中的路径,再在filezilla软件的左边选中Ubuntu PC中要上传的文件,再点击鼠标右键,再点击上传选项就会开始上传文件到开发板中了。<li><p>然后会提示是否需要显示内核配置界面,如果不需要修改内核配置,则选择第一个即可,如果需要修改内核配置,则选择第二个</p><p>[[File:media/image533.png|576x87px]]</p></li><li><p>如果第4) 步选择了需要显示内核配置菜单(第二个选项),则会弹出通过'''make menuconfig'''打开的内核配置的界面,此时可以直接修改内核的配置,修改完后再保存退出即可,退出后会开始编译内核源码</p><p>[[File:media/image534.png|575x400px]]</p></li></ol>
<div class!-- --><ol style="figurelist-style-type: lower-alpha;"><li><p>如果不需要修改内核的配置选项,在运行build.sh脚本时,传入'''KERNEL_CONFIGURE=no'''就可临时屏蔽弹出内核的配置界面了</p><p>test@test:~/orangepi-build$ '''sudo ./build.sh KERNEL_CONFIGURE=no'''</p></li><li><p>也可以设置'''orangepi-build/userpatches/config-default.conf'''配置文件中的'''KERNEL_CONFIGURE=no''',这样可以永久禁用这个功能</p></li><li><p>编译内核的时候如果提示下面的错误,这是由于Ubuntu &gt; PC的终端界面太小,导致'''make &gt; menuconfig'''的界面无法显示,请把Ubuntu &gt; PC的终端调到最大,然后重新运行build.sh脚本</p><p>[[File:media/image535.png|574x234px]]</p></li></ol>
<!-- --><ol start="6" style="list-style-type: decimal;"><li><p>编译内核源码时提示的部分信息说明如下</p><ol style="list-style-type: lower-alpha;"><li><p>linux内核源码的版本</p><p>[ o.k. ] Compiling current kernel [ '''5.10.110''' ]</p></li><li><p>使用的交叉编译工具链的版本</p><p>[ o.k. ] Compiler version [ '''aarch64-none-linux-gnu-gcc 11.2.1''' ]</p></li><li><p>内核默认使用的配置文件以及它存放的路径</p><p>[ o.k. ] Using kernel config file [ '''config/kernel/linux-rockchip-rk3588-legacy.config''' ]</p></li><li><p>编译生成的内核相关的deb包的路径</p><p>[o.k. ] Target directory ['''orangepi-build/output/debs/''' ]</p></li><li><p>编译生成的内核镜像deb包的包名</p><p>[ o.k. ] File:medianame [ '''linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb''' ]</p></li><li><p>编译使用的时间</p><p>[ o.k. ] Runtime [ '''5 min''' ]</p></li><li><p>最后会显示重复编译上一次选择的内核的编译命令,使用下面的命令无需通过图形界面选择,可以直接开始编译内核源码</b06497997793e704ad92d334e6328282p><p>[ o.k.png|IMG_256]Repeat Build Options [ '''sudo ./build.sh BOARD=orangepi5plus BRANCH=legacy BUILD_OPT=kernel KERNEL_CONFIGURE=no''' ]</p></li></ol></li><li><p>查看编译生成的内核相关的deb包</p><ol style="list-style-type: lower-alpha;"><li><p>'''linux-dtb-legacy-rockchip-rk3588_1.0.0_arm64.deb'''包含内核使用的dtb文件</p></li><li><p>'''linux-headers-legacy-rockchip-rk3588_1.0.0_arm64.deb'''包含内核头文件</p></li><li><p>'''linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb'''包含内核镜像和内核模块</p><p>test@test:~/orangepi-build$ '''ls output/debs/linux-*'''</p><p>output/debs/linux-dtb-legacy-rockchip-rk3588_1.0.0_arm64.deb output/debs/linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb</p><p>output/debs/linux-headers-legacy-rockchip-rk3588_1.0.0_arm64.deb</p></li></ol></li><li><p>生成的linux-image的deb包包含的文件如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>使用下面的命令可以解压deb包</p><p>test@test:~/orangepi-build$ '''cd output/debs'''</p></li></ol></li></ol>
<test@test:~/div>orangepi_build/output/debs$ '''mkdir test'''# 上传完成后就可以去开发板linux系统中的对应路径中查看上传的文件了# 上传文件夹的方法和上传文件的方法是一样的,这里就不再赘述了test@test:~/orangepi_build/output/debs$ '''cp \'''
<span id="在windows'''linux-pc中上传文件到开发板linux系统中的方法"><image-legacy-rockchip-rk3588_1.0.0_arm64.deb test/span>=== 在Windows PC中上传文件到开发板Linux系统中的方法 ==='''
<span id="使用filezilla上传文件的方法-1"><test@test:~/span>==== 使用filezilla上传文件的方法 ====orangepi_build/output/debs$ '''cd test'''
# 首先下载filezilla软件Windows版本的安装文件,下载链接如下所示test@test:~/orangepi_build/output/debs/test$ '''dpkg -x \'''
[https://filezilla-project.org/download.php?type=server '''https://filezillalinux-image-legacy-rockchip-projectrk3588_1.0.0_arm64.org/downloaddeb .php#close''']
<div class="figure">test@test:~/orangepi_build/output/debs/test$ '''ls'''
[[File:media/1dcdfbc301754638212b3ae858835a62'''boot etc lib''' linux-image-legacy-rockchip-rk3588_1.png|IMG_256]]0.0_arm64.deb '''usr'''
<ol start="2" style="list-style-type: lower-alpha;"><li><p>解压后的文件如下所示</divp>[[File<p>test@test:media~/orangepi-build/output/debs/test$ '''tree -L 2'''</f757fa9e2104061b1be2ce2ba9a6f123p><p>.png]]</p><p>├── boot</p><p>│   ├── config-5.10.110-rockchip-rk3588</p><p>│   ├── System.map-5.10.110-rockchip-rk3588</p><p>│   └── vmlinuz-5.10.110-rockchip-rk3588</p><p>├── etc</p><p>│   └── kernel</p><p>├── lib</p><p>│   └── modules</p><p>├── linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb</p><p>└── usr</p><p>├── lib</p><p>└── share</p></li></ol>
<!-- --><ol start="9" style="list-style-type: decimal;"><li><p>orangepi-bulid编译系统编译linux内核源码时首先会将linux内核源码和github服务器的linux内核源码进行同步,所以如果想修改linux内核的源码,首先需要关闭源码的更新功能('''需要完整编译过一次linux内核源码后才能关闭这个功能,否则会提示找不到linux内核的源码,如果是从百度云盘下载的源码压缩包,则没有这个问题,因为linux的源码都已缓存好了'''),否则所作的修改都会被还原,方法如下:</p><p>设置'''userpatches/config-default.conf'''中的IGNORE_UPDATES变量为”yes”</p><p>test@test:~/orangepi-build$ '''vim userpatches/config-default.conf'''</p><p>IGNORE_UPDATES=&quot;'''yes'''&quot;</p></li><li><p>如果对内核做了修改,可以使用下面的方法来更新开发板linux系统的内核和内核模块</p><ol style="list-style-type: lower-alpha;"><li><p>将编译好的linux内核的deb包上传到开发板的linux系统中</p><p>test@test:~/orangepi-build$ '''cd output/debs'''</p><p>test@test:~/orangepi-build/output/debs$ '''scp \'''</p><p>'''linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb root@192.168.1.xxx:/root'''</p></li><li><p>然后登录到开发板,卸载已安装的linux内核的deb包</p><p>root@orangepi:~# 下载的安装包如下所示,然后双击直接安装即可'''apt purge -y linux-image-legacy-rockchip-rk3588'''</p></li><li><p>再安装刚才上传的新的linux内核的deb包</p><p>root@orangepi:~# '''dpkg -i linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb'''</p></li><li><p>然后重启开发板,再查看内核相关的修改是否已生效</p><p>root@orangepi:~# '''reboot'''</p></li></ol></li><li><p>其它有用的信息</p><ol style="list-style-type: lower-alpha;"><li><p>内核配置文件存放位置如下所示,请不要到内核源码中去找开发板所使用的内核配置文件</p></li><li><p>[https://github.com/orangepi-xunlong/orangepi-build/blob/next/external/config/kernel/linux-rockchip-rk3588-legacy.config '''orangepi-build/external/config/kernel/linux-rockchip-rk3588-legacy.config''']开发板使用的dts文件所在的位置为</p></li></ol></li></ol>
<span id="orangepi-buildkernelorange-pi-5.10-rk3588archarm64bootdtsrockchiprk3588-orangepi-5-plus.dts编译rootfs"></span>== [https://github.com/orangepi-xunlong/linux-orangepi/blob/orange-pi-5.10-rk3588/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts '''FileZilla_Server_1orangepi-build/kernel/orange-pi-5.10-rk3588/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5.1_win64-setupplus.exedts''']编译rootfs ==
安装过程中,下面的安装界面请选择<ol style="list-style-type: decimal;"><li><p>运行build.sh脚本,记得加sudo权限</p><p>test@test:~/orangepi-build$ '''Declinesudo ./build.sh''',然后再选择</p></li><li><p>选择'''Next&gt;Rootfs and all deb packages''',然后回车</p></li></ol>
<div class="figure">
[[File:media/f6d1478e15e5c2fdc2bbad04daa5ac90image536.png|IMG_256576x119px|选区_241]]
</div>
# filezilla打开后的界面如下所示,此时右边远程站点下面显示的是空的<ol start="3" style="list-style-type: decimal;"><li><p>接着选择开发板的型号</p><div class="figure"> [[File:media/image528.png|576x289px|6]]
</div></li>
<li><p>然后选择rootfs的类型(目前主要维护'''bullseye/focal/jammy''')</p>
<div class="figure">
[[File:media/f19adeefed310b1822ad6f57e7a89a73image537.png|IMG_256575x180px|7]] </div># 连接开发板的方法如下图所示:
</div></li>
<li><p>然后选择镜像的类型</p>
<ol style="list-style-type: lower-alpha;">
<li><p>'''Image with console interface &gt; (server)'''表示服务器版的镜像,体积比较小</p></li>
<li><p>'''Image with desktop environment'''表示带桌面的镜像,体积比较大</p>
<div class="figure">
[[File:media/95b0d7d63ff312f501e117b8a3fc3af2image538.png|IMG_256576x75px|选区_245]] </div># 然后选择'''保存密码''',再点击'''确定'''
</div></li></ol>
</li>
<li><p>如果是编译服务器版的镜像,还可以选择编译Standard版本或者Minimal版本,Minimal版本预装的软件会比Standard版本少很多('''没特殊需求请不要选择Minimal版本,因为很多东西默认没有预装,部分功能可能用不了''')</p>
<div class="figure">
[[File:media/476ac540096c0b3517fd6d1bf072a8abimage539.png|IMG_256576x78px|选区_397]] </div># 然后选择'''总是信任该主机''',再点击'''确定'''
</div></li>
<li><p>如果是编译桌面版本的镜像还需要选择桌面环境的类型,目前Ubuntu Jammy主要维护XFCE和Gnome两种桌面,Ubuntu Focal只维护XFCE桌面,Debian Bullseye主要维护XFCE和KDE桌面</p>
<div class="figure">
[[File:media/f7be7d1baf5d4bb398944e60091028c1image540.png|IMG_256575x99px|Selection_001]]
</div>
# 连接成功后在filezilla软件的右边就可以看到开发板linux文件系统的目录结构了<p>[[File:media/image541.png|576x74px]]</p><p>然后可以选择需要安装的额外的软件包。这里请按下回车键直接跳过。</p><p>[[File:media/image542.png|575x264px]]</p></li><li><p>然后就会开始编译rootfs,编译时提示的部分信息说明如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>rootfs的类型</p><p>[ o.k. ] local not found [ Creating new rootfs cache for '''jammy''']</p></li><li><p>编译生成的rootfs压缩包的存放路径</p><p>[ o.k. ] Target directory [ '''external/cache/rootfs''' ]</p></li><li><p>编译生成的rootfs压缩包的名字</p><p>[ o.k. ] File name [ '''jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4''' ]</p></li><li><p>编译使用的时间</p><p>[ o.k. ] Runtime [ '''13 min''' ]</p></li></ol></li><li><p>查看编译生成的rootfs压缩包</p><ol style="list-style-type: lower-alpha;"><li><p>'''jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4'''是rootfs的压缩包,名字各字段的含义为</p><ol style="list-style-type: lower-alpha;"><li><p>'''jammy'''表示rootfs的linux发行版的类型</p></li><li><p>'''xfce'''表示rootfs为桌面版的类型,如果为'''cli'''则表示服务器版类型</p></li><li><p>'''arm64'''表示rootfs的架构类型</p></li><li><p>'''f930ff6ebbac1a72108a2e100762b18f'''是由rootfs安装的所有软件包的包名生成的MD5哈希值,只要没有修改rootfs安装的软件包的列表,那么这个值就不会变,编译脚本会通过这个MD5哈希值来判断是否需要重新编译rootfs</p></li></ol></li><li><p>'''jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.list'''列出了rootfs安装的所有软件包的包名</p><p>test@test:~/orangepi-build$ '''ls external/cache/rootfs/'''</p><p>'''jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4'''</p><p>jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.current</p><p>jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.list</p></li></ol></li><li><p>如果需要的rootfs在'''external/cache/rootfs'''下已经存在,那么再次编译rootfs就会直接跳过编译过程,不会重新开始编译,编译镜像的时候也会去'''external/cache/rootfs'''下查找是否已经有缓存可用的rootfs,如果有就直接使用,这样可以节省大量的下载编译时间。</p></li></ol>
<div class="figure">= 编译linux镜像 ==
[[File<ol style="list-style-type: decimal;"><li><p>运行build.sh脚本,记得加sudo权限</p><p>test@test:media~/orangepi-build$ '''sudo ./be556f78b621118eacb9e93ad99dffddbuild.png|IMG_256]]sh'''</p></li><li><p>选择'''Full OS image for flashing''',然后回车</p></li></divol># 然后在filezilla软件的右边选择要上传到开发板中的路径,再在filezilla软件的左边选中Windows PC中要上传的文件,再点击鼠标右键,再点击上传选项就会开始上传文件到开发板中了
<div class="figure">
[[File:media/1ad637781d4f63286b9e6751bb9119daimage543.png|IMG_256576x128px|选区_242]]
</div>
# 上传完成后就可以去开发板linux系统中的对应路径中查看上传的文件了<ol start="3" style="list-style-type: decimal;"># 上传文件夹的方法和上传文件的方法是一样的,这里就不再赘述了<li><p>然后选择开发板的型号</p><div class="figure">
<span id="hdmi测试"><[[File:media/span>== HDMI测试 ==image528.png|576x289px|6]]
<span id="hdmi输出测试"/div></spanli><li><p>然后选择rootfs的类型(目前主要维护'''bullseye/focal/jammy''')</p><div class=== HDMI输出测试 ==="figure">
# 开发板有两个HDMI输出接口,所在位置如下图所示:[[File:media/image537.png|575x180px|7]]
[[File</div></li><li><p>然后选择镜像的类型</p><ol style="list-style-type:medialower-alpha;"><li><p>'''Image with console interface &gt; (server)'''表示服务器版的镜像,体积比较小</p></li><li><p>'''Image with desktop environment'''表示带桌面的镜像,体积比较大</5d04176e89fe3f8b6482ef8ee148cf2f.png]]p><div class="figure">
# Linux系统默认配置HDMI_TX1支持8K显示,HDMI_TX2默认只支持4K显示(同一时间只能有1个HDMI_TX接口支持8K显示)。如果想设置HDMI_TX2支持8K显示,请按照如下步骤设置下:## 首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限[[File:media/image538.png|576x75px|选区_245]]
orangepi@orangepi:~$ </div></li></ol></li><li><p>如果是编译服务器版的镜像,还可以选择编译Standard版本或者Minimal版本,Minimal版本预装的软件会比Standard版本少很多('''sudo orangepi-config没特殊需求请不要选择Minimal版本,因为很多东西默认没有预装,部分功能可能用不了''')</p><div class="figure">
# 然后选择'''System'''[[File:media/image539.png|569x77px|选区_397]]
[[File:media</5b020440753c1c1d150d0993f08eacfd.png]]div></li><li><p>如果是编译桌面版本的镜像还需要选择桌面环境的类型,目前Ubuntu Jammy主要维护XFCE和Gnome两种桌面,Ubuntu Focal只维护XFCE桌面,Debian Bullseye主要维护XFCE和KDE桌面</p><div class="figure">
# 然后选择'''Hardware'''[[File:media/image540.png|575x99px|Selection_001]]
</div><p>[[File:media/image541.png|576x74px]]</p><p>然后可以选择需要安装的额外的软件包。这里请按下回车键直接跳过。</p><p>[[File:media/0d5151e38da17701cc4920f1997e064cimage542.png|575x264px]]</p></li><li><p>然后就会开始编译linux镜像,编译的大致流程如下</p><ol style="list-style-type: lower-alpha;"><li><p>初始化Ubuntu PC的编译环境,安装编译过程需要的软件包</p></li><li><p>下载u-boot和linux内核的源码(如果已经缓存,则只更新代码)</p></li><li><p>编译u-boot源码,生成u-boot的deb包</p></li><li><p>编译linux源码,生成linux相关的deb包</p></li><li><p>制作linux firmware的deb包</p></li><li><p>制作orangepi-config工具的deb包</p></li><li><p>制作板级支持的deb包</p></li><li><p>如果是编译desktop版镜像,还会制作desktop相关的deb包</p></li><li><p>检查rootfs是否已经缓存,如果没有缓存,则重新制作rootfs,如果已经缓存,则直接解压使用</p></li><li><p>安装前面生成的deb包到rootfs中</p></li><li><p>对不同的开发板和不同类型镜像做一些特定的设置,如预装额外的软件包,修改系统配置等</p></li><li><p>然后制作镜像文件,并格式化分区,默认类型为ext4</p></li><li><p>再将配置好的rootfs拷贝到镜像的分区中</p></li><li><p>然后更新initramfs</p></li><li><p>最后将u-boot的bin文件通过dd命令写入到镜像中</p></li></ol></li><li><p>编译完镜像后会提示下面的信息</p><ol style="list-style-type: lower-alpha;"><li><p>编译生成的镜像的存放路径</p><p>[ 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''' ]</p></li><li><p>编译使用的时间</p></li></ol></li></ol>
# 然后使用键盘的方向键定位到下图所示的位置,再使用'''空格[ o.k. ] Runtime [ 19 min ]'''选中'''hdmi2-8k'''配置
<ol style="list-style-type: lower-alpha;"><li><p>重复编译镜像的命令,使用下面的命令无需通过图形界面选择,可以直接开始编译镜像</p><p>[o.k. ] Repeat Build Options [File:media'''sudo ./cd8b4cca1f4668a914d083dfe286f348build.png]sh BOARD=orangepi5plus BRANCH=legacy BUILD_OPT=image RELEASE=bullseye BUILD_MINIMAL=no BUILD_DESKTOP=no KERNEL_CONFIGURE=yes''' ]</p></li></ol>
# 然后选择'''&lt;Save&gt;'''保存<span id="linux开发手册"></span>= Linux开发手册 =
[[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5b.png]]== 在开发板的linux系统中单独编译内核源码的方法 ==
# 然后选择<ol style="list-style-type: decimal;"><li><p>首先下载开发板的Linux内核源码</p><p>'''&lt;Back&gt;orangepi@orangepi:~$ git clone --depth=1 -b orange-pi-5.10-rk3588 https://github.com/orangepi-xunlong/linux-orangepi'''</p></li></ol>
'''如果从github下载代码有问题,可以去开发板的[[Filehttp:media/3191851a2c1e634c8765850e0eedbe63/www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.png]html 官方工具]中下载内核源码压缩包,然后上传到开发板的linux系统中,再解压即可。'''
# 然后选择'''&lt;Reboot&gt;'''重启系统使配置生效[[File:media/image544.png|223x86px]] [[File:media/image545.png|305x87px]]
[[File:media/03310676d04e3df78bf5a4f3536ad49c.png]]'''解压内核源码压缩包的命令为:'''
# 然后使用HDMI转HDMI线连接Orange Pi开发板和HDMI显示器orangepi@orangepi:~$ '''tar zxf orange-pi-5.10-rk3588.tar.gz'''
[[Fileorangepi@orangepi:media/4c06c9135e500bd449b1dc7078fb7235~$ '''mv orange-pi-5.png]]10-rk3588 linux-orangepi'''
'''注意,如果想接4K或者8K显示器,请确保HDMI线支持4K或者8K视频显示。解压后请执行下面的命令和github同步下源码,确保源码为最新的状态:'''
# 启动linux系统后如果HDMI显示器有图像输出说明HDMI接口使用正常orangepi@orangepi:~$ '''cd linux-orangepi'''
orangepi@orangepi:~/linux-orangepi$ '''注意,很多笔记本电脑虽然带有HDMI接口,但是笔记本的HDMI接口一般只有输出功能,并没有HDMI in的功能,也就是说并不能将开发板的HDMI输出显示到笔记本的屏幕上。git pull'''
<ol start="2" style="list-style-type: decimal;"><li><p>然后配置下默认的内核配置</p><p>orangepi@orangepi:~$ '''当想把开发板的HDMI接到笔记本电脑HDMI接口时,请先确认清楚您的笔记本是支持HDMI in的功能。cd linux-orangepi'''</p><p>orangepi@orangepi:~/linux-orangepi$ '''make rockchip_linux_defconfig'''</p></li></ol>
'''当HDMI没有显示的时候,请先检查下HDMI线有没有插紧,确认接线没问题后,可以换一个不同的屏幕试下有没有显示。rockchip_linux_defconfig在内核源码中的路径为arch/arm64/configs/'''
<span idol start="hdmi3" style="list-style-in的测试方法type: decimal;"><li><p>然后编译内核源码</p><p>orangepi@orangepi:~/linux-orangepi$ '''make -j10'''</p></li><li><p>然后安装下内核模块</spanp>=== HDMI IN的测试方法 ===<p>orangepi@orangepi:~/linux-orangepi$ '''sudo make modules_install'''</p></li></ol>
# 开发板HDMI In接口的所在位置如下所示:'''内核模块的安装路径为:/lib/modules'''
[[File:media'''执行完sudo make modules_install命令后可以看到/02b0241c5966daf8d9b568d8fc42282c.png]]lib/modules/下会多了一个内核模块的文件夹:'''
# 首先使用下图所示的HDMI转HDMI线将其它设备的HDMI输出接到开发板的HDMI In接口上orangepi@orangepi5plus:~$ '''ls /lib/modules'''
[[File:media/4c06c9135e500bd449b1dc7078fb7235'''5.png]]10.110+''' 5.10.110-rockchip-rk3588
# Linux系统HDMI In功能默认是关闭的,打开方法如下所示:<ol start="5" style="list-style-type: decimal;"><li><p>然后安装内核镜像和uInitrd</p>## 首先运行下'''<p>orangepi@orangepi:~/linux-config''',普通用户记得加orangepi$ '''sudomake install'''权限</p></li></ol>
orangepi@orangepi:~$ '''sudo orangepi-config内核镜像和uInitrd的安装路径为:/boot/'''
# 然后选择'''System执行完 sudo make install命令后可以看到/boot/下会多了一个内核文件:'''
[[Fileorangepi@orangepi5plus:media~/5b020440753c1c1d150d0993f08eacfdorange-pi-5.png]]10-rk3588$ '''ls /boot/vmlinuz*'''
# 然后选择'''Hardware/boot/vmlinuz-5.10.110+''' /boot/vmlinuz-5.10.110-rockchip-rk3588<br /><br />'''系统启动时实际加载的是/boot/Image这个文件,Image是vmlinuz文件的拷贝。'''
[[File<ol start="6" style="list-style-type:mediadecimal;"><li><p>然后安装dtb文件到'''/0d5151e38da17701cc4920f1997e064cboot/dtb'''中</p><p>orangepi@orangepi:~/linux-orangepi$ '''sudo make dtbs_install INSTALL_DTBS_PATH=/boot/dtb/'''</p></li><li><p>然后重启Linux系统就会加载新编译的内核了</p><p>orangepi@orangepi:~$ '''uname -r'''</p><p>'''5.10.png]]110+'''</p></li></ol>
# 然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中'''hdmirx'''配置<span id="openwrt系统使用说明"></span>= OpenWRT系统使用说明 =
[[File:media<span id="openwrt版本"></f480d413a2af097fd73fb1b783c10af0.png]]span>== OpenWRT版本 ==
# 然后选择{| class="wikitable"|-| style="text-align: left;"| '''OpenWRT版本'''| style="text-align: left;"| '''内核版本'''&lt|-| style="text-align: left;Save&gt"| '''v22.03.4'''| style="text-align: left;"| '''Linux5.10.110'''保存|}
[[File:media<span id="openwrt适配情况"></77fdb1f8d8e83e1f16d26896c1cdeb5b.png]]span>== OpenWRT适配情况 ==
# 然后选择{| class="wikitable"|-| style="text-align: left;"| '''功能'''| style="text-align: left;"| '''OpenWRT'''|-| style="text-align: left;"| '''USB2.0x2'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''USB3.0x2'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''USB Type-C 3.0'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''3pin调试串口'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''TF卡启动'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''SPIFlash+NVMe SSD启动'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''SPIFlash启动完整的系统'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''2.5G PCIe网口X2'''&lt| style="text-align: left;Back&gt"| '''OK'''|-| style="text-align: left;"| '''网口状态灯'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''LED灯'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''FAN风扇接口'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AX200-WIFI'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AX200-WIFI'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''eMMC扩展接口'''| style="text-align: left;"| '''OK'''|}
[[File:media/3191851a2c1e634c8765850e0eedbe63.png]]== 第一次启动扩容rootfs ==
<ol style="list-style-type: decimal;"><li><p>第一次启动OpenWRT系统时会执行'''resize-rootfs.sh'''脚本进行 rootfs 的扩容,并且扩容完成后会自动重启</p></li><li><p>登录系统后可以通过 '''df -h''' 命令来查看 rootfs 的大小,如果和存储设备(TF卡、eMMC或者NVME SSD)实际容量一致,说明自动扩容运行正确</p><p>root@OpenWrt:~# 然后选择df -h</p><p>Filesystem Size Used Available Use% Mounted on</p><p>'''&lt;Reboot&gt;/dev/root 14.8G 14.7G 91.6M 99% /'''重启系统使配置生效</p><p>tmpfs 495.5M 6.1M 489.4M 1% /tmp</p><p>tmpfs 512.0K 0 512.0K 0% /dev</p><p>/dev/root 14.8G 14.7G 91.6M 99% /opt/docker</p></li></ol>
[[File:media/03310676d04e3df78bf5a4f3536ad49c.png]]== 登录系统的方法 ==
# 重启进入系统后再在桌面上打开一个终端,然后运行下'''test_hdmiin.sh'''脚本 [orangepi@orangepi ~]$ '''test_hdmiin.sh''' # 然后就能看到HDMI In的输入画面了(下图中HDMI In显示的是opi5开发板HDMI输出的画面,此时正在播放一个视频)。'''test_hdmiin.sh'''脚本默认会将HDMI In输入的音频播放到开发板的HDMI_TX1、HDMI_TX2和ES8388(代表喇叭或者耳机)中去。=== 通过串口登录 ===
<ol style="list-style-type: decimal;">
<li><p>首先调试串口的使用可以参考[[\l|'''调试串口的使用方法''']]章节</p></li>
<li><p>OpenWrt系统默认会以 '''root''' 用户自动登录,显示界面如下</p>
<div class="figure">
[[File:media/4664b10205d90d19c941ce98b4438f56image546.png|1576x290px|9D229F96-887B-4c6b-8E6E-681C9994DFA0]]
</div><span id="hdmi转vga显示测试"/li></spanol>=== HDMI转VGA显示测试 ===
# 首先需要准备下面的配件<span id="通过ssh登录系统"></span>## HDMI转VGA转换器=== 通过SSH登录系统 ===
[[File:media/5a4115ff50af9b25396b47c664a8f607.png]]'''请注意,在Orange Pi 5 Plus的OpenWrt系统中,默认将靠近typeC电源接口的网口配置成WAN口功能,靠近HDMI接口的网口配置为LAN口功能'''
# 一根VGA线<ol style="list-style-type: decimal;"><li><p>首先用网线连接板子的LAN口到电脑的网口,以便电脑的网口能通过DHCP获取到IP地址</p></li><li><p>默认板子的LAN口IP是设置为'''192.168.2.1'''的,所以此时电脑可以获取到以'''192.168.2'''开头的IP地址</p></li><li><p>如果电脑安装的Ubuntu系统,可以执行下列命令通过SSH登录系统,默认是不需要密码直接就可以登录的</p><p>test@ubuntu:~$ '''ssh root@192.168.2.1'''</p></li><li><p>成功登录系统后的显示如下图所示</p><p>[[File:media/image547.png|553x330px]]</p></li><li><p>如果电脑装的Windows系统,可以参考[[\l|'''Windows下SSH远程登录开发板''']]一小节介绍的方法进行登录。</p></li></ol>
[[File:media<span id="登录luci管理界面"></9067ddbafe81ae87e9650da2df96fac3.png]]span>=== 登录LuCI管理界面 ===
# 一个支持VGA接口的显示器或者电视# HDMI转VGA显示测试如下所示:'''请注意,OpenWRT系统默认将靠近Type-C电源接口的网口配置成WAN口功能,靠近HDMI接口的网口配置为LAN口功能。'''
[[File:media/80f22962aa16252eb35a25172cb5f57fimage548.png|357x139px]]
# 首先用网线连接板子的LAN口到电脑的网口,以便电脑的网口能通过DHCP获取到IP地址# 默认板子的LAN口IP是设置为'''使用HDMI转VGA显示时,开发板以及开发板的Linux系统是不需要做任何设置的,只需要开发板HDMI接口能正常显示就可以了。所以如果测试有问题,请检查HDMI转VGA转换器、VGA线以及显示器是否有问题。192.168.2.1'''的,所以此时电脑可以获取到以'''192.168.2'''开头的IP地址# 在电脑上的浏览器中输入IP地址'''192.168.2.1'''就可以登录LuCI界面了
<span iddiv class="hdmi分辨率设置方法figure"></span>=== HDMI分辨率设置方法 ===
# 首先在'''Settings'''中打开'''Display'''[[File:media/image549.png|552x135px|2023-04-21 14-41-42 的屏幕截图]]
</div><ol start="4" style="list-style-type: decimal;"><li><p>'''OpenWrt系统默认是没有设置密码的''',所以直接点击'''登录'''按钮即可,登录成功后界面显示如下图所示</p><p>[[File:media/9197dc8efb0d012b0f4256db8f1004a7image550.png|552x295px]]</p></li></ol>
# 然后就能看到系统当前的分辨率<span id="通过luci管理界面登录终端"></span>=== 通过LuCI管理界面登录终端 ===
[[File:media/a453bcc252bc89fa9e783b44c8a74e11.png]]'''请注意,OpenWRT系统默认将靠近Type-C电源接口的网口配置成WAN口功能,靠近HDMI接口的网口配置为LAN口功能。'''
# 点击Resolution(分辨率)的下拉框,就可以看到显示器当前支持的所有分辨率[[File:media/image548.png|357x139px]]
[[File:media/da17d4b84b83a1c8c8ca9adc7a81ca46# 首先用网线连接板子的LAN口到电脑的网口,以便电脑的网口能通过DHCP获取到IP地址# 默认板子的LAN口IP是设置为'''192.png]]168.2.1'''的,所以此时电脑可以获取到以'''192.168.2'''开头的IP地址# 在电脑上的浏览器中输入IP地址'''192.168.2.1'''就可以登录LuCI界面了
# 然后选择想要设置的分辨率,再点击Apply<div class="figure">
[[File:media/a35db334c3e8a7849920eab02a9189c3image549.png|552x135px|2023-04-21 14-41-42 的屏幕截图]]
# 等新的分辨率设置完后再选择</div><ol start="4" style="list-style-type: decimal;"><li>在导航栏的'''Keep the configuration“服务”'''即可一栏中选择'''“终端”'''并点击进入</li></ol>
[[File:media/14696ad05efc46a9d1ccbb0757843b99image551.png|576x227px]]
<ol start="5" style= 蓝牙使用方法 =="list-style-type: decimal;"><li><p>此时终端界面如下图所示</p><p>[[File:media/image552.png|576x407px]]</p></li><li><p>输入用户名root即可登录</p><p>[[File:media/image553.png|575x334px]]</p></li></ol>
'''请注意,Orange Pi 5 Plus开发板上是没有蓝牙模块的,需要外接带蓝牙的PCIe网卡或者带蓝牙的USB网卡才能使用蓝牙功能。'''<span id="使用ip地址端口号方式登录终端"></span>=== 使用IP地址+端口号方式登录终端 ===
'''外接PCIe网卡的使用说明请参考'''[[#_PCIe%20WIFI6+蓝牙模块的使用方法|'''PCIe WIFI6+蓝牙模块的使用方法''']]'''一小节。请注意,OpenWRT系统默认将靠近Type-C电源接口的网口配置成WAN口功能,靠近HDMI接口的网口配置为LAN口功能。'''
'''外接USB网卡的使用说明请参考'''[[#_USB无线网卡测试File:media/image548.png|'''USB无线网卡测试'''357x139px]]'''一小节。'''
<span id="桌面版镜像的测试方法-# 首先用网线连接板子的LAN口到电脑的网口,以便电脑的网口能通过DHCP获取到IP地址# 默认板子的LAN口IP是设置为'''192.168.2.1"><'''的,所以此时电脑可以获取到以'''192.168.2'''开头的IP地址# 然后在浏览器输入[http://span>=== 桌面版镜像的测试方法 ===192.168.2.1:7681/ '''192.168.2.1:7681''']即可登录OpenWRT的终端
# 点击桌面右上角的蓝牙图标<div class="figure">
[[File:media/0701f1eff58c244ea2c521fc4b721a53image554.png|553x296px|2023-04-21 14-54-26 的屏幕截图]]
# 然后选择适配器</div><span id="通过命令行修改lan口ip地址的方法"></span>== 通过命令行修改LAN口IP地址的方法 ==
# 在OpenWrt系统中,提供了一个命令行工具uci,它可以很方便地对配置文件中的内容进行修改、添加、删除和读取,详细说明请参考[[Filehttps:media/1de79a418395f3662c27c6be36116949/openwrt.png]org/docs/guide-user/base-system/uci '''官方文档''']# 首先使用以下命令获取网络配置,对应的配置文件是'''/etc/config/network,'''可以看到'''network.lan.ipaddr'''这一项的值是'''192.168.2.1'''
root@OpenWrt:~# 如果有提示下面的界面,请选择'''Yesuci show network'''
[[File:media/9f7d35094efa4256f67952325bda8ffc.png]]..
# 然后在蓝牙的适配器设置界面中设置'''Visibility Setting'''为'''Always visible''',然后关闭即可network.lan=interface
[[File:media/806ce4f5d74b0c29fb4784bb19f70974network.png]]lan.device='br-lan'
# 然后打开蓝牙设备的配置界面network.lan.proto='static'
[[File:media/ba0d8c5f376c45d3b42aebcdaf3181e2'''network.png]]lan.ipaddr='192.168.2.1''''
# 点击network.lan.netmask='255.255.255.0''Search'''即可开始扫描周围的蓝牙设备
[[File:media/a2d1d87249ebaf26f8561e5720ab42aenetwork.png]]lan.ip6assign='60'
# 然后选择想要连接的蓝牙设备,再点击鼠标右键就会弹出对此蓝牙设备的操作界面,选择'''Pair'''即可开始配对,这里演示的是和Android手机配对.…
[[File<ol start="3" style="list-style-type:mediadecimal;"><li>然后输入以下命令修改'''network.lan.ipaddr'''这一项</li></206d2dd8476635503b405b6898367966.png]]ol>
root@OpenWrt:~# 配对时,桌面的右上角会弹出配对确认框,选择'''Confirmuci set network.lan.ipaddr='192.168.100.1''''确认即可,此时手机上也同样需要进行确认
[[File<ol start="4" style="list-style-type:mediadecimal;"><li>然后输入以下命令完成提交,即写入到配置文件</ce0f1fa5f65f0e690ea50a718f1e1b24.png]]li></ol>
root@OpenWrt:~# 和手机配对完后,可以选择已配对的蓝牙设备,然后右键选择'''Send a Fileuci commit'''即可开始给手机发送一张图片
[[File:media/cf7b48855501f4c1a08d201cdf8b3997.png]]如果红色字体的IP地址与要设置的一致,说明修改成功
root@OpenWrt:~# 发送图片的界面如下所示'''cat /etc/config/network'''
[[File:media/f9ef2eaed2da85b46a8083685baf4b0d'''.png]]..'''
<span id="usb接口测试"></span>== USB接口测试 ==config interface 'lan'
option device '''USB接口是可以接USB hub来扩展USB接口的数量的。''br-lan'
<span id="连接usb鼠标或键盘测试"></span>=== 连接USB鼠标或键盘测试 ===option proto 'static'
# 将USB接口的键盘插入Orange Pi开发板的USB接口中# 连接Orange Pi开发板到HDMI显示器# 如果鼠标或键盘能正常操作系统说明USB接口使用正常(鼠标只有在桌面版的系统中才能使用)option netmask '255.255.255.0'
<span id="连接usb存储设备测试"></span>=== 连接USB存储设备测试 ===option ip6assign '60'
# 首先将U盘或者USB移动硬盘插入Orange Pi开发板的USB接口中# 执行下面的命令如果能看到sdX的输出说明U盘识别成功'''option ipaddr '192.168.100.1''''
orangepi@orangepi:~$ '''cat /proc/partitions | grep “sd*”'''...
major minor #blocks name<ol start="5" style="list-style-type: decimal;"><li>通过ubus重启网络,ubus的使用说明请参考[https://openwrt.org/docs/guide-developer/ubus '''官方文档''']</li></ol>
8 0 30044160 root@OpenWrt:~# '''sdaubus call network restart'''
8 <ol start="6" style="list-style-type: decimal;"><li><p>此时,输入命令可以看到LAN口的IP已经是'''192.168.100.1 30043119 '''sda1</p><p>root@OpenWrt:~# '''ifconfig br-lan'''</p><p>br-lan Link encap:Ethernet HWaddr FE:55:13:A3:EF:E7</p><p>inet addr:'''192.168.100.1''' Bcast:192.168.100.255 Mask:255.255.255.0</p><p>inet6 addr: fd60:c4cd:1033::1/60 Scope:Global</p><p>UP BROADCAST MULTICAST MTU:1500 Metric:1</p><p>RX packets:0 errors:0 dropped:0 overruns:0 frame:0</p><p>TX packets:3 errors:0 dropped:0 overruns:0 carrier:0</p><p>collisions:0 txqueuelen:1000</p><p>RX bytes:0 (0.0 B) TX bytes:370 (370.0 B)</p></li></ol>
# 使用mount命令可以将U盘挂载到'''/mnt'''中,然后就能查看U盘中的文件了== 修改root密码的方法 ==
orangepi@orangepi:~$ '''sudo mount /dev/sda1 /mnt/'''=== 通过命令行修改 ===
orangepi@orangepi:~$ '''ls /mnt/'''# 首先在系统的命令行输入passwd root,会出现以下提示信息,此时可以输入想要设置的密码,按下回车键确认
test.txtroot@OpenWrt:/# '''passwd root'''
# 挂载完后通过'''df -hEnter new UNIX password:'''命令就能查看U盘的容量使用情况和挂载点
orangepi@orangepi<ol start="2" style="list-style-type:~$ '''df -h | grep “sd”'''decimal;"><li>接着会提示重新输入密码,此时再次输入密码确认并回车即可</li></ol>
/dev/sda1 29G 208K 29G 1% /mnt'''Retype password:'''
<span idol start="usb无线网卡测试3"style="list-style-type: decimal;"><li>修改成功的显示如下</li></spanol>=== USB无线网卡测试 ===
目前'''测试过的passwd: password for root changed by root'''能用的USB无线网卡如下所示,其他型号的USB无线网卡请自行测试,如果无法使用就需要移植对应的USB无线网卡驱动
{| class<span id="wikitable通过luci管理界面修改"|-! 序号! 型号! 实物图片|-| 1| RTL8723BU 支持2.4G WIFI+BT4.0| [[File:media></1ffa4c6f1afde803f7c8fd0638e464bd.png]]span>|-| 2| RTL8811 支持2.4G +5G WIFI| [[File:media/75fc96b8cf1488a161ca5317ba6b18f1.png]]|-| 3| RTL8821CU 支持2.4G +5G WIFI 支持BT 4.2| [[File:media/27e02242279bb4d114d0c514c3fff40d.jpeg|tb_image_share_1670833201123]]|}=== 通过LuCI管理界面修改 ===
<span idol style="rtl8723bu测试list-style-type: decimal;"><li><p>首先参考[[\l|'''登录LuCI管理界面''']]进入OpenWRT的管理界面</spanp></li><li><p>然后按照下面的步骤修改密码</p><ol style="list-style-type: lower-alpha;"><li><p>在导航栏中找到”'''系统'''”选项并点击</p></li><li><p>在系统下方的竖栏选项中,选择”'''管理权'''”并点击</p><p>[[File:media/image555.png|552x256px]]</p></li><li><p>在Tab页中选择”'''路由器密码'''”选项</p><p>[[File:media/image556.png|552x211px]]</p></li></ol></li><li><p>修改并保存路由器密码</p><ol style=== RTL8723BU测试 ===="list-style-type: lower-alpha;"><li><p>在”'''密码'''”和”'''确认密码'''”的对话框中输入自己设定的密码(如果不确定密码是否输入正确,可点击对话框后面的”'''*'''”图标以显示输入字符)</p></li><li><p>点击”'''保存'''”即可保存新修改的密码</p><p>[[File:media/image557.png|553x230px]]</p></li></ol></li></ol>
# 首先将RTL8723BU无线网卡模块插入开发板的USB接口中# 然后linux系统会自动加载RTL8723BU蓝牙和WIFI相关的内核模块,通过lsmod命令可以看到下面内核模块已自动加载'''注:在”密码”和”确认密码”的对话框中,需要两次输入的密码保持一致。'''
orangepi@orangepi<ol start="4" style="list-style-type:~$ decimal;"><li><p>密码修改成功之后,会弹出”'''lsmod系统密码已更改成功'''”的弹框,此时登录OpenWRT就需要密码才能登录</p><p>[[File:media/image558.png|563x222px]]</p></li></ol>
Module Size Used by<span id="usb接口测试-1"></span>== USB接口测试 ==
rfcomm 57344 16<span id="在命令行下挂载usb存储设备"></span>=== 在命令行下挂载USB存储设备 ===
rtl8xxxu 106496 0# 首先将U盘插入Orange Pi开发板的USB接口中# 执行下面的命令如果能看到sdX的输出说明U盘识别成功
rtk_btusb 61440 0root@OpenWrt:~# '''cat /proc/partitions | grep &quot;sd*&quot;'''
major minor # 通过dmesg命令可以看到RTL8723BU模块的加载信息blocks name
orangepi@orangepi:~$ 8 0 15126528 '''dmesgsda'''
……<ol start="3" style="list-style-type: decimal;"><li>使用mount命令可以将U盘挂载到/mnt中,然后就能查看U盘中的文件了</li></ol>
[ 83.438901] usb 2-1root@OpenWrt: new high-speed USB device number 2 using ehci-platform~# '''mount /dev/sda /mnt/'''
[ 83.588375] usb 2-1root@OpenWrt: New USB device found, idVendor=0bda, idProduct=b720, bcdDevice= 2.00~# '''ls /mnt/'''
[ 83test.588403] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3txt
[ 83.588422] usb 2<ol start="4" style="list-1style-type: Product: 802.11n WLAN Adapterdecimal;"><li>挂载完后通过df -h命令就能查看U盘的容量使用情况和挂载点</li></ol>
[ 83.588443] usb 2root@OpenWrt:~# '''df -1: Manufacturer: Realtekh | grep &quot;sd&quot;'''
[ 83/dev/sda 14.588460] usb 2-4G 187.2M 14.2G 1: SerialNumber: 00e04c000001% /mnt
[ 83.601974] Bluetooth: hci0: RTL: examining hci_ver<span id=06 hci_rev"在luci管理界面挂载usb存储设备"></span>=== '''在LuCI管理界面'''挂载USB存储设备 =000b lmp_ver=06 lmp_subver=8723
<ol style="list-style-type: decimal;"><li><p>首先将U盘(或者其它存储设备)通过USB2.0连接到开发板</p></li><li><p>然后按照[[\l|'''登录LuCI管理界面''']]进入LuCI管理界面</p></li><li><p>然后在LuCI管理界面中,点击”系统-&gt;挂载点”进入挂载点的配置界面</p><p>[ 83[File:media/image559.603894png|553x256px]] Bluetooth</p></li><li><p>然后按照下面的步骤新增一个挂载点</p><ol style="list-style-type: hci0: RTL: rom_version status=0 version=1lower-alpha;"><li><p>在挂载点'''全局设置界面'''下方找到”'''挂载点'''”</p></li><li><p>在'''挂载点'''下方,选择”添加”按钮并点击进入</p></li></ol></li></ol>
[ 83.603920] Bluetooth: hci0: RTL[File: loading rtl_btmedia/rtl8723b_fwimage560.binpng|553x163px]]
<ol start="3" style="list-style-type: lower-alpha;"><li><p>接着会弹出下面的弹窗界面</p><p>[[ 83File:media/image561.610108png|553x288px] Bluetooth]</p></li><li><p>然后就可以开始挂载存储设备</p><ol style="list-style-type: hci0: RTL: loading rtl_btlower-alpha;"><li><p>勾选”'''已启用'''”</p></li><li><p>在常规设置UUID一栏中选择实际接入的设备/dev/sda(根据自己的设备选择)</p></li><li><p>在挂载点一栏中选择”'''自定义'''”,并填入要挂载到的目标目录,这里以'''/mnt'''目录为例,填好后'''回车'''确认</p></li><li><p>然后点击右下角的”'''保存'''”按钮</p></li></ol></li></rtl8723b_config.binol>
[ 83[File:media/image562.611274png|553x214px]] Bluetooth: hci0: RTL: cfg_sz 68, total sz 22564
[ 83.658494] rtk_btusb<ol start="5" style="list-style-type: Realtek Bluetooth USB driver ver 3.1.6d45ddf.20220519-142432decimal;"><li>然后会回到挂载点全局设置页面,在页面的左下角点击”'''保存并应用'''”使挂载点生效</li></ol>
[ 83[File:media/image563.658651png|535x325px]] usbcore: registered new interface driver rtk_btusb
[ 83.667124] usb 2<ol start="6" style="list-1: This Realtek USB WiFi dongle (0x0bdastyle-type:0xb720) is untested!decimal;"><li>保存完后可以看到”'''已挂载的文件系统'''”中,该存储设备已经挂载成功</li></ol>
[ 83[File:media/image564.667137png|553x201px]] usb 2-1: Please report results to Jes.Sorensen@gmail.com
[ 83<span id="m.890140] usb 2-1: Vendor: Realteke-key-pcie无线网卡的使用方法"></span>== M.2 E-Key PCIe无线网卡的使用方法 ==
[ 83.890153] usb 2-1: Product: 802.11n WLAN Adapter# 目前OpenWRT镜像镜像目前适配的PCIe无线网卡型号如下所示:
[ 83.890159] usb 2{| class="wikitable"|-| '''序 号'''| '''型号'''| '''实物图片'''| '''已支持的OS'''|-| * *1: rtl8723bu_parse_efuse: dumping efuse (0x200 bytes):**
……| '''AX200'''
[ 83.890412] usb 2-1: RTL8723BU rev E (SMIC'''(PCIE+USB接口) 1T1R, TX queues 3, WiFi=1, BT=1, GPS=0, HI PA=0'''
| [ 83[File:med%20ia/image219.890417png] usb 2-1: RTL8723BU MAC: 00:13:ef:f4:58:ae]| '''Debian'''
[ 83.890421] usb 2-1: rtl8xxxu: Loading firmware rtlwifi/rtl8723bu_nic.bin'''Ubuntu'''
[ 83.895289] usb 2-1: Firmware revision 35.0 (signature 0x5301)'''OpenWRT'''
[ 84.050893] Bluetooth: hci0: RTL: fw version 0x0e2f9f73'''OPi OS Arch'''
[ 84.266905] Bluetooth: RFCOMM TTY layer initialized|-| * *2**
[ 84.266949] Bluetooth: RFCOMM socket layer initialized| '''AX210'''
[ 84.266999] Bluetooth: RFCOMM ver 1.11'''(PCIE+USB接口)'''
| [ 84[File:media/i%20mage220.884270png]] usbcore: registered new interface driver rtl8xxxu{wi dth=“1.06875in” h eight=“1.45in”}| '''Debian'''
[ 84.912046] rtl8xxxu 2-1:1.2 wlx0013eff458ae: renamed from wlan0'''Ubuntu'''
# 然后通过'''sudo ifconfigOpenWRT'''命令可以看到RTL8723BU WIFI的设备节点,WIFI的连接和测试方法请参看[[#_WIFI连接测试|'''WIFI连接测试''']]一节,这里不再赘述
orangepi@orangepi:~$ '''sudo ifconfig wlx0013eff458aeOPi OS Arch'''
wlx0013eff458ae: flags=4099&lt;UP,BROADCAST,MULTICAST&gt; mtu 1500|-| * *3**
ether 00:13:ef:f4:58:ae txqueuelen 1000 (Ethernet)| '''RTL8852BE'''
RX packets 0 bytes 0 (0.0 B'''(PCIE+USB接口)'''
RX errors 0 dropped 0 overruns 0 frame 0| [[File:med%20ia/image221.png]]| '''Debian'''
TX packets 0 bytes 0 (0.0 B)'''Ubuntu'''
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0'''不支持OpenWRT'''
# 然后通过'''hciconfigAndroid12'''命令可以看到USB的蓝牙设备
orangepi@orangepi:~$ '''sudo apt update &amp;&amp; sudo apt install bluezOPi OS Arch'''
orangepi@orangepi:~$ '''hciconfigOPi OS Droid'''
hci0: Type: Primary Bus: '''USB'''|}
BD Address: 00:13:EF:F4:58:AE ACL MTU: 820:8 SCO MTU: 255:16<span id="创建wifi热点的方法"></span>=== 创建WIFI热点的方法 ===
DOWN'''注意AX200和AX210目前仅支持2.4G频段热点,5G频段模式下会出现无线网卡修改配置后无法应用的错误。'''
RX bytes<ol style="list-style-type:1252 acldecimal;"><li><p>首先将PCIe无线网卡插入开发板的M.2 E-KEY端口,然后接上Type-C电源给开发板上电。</p><p>[[File:0 scomedia/image565.png|347x149px]]</p></li><li><p>系统启动完成,点击 '''网络 -&gt; 无线''' 进入无线WiFi配置界面。</p><p>[[File:0 eventsmedia/image566.png|553x155px]]</p></li><li><p>OpenWRT系统默认的无线配置是'''Master''' 模式,这里为了方便接下来的操作,我们将默认的无线连接移除。</p><p>[[File:125 errorsmedia/image567.png|517x162px]]</p></li><li><p>然后点击页面的右下角 '''保存''' 让配置生效。</p><p>[[File:0media/image568.png|553x179px]]</p></li><li><p>然后点击右侧的 '''添加''' 按钮。</p><p>[[File:media/image569.png|553x138px]]</p></li><li><p>在弹出标签页 '''设备配置''' 中,我们设置参数如下图所示。</p><p>[[File:media/image570.png|552x268px]]</p></li><li><p>然后在 '''接口配置 -&gt; 常规设置''' 中,将模式设置成 '''接入点AP''' ,'''ESSID'''(无线网络名称)设置为'''OpenWrt''' ,网络指定为''' lan'''</p><p>[[File:media/image571.png|553x234px]]</p></li><li><p>然后在 '''接口配置 -&gt; 无线安全''' 中,加密算法选择''' WPA2-PSK''' ;密钥(无线密码)设置为 '''password'''</p><p>[[File:media/image572.png|534x224px]]</p></li><li><p>以上设置完成后,点击页面右下角''' 保存''',之后会退出标签页</p><p>[[File:media/image573.png|553x303px]]</p></li><li><p>然后点击页面右下角 '''保存并应用''' 等待配置被应用完成。</p><p>[[File:media/image574.png|553x216px]]</p></li><li><p>成功创建热点的显示界面如下图所示</p><p>[[File:media/image575.png|515x266px]]</p></li><li><p>然后使用手机或电脑搜索对应SSID的WiFi进行连接,连接成功后如下图所示</p><p>[[File:media/image576.png|247x156px]]</p></li></ol>
TX bytes:23307 acl:0 sco:0 commands:125 errors:0<span id="连接wifi热点的方法"></span>=== 连接WIFI热点的方法 ===
# 在桌面中也可以看到出现了蓝牙图标,此时蓝牙还未打开,所以会显示一个红色的<ol style="list-style-type: decimal;"><li><p>将PCIe无线网卡插入开发板的M.2 E-KEY端口,然后接上Type-C电源给开发板上电。</p><p>[[File:media/image565.png|347x149px]]</p></li><li><p>系统启动完成后,点击 '''x网络 -&gt; 无线'''进入配置无线WiFi界面。</p><p>[[File:media/image566.png|553x155px]]</p></li><li><p>OpenWRT系统默认的无线配置是'''Master''' 模式,这里为了方便接下来的操作,我们将默认的无线连接移除。</p><p>[[File:media/image567.png|520x162px]]</p></li><li><p>然后点击页面的右下角 '''保存''' 让配置生效。</p><p>[[File:media/image568.png|520x179px]]</p></li><li><p>然后点击 '''扫描''' 按钮扫描周围的WiFi热点。</p><p>[[File:media/image577.png|541x225px]]</p></li><li><p>然后会弹出下面的窗口显示可用的WiFi热点,这时点击想要连接的WiFi热点右边的 '''加入网络''' 按钮来连接WiFi热点。</p><p>[[File:media/image578.png|553x89px]]</p></li><li><p>然后会弹出一个连接WiFi热点的界面,我们在下图所示的位置输入热点的密码,再点击 '''提交''' 按钮。</p><p>[[File:media/image579.png|552x135px]]</p></li><li><p>然后会弹出下面的界面,点击右下角的 '''保存''' 按钮即可。</p><p>[[File:media/image580.png|553x237px]]</p></li><li><p>最后会回到无线配置的主界面,点击 '''保存并应用''' 等待配置被应用完成。</p><p>[[File:media/image581.png|544x252px]]</p></li><li><p>成功连接到WiFi热点后,界面显示如下图所示。</p><p>[[File:media/image582.png|547x232px]]</p></li></ol>
[[File:media/d098f3b0e5ead13282c828ca2202fc4f.png]]== 通过命令行安装软件包 ==
# 点击'''Turn Bluetooth On'''可以打开蓝牙=== 在终端通过opkg安装 ===
[[File:media/fe4b2c5e0dedc8871fc2b916e17ec7a6.png]]# 更新可获取的软件包列表
root@OpenWrt:/# 打开蓝牙后的显示如下所示'''opkg update'''
[[File<ol start="2" style="list-style-type:mediadecimal;"><li>获取软件列表</be18e93d7c379d7a2be3672468ce5255.png]]li></ol>
root@OpenWrt:/# 蓝牙的测试方法请参看[[#_桌面版镜像的测试方法_1|'''蓝牙使用方法opkg list''']]一节,这里不再赘述
<span idol start="rtl8811测试3"style="list-style-type: decimal;"><li>安装指定的软件包</li></spanol>==== RTL8811测试 ====
root@OpenWrt:/# 首先将RTL8811无线网卡模块插入开发板的USB接口中# 然后linux系统会自动加载RTL8811 WIFI相关的内核模块,通过lsmod命令可以看到下面内核模块已自动加载'''opkg install &lt;包名称&gt;'''
orangepi@orangepi<ol start="4" style="list-style-type:~$ '''lsmod'''decimal;"><li>查看已经安装的软件</li></ol>
Module Size Used byroot@OpenWrt:/# '''opkg list-installed'''
8821cu 1839104 0<ol start="5" style="list-style-type: decimal;"><li>卸载软件</li></ol>
root@OpenWrt:/# 通过dmesg命令可以看到RTL8811模块的加载信息'''opkg remove &lt;包名称&gt;'''
orangepi@orangepi:~$ '''dmesg'''<span id="openwrt管理界面安装软件包"></span>== OpenWRT管理界面安装软件包 ==
[ 118.618194] usb 2-1: new high-speed USB device number 2 using ehci-platform'''若需要新增软件包,可通过OpenWRT的管理界面进行安装。'''
[ 118.767152] usb 2-1: New USB device found, idVendor=0bda, idProduct=c811, bcdDevice= 2.00查看系统可用软件包列表 ===
[ 118.767181] usb 2<ol style="list-1style-type: New USB device stringsdecimal;"><li><p>首先进入软件包管理页面</p><ol style="list-style-type: Mfr=1, Product=2, SerialNumber=3lower-alpha;"><li><p>在导航栏中找到”'''系统'''”选项并点击进入</p></li><li><p>在系统下方的竖栏选项中,选择”'''软件包'''”并点击进入</p></li></ol></li></ol>
[ 118[File:media/image583.767199png|552x227px]] usb 2-1: Product: 802.11ac NIC
[ 118.767219] usb <ol start="2" style="list-1style-type: Manufacturerdecimal;"><li><p>然后会出现软件包的主页面,如下图所示,获取可用的软件列表</p><ol style="list-style-type: Realteklower-alpha;"><li><p>在软件包的”'''操作'''”选项中,点击”'''更新列表'''”,获取可用的软件包列表</p></li><li><p>在Tab页中,点击”'''可用'''”,查看当前可用软件包</p></li><li><p>查看当前可用软件包的数量</p><p>[[File:media/image584.png|553x232px]]</p></li></ol></li></ol>
[ 118.767235] usb 2-1: SerialNumber: 123456=== 安装软件包示例 ===
<ol style="list-style-type: decimal;"><li><p>以安装软件包”'''luci-app-acl'''”为例</p><ol style="list-style-type: lower-alpha;"><li><p>在OpenWRT的软件包管理界面下,点击筛选器的对话框并输入”'''luci-app-acl'''”</p></li><li><p>在软件包的列表中可以看到”'''luci-app-acl'''”软件包的版本、软件包大小以及描述信息,然后点击”'''安装'''”按钮</p><p>[[ 119File:media/image585.500530png|552x259px]] usbcore</p></li><li><p>然后会出现以下弹窗,点击”'''安装'''”即可</p><p>[[File: registered new interface driver rtl8821cumedia/image586.png|348x430px]]</p></li><li><p>然后等待安装完成</p><p>[[File:media/image587.png|576x96px]]</p></li><li><p>安装完成的显示如下</p><p>[[File:media/image588.png|506x289px]]</p></li></ol></li><li><p>查看软件包是否安装成功</p><ol style="list-style-type: lower-alpha;"><li><p>在OpenWRT的软件包管理界面下,点击筛选器的对话框并输入”'''luci-app-acl'''”</p></li><li><p>在Tab页选择点击”'''可用'''”</p></li><li><p>在软件包列表中会显示”'''luci-app-acl'''”软件包,并更新状态为”'''已安装'''”</p><p>[[File:media/image589.png|576x196px]]</p></li></ol></li></ol>
[ 119.525498] rtl8821cu 2-1:1.0 wlx1cbfced9d260: renamed from wlan0=== 移除软件包示例 ===
# 然后通过<ol style="list-style-type: decimal;"><li><p>以移除软件包”'''sudo ifconfigluci-app-acl'''命令可以看到WIFI的设备节点,WIFI的连接和测试方法请参看”为例</p><ol style="list-style-type: lower-alpha;"><li><p>在OpenWRT的软件包管理界面下,点击筛选器的对话框并输入”'''luci-app-acl'''”</p></li><li><p>在Tab页中选择”'''已安装'''”,显示已安装的软件包列表</p></li><li><p>点击右边的”'''移除'''”,即可移除相应的软件包</p><p>[[#_WIFI连接测试File:media/image590.png|461x164px]]</p></li><li><p>然后会显示下面弹窗,点击”'''WIFI连接测试移除'''”即可</p><p>[[File:media/image591.png|415x129px]]</p></li><li><p>移除成功后,显示界面如下</p><p>[[File:media/image592.png|414x88px]]</p></li></ol></li><li><p>查看软件包是否移除成功</p><ol style="list-style-type: lower-alpha;"><li><p>在OpenWRT的软件包管理界面下,点击筛选器的对话框并输入”'''luci-app-acl'''”</p></li><li><p>在Tab页选择点击”'''已安装'''”</p></li><li><p>在软件包列表中不会显示”'''luci-app-acl'''”软件包,此时”'''luci-app-acl'''”软件包已移除成功</p><p>[[File:media/image593.png|493x187px]]一节,这里不再赘述</p></li></ol></li></ol>
orangepi@orangepi:~$ '''sudo ifconfig wlx1cbfced9d260'''<span id="使用samba网络共享"></span>== 使用Samba网络共享 ==
wlx1cbfced9d260: flags=4099&lt;UP,BROADCAST,MULTICAST&gt; mtu 1500'''OpenWRT局域网文件共享实现主要有两个软件选择,Samba和NFS。Samba系统兼容性较好,NFS则性能表现占优。对于需要使用Windows设备的用户来说,建议选择Samba。'''
ether 1c<ol style="list-style-type:bfdecimal;"><li><p>进入Samba网络共享的管理页面</p><ol style="list-style-type:celower-alpha;"><li><p>在导航栏中找到”'''服务'''”选项并点击进入</p></li><li><p>在服务下方的竖栏选项中,选择”'''网络共享'''”并点击进入</p><p>[[File:d9media/image594.png|553x205px]]</p></li></ol></li><li><p>选择Samba服务需要监听的接口</p><ol style="list-style-type:d2lower-alpha;"><li><p>在网络共享的导航栏中选择”'''常规设置'''”并点击进入</p></li><li><p>接口根据实际需求指定,如果想通过”wan口”访问,则设置为”'''wan'''”</p><p>[[File:60 txqueuelen 1000 (Ethernet)media/image595.png|500x222px]]</p></li></ol></li><li><p>设置网络共享的共享目录</p><ol style="list-style-type: lower-alpha;"><li><p>在网络共享的”'''常规设置'''”的”'''共享目录'''”总点击”'''新增'''”共享目录地址</p></li><li><p>在名称下面输入共享文件夹的名称为”'''mmt'''”</p></li><li><p>在共享目录的路径下,选择设置共享的目录位置”'''/mnt'''”</p></li><li><p>勾选”'''可浏览'''”和”'''运行匿名用户'''”</p></li><li><p>点击”'''保存并应用'''”,保存配置</p><p>[[File:media/image596.png|575x217px]]</p></li></ol></li><li><p>window10启动网络发现与共享</p><p>'''注:在windows10系统下访问Samba,共享需要先确认window10是否已经启动网络发现与共享,如未启动,先进行如下设置。'''</p></li></ol>
RX packets 0 bytes 0 (0<!-- --><ol style="list-style-type: lower-alpha;"><li><p>启用Samba v1/v2的访问</p><ol style="list-style-type: lower-alpha;"><li><p>进入windows10的”控制面板”</p></li><li><p>在控制面板的左侧导航栏点击”程序”</p></li><li><p>在程序和功能中选择”启用或关闭Windows功能”</p></li><li><p>在启用或关闭Windows功能的弹框中勾选”SMB 1.0 B)/CIFS文件共享支持”</p></li><li><p>点击”确定”,配置应用</p></li></ol></li></ol>
RX errors 0 dropped 0 overruns 0 frame 0[[File:media/image597.png|575x316px]]
TX packets 0 bytes 0 (0.0 B)<ol start="2" style="list-style-type: lower-alpha;"><li><p>打开Windows10的网络发现</p><ol style="list-style-type: lower-alpha;"><li><p>进入windows10的”控制面板”</p></li><li><p>在控制面板中选择”网络和Internet”</p></li><li><p>然后打开”网络和共享中心”</p></li><li><p>点击|“高级共享设置”</p></li><li><p>打开”'''启用网络发现'''”和”'''启用文件和打印机共享'''”</p></li><li><p>点击”保存更改”,保存Windows10的网络发现配置</p></li></ol></li></ol>
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[[File:media/image598.png|575x323px]]
<span idol start="usb摄像头测试5"style="list-style-type: decimal;"><li>设置完成后,在资源管理器的地址栏输入\\OpenWrt即可访问共享目录,用户名为root,密码为开发板主机设定的密码</li></spanol>=== USB摄像头测试 ===
# 首先需要准备一个下图所示的或者类似的支持UVC协议的USB摄像头,然后将USB摄像头插入到Orange Pi开发板的USB接口中[[File:media/image599.png|575x323px]]
[[File:media/25529640bdf8e911199feaefc0fa32b3.png]]== zerotier使用说明 ==
# 通过v4l2-ctl命令可以看到USB摄像头的设备节点信息为/dev/video0'''OpenWRT系统已经预装了zerotier客户端,在zerotier官网创建虚拟局域网后,在客户端可以通过Network ID直接加入其中,具体操作如下文所示。'''
orangepi@orangepi<ol style="list-style-type: decimal;"><li><p>登录zerotier官网[https://my.zerotier.com/network '''https:~$ //my.zerotier.com/network'''v4l2],注册登录后点击Network-ctl –list-devices&gt;Create A Network,创建一个虚拟局域网</p><p>[[File:media/image600.png|575x118px]]</p><p>[[File:media/image601.png|574x166px]]</p></li><li><p>点击进入网络控制台页面,可以把隐私选项设置为公共,这样加入的网络节点就不需要验证</p><p>[[File:media/image602.png|353x257px]]</p></li><li><p>下面自动分配地址这里可以自己选择网段,此处选择的是172.27.*.*</p><p>[[File:media/image603.png|374x233px]]</p></li><li><p>在OpenWRT终端输入下面命令就可以加入到上面创建的虚拟局域网,'''其中8286ac0e47d53bb5是上面创建的虚拟局域网的Network ID'''</p></li></ol>
Q8 HD Webcamroot@OpenWrt: Q8 HD Webcam (/# '''usbzerotier-one -d'''-fc880000.usb-1):#启动zerotier客户端
root@OpenWrt:/# '''/dev/video0zerotier-cli join 8286ac0e47d53bb5'''#加入网络
<ol start="5" style="list-style-type: decimal;"><li>在终端输入ifconfig可以看到已经有个新增的'''ztks54inm2'''设备,IP地址为'''172.27.214.213'''</devli></video1ol>
root@OpenWrt:/dev/media0# '''ifconfig'''
'''注意v4l2中的l是小写字母l,不是数字1。ztks54inm2'''Link encap:Ethernet HWaddr F6:4E:DE:BF:D8:52
inet addr:'''另外video的序号不一定都是video0,请以实际看到的为准。172.27.214.213'''Bcast:172.27.255.255 Mask:255.255.0.0
# 在桌面系统中可以使用Cheese直接打开USB摄像头,Cheese打开方法如下图所示:inet6 addr: fe80::e82f:d0ff:fe5a:867e/64 Scope:Link
[[FileUP BROADCAST RUNNING MULTICAST MTU:media/012581c7ff8d01a7b8ef2e5366fce919.png]]2800 Metric:1
Cheese打开USB摄像头后的界面如下图所示:RX packets:18 errors:0 dropped:0 overruns:0 frame:0
[[FileTX packets:media/44afa15275b9de2f2f534177b97dbc21.png]]48 errors:0 dropped:0 overruns:0 carrier:0
# 使用fswebcam测试USB摄像头的方法## 安装fswebcamcollisions:0 txqueuelen:1000
orangepi@orangepiRX bytes:~$ '''sudo''' '''apt update'''1720 (1.6 KiB) TX byte81 (8.2 KiB)
orangepi@orangepi:~$ '''sudo apt<ol start="6" style="list-get install style-y fswebcam'''type: decimal;"><li>在另一台设备上安装zerotier客户端(此处以Ubuntu18.04为例),执行下面命令进行安装,安装完成后需要重启电脑</li></ol>
# 安装完fswebcam后可以使用下面的命令来拍照## test@ubuntu:~$ '''curl -d 选项用于指定USB摄像头的设备节点### --no-banner用于去除照片的水印### -r 选项用于指定照片的分辨率### -S 选项用设置于跳过前面的帧数### s https://install./imagezerotier.jpg 用于设置生成的照片的名字和路径com | sudo bash'''
orangepi@orangepi<ol start="7" style="list-style-type:~$ '''sudo''' '''fswebcam -d decimal;"><li>重启后根据Network ID加入虚拟局域网,也可以看到已经获取到zerotier分配的ip地址,此时该Ubuntu PC和OrangePi R1 Plus LTS处于同一局域网中,两者可以自由通信</devli></video0 \'''ol>
test@ubuntu:~$ '''–nosudo zerotier-banner -r 1280x720 -S 5 ./image.jpgcli join 8286ac0e47d53bb5'''
# 在服务器版的linux系统中,拍完照后可以使用scp命令将拍好的图片传到Ubuntu PC上镜像观看test@ubuntu:~$ '''ifconfig'''
orangepi@orangepi:~$ '''scp image.jpg''' [mailto:test@192.168.1.55:/home/test ztks54inm2'''test@192.168.1.55:/home/test'''] '''(根据实际情况修改IP地址和路径)'''flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt; mtu 2800
# 在桌面版的linux系统中,可以通过HDMI显示器直接查看拍摄的图片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&lt;link&gt;
=== 在桌面系统中测试音频方法 ===ether f6:fd:87:68:12:cf txqueuelen 1000 (以太网)
# 首先打开文件管理器RX packets 0 bytes 0 (0.0 B)
[[File:media/48e93469a77e6f37d83f5154dcf5fc14.png]]RX errors 0 dropped 0 overruns 0 frame 0
# 然后找到下面这个文件(如果系统中没有这个音频文件,可以自己上传一个音频文件到系统中)TX packets 46 bytes 10006 (10.0 KB)
[[File:media/67f839b3e30fa9548207a15681e5bec8.png]]TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# 然后选中audio.wav文件,右键选择使用vlc打开就可以开始播放<ol start="8" style="list-style-type: decimal;"><li>测试两个终端是否可以通信</li></ol>
[[Fileroot@OpenWrt:media/2a438bfdd0b671359e578e5120b1ad73# '''ping 172.png]]27.47.214 -I ztks54inm2'''
# 切换HDMI播放和耳机播放等不同音频设备的方法## 首先打开音量控制界面PING 172.27.47.214 (172.27.47.214): 56 data bytes
[[File64 bytes from 172.27.47.214:media/e4b9965cdb68139d49061256d7712619seq=0 ttl=64 time=1.png]]209 ms
# 播放音频的时候,在'''Playback'''中会显示播放软件可以使用的音频设备选项,如下图所示,在这里可以设置需要播放到哪个音频设备64 bytes from 172.27.47.214: seq=1 ttl=64 time=1.136 ms
[[File64 bytes from 172.27.47.214:media/45b31acc70e4297b2d61525827dbc939seq=2 ttl=64 time=1.png]]203 ms
64 bytes from 172.27.47.214: seq=3 ttl=64 time= 使用命令播放音频的方法 ===1.235 ms
==== 耳机接口播放音频测试 ====^C
# 首先将耳机插入开发板的耳机孔中--- 172.27.47.214 ping statistics ---
[[File:media/2c63eff774d376c436b95989f40576a6.png]]4 packets transmitted, 4 packets received, 0% packet loss
# 然后可以通过'''aplay round-l'''命令可以查看下linux系统支持的声卡设备,从下面的输出可知,'''card 3'''为es8388的声卡设备,也就是耳机的声卡设备trip min/avg/max = 1.136/1.195/1.235 ms
orangepi@orangepi<ol start="9" style="list-style-type:~$ '''aplay -l'''decimal;"><li>zerotier其他常用命令</li></ol>
**** List of PLAYBACK Hardware Devices ****root@OpenWrt:/# '''zerotier-one -d''' #启动zerotier客户端
card 0root@OpenWrt: rockchipdp0 [rockchip,dp0], device 0: rockchip,dp0 spdif-hifi-0 [rockchip,dp0 spdif-hifi/# '''zerotier-0]cli status''' #获取地址和服务状态
Subdevicesroot@OpenWrt: 0/1# '''zerotier-cli join # Network ID''' #加入网络
Subdevice root@OpenWrt:/#0: subdevice '''zerotier-cli leave # Network ID''' #0离开网络
card 1root@OpenWrt: rockchiphdmi0 [rockchip/# '''zerotier-hdmi0], device 0: rockchip-hdmi0 i2s-hifi-0 [rockchip-hdmi0 i2s-hifi-0]cli listnetworks''' #列出网络
Subdevices: 0/1OPENWRT_DEVICE_REVISION=&quot;v0&quot;
Subdevice #0: subdevice #0OPENWRT_RELEASE=&quot;OpenWrt 22.03.4 r20123-38ccc47687&quot;
card 2: rockchiphdmi1 [rockchip-hdmi1], device 0: rockchip-hdmi1 i2s-hifi-0 [rockchip-hdmi1 i2s-hifi-0]<span id="openwrt源码的编译方法"></span>= OpenWRT源码的编译方法 =
Subdevices: 1<span id="下载openwrt源码"></1span>== 下载OpenWRT源码 ==
Subdevice #0: subdevice #0首先执行下面的命令下载openwrt-22.03分支代码
test@test:~$ '''card 3: rockchipes8388 [rockchip,es8388], device 0: dailink-multicodecs ES8323.7-0011-0 [dailink-multicodecs ES8323.7-0011-0]sudo apt update'''
test@test:~$ '''Subdevices: 0/1sudo apt install -y git'''
test@test:~$ '''Subdevice #0git clone https: subdevice #0//github.com/orangepi-xunlong/openwrt.git -b openwrt-22.03'''
# 然后使用'''aplay'''命令播放下系统自带的音频文件,如果耳机能听到声音说明硬件能正常使用<ol start="2" style="list-style-type: decimal;"><li>OpenWRT代码下载完后会包含下面的文件和文件夹</li></ol>
orangepitest@orangepitest:~/openwrt$ '''aplay -D hw:3,0 /usr/share/sounds/alsa/audio.wavls'''
Playing WAVE ‘audioBSDmakefile Config.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereoin include Makefile README.md scripts toolchain
==== 喇叭接口播放音频测试 ====Config feeds.conf.default LICENSE package rules.mk target tools
# 首先需要准备一个下图所示的喇叭,开发板上喇叭座子的规格为'''2pin 1.25mm'''间距<span id="编译openwrt源码"></span>== 编译OpenWRT源码 ==
[[File<ol style="list-style-type:mediadecimal;"><li><p>首先安装下面这些依赖包(目前仅测试了在Ubuntu20.04上编译需要安装下列依赖包,如果在其他版本的系统上编译,请根据出错信息自行安装依赖包)</p><ol style="list-style-type: lower-alpha;"><li>方法1:使用脚本安装依赖包的命令如下所示:</2ad7918730932cd74a38cd49aab96cde.png]]li></ol></li></ol>
# 开发板上喇叭接口的位置如下所示,准备好喇叭后,请将其插入到开发板的喇叭接口中test@test:~/openwrt$ '''sudo ./install_dep.sh'''
[[File<ol start="2" style="list-style-type:medialower-alpha;"><li>方法2:直接使用下面的命令安装依赖包</da03d169ef5dbe2d7aa796d530ae884f.png]]li></ol>
# 喇叭和耳机使用的同一个声卡,使用喇叭前,请确保耳机接口没有插入耳机(如果插入了耳机,音频会播放到耳机)。然后使用test@test:~/openwrt$ '''aplaysudo apt update'''命令播放下系统自带的音频文件,如果喇叭能听到声音说明硬件能正常使用
orangepitest@orangepitest:~/openwrt$ '''aplay sudo apt install -D hw:3,0 /usr/share/sounds/alsa/audio.wavy ack antlr3 asciidoc autoconf \'''
Playing WAVE ‘audio.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo'''automake autopoint binutils bison build-essential \'''
<span id="hdmi音频播放测试"></span>==== HDMI音频播放测试 ===='''bzip2 ccache cmake cpio curl device-tree-compiler fastjar \'''
# 首先使用HDMI 转HDMI线将Orange Pi开发板连接到电视机上(其他的HDMI显示器需要确保可以播放音频)# 然后查看下HDMI的声卡序号,从下面的输出可以知道HDMI_TX1的声卡为'''card 1''',HDMI_TX2的声卡为'''card 2flex gawk gettext gcc-multilib g++-multilib git gperf haveged \'''
orangepi@orangepi:~$ '''aplay help2man intltool libc6-ldev-i386 libelf-dev libglib2.0-dev \'''
**** List of PLAYBACK Hardware Devices ****'''libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev \'''
card 0: rockchipdp0 [rockchip,dp0], device 0: rockchip,dp0 spdif'''libncurses5-hifidev \libncursesw5-0 [rockchip,dp0 spdifdev libreadline-hifidev libssl-0]dev \'''
Subdevices: 1/1'''libtool lrzsz mkisofs msmtp nano ninja-build p7zip p7zip-full \'''
Subdevice #0: subdevice #0'''patch pkgconf python2.7 python3 python3-pyelftools \'''
'''card 1: rockchiphdmi0 [rockchiplibpython3-hdmi0], device 0: rockchipdev qemu-hdmi0 i2sutils rsync scons squashfs-hifi-0 [rockchip-hdmi0 i2s-hifi-0]tools \'''
'''Subdevices: 1/1subversion swig texinfo uglifyjs upx-ucl unzip \'''
'''Subdevice #0: subdevice #0vim wget xmlto xxd zlib1g-dev'''
<ol start="2" style="list-style-type: decimal;"><li>然后执行'''card 2: rockchiphdmi1 [rockchip./scripts/feeds update -hdmi1], device 0: rockchip-hdmi1 i2s-hifi-0 [rockchip-hdmi1 i2s-hifia'''和'''./scripts/feeds install -0]a'''下载依赖包</li></ol>
test@test:~/openwrt$ '''Subdevices: 1./scripts/1feeds update -a'''
test@test:~/openwrt$ '''Subdevice #0: subdevice #0./scripts/feeds install -a'''
# 然后使用'''aplay'''命令播放下系统自带的音频文件,如果HDMI显示器或者电视能听到声音说明硬件能正常使用<ol start="3" style="list-style-type: decimal;">## 播放音频到HDMI_TX1的命令如下所示:<li><p>然后选择使用OrangePi 5 Plus的配置文件</p><ol style="list-style-type: lower-alpha;"><li>编译支持TF卡、eMMC、NVMe启动的镜像,选择如下的配置</li></ol></li></ol>
orangepitest@orangepitest:~/openwrt$ '''aplay cp configs/orangepi-D hw:1,0 /usr/share/sounds/alsa/audio5-plus-rk3588_defconfig .wavconfig'''
# 播放音频到HDMI_TX2的命令如下所示:<ol start="2" style="list-style-type: lower-alpha;"><li>编译支持SPIFlash启动的镜像,选择如下的配置</li></ol>
orangepitest@orangepitest:~/openwrt$ '''aplay cp configs/orangepi-5-plus-rk3588-D hw:2,0 /usr/share/sounds/alsa/audiospi_defconfig .wavconfig'''
<ol start="4" style== 使用命令测试录音的方法 ==="list-style-type: decimal;"><li>然后执行下面的命令使配置生效</li></ol>
# 开发板上有板载MIC,位置如下所示:test@test:~/openwrt$ '''make defconfig'''
[[File<ol start="5" style="list-style-type:mediadecimal;"><li>执行下面的命令开始编译openwrt源码</bdbcc8928fe96870298215b0d277712b.png]]li></ol>
# 运行test@test:~/openwrt$ '''test_record.sh mainmake V=s'''命令会通过板载MIC录制一段音频,然后播放到HDMI_TX1和耳机。
orangepi@orangepi<ol start="6" style="list-style-type:~$ '''test_record.sh main'''decimal;"><li>编译完成后,镜像生成所在的路径为:</li></ol>
Start recordingtest@test: ~/openwrt$ '''tree -L 1 bin/targets/tmprockchip/test.wavarmv8/'''
Recording WAVE ‘bin/tmptargets/rockchip/armv8/test.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Start playing├── config.buildinfo
Playing WAVE ‘/tmp/test├── feeds.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereobuildinfo
Playing WAVE ‘/tmp/test├── openwrt-rockchip-armv8-xunlong_orangepi-5-plus-ext4-sysupgrade.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereoimg.gz
# 除了板载MIC,我们还可以通过带MIC功能的耳机来录制音频。将带MIC功能的耳机插入开发板后,运行'''test_record├── openwrt-rockchip-armv8-xunlong_orangepi-5-plus.sh headset'''命令会通过耳机录制一段音频,然后播放到HDMI_TX1和耳机。manifest
orangepi@orangepi:~$ '''test_record├── openwrt-rockchip-armv8-xunlong_orangepi-5-plus-squashfs-sysupgrade.sh headset'''img.gz
Start recording: /tmp/test.wav├── packages
Recording WAVE ‘/tmp/test├── profiles.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereojson
Start playing├── sha256sums
Playing WAVE ‘/tmp/test└── version.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereobuildinfo
Playing WAVE ‘/tmp/test.wav’ : Signed 16 bit Little Endian1 directory, Rate 44100 Hz, Stereo9 files
<span id="android-12系统的使用说明"></span>= 温度传感器 =Android 12系统的使用说明 =
查看系统温度传感器的命令为:<span id="已支持的android版本"></span>== 已支持的Android版本 ==
orangepi@orangepi{| class="wikitable"|-| style="text-align:~$ left;"| '''sensorsAndroid版本'''| style="text-align: left;"| '''内核版本'''|-| style="text-align: left;"| '''Android 12'''| style="text-align: left;"| '''Linux5.10'''|-| style="text-align: left;"| '''Android 12 Box'''| style="text-align: left;"| '''Linux5.10'''|}
gpu_thermal-virtual-0<span id="android功能适配情况"></span>== Android功能适配情况 ==
Adapter{| class="wikitable"|-| style="text-align: left;"| '''功能'''| style="text-align: left;"| '''Android 12'''| style="text-align: left;"| '''Android12 Box'''|-| style="text-align: left;"| '''HDMI TX1显示-1080p'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX1显示-4K 120HZ'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX1显示-8K 60HZ'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX1音频'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX2显示-1080p'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX2显示-4K 120HZ'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX2显示-8K 60HZ'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX2音频'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI RX显示'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI RX音频'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''USB2.0X2'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''2.5G PCIe网口X2'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''2.5G PCIe网口灯'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''调试串口'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''RTC'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''FAN风扇接口'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''eMMC扩展接口'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AP6275P-WIFI'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AP6275P-BT'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AX200-WIFI'''| style="text-align: left;"| '''NO'''| style="text-align: left;"| '''NO'''|-| style="text-align: left;"| '''AX200-BT'''| style="text-align: left;"| '''NO'''| style="text-align: left;"| '''NO'''|-| style="text-align: left;"| '''AX210-WIFI'''| style="text-align: left;"| '''NO'''| style="text-align: left;"| '''NO'''|-| style="text-align: left;"| '''AX210-BT'''| style="text-align: left;"| '''NO'''| style="text-align: left;"| '''NO'''|-| style="text-align: left;"| '''RTL8852BE-WIFI'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''RTL8852BE-BT'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Recovery按键'''| style="text-align: Virtual deviceleft;"| '''OK'''| style="text-align: left;"| '''OK'''temp1|-| style="text-align: +47left;"| '''Type-C接口USB3.2°C0功能'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''littlecore_thermal|-virtual| style="text-align: left;"| '''Type-C接口ADB功能'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C接口DP显示功能'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C接口DP音频播放'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''USB3.0Hub'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-Adapter| style="text-align: Virtual deviceleft;"| '''开关机按键'''| style="text-align: left;"| '''OK'''temp1| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''红外功能'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''LED灯'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''板载MIC'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''耳机播放'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''耳机录音'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''SPK喇叭'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN GPIO'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN I2C'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN SPI'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN UART'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN PWM'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''TF卡启动'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''SPI Flash+47.2°CNVME固态启动'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''OV13850摄像头'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''OV13855摄像头'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''GPU'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''VPU'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''NPU'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''MIPI LCD显示'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''MIPI LCD触摸'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''MIPI LCD背光'''bigcore0_thermal| style="text-virtualalign: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-0| style="text-align: left;"| '''HDMI CEC功能'''Adapter| style="text-align: Virtual deviceleft;"| '''NO'''| style="text-align: left;"| '''OK'''|}
temp1: +47.2°C<span id="usb无线网卡的使用方法"></span>== USB无线网卡的使用方法 ==
tcpm_source_psy_6_0022-i2c-6-22# 目前Android镜像适配的USB无线网卡型号如下所示:
Adapter{| class="wikitable"|-| style="text-align: left;"| '''芯片型号'''| style="text-align: left;"| '''功能'''| style="text-align: left;"| '''VID&amp;PID'''| style="text-align: left;"| '''适配情况'''|-| style="text-align: rk3xleft;"| '''RTL8723BU'''| style="text-i2calign: left;"| '''2.4G WIFI+BT4.0'''| style="text-align: left;"| '''0bda:b720'''| style="text-align: left;"| '''支持WIFI和蓝牙功能,不支持开热点'''|-| style="text-align: left;"| '''RTL8811CU'''| style="text-align: left;"| '''2.4G +5G WIFI'''| style="text-align: left;"| '''0bda:c811'''| style="text-align: left;"| '''支持WIFI功能和开热点'''|}
in0<ol start="2" style="list-style-type: 0.00 V (min decimal;"><li><p>上面两款USB无线网卡的图片如下所示:</p><ol style= +0.00 V, max "list-style-type: lower-alpha;"><li><p>RTL8723BU USB无线网卡模块的图片如下所示:</p><div class= +0.00 V)"figure">
curr1[[File: 0media/image604.00 A (max = +0.00 A)png|175x103px|C89CEA9A-B322-42d2-B476-2392A50E6FC4]]
npu_thermal-virtual-0</div></li><li><p>RTL8811CU USB无线网卡模块的图片如下所示:</p><p>[[File:media/image605.png|124x107px]]</p></li></ol></li><li><p>以上2种型号的USB无线网卡的测试方法都是相同的,首先需要将USB网卡插入开发板的USB接口</p></li><li><p>然后WIFI的连接和测试方法请参考[[\l|'''WIFI的连接测试方法''']]一节的内容</p></li><li><p>蓝牙的测试请参考[[\l|'''蓝牙的测试方法''']]一节的内容</p></li></ol>
Adapter: Virtual device<span id="m.2-e-key-pcie-wifi6蓝牙模块的使用方法-2"></span>== M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 ==
temp1: +47.2°C# 目前Android12适配的PCIe无线网卡型号如下所示:
center_thermal{| class="wikitable"|-virtual| '''序号'''| '''型号'''| '''实物图片'''|-0| '''1'''| '''RTL8852BE'''
Adapter: Virtual device'''(PCIE+USB接口)'''
temp1| [[File: +47media/image6%2006.2°Cpng]]|}
bigcore1_thermal<ol start="2" style="list-virtualstyle-0type: decimal;"><li><p>首先将PCIe无线网卡插入开发板的M.2 E-KEY接口中并固定好</p><p>[[File:media/image607.png|263x178px]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电</p></li><li><p>系统启动后,WIFI的连接和测试方法请参考[[\l|'''WIFI的连接测试方法''']]一节的内容</p></li><li><p>蓝牙的测试请参考[[\l|'''蓝牙的测试方法''']]一节的内容</p></li></ol>
Adapter: Virtual device<span id="wifi的连接测试方法"></span>== WIFI的连接测试方法 ==
temp1: +47.2°C'''首先请注意Orange Pi 5 Plus开发板上是没有WIFI模块的,需要外接PCIe网卡或者USB网卡才能使用WIFI功能。'''
soc_thermal'''外接PCIe网卡的使用说明请参考[[\l|M.2 E-virtual-0Key PCIe WIFI6+蓝牙模块的使用方法]]一小节。'''
Adapter: Virtual device'''外接USB网卡的使用说明请参考[[\l|USB无线网卡的使用方法]]一小节。'''
temp1: +47.2°C (crit = +115.0°C)# 首先点击进入'''Setting'''
<span id="pin扩展接口引脚使用说明"><[[File:media/span>== 40 Pin扩展接口引脚使用说明 ==image608.png|553x182px]]
<div classol start="figure2"style="list-style-type: decimal;"><li>然后选择'''Network &amp; internet'''</li></ol>
[[File:media/a2e3e17a9eba6dc38a2c96698b330b1fimage609.jpegpng|5725d46c4ff256fbd1d42ed5ba883f9f553x154px]]
<ol start="3" style="list-style-type: decimal;"><li>然后选择'''Internet'''</li></divol># Orange Pi 5 Plus开发板40 pin扩展接口引脚的顺序请参考下图:
[[File:media/a60956e1c6771e2a198f738598a77fcdimage610.png|553x103px]]
# Orange Pi 5 Plus开发板40 pin接口引脚的功能如下表所示<ol start="4" style="list-style-type: decimal;">## 下面是40 pin完整的引脚图<li>然后打开'''Wi-Fi'''开关</li></ol>
[[File:media/8fdc5f37f284d983dd9764c23147b156image611.png|553x65px]]
下面这张是彩图,包含上面表格中的部分内容:<ol start="5" style="list-style-type: decimal;"><li><p>打开'''Wi-Fi'''后如果一切正常,就可以扫描到附近的Wi-Fi热点了</p><p>[[File:media/image612.png|549x172px]]</p></li><li><p>然后选择想连接的Wi-Fi后会弹出下图所示的密码输入界面</p><p>[[File:media/image613.png|553x237px]]</p></li><li><p>然后使用键盘输入Wi-Fi对应的密码,再使用鼠标点击虚拟键盘中的回车按钮就会开始连接Wi-Fi了</p><p>[[File:media/image614.png|553x232px]]</p></li><li><p>Wi-Fi连接成功后的显示如下图所示:</p><p>[[File:media/image615.png|553x93px]]</p></li></ol>
[[File:media<span id="wi-fi-hotspot的使用方法"></2bc11748f8f69c39863670e218a92157.png]]span>== Wi-Fi hotspot的使用方法 ==
# 下面的表格是上面完整表格左半边部分的图,能看得清楚点<ol style="list-style-type: decimal;"><li><p>首先请确保以太网口已连接网线,并且能正常上网</p></li><li><p>然后选择'''Settings'''</p><p>[[File:media/image608.png|553x182px]]</p></li><li><p>然后选择'''Network &amp; internet'''</p><p>[[File:media/image609.png|553x154px]]</p></li><li><p>然后选择'''Hotspot &amp; tethering'''</p><p>[[File:media/image616.png|575x195px]]</p></li><li><p>然后选择'''Wi-Fi hotspot'''</p><p>[[File:media/image617.png|575x96px]]</p></li><li><p>然后打开'''Wi-Fi hotspot''',下图中还可以看到生成的热点的名字和密码,记住它们,在连接热点的时候要用到('''如果需要修改热点的名字和密码,需要先关闭Wi-Fi hotspot,然后才能修改''')</p><p>[[File:media/image618.png|575x187px]]</p></li><li><p>此时可以拿出你的手机,如果一切正常,在手机搜索到的WI-FI列表中就能找到上图'''Hotspot name'''下面显示的同名('''这里为 AndroidAP_6953''')的WIFI热点了。然后可以点击'''AndroidAP_6953'''连接热点,密码在上图的'''Hotspot password''' 下面可以看到</p></li></ol>
[[File:media/c25e56f7ee717fc0a967c1cb82de9233image619.png|342x260px]]
# 下面的表格是上面完整表格右半边部分的图,能看得清楚点<ol start="8" style="list-style-type: decimal;"><li>连接成功后显示如下图所示(不同手机界面会有区别,具体界面以你手机显示的为准)。此时就可以在手机上打开一个网页看下能否上网了,如果能正常打开网页, 说明开发板的'''WI-FI Hotspot''' 能正常使用</li></ol>
[[File:media/db512b4cd98f4ae32d598a09b5169c65image620.png|347x175px]]
'''上面表格中pwm都标出了对应的寄存器的基地址,在查看/sys/class/pwm/中哪个pwmchip对应40 pin排针中哪个pwm引脚时很有用。'''== 蓝牙的测试方法 ==
# 40 pin接口中总共有'''28请注意,Orange Pi 5 Plus开发板上是没有蓝牙模块的,需要外接带蓝牙的PCIe网卡或者带蓝牙的USB网卡才能使用蓝牙功能。'''个GPIO口,所有GPIO口的电压都是'''3.3v'''。
<span id="安装wiringop的方法"></span>== 安装wiringOP的方法 =='''外接PCIe网卡的使用说明请参考[[\l|M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法]]一小节。'''
'''注意,Orange Pi发布的linux镜像中已经预装了wiringOP,除非wiringOP的代码有更新,否则无需重新下载编译安装,直接使用即可。外接USB网卡的使用说明请参考[[\l|USB无线网卡的使用方法]]一小节。'''
<ol style="list-style-type: decimal;"><li><p>首先点击进入'''Setting'''</p><p>[[File:media/image608.png|553x182px]]</p></li><li><p>然后选择'''Connected devices'''</p><p>[[File:media/image621.png|575x146px]]</p></li><li><p>然后点击'''Pair new device''编译好的wiringOP的deb包在orangepi-build中的存放路径为:'打开蓝牙并开始扫描周围的蓝牙设备</p><p>[[File:media/image622.png|575x144px]]</p></li><li><p>搜索到的蓝牙设备会在'''Available devices'''下面显示出来</p><p>[[File:media/image623.png|575x200px]]</p></li><li><p>然后点击想要连接的蓝牙设备就可以开始配对了,当弹出下面的界面时,请使用鼠标选择'''Pair'''选项</p><p>[[File:media/image624.png|575x155px]]</p></li><li><p>这里测试的是开发板和安卓手机蓝牙的配置过程,此时在手机上会弹出下面的确认界面,在手机上也点击配对按钮后就会开始配对过程</p><p>[[File:media/image625.png|308x232px]]</p></li><li><p>配对完成后,可以看到如下图所示的已配对的蓝牙设备</p><p>[[File:media/image626.png|575x170px]]</p></li><li><p>此时可以使用手机蓝牙给开发板发送一张图片,发送后,在开发板的安卓系统中可以看到下面的确认界面,然后点击'''Accept'''就可以开始接收手机发过来的图片了</p><p>[[File:media/image627.png|575x250px]]</p></li><li><p>开发板Android系统蓝牙接收到的图片可以在文件管理器中打开'''Download'''目录查看</p><p>[[File:media/image628.png|575x86px]]</p></li></ol>
'''orangepi<span id="hdmi-build/external/cache/debs/arm64in的测试方法-2"></wiringpi_x.xx.deb'''span>== HDMI In的测试方法 ==
'''进入系统后可以运行下gpio readall命令,如果能看到下面的输出,说明wiringOP已经预装并且能正常使用。'''<ol style="list-style-type: decimal;"><li><p>开发板HDMI In接口的所在位置如下所示:</p><p>[[File:media/image255.png|351x112px]]</p></li><li><p>然后使用下图所示的HDMI转HDMI线将其它设备的HDMI输出接到开发板的HDMI In接口上</p><p>[[File:media/image10.png|199x129px]]</p></li><li><p>确保连接到HDMI In接口的设备的HDMI输出是正常的,然后打开HDMI In测试APP</p><p>[[File:media/image629.png|532x167px]]</p></li><li><p>然后就可以看到HDMI In的视频输入了,同时HDMI In的音频输入也会从开发板的HDMI TX接口或者耳机接口输出。下图显示的是通过HDMI In输入的OPi5开发板Linux系统的桌面。</p><p>[[File:media/image630.png|533x301px]]</p></li></ol>
<div classspan id="figure寸mipi-屏幕的使用方法"></span>== 10.1寸MIPI 屏幕的使用方法 ==
[[File:media/167f6a97004f798d35e9653b7692d025.png|876iring_001]]'''请确保使用的Android镜像为下面的两个版本的镜像:'''
</div>'''wiringOP目前主要适配了设置GPIO口输入输出,设置GPIO口输出高低电平以及设置上下拉电阻的功能,像硬件PWM这样的功能是用不了的。OrangePi5Plus_RK3588_Android12_lcd_v1.x.x.img'''
# 下载wiringOP的代码'''OrangePi5Plus_RK3588_Android12_spi-nvme_lcd_v1.x.x.img'''
orangepi@orangepi<ol style="list-style-type:~$ decimal;"><li><p>首先需要组装好屏幕,请参考[[\l|'''sudo apt update10.1寸MIPI屏幕的组装方法''']]</p></li><li><p>开发板上LCD的接口位置如下图所示:</p><p>[[File:media/image631.png|317x80px]]</p><p>'''注意,下面的触摸接口不是给LCD MIPI屏幕使用的,目前为备用接口,使用不到。'''</p><p>[[File:media/image415.png|334x70px]]</p></li><li><p>将组装好的屏幕接到LCD接口,给板子接通Type-C电源,并上电,系统启动后,就可以看到屏幕显示如下图所示</p><p>[[File:media/image632.png|517x345px]]</p></li></ol>
orangepi@orangepi:~$ '''sudo apt install <span id="ov13850和ov13855-y git'''mipi摄像头的测试方法-2"></span>== OV13850和OV13855 MIPI摄像头的测试方法 ==
orangepi@orangepi:~$ '''git clone https://github.com/orangepi-xunlong/wiringOP.git -b next'''目前开发板支持两款MIPI摄像头,OV13850和OV13855,具体的图片如下所示:
<ol style="list-style-type: lower-alpha;"><li><p>1300万MIPI接口的OV13850摄像头</p><p>[[File:media/image22.png|268x151px]]</p></li><li><p>1300万MIPI接口的OV13855摄像头</p><p>[[File:media/image23.png|253x150px]]</p><p>OV13850和OV13855摄像头使用的转接板和FPC排线是一样的,只是两款摄像头接在转接板上的位置不一样。FPC排线如下图所示,请注意FPC排线是有方向的,标注'''TO MB'''注意,Orange Pi 5 Plus需要下载wiringOP next分支的代码,请别漏了-b next这个参数。那端需要插到开发板的摄像头接口中,标注'''TO CAMERA'''那端需要插到摄像头转接板上。</p></li></ol>
'''如果从GitHub下载代码有问题,可以直接使用Linux镜像中自带的wiringOP源码,存放位置为:[[File:media/usr/src/wiringOP'''image426.png|475x99px]]
# 编译安装wiringOP摄像头转接板上总共有3个摄像头的接口,同一时间只能接一个使用,如下图所示,其中:
orangepi@orangepi<ol style="list-style-type:~$ lower-alpha;"><li><p>'''cd wiringOP1号接口接OV13850摄像头'''</p></li><li><p>'''2号接口接OV13855摄像头'''</p></li><li><p>3号接口未使用,忽略即可</p></li></ol>
orangepi@orangepi[[File:~media/wiringOP$ '''sudo image427./build clean'''png|288x172px]]
orangepi@orangepi:~/wiringOP$ '''sudo ./build'''Orange Pi 5 Plus开发板摄像头接口的位置如下图所示:
# 测试gpio readall命令的输出如下[[File:media/image633.png|388x65px]]
<div class="figure">摄像头插在开发板CAM接口的方法如下所示:
[[File:media/167f6a97004f798d35e9653b7692d025image429.png|876iring_001285x132px]]
</div><span id="pin接口gpioi2cuartspican和pwm测试"></span>== 40 pin接口GPIO、I2C、UART、SPI、CAN和PWM测试 ==连接好摄像头到开发板上后,我们可以使用下面的方法来测试下摄像头:
<span idol style="pinlist-gpio口测试style-type: lower-alpha;"><li><p>在桌面中打开相机APP</p><p>[[File:media/image634.png|491x279px]]</p></spanli><li><p>然后就能看到摄像头的预览画面了</p><div class=== 40 pin GPIO口测试 ==="figure">
'''Orange Pi发布的linux系统中有预装一个blink_all_gpio程序,这个程序会设置40 pin中的所有28个GPIO口不停的切换高低电平。''' '''运行blink_all_gpio程序后,当用万用表去测量GPIO口的电平时,会发现GPIO引脚会在0和3[[File:media/image635.3v之间不停的切换。使用这个程序我们可以来测试GPIO口是否能正常工作。''' '''运行blink_all_gpio程序的方式如下所示:''' orangepi@orangepi5plus:~$ '''sudo blink_all_gpio #记得加sudo权限''' [sudopng|379x213px|Screenshot_20230317-073757]] password for orangepi: '''#在这里需要输入密码''' # 开发板40 pin中总共有'''28'''个GPIO口可以使用,下面以7号引脚——对应GPIO为GPIO1_D6 ——对应wPi序号为2——为例演示如何设置GPIO口的高低电平
</div>
<p>在摄像头APP下图红框所示的区域中按住鼠标然后向右拖动可以调出拍照和摄像的切换界面</p>
<p>[[File:media/image636.png|391x222px]]</p>
<p>拍照和摄像的切换界面如下所示,点击'''Video'''即可切换到录像模式</p>
<div class="figure">
[[File:media/848fb41de6fb6e4978ca52df25d5e04dimage637.png|874iring_001386x217px|Screenshot_20230317-074419]]
</div>
# 首先设置GPIO口为输出模式,其中第三个参数需要输入引脚对应的wPi的序号<p>点击下图所示的位置可以进入摄像头的设置界面</p><p>[[File:media/image638.png|390x221px]]</p><p>摄像头的设置界面如下所示:</p><div class="figure">
root@orangepi[[File:~media/wiringOP# '''gpio mode 2 out'''image639.png|429x241px|Screenshot_20230317-075325]]
# 然后设置GPIO口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功</div></li></ol>
root@orangepi:~<span id="pin-接口-gpiouartspi-和-pwm-测试"></wiringOP# '''gpio write 2 0'''span>== 26pin 接口 GPIO、UART、SPI 和 PWM 测试 ==
使用gpio readall可以看到7号引脚的值(V)变为了0<span id="pin-gpio-口测试"></span>=== 40pin GPIO 口测试 ===
<div classol style="figurelist-style-type: decimal;"><li><p>首先点击wiringOP图标打开wiringOP APP</p><p>[[File:media/image640.png|552x183px]]</p></li><li><p>wiringOP APP的主界面显示如下图所示,然后点击'''GPIO_TEST'''按钮打开GPIO测试界面</p><p>[[File:media/image641.png|553x131px]]</p></li><li><p>GPIO测试界面如下图所示,左边的两排'''CheckBox'''按钮跟26pin引脚是一一对应的关系。当勾选'''CheckBox'''按钮时,对应的GPIO引脚会被设置为'''OUT'''模式,引脚电平设置为高电平;当取消勾选时,GPIO引脚电平设置为低电平;当点击右边的'''GPIO READALL'''按钮时,可以获取到wPi号、GPIO模式、引脚电平等信息。</p><p>[[File:media/image642.png|553x288px]]</p></li><li><p>然后点击'''GPIO READALL'''按钮,输出信息如下图所示:</p><p>[[File:media/image643.png|553x310px]]</p></li><li><p>开发板40pin中总共有28个GPIO口可以使用,下面以11号引脚——对应GPIO为GPIO1_A4 ——对应wPi序号为5——为例演示如何设置GPIO口的高低电平。首先点击11号引脚对应的'''CheckBox'''按钮,当按钮为选中状态时,11号引脚会设置为高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为'''3.3v''',说明设置高电平成功</p><p>[[File:media/image644.png|204x392px]]</p></li><li><p>然后点击'''GPIO READALL'''按钮,可以看到当前的7号引脚模式为'''OUT''',引脚电平为高电平</p><p>[[File:media/image645.png|552x259px]]</p></li><li><p>再次点击下图的'''CheckBox'''按钮取消勾选状态,11号引脚会设置为低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为'''0v''',说明设置低电平成功</p><p>[[File:media/image646.png|205x394px]]</p></li><li><p>然后点击'''GPIO READALL'''按钮,可以看到当前的11号引脚模式为OUT,引脚电平为低电平</p><p>[[File:media/image647.png|552x258px]]</p></li></ol> <span id="pin的uart测试-3"></span>=== 40pin的UART测试 === <ol style="list-style-type: decimal;"><li><p>Android中默认打开了'''UART3'''和'''UART8''',在40pin的位置如下图所示,对应的设备节点分别是'''/dev/ttyS3'''和'''/dev/ttyS8'''</p><p>[[File:media/image648.png|508x139px]]</p></li><li><p>首先点击wiringOP图标打开wiringOP APP</p><p>[[File:media/image640.png|552x183px]]</p></li><li><p>wiringOP APP的主界面显示如下图所示,然后点击'''UART_TEST'''按钮打开UART测试界面</p><p>[[File:media/image649.png|552x123px]]</p></li><li><p>APP的串口测试界面如下图所示</p></li></ol> [[File:media/image650.png|552x310px]] <ol start="5" style="list-style-type: decimal;"><li>下面以测试'''UART3'''为例,在选择框中选择'''/dev/ttyS3'''节点,在编辑框中输入想要设置的波特率,然后点击'''OPEN'''按钮打开'''/dev/ttyS3'''节点,打开成功后,'''OPEN'''按钮变为不可选中状态,'''CLOSE'''按钮和'''SEND'''按钮变为可选中状态</li></ol> [[File:media/image651.png|552x154px]] <ol start="6" style="list-style-type: decimal;"><li><p>然后使用杜邦线短接uart3的RXD和TXD引脚</p><p>[[File:media/image652.png|455x121px]]</p></li><li><p>然后可以在下面的发送编辑框中输入一段字符,点击'''SEND'''按钮开始发送</p></li></ol>
[[File:media/b56b2329e91103c88644feb84d4ea385image653.png|874iring_002553x155px]]
<ol start="8" style="list-style-type: decimal;"><li>如果一切正常,接收框内会显示已接收到的字符串</li></divol># 然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功
root@orangepi[[File:~media/wiringOP# '''gpio write 2 1'''image654.png|553x290px]]
使用gpio readall可以看到7号引脚的值(V)变为了1<span id="pin的spi测试"></span>=== 26pin的SPI测试 ===
<div classol style="figurelist-style-type: decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的SPI为SPI0和SPI4</p><p>[[File:media/image294.png|575x137px]]</p></li><li><p>Android系统默认打开的是SPI0的配置,这里演示下通过w25q64模块来测试SPI0接口,首先在SPI0接口接入w25q64设备</p><p>[[File:media/image655.png|195x164px]]</p></li><li><p>然后点击wiringOP图标打开wiringOP APP</p><p>[[File:media/image640.png|552x183px]]</p></li><li><p>wiringOP APP的主界面显示如下图所示,点击'''SPI_TEST'''按钮打开SPI的测试界面</p><p>[[File:media/image656.png|552x123px]]</p></li><li><p>然后点击'''OPEN'''按钮初始化SPI</p></li></ol>
[[File:media/b014b3ea3b78da6fde018f37b20de7cdimage657.png|875iring_001552x155px]]
<ol start="6" style="list-style-type: decimal;"><li><p>然后填充需要发送的字节,比如读取w25q64的ID信息,在data[0]中填入地址0x9f,然后点击'''TRANSFER'''按钮</divp># 其他引脚的设置方法类似,只需修改wPi的序号为引脚对应的序号即可<p>[[File:media/image658.png|575x252px]]</p></li><li><p>最后APP会显示读取到的ID信息</p></li></ol>
<span id="pin-gpio口上下拉电阻的设置方法"><[[File:media/span>=== 40 pin GPIO口上下拉电阻的设置方法 ===image659.png|552x206px]]
# 下面以7号引脚——对应GPIO为GPIO1_D6 ——对应wPi序号为2——为例演示如何设置GPIO口的上下拉电阻<ol start="8" style="list-style-type: decimal;"><li><p>w25q64模块的MANUFACTURER ID为EFh,Device ID为4017h,跟上面读取到的值是对应的(h代表是16进制)</p><p>[[File:media/image660.png|374x126px]]</p></li></ol>
<div classspan id="figurepin的pwm测试"></span>=== 26pin的PWM测试 ===
<ol style="list-style-type: decimal;"><li><p>Android默认开启了'''PWM10'''和'''PWM14''',对应的引脚在40pin的所在位置如下图所示:</p><p>[[File:media/image661.png|431x130px]]</p></li><li><p>首先点击wiringOP图标打开wiringOP APP</p><p>[[File:media/image640.png|552x183px]]</p></li><li><p>然后在wiringOP的主界面点击'''PWM_TEST'''按钮进入PWM的测试界面</p><p>[[File:media/image662.png|553x125px]]</p></li><li><p>PWM10对应的基地址是'''febe0020''',PWM14对应的基地址是'''febf0020''',这里pwmchip0右边显示是'''fd8b0020.pwm''',这时需要点击下拉选项选择其它的pwmchip,直到右边显示'''febe0020'''或者'''febf0020'''为止。</p><p>[[File:media/image663.png|553x111px]]</p></li><li><p>当下拉选项菜单选择'''pwmchip2'''时,右边对应的就是'''PWM10'''的基地址'''febe0020'''</p><p>[[File:media/b014b3ea3b78da6fde018f37b20de7cdimage664.png|875iring_001553x102px]]</p></li><li><p>当下拉选项菜单选择'''pwmchip4'''时,右边对应的就是'''PWM14'''的基地址'''febe0020'''</p><p>[[File:media/image665.png|553x102px]]</p></li><li><p>以测试PWM10为例,我们需要选择'''pwmchip2'''</p><p>[[File:media/image664.png|553x102px]]</p></li><li><p>然后确认PWM的周期,默认的配置是'''50000ns''',转换为PWM频率是'''20KHz''',可自行修改,点击开启按钮导出'''PWM10'''</p><p>[[File:media/image666.png|552x101px]]</p></li><li><p>然后拖动下面的拖动条,就可以改变PWM的占空比,然后勾选Enable就可以输出PWM波形了</p></li></ol>
<[[File:media/div># 首先需要设置GPIO口为输入模式,其中第三个参数需要输入引脚对应的wPi的序号image667.png|575x116px]]
root@orangepi<ol start="10" style="list-style-type:~decimal;"><li>然后使用示波器测量开发板40pin中的第31号引脚就可以看到下面的波形了</wiringOP# '''gpio mode 2 in'''li></ol>
# 设置为输入模式后,执行下面的命令可以设置GPIO口为上拉模式[[File:media/image668.png|460x276px]]
root@orangepi:~<span id="adb的使用方法-1"></wiringOP# '''gpio mode 2 up'''span>== ADB的使用方法 ==
# 然后输入下面的命令读取GPIO口的电平,如果电平为1,说明上拉模式设置成功=== 使用数据线连接adb调试 ===
root<ol start="5" style="list-style-type: decimal;"><li><p>首先准备一根品质良好的Type-C数据线</p><p>[[File:media/image20.png|122x97px]]</p></li><li><p>然后通过Type-C数据线连接好开发板与Ubuntu PC,开发板Type-C接口的位置如下图所示:</p><p>[[File:media/image52.png|319x90px]]</p></li><li><p>然后在Ubuntu PC上安装adb工具</p><p>test@orangepitest:~$ '''sudo apt update'''</wiringOP# p><p>test@test:~$ '''gpio read 2sudo apt -y install adb'''</p></li><li><p>通过下面的命令可以查看识别到的ADB设备</p><p>test@test:~$ '''adb devices'''</p><p>List of devices attached</p><p>S63QCF54CJ device</p><p>test@test:~$ '''lsusb'''</p><p>Bus 003 Device 006: ID 2207:0006</p></li><li><p>然后在Ubuntu PC上通过adb shell就可以登录到android系统了</p></li></ol>
test@test:~$ '''1adb shell'''
# 然后执行下面的命令可以设置GPIO口为下拉模式console:/ $
root@orangepi<ol start="10" style="list-style-type:~decimal;"><li>执行下面的命令可以重新挂载Android系统</wiringOP# '''gpio mode 2 down'''li></ol>
# 然后输入下面的命令读取GPIO口的电平,如果电平为0,说明下拉模式设置成功test@test:~$ '''adb root'''
roottest@orangepitest:~/wiringOP# $ '''gpio read 2adb remount'''
'''0'''<ol start="11" style="list-style-type: decimal;"><li>然后就可以传输文件到Android系统了</li></ol>
<span id="pin-spi测试"><test@test:~$ '''adb push example.txt /span>=== 40 pin SPI测试 ===system/'''
# 由下图可知,Orange Pi 5 Plus可用的SPI为SPI0和SPI4=== 使用网络连接adb调试 ===
[[File:media/8fdc5f37f284d983dd9764c23147b156.png]]'''使用网络adb无需Typc-C接口的数据线来连接电脑和开发板,而是通过网络来通信,所以首先请确保开发板的有线或者无线网络已经连接好了,然后获取开发板的IP地址,后面要用到。'''
<ol style="list-style-type: decimal;"><li><p>确保Android系统的'''service.adb.tcp.port'''设置为5555端口号</p><p>console:/ # SPI0和SPI4在40pin中对应的引脚如下表所示。SPI4_M1和SPI4_M2同一时间只能使用其中一组,不能同时使用,它们都是同一个SPI4,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的SPI总线。'''getprop | grep &quot;adb.tcp&quot;'''</p><p>[service.adb.tcp.port]: ['''5555''']</p></li><li><p>如果'''service.adb.tcp.port'''没有设置,可以使用下面的命令设置网络adb的端口号</p></li></ol>
{| class="wikitable"|-!! console:/ # '''SPI0_M2对应40pinsetprop service.adb.tcp.port 5555'''! '''SPI4_M1对应40pin'''! '''SPI4_M2对应40pin'''|-| '''MOSI'''| '''19号引脚'''| '''12号引脚'''| '''8号引脚'''|-| '''MISO'''| '''21号引脚'''| '''31号引脚'''| '''10号引脚'''|-| '''CLK'''| '''23号引脚'''| '''35号引脚'''| '''22号引脚'''|-| '''CS0'''| '''24号引脚'''| '''40号引脚'''| '''31号引脚'''|-| '''CS1'''| '''26号引脚'''| '''38号引脚'''| '''无'''|-| '''dtbo配置'''| '''spi0-m2-cs0-spidev''' '''spi0-m2-cs1-spidev''' '''spi0-m2-cs0-cs1-spidev'''| '''spi4-m1-cs0-spidev''' '''spi4-m1-cs1-spidev''' '''spi4-m1-cs0-cs1-spidev'''| '''spi4-m2-cs0-spidev'''|}
console:/ # 在linux系统中,40 pin中的SPI默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:## 首先运行下'''orangepi-config''',普通用户记得加'''sudostop adbd'''权限
orangepi@orangepiconsole:~$ / # '''sudo orangepi-configstart adbd'''
# 然后选择<ol start="3" style="list-style-type: decimal;"><li><p>在Ubuntu PC上安装adb工具</p><p>test@test:~$ '''Systemsudo apt update'''</p><p>test@test:~$ '''sudo apt install -y adb'''</p></li><li><p>然后在Ubuntu PC上连接网络adb</p><p>test@test:~$ '''adb connect 192.168.1.xxx''' '''(IP地址需要修改为开发板的IP地址)'''</p><p>* daemon not running; starting now at tcp:5037</p><p>* daemon started successfully</p><p>connected to 192.168.1.xxx:5555</p><p>test@test:~$ '''adb devices'''</p><p>List of devices attached</p><p>192.168.1.xxx:5555 device</p></li><li><p>然后在Ubuntu PC上通过adb shell就可以登录到android系统</p></li></ol>
[[Filetest@test:media/5b020440753c1c1d150d0993f08eacfd.png]]~$ '''adb shell'''
console:/ # 然后选择'''Hardware'''
[[File:media<span id="android-box测试过的2.4g-usb遥控器"></0d5151e38da17701cc4920f1997e064cspan>== Android Box测试过的2.png]]4G USB遥控器 ==
# 然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的SPI的配置<ol style="list-style-type: decimal;"><li><p>目前测试过的一款2.4G USB遥控器如下图所示</p><ol style="list-style-type: lower-alpha;"><li><p>包含一个遥控器</p><p>[[File:media/image669.png|199x149px]]</p></li><li><p>一个USB无线接收器</p><p>[[File:media/image670.png|110x119px]]</p></li></ol></li><li><p>Android Box系统无需任何配置,插上就可以用了</p></li></ol>
[[File:media<span id="android-box系统红外遥控器的使用方法"></9fc8322e3c73de03c83ab6f1bb520951.png]]span>== Android Box系统红外遥控器的使用方法 ==
# 然后选择'''&lt<ol start="3" style="list-style-type: decimal;Save&gt;'''保存"><li><p>开发板自带有红外接收器,其所在位置如下图所示:</p><p>[[File:media/image671.png|435x124px]]</p></li><li><p>测试红外接收前我们需要准备一个红外遥控器</p><div class="figure">
[[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5bimage672.png|141x127px|6FBFE2FA-31A4-4a26-AC63-9A3E4E359FFF]]
# 然后选择</div><p>'''&lt;Back&gt;注意:香橙派提供的Android系统默认只支持香橙派提供的遥控器,电视或者空调的遥控器是不能用的。'''</p></li><li><p>Android Box系统已经适配了这款遥控器,直接就可以使用了,无需其它的设置。</p></li></ol>
[[File:media<span id="android-box系统hdmi-cec功能的使用方法"></3191851a2c1e634c8765850e0eedbe63.png]]span>== Android Box系统HDMI CEC功能的使用方法 ==
# 然后选择'''&lt;Reboot&gt;HDMI CEC允许用户只用一个遥控器,就能通过HDMI控制所有连接的设备,基于这个功能,我们用电视机的遥控器就可以控制开发板。'''重启系统使配置生效
[[File:media/03310676d04e3df78bf5a4f3536ad49c.png]]'''测试此功能前,请确保您的电视机是支持HDMI CEC的。'''
# 重启后进入系统先查看下linux系统中是否存在<ol style="list-style-type: decimal;"><li><p>首先将开发板通过HDMI线连接到电视,然后上电启动</p></li><li><p>然后在电视的设置中开启HDMI CEC功能,不同电视开启方式可能有差异,这里以小米电视为例,按下遥控器的菜单键,然后选中CEC遥控并按下确认键</p><p>[[File:media/image673.png|575x323px]]</p></li><li><p>然后选择'''spidevx.x“开”'''的设备节点,如果存在,说明SPI已经设置好了,可以直接使用。就可以打开HDMI CEC遥控</p><p>[[File:media/image674.png|576x257px]]</p></li><li><p>此时就可以通过电视的遥控器控制开发板的Android Box系统了</p></li></ol>
orangepi@orangepi:~$ '''ls <span id="android-12源码的编译方法"></dev/spidev*'''span>= Android 12源码的编译方法 =
<span id="下载android-12的源码"></dev/spidev0.0 /dev/spidev0.1 /dev/spidev4.0 /dev/spidev4.1span>== 下载Android 12的源码 ==
'''上面是打开spi0<ol style="list-m2style-cs0type: decimal;"><li><p>首先从百度云盘或者谷歌网盘下载Android 12源码的分卷压缩包</p><ol style="list-cs1style-spidev和spi4type: lower-m1alpha;"><li><p>百度云盘</p><p>[[File:media/image675.png|575x200px]]</p></li><li><p>谷歌网盘</p><p>[[File:media/image676.png|575x138px]]</p></li></ol></li><li><p>Android 12源码的分卷压缩包下载完后,请先检查下MD5校验和是否正确,如果不正确,请重新下载源码</p><p>test@test:~$ '''md5sum -cs0-cs1-spidev后显示的结果。c Android_12.tar.gz.md5sum'''</p><p>'''Android_12.tar.gz00: 确定'''</p><p>'''Android_12.tar.gz01: 确定'''</p><p>'''Android_12.tar.gz02: 确定'''</p><p>'''Android_12.tar.gz03: 确定'''</p><p>'''Android_12.tar.gz04: 确定'''</p><p>'''Android_12.tar.gz05: 确定'''</p><p>'''Android_12.tar.gz06: 确定'''</p><p>'''Android_12.tar.gz07: 确定'''</p></li><li><p>然后需要将多个压缩文件合并成一个,再进行解压</p></li></ol>
# 然后先不短接SPI0或者SPI4的MOSI和MISO两个引脚,运行spidev_test的输出结果如下所示,可以看到TX和RX的数据不一致test@test:~$ '''cat Android_12.tar.gz0* &gt; Android_12.tar.gz'''
orangepitest@orangepitest:~$ '''sudo spidev_test tar -v -D /dev/spidev4xvf Android_12.tar.0gz'''
'''或者'''<span id="编译android-12的源码"></span>== 编译Android 12的源码 ==
orangepi<ol style="list-style-type: decimal;"><li><p>首先安装编译Android12源码需要的软件包</p><p>test@test:~$ '''sudo apt-get update'''</p><p>test@orangepitest:~$ '''sudo spidev_test apt-get install -v y git gnupg flex bison gperf build-D essential \'''</p><p>'''zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \'''</p><p>'''lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache \'''</p><p>'''libgl1-mesa-dev libxml2-utils xsltproc unzip'''</p><p>test@test:~$ '''sudo apt-get install -y u-boot-tools'''</p></li><li><p>源码中有build.sh编译脚本,编译参数如下</p><ol style="list-style-type: lower-alpha;"><li><p>-'''U''':编译uboot</p></li><li><p>-'''K''':编译kernel</p></li><li><p>-'''A''':编译android</p></li><li><p>-'''u''':打包生成update.img与update_spi_nvme.img</p></li><li><p>-'''o''':编译OTA包</p></li><li><p>-'''d''':指定kernel dts</p></li></ol></li><li><p>编译uboot、kernel、android并打包成update.img</p><ol style="list-style-type: lower-alpha;"><li><p>编译支持HDMI 8K显示镜像(默认关闭LCD)的命令如下所示:</p><p>test@test:~$ '''cd Android_12'''</p><p>test@test:~/ Android_12$ '''source build/envsetup.sh'''</p><p>test@test:~/ Android_12$ '''lunch rk3588_s-userdebug'''</p><p>test@test:~/ Android_12$ '''./build.sh -AUKu'''</p></li><li><p>编译支持LCD显示镜像的命令如下所示:</p><p>test@test:~$ '''cd Android_12'''</p><p>test@test:~/ Android_12$ '''export DUAL_LCD=true'''</p><p>test@test:~/ Android_12$ '''source build/envsetup.sh'''</p><p>test@test:~/ Android_12$ '''lunch rk3588_s-userdebug'''</p><p>test@test:~/ Android_12$ '''./build.sh -AUKu'''</p></li><li><p>编译Box版本的镜像的命令如下所示:</p><p>test@test:~$ '''cd Android_12'''</p><p>test@test:~/ Android_12$ '''export BOARD=orangepi5plus'''</p><p>test@test:~/ Android_12$ '''source build/envsetup.sh'''</p><p>test@test:~/ Android_12$ '''lunch rk3588_box-userdebug'''</p><p>test@test:~/ Android_12$ '''./spidev0build.0sh -AUKu'''</p></li></ol></li><li><p>编译完成后会打印下面的信息</p><p>********rkImageMaker ver 2.1********</p><p>Generating new image, please wait...</p><p>Writing head info...</p><p>Writing boot file...</p><p>Writing firmware...</p><p>Generating MD5 data...</p><p>MD5 data generated successfully!</p><p>New image generated successfully!</p><p>Making update.img OK.</p><p>Make update image ok!</p></li><li><p>最终生成的镜像文件会放在'''rockdev/Image-rk3588_s'''目录下。其中'''update.img'''是支持TF卡和eMMC启动镜像,'''update_spi_nvme.img'''是NVME SSD启动镜像</p><p>[mailto:test@test:~OrangePi_4/rk3399-android-8.1$ test@test:~/Android_12$] '''cd rockdev/Image-rk3588s_s'''</p><p>[mailto:test@test:~OrangePi_4/rk3399-android-8.1$ test@test:~/Android_12/rockdev/Image-rk3588s_s $] '''ls update*'''</p><p>update.img update_spi_nvme.img</p></li><li><p>如果编译的是Box版本的镜像,最终生成的镜像文件会放在'''rockdev/Image-rk3588_box'''目录下</p><p>[mailto:test@test:~OrangePi_4/rk3399-android-8.1$ test@test:~/Android_12$] '''cd rockdev/Image-rk3588_box'''</p><p>[mailto:test@test:~OrangePi_4/rk3399-android-8.1$ test@test:~/Android_12/rockdev/Image-rk3588_box$] '''ls update*'''</p><p>update.img update_spi_nvme.img</p></li></ol>
spi mode: 0x0<span id="orange-pi-os-droid-系统的使用说明"></span>= Orange Pi OS Droid 系统的使用说明 =
bits per word: 8 max speed: 500000 Hz (500 KHz) 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 | ………………………….. # 然后短接SPI0或者SPI4的MOSI和MISO两个引脚再运行spidev_test的输出如下,可以看到发送和接收的数据一样,说明SPI回环测试正常。 orangepi@orangepi:~$ '''sudo spidev_test -v -D /dev/spidev4.0''' '''或者''' orangepi@orangepi:~$ '''sudo spidev_test -v -D /dev/spidev0.0''' spi mode: 0x0 bits per word: 8 max speed: 500000 Hz (500 KHz) 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 | ……@….▒………………▒. <span id="pinopi-i2c测试os-droid系统的功能适配情况"></span>=== 40 pin I2C测试 =OPi OS Droid系统的功能适配情况 == # 由下表可知,Orange Pi 5 Plus可用的i2c为i2c2、i2c4、i2c5和i2c8共四组 i2c总线。 [[File:media/8fdc5f37f284d983dd9764c23147b156.png]] # 4组I2C总线在40pin中对应的引脚如下表所示。I2C2_M0和I2C2_M4同一时间只能使用其中一组,不能同时使用,它们都是同一个I2C2,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的I2C2总线。
{| class="wikitable"
|-
! | style="text-align: left;"| '''I2C总线功能'''! | style="text-align: left;"| '''SDA对应40pinOPi OS Droid功能适配情况'''! |-| style="text-align: left;"| '''HDMI TX1显示'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX1音频'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX2显示'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX2音频'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI RX显示'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI RX音频'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''USB2.0X2'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''2.5G PCIe网口X2'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''2.5G PCIe网口灯'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''调试串口'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''SCL对应40pinRTC'''! | style="text-align: left;"| '''dtbo对应配置OK'''
|-
| '''I2C2_M0'''style="text-align: left;"| '''3号引脚FAN风扇接口'''| '''5号引脚'''style="text-align: left;"| '''i2c2-m0OK'''
|-
| '''I2C2_M4'''style="text-align: left;"| '''10号引脚eMMC扩展接口'''| '''8号引脚'''style="text-align: left;"| '''i2c2-m4OK'''
|-
| '''I2C4_M3'''style="text-align: left;"| '''22号引脚AP6275P-WIFI'''| '''32号引脚'''style="text-align: left;"| '''i2c4-m3OK'''
|-
| '''I2C5_M3'''style="text-align: left;"| '''27号引脚AP6275P-BT'''| '''28号引脚'''style="text-align: left;"| '''i2c5-m3OK'''
|-
| style="text-align: left;"| '''I2C8_M2AX200-WIFI'''| style="text-align: left;"| '''NO''29号引脚'|-| style="text-align: left;"| '''AX200-BT'''| style="text-align: left;"| '''7号引脚NO'''|-| style="text-align: left;"| '''i2c8AX210-m2WIFI'''|}style="text-align: left;"| '''NO'''|-| style="text-align: left;"| '''AX210-BT'''| style="text-align: left;"| '''NO'''# 在linux系统中,40 pin中的I2C总线默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:|-## 首先运行下| style="text-align: left;"| '''orangepiRTL8852BE-configWIFI''',普通用户记得加| style="text-align: left;"| '''sudoOK'''权限|-orangepi@orangepi| style="text-align:~$ left;"| '''RTL8852BE-BT'''sudo orangepi| style="text-configalign: left;"| '''OK'''|-# 然后选择| style="text-align: left;"| '''SystemRecovery按键'''| style="text-align: left;"| '''OK'''|-[[File| style="text-align:media/5b020440753c1c1d150d0993f08eacfdleft;"| '''Type-C接口USB3.png]]0功能'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C接口ADB功能'''# 然后选择| style="text-align: left;"| '''HardwareOK'''|-| style="text-align: left;"| '''Type-C接口DP显示功能'''[[File| style="text-align:media/0d5151e38da17701cc4920f1997e064cleft;"| '''OK'''|-| style="text-align: left;"| '''Type-C接口DP音频播放'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''USB3.png]]0 Hub'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''开关机按键'''| style="text-align: left;"| '''OK'''|-# 然后使用键盘的方向键定位到下图所示的位置,再使用| style="text-align: left;"| '''空格红外功能'''选中想要打开的I2C的配置| style="text-align: left;"| '''OK'''|-[[File| style="text-align:media/5d9f1eb57665b5bc96cdbf022f76a2d7.png]]left;"| '''LED灯'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''板载MIC'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''耳机播放'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''耳机录音'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''SPK喇叭'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN GPIO'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN I2C'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN SPI'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN UART'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN PWM'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''TF卡启动'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''SPI Flash+NVME固态启动'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''OV13850摄像头'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''OV13855摄像头'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''GPU'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''VPU'''# 然后选择| style="text-align: left;"| '''OK'''&lt|-| style="text-align: left;Save&gt"| '''NPU'''| style="text-align: left;"| '''OK'''保存|-[[File| style="text-align:media/77fdb1f8d8e83e1f16d26896c1cdeb5b.png]]left;"| '''MIPI LCD'''| style="text-align: left;"| '''NO'''|-| style="text-align: left;"| '''HDMI CEC'''| style="text-align: left;"| '''NO'''|}
# 然后选择'''&lt;Back&gt;'''<span id="hdmi-in的测试方法-3"></span>== HDMI In的测试方法 ==
<ol style="list-style-type: decimal;"><li><p>开发板HDMI In接口的所在位置如下所示:</p><p>[[File:media/3191851a2c1e634c8765850e0eedbe63image255.png|282x90px]]</p></li><li><p>然后使用下图所示的HDMI转HDMI线将其它设备的HDMI输出接到开发板的HDMI In接口上</p><p>[[File:media/image10.png|136x88px]]</p></li><li><p>确保连接到HDMI In接口的设备的HDMI输出是正常的,然后打开HDMI In测试APP</p><p>[[File:media/image677.png|395x222px]]</p></li><li><p>然后会出现如下图所示的窗口,这时是看不到HDMI In的视频输入的,需要点击下图红框标记的位置放大为全屏</p><p>[[File:media/image678.png|384x229px]]</p></li><li><p>然后就可以看到HDMI In的视频输入了,同时HDMI In的音频输入也会从开发板的HDMI TX接口或者耳机接口输出。下图显示的是通过HDMI In输入的OPi5开发板Linux系统的桌面。</p><p>[[File:media/image679.png|400x238px]]</p></li></ol>
# 然后选择'''&lt;Reboot&gt;'''重启系统使配置生效= 附录 =
[[File:media/03310676d04e3df78bf5a4f3536ad49c.png]]== 用户手册更新历史 ==
# 启动linux系统后,先确认下{| class="wikitable"|-| '''/dev版 本 '''下存在需要使用I2C的设备节点| * *日期**
orangepi@orangepi:~$ | '''ls /dev/i2c-*更新说明'''|-| v1 .0| 202 3-05-22| 初始版本|-| v1 .1| 202 3-05-24| # Android Box系统红外遥控器的使用方法# Orange Pi OS Droid 系统的使用说明
|-| v1 .2| 202 3-05-26| # 然后在40 pin接口对应的I2C引脚上接一个I2C设备Ubuntu/Debian:HDMI IN的测试方法# 然后使用'''i2cdetect -y'''命令如果能检测到连接的i2c设备的地址,就说明i2c能正常使用删除RTL8821CU USB WIFI模块的使用说明,不推荐使用此模块
orangepi@orangepi:~$ '''sudo i2cdetect -y 2''' #i2c2的命令|}
orangepi@orangepi:~$ '''sudo i2cdetect -y 4''' #i2c4的命令== 镜像更新历史 ==
orangepi@orangepi:~$ '''sudo i2cdetect {| class="wikitable"|-y 5''' #i2c5的命令| * *日期**
orangepi@orangepi:~$ '''sudo i2cdetect -y 8''' #i2c8的命令 <div class="figure"> [[File:media/95ee6727b7d2c0f1234883e0ad9d7df3.png|521iring_001]] </div><span id="pin的uart测试"></span>=== 40 pin的UART测试 === # 由下表可知,Orange Pi 5 Plus可用的uart为uart1、uart3、uart4、uart6、uart7和uart8共6组uart总线 [[File:media/8fdc5f37f284d983dd9764c23147b156.png]] # 6组UART总线在40pin中对应的引脚如下表所示: {| class="wikitable"|-! '''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号引脚'''| '''uart8202 3-05-m1'''19|}Orangepi5plus_1.0.0_debian_bullseye_server_linux5.10.110
# 在linux系统中,40 pin中的UART默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:## 首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限Oran gepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110
orangepi@orangepi:~$ '''sudo orangepiOrangepi5p lus_1.0.0_debian_bullseye_desktop_kde-config'''plasma_linux5.10.110
# 然后选择'''System'''Orangepi5plus_1.0.0_ubuntu_focal_server_linux5.10.110
[[File:media/5b020440753c1c1d150d0993f08eacfdO rangepi5plus_1.png]]0.0_ubuntu_focal_desktop_xfce_linux5.10.110
# 然后选择'''Hardware'''Orangepi5plus_1.0.0_ubuntu_jammy_server_linux5.10.110
[[File:media/0d5151e38da17701cc4920f1997e064cO rangepi5plus_1.png]]0.0_ubuntu_jammy_desktop_xfce_linux5.10.110
# 然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的UART的配置Or angepi5plus_1.0.0_ubuntu_jammy_desktop_gnome_linux5.10.110
[[File:media/8102b0abd6625642e82b5a18debbd1b5Opios-droid-aarch64-opi5plus-23.png]]05-linux5.10.110.tar.gz
# 然后选择'''&lt;Save&gt;'''保存Opios- droid-aarch64-opi5plus-23.05-linux5.10.110-spi-nvme.tar.gz
[[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5bOrangePi5Plus_RK3588_Android12_v1.png]]0.0.tar.gz
# 然后选择'''&lt;Back&gt;'''OrangePi5Plus_RK3588_Android12_lcd_v1.0.0.tar.gz
[[File:media/3191851a2c1e634c8765850e0eedbe63OrangePi5Plus-RK3588_Android12-box_v1.png]]0.0.tar.gz
# 然后选择'''&lt;Reboot&gt;'''重启系统使配置生效OrangePi5Plus_RK3588_Android12_spi-nvme_v1.0.0.tar.gz
[[File:media/03310676d04e3df78bf5a4f3536ad49cOrangePi5Plus_RK3588_Android12_spi-nvme_lcd_v1.png]]0.0.tar.gz
# 进入linux系统后,先确认下/dev下是否存在对应uart的设备节点OrangePi5Plus-RK3588_Android12-box_spi-nvme_v1.0.0.tar.gz
orangepi@orangepi:~$ '''ls /dev/ttyS*'''openwrt-aarch64-opi5plus-23.05-linux5.10.110-ext4.img.gz
# 然后开始测试uart接口,先使用杜邦线短接要测试的uart接口的rx和tx引脚# 使用'''gpio serial'''命令测试串口的回环功能如下所示,如果能看到下面的打印,说明串口通信正常(ttySX需要替换为对应uart的节点名,请不要照抄)* 初始版本
orangepi@orangepi:~$ '''sudo gpio serial /dev/ttySX'''|-| 202 3-05-22| Op ios-arch-aarch64-gnome-opi5plus-23.05-linux5.10.110.img.xz
[sudo] password for orangepi: #在这里输入密码openwrt-rockchip -armv8-xunlong_orangepi-5-plus-spi-squashfs-sysupgrade.bin
Out: 0: -&gt; 0* 初始版本
Out: 1: |-&gt; 1 Out: 2: -&gt; 2 Out: | 202 3: -&gt; 3 Out: 4: 05-&gt; 424 Out: 5: | Orangepi5p lus_1.0.2_debian_bullseye_desktop_kde-&gt; 5^C <span id="pwm的测试方法"></span>=== PWM的测试方法 === # 由下表可知,Orange Pi 5 Plus可用的PWM有pwm0、pwm1、pwm11、pwm12、pwm13和pwm14共六路pwmplasma_linux5.10.110
[[File:media/8fdc5f37f284d983dd9764c23147b156.png]]* 修复桌面音频无法使用的问题
# PWM在40pin中对应的引脚如下表所示。PWM0_M0和PWM0_M2、PWM1_M0和PWM1_M2、PWM14_M0和PWM14_M2同一时间只能使用其中一个,不能同时使用,它们都是同一个PWM,只是接到不同的引脚上去了而已,请不要以为它们是两个不同的PWM总线。* 更新chromium浏览器为chromium-brow ser_110.0,支持h264、h265、vp8、vp9和av1格式的视频硬解播放
{| class="wikitable"
|-
! '''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'''
 
[[File:media/5b020440753c1c1d150d0993f08eacfd.png]]
 
# 然后选择'''Hardware'''
 
[[File:media/0d5151e38da17701cc4920f1997e064c.png]]
 
# 然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的PWM的配置
 
[[File:media/33c435a6f997155c68bf15ec7d205c13.png]]
 
# 然后选择'''&lt;Save&gt;'''保存
 
[[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5b.png]]
 
# 然后选择'''&lt;Back&gt;'''
 
[[File:media/3191851a2c1e634c8765850e0eedbe63.png]]
 
# 然后选择'''&lt;Reboot&gt;'''重启系统使配置生效
 
[[File:media/03310676d04e3df78bf5a4f3536ad49c.png]]
 
# 当打开一个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'''命令的输出,如下所示:
 
<div class="figure">
 
[[File:media/94d9c9ec0f77aff92f81ccec4f3068f6.png|985iring_001]]
 
</div>
# 然后由下表可知,pwm14寄存器的基地址为febf0020,再看 '''ls /sys/class/pwm/ -l'''命令的输出,可以看到pwmchip2中链接到了febf0020.pwm,所以pwm14对应pwmchip为pwmchip2
 
[[File:media/5568f427fcfae71affcaec24f095bc8f.png]]
 
# 然后使用下面的命令可以让pwm14输出一个50Hz的方波(请先切换到root用户,再执行下面的命令)
 
root@orangepi:~# '''echo 0 &gt; /sys/class/pwm/pwmchip2/export'''
 
root@orangepi:~# '''echo 20000000 &gt; /sys/class/pwm/pwmchip2/pwm0/period'''
 
root@orangepi:~# '''echo 1000000 &gt; /sys/class/pwm/pwmchip2/pwm0/duty_cycle'''
 
root@orangepi:~# '''echo 1 &gt; /sys/class/pwm/pwmchip2/pwm0/enable'''
 
[[File:media/760cbbfdec658238d181990e96c701e5.png]]
 
# 上面演示的pwm14的测试方法,其他pwm测试方法都是类似的。
 
<span id="can的测试方法"></span>
=== CAN的测试方法 ===
 
<span id="打开can的方法"></span>
==== 打开CAN的方法 ====
 
# 由下表可知,Orange Pi 5 Plus可用的CAN总线为CAN0和CAN1共两组CAN总线
 
[[File:media/82a02063f1eb8c2e1d9e153272a92f20.png]]
 
# 在linux系统中,40 pin中的CAN默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:
## 首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限
 
orangepi@orangepi:~$ '''sudo orangepi-config'''
 
# 然后选择'''System'''
 
[[File:media/5b020440753c1c1d150d0993f08eacfd.png]]
 
# 然后选择'''Hardware'''
 
[[File:media/0d5151e38da17701cc4920f1997e064c.png]]
 
# 然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的CAN的配置(OPi 5 Plus可选'''can0-m0'''和'''cam1-m0''')
 
[[File:media/3725a4e665ec07c8b7ab7338961c8990.png]]
 
# 然后选择'''&lt;Save&gt;'''保存
 
[[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5b.png]]
 
# 然后选择'''&lt;Back&gt;'''
 
[[File:media/3191851a2c1e634c8765850e0eedbe63.png]]
 
# 然后选择'''&lt;Reboot&gt;'''重启系统使配置生效
 
[[File:media/03310676d04e3df78bf5a4f3536ad49c.png]]
 
# 进入linux系统后,使用'''sudo ifconfig -a'''命令如果能看到CAN的设备节点,就说明CAN已正确打开了
 
orangepi@orangepi:~$ '''sudo ifconfig -a'''
 
can0: flags=128&lt;NOARP&gt; 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&lt;NOARP&gt; 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对应的引脚为
 
{| class="wikitable"
|-
!
! '''CAN0'''
! '''CAN1'''
|-
| '''TX引脚'''
| '''对应40pin的5号引脚'''
| '''对应40pin的18号引脚'''
|-
| '''RX引脚'''
| '''对应40pin的3号引脚'''
| '''对应40pin的16号引脚'''
|}
 
<span id="使用canalyst-ii分析仪测试收发消息"></span>
==== 使用CANalyst-II分析仪测试收发消息 ====
 
# 测试使用的CANalyst-II分析仪如下图所示
 
[[File:media/3d77535f856dd3fc8bf3b11a3a1dcfd4.png]]
 
# CANalyst-II分析仪资料下载链接
 
[https://www.zhcxgd.com/3.html '''https://www.zhcxgd.com/3.html''']
 
# 首先要安装USBCANToolSetup这个软件
 
[[File:media/ba97875b5aa1c0d8f032f5ddba918cb4.png]]
 
# USBCANToolSetup安装后的快捷方式为
 
[[File:media/c93d60904e485789e474607d8742bb22.png]]
 
# 另外还需要安装一下USB驱动程序
 
[[File:media/4da67d1fec6d138fb2e7d340b732a4e3.png]]
 
# CANalyst-II分析仪的USB接口那端需要接到电脑的USB接口中
 
[[File:media/52b19b54343cdac10f4d658bf41ceb58.png]]
 
# 测试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接口
 
[[File:media/a0bfac8b6f1df8d562c3846ebcc37f22.png]]
 
# 然后可以打开USB-CAN软件
 
[[File:media/2b5133fb588e5e37e6be0b375c0681e1.png]]
 
# 然后点击启动设备
 
[[File:media/50264c2397ffa86c68fef4b356c4695a.png]]
 
# 然后点击确定
 
[[File:media/2fe020e3934eb0dfd443d92338f96798.png]]
 
# 再设置波特率为1000k bps
 
[[File:media/2560297077a9ed4e09741fb81939ebc9.png]]
 
# 成功打开后USB-CAN软件会显示序列号等信息
 
[[File:media/a426cc9e93bd2076a1bfd9f3c79cea22.png]]
 
# 开发板接收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软件中发送一个消息给开发板
 
[[File:media/0a8502a812f95348551a263cf8ebfefc.png]]
 
# 如果开发板中可以接收到分析仪发送的消息说明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软件可以接收到开发板发过来的消息说明通信成功
 
[[File:media/eaed9ae38e403ef07d4f4ee08e54648a.png]]
 
<span id="wiringop-python的安装使用方法"></span>
== wiringOP-Python的安装使用方法 ==
 
'''wiringOP-Python是wiringOP的Python语言版本的库,用于在Python程序中操作开发板的GPIO、I2C、SPI和UART等硬件资源。'''
 
'''另外请注意下面所有的命令都是在root用户下操作的。'''
 
<span id="wiringop-python的安装方法"></span>
=== 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 '''https://github.com/orangepi-xunlong/wiringOP-Python'''] '''-b next'''
 
Cloning into ‘wiringOP-Python’…
 
remote: Enumerating objects: 602, done.
 
remote: Counting objects: 100% (40/40), done.
 
remote: Compressing objects: 100% (28/28), done.
 
remote: Total 602 (delta 20), reused 26 (delta 12), pack-reused 562
 
Receiving objects: 100% (602/602), 309.30 KiB | 1.23 MiB/s, done.
 
Resolving deltas: 100% (349/349), done.
 
Submodule ‘wiringOP’ (https://github.com/orangepi-xunlong/wiringOP.git) registered for path ‘wiringOP’
 
Cloning into ‘/root/test/wiringOP-Python/wiringOP’…
 
remote: Enumerating objects: 654, done.
 
remote: Counting objects: 100% (273/273), done.
 
remote: Compressing objects: 100% (33/33), done.
 
remote: Total 654 (delta 244), reused 245 (delta 238), pack-reused 381
 
Receiving objects: 100% (654/654), 360.54 KiB | 1.73 MiB/s, done.
 
Resolving deltas: 100% (424/424), done.
 
Submodule path ‘wiringOP’: checked out ‘85f1331cd8fda668115461ec1c06cb342057eb03’
 
# 然后使用下面的命令编译wiringOP-Python并将其安装到开发板的Linux系统中
 
root@orangepi:~# '''cd wiringOP-Python'''
 
root@orangepi:~/wiringOP-Python# '''python3 generate-bindings.py &gt; bindings.i'''
 
root@orangepi:~/wiringOP-Python# '''sudo python3 setup.py install'''
 
# 然后输入下面的命令,如果有帮助信息输出,说明wiringOP-Python安装成功,按下'''q'''键可以退出帮助信息的界面
 
root@orangepi:~/wiringOP-Python# '''python3 -c “import wiringpi; help(wiringpi)”'''
 
Help on module wiringpi:
 
NAME
 
wiringpi
 
DESCRIPTION
 
# This file was automatically generated by SWIG (http://www.swig.org).
 
# Version 4.0.2
 
#
 
# Do not make changes to this file unless you know what you are doing–modify
 
# the SWIG interface file instead.
 
# 在python命令行下测试wiringOP-Python是否安装成功的步骤如下所示:
## 首先使用python3命令进入python3的命令行模式
 
root@orangepi:~# '''python3'''
 
# 然后导入wiringpi的python模块
 
&gt;&gt;&gt; '''import wiringpi;'''
 
# 最后输入下面的命令可以查看下wiringOP-Python的帮助信息,按下'''q'''键可以退出帮助信息的界面
 
&gt;&gt;&gt; '''help(wiringpi)'''
 
Help on module wiringpi:
 
NAME
 
wiringpi
 
DESCRIPTION
 
# This file was automatically generated by SWIG (http://www.swig.org).
 
# Version 4.0.2
 
#
 
# Do not make changes to this file unless you know what you are doing–modify
 
# the SWIG interface file instead.
 
CLASSES
 
builtins.object
 
GPIO
 
I2C
 
Serial
 
nes
 
class GPIO(builtins.object)
 
| GPIO(pinmode=0)
 
|
 
&gt;&gt;&gt;
 
<span id="pin-gpio口测试-1"></span>
=== 40 pin GPIO口测试 ===
 
'''wiringOP-Python跟wiringOP一样,也是可以通过指定wPi号来确定操作哪一个GPIO引脚,因为wiringOP-Python中没有查看wPi号的命令,所以只能通过wiringOP中的gpio命令来查看板子wPi号与物理引脚的对应关系。'''
 
<div class="figure">
 
[[File:media/167f6a97004f798d35e9653b7692d025.png|876iring_001]]
 
</div>
# 下面以7号引脚——对应GPIO为GPIO1_D6——对应wPi序号为2——为例演示如何设置GPIO口的高低电平
 
<div class="figure">
 
[[File:media/848fb41de6fb6e4978ca52df25d5e04d.png|874iring_001]]
 
</div>
# 直接用命令测试的步骤如下所示:
## 首先设置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模块
 
&gt;&gt;&gt; '''import wiringpi'''
 
&gt;&gt;&gt; '''from wiringpi import GPIO'''
 
# 然后设置GPIO口为输出模式,其中'''pinMode'''函数的第一个参数是引脚对应的wPi的序号,第二个参数是GPIO的模式
 
&gt;&gt;&gt; '''wiringpi.wiringPiSetup()'''
 
0
 
&gt;&gt;&gt; '''wiringpi.pinMode(2, GPIO.OUTPUT)'''
 
# 然后设置GPIO口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功
 
&gt;&gt;&gt; '''wiringpi.digitalWrite(2, GPIO.LOW)'''
 
# 然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功
 
&gt;&gt;&gt; '''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'''
 
<span id="pin-spi测试-1"></span>
=== 40 pin SPI测试 ===
 
# 由下图可知,Orange Pi 5 Plus可用的SPI为SPI0和SPI4
 
[[File:media/8fdc5f37f284d983dd9764c23147b156.png]]
 
# SPI0和SPI4在40pin中对应的引脚如下表所示。SPI4_M1和SPI4_M2同一时间只能使用其中一组,不能同时使用,它们都是同一个SPI4,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的SPI总线。
 
{| class="wikitable"
|-
!
! '''SPI0_M2对应40pin'''
! '''SPI4_M1对应40pin'''
! '''SPI4_M2对应40pin'''
|-
| '''MOSI'''
| '''19号引脚'''
| '''12号引脚'''
| '''8号引脚'''
|-
| '''MISO'''
| '''21号引脚'''
| '''31号引脚'''
| '''10号引脚'''
|-
| '''CLK'''
| '''23号引脚'''
| '''35号引脚'''
| '''22号引脚'''
|-
| '''CS0'''
| '''24号引脚'''
| '''40号引脚'''
| '''31号引脚'''
|-
| '''CS1'''
| '''26号引脚'''
| '''38号引脚'''
| '''无'''
|-
| '''dtbo配置'''
| '''spi0-m2-cs0-spidev''' '''spi0-m2-cs1-spidev''' '''spi0-m2-cs0-cs1-spidev'''
| '''spi4-m1-cs0-spidev''' '''spi4-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'''
 
[[File:media/5b020440753c1c1d150d0993f08eacfd.png]]
 
# 然后选择'''Hardware'''
 
[[File:media/0d5151e38da17701cc4920f1997e064c.png]]
 
# 然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的SPI的配置
 
[[File:media/9fc8322e3c73de03c83ab6f1bb520951.png]]
 
# 然后选择'''&lt;Save&gt;'''保存
 
[[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5b.png]]
 
# 然后选择'''&lt;Back&gt;'''
 
[[File:media/3191851a2c1e634c8765850e0eedbe63.png]]
 
# 然后选择'''&lt;Reboot&gt;'''重启系统使配置生效
 
[[File:media/03310676d04e3df78bf5a4f3536ad49c.png]]
 
# 重启后进入系统先查看下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 |……@……….|
 
<span id="pin-i2c测试-1"></span>
=== 40 pin I2C测试 ===
 
# 由下表可知,Orange Pi 5 Plus可用的i2c为i2c2、i2c4、i2c5和i2c8共四组 i2c总线。
 
[[File:media/8fdc5f37f284d983dd9764c23147b156.png]]
 
# 4组I2C总线在40pin中对应的引脚如下表所示。I2C2_M0和I2C2_M4同一时间只能使用其中一组,不能同时使用,它们都是同一个I2C2,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的I2C2总线。
 
{| class="wikitable"
|-
! '''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'''
 
[[File:media/5b020440753c1c1d150d0993f08eacfd.png]]
 
# 然后选择'''Hardware'''
 
[[File:media/0d5151e38da17701cc4920f1997e064c.png]]
 
# 然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的I2C的配置
 
[[File:media/5d9f1eb57665b5bc96cdbf022f76a2d7.png]]
 
# 然后选择'''&lt;Save&gt;'''保存
 
[[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5b.png]]
 
# 然后选择'''&lt;Back&gt;'''
 
[[File:media/3191851a2c1e634c8765850e0eedbe63.png]]
 
# 然后选择'''&lt;Reboot&gt;'''重启系统使配置生效
 
[[File:media/03310676d04e3df78bf5a4f3536ad49c.png]]
 
# 启动linux系统后,先确认下'''/dev'''下存在对应i2c的设备节点
 
orangepi@orangepi:~$ '''ls /dev/i2c-*'''
 
# 然后在40 pin接头的i2c引脚上接一个i2c设备,这里以ds1307 RTC模块为例
 
[[File:media/ba7b7f4b11846fcbd353f24c7ad2ac4d.png]]
 
# 然后使用'''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
 
<span id="pin的uart测试-1"></span>
=== 40 pin的UART测试 ===
 
# 由下表可知,Orange Pi 5 Plus可用的uart为uart1、uart3、uart4、uart6、uart7和uart8共6组uart总线
 
[[File:media/8fdc5f37f284d983dd9764c23147b156.png]]
 
# 6组UART总线在40pin中对应的引脚如下表所示:
 
{| class="wikitable"
|-
! '''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'''
 
[[File:media/5b020440753c1c1d150d0993f08eacfd.png]]
 
# 然后选择'''Hardware'''
 
[[File:media/0d5151e38da17701cc4920f1997e064c.png]]
 
# 然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的UART的配置
 
[[File:media/8102b0abd6625642e82b5a18debbd1b5.png]]
 
# 然后选择'''&lt;Save&gt;'''保存
 
[[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5b.png]]
 
# 然后选择'''&lt;Back&gt;'''
 
[[File:media/3191851a2c1e634c8765850e0eedbe63.png]]
 
# 然后选择'''&lt;Reboot&gt;'''重启系统使配置生效
 
[[File:media/03310676d04e3df78bf5a4f3536ad49c.png]]
 
# 进入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: -&gt; 0
 
Out: 1: -&gt; 1
 
Out: 2: -&gt; 2
 
Out: 3: -&gt; 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
 
<span id="查看rk3588芯片的序列号"></span>
== 查看RK3588芯片的序列号 ==
 
查看RK3588芯片序列号的命令如下所示,每个芯片的序列号都是不同的,所以可以使用序列号来区分多个开发板。
 
orangepi@orangepi:~$ '''cat_serial.sh'''
 
Serial : '''1404a7682e86830c'''
 
<span id="安装docker的方法"></span>
== 安装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.'''
 
'''…..'''
 
<span id="下载安装arm64版本balenaetcher的方法"></span>
== 下载安装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 '''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 '''https://github.com/Itai-Nelken/BalenaEtcher-arm/releases/download/v1.7.9/balenaEtcher-1.7.9+5945ab1f-arm64.AppImage''']
 
<div class="figure">
 
[[File:media/1d889c2572853011de5c6a746fc938fc.png|IMG_256]]
 
</div>
# deb版本balenaEtcher的安装使用方法:
## deb版本的balenaEtcher安装命令如下所示:
 
orangepi@orangepi:~$ '''sudo apt install -y \'''
 
'''–fix-broken ./balena-etcher-electron_1.7.9+5945ab1f_arm64.deb'''
 
# deb版本的balenaEtcher安装完成后,在Application中就可以打开了
 
<div class="figure">
 
[[File:media/db463db0603506d0545ab7365958e3d7.png|IMG_256]]
 
</div>
# balenaEtcher打开后的界面如下所示:
 
<div class="figure">
 
[[File:media/9ecc89df59d9935371392fe6bd3605d5.png|IMG_256]]
 
</div>
# AppImage版本的balenaEtcher的使用方法:
## 首先给balenaEtcher添加权限
 
orangepi@orangepi:~/Desktop$ '''chmod +x balenaEtcher-1.7.9+5945ab1f-arm64.AppImage'''
 
# 然后选中AppImage版本balenaEtcher,再点击鼠标右键,再点击Execute就可以打开balenaEtcher了
 
[[File:media/0d4838cd75ab44bbfe3c6d1441175a2c.png]]
 
<span id="宝塔linux面板的安装方法"></span>
== 宝塔Linux面板的安装方法 ==
 
'''宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能(摘抄自'''[https://www.bt.cn/ '''宝塔官网''']''')'''
 
# 宝塔Linux系统兼容性推荐的顺序为
 
'''Debian11 &gt; 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分钟,根据网络速度的不同可能会有一些差别
 
[[File:media/ebbfdd28705368c065b3774c9f4657ad.png]]
 
# 此时在浏览器中输入上面显示的'''面板地址'''就可以打开宝塔Linux面板的登录界面,然后在对应的位置输入上图显示的'''username'''和'''password'''就可以登录进宝塔
 
[[File:media/b633aa5fd2436dc49fa3e3c007595d63.png]]
 
# 成功登录宝塔后的会弹出下面的欢迎界面,首先请将中间的用户须知阅读完拖到最下面,然后就可以选择“我已同意并阅读《用户协议》”,接着点击“进入面板”就可以进入宝塔了
 
[[File:media/1d682aac52419ca93ec62c4a8d6bfeae.png]]
 
# 进入宝塔后首先会提示需要绑定宝塔官网的账号,如果没有账号可以去宝塔的官网('''https://www.bt.cn''')注册一个
 
[[File:media/8855a3351337f29d9bf12fd246b8d449.png]]
 
# 最终显示的界面如下图所示,可以很直观的看到开发板Linux系统的一些状态信息,比如负载状态、CPU的使用率、内存使用率和存储空间的使用情况等
 
[[File:media/dc29dbfd23c2d55c8e1a5509e1941bb0.png]]
 
# 测试宝塔的SSH终端登录
## 打开宝塔的SSH终端后首先会提示需要输入开发板系统的密码,此时在密码框中输入'''orangepi'''(默认密码,如果有修改请填写修改后的)即可
 
[[File:media/104fe720fd2c574b8882686419db6440.png]]
 
# 成功登录后的显示如下图所示
 
[[File:media/97ceab997f06a8e86f8a8dfdca3a0596.png]]
 
# 在宝塔的软件商店中可以安装Apache、MySQL和PHP等软件,也可以一键部署各种应用程序,这部分功能请自行探索,这里就不一一演示了
 
[[File:media/ccaa5b0fdad728f78a82b1bf926c713a.png]]
 
# 宝塔命令行工具测试
 
<div class="figure">
 
[[File:media/d7fc9ad13eddc944ea3f4ad2f701581a.png|815iring_001]]
 
</div>
# 宝塔的更多功能可以参考下面资料自行探索
 
使用手册:[http://docs.bt.cn '''http://docs.bt.cn''']
 
论坛地址:[https://www.bt.cn/bbs '''https://www.bt.cn/bbs''']
 
GitHub链接:'''https://github.com/aaPanel/BaoTa'''
 
== 设置中文环境以及安装中文输入法 ==
 
'''注意,安装中文输入法前请确保开发板使用的Linux系统为桌面版系统。'''
 
<span id="debian-11系统的安装方法"></span>
=== Debian 11系统的安装方法 ===
 
# 首先设置默认'''locale'''为中文
## 输入下面的命令可以开始配置'''locale'''
 
orangepi@orangepi:~$ '''sudo dpkg-reconfigure locales'''
 
# 然后在弹出的界面中选择'''zh_CN.UTF-8 UTF-8'''(通过键盘上的上下方向按键来上下移动,通过空格键来选择,最后通过Tab键可以将光标移动到'''&lt;OK&gt;''',然后回车即可)
 
[[File:media/6dd28d5ce3037f713f89f538c60cc369.png]]
 
# 然后设置默认'''locale'''为'''zh_CN.UTF-8'''
 
[[File:media/f9dda4052951541a1ea0f0f3d1e566a2.png]]
 
# 退出界面后就会开始'''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'''
 
[[File:media/36c7afeb0307f3470b928ee2cd391952.png]]
 
# 然后选择'''OK'''
 
[[File:media/cbf1d46723c09503b9f447adcfd65efb.png]]
 
# 然后选择'''Yes'''
 
[[File:media/1da547884158b2980f79576121fb4cc2.png]]
 
# 然后选择'''fcitx'''
 
[[File:media/9eac1b3cfefa8d3693dcf4f9c8a1a889.png]]
 
# 然后选择'''OK'''
 
[[File:media/3f04c6952a0b0fdf59c582286fd167a9.png]]
 
# '''然后重启Linux系统才能使配置生效'''
# 然后打开'''Fcitx configuration'''
 
[[File:media/0ff0a550743acd8f1aba965aeb8468e0.png]]
 
# 然后点击下图所示位置的'''+'''号
 
[[File:media/21a2c3494b7a51df24ba2ac5d153c9c4.png]]
 
# 然后搜索'''Google Pinyin'''再点击'''OK'''
 
[[File:media/d1c52e59f36cf574a04ad98e21b3b479.png]]
 
# 然后将'''Google Pinyin'''放到最前面
 
[[File:media/98ecb6785f8875e03ce113d2d1ac6032.png]]
 
[[File:media/01b30c201310098edebdb7d0df550bca.png]]
 
# 然后打开'''Geany'''这个编辑器测试下中文输入法
 
[[File:media/72bf6e68fbe0f79ec501eb941c04f387.png]]
 
# 中文输入法测试如下所示
 
[[File:media/835ba6c3f1f17ede12389591ff5dc6c5.png]]
 
# 通过'''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'''
 
# 然后'''重启系统'''就能看到系统显示为中文了
 
[[File:media/eb291319a76b828cab6913c022fe0ab9.png]]
 
<span id="ubuntu-20.04系统的安装方法"></span>
=== Ubuntu 20.04系统的安装方法 ===
 
# 首先打开'''Language Support'''
 
[[File:media/52ab9828a982fde7662ab0653e2a344a.png]]
 
# 然后找到'''汉语(中国)'''选项
 
[[File:media/0b8f943e51c09cd864ce6341f9b11d54.png]]
 
# 然后请使用鼠标左键选中'''汉语(中国)'''并按住不动,然后往上将其拖到最开始的位置,拖完后的显示如下图所示:
 
[[File:media/72580fe1b7b32003535ed83b0c48db9b.png]]
 
'''注意,这一步不是很好拖动的,请耐心多试几次。'''
 
# 然后选择'''Apply System-Wide'''将中文设置应用到整个系统
 
[[File:media/a205023dc726851f05fa2bf363b77374.png]]
 
# 然后设置'''Keyboard input method system'''为'''fcitx'''
 
[[File:media/63059a58adf5ff075697bc86a40c507e.png]]
 
# '''然后重启Linux系统使配置生效'''
# 重新进入系统后,在下面的界面请选择'''不要再次询问我''',然后请根据自己的喜好决定标准文件夹是否也要更新为中文
 
[[File:media/05adeccfdf77b6b2fb9c2df29c82ac48.png]]
 
# 然后可以看到桌面都显示为中文了
 
[[File:media/38063104edb67a857118740e25f9f52b.png]]
 
# 然后我们可以打开'''Geany'''测试下中文输入法,打开方式如下图所示
 
[[File:media/1f74900184577d034e9258d333e8c8a9.png]]
 
# 打开'''Geany'''后,默认还是英文输入法,我们可以通过'''Ctrl+Space'''快捷键来切换成中文输入法,然后就能输入中文了
 
[[File:media/b72ff86f975dbe1c9aed64b272463c24.png]]
 
<span id="ubuntu-22.04系统的安装方法"></span>
=== Ubuntu 22.04系统的安装方法 ===
 
# 首先打开'''Language Support'''
 
[[File:media/52ab9828a982fde7662ab0653e2a344a.png]]
 
# 然后找到'''汉语(中国)'''选项
 
[[File:media/006e5abd9b3a983cf25210f2e8261dc4.png]]
 
# 然后请使用鼠标左键选中'''汉语(中国)'''并按住不动,然后往上将其拖到最开始的位置,拖完后的显示如下图所示:
 
[[File:media/b6d35f5a0e4d37a543e945afb82fa963.png]]
 
'''注意,这一步不是很好拖动的,请耐心多试几次。'''
 
# 然后选择'''Apply System-Wide'''将中文设置应用到整个系统
 
[[File:media/bfcdb9745446284eba0a2124eea6292a.png]]
 
# '''然后重启Linux系统使配置生效'''
# 重新进入系统后,在下面的界面请选择'''不要再次询问我''',然后请根据自己的喜好决定标准文件夹是否也要更新为中文
 
[[File:media/05adeccfdf77b6b2fb9c2df29c82ac48.png]]
 
# 然后可以看到桌面都显示为中文了
 
[[File:media/38063104edb67a857118740e25f9f52b.png]]
 
# 然后打开Fcitx5配置程序
 
[[File:media/a393cd30fed7542f8c5434c505273879.png]]
 
# 然后选择使用拼音输入法
 
[[File:media/662bb77f7ce49fb16ed295e81c7d0408.png]]
 
# 选择后的界面如下所示,再点击确定即可
 
[[File:media/fb7427138cc21bd3e26e0434c4ed8995.png]]
 
# 然后我们可以打开'''Geany'''测试下中文输入法,打开方式如下图所示
 
[[File:media/1f74900184577d034e9258d333e8c8a9.png]]
 
# 打开'''Geany'''后,默认还是英文输入法,我们可以通过'''Ctrl+Space'''快捷键来切换成中文输入法,然后就能输入中文了
 
[[File:media/e45cf274f5a41e21c1da356f32b3cd7d.png]]
 
<span id="远程登录linux系统桌面的方法"></span>
== 远程登录Linux系统桌面的方法 ==
 
'''Ubuntu Gnome Wayland镜像不支持使用此处介绍的Nomachine和VNC来远程登录桌面。'''
 
<span id="使用nomachine远程登录"></span>
=== 使用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 '''https://downloads.nomachine.com/download/?id=118&amp;distro=ARM''']
 
[[File:media/06a54f1ac23cb0303038eaf3bb5333f7.png]]
 
# 另外在'''官方工具'''中也可以下载到'''NoMachine'''的安装包
 
[[File:media/e355dcbc77527429b01465461809f860.png]]
 
先进入'''远程登录软件-NoMachine'''文件夹
 
[[File:media/69f1c284b5d61b0c6bebd00a5ea112d5.png]]
 
然后下载arm64版本的deb安装包
 
[[File:media/0ccb4058363c1ccaa45f6810d2f5e375.png]]
 
# 然后将下载的'''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'''
 
[[File:media/d4b2cde1762d1ebb6f6898d7158d871f.png]]
 
# 然后在Windows中安装NoMachine,'''安装完后请重启下电脑'''
# 然后在Window中打开'''NoMachine'''
 
[[File:media/2a4c8a92cdee3f1aa88aa309ef2769be.png]]
 
# NoMachine启动后会自动扫描局域网内其他安装有NoMachine的设备,进入NoMachine的主界面后就可以看到开发板已经在可连接的设备列表里了,然后点击下图红色方框所示的位置即可开始登录开发板的Linux系统桌面
 
[[File:media/f8479edeaace20f9668f2864237a535a.png]]
 
# 然后点击'''OK'''
 
[[File:media/25ddb8bba37331416863c79432e480f6.png]]
 
# 然后在下图对应的位置输入开发板Linux系统的用户名和密码,再点击'''OK'''开始登陆
 
[[File:media/f35146a716c2e79eb64f99844c529c50.png]]
 
# 然后在接下来的界面中都点击OK
# 最后就能看到开发板Linux系统的桌面了
 
[[File:media/2f8ddb94b6baa7521994739a7baa9a63.png]]
 
<span id="使用vnc远程登录"></span>
=== 使用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确认
 
[[File:media/954a19f26ca79358436212a3604dba13.png]]
 
# 然后输入前面设置的VNC的密码
 
[[File:media/faa7fce604139b347512581a07b0a720.png]]
 
# 登录成功后的界面显示如下图所示,然后就可以远程操作开发板linux系统的桌面了
 
[[File:media/43d8e5063d054799bd5dd3546a91ef62.png]]
 
<span id="linux系统支持的部分编程语言测试"></span>
== Linux系统支持的部分编程语言测试 ==
 
<span id="debian-bullseye系统"></span>
=== 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 &lt;stdio.h&gt;
 
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.
 
&gt;&gt;&gt;
 
'''使用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!
 
<span id="ubuntu-focal系统"></span>
=== 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 &lt;stdio.h&gt;
 
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.
 
&gt;&gt;&gt;
 
'''使用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!
 
<span id="ubuntu-jammy系统"></span>
=== 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 &lt;stdio.h&gt;
 
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.
 
&gt;&gt;&gt;
 
'''使用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!
 
<span id="qt的安装方法"></span>
== 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
 
# 然后在'''Applications'''中就可以看到QT Creator的启动图标
 
[[File:media/c1da223ad926b2e5de0625bbeab1b9dc.png]]
 
也可以使用下面的命令打开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打开后的界面如下所示
 
[[File:media/7f6901399961d26ea1e8d04e7a835fd7.png]]
 
# QT Creator的版本如下所示
## QT Creator在'''Ubuntu20.04'''中的默认版本如下所示
 
[[File:media/4d4ef7b406ca306fdeb34a019e08b9d3.png]]
 
# QT Creator在'''Ubuntu22.04'''中的默认版本如下所示
 
[[File:media/a29ae9bed69d684540daf173070243db.png]]
 
# QT Creator在'''Debian11'''中的默认版本如下所示
 
[[File:media/4a0c474d82937d6b12de4748a77ea7f1.png]]
 
# 然后设置下QT
## 首先打开'''Help'''-&gt;'''About Plugins…'''
 
[[File:media/5287282e78c4448d53f206a4c15272fd.png]]
 
# 然后去掉'''ClangCodeModel'''的那个勾
 
[[File:media/db35991ed6bdb82627cf562b4575ca8c.png]]
 
# '''设置完后需要重启下QT Creator'''
## 然后确保QT Creator使用的GCC编译器,如果默认为Clang,请修改为GCC
 
[[File:media/fb5b714b26fcd233f7c4f08bae0400ae.png]]
 
[[File:media/156230c3eaa2b7be063af0268d414fdf.png]]
 
# 然后就可以打开一个示例代码
 
[[File:media/1dc0f447b3070d94dd05fec998067d5c.png]]
 
# 点击示例代码后会自动打开对应的说明文档,可以仔细看下其中的使用说明
 
[[File:media/76739bf083cf311c1af5b4c0b86ec3b5.png]]
 
# 然后点击下'''Configure Project'''
 
[[File:media/3a6d6b907e8a04660a814363f90fe573.png]]
 
# 然后点击左下角的绿色三角形编译运行下示例代码
 
[[File:media/92fd4c511a260ac2c0de93559736bf37.png]]
 
# 等待一段时间后,会弹出下图所示的界面,此时就说明QT能正常编译运行
 
[[File:media/12ffa463c48aef9691c63f652ec28ba2.png]]
 
# 参考资料
 
[https://wiki.qt.io/Install_Qt_5_on_Ubuntu '''https://wiki.qt.io/Install_Qt_5_on_Ubuntu''']
 
[https://download.qt.io/archive/qtcreator '''https://download.qt.io/archive/qtcreator''']
 
[https://download.qt.io/archive/qt '''https://download.qt.io/archive/qt''']
 
<span id="ros安装方法"></span>
== ROS安装方法 ==
 
<span id="ubuntu20.04安装ros-1-noetic的方法"></span>
=== Ubuntu20.04安装ROS 1 Noetic的方法 ===
 
# ROS 1当前活跃的版本如下所示,推荐版本为'''Noetic Ninjemys'''
 
[[File:media/74422a0c7a8f2f788b16289d323f7bb7.png]]
 
[[File:media/1a13ae27acb1220d3b48966c768518a6.png]]
 
[http://docs.ros.org/ '''http://docs.ros.org''']
 
'''https://wiki.ros.org/Distributions'''
 
# ROS 1 '''Noetic Ninjemys'''官方安装文档链接如下所示:
 
[http://wiki.ros.org/noetic/Installation/Ubuntu '''http://wiki.ros.org/noetic/Installation/Ubuntu''']
 
# ROS '''Noetic Ninjemys'''官方安装文档中Ubuntu推荐使用Ubuntu20.04,所以请确保开发板使用的系统为'''Ubuntu20.04桌面版系统'''
 
[http://wiki.ros.org/noetic/Installation '''http://wiki.ros.org/noetic/Installation''']
 
[[File:media/9c88214d841c4257268262dc6eb4e812.png]]
 
# 然后使用下面的脚本安装ros1
 
orangepi@orangepi5plus:~$ '''install_ros.sh ros1'''
 
# 使用ROS工具前,首先需要初始化下rosdep,然后编译源码时就能快速的安装一些系统依赖和一些ROS中的核心组件
 
'''注意,运行下面的命令需要确保开发板能正常访问github,否则会由于网络问题而报错。'''
 
'''install_ros.sh脚本会尝试修改/etc/hosts并自动运行下面的命令。但是这种方法无法保证每次都能正常访问github,如果install_ros.sh安装完ros1后有提示下面的错误,请自己想其它办法让开发板的linux系统能正常访问github,然后再手动运行下面的命令。'''
 
'''https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml'''
 
'''Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml'''
 
'''ERROR: error loading sources list:'''
 
'''The read operation timed out'''
 
orangepi@orangepi:~$ '''source /opt/ros/noetic/setup.bash'''
 
orangepi@orangepi:~$ '''sudo rosdep init'''
 
Wrote /etc/ros/rosdep/sources.list.d/20-default.list
 
Recommended: please run
 
rosdep update
 
orangepi@orangepi:~$ '''rosdep update'''
 
reading in sources list data from /etc/ros/rosdep/sources.list.d
 
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
 
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
 
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
 
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
 
Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
 
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
 
Skip end-of-life distro “ardent”
 
Skip end-of-life distro “bouncy”
 
Skip end-of-life distro “crystal”
 
Skip end-of-life distro “dashing”
 
Skip end-of-life distro “eloquent”
 
Add distro “foxy”
 
Add distro “galactic”
 
Skip end-of-life distro “groovy”
 
Add distro “humble”
 
Skip end-of-life distro “hydro”
 
Skip end-of-life distro “indigo”
 
Skip end-of-life distro “jade”
 
Skip end-of-life distro “kinetic”
 
Skip end-of-life distro “lunar”
 
Add distro “melodic”
 
Add distro “noetic”
 
Add distro “rolling”
 
updated cache in /home/orangepi/.ros/rosdep/sources.cache
 
# 然后在'''桌面'''中打开一个命令行终端窗口,再使用'''test_ros.sh'''脚本可以启动一个小海龟的例程来测试下ROS是否能正常使用
 
orangepi@orangepi:~$ '''test_ros.sh'''
 
# 运行完'''test_ros.sh'''脚本后,会弹出下图所示的一个小海龟
 
[[File:media/e340b89da80c0b10309094ef16092f81.png]]
 
# 然后请保持刚才打开终端窗口在最上面
 
[[File:media/9e497eea790782347719a95cecfa7b0a.png]]
 
# 此时按下键盘上的方向按键就可以控制小海龟上下左右移动了
 
[[File:media/b4fc3cb4bd982eb340d2b2950e7ccf45.png]]
 
<span id="ubuntu20.04安装ros-2-galactic的方法"></span>
=== Ubuntu20.04安装ROS 2 Galactic的方法 ===
 
# ROS 2当前活跃的版本如下所示,推荐版本为'''Galactic Geochelone'''
 
[[File:media/c634def678fd01f9bf149268d8ca494c.png]]
 
[[File:media/bca59e79f2b5bd23befc6951fb694b1b.png]]
 
[http://docs.ros.org/ '''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 &lt;command&gt; -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 &lt;command&gt; -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'''
 
<div class="figure">
 
[[File:media/ca1892d2b9528c88465d10472ae92ea1.png|1]]
 
</div>
# ROS的使用方法请参考下ROS 2的文档
 
[http://docs.ros.org/en/galactic/Tutorials.html '''http://docs.ros.org/en/galactic/Tutorials.html''']
 
<span id="ubuntu22.04安装ros-2-humble的方法"></span>
=== 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 &lt;command&gt; -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 &lt;command&gt; -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'''
 
<div class="figure">
 
[[File:media/3a94f3ff636a611108a0621570f999c7.png|Screenshot from 2023-05-20 17-42-58]]
 
</div>
# 参考文档
 
'''http://docs.ros.org/en/humble/index.html'''
 
[http://docs.ros.org/en/galactic/Tutorials.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 &lt;linux/init.h&gt;
 
#include &lt;linux/module.h&gt;
 
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内核模块,编译过程的输出如下所示:
 
'''如果自己复制的代码这里编译如果有问题,请去'''[http://www.orangepi.cn/html/serviceAndSupport/index.html '''官方工具''']'''中下载源码然后上传到开发板的Linux系统中测试。'''
 
[[File:media/7b34461361c975b661c237928ca26624.png]]
 
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'''
 
<span id="寸mipi-lcd屏幕的使用方法"></span>
== 10.1寸MIPI LCD屏幕的使用方法 ==
 
<span id="寸mipi-屏幕的组装方法"></span>
=== 10.1寸MIPI 屏幕的组装方法 ===
 
# 首先准备需要的配件
## 10.1寸MIPI LCD显示屏+触摸屏(此屏幕和OPi5/OPi5B通用)
 
[[File:media/c3e5a25f5ee675e2823f6b07159a4253.png]]
 
# 屏幕转接板+31pin转40pin排线
 
<div class="figure">
 
[[File:media/5f9060642536b789dcdc074683198540.png|DD9A8F44-0D8F-4f06-9473-B539DEED850C]]
 
</div>
# 30pin MIPI排线
 
<div class="figure">
 
[[File:media/2d3e4d17bb43df4a291174f25a4c8549.png|C2164119-6EC3-49ae-9A95-BE323F51FAE1]]
 
</div>
<ol style="list-style-type: decimal;">
<li><p>12pin 触摸屏排线</p>
<p>[[File:media/d554a41dcd6938630a636734c9289429.png]]</p></li>
<li><p>按照下图将12pin 触摸屏排线、31pin转40pin排线、30pin MIPI排线接到屏幕转接板上,注意'''触摸屏排线蓝色的绝缘面朝下''',其它两根排线绝缘面朝上,如果接错会导致无显示或者不能触摸的问题</p></li></ol>
 
[[File:media/67e51395a8e370f8e8dadc08c989cdd4.png]]
 
# 按照下图将连接好排线的转接板置于MIPI LCD屏上面,并通过31pin转40pin排线连接MIPI LCD屏与转接板
 
[[File:media/2df561b12d9e9b8fc66499c2f3f8df5c.png]]
 
# 然后通过12pin触摸屏排线连接触摸屏与转接板,注意绝缘面的朝向
 
[[File:media/6b94043d6af94dae5cae2a1bcc5c1ff0.png]]
 
# 最后通过30pin MIPI排线连接到开发板的LCD接口上
 
[[File:media/094976191d59eea0ee8b1c986ca8e333.png]]
 
'''注意,下面的触摸接口不是给LCD MIPI屏幕使用的,目前为备用接口,使用不到。'''
 
[[File:media/db07f07c590af0ae7c59a19880742ae6.png]]
 
<span id="打开10.1寸mipi-lcd屏幕配置的方法"></span>
=== 打开10.1寸MIPI LCD屏幕配置的方法 ===
 
# linux镜像默认是没有打开mipi lcd屏幕的配置的,如果需要使用mipi lcd屏幕,需要手动打开才行。
# 开发板mipi lcd屏幕接口的位置如下所示:
 
[[File:media/b3a776a95c84d7ebfe52a07f9a12c473.png]]
 
# 打开mipi lcd配置的步骤如下所示:
## 首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限
 
orangepi@orangepi:~$ '''sudo orangepi-config'''
 
# 然后选择'''System'''
 
[[File:media/5b020440753c1c1d150d0993f08eacfd.png]]
 
# 然后选择'''Hardware'''
 
[[File:media/0d5151e38da17701cc4920f1997e064c.png]]
 
# 然后使用键盘的方向键定位到'''opi5plus-lcd''',再使用'''空格'''选中
 
[[File:media/8d00af869fec9806ef5c581b1c9f5733.png]]
 
# 然后选择'''&lt;Save&gt;'''保存
 
[[File:media/7766a48af4bfd5c3f774d45aafe2113a.png]]
 
# 然后选择'''&lt;Back&gt;'''
 
[[File:media/c959b79c640d175015d9b5f8de6abe0c.png]]
 
# 然后选择'''&lt;Reboot&gt;'''重启系统使配置生效
 
[[File:media/4e99a2ad0132d7f0e47e55af91353192.png]]
 
# 启动后可以看到lcd屏幕的显示如下所示(默认为竖屏):
 
[[File:media/bfa592f060fc3964e0aedc4c22935fbe.png]]
 
=== 服务器版镜像旋转显示方向的方法 ===
 
# 在'''/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'''设置
 
[[File:media/197114d2142ee16c45f87e7773b23dfc.png]]
 
# 然后在'''Rotation'''中选择想要旋转的方向
## '''None''': 不旋转
## '''Left''': 向左旋转90度
## '''Inverted''': 上下翻转,相当于旋转180度
## '''Right''': 向右旋转90度
 
[[File:media/1fe23651e229bd52464e8e613b5e8ab1.png]]
 
# 然后点击'''Apply'''
 
[[File:media/035bef28e78cccfd12712d7875c2070d.png]]
 
# 然后选择'''Keep this configuration'''
 
[[File:media/d709bc1591a8e441470e696a264968f5.png]]
 
# 此时屏幕显示就已旋转完成,然后关闭掉'''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 '''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=true'''
 
# 开机logo图片在linux系统中的位置为
 
'''/usr/share/plymouth/themes/orangepi/watermark.png'''
 
# 替换开机logo图片后需要运行下命令才能生效
 
orangepi@orangepi:~$ '''sudo update-initramfs -u'''
 
<span id="ov13850和ov13855-mipi摄像头的测试方法"></span>
== OV13850和OV13855 MIPI摄像头的测试方法 ==
 
目前开发板支持两款MIPI摄像头,OV13850和OV13855,具体的图片如下所示:
 
# 1300万MIPI接口的OV13850摄像头
 
[[File:media/5941e6fa8b5a03d3b89ab5891bd1ff2c.png]]
 
# 1300万MIPI接口的OV13855摄像头
 
[[File:media/1ef03ad657d3490c06607c7619bc11b3.png]]
 
OV13850和OV13855摄像头使用的转接板和FPC排线是一样的,只是两款摄像头接在转接板上的位置不一样。FPC排线如下图所示,请注意FPC排线是有方向的,标注'''TO MB'''那端需要插到开发板的摄像头接口中,标注'''TO CAMERA'''那端需要插到摄像头转接板上。
 
[[File:media/e0365832b0d74e8b044917af01ea6678.png]]
 
摄像头转接板上总共有3个摄像头的接口,同一时间只能接一个使用,如下图所示,其中:
 
# '''1号接口接OV13850摄像头'''
# '''2号接口接OV13855摄像头'''
# 3号接口未使用,忽略即可
 
[[File:media/b4994072e4050dca2d123fcb8c092758.png]]
 
Orange Pi 5 Plus开发板上总共有1个摄像头接口,位置如下所示:
 
[[File:media/663c5c4ebf2ff84de772810d4963b2b8.png]]
 
摄像头插在开发板的摄像头接口的方法如下所示:
 
[[File:media/8cd4b16c06791cc630117deebd44c25b.png]]
 
连接好摄像头到开发板上后,我们可以使用下面的方法来测试下摄像头:
 
# 首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限
 
orangepi@orangepi:~$ '''sudo orangepi-config'''
 
# 然后选择'''System'''
 
[[File:media/5b020440753c1c1d150d0993f08eacfd.png]]
 
# 然后选择'''Hardware'''
 
[[File:media/0d5151e38da17701cc4920f1997e064c.png]]
 
# 然后使用使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的摄像头,其中'''opi5plus-ov13850'''表示使用ov13850摄像头,'''opi5plus-ov13855'''表示使用ov13855摄像头。
 
[[File:media/2b15cc50947498b634dfd9a441fcdd1d.png]]
 
# 然后选择'''&lt;Save&gt;'''保存
 
[[File:media/2226fe857ef2ae960e61858ba71dc4eb.png]]
 
# 然后选择'''&lt;Back&gt;'''
 
[[File:media/9cacd4269d293bac7a70bc44e56d08d7.png]]
 
# 然后选择'''&lt;Reboot&gt;'''重启系统使配置生效
 
[[File:media/03310676d04e3df78bf5a4f3536ad49c.png]]
 
# 然后在桌面系统中打开一个终端,再运行下面的脚本
 
orangepi@orangepi:~$ '''test_camera.sh'''
 
# 然后就能看到摄像头的预览画面了
 
<div class="figure">
 
[[File:media/620ae825ed584ad24e39cc7fcf7a9e77.png|1]]
 
</div>
== 红外接收的测试方法 ==
 
开发板上自带一个红外接收器,连接到'''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系统默认只支持香橙派提供的遥控器,电视或者空调的遥控器是不能用的。'''
 
<div class="figure">
 
[[File:media/c9adc476f9eb4041de2d2412cc51ac17.jpeg|IMG_256]]
 
</div>
# 然后对着开发板上的红外接收器按下遥控器上的按键,红外接收器在开发板上的位置如下图所示:
 
[[File:media/1e86f922d7025055c787cc5b94305b16.png]]
 
# 然后就能看到'''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 ————
 
<span id="rtc的使用方法"></span>
== RTC的使用方法 ==
 
# 开发板上预留了一个RTC电池的接口,位置如下所示:
 
[[File:media/970ae11d12051603830ef68596478448.png]]
 
# 需要购买的RTC电池如下所示,接口为2pin,1.25mm间距
 
[[File:media/1bb8d4996cde71588fc6fbf3de4f170a.png]]
 
# 开发板上使用的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
 
<span id="pwm散热风扇的使用方法"></span>
== PWM散热风扇的使用方法 ==
 
# 开发板上有用于接散热风扇的接口,接口规格为'''2pin 1.25mm间距''','''5V电压驱动''',风扇接口的位置如下图所示:
 
[[File:media/b649c2ec8b48ce2e46f7fd44e6201ede.png]]
 
# 开发板上的风扇可以通过PWM来调节转速和开关,使用的PWM引脚为'''PWM3_IR_M1'''
# Linux系统默认使用[https://github.com/orangepi-xunlong/linux-orangepi/blob/orange-pi-5.10-rk3588/drivers/hwmon/pwm-fan.c '''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 = &lt;2&gt;;
 
pwms = &lt;&amp;pwm3 0 50000 0&gt;;
 
cooling-levels = &lt;0 50 100 150 200 255&gt;;
 
rockchip,temp-trips = &lt;
 
50000 1
 
55000 2
 
60000 3
 
65000 4
 
70000 5
 
&gt;;
 
status = “okay”;
 
};
 
其中:
 
# '''pwms = &lt;&amp;pwm3 0 50000 0&gt;''':表示控制风扇的pwm为pwm3。
## '''cooling-levels = &lt;0 50 100 150 200 255&gt;''':用来配置转速(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 &gt; /dev/null &amp;); done'''
 
== 关机和重启开发板的方法 ==
 
# 在Linux系统运行的过程中,如果直接拔掉Type-C电源断电,可能会导致文件系统丢失某些数据或者损坏,所以在断电前请先使用'''poweroff'''命令关闭开发板的Linux系统,然后再拔掉电源。
 
orangepi@orangepi:~$ '''sudo poweroff'''
 
# 另外开发板配有开关机按键,还可以'''短按'''开发板上的开关机按键来关机。
 
[[File:media/67437bb1be095908cd3761d197aa0fd2.png]]
 
'''注意,Linux桌面版系统按下开关机按键后会弹出下图所示的确认框,需要点击Shut Down选项后才会关机。'''
 
[[File:media/9c7697304baaeac67f03a80749b6629c.png]]
 
# 关机后短按开发板上的开关机按键即可开机。
 
[[File:media/67437bb1be095908cd3761d197aa0fd2.png]]
 
# 重启linux系统的命令为
 
orangepi@orangepi:~$ '''sudo''' '''reboot'''
 
<span id="ubuntu22.04-gnome-wayland桌面系统使用说明"></span>
= Ubuntu22.04 Gnome Wayland桌面系统使用说明 =
 
'''ubuntu22.04 gnome镜像默认预装panfork mesa用户空间库,预装的kodi播放器和chromium浏览器支持硬解播放视频。'''
 
'''需要注意的是此镜像需要在wayland下使用,如果需要使用x11,请选择xfce类型的镜像。'''
 
<span id="ubuntu22.04-gnome桌面系统适配情况"></span>
== Ubuntu22.04 Gnome桌面系统适配情况 ==
 
{| class="wikitable"
|-
! '''功能'''
! '''Ubuntu22.04 Gnome Wayland'''
|-
| '''HDMI TX1视频'''
| '''OK'''
|-
| '''HDMI TX1音频'''
| '''OK'''
|-
| '''HDMI TX2视频'''
| '''OK'''
|-
| '''HDMI TX2音频'''
| '''OK'''
|-
| '''HDMI RX视频'''
| '''OK'''
|-
| '''HDMI RX音频'''
| '''OK'''
|-
| '''USB2.0X2'''
| '''OK'''
|-
| '''USB3.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'''
| '''OK'''
|-
| '''AX200-BT'''
| '''OK'''
|-
| '''AX210-WIFI'''
| '''OK'''
|-
| '''AX210-BT'''
| '''OK'''
|-
| '''RTL8852BE-WIFI'''
| '''OK'''
|-
| '''RTL8852BE-BT'''
| '''OK'''
|-
| '''MaskROM按键'''
| '''OK'''
|-
| '''Type-C转USB3.0'''
| '''OK'''
|-
| '''Type-C ADB功能'''
| '''OK'''
|-
| '''Type-C DP视频'''
| '''OK'''
|-
| '''Type-C DP音频'''
| '''OK'''
|-
| '''开关机按键'''
| '''OK'''
|-
| '''红外功能'''
| '''OK'''
|-
| '''三色LED灯'''
| '''OK'''
|-
| '''板载MIC'''
| '''OK'''
|-
| '''耳机播放'''
| '''OK'''
|-
| '''耳机录音'''
| '''OK'''
|-
| '''SPK喇叭'''
| '''OK'''
|-
| '''40PIN GPIO'''
| '''OK'''
|-
| '''40PIN I2C'''
| '''OK'''
|-
| '''40PIN SPI'''
| '''OK'''
|-
| '''40PIN UART'''
| '''OK'''
|-
| '''40PIN CAN'''
| '''OK'''
|-
| '''40PIN PWM'''
| '''OK'''
|-
| '''TF卡启动'''
| '''OK'''
|-
| '''SPI+NVME启动'''
| '''OK'''
|-
| '''OV13850摄像头'''
| '''OK'''
|-
| '''OV13855摄像头'''
| '''OK'''
|-
| '''GPU'''
| '''OK'''
|-
| '''VPU'''
| '''OK'''
|-
| '''NPU'''
| '''OK'''
|-
| '''REBOOT命令重启'''
| '''OK'''
|-
| '''Poweroff命令关机'''
| '''OK'''
|-
| '''MIPI LCD显示'''
| '''OK'''
|-
| '''MIPI LCD触摸'''
| '''OK'''
|-
| '''看门狗测试'''
| '''OK'''
|-
| '''Chromium硬解视频'''
| '''OK'''
|-
| '''MPV硬解视频'''
| '''OK'''
|-
| '''Kodi硬解视频'''
| '''OK'''
|}
 
== 确认系统当前使用的窗口系统为wayland的方法 ==
 
# 系统默认使用的窗口系统为wayland,确认方法如下所示:
## 首先打开设置
 
[[File:media/ca43cf61d0992905d37c3f1bc9f3716c.png]]
 
# 然后选择'''About''',如果'''Windowing System'''一栏显示的'''wayland'''说明设置正确
 
[[File:media/2ae0772640316332d55211c9d44fe2b9.png]]
 
# 当'''Log Out'''出系统后会进入下面的登录界面
 
[[File:media/2bcb6924c66025a8d9c1499d3de8d503.png]]
 
# 再次登录系统前请先点击下图所示的位置
 
[[File:media/a267b66c0918bf061d61074c38811259.png]]
 
# 然后选择'''Ubuntu on Wayland''',再输入密码登录系统
 
[[File:media/271d930bb66edf63bedb5a9f5e271a6b.png]]
 
== 切换默认音频设备的方法 ==
 
# 首先打开设置
 
[[File:media/ca43cf61d0992905d37c3f1bc9f3716c.png]]
 
# 然后选择'''Sound''',然后在'''Output Device'''中选择想要使用的音频设备即可
 
[[File:media/4b88657d544422e038dd054966893b67.png]]
 
<span id="gpu的测试方法"></span>
== GPU的测试方法 ==
 
# 在桌面中打开一个终端,然后输入 '''glmark2'''命令,如果能看到'''GL_VERDOR'''后面显示为'''Panfrost'''说明有使用到GPU
 
orangepi@orangepi:~$ '''glmark2'''
 
[[File:media/4aaa70b1f0dbb3acea4f1fa652c4a1bf.png]]
 
# glmark2跑分测试一般为1000多分
 
[[File:media/f273b3361f97d690707a6cbab360e57b.png]]
 
# 运行'''gpu_load.sh'''脚本可以查看GPU当前的负载情况
 
orangepi@orangepi:~$ '''gpu_load.sh'''
 
[[File:media/ab498ccd00002ade811a956b8d804d3a.png]]
 
<span id="chromium浏览器硬解播放视频的测试方法"></span>
== Chromium浏览器硬解播放视频的测试方法 ==
 
# 首先打开Chromium浏览器
 
[[File:media/dd94b0a525a5fc8e8c50766ac85681d3.png]]
 
# 然后在Chromium浏览器中输入'''chrome://gpu'''可以查看下GPU和视频解码的支持情况
 
[[File:media/dfe9b37c475c285f9790084eb4e929af.png]]
 
# 然后可以打开视频网站播放一个视频文件,或者在浏览器中输入下面的路径名播放系统自带的一个测试视频文件
 
'''/usr/local/test.mp4'''
 
# 播放视频的时候可以在终端中运行下'''vpu_debug.sh'''脚本,如果有下图右下角的打印输出,说明有使用硬件来解码视频
 
orangepi@orangepi:~$ '''vpu_debug.sh'''
 
<div class="figure">
 
[[File:media/8891901c4bee5c4262f3bde80d8c4edf.png|Screenshot from 2023-05-22 15-01-46]]
 
</div>
<span id="kodi硬解播放视频的测试方法"></span>
== Kodi硬解播放视频的测试方法 ==
 
'''注意,在Wayland桌面中直接打开Kodi显示会有有问题,请严格按照下面的方法打开Kodi。'''
 
# 首先登出系统
 
[[File:media/4a200027879c37f0fa69df567de18d50.png]] [[File:media/3942c29c8fb212d8c5d9b2d1ac260a38.png]]
 
# 当登出系统后会进入下面的登录界面
 
[[File:media/2bcb6924c66025a8d9c1499d3de8d503.png]]
 
# 然后点击下图所示的位置
 
[[File:media/a267b66c0918bf061d61074c38811259.png]]
 
# 然后选择'''Kodi Wayland''',再输入密码登录系统
 
[[File:media/443cd3ee8024071cea68827fa369cf4f.png]]
 
# Kodi打开后的界面显示如下所示
 
<div class="figure">
 
[[File:media/017b7781e2b276bde7c40386cceb3fef.png|Screenshot from 2023-03-03 14-31-20]]
 
</div>
# 然后点击设置
 
[[File:media/6349a5dbf74934ce8f360a79b186dd88.png]]
 
# 然后选择'''Player'''
 
[[File:media/896c48bcfc6137840ddd8b2b590a92f8.png]]
 
# 然后选择'''Videos''',然后点击左下角的'''Standard'''
 
[[File:media/fb7ab9edf9fdef97c3cd509e9827a3c4.png]]
 
# 点击两次后会切换成'''Expert'''模式,具体显示如下图所示
 
[[File:media/4b3868a90258bd445689937d9bb3dec0.png]]
 
# 然后在'''Processing'''设置中打开'''Allow using DRM PRIME decoder'''
 
[[File:media/5a3752205674753ecdc8687a41858988.png]]
 
# 然后我们来导入一个系统自带的测试视频测试下,你也可以上传想要播放的视频到系统中,然后导入播放
## 首先进入主界面,然后选择'''Movies'''
 
[[File:media/584c671da1b72d2e9adb99d766a9bad1.png]]
 
# 然后选择'''Add videos…'''
 
[[File:media/c928614e6722a1ba1d5b1696b0e068af.png]]
 
# 然后选择'''Browse'''
 
[[File:media/2b03b4f6e011849e19a7a78d386b3485.png]]
 
# 然后选择'''Root filesystem'''
 
[[File:media/8e1c92c2f5aa9dd8090b9433980ffd63.png]]
 
# 然后选择'''usr'''
 
[[File:media/fc92430e7f739060ee4cfb1f10cac01b.png]]
 
# 然后选择'''local'''
 
[[File:media/24e030df141e59590d0be2c1d32b963a.png]]
 
# 然后选择'''OK'''
 
[[File:media/b471f11ac954a5b2adc87b678829e0f8.png]]
 
# 然后选择'''OK'''
 
[[File:media/f305004e7be5986a9f0704888d9fc790.png]]
 
# 然后选择OK
 
[[File:media/33a30d85bb9d5285d42efcc3153fcb33.png]]
 
# 然后进入local文件夹中
 
[[File:media/576ef8f275edeb228e585405acaef408.png]]
 
# 然后就可以播放'''test.mp4'''测试视频了
 
[[File:media/7d1326f72561a38cba4f5bd7a40d9c1b.png]]
 
# 播放视频的时候可以在命令行中(通过ssh或者串口)运行下'''vpu_debug.sh'''脚本,如果有下面的打印输出,说明有使用硬件来解码视频
 
orangepi@orangepi:~$ '''vpu_debug.sh'''
 
[ 1830.938378] rk_vcodec: fdc48100.rkvdec-core:1 session 3573:2 time: 2728 us
 
[ 1830.938461] rk_vcodec: fdc38100.rkvdec-core:0 session 3573:2 time: 2617 us
 
[ 1830.941179] rk_vcodec: fdc48100.rkvdec-core:1 session 3573:2 time: 2661 us
 
[ 1830.941777] rk_vcodec: fdc38100.rkvdec-core:0 session 3573:2 time: 2708 us
 
[ 1830.944727] rk_vcodec: fdc48100.rkvdec-core:1 session 3573:2 time: 3444 us
 
[ 1830.945211] rk_vcodec: fdc38100.rkvdec-core:0 session 3573:2 time: 3331 us
 
[ 1830.970563] rk_vcodec: fdc48100.rkvdec-core:1 session 3573:2 time: 2547 us
 
[ 1831.199650] rk_vcodec: fdc38100.rkvdec-core:0 session 3573:2 time: 2703 us
 
# 播放'''test.mp4'''视频文件CPU的占用率在'''20%~30%'''左右。
 
[[File:media/db05f48d53b62f028b7feb3bcb7f9100.png]]
 
<span id="ubuntu22.04-gnome安装ros-2-humble的方法"></span>
== Ubuntu22.04 Gnome安装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 &lt;command&gt; -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 &lt;command&gt; -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'''
 
<div class="figure">
 
[[File:media/8d5e68401a6f35e5b9e72fa20f45ec8e.png|Screenshot from 2023-05-22 15-17-44]]
 
</div>
# 参考文档
 
'''http://docs.ros.org/en/humble/index.html'''
 
[http://docs.ros.org/en/galactic/Tutorials.html '''http://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html''']
 
== 设置中文环境以及安装中文输入法的方法 ==
 
# 首先打开设置
 
[[File:media/ca43cf61d0992905d37c3f1bc9f3716c.png]]
 
# 然后找到'''Region &amp; Language'''选项,然后点击'''Manage Installed Languages'''选项
 
[[File:media/930540953cd61f862e62e2ad54a4fe7f.png]]
 
# 然后请使用鼠标左键选中'''汉语(中国)'''并按住不动,然后往上将其拖到最开始的位置,拖完后的显示如下图所示:
 
[[File:media/edbf89e089ecb372b3b36ed74411690a.png]]
 
# 然后选择'''Apply System-Wide'''将中文设置应用到整个系统
 
[[File:media/b30e6c1e6e6099413b85d24e989a6f9e.png]]
 
# '''然后重启Linux系统使配置生效'''
# 重新进入系统后,在下面的界面请选择'''不要再次询问我''',然后请根据自己的喜好决定标准文件夹是否也要更新为中文
 
[[File:media/1a18aef41677d5479914b1554b8648a0.png]]
 
# 然后可以看到桌面都显示为中文了
 
<div class="figure">
 
[[File:media/40a68911f7974bc6383d03d6fc28a7c5.png|截图 2023-03-08 09-34-07]]
 
</div>
# 然后打开Fcitx5配置程序
 
[[File:media/958fcecc4a76a091048212d35e9933d7.png]]
 
# 然后选择使用拼音输入法
 
[[File:media/6213b4fef5f832150e5a6630e7c7c666.png]]
 
# 选择后的界面如下所示,再点击确定即可
 
[[File:media/9e6c8d8f12af1c3fffd6649453206485.png]]
 
# 然后我们可以打开'''Geany'''测试下中文输入法,打开方式如下图所示
 
[[File:media/d40bd4a70dc7e8d71891720db2e70304.png]]
 
# 打开'''Geany'''后,默认还是英文输入法,我们可以通过'''Ctrl+Space'''快捷键来切换成中文输入法,然后就能输入中文了
 
[[File:media/f984b7d0104583444b80ff1ecfcce071.png]]
 
<span id="orange-pi-os-arch系统使用说明"></span>
= Orange Pi OS Arch系统使用说明 =
 
<span id="orange-pi-os-arch系统适配情况"></span>
== Orange Pi OS Arch系统适配情况 ==
 
{| class="wikitable"
|-
! '''功能'''
! '''OPi OS Arch Gnome'''
! '''OPi OS Arch Xfce(待发布)'''
|-
| '''HDMI TX1视频'''
| '''OK'''
| '''OK'''
|-
| '''HDMI TX1音频'''
| '''OK'''
| '''OK'''
|-
| '''HDMI TX2视频'''
| '''OK'''
| '''OK'''
|-
| '''HDMI TX2音频'''
| '''OK'''
| '''OK'''
|-
| '''HDMI RX视频'''
| '''OK'''
| '''OK'''
|-
| '''HDMI RX音频'''
| '''OK'''
| '''OK'''
|-
| '''USB2.0X2'''
| '''OK'''
| '''OK'''
|-
| '''USB3.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'''
| '''OK'''
| '''OK'''
|-
| '''AX200-BT'''
| '''OK'''
| '''OK'''
|-
| '''AX210-WIFI'''
| '''OK'''
| '''OK'''
|-
| '''AX210-BT'''
| '''OK'''
| '''OK'''
|-
| '''RTL8852BE-WIFI'''
| '''OK'''
| '''OK'''
|-
| '''RTL8852BE-BT'''
| '''OK'''
| '''OK'''
|-
| '''MaskROM按键'''
| '''OK'''
| '''OK'''
|-
| '''Type-C转USB3.0'''
| '''OK'''
| '''OK'''
|-
| '''Type-C DP视频'''
| '''OK'''
| '''OK'''
|-
| '''Type-C DP音频'''
| '''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 CAN'''
| '''OK'''
| '''OK'''
|-
| '''40PIN PWM'''
| '''OK'''
| '''OK'''
|-
| '''TF卡启动'''
| '''OK'''
| '''OK'''
|-
| '''SPI+NVME启动'''
| '''OK'''
| '''OK'''
|-
| '''OV13850摄像头'''
| '''OK'''
| '''OK'''
|-
| '''OV13855摄像头'''
| '''OK'''
| '''OK'''
|-
| '''GPU'''
| '''OK'''
| '''OK'''
|-
| '''VPU'''
| '''OK'''
| '''OK'''
|-
| '''NPU'''
| '''NO'''
| '''NO'''
|-
| '''REBOOT命令重启'''
| '''OK'''
| '''OK'''
|-
| '''Poweroff命令关机'''
| '''OK'''
| '''OK'''
|-
| '''MIPI LCD显示'''
| '''OK'''
| '''OK'''
|-
| '''MIPI LCD触摸'''
| '''OK'''
| '''OK'''
|-
| '''看门狗测试'''
| '''OK'''
| '''OK'''
|-
| '''Chromium硬解视频'''
| '''NO'''
| '''NO'''
|-
| '''MPV硬解视频'''
| '''OK'''
| '''OK'''
|}
 
<span id="m.2-e-key-pcie-wifi6蓝牙模块的使用方法-1"></span>
== M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 ==
 
# 首先需要购买一个PCIe WIFI6+蓝牙模块
 
{| class="wikitable"
|-
! '''序号'''
! '''型号'''
! '''实物图片'''
! '''已支持的OS'''
|-
| '''1'''
| '''AX200''' '''(PCIE+USB接口)'''
| '''[[File:media/82893e51bf9b88e7de55f1851d3258fa.png]]'''
| '''Debian''' '''Ubuntu''' '''OpenWRT''' '''OPi OS Arch'''
|-
| '''2'''
| '''AX210''' '''(PCIE+USB接口)'''
| '''[[File:media/0780dbc2efb3d2d207de783b499d324f.png]]'''
| '''Debian''' '''Ubuntu''' '''OpenWRT''' '''OPi OS Arch'''
|-
| '''3'''
| '''RTL8852BE''' '''(PCIE+USB接口)'''
| '''[[File:media/3107bc4a7d847ec89a39d0fa01dae5be.png]]'''
| '''Debian''' '''Ubuntu''' '''Android12''' '''OPi OS Arch''' '''OPi OS Droid'''
|}
 
# 然后将WIFI模块插入开发板的M.2 E-Key接口中并固定好
 
[[File:media/d8e854d861505b4dfca06d5573b8b642.png]]
 
# 然后在OPi OS Arch系统中打开WIFI模块的配置,步骤如下所示:
## 首先在'''/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-wifi-pcie.dtbo #需要添加的'''
 
# '''然后重启OPi OS Arch系统'''
# 重启系统后如果一切正常,此时使用下面的命令就能看到WIFI设备节点了。如果看不到,请先检查前面的配置是否有问题
 
[orangepi@orangepi ~]$ '''ip addr show wlan0'''
 
……
 
4: '''wlan0''': &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc noqueue state UP group default qlen 1000
 
link/ether 38:7a:0e:e3:80:05 brd ff:ff:ff:ff:ff:ff
 
inet 192.168.1.237/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0
 
valid_lft 42938sec preferred_lft 42938sec
 
inet6 fe80::a098:5942:16e:e817/64 scope link noprefixroute
 
valid_lft forever preferred_lft forever
 
# 连接WIFI的步骤如下所示:
## 首先点击桌面右上角的这块区域
 
[[File:media/7da71836b548c91b9de3f698906226ec.png]]
 
# 然后选择Wi-Fi
 
[[File:media/a72d45e16c0c5d792c638b7b4fcce712.png]]
 
# 然后选择想要连接的WIFI
 
[[File:media/4c8672b4473b913b727587b950c34f02.png]]
 
# 然后输入WIFI的密码,再点击'''Connect'''
 
[[File:media/93db5d6f6b3e88b8b28f8ce1022dc143.png]]
 
# 然后再次进入下面的界面就能看到WIFI已连接
 
[[File:media/83f4be53eed19779f87dc69046d20a18.png]]
 
# 蓝牙的使用示例:
## 首先点击桌面右上角的这块区域
 
[[File:media/7da71836b548c91b9de3f698906226ec.png]]
 
# 然后打开设置
 
[[File:media/12febf4bb9d8fa7482d6bc7c3db87561.png]]
 
# 然后在设置中选择蓝牙,并确保蓝牙右上角的开关按钮已打开
 
[[File:media/fc4069a949fe0fd84d8c15a7dbf40799.png]]
 
# 然后选择想要配置对的蓝牙设备,比如和安卓手机配对
 
[[File:media/9477cd9b6c2e5b665beff00937086627.png]]
 
# 然后点击'''Confirm''',手机端也需要确认配对
 
[[File:media/4902a7e59bbef3f848c00614686f1c7e.png]]
 
# 蓝牙和安卓手机连接后的显示如下所示:
 
[[File:media/78dce14f0ac0cb468c99e6caf7f4c5f3.png]]
 
# 然后点击已配对的蓝牙设备会弹出下图所示的操作界面
 
[[File:media/b81b694d0116409b4a2c1720c980ba9a.png]]
 
# 此时点击'''Send Files…'''就可给手机发送一个文件
 
[[File:media/eb7496bf6f675925ba29d3816d4f443e.png]]
 
# 蓝牙发送图片给手机的示意图如下所示:
 
<div class="figure">
 
[[File:media/52e81e6cfb6f7c4ce689137b55e962ad.png|Screenshot from 2023-04-21 04-17-07]]
 
</div>
<span id="寸mipi-lcd屏幕的使用方法-1"></span>
== 10.1寸MIPI LCD屏幕的使用方法 ==
 
<span id="寸mipi-屏幕的组装方法-1"></span>
=== 10.1寸MIPI 屏幕的组装方法 ===
 
# 首先准备需要的配件
## 10.1寸MIPI LCD显示屏+触摸屏(和OPi5/OPi5B通用)
 
[[File:media/c3e5a25f5ee675e2823f6b07159a4253.png]]
 
# 屏幕转接板+31pin转40pin排线
 
<div class="figure">
 
[[File:media/5f9060642536b789dcdc074683198540.png|DD9A8F44-0D8F-4f06-9473-B539DEED850C]]
 
</div>
# 30pin MIPI排线
 
<div class="figure">
 
[[File:media/2d3e4d17bb43df4a291174f25a4c8549.png|C2164119-6EC3-49ae-9A95-BE323F51FAE1]]
 
</div>
<ol style="list-style-type: decimal;">
<li><p>12pin 触摸屏排线</p>
<p>[[File:media/d554a41dcd6938630a636734c9289429.png]]</p></li>
<li><p>按照下图将12pin 触摸屏排线、31pin转40pin排线、30pin MIPI排线接到屏幕转接板上,注意'''触摸屏排线蓝色的绝缘面朝下''',其它两根排线绝缘面朝上,如果接错会导致无显示或者不能触摸的问题</p></li></ol>
 
[[File:media/67e51395a8e370f8e8dadc08c989cdd4.png]]
 
# 按照下图将连接好排线的转接板置于MIPI LCD屏上面,并通过31pin转40pin排线连接MIPI LCD屏与转接板
 
[[File:media/2df561b12d9e9b8fc66499c2f3f8df5c.png]]
 
# 然后通过12pin触摸屏排线连接触摸屏与转接板,注意绝缘面的朝向
 
[[File:media/6b94043d6af94dae5cae2a1bcc5c1ff0.png]]
 
# 最后通过30pin MIPI排线连接到开发板的LCD接口上
 
[[File:media/094976191d59eea0ee8b1c986ca8e333.png]]
 
'''注意,下面的触摸接口不是给LCD MIPI屏幕使用的,目前为备用接口,使用不到。'''
 
[[File:media/db07f07c590af0ae7c59a19880742ae6.png]]
 
<span id="打开10.1寸mipi-lcd屏幕配置的方法-1"></span>
=== 打开10.1寸MIPI LCD屏幕配置的方法 ===
 
# 开发板上mipi lcd屏幕的接口的位置如下图所示
 
[[File:media/b3a776a95c84d7ebfe52a07f9a12c473.png]]
 
# OPi OS Arch镜像默认是没有打开mipi lcd屏幕配置的,如果需要使用mipi lcd屏幕,需要手动打开才行。打开mipi lcd配置的方法如下所示:
## 首先在'''/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-opi5plus-lcd.dtbo #需要添加的配置'''
 
# '''然后重启OPi OS Arch系统'''
# 重启后可以看到lcd屏幕的显示如下所示(默认为竖屏):
 
[[File:media/18f4338bb9e75da6fcdb1d2ed09604e1.png]]
 
=== 旋转显示和触摸方向的方法 ===
 
# 首先点击桌面右上角的这块区域
 
[[File:media/7da71836b548c91b9de3f698906226ec.png]]
 
# 然后打开设置
 
[[File:media/12febf4bb9d8fa7482d6bc7c3db87561.png]]
 
# 然后选择'''Displays'''
 
[[File:media/dad43b2bc5fda01ba4f3f15c37675621.png]]
 
# 然后在'''Displays'''的'''Orientation'''中选择想要旋转的方向
 
[[File:media/2b1f24f041c1c475cf23aa428d3b1bd5.png]]
 
# 然后选择'''Apply'''
 
[[File:media/677b8ec4c37a6fee9ebcd1fe481d7ab6.png]]
 
# 然后就能看到屏幕已经旋转好了,此时还需要选择'''Keep Changes'''来最后确定旋转
 
[[File:media/cdda3a5cc6a2d109296edd2d59126a6f.png]]
 
# LCD屏幕旋转90度后的显示如下所示:
 
[[File:media/c68eb9ddddcee3c79a40ec7be8df630b.png]]
 
# '''OPi OS Arch系统LCD屏幕的触摸功能会随着显示方向的旋转而旋转,无需其他设置。'''
 
<span id="ov13850和ov13855-mipi摄像头的测试方法-1"></span>
== OV13850和OV13855 MIPI摄像头的测试方法 ==
 
目前开发板支持两款MIPI摄像头,OV13850和OV13855,具体的图片如下所示:
 
# 1300万MIPI接口的OV13850摄像头
 
[[File:media/5941e6fa8b5a03d3b89ab5891bd1ff2c.png]]
 
# 1300万MIPI接口的OV13855摄像头
 
[[File:media/1ef03ad657d3490c06607c7619bc11b3.png]]
 
OV13850和OV13855摄像头使用的转接板和FPC排线是一样的,只是两款摄像头接在转接板上的位置不一样。FPC排线如下图所示,请注意FPC排线是有方向的,标注'''TO MB'''那端需要插到开发板的摄像头接口中,标注'''TO CAMERA'''那端需要插到摄像头转接板上。
 
[[File:media/e0365832b0d74e8b044917af01ea6678.png]]
 
摄像头转接板上总共有3个摄像头的接口,同一时间只能接一个使用,如下图所示,其中:
 
# '''1号接口接OV13850摄像头'''
# '''2号接口接OV13855摄像头'''
# 3号接口未使用,忽略即可
 
[[File:media/b4994072e4050dca2d123fcb8c092758.png]]
 
Orange Pi 5 Plus开发板上总共有1个摄像头接口,位置如下所示:
 
[[File:media/663c5c4ebf2ff84de772810d4963b2b8.png]]
 
摄像头插在开发板的摄像头接口的方法如下所示:
 
[[File:media/8cd4b16c06791cc630117deebd44c25b.png]]
 
连接好摄像头到开发板上后,我们可以使用下面的方法来测试下摄像头:
 
# 首先在'''/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-opi5plus-ov13850.dtbo'''
 
上面红色字体演示的是摄像头接口接'''ov13850'''的配置,其他的配置如下表所示,将对应的dtbo配置添加到'''FDTOVERLAYS'''后面即可。
 
{| class="wikitable"
|-
! '''摄像头'''
! '''dtbo的配置'''
|-
| '''接ov13850'''
| '''/dtbs/rockchip/overlay/rk3588-opi5plus-ov13850.dtbo'''
|-
| '''接ov13855'''
| '''/dtbs/rockchip/overlay/rk3588-opi5plus-ov13855.dtbo'''
|}
 
# '''然后重启OPi OS Arch系统'''
# 然后在桌面系统中打开一个终端,再运行下面的脚本
 
orangepi@orangepi:~$ '''test_camera.sh'''
 
# 然后就能看到摄像头的预览画面了
 
<div class="figure">
 
[[File:media/473bed3d0bdf303b6dd1963af131bbed.png|Screenshot from 2023-04-20 17-16-08]]
 
</div>
<span id="设置中文环境以及安装中文输入法的方法-1"></span>
== 设置中文环境以及安装中文输入法的方法 ==
 
# 首先点击桌面右上角的这块区域
 
[[File:media/7da71836b548c91b9de3f698906226ec.png]]
 
# 然后打开设置
 
[[File:media/651205568a26c28aac76be479c6a3343.png]]
 
# 然后找到'''Region &amp; Language'''选项
 
[[File:media/ca4588747c1a33cbcc63fe3c9ce3a89d.png]]
 
# 然后选择'''Language'''
 
[[File:media/aef3bef0603f898ccecba312bc2a3d81.png]]
 
# 然后选择汉语
 
[[File:media/622116b3b753e18073cbc8d76b589212.png]]
 
# 然后点击'''Select'''
 
[[File:media/da052cc82f129f98e0f0a75db296ce1f.png]]
 
# 然后点击'''Logout…'''登出系统,再重新登入系统
 
[[File:media/f6d875455f492795df094d44a6eaa127.png]]
 
# 然后可以看到桌面都显示为中文了
 
<div class="figure">
 
[[File:media/7f919c672cc53c28d91af2c91a52b734.png|截图 2023-04-20 20-20-06]]
 
</div>
# 然后安装下'''fcitx-im'''和'''fcitx-configtool'''
 
[orangepi@orangepi ~]$ '''sudo pacman -S fcitx-im fcitx-configtool'''
 
:: 在组 fcitx-im 中有 3 成员:
 
:: 软件仓库 community
 
# fcitx 2) fcitx-qt5 3) fcitx-qt6
 
输入某个选择 ( 默认=全部选定 ): '''1'''
 
# 然后打开Fcitx配置程序
 
[[File:media/3040f89d4917262238f964c79e065468.png]]
 
[[File:media/cd4e659d236bfe830bd2900bebbaa34f.png]]
 
# 然后添加'''Google拼音'''输入法
 
[[File:media/1fc0f603d44b32ed5a802e8293984d65.png]]
 
[[File:media/d16dbda2f306bd16941a6ff33e49ac25.png]]
 
# 然后我们可以打开一个终端测试下中文输入法,打开终端后,如果默认还是英文输入法,我们可以通过'''Ctrl+Space'''快捷键来切换成中文输入法,然后就能输入中文了
 
<div class="figure">
 
[[File:media/ac4d7b695ba3efa0ec2e25befee1f226.png|截图 2023-04-20 20-38-24]]
 
</div>
<span id="hdmi-in的测试方法-1"></span>
== HDMI IN的测试方法 ==
 
# 开发板HDMI In接口的所在位置如下所示:
 
[[File:media/02b0241c5966daf8d9b568d8fc42282c.png]]
 
# 首先使用下图所示的HDMI转HDMI线将其它设备的HDMI输出接到开发板的HDMI In接口上
 
[[File:media/4c06c9135e500bd449b1dc7078fb7235.png]]
 
# OPi OS Arch系统HDMI In功能默认是关闭的,打开方法如下所示:
## 首先在'''/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-hdmirx.dtbo #需要添加的配置'''
 
# '''然后重启OPi OS Arch系统'''
# 重启进入系统后再在桌面上打开一个终端,然后运行下'''test_hdmiin.sh'''脚本
 
[orangepi@orangepi ~]$ '''test_hdmiin.sh'''
 
# 然后就能看到HDMI In的输入画面了(下图中HDMI In显示的是opi5开发板HDMI输出的画面,此时正在播放一个视频)。'''test_hdmiin.sh'''脚本默认会将HDMI In输入的音频播放到开发板的HDMI_TX1、HDMI_TX2和ES8388(代表喇叭或者耳机)中去。
 
[[File:media/96954a0c4b0d719632176660778da348.png]]
 
# 除了使用'''test_hdmiin.sh'''脚本来测试HDMI In外,我们还可以使用'''Qt V4L2 test Utility'''来测试HDMI In的视频('''此方法目前无法测试音频''')。详细步骤如下所示:
## 先进入应用程序列表中
 
[[File:media/5790522bcd577a370de33c83caf00eca.png]]
 
# 然后找到'''Qt V4L2 test Utility'''并打开
 
[[File:media/1c3b2fc388229f101f1c3af5be95ad9b.png]]
 
# 然后请确保'''Qt V4L2 test Utility'''识别到了HDMI In设备
 
[[File:media/d0fd60832aabc7c07f30ac3e920d6fbc.png]]
 
# 然后点击下图所示的位置就可以看到HDMI In输入的视频
 
[[File:media/418d755968f4290fc7b4129c1a892e68.png]]
 
# HDMI In输入的视频窗口如下所示:
 
<div class="figure">
 
[[File:media/7fb7c581a1bae16c2e7971db0bfefb1d.png|Screenshot from 2023-05-22 18-12-56]]
 
</div>
<span id="安装wiringop的方法-1"></span>
== 安装wiringOP的方法 ==
 
'''注意,Orange Pi发布的OPi OS Arch镜像中已经预装了wiringOP,除非wiringOP的代码有更新,否则无需重新下载编译安装,直接使用即可。'''
 
'''进入系统后可以运行下gpio readall命令,如果能看到下面的输出,说明wiringOP已经预装并且能正常使用。'''
 
[[File:media/2d80496a21abd57f1dc24e09aded6394.png]]
 
'''wiringOP目前主要适配了设置GPIO口输入输出,设置GPIO口输出高低电平以及设置上下拉电阻的功能,像硬件PWM这样的功能是用不了的。'''
 
# 下载wiringOP的代码
 
[orangepi@orangepi ~]$ '''sudo pacman -Syy git'''
 
[orangepi@orangepi ~]$ '''git clone https://github.com/orangepi-xunlong/wiringOP.git -b next'''
 
'''注意,Orange Pi 5 Plus需要下载wiringOP next分支的代码,请别漏了-b next这个参数。'''
 
'''如果从GitHub下载代码有问题,可以去'''[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi 5 Plus资料下载页面的官方工具''']'''中下载wiringOP.tar.gz的源码压缩包。'''
 
[[File:media/47975ba0c510a363cebe5747ade6f229.png]]
 
# 编译安装wiringOP
 
[orangepi@orangepi ~]$ '''sudo pacman -Syy make gcc'''
 
[orangepi@orangepi ~]$ '''cd wiringOP'''
 
[orangepi@orangepi wiringOP]$ '''sudo ./build clean'''
 
[orangepi@orangepi wiringOP]$ '''sudo ./build'''
 
# 测试gpio readall命令的输出如下
 
[[File:media/2d80496a21abd57f1dc24e09aded6394.png]]
 
<span id="pin接口gpioi2cuartspican和pwm测试-1"></span>
== 40 pin接口GPIO、I2C、UART、SPI、CAN和PWM测试 ==
 
'''注意,如果需要设置fdt overlays同时打开多个配置,请像下面红色字体配置那样使用空格隔开写在一行即可。'''
 
[orangepi@orangepi ~]$ '''sudo vim /boot/extlinux/extlinux.conf'''
 
LABEL Orange Pi
 
LINUX /Image
 
FDT /dtbs/rockchip/rk3588s-orangepi-5.dtb
 
'''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-i2c1-m2.dtbo /dtbs/rockchip/overlay/rk3588-uart0-m2.dtbo'''
 
<span id="pin-gpio口测试-2"></span>
=== 40 pin GPIO口测试 ===
 
# 开发板40 pin中总共有'''28'''个GPIO口可以使用,下面以7号引脚——对应GPIO为GPIO1_D6 ——对应wPi序号为2——为例演示如何设置GPIO口的高低电平
 
[[File:media/3de44510e38939d883633778f645ea4e.png]]
 
# 首先设置GPIO口为输出模式,其中第三个参数需要输入引脚对应的wPi的序号
 
[orangepi@orangepi ~]$ '''gpio mode 2 out'''
 
# 然后设置GPIO口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功
 
[orangepi@orangepi ~]$ '''gpio write 2 0'''
 
# 然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功
 
[orangepi@orangepi ~]$ '''gpio write 2 1'''
 
# 其他引脚的设置方法类似,只需修改wPi的序号为引脚对应的序号即可
 
<span id="pin-gpio口上下拉电阻的设置方法-1"></span>
=== 40 pin GPIO口上下拉电阻的设置方法 ===
 
# 下面以7号引脚——对应GPIO为GPIO1_D6 ——对应wPi序号为2——为例演示如何设置GPIO口的上下拉电阻
 
[[File:media/3de44510e38939d883633778f645ea4e.png]]
 
# 首先需要设置GPIO口为输入模式,其中第三个参数需要输入引脚对应的wPi的序号
 
[orangepi@orangepi ~]$ '''gpio mode 2 in'''
 
# 设置为输入模式后,执行下面的命令可以设置GPIO口为上拉模式
 
[orangepi@orangepi ~]$ '''gpio mode 2 up'''
 
# 然后输入下面的命令读取GPIO口的电平,如果电平为1,说明上拉模式设置成功
 
[orangepi@orangepi ~]$ '''gpio read 2'''
 
'''1'''
 
# 然后执行下面的命令可以设置GPIO口为下拉模式
 
[orangepi@orangepi ~]$ '''gpio mode 2 down'''
 
# 然后输入下面的命令读取GPIO口的电平,如果电平为0,说明下拉模式设置成功
 
[orangepi@orangepi ~]$ '''gpio read 2'''
 
'''0'''
 
<span id="pin-spi测试-2"></span>
=== 40 pin SPI测试 ===
 
# 由下图可知,Orange Pi 5 Plus可用的SPI为SPI0和SPI4
 
[[File:media/8fdc5f37f284d983dd9764c23147b156.png]]
 
# SPI0和SPI4在40pin中对应的引脚如下表所示。SPI4_M1和SPI4_M2同一时间只能使用其中一组,不能同时使用,它们都是同一个SPI4,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的SPI总线。
 
{| class="wikitable"
|-
!
! '''SPI0_M2对应40pin'''
! '''SPI4_M1对应40pin'''
! '''SPI4_M2对应40pin'''
|-
| '''MOSI'''
| '''19号引脚'''
| '''12号引脚'''
| '''8号引脚'''
|-
| '''MISO'''
| '''21号引脚'''
| '''31号引脚'''
| '''10号引脚'''
|-
| '''CLK'''
| '''23号引脚'''
| '''35号引脚'''
| '''22号引脚'''
|-
| '''CS0'''
| '''24号引脚'''
| '''40号引脚'''
| '''31号引脚'''
|-
| '''CS1'''
| '''26号引脚'''
| '''38号引脚'''
| '''无'''
|}
 
# 在linux系统中,40 pin中的SPI默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:
## 首先在'''/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-spi0-m2-cs0-cs1-spidev.dtbo'''
 
上面红色字体演示的是打开'''spi0-m2并使用cs0和cs1引脚'''的配置,其他的配置如下表所示,将对应的dtbo配置添加到'''FDTOVERLAYS'''后面即可。
 
{| class="wikitable"
|-
! '''SPI总线'''
! '''dtbo的配置'''
|-
| '''SPI0_M2-cs0'''
| '''/dtbs/rockchip/overlay/rk3588-spi0-m2-cs0-spidev.dtbo'''
|-
| '''SPI0_M2-cs1'''
| '''/dtbs/rockchip/overlay/rk3588-spi0-m2-cs1-spidev.dtbo'''
|-
| '''SPI0_M2-cs0-cs1'''
| '''/dtbs/rockchip/overlay/rk3588-spi0-m2-cs0-cs1-spidev.dtbo'''
|-
| '''SPI4_M1-cs0'''
| '''/dtbs/rockchip/overlay/rk3588-spi4-m1-cs0-spidev.dtbo'''
|-
| '''SPI4_M1-cs1'''
| '''/dtbs/rockchip/overlay/rk3588-spi4-m1-cs1-spidev.dtbo'''
|-
| '''SPI4_M1-cs0-cs1'''
| '''/dtbs/rockchip/overlay/rk3588-spi4-m1-cs0-cs1-spidev.dtbo'''
|-
| '''SPI4_M2-cs0'''
| '''/dtbs/rockchip/overlay/rk3588-spi4-m2-cs0-spidev.dtbo'''
|}
 
# 然后'''重启OPi OS Arch系统'''
# 重启后进入系统先查看下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后显示的结果。'''
 
# 然后先不短接SPI0或者SPI4的MOSI和MISO两个引脚,运行spidev_test的输出结果如下所示,可以看到TX和RX的数据不一致
 
[orangepi@orangepi ~]$ '''sudo spidev_test -v -D /dev/spidev4.0'''
 
'''或者'''
 
[orangepi@orangepi ~]$ '''sudo spidev_test -v -D /dev/spidev0.0'''
 
spi mode: 0x0
 
bits per word: 8
 
max speed: 500000 Hz (500 KHz)
 
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 | …………………………..
 
# 然后短接SPI0或者SPI4的MOSI和MISO两个引脚再运行spidev_test的输出如下,可以看到发送和接收的数据一样,说明SPI回环测试正常。
 
[orangepi@orangepi ~]$ '''sudo spidev_test -v -D /dev/spidev4.0'''
 
'''或者'''
 
[orangepi@orangepi ~]$ '''sudo spidev_test -v -D /dev/spidev0.0'''
 
spi mode: 0x0
 
bits per word: 8
 
max speed: 500000 Hz (500 KHz)
 
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 | ……@….▒………………▒.
 
<span id="pin-i2c测试-2"></span>
=== 40 pin I2C测试 ===
 
# 由下表可知,Orange Pi 5 Plus可用的i2c为i2c2、i2c4、i2c5和i2c8共四组 i2c总线。
 
[[File:media/8fdc5f37f284d983dd9764c23147b156.png]]
 
# 4组I2C总线在40pin中对应的引脚如下表所示。I2C2_M0和I2C2_M4同一时间只能使用其中一组,不能同时使用,它们都是同一个I2C2,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的I2C2总线。
 
{| class="wikitable"
|-
! '''I2C总线'''
! '''SDA对应40pin'''
! '''SCL对应40pin'''
|-
| '''I2C2_M0'''
| '''3号引脚'''
| '''5号引脚'''
|-
| '''I2C2_M4'''
| '''10号引脚'''
| '''8号引脚'''
|-
| '''I2C4_M3'''
| '''22号引脚'''
| '''32号引脚'''
|-
| '''I2C5_M3'''
| '''27号引脚'''
| '''28号引脚'''
|-
| '''I2C8_M2'''
| '''29号引脚'''
| '''7号引脚'''
|}
 
# 在linux系统中,40 pin中的I2C总线默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:
## 首先在'''/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-i2c2-m0.dtbo'''
 
上面红色字体演示的是打开'''i2c2-m0'''的配置,其他的配置如下表所示,将对应的dtbo配置添加到'''FDTOVERLAYS'''后面即可。
 
{| class="wikitable"
|-
! '''I2C总线'''
! '''dtbo的配置'''
|-
| '''I2C2_M0'''
| '''/dtbs/rockchip/overlay/rk3588-i2c2-m0.dtbo'''
|-
| '''I2C2_M4'''
| '''/dtbs/rockchip/overlay/rk3588-i2c2-m4.dtbo'''
|-
| '''I2C4_M3'''
| '''/dtbs/rockchip/overlay/rk3588-i2c4-m3.dtbo'''
|-
| '''I2C5_M3'''
| '''/dtbs/rockchip/overlay/rk3588-i2c5-m3.dtbo'''
|-
| '''I2C8_M2'''
| '''/dtbs/rockchip/overlay/rk3588-i2c8-m2.dtbo'''
|}
 
# 然后'''重启OPi OS Arch系统'''
# 启动linux系统后,先确认下'''/dev'''下存在需要使用I2C的设备节点
 
orangepi@orangepi:~$ '''ls /dev/i2c-*'''
 
# 然后在40 pin接口对应的I2C引脚上接一个I2C设备
# 然后使用'''i2cdetect -y'''命令如果能检测到连接的i2c设备的地址,就说明i2c能正常使用
 
[orangepi@orangepi ~]$ '''sudo pacman -S i2c-tools''' #首先现在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的测试命令
 
<span id="pin的uart测试-2"></span>
=== 40 pin的UART测试 ===
 
# 由下表可知,Orange Pi 5 Plus可用的uart为uart1、uart3、uart4、uart6、uart7和uart8共6组uart总线
 
[[File:media/8fdc5f37f284d983dd9764c23147b156.png]]
 
# 在linux系统中,40 pin中的UART默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:
## 首先在'''/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-uart1-m1.dtbo'''
 
上面红色字体演示的是打开'''uart1-m1'''的配置,其他的配置如下表所示,将对应的dtbo配置添加到'''FDTOVERLAYS'''后面即可。
 
{| class="wikitable"
|-
! '''UART总线'''
! '''dtbo对应配置'''
|-
| '''UART1_M1'''
| '''/dtbs/rockchip/overlay/rk3588-uart1-m1.dtbo'''
|-
| '''UART3_M1'''
| '''/dtbs/rockchip/overlay/rk3588-uart3-m1.dtbo'''
|-
| '''UART4_M2'''
| '''/dtbs/rockchip/overlay/rk3588-uart4-m2.dtbo'''
|-
| '''UART6_M1'''
| '''/dtbs/rockchip/overlay/rk3588-uart6-m1.dtbo'''
|-
| '''UART7_M2'''
| '''/dtbs/rockchip/overlay/rk3588-uart7-m2.dtbo'''
|-
| '''UART8_M1'''
| '''/dtbs/rockchip/overlay/rk3588-uart8-m1.dtbo'''
|}
 
# 然后'''重启OPi OS Arch系统'''
# 进入linux系统后,先确认下'''/dev'''下是否存在对应uart的设备节点
 
[orangepi@orangepi ~]$ '''ls /dev/ttyS*'''
 
# 然后开始测试uart接口,先使用杜邦线短接要测试的uart接口的rx和tx引脚
 
{| class="wikitable"
|-
! '''UART总线'''
! '''RX对应40pin'''
! '''TX对应40pin'''
|-
| '''UART1_M1'''
| '''27号引脚'''
| '''28号引脚'''
|-
| '''UART3_M1'''
| '''18号引脚'''
| '''16号引脚'''
|-
| '''UART4_M2'''
| '''19号引脚'''
| '''23号引脚'''
|-
| '''UART6_M1'''
| '''10号引脚'''
| '''8号引脚'''
|-
| '''UART7_M2'''
| '''24号引脚'''
| '''26号引脚'''
|-
| '''UART8_M1'''
| '''40号引脚'''
| '''35号引脚'''
|}
 
# 使用'''gpio serial'''命令测试串口的回环功能如下所示,如果能看到下面的打印,说明串口通信正常(ttySX需要替换为对应uart的节点名,请不要照抄)
 
[orangepi@orangepi ~]$ '''sudo gpio serial /dev/ttySX'''
 
[sudo] password for orangepi: #在这里输入密码
 
Out: 0: -&gt; 0
 
Out: 1: -&gt; 1
 
Out: 2: -&gt; 2
 
Out: 3: -&gt; 3
 
Out: 4: -&gt; 4
 
Out: 5: -&gt; 5^C
 
<span id="pwm的测试方法-1"></span>
=== PWM的测试方法 ===
 
# 由下表可知,Orange Pi 5 Plus可用的PWM有pwm0、pwm1、pwm11、pwm12、pwm13和pwm14共六路pwm
 
[[File:media/8fdc5f37f284d983dd9764c23147b156.png]]
 
# PWM在40pin中对应的引脚如下表所示。PWM0_M0和PWM0_M2、PWM1_M0和PWM1_M2、PWM14_M0和PWM14_M2同一时间只能使用其中一个,不能同时使用,它们都是同一个PWM,只是接到不同的引脚上去了而已,请不要以为它们是两个不同的PWM总线。
 
{| class="wikitable"
|-
! '''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'''后面即可。
 
{| class="wikitable"
|-
! '''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'''命令的输出,如下所示:
 
<div class="figure">
 
[[File:media/bf2f03059581cd7b44ed71420eb108a3.png|1010iring_001]]
 
</div>
# 然后由下表可知,pwm14寄存器的基地址为febf0020,再看 '''ls /sys/class/pwm/ -l'''命令的输出,可以看到pwmchip2中链接到了febf0020.pwm,所以pwm14对应pwmchip为pwmchip2
 
[[File:media/5568f427fcfae71affcaec24f095bc8f.png]]
 
# 然后使用下面的命令可以让pwm14输出一个50Hz的方波(请先切换到root用户,再执行下面的命令)
 
[root@orangepi ~]# '''echo 0 &gt; /sys/class/pwm/pwmchip2/export'''
 
[root@orangepi ~]# '''echo 20000000 &gt; /sys/class/pwm/pwmchip2/pwm0/period'''
 
[root@orangepi ~]# '''echo 1000000 &gt; /sys/class/pwm/pwmchip2/pwm0/duty_cycle'''
 
[root@orangepi ~]# '''echo 1 &gt; /sys/class/pwm/pwmchip2/pwm0/enable'''
 
[[File:media/760cbbfdec658238d181990e96c701e5.png]]
 
# 上面演示的pwm14的测试方法,其他pwm测试方法都是类似的。
 
<span id="can的测试方法-1"></span>
=== CAN的测试方法 ===
 
<span id="打开can的方法-1"></span>
==== 打开CAN的方法 ====
 
# 由下表可知,Orange Pi 5 Plus可用的CAN总线为CAN0和CAN1共两组CAN总线
 
[[File:media/82a02063f1eb8c2e1d9e153272a92f20.png]]
 
# 在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'''后面即可。
 
{| class="wikitable"
|-
! '''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&lt;NOARP&gt; 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&lt;NOARP&gt; 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对应的引脚为
 
{| class="wikitable"
|-
!
! '''CAN0'''
! '''CAN1'''
|-
| '''TX引脚'''
| '''对应40pin的5号引脚'''
| '''对应40pin的18号引脚'''
|-
| '''RX引脚'''
| '''对应40pin的3号引脚'''
| '''对应40pin的16号引脚'''
|}
 
# 使用CANalyst-II分析仪测试CAN收发消息的方法请参考下[[#使用canalyst-ii分析仪测试收发消息|'''使用CANalyst-II分析仪测试收发消息''']]一小节的内容。
 
<span id="linux-sdkorangepi-build使用说明"></span>
= Linux SDK——orangepi-build使用说明 =
 
== 编译系统需求 ==
 
'''我们可以在x64的电脑中交叉编译开发板的Linux镜像,也可以在开发板的Ubuntu22.04系统中来编译开发板的Linux镜像,请根据自己的喜好二选一。'''
 
'''如果是在开发板的Ubuntu22.04系统中使用orangepi-build来编译Linux镜像,请做好散热(尤其是SSD启动时)。如果散热没做好,容易出现文件系统跑飞的错误。'''
 
<span id="使用开发板的ubuntu22.04系统编译"></span>
=== 使用开发板的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下载代码,这点是非常重要的。'''
 
<span id="使用x64的ubuntu22.04电脑编译"></span>
=== 使用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/ '''https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/''']
 
# 注意Ubuntu版本需要切换到22.04
 
[[File:media/af36ed1ff61d6969222b9210e32cf19e.png]]
 
# 需要替换的'''/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下载代码,这点是非常重要的。'''
 
<span id="获取linux-sdk的源码"></span>
== 获取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 '''https://github.com/orangepi-xunlong/orangepi-build.git'''] '''-b next'''
 
'''注意,Orange Pi 5 Plus开发板是需要下载orangepi-build的next分支源码的,上面的git clone命令需要指定orangepi-build源码的分支为next。'''
 
[[File:media/aabf06c8932853488301498db3f035ff.png]]
 
'''通过git clone命令下载orangepi-build的代码是不需要输入github账号的用户名和密码的(下载本手册中的其他代码也是一样的),如果如输入git clone命令后Ubuntu PC提示需要输入github账号的用户名和密码,一般都是git clone后面的orangepi-build仓库的地址输入错误了,请仔细检查命令拼写是否有错误,而不是以为我们这里忘了提供github账号的用户名和密码。'''
 
# 开发板当前使用的u-boot和linux内核版本如下所示
 
{| class="wikitable"
|-
! '''分支'''
! '''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许可证文件
## [https://github.com/orangepi-xunlong/orangepi-build/blob/main/README.md '''README.md''']: orangepi-build说明文件
## '''scripts''': 编译linux镜像的通用脚本
 
test@test:~/orangepi-build$ '''ls'''
 
'''build.sh external LICENSE''' [https://github.com/orangepi-xunlong/orangepi-build/blob/main/README.md '''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'''中的交叉编译工具链是否都存在,如果不存在则会重新开始下载,如果存在则直接使用,不会重复下载。
 
<div class="figure">
 
[[File:media/418d734df99889b5b246be3785d8caff.png|选区_396]]
 
</div>
# 交叉编译工具链在中国境内的镜像网址为清华大学的开源软件镜像站
 
[https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain/ **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'''https://github.com/orangepi-xunlong/u-boot-orangepi/tree/v2018.05-sun50iw9
 
# 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许可证文件
## [https://github.com/orangepi-xunlong/orangepi-build/blob/main/README.md '''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''' [https://github.com/orangepi-xunlong/orangepi-build/blob/main/README.md '''README.md'''] '''scripts toolchains u-boot userpatches'''
 
== 编译u-boot ==
 
# 运行build.sh脚本,记得加sudo权限
 
test@test:~/orangepi-build$ '''sudo ./build.sh'''
 
# 选择'''U-boot package''',然后回车
 
<div class="figure">
 
[[File:media/ebc7be40f50066904a76ec069a42fc76.png|选区_238]]
 
</div>
# 接着选择开发板的型号
 
<div class="figure">
 
[[File:media/091d12c274458a3115e7fc3ccdb8a876.png|6]]
 
</div>
# 然后就会开始编译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
 
<ol style="list-style-type: decimal;">
<li><p>orangepi-bulid编译系统编译u-boot源码时首先会将u-boot的源码和github服务器的u-boot源码进行同步,所以如果想修改u-boot的源码,首先需要关闭源码的下载更新功能('''需要完整编译过一次u-boot后才能关闭这个功能,否则会提示找不到u-boot的源码,如果是从百度云盘下载的源码压缩包,则没有这个问题,因为u-boot的源码都已缓存好了'''),否则所作的修改都会被还原,方法如下:</p>
<p>设置userpatches/config-default.conf中的IGNORE_UPDATES变量为“yes”</p></li></ol>
 
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''' [mailto:root@192.168.1.xxx:/root '''root@192.168.1.xxx:/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
 
[[File:media/36ca62a5d0c2805f74bbdc4d87a6b5de.png]]
 
# 按下回车键后首先会弹出一个Warring
 
[[File:media/42e83427a578ef9c8cdd2087d8cb4438.png]]
 
# 再按下回车键就会开始更新u-boot,更新完后会显示下面的信息
 
[[File:media/3c9b554088c0ee1aa97e16ceba2b1821.png]]
 
# 然后就可以重启开发板来测试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''',然后回车
 
<div class="figure">
 
[[File:media/d9524b948a8a40faa69f861c0f607e8c.png|选区_240]]
 
</div>
# 接着选择开发板的型号
 
<div class="figure">
 
[[File:media/091d12c274458a3115e7fc3ccdb8a876.png|6]]
 
</div>
# 然后会提示是否需要显示内核配置界面,如果不需要修改内核配置,则选择第一个即可,如果需要修改内核配置,则选择第二个
 
[[File:media/13de5b82b02324db37bdd59c9a1e0496.png]]
 
# 如果第4) 步选择了需要显示内核配置菜单(第二个选项),则会弹出通过'''make menuconfig'''打开的内核配置的界面,此时可以直接修改内核的配置,修改完后再保存退出即可,退出后会开始编译内核源码
 
[[File:media/7b0f9634a1d4e759d1a9cbabd3a12ab7.png]]
 
# 如果不需要修改内核的配置选项,在运行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脚本
 
[[File:media/709be9550dd414884f485dd0926b8fd2.png]]
 
# 编译内核源码时提示的部分信息说明如下
## 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
 
<ol style="list-style-type: decimal;">
<li><p>orangepi-bulid编译系统编译linux内核源码时首先会将linux内核源码和github服务器的linux内核源码进行同步,所以如果想修改linux内核的源码,首先需要关闭源码的更新功能('''需要完整编译过一次linux内核源码后才能关闭这个功能,否则会提示找不到linux内核的源码,如果是从百度云盘下载的源码压缩包,则没有这个问题,因为linux的源码都已缓存好了'''),否则所作的修改都会被还原,方法如下:</p>
<p>设置'''userpatches/config-default.conf'''中的IGNORE_UPDATES变量为“yes”</p></li></ol>
 
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 root@192.168.1.xxx:/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''',然后回车
 
<div class="figure">
 
[[File:media/44dd4e9c1ae812a54a24435dbb9e3c32.png|选区_241]]
 
</div>
# 接着选择开发板的型号
 
<div class="figure">
 
[[File:media/091d12c274458a3115e7fc3ccdb8a876.png|6]]
 
</div>
# 然后选择rootfs的类型(目前主要维护'''bullseye/focal/jammy''')
 
<div class="figure">
 
[[File:media/b15d6eb4167601e117929ec0fb59e3e4.png|7]]
 
</div>
# 然后选择镜像的类型
## '''Image with console interface (server)'''表示服务器版的镜像,体积比较小
## '''Image with desktop environment'''表示带桌面的镜像,体积比较大
 
<div class="figure">
 
[[File:media/a2e52901b20dfe1dc4a7de33509d3e77.png|选区_245]]
 
</div>
# 如果是编译服务器版的镜像,还可以选择编译Standard版本或者Minimal版本,Minimal版本预装的软件会比Standard版本少很多('''没特殊需求请不要选择Minimal版本,因为很多东西默认没有预装,部分功能可能用不了''')
 
<div class="figure">
 
[[File:media/9b3ee283db216aaf4fcd8da291ac3a1d.png|选区_397]]
 
</div>
# 如果是编译桌面版本的镜像还需要选择桌面环境的类型,目前Ubuntu Jammy主要维护XFCE和Gnome两种桌面,Ubuntu Focal只维护XFCE桌面,Debian Bullseye主要维护XFCE和KDE桌面
 
<div class="figure">
 
[[File:media/317b9174fd81afab131ef81abc4b6a20.png|Selection_001]]
 
</div>
[[File:media/90e2fe97b6c0373f4c6d8f32a6a42b1c.png]]
 
然后可以选择需要安装的额外的软件包。这里请按下回车键直接跳过。
 
[[File:media/569734379af7b12946573c390b25f0bb.png]]
 
# 然后就会开始编译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''',然后回车
 
<div class="figure">
 
[[File:media/51caa58095b81646dd540f2da05d46c6.png|选区_242]]
 
</div>
# 然后选择开发板的型号
 
<div class="figure">
 
[[File:media/091d12c274458a3115e7fc3ccdb8a876.png|6]]
 
</div>
# 然后选择rootfs的类型(目前主要维护'''bullseye/focal/jammy''')
 
<div class="figure">
 
[[File:media/b15d6eb4167601e117929ec0fb59e3e4.png|7]]
 
</div>
# 然后选择镜像的类型
## '''Image with console interface (server)'''表示服务器版的镜像,体积比较小
## '''Image with desktop environment'''表示带桌面的镜像,体积比较大
 
<div class="figure">
 
[[File:media/a2e52901b20dfe1dc4a7de33509d3e77.png|选区_245]]
 
</div>
# 如果是编译服务器版的镜像,还可以选择编译Standard版本或者Minimal版本,Minimal版本预装的软件会比Standard版本少很多('''没特殊需求请不要选择Minimal版本,因为很多东西默认没有预装,部分功能可能用不了''')
 
<div class="figure">
 
[[File:media/9b3ee283db216aaf4fcd8da291ac3a1d.png|选区_397]]
 
</div>
# 如果是编译桌面版本的镜像还需要选择桌面环境的类型,目前Ubuntu Jammy主要维护XFCE和Gnome两种桌面,Ubuntu Focal只维护XFCE桌面,Debian Bullseye主要维护XFCE和KDE桌面
 
<div class="figure">
 
[[File:media/317b9174fd81afab131ef81abc4b6a20.png|Selection_001]]
 
</div>
[[File:media/90e2fe97b6c0373f4c6d8f32a6a42b1c.png]]
 
然后可以选择需要安装的额外的软件包。这里请按下回车键直接跳过。
 
[[File:media/569734379af7b12946573c390b25f0bb.png]]
 
# 然后就会开始编译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''' ]
 
<span id="linux开发手册"></span>
= Linux开发手册 =
 
== 在开发板的linux系统中单独编译内核源码的方法 ==
 
# 首先下载开发板的Linux内核源码
 
'''orangepi@orangepi:~$ git clone –depth=1 -b orange-pi-5.10-rk3588 https://github.com/orangepi-xunlong/linux-orangepi'''
 
'''如果从github下载代码有问题,可以去开发板的'''[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''官方工具''']'''中下载内核源码压缩包,然后上传到开发板的linux系统中,再解压即可。'''
 
[[File:media/4714bf473e3f8aa6be8f5347ae47e7ca.png]] [[File:media/06c318baf4b0d2adc2f3c2c2c276e901.png]]
 
'''解压内核源码压缩包的命令为:'''
 
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+'''
 
<span id="openwrt系统使用说明"></span>
= OpenWRT系统使用说明 =
 
<span id="openwrt版本"></span>
== OpenWRT版本 ==
 
{| class="wikitable"
|-
! '''OpenWRT版本'''
! '''内核版本'''
|-
| '''v22.03.4'''
| '''Linux5.10.110'''
|}
 
<span id="openwrt适配情况"></span>
== OpenWRT适配情况 ==
 
{| class="wikitable"
|-
! '''功能'''
! '''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/root 14.8G 14.7G 91.6M 99% /'''
 
tmpfs 495.5M 6.1M 489.4M 1% /tmp
 
tmpfs 512.0K 0 512.0K 0% /dev
 
/dev/root 14.8G 14.7G 91.6M 99% /opt/docker
 
== 登录系统的方法 ==
 
=== 通过串口登录 ===
 
# 首先调试串口的使用可以参考[[#_调试串口的使用方法|'''调试串口的使用方法''']]章节
# OpenWrt系统默认会以 '''root''' 用户自动登录,显示界面如下
 
<div class="figure">
 
[[File:media/3c950996a00de820cada27b731fcf511.png|9D229F96-887B-4c6b-8E6E-681C9994DFA0]]
 
</div>
<span id="通过ssh登录系统"></span>
=== 通过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 root@192.168.2.1'''
 
# 成功登录系统后的显示如下图所示
 
[[File:media/501969f5fe148e84a99e7c383f5fb48a.png]]
 
# 如果电脑装的Windows系统,可以参考[[#_Windows下SSH远程登录开发板|'''Windows下SSH远程登录开发板''']]一小节介绍的方法进行登录。
 
<span id="登录luci管理界面"></span>
=== 登录LuCI管理界面 ===
 
'''请注意,OpenWRT系统默认将靠近Type-C电源接口的网口配置成WAN口功能,靠近HDMI接口的网口配置为LAN口功能。'''
 
[[File:media/2e0182e2f12394f75fbd5123d5e38656.png]]
 
# 首先用网线连接板子的LAN口到电脑的网口,以便电脑的网口能通过DHCP获取到IP地址
# 默认板子的LAN口IP是设置为'''192.168.2.1'''的,所以此时电脑可以获取到以'''192.168.2'''开头的IP地址
# 在电脑上的浏览器中输入IP地址'''192.168.2.1'''就可以登录LuCI界面了
 
<div class="figure">
 
[[File:media/b891e8fe0657893c1b1acc0763a53f99.png|2023-04-21 14-41-42 的屏幕截图]]
 
</div>
# '''OpenWrt系统默认是没有设置密码的''',所以直接点击'''登录'''按钮即可,登录成功后界面显示如下图所示
 
[[File:media/b324851eb44c53562c374f6ca4303597.png]]
 
<span id="通过luci管理界面登录终端"></span>
=== 通过LuCI管理界面登录终端 ===
 
'''请注意,OpenWRT系统默认将靠近Type-C电源接口的网口配置成WAN口功能,靠近HDMI接口的网口配置为LAN口功能。'''
 
[[File:media/2e0182e2f12394f75fbd5123d5e38656.png]]
 
# 首先用网线连接板子的LAN口到电脑的网口,以便电脑的网口能通过DHCP获取到IP地址
# 默认板子的LAN口IP是设置为'''192.168.2.1'''的,所以此时电脑可以获取到以'''192.168.2'''开头的IP地址
# 在电脑上的浏览器中输入IP地址'''192.168.2.1'''就可以登录LuCI界面了
 
<div class="figure">
 
[[File:media/b891e8fe0657893c1b1acc0763a53f99.png|2023-04-21 14-41-42 的屏幕截图]]
 
</div>
# 在导航栏的'''“服务”'''一栏中选择'''“终端”'''并点击进入
 
[[File:media/abd056a20c6f8fad78bdbb888099af55.png]]
 
# 此时终端界面如下图所示
 
[[File:media/bc0bd809dd49abd3b42d733d947d7c59.png]]
 
# 输入用户名root即可登录
 
[[File:media/5d92b7d6b81032ae15f68b82e97e3869.png]]
 
<span id="使用ip地址端口号方式登录终端"></span>
=== 使用IP地址+端口号方式登录终端 ===
 
'''请注意,OpenWRT系统默认将靠近Type-C电源接口的网口配置成WAN口功能,靠近HDMI接口的网口配置为LAN口功能。'''
 
[[File:media/2e0182e2f12394f75fbd5123d5e38656.png]]
 
# 首先用网线连接板子的LAN口到电脑的网口,以便电脑的网口能通过DHCP获取到IP地址
# 默认板子的LAN口IP是设置为'''192.168.2.1'''的,所以此时电脑可以获取到以'''192.168.2'''开头的IP地址
# 然后在浏览器输入[http://192.168.2.1:7681/ '''192.168.2.1:7681''']即可登录OpenWRT的终端
 
<div class="figure">
 
[[File:media/313ef9c425f85ecb72d5ffe976fd1c4e.png|2023-04-21 14-54-26 的屏幕截图]]
 
</div>
<span id="通过命令行修改lan口ip地址的方法"></span>
== 通过命令行修改LAN口IP地址的方法 ==
 
# 在OpenWrt系统中,提供了一个命令行工具uci,它可以很方便地对配置文件中的内容进行修改、添加、删除和读取,详细说明请参考[https://openwrt.org/docs/guide-user/base-system/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的使用说明请参考[https://openwrt.org/docs/guide-developer/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'''
 
<span id="通过luci管理界面修改"></span>
=== 通过LuCI管理界面修改 ===
 
# 首先参考[[#_登录LuCI管理界面|'''登录LuCI管理界面''']]进入OpenWRT的管理界面
# 然后按照下面的步骤修改密码
## 在导航栏中找到“'''系统'''”选项并点击
## 在系统下方的竖栏选项中,选择“'''管理权'''”并点击
 
[[File:media/9cd128ee0565628bcf3b39c7d5d85dd2.png]]
 
# 在Tab页中选择“'''路由器密码'''”选项
 
[[File:media/070cd83dea99faae698fefa6b158fa5e.png]]
 
# 修改并保存路由器密码
## 在“'''密码'''”和“'''确认密码'''”的对话框中输入自己设定的密码(如果不确定密码是否输入正确,可点击对话框后面的“'''*'''”图标以显示输入字符)
## 点击“'''保存'''”即可保存新修改的密码
 
[[File:media/cb71edd7aa3298cb164fe852b5e0c1fb.png]]
 
'''注:在“密码”和“确认密码”的对话框中,需要两次输入的密码保持一致。'''
 
# 密码修改成功之后,会弹出“'''系统密码已更改成功'''”的弹框,此时登录OpenWRT就需要密码才能登录
 
[[File:media/25921a42d2d20921ec2afbd41f0df924.png]]
 
<span id="usb接口测试-1"></span>
== USB接口测试 ==
 
<span id="在命令行下挂载usb存储设备"></span>
=== 在命令行下挂载USB存储设备 ===
 
# 首先将U盘插入Orange Pi开发板的USB接口中
# 执行下面的命令如果能看到sdX的输出说明U盘识别成功
 
root@OpenWrt:~# '''cat /proc/partitions | grep “sd*”'''
 
major minor #blocks name
 
8 0 15126528 '''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/sda 14.4G 187.2M 14.2G 1% /mnt
 
<span id="在luci管理界面挂载usb存储设备"></span>
=== 在LuCI管理界面挂载USB存储设备 ===
 
# 首先将U盘(或者其它存储设备)通过USB2.0连接到开发板
# 然后按照[[#_登录LuCI管理界面|'''登录LuCI管理界面''']]进入LuCI管理界面
# 然后在LuCI管理界面中,点击“系统-&gt;挂载点”进入挂载点的配置界面
 
[[File:media/6ac5a046d2b83ea2b994f64710547250.png]]
 
# 然后按照下面的步骤新增一个挂载点
## 在挂载点'''全局设置界面'''下方找到“'''挂载点'''”
## 在'''挂载点'''下方,选择“添加”按钮并点击进入
 
[[File:media/6ee694ba15dc91498182539065d58487.png]]
 
# 接着会弹出下面的弹窗界面
 
[[File:media/e2b64781781704faf7957287f49d766a.png]]
 
# 然后就可以开始挂载存储设备
## 勾选“'''已启用'''”
### 在常规设置UUID一栏中选择实际接入的设备/dev/sda(根据自己的设备选择)
### 在挂载点一栏中选择“'''自定义'''”,并填入要挂载到的目标目录,这里以'''/mnt'''目录为例,填好后'''回车'''确认
### 然后点击右下角的“'''保存'''”按钮
 
[[File:media/db8c63309f855d52e9b360b9b0877feb.png]]
 
# 然后会回到挂载点全局设置页面,在页面的左下角点击“'''保存并应用'''”使挂载点生效
 
[[File:media/6c80b8e1117daa84b3de6606d0633b6d.png]]
 
# 保存完后可以看到“'''已挂载的文件系统'''”中,该存储设备已经挂载成功
 
[[File:media/30b9c25f6eef9a90eb1564df94af7ec6.png]]
 
<span id="m.2-e-key-pcie无线网卡的使用方法"></span>
== M.2 E-Key PCIe无线网卡的使用方法 ==
 
# 目前OpenWRT镜像镜像目前适配的PCIe无线网卡型号如下所示:
 
{| class="wikitable"
|-
! '''序号'''
! '''型号'''
! '''实物图片'''
! '''已支持的OS'''
|-
| '''1'''
| '''AX200''' '''(PCIE+USB接口)'''
| '''[[File:media/82893e51bf9b88e7de55f1851d3258fa.png]]'''
| '''Debian''' '''Ubuntu''' '''OpenWRT''' '''OPi OS Arch'''
|-
| '''2'''
| '''AX210''' '''(PCIE+USB接口)'''
| '''[[File:media/0780dbc2efb3d2d207de783b499d324f.png]]'''
| '''Debian''' '''Ubuntu''' '''OpenWRT''' '''OPi OS Arch'''
|-
| '''3'''
| '''RTL8852BE''' '''(PCIE+USB接口)'''
| '''[[File:media/3107bc4a7d847ec89a39d0fa01dae5be.png]]'''
| '''Debian''' '''Ubuntu''' '''不支持OpenWRT''' '''Android12''' '''OPi OS Arch''' '''OPi OS Droid'''
|}
 
<span id="创建wifi热点的方法"></span>
=== 创建WIFI热点的方法 ===
 
'''注意AX200和AX210目前仅支持2.4G频段热点,5G频段模式下会出现无线网卡修改配置后无法应用的错误。'''
 
# 首先将PCIe无线网卡插入开发板的M.2 E-KEY端口,然后接上Type-C电源给开发板上电。
 
[[File:media/334d2f48d289177d8cf379f8c6b7cb4f.png]]
 
# 系统启动完成,点击 '''网络 -&gt; 无线''' 进入无线WiFi配置界面。
 
[[File:media/ff90ab1ed4d8477835c9269c4419e214.png]]
 
# OpenWRT系统默认的无线配置是'''Master''' 模式,这里为了方便接下来的操作,我们将默认的无线连接移除。
 
[[File:media/c75f19f89252aa1fa93d0292c320289d.png]]
 
# 然后点击页面的右下角 '''保存''' 让配置生效。
 
[[File:media/eb567315f333b150b77fbb35a44a7a3f.png]]
 
# 然后点击右侧的 '''添加''' 按钮。
 
[[File:media/84cfa5e24d8ba32834fb43e9459f07f1.png]]
 
# 在弹出标签页 '''设备配置''' 中,我们设置参数如下图所示。
 
[[File:media/881679489d254cf69ebbb46bad829020.png]]
 
# 然后在 '''接口配置 -&gt; 常规设置''' 中,将模式设置成 '''接入点AP''' ,'''ESSID'''(无线网络名称)设置为'''OpenWrt''' ,网络指定为 '''lan'''
 
[[File:media/ce31d073ed52dcde68aac183da25157d.png]]
 
# 然后在 '''接口配置 -&gt; 无线安全''' 中,加密算法选择 '''WPA2-PSK''' ;密钥(无线密码)设置为 '''password'''
 
[[File:media/b78bd6ef350252c4257752f52b7562ff.png]]
 
# 以上设置完成后,点击页面右下角 '''保存''',之后会退出标签页
 
[[File:media/2e2ff18e95f8210c44ce0eae117b96f6.png]]
 
# 然后点击页面右下角 '''保存并应用''' 等待配置被应用完成。
 
[[File:media/d1bb6ba680d1bbc5f16cc1bfc15b4775.png]]
 
# 成功创建热点的显示界面如下图所示
 
[[File:media/1e00229866b4ff17f014f778c24cc050.png]]
 
# 然后使用手机或电脑搜索对应SSID的WiFi进行连接,连接成功后如下图所示
 
[[File:media/f9f49d687ea76fc67b7ffc4e4c999c92.png]]
 
<span id="连接wifi热点的方法"></span>
=== 连接WIFI热点的方法 ===
 
# 将PCIe无线网卡插入开发板的M.2 E-KEY端口,然后接上Type-C电源给开发板上电。
 
[[File:media/334d2f48d289177d8cf379f8c6b7cb4f.png]]
 
# 系统启动完成后,点击 '''网络 -&gt; 无线''' 进入配置无线WiFi界面。
 
[[File:media/ff90ab1ed4d8477835c9269c4419e214.png]]
 
# OpenWRT系统默认的无线配置是'''Master''' 模式,这里为了方便接下来的操作,我们将默认的无线连接移除。
 
[[File:media/c75f19f89252aa1fa93d0292c320289d.png]]
 
# 然后点击页面的右下角 '''保存''' 让配置生效。
 
[[File:media/eb567315f333b150b77fbb35a44a7a3f.png]]
 
# 然后点击 '''扫描''' 按钮扫描周围的WiFi热点。
 
[[File:media/6212f6a7ab63aecde1f975bf115f9c4d.png]]
 
# 然后会弹出下面的窗口显示可用的WiFi热点,这时点击想要连接的WiFi热点右边的 '''加入网络''' 按钮来连接WiFi热点。
 
[[File:media/104f9dfab0d158986c256bb78d4f7634.png]]
 
# 然后会弹出一个连接WiFi热点的界面,我们在下图所示的位置输入热点的密码,再点击 '''提交''' 按钮。
 
[[File:media/85bed3064dad2d195ef279b0967b919f.png]]
 
# 然后会弹出下面的界面,点击右下角的 '''保存''' 按钮即可。
 
[[File:media/2e695a92e4e9f379ecbf387dc1829e3d.png]]
 
# 最后会回到无线配置的主界面,点击 '''保存并应用''' 等待配置被应用完成。
 
[[File:media/b2603b64c17b9ede409813aba19af83d.png]]
 
# 成功连接到WiFi热点后,界面显示如下图所示。
 
[[File:media/2e2c81638039ae9914dc8a75f874f8f1.png]]
 
== 通过命令行安装软件包 ==
 
=== 在终端通过opkg安装 ===
 
# 更新可获取的软件包列表
 
root@OpenWrt:/# '''opkg update'''
 
# 获取软件列表
 
root@OpenWrt:/# '''opkg list'''
 
# 安装指定的软件包
 
root@OpenWrt:/# '''opkg install &lt;包名称&gt;'''
 
# 查看已经安装的软件
 
root@OpenWrt:/# '''opkg list-installed'''
 
# 卸载软件
 
root@OpenWrt:/# '''opkg remove &lt;包名称&gt;'''
 
<span id="openwrt管理界面安装软件包"></span>
== OpenWRT管理界面安装软件包 ==
 
'''若需要新增软件包,可通过OpenWRT的管理界面进行安装。'''
 
=== 查看系统可用软件包列表 ===
 
# 首先进入软件包管理页面
## 在导航栏中找到“'''系统'''”选项并点击进入
## 在系统下方的竖栏选项中,选择“'''软件包'''”并点击进入
 
[[File:media/121d3863f6bb8336c65996568281627f.png]]
 
# 然后会出现软件包的主页面,如下图所示,获取可用的软件列表
## 在软件包的“'''操作'''”选项中,点击“'''更新列表'''”,获取可用的软件包列表
## 在Tab页中,点击“'''可用'''”,查看当前可用软件包
## 查看当前可用软件包的数量
 
[[File:media/482ce3de669cda23a95f9a4d688afef2.png]]
 
=== 安装软件包示例 ===
 
# 以安装软件包“'''luci-app-acl'''”为例
## 在OpenWRT的软件包管理界面下,点击筛选器的对话框并输入“'''luci-app-acl'''”
## 在软件包的列表中可以看到“'''luci-app-acl'''”软件包的版本、软件包大小以及描述信息,然后点击“'''安装'''”按钮
 
[[File:media/7f38c114c478fde451710ce7be19a7c7.png]]
 
# 然后会出现以下弹窗,点击“'''安装'''”即可
 
[[File:media/390c70f341df8884abe858036a4ab1cd.png]]
 
# 然后等待安装完成
 
[[File:media/4d60a8b3a706536096fa7eff0585ec5b.png]]
 
# 安装完成的显示如下
 
[[File:media/f57ba02f479e948467d83fc447bda0b9.png]]
 
# 查看软件包是否安装成功
## 在OpenWRT的软件包管理界面下,点击筛选器的对话框并输入“'''luci-app-acl'''”
## 在Tab页选择点击“'''可用'''”
## 在软件包列表中会显示“'''luci-app-acl'''”软件包,并更新状态为“'''已安装'''”
 
[[File:media/3ec9e66658cd997f8e956775703ed4d0.png]]
 
=== 移除软件包示例 ===
 
# 以移除软件包“'''luci-app-acl'''”为例
## 在OpenWRT的软件包管理界面下,点击筛选器的对话框并输入“'''luci-app-acl'''”
## 在Tab页中选择“'''已安装'''”,显示已安装的软件包列表
## 点击右边的“'''移除'''”,即可移除相应的软件包
 
[[File:media/92cfba8e95df79ea67b88df34d652b72.png]]
 
# 然后会显示下面弹窗,点击“'''移除'''”即可
 
[[File:media/8ffef3e52a4838faa364425e1da0bdc9.png]]
 
# 移除成功后,显示界面如下
 
[[File:media/770c54a13c3a8a021ef7c95a3c6d2a89.png]]
 
# 查看软件包是否移除成功
## 在OpenWRT的软件包管理界面下,点击筛选器的对话框并输入“'''luci-app-acl'''”
## 在Tab页选择点击“'''已安装'''”
## 在软件包列表中不会显示“'''luci-app-acl'''”软件包,此时“'''luci-app-acl'''”软件包已移除成功
 
[[File:media/e4a2c088af2f5fd4a71768cdf46d8a47.png]]
 
<span id="使用samba网络共享"></span>
== 使用Samba网络共享 ==
 
'''OpenWRT局域网文件共享实现主要有两个软件选择,Samba和NFS。Samba系统兼容性较好,NFS则性能表现占优。对于需要使用Windows设备的用户来说,建议选择Samba。'''
 
# 进入Samba网络共享的管理页面
## 在导航栏中找到“'''服务'''”选项并点击进入
## 在服务下方的竖栏选项中,选择“'''网络共享'''”并点击进入
 
[[File:media/32712d37c0aec1305e5dada9e3d5bcaa.png]]
 
# 选择Samba服务需要监听的接口
## 在网络共享的导航栏中选择“'''常规设置'''”并点击进入
## 接口根据实际需求指定,如果想通过“wan口”访问,则设置为“'''wan'''”
 
[[File:media/8459ea95613a904936ff29d4b8e6f2f9.png]]
 
# 设置网络共享的共享目录
## 在网络共享的“'''常规设置'''”的“'''共享目录'''”总点击“'''新增'''”共享目录地址
## 在名称下面输入共享文件夹的名称为“'''mmt'''”
## 在共享目录的路径下,选择设置共享的目录位置“'''/mnt'''”
## 勾选“'''可浏览'''”和“'''运行匿名用户'''”
## 点击“'''保存并应用'''”,保存配置
 
[[File:media/6bffd172dd1bbd327986e4bd922d7746.png]]
 
# window10启动网络发现与共享
 
'''注:在windows10系统下访问Samba,共享需要先确认window10是否已经启动网络发现与共享,如未启动,先进行如下设置。'''
 
# 启用Samba v1/v2的访问
## 进入windows10的“控制面板”
### 在控制面板的左侧导航栏点击“程序”
### 在程序和功能中选择“启用或关闭Windows功能”
### 在启用或关闭Windows功能的弹框中勾选“SMB 1.0/CIFS文件共享支持”
### 点击“确定”,配置应用
 
[[File:media/835c7d238c6112ca319056c2b0778955.png]]
 
# 打开Windows10的网络发现
## 进入windows10的“控制面板”
### 在控制面板中选择“网络和Internet”
### 然后打开“网络和共享中心”
### 点击|“高级共享设置”
### 打开“'''启用网络发现'''”和“'''启用文件和打印机共享'''”
### 点击“保存更改”,保存Windows10的网络发现配置
 
[[File:media/8522a581591f8df9573837a437b97d1c.png]]
 
# 设置完成后,在资源管理器的地址栏输入\\OpenWrt即可访问共享目录,用户名为root,密码为开发板主机设定的密码
 
[[File:media/8b7d10daefdd5a6634d712add351d04f.png]]
 
== zerotier使用说明 ==
 
'''OpenWRT系统已经预装了zerotier客户端,在zerotier官网创建虚拟局域网后,在客户端可以通过Network ID直接加入其中,具体操作如下文所示。'''
 
# 登录zerotier官网[https://my.zerotier.com/network '''https://my.zerotier.com/network'''],注册登录后点击Network-&gt;Create A Network,创建一个虚拟局域网
 
[[File:media/9afaea623a8e322bc7a620992b543713.png]]
 
[[File:media/6b98b7322b4de542df33cadcf82d2ca3.png]]
 
# 点击进入网络控制台页面,可以把隐私选项设置为公共,这样加入的网络节点就不需要验证
 
[[File:media/364ed0fad8fb945056995f92cc27a7d4.png]]
 
# 下面自动分配地址这里可以自己选择网段,此处选择的是172.27.*.*
 
[[File:media/bc7c343083d0f6cdad3f4f7b3a26f38b.png]]
 
# 在OpenWRT终端输入下面命令就可以加入到上面创建的虚拟局域网,'''其中8286ac0e47d53bb5是上面创建的虚拟局域网的Network ID'''
 
root@OpenWrt:/# '''zerotier-one -d''' #启动zerotier客户端
 
root@OpenWrt:/# '''zerotier-cli join 8286ac0e47d53bb5''' #加入网络
 
# 在终端输入ifconfig可以看到已经有个新增的'''ztks54inm2'''设备,IP地址为'''172.27.214.213'''
 
root@OpenWrt:/# '''ifconfig'''
 
'''ztks54inm2''' Link encap:Ethernet HWaddr F6:4E:DE:BF:D8:52
 
inet addr:'''172.27.214.213''' Bcast:172.27.255.255 Mask:255.255.0.0
 
inet6 addr: fe80::e82f:d0ff:fe5a:867e/64 Scope:Link
 
UP BROADCAST RUNNING MULTICAST MTU:2800 Metric:1
 
RX packets:18 errors:0 dropped:0 overruns:0 frame:0
 
TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
 
collisions:0 txqueuelen:1000
 
RX bytes:1720 (1.6 KiB) TX byte81 (8.2 KiB)
 
# 在另一台设备上安装zerotier客户端(此处以Ubuntu18.04为例),执行下面命令进行安装,安装完成后需要重启电脑
 
test@ubuntu:~$ '''curl -s https://install.zerotier.com | sudo bash'''
 
# 重启后根据Network ID加入虚拟局域网,也可以看到已经获取到zerotier分配的ip地址,此时该Ubuntu PC和OrangePi R1 Plus LTS处于同一局域网中,两者可以自由通信
 
test@ubuntu:~$ '''sudo zerotier-cli join 8286ac0e47d53bb5'''
 
test@ubuntu:~$ '''ifconfig'''
 
'''ztks54inm2''': flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt; 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&lt;link&gt;
 
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”
 
<span id="openwrt源码的编译方法"></span>
= OpenWRT源码的编译方法 =
 
<span id="下载openwrt源码"></span>
== 下载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 '''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
 
<span id="编译openwrt源码"></span>
== 编译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
 
<span id="android-12系统的使用说明"></span>
= Android 12系统的使用说明 =
 
<span id="已支持的android版本"></span>
== 已支持的Android版本 ==
 
{| class="wikitable"
|-
! '''Android版本'''
! '''内核版本'''
|-
| '''Android 12'''
| '''Linux5.10'''
|-
| '''Android 12 Box'''
| '''Linux5.10'''
|}
 
<span id="android功能适配情况"></span>
== Android功能适配情况 ==
 
{| class="wikitable"
|-
! '''功能'''
! '''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'''
|}
 
<span id="usb无线网卡的使用方法"></span>
== USB无线网卡的使用方法 ==
 
# 目前Android镜像适配的USB无线网卡型号如下所示:
 
{| class="wikitable"
|-
! '''芯片型号'''
! '''功能'''
! '''VID&amp;PID'''
! '''适配情况'''
|-
| '''RTL8723BU'''
| '''2.4G WIFI+BT4.0'''
| '''0bda:b720'''
| '''支持WIFI和蓝牙功能,不支持开热点'''
|-
| '''RTL8811CU'''
| '''2.4G +5G WIFI'''
| '''0bda:c811'''
| '''支持WIFI功能和开热点'''
|}
 
# 上面两款USB无线网卡的图片如下所示:
## RTL8723BU USB无线网卡模块的图片如下所示:
 
<div class="figure">
 
[[File:media/13f86a829af68bdb412a82f1e8846197.png|C89CEA9A-B322-42d2-B476-2392A50E6FC4]]
 
</div>
<ol style="list-style-type: decimal;">
<li><p>RTL8811CU USB无线网卡模块的图片如下所示:</p>
<p>[[File:media/7873179be794593b17793f9f0821432c.png]]</p></li>
<li><p>以上2种型号的USB无线网卡的测试方法都是相同的,首先需要将USB网卡插入开发板的USB接口</p></li>
<li><p>然后WIFI的连接和测试方法请参考[[#_WIFI的连接测试方法|'''WIFI的连接测试方法''']]一节的内容</p></li>
<li><p>蓝牙的测试请参考[[#_蓝牙的测试方法|'''蓝牙的测试方法''']]一节的内容</p></li></ol>
 
<span id="m.2-e-key-pcie-wifi6蓝牙模块的使用方法-2"></span>
== M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 ==
 
# 目前Android12适配的PCIe无线网卡型号如下所示:
 
{| class="wikitable"
|-
! '''序号'''
! '''型号'''
! '''实物图片'''
|-
| '''1'''
| '''RTL8852BE''' '''(PCIE+USB接口)'''
| [[File:media/eb2dfbdad2f8646ba40c8d9bd5b017ae.png]]
|}
 
# 首先将PCIe无线网卡插入开发板的M.2 E-KEY接口中并固定好
 
[[File:media/1e4edb3ef78aca50a4043f33bd4ba295.png]]
 
# 然后给开发板接上Type-C接口的电源,并上电
# 系统启动后,WIFI的连接和测试方法请参考[[#_WIFI的连接测试方法|'''WIFI的连接测试方法''']]一节的内容
# 蓝牙的测试请参考[[#_蓝牙的测试方法|'''蓝牙的测试方法''']]一节的内容
 
<span id="wifi的连接测试方法"></span>
== WIFI的连接测试方法 ==
 
'''首先请注意Orange Pi 5 Plus开发板上是没有WIFI模块的,需要外接PCIe网卡或者USB网卡才能使用WIFI功能。'''
 
'''外接PCIe网卡的使用说明请参考'''[[#_M.2%20E-Key%20PCIe%20WIFI6+蓝牙模块的使用方法_2|'''M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法''']]'''一小节。'''
 
'''外接USB网卡的使用说明请参考'''[[#_USB无线网卡的使用方法|'''USB无线网卡的使用方法''']]'''一小节。'''
 
# 首先点击进入'''Setting'''
 
[[File:media/d3743972842cdebf9c7ac8514b9d746c.png]]
 
# 然后选择'''Network &amp; internet'''
 
[[File:media/e865e599310b2f1dc826ebe00de1a76f.png]]
 
# 然后选择'''Internet'''
 
[[File:media/2156227cc8a718c55cb0eee6e3d92ac1.png]]
 
# 然后打开'''Wi-Fi'''开关
 
[[File:media/16087d560e37e2d23d159186e6c14f7d.png]]
 
# 打开'''Wi-Fi'''后如果一切正常,就可以扫描到附近的Wi-Fi热点了
 
[[File:media/87239d971dca3c38826703cdb99f3a4e.png]]
 
# 然后选择想连接的Wi-Fi后会弹出下图所示的密码输入界面
 
[[File:media/060afb0d1d04ca1b844092b79372ab0b.png]]
 
# 然后使用键盘输入Wi-Fi对应的密码,再使用鼠标点击虚拟键盘中的回车按钮就会开始连接Wi-Fi了
 
[[File:media/1bcdaaad1f6de7f04b411c2a4e62ec1c.png]]
 
# Wi-Fi连接成功后的显示如下图所示:
 
[[File:media/7082cc9318e70b9eee51562377cbdddc.png]]
 
<span id="wi-fi-hotspot的使用方法"></span>
== Wi-Fi hotspot的使用方法 ==
 
# 首先请确保以太网口已连接网线,并且能正常上网
# 然后选择'''Settings'''
 
[[File:media/d3743972842cdebf9c7ac8514b9d746c.png]]
 
# 然后选择'''Network &amp; internet'''
 
[[File:media/e865e599310b2f1dc826ebe00de1a76f.png]]
 
# 然后选择'''Hotspot &amp; tethering'''
 
[[File:media/d1af66020952262408c9061311d7460a.png]]
 
# 然后选择'''Wi-Fi hotspot'''
 
[[File:media/2072c95cc36c85014245e8a5c269730a.png]]
 
# 然后打开'''Wi-Fi hotspot''',下图中还可以看到生成的热点的名字和密码,记住它们,在连接热点的时候要用到('''如果需要修改热点的名字和密码,需要先关闭Wi-Fi hotspot,然后才能修改''')
 
[[File:media/581c752d80c2161f9dd9a2f59b52cf83.png]]
 
# 此时可以拿出你的手机,如果一切正常,在手机搜索到的WI-FI列表中就能找到上图'''Hotspot name'''下面显示的同名('''这里为 AndroidAP_6953''')的WIFI热点了。然后可以点击'''AndroidAP_6953'''连接热点,密码在上图的'''Hotspot password''' 下面可以看到
 
[[File:media/3b85a2c2c493a65f92f7e737f3edbed0.png]]
 
# 连接成功后显示如下图所示(不同手机界面会有区别,具体界面以你手机显示的为准)。此时就可以在手机上打开一个网页看下能否上网了,如果能正常打开网页, 说明开发板的'''WI-FI Hotspot''' 能正常使用
 
[[File:media/387471c0e769251b300456866814104b.png]]
 
== 蓝牙的测试方法 ==
 
'''请注意,Orange Pi 5 Plus开发板上是没有蓝牙模块的,需要外接带蓝牙的PCIe网卡或者带蓝牙的USB网卡才能使用蓝牙功能。'''
 
'''外接PCIe网卡的使用说明请参考'''[[#_M.2%20E-Key%20PCIe%20WIFI6+蓝牙模块的使用方法_2|'''M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法''']]'''一小节。'''
 
'''外接USB网卡的使用说明请参考'''[[#_USB无线网卡的使用方法|'''USB无线网卡的使用方法''']]'''一小节。'''
 
# 首先点击进入'''Setting'''
 
[[File:media/d3743972842cdebf9c7ac8514b9d746c.png]]
 
# 然后选择'''Connected devices'''
 
[[File:media/283da613585faa18912e42a7c68a7712.png]]
 
# 然后点击'''Pair new device'''打开蓝牙并开始扫描周围的蓝牙设备
 
[[File:media/776dbd46b50e00b6ff31f19569686e1b.png]]
 
# 搜索到的蓝牙设备会在'''Available devices'''下面显示出来
 
[[File:media/beb554cdc668eabd0e26634f14acad2e.png]]
 
# 然后点击想要连接的蓝牙设备就可以开始配对了,当弹出下面的界面时,请使用鼠标选择'''Pair'''选项
 
[[File:media/531485f076486cef0f6de1c6badf09fe.png]]
 
# 这里测试的是开发板和安卓手机蓝牙的配置过程,此时在手机上会弹出下面的确认界面,在手机上也点击配对按钮后就会开始配对过程
 
[[File:media/7ae318d95216379b6a7a69e3c0fa558f.png]]
 
# 配对完成后,可以看到如下图所示的已配对的蓝牙设备
 
[[File:media/4f07262030008ca9a694954879f9a388.png]]
 
# 此时可以使用手机蓝牙给开发板发送一张图片,发送后,在开发板的安卓系统中可以看到下面的确认界面,然后点击'''Accept'''就可以开始接收手机发过来的图片了
 
[[File:media/2a726cdc7c5b5a444472b9044ef00756.png]]
 
# 开发板Android系统蓝牙接收到的图片可以在文件管理器中打开'''Download'''目录查看
 
[[File:media/de03e526d5835e09c56fd0f5507b2620.png]]
 
<span id="hdmi-in的测试方法-2"></span>
== HDMI In的测试方法 ==
 
# 开发板HDMI In接口的所在位置如下所示:
 
[[File:media/02b0241c5966daf8d9b568d8fc42282c.png]]
 
# 然后使用下图所示的HDMI转HDMI线将其它设备的HDMI输出接到开发板的HDMI In接口上
 
[[File:media/4c06c9135e500bd449b1dc7078fb7235.png]]
 
# 确保连接到HDMI In接口的设备的HDMI输出是正常的,然后打开HDMI In测试APP
 
[[File:media/67d1925b53d505b0c2c02399dcf4824f.png]]
 
# 然后就可以看到HDMI In的视频输入了,同时HDMI In的音频输入也会从开发板的HDMI TX接口或者耳机接口输出。下图显示的是通过HDMI In输入的OPi5开发板Linux系统的桌面。
 
[[File:media/ea2a2e23faf6c17aa395bf30beafd59d.png]]
 
<span id="寸mipi-屏幕的使用方法"></span>
== 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%20屏幕的组装方法|'''10.1寸MIPI屏幕的组装方法''']]
# 开发板上LCD的接口位置如下图所示:
 
[[File:media/32f53b9854251e15a01b73b1d281b036.png]]
 
'''注意,下面的触摸接口不是给LCD MIPI屏幕使用的,目前为备用接口,使用不到。'''
 
[[File:media/db07f07c590af0ae7c59a19880742ae6.png]]
 
# 将组装好的屏幕接到LCD接口,给板子接通Type-C电源,并上电,系统启动后,就可以看到屏幕显示如下图所示
 
[[File:media/9e504fbd34544bcf2d2c3ba9b0f686c9.png]]
 
<span id="ov13850和ov13855-mipi摄像头的测试方法-2"></span>
== OV13850和OV13855 MIPI摄像头的测试方法 ==
 
目前开发板支持两款MIPI摄像头,OV13850和OV13855,具体的图片如下所示:
 
# 1300万MIPI接口的OV13850摄像头
 
[[File:media/5941e6fa8b5a03d3b89ab5891bd1ff2c.png]]
 
# 1300万MIPI接口的OV13855摄像头
 
[[File:media/1ef03ad657d3490c06607c7619bc11b3.png]]
 
OV13850和OV13855摄像头使用的转接板和FPC排线是一样的,只是两款摄像头接在转接板上的位置不一样。FPC排线如下图所示,请注意FPC排线是有方向的,标注'''TO MB'''那端需要插到开发板的摄像头接口中,标注'''TO CAMERA'''那端需要插到摄像头转接板上。
 
[[File:media/e0365832b0d74e8b044917af01ea6678.png]]
 
摄像头转接板上总共有3个摄像头的接口,同一时间只能接一个使用,如下图所示,其中:
 
# '''1号接口接OV13850摄像头'''
# '''2号接口接OV13855摄像头'''
# 3号接口未使用,忽略即可
 
[[File:media/b4994072e4050dca2d123fcb8c092758.png]]
 
Orange Pi 5 Plus开发板摄像头接口的位置如下图所示:
 
[[File:media/c429d3f24974767e4e540b0e573796bc.png]]
 
摄像头插在开发板CAM接口的方法如下所示:
 
[[File:media/8cd4b16c06791cc630117deebd44c25b.png]]
 
连接好摄像头到开发板上后,我们可以使用下面的方法来测试下摄像头:
 
# 在桌面中打开相机APP
 
[[File:media/d02db72c9b7298d583e45b929d1a33d8.png]]
 
# 然后就能看到摄像头的预览画面了
 
<div class="figure">
 
[[File:media/148c2ab0478ca03a6bf26cbb80d0d515.png|Screenshot_20230317-073757]]
 
</div>
在摄像头APP下图红框所示的区域中按住鼠标然后向右拖动可以调出拍照和摄像的切换界面
 
[[File:media/3f85c457ee314156191debdb4fe2a3ba.png]]
 
拍照和摄像的切换界面如下所示,点击'''Video'''即可切换到录像模式
 
<div class="figure">
 
[[File:media/416962acfebb61680e4900802274a201.png|Screenshot_20230317-074419]]
 
</div>
点击下图所示的位置可以进入摄像头的设置界面
 
[[File:media/903e6be1dbebafbef83c11e04607817d.png]]
 
摄像头的设置界面如下所示:
 
<div class="figure">
 
[[File:media/7362ec4e62377d08d7c1eb273d725155.png|Screenshot_20230317-075325]]
 
</div>
<span id="pin-接口-gpiouartspi-和-pwm-测试"></span>
== 26pin 接口 GPIO、UART、SPI 和 PWM 测试 ==
 
<span id="pin-gpio-口测试"></span>
=== 40pin GPIO 口测试 ===
 
# 首先点击wiringOP图标打开wiringOP APP
 
[[File:media/73cc174bf8cea61173cc435581c56db9.png]]
 
# wiringOP APP的主界面显示如下图所示,然后点击'''GPIO_TEST'''按钮打开GPIO测试界面
 
[[File:media/3da86788e0b4d489e29334208e94f1d6.png]]
 
# GPIO测试界面如下图所示,左边的两排'''CheckBox'''按钮跟26pin引脚是一一对应的关系。当勾选'''CheckBox'''按钮时,对应的GPIO引脚会被设置为'''OUT'''模式,引脚电平设置为高电平;当取消勾选时,GPIO引脚电平设置为低电平;当点击右边的'''GPIO READALL'''按钮时,可以获取到wPi号、GPIO模式、引脚电平等信息。
 
[[File:media/854fdeff23466606b711063938c0ebfb.png]]
 
# 然后点击'''GPIO READALL'''按钮,输出信息如下图所示:
 
[[File:media/265b96a85b7f5a87d80612d4b53524e7.png]]
 
# 开发板40pin中总共有28个GPIO口可以使用,下面以11号引脚——对应GPIO为GPIO1_A4 ——对应wPi序号为5——为例演示如何设置GPIO口的高低电平。首先点击11号引脚对应的'''CheckBox'''按钮,当按钮为选中状态时,11号引脚会设置为高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为'''3.3v''',说明设置高电平成功
 
[[File:media/f78eb6bbb3991137c5e8a02fc513c463.png]]
 
# 然后点击'''GPIO READALL'''按钮,可以看到当前的7号引脚模式为'''OUT''',引脚电平为高电平
 
[[File:media/d78ee7649366455f1c0e02c65d340506.png]]
 
# 再次点击下图的'''CheckBox'''按钮取消勾选状态,11号引脚会设置为低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为'''0v''',说明设置低电平成功
 
[[File:media/0674c62347813e221dcdfbf5187b9600.png]]
 
# 然后点击'''GPIO READALL'''按钮,可以看到当前的11号引脚模式为OUT,引脚电平为低电平
 
[[File:media/c0fbae6b1b7d6918109a12001a000cb2.png]]
 
<span id="pin的uart测试-3"></span>
=== 40pin的UART测试 ===
 
# Android中默认打开了'''UART3'''和'''UART8''',在40pin的位置如下图所示,对应的设备节点分别是'''/dev/ttyS3'''和'''/dev/ttyS8'''
 
[[File:media/07879d3d595584939a30a3bc823e223f.png]]
 
# 首先点击wiringOP图标打开wiringOP APP
 
[[File:media/73cc174bf8cea61173cc435581c56db9.png]]
 
# wiringOP APP的主界面显示如下图所示,然后点击'''UART_TEST'''按钮打开UART测试界面
 
[[File:media/ee418f91a8832471aadbcd57b42438bf.png]]
 
# APP的串口测试界面如下图所示
 
[[File:media/ec62b2ab388455d2f36634c85dbbdf96.png]]
 
# 下面以测试'''UART3'''为例,在选择框中选择'''/dev/ttyS3'''节点,在编辑框中输入想要设置的波特率,然后点击'''OPEN'''按钮打开'''/dev/ttyS3'''节点,打开成功后,'''OPEN'''按钮变为不可选中状态,'''CLOSE'''按钮和'''SEND'''按钮变为可选中状态
 
[[File:media/ab12550118971631c47d49c5bb859aba.png]]
 
# 然后使用杜邦线短接uart3的RXD和TXD引脚
 
[[File:media/f9a7c08878861a295ab1634508d5bb05.png]]
 
# 然后可以在下面的发送编辑框中输入一段字符,点击'''SEND'''按钮开始发送
 
[[File:media/9a7e6b672982ed38dd13067e18ac8bfc.png]]
 
# 如果一切正常,接收框内会显示已接收到的字符串
 
[[File:media/ca71d7e9b374836cff0051c554ca1b1b.png]]
 
<span id="pin的spi测试"></span>
=== 26pin的SPI测试 ===
 
# 由下表可知,Orange Pi 5 Plus可用的SPI为SPI0和SPI4
 
[[File:media/8fdc5f37f284d983dd9764c23147b156.png]]
 
# Android系统默认打开的是SPI0的配置,这里演示下通过w25q64模块来测试SPI0接口,首先在SPI0接口接入w25q64设备
 
[[File:media/d8baf583b5e5342b0b160f2b79ec14d4.png]]
 
# 然后点击wiringOP图标打开wiringOP APP
 
[[File:media/73cc174bf8cea61173cc435581c56db9.png]]
 
# wiringOP APP的主界面显示如下图所示,点击'''SPI_TEST'''按钮打开SPI的测试界面
 
[[File:media/06c06ec8ad345267630205f3547d1e86.png]]
 
# 然后点击'''OPEN'''按钮初始化SPI
 
[[File:media/aedda3f418b5c7a0dd1f66830c7c7c6b.png]]
 
# 然后填充需要发送的字节,比如读取w25q64的ID信息,在data[0]中填入地址0x9f,然后点击'''TRANSFER'''按钮
 
[[File:media/921c09a58e0a2f5887cc36844335da03.png]]
 
# 最后APP会显示读取到的ID信息
 
[[File:media/16e713d8ed7dd7f252f6159b984520e4.png]]
 
# w25q64模块的MANUFACTURER ID为EFh,Device ID为4017h,跟上面读取到的值是对应的(h代表是16进制)
 
[[File:media/587ff0d92772abab3109e72ed42362ac.png]]
 
<span id="pin的pwm测试"></span>
=== 26pin的PWM测试 ===
 
# Android默认开启了'''PWM10'''和'''PWM14''',对应的引脚在40pin的所在位置如下图所示:
 
[[File:media/a4b085c0fcd847c5ceddd59e27a6f242.png]]
 
# 首先点击wiringOP图标打开wiringOP APP
 
[[File:media/73cc174bf8cea61173cc435581c56db9.png]]
 
# 然后在wiringOP的主界面点击'''PWM_TEST'''按钮进入PWM的测试界面
 
[[File:media/931c4de31df7207c4da2ac2bcc2653d1.png]]
 
# PWM10对应的基地址是'''febe0020''',PWM14对应的基地址是'''febf0020''',这里pwmchip0右边显示是'''fd8b0020.pwm''',这时需要点击下拉选项选择其它的pwmchip,直到右边显示'''febe0020'''或者'''febf0020'''为止。
 
[[File:media/ea3aa16e7483bbbb23579c354673f056.png]]
 
# 当下拉选项菜单选择'''pwmchip2'''时,右边对应的就是'''PWM10'''的基地址'''febe0020'''
 
[[File:media/6aa8247a47bc98b26e42f882e6d2c3ad.png]]
 
# 当下拉选项菜单选择'''pwmchip4'''时,右边对应的就是'''PWM14'''的基地址'''febe0020'''
 
[[File:media/3aeaa4a8b8fec0cd271e5d806a95f7e0.png]]
 
# 以测试PWM10为例,我们需要选择'''pwmchip2'''
 
[[File:media/6aa8247a47bc98b26e42f882e6d2c3ad.png]]
 
# 然后确认PWM的周期,默认的配置是'''50000ns''',转换为PWM频率是'''20KHz''',可自行修改,点击开启按钮导出'''PWM10'''
 
[[File:media/af384be536808840bbb0c4816528540f.png]]
 
# 然后拖动下面的拖动条,就可以改变PWM的占空比,然后勾选Enable就可以输出PWM波形了
 
[[File:media/c45de8b822bdd8352f4ae24c20727912.png]]
 
# 然后使用示波器测量开发板40pin中的第31号引脚就可以看到下面的波形了
 
[[File:media/3411ce88e0393b96c3bfd25f8b774616.png]]
 
<span id="adb的使用方法-1"></span>
== ADB的使用方法 ==
 
=== 使用数据线连接adb调试 ===
 
# 首先准备一根品质良好的Type-C数据线
 
[[File:media/d84ad9c1e0e447425ddd86cfefafca1e.png]]
 
# 然后通过Type-C数据线连接好开发板与Ubuntu PC,开发板Type-C接口的位置如下图所示:
 
[[File:media/293482d42e80a8b3e2962b40e834bb41.png]]
 
# 然后在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:/ #
 
<span id="android-box测试过的2.4g-usb遥控器"></span>
== Android Box测试过的2.4G USB遥控器 ==
 
# 目前测试过的一款2.4G USB遥控器如下图所示
## 包含一个遥控器
 
[[File:media/fc3074403598a4085be7ec11d52c149b.png]]
 
# 一个USB无线接收器
 
[[File:media/efb382e4df80fc33634e259bc2791b7f.png]]
 
# Android Box系统无需任何配置,插上就可以用了
 
<span id="android-box系统红外遥控器的使用方法"></span>
== Android Box系统红外遥控器的使用方法 ==
 
# 开发板自带有红外接收器,其所在位置如下图所示:
 
[[File:media/8b6f0d687f3ac4c00d7914e1a7efe959.png]]
 
# 测试红外接收前我们需要准备一个红外遥控器
 
<div class="figure">
 
[[File:media/2a041e743240034c13be704b7b966716.png|6FBFE2FA-31A4-4a26-AC63-9A3E4E359FFF]]
 
</div>
'''注意:香橙派提供的Android系统默认只支持香橙派提供的遥控器,电视或者空调的遥控器是不能用的。'''
 
# Android Box系统已经适配了这款遥控器,直接就可以使用了,无需其它的设置。
 
<span id="android-box系统hdmi-cec功能的使用方法"></span>
== Android Box系统HDMI CEC功能的使用方法 ==
 
'''HDMI CEC允许用户只用一个遥控器,就能通过HDMI控制所有连接的设备,基于这个功能,我们用电视机的遥控器就可以控制开发板。'''
 
'''测试此功能前,请确保您的电视机是支持HDMI CEC的。'''
 
# 首先将开发板通过HDMI线连接到电视,然后上电启动
# 然后在电视的设置中开启HDMI CEC功能,不同电视开启方式可能有差异,这里以小米电视为例,按下遥控器的菜单键,然后选中CEC遥控并按下确认键
 
[[File:media/8798b646bfc62cc8e145f4a436441535.png]]
 
# 然后选择'''“开”'''就可以打开HDMI CEC遥控
 
[[File:media/993e3be72b88e711fd1496f8235154f4.png]]
 
# 此时就可以通过电视的遥控器控制开发板的Android Box系统了
 
<span id="android-12源码的编译方法"></span>
= Android 12源码的编译方法 =
 
<span id="下载android-12的源码"></span>
== 下载Android 12的源码 ==
 
# 首先从百度云盘或者谷歌网盘下载Android 12源码的分卷压缩包
## 百度云盘
 
[[File:media/8778ad20e147dc674108ce1109a47b91.png]]
 
# 谷歌网盘
 
[[File:media/ff84fbb4b386d43ae7809740842e4755.png]]
 
# 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* &gt; Android_12.tar.gz'''
 
test@test:~$ '''tar -xvf Android_12.tar.gz'''
 
<span id="编译android-12的源码"></span>
== 编译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启动镜像
 
[mailto:test@test:~OrangePi_4/rk3399-android-8.1$ test@test:~/Android_12$] '''cd rockdev/Image-rk3588s_s'''
 
[mailto:test@test:~OrangePi_4/rk3399-android-8.1$ test@test:~/Android_12/rockdev/Image-rk3588s_s $] '''ls update*'''
 
update.img update_spi_nvme.img
 
# 如果编译的是Box版本的镜像,最终生成的镜像文件会放在'''rockdev/Image-rk3588_box'''目录下
 
[mailto:test@test:~OrangePi_4/rk3399-android-8.1$ test@test:~/Android_12$] '''cd rockdev/Image-rk3588_box'''
 
[mailto:test@test:~OrangePi_4/rk3399-android-8.1$ test@test:~/Android_12/rockdev/Image-rk3588_box$] '''ls update*'''
 
update.img update_spi_nvme.img
 
<span id="orange-pi-os-droid-系统的使用说明"></span>
= Orange Pi OS Droid 系统的使用说明 =
 
<span id="opi-os-droid系统的功能适配情况"></span>
== OPi OS Droid系统的功能适配情况 ==
 
{| class="wikitable"
|-
! '''功能'''
! '''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'''202 3-05-26| '''NO'''|}Opio s-arch-aarch64-gnome-opi5plus-23.05.1-linux5.10.110.img.xz
<span id="hdmi-in的测试方法-3"></span>== HDMI In的测试方法 ==* 任务栏:去掉日历和音乐,添加命令行终端和浏览器的快捷方式
# 开发板HDMI In接口的所在位置如下所示:* 支持通过CTRL+ALT+T快捷键打开命令行终端
[[File:media/02b0241c5966daf8d9b568d8fc42282cOrangePi5Plus_RK3588_Android12_v1.png]]0.1.tar.gz
# 然后使用下图所示的HDMI转HDMI线将其它设备的HDMI输出接到开发板的HDMI In接口上OrangePi5Plus_RK3588_Android12_v1.0.1_lcd.tar.gz
[[File:media/4c06c9135e500bd449b1dc7078fb7235OrangePi5Plus_RK3588_Android12_v1.png]]0.1_spi-nvme.tar.gz
# 确保连接到HDMI In接口的设备的HDMI输出是正常的,然后打开HDMI In测试APPOrangePi5Plus_RK3588_Android12_v1.0.1_lcd_spi-nvme.tar.gz
[[File:media/bdc21bcb5659f5054a4e0927714346ba.png]]* 预装google play store
# 然后会出现如下图所示的窗口,这时是看不到HDMI In的视频输入的,需要点击下图红框标记的位置放大为全屏Orangepi5p lus_1.0.4_debian_bullseye_desktop_kde-plasma_linux5.10.110
[[File:media* 支持CTRL+ALT+T快捷方式打开命令行终端<br /2dd1cef55a372a50c206cb3d647414b5>* 任务栏新增konsole终端和chromium浏览器的快捷方式<br />* 优化音频设备显示的名字<br />* 优化test_hdmiin.png]]sh测试脚本<br />* 修复spiflash+nvme ssd无法启动的问题
# 然后就可以看到HDMI In的视频输入了,同时HDMI In的音频输入也会从开发板的HDMI TX接口或者耳机接口输出。下图显示的是通过HDMI In输入的OPi5开发板Linux系统的桌面。Oran gepi5plus_1.0.4_debian_bullseye_desktop_xfce_linux5.10.110
[[File:media* 支持CTRL+ALT+T快捷方式打开命令行终端<br /79ef2338436ffe5c0c5c7b3c242d90fb>* 优化音频设备显示的名字<br />* 优化test_hdmiin.sh测试脚本<br />* 更新chromium浏览器为chromium-brows er_110.png]]0,支持h264、h265、vp8、vp9和av1格式的视频硬解播放<br />* 修复spiflash+nvme ssd无法启动的问题
= 附录 =Or angepi5plus_1.0.4_ubuntu_focal_desktop_xfce_linux5.10.110<br />Or angepi5plus_1.0.4_ubuntu_jammy_desktop_xfce_linux5.10.110<br />Or angepi5plus_1.0.4_ubuntu_jammy_desktop_gnome_linux5.10.110
== 用户手册更新历史 ==* 支持CTRL+ALT+T快捷方式打开命令行终端<br />* 优化音频设备显示的名字<br />* 优化test_hdmiin.sh测试脚本<br />* 修复spiflash+nvme ssd无法启动的问题
{| class="wikitable"|-! '''版本'''! '''日期'''! '''更新说明'''Orangepi5plus_1.0.4_debian_bullseye_server_linux5.10.110<br />|-| v1Orangepi5plus_1.0| 2023-05-22| 初始版本|-| v1.1| 2023-05-24| Android Box系统红外遥控器的使用方法 Orange Pi OS Droid 系统的使用说明|-| v14_ubuntu_focal_server_linux5.10.2| 2023-05-25| Ubuntu110<br /Debian:HDMI IN的测试方法>|}Orangepi5plus_1.0.4_ubuntu_jammy_server_linux5.10.110
== 镜像更新历史 ==* 修复spiflash+nvme ssd无法启动的问题
{| class="wikitable"
|-
! '''日期'''
! '''更新说明'''
|-
| 2023-05-19
| Orangepi5plus_1.0.0_debian_bullseye_server_linux5.10.110 Orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110 Orangepi5plus_1.0.0_debian_bullseye_desktop_kde-plasma_linux5.10.110 Orangepi5plus_1.0.0_ubuntu_focal_server_linux5.10.110 Orangepi5plus_1.0.0_ubuntu_focal_desktop_xfce_linux5.10.110 Orangepi5plus_1.0.0_ubuntu_jammy_server_linux5.10.110 Orangepi5plus_1.0.0_ubuntu_jammy_desktop_xfce_linux5.10.110 Orangepi5plus_1.0.0_ubuntu_jammy_desktop_gnome_linux5.10.110 Opios-droid-aarch64-opi5plus-23.05-linux5.10.110.tar.gz Opios-droid-aarch64-opi5plus-23.05-linux5.10.110-spi-nvme.tar.gz OrangePi5Plus_RK3588_Android12_v1.0.0.tar.gz OrangePi5Plus_RK3588_Android12_lcd_v1.0.0.tar.gz OrangePi5Plus-RK3588_Android12-box_v1.0.0.tar.gz OrangePi5Plus_RK3588_Android12_spi-nvme_v1.0.0.tar.gz OrangePi5Plus_RK3588_Android12_spi-nvme_lcd_v1.0.0.tar.gz OrangePi5Plus-RK3588_Android12-box_spi-nvme_v1.0.0.tar.gz openwrt-aarch64-opi5plus-23.05-linux5.10.110-ext4.img.gz * 初始版本
|-
| 2023-05-22
| Opios-arch-aarch64-gnome-opi5plus-23.05-linux5.10.110.img.xz openwrt-rockchip-armv8-xunlong_orangepi-5-plus-spi-squashfs-sysupgrade.bin * 初始版本
|-
| 2023-05-24
| Orangepi5plus_1.0.2_debian_bullseye_desktop_kde-plasma_linux5.10.110 * 修复桌面音频无法使用的问题 * 更新chromium浏览器为chromium-browser_110.0,支持h264、h265、vp8、vp9和av1格式的视频硬解播放
|-
| 2023-05-25
| Opios-arch-aarch64-gnome-opi5plus-23.05.1-linux5.10.110.img.xz * 任务栏:去掉日历和音乐,添加命令行终端和浏览器的快捷方式 * 支持通过CTRL+ALT+T快捷键打开命令行终端
|}
8,460
个编辑