<span id="orange-pi-5-plus的基本特性"></span>= '''Orange Pi 5 PlusPlus的基本特性'''=
'''用户手册'''<span id="什么是-orange-pi-5-plus"></span>== 什么是 Orange Pi 5 Plus ==
[[File:media/f1822c679729bb5a9d34e48b8442ab5cOrange Pi 5 Plus采用了瑞芯微RK3588新一代八核64位ARM处理器,具体为四核A76和四核A55,采用的三星8nm LP制程工艺,大核主频最高可达2.png]]4GHz,集成ARM Mali-G610 MP4 GPU,内嵌高性能3D和2D图像加速模块,内置高达6 Tops算力的AI加速器NPU,可选4GB、8GB、16GB或者32GB内存,具有高达8K显示处理能力。
'''目录'''Orange Pi 5 Plus引出了相当丰富的接口,包括2个HDMI输出、1个HDMI输入、USB-C/DP接口、M.2 M-key PCIe3.0x4、M.2 E-key PCIe2.0x1、2个2.5G网口、eMMC扩展接口、USB2.0、USB3.0接口、红外、耳机、板载MIC、喇叭、RTC和40pin扩展排针等。可广泛适用于高端平板、边缘计算、人工智能、云计算、AR/VR、智能安防、智能家居等领域,覆盖 AIoT各个行业。
[[#orange-pi-5-plus的基本特性|1. Orange Pi 5 Plus的基本特性 1]]Plus支持Orange Pi 官方研发的操作系统Orange Pi OS,同时,支持Android 12.1、OpenWRT、Debian11、Debian12、Ubuntu20.04和Ubuntu22.04等操作系统。
[[#_Toc2147368127|1.1. 什么是 <span id="orange-pi-5-plus的用途"></span>== Orange Pi 5 Plus 1]]Plus的用途 ==
[[#_Toc1913635394|1.2. Orange Pi 5 Plus的用途 1]]我们可以用它实现:
[[#orange-pi-5-plus的硬件规格|1.3. Orange Pi 5 Plus的硬件规格 2]]* 一台Linux桌面计算机* 一台Linux网络服务器* Android平板* Android游戏机等
[[{| class="wikitable" style="background-color:#orangeffffdc;width:800px;" |-pi-5-plus的顶层视图和底层视图| <br><big>'''当然还有其他更多的功能,依托强大的生态系统以及各式各样的扩展配件,Orange Pi可以帮助用户轻松实现从创意到原型再到批量生产的交付,是创客、梦想家、业余爱好者的理想创意平台。'''</big><br><br>|1.4. Orange Pi 5 Plus的顶层视图和底层视图 4]]}
[[#orange-pi-5-plus的接口详情图|1.5. Orange Pi 5 Plus的接口详情图 5]]<span id="section"></span>
[[#_Toc519742474|2. 开发板使用介绍 6]]<span id="orange-pi-5-plus的硬件规格"></span>
[[#_Toc1283707242|2.1. 准备需要的配件 6]]== Orange Pi 5 Plus的硬件规格 ==
[[#_Toc1542079754{|class="wikitable"|-|colspan=2.2. 下载开发板的镜像和相关的资料 13]]|<div style="text-align:center"><big>'''Orange Pi 5 PLUS硬件规格'''</big></div>|-| 主控芯片| Rockchip RK3588(8nm LP制程)
[[#_Toc2055172223|2.3. 基于Windows PC将Linux镜像烧录到TF卡的方法 14]]-| CPU| • 8核64位处理器
[[#使用balenaetcher烧录linux镜像的方法|2.3.1. 使用balenaEtcher烧录Linux镜像的方法 14]]• 4个Cortex-A76和4个Cortex-A55及独立的NEON协处理器
[[#使用rkdevtool烧录linux镜像到tf卡中的方法|2• Cortex-A76主频最高2.34GHz,Cortex-A55主频最高1.2. 使用RKDevTool烧录Linux镜像到TF卡中的方法 18]]8GHz
[[#使用win32diskimager烧录linux镜像的方法|2.3.3. 使用Win32Diskimager烧录Linux镜像的方法 28]]-| GPU| • 集成ARM Mali-G610
[[#_Toc1141505104|2.4. 基于Ubuntu PC将Linux镜像烧录到TF卡的方法 30]]• 内置 3D GPU
[[#_Toc598618657|• 兼容OpenGL ES1.1/2.50/3. 烧录Linux镜像到eMMC中的方法 35]]2、OpenCL 2.2和Vulkan 1.2
[[#_Toc991347164|2.5.-| NPU| 内嵌的NPU支持INT4/INT8/INT16/FP16,算力高达6 Tops|-| PMU| RK806-1. 使用RKDevTool烧录Linux镜像到eMMC中的方法 35]]|-| RAM| 4GB/8GB/16GB/32GB可选|-| 存储| • QSPI Nor FLASH: 16MB/32MB
[[#_Toc997572860|2.5.2. 使用dd命令烧录Linux镜像到eMMC中的方法 46]]• MicroSD卡插槽
[[#烧录linux镜像到spiflashnvme-ssd中的方法|2.6. 烧录Linux镜像到SPIFlash+NVMe SSD中的方法 48]]• eMMC插座,可外接eMMC模块
[[#使用rkdevtool烧录的方法|2• 用于NVMe SSD (PCIe 3.60 x4) 的M.1. 使用RKDevTool烧录的方法 48]]2 2280插槽
[[#使用dd命令烧录的方法|-| USB| • 2x USB3.6.2. 使用dd命令烧录的方法 64]]0
[[#使用balenaetcher软件烧录的方法|• 2x USB2.6.3. 使用balenaEtcher软件烧录的方法 68]]0
[[#烧录openwrt镜像到spi• 1 x Type-flash中的方法|2.7. 烧录OpenWRT镜像到SPI FLASH中的方法 83]]C
[[#使用|-rkdevtool-烧录的方法| 视频|• 2.7x HDMI 2.1. 使用 RKDevTool 烧录的方法 83]]输出,高达8K@60FPS
[[#_Toc41692921|2• 1 x Type-C(DP 1.7.2. 使用dd命令烧录的方法 92]]4A)输出,高达4K@60FPS
[[#烧录android镜像到tf卡中的方法|2.8. 烧录Android镜像到TF卡中的方法 93]]• 1 x HDMI输入,高达4K@60FPS
[[#_Toc2078998188|2.9. 烧录Android镜像烧录到eMMC中的方法 96]]• 1 x MIPI DSI 4 Lane输出,高达4K@60FPS
[[#_Toc1861737969|2.9.-| TP接口| 1 x 6Pin FPC插座|-| 摄像头| 1 x MIPI CSI 4 Lane|-| 音频| • 1x 3. 通过Type-C线将Android 镜像烧录到eMMC中的方法 96]]5mm耳机孔音频输入/输出
[[#_Toc826966915|2.9.2. 通过TF卡将Android 12镜像烧录到eMMC中的方法 101]]• 1 x 板载MIC输入
[[#烧录android镜像到spiflashnvme-ssd中的方法|• 2.10. 烧录Android镜像到SPIFlash+NVMe SSD中的方法 106]]x HDMI输出
[[#烧录orange-pi-os-droid镜像到tf卡中的方法|2.11. 烧录Orange Pi OS (Droid)镜像到TF卡中的方法 112]]• 1 x HDMI输入
[[#_Toc160280333|2.12. 烧录Orange Pi OS (Droid)镜像到eMMC中的方法 114]]• 1 x DP输出
[[#_Toc320923310|2.12.• 1x扬声器输出(2pin,1. 通过Type-C线将Orange Pi OS (Droid) 镜像烧录到eMMC 114]]25mm规格)
[[#_Toc658158156|-| 以太网| 2 x PCIe 2.5G 以太网口(RTL8125BG )|-| 40pin扩展口| 用于扩展UART、I2C、SPI、CAN、PWM、GPIO接口|-| PCIe M.2M-KEY| PCIe 3.120 x 4 lanes,用于接2280的NVMe SSD固态硬盘|-| PCIe M.2 E-KEY| 包含PCIe 2. 通过TF卡将Orange Pi OS (Droid)镜像烧录到eMMC 119]]0 x 1/PCM/UART/USB2.0接口,支持2230的Wi-Fi6/BT模块|-| 按键| 1个MaskROM键,1个RECOVERY键,1个开关机键[[#烧录orange|-pi| 供电| 支持Type-osC供电,5V@4A|-droid镜像到spiflashnvme| 红外接收器| 1个红外接收器|-ssd中|2LED| RGB LED三色指示灯|-| 风扇接口| 2pin,1.1325mm规格,用于接5V风扇,支持PWM控制开关和转速|-| RTC电池接口| 2pin,1. 烧录Orange Pi 25mm规格,用于给RTC模块供电|-| 调试| 3pin调试串口(UART)|-| 支持的操作系统| Orangepi OS (Droid)镜像到SPIFlash+NVMe SSD中 124]]、Orangepi OS(Arch)、Orangepi OS(OH)、Ubuntu20.04、Ubuntu22.04、Debian11、Debian12、OpenWRT和Android12等|-[[#启动香橙派开发板|colspan=2.14. 启动香橙派开发板 129]]|<div style="text-align:center"><big>'''外观规格介绍'''</big></div>|-| 产品尺寸| 100mm*75mm|-| 重量[[#_Toc666814808|286.15. 调试串口的使用方法 130]]5g|}
[[#_Toc445297488|2.15.1. 调试串口的连接说明 130]]<span id="orange-pi-5-plus的顶层视图和底层视图"></span>
[[#_Toc2112464923|2.15.2. Ubuntu平台调试串口的使用方法 132]]== Orange Pi 5 Plus的顶层视图和底层视图 ==
[[#_Toc1950522051|2.15.3. Windows平台调试串口的使用方法 134]]<big>'''(顶层视图)'''</big><br>
[[#ubuntudebian-server和xfce桌面系统使用说明|3. Ubuntu/Debian Server和Xfce桌面系统使用说明 138]]<div class="figure">
[[#已支持的ubuntudebian镜像类型和内核版本|3.File:plus-5-1. 已支持的Ubuntu/Debian镜像类型和内核版本 138jpeg]]
[[#linux系统适配情况|3.2. linux系统适配情况 138]]</div><big>'''(底层视图)'''</big><br>
[[#本手册linux命令格式说明|3.3. 本手册linux命令格式说明 140]]<div class="figure">
[[#linux系统登录说明|3File:plus-5-2.4. linux系统登录说明 141jpeg]]
[[#linux系统默认登录账号和密码|3.4.1. linux系统默认登录账号和密码 141]]</div><span id="orange-pi-5-plus的接口详情图"></span>
[[#设置linux系统终端自动登录的方法|3.4.2. 设置linux系统终端自动登录的方法 142]]== Orange Pi 5 Plus的接口详情图 ==
[[#linux桌面版系统自动登录说明|3.4.3. linux桌面版系统自动登录说明 142]]<div class="figure">
[[#linux桌面版系统root用户自动登录的设置方法|File:plus-5-3.4.4. Linux桌面版系统root用户自动登录的设置方法 144png]]
[[#_Toc696763884|3.4.5. Linux桌面版系统禁用桌面的方法 144]]</div>
[[#板载led灯测试说明|3.5. 板载LED灯测试说明 145]]= '''开发板使用介绍''' =
[[#网络连接测试|3.6. 网络连接测试 146]]== 准备需要的配件 ==
<ol style="list-style-type: decimal;"><li><p>TF卡,最小16GB容量(推荐32GB或以上)的'''class10'''级或以上的高速闪迪卡</p><p>[[#25g以太网口测试|3File:plus-5-4.png]]</p></li><li><p>TF卡读卡器,用于将镜像烧录到TF卡中</p><p>[[File:plus-5-5.png]]</p></li><li><p>HDMI接口的显示器</p><p>[[File:plus-5-6.1. 2png]]</p></li><li><p>HDMI转HDMI连接线,用于将开发板连接到HDMI显示器或者电视进行显示</p><p>[[File:plus-5-7.5G以太网口测试 146png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <br><big>'''注意,如果想接4K或者8K显示器,请确保HDMI线支持4K或者8K视频显示。'''</big><br><br>|}<li><p>Type-C转HDMI线,通过Type-C接口将开发板连接到HDMI显示器或者电视进行显示</p><div class="figure">
[[#wifi连接测试|3File:plus-5-8.6.2. WIFI连接测试 148png]]
[[#设置静态ip地址的方法|3</div></li><li><p>Type-C转USB转接头,用于通过Type-C接口连接USB存储设备或者鼠标键盘等USB设备('''开发板上有2个USB3.60 HOST接口和2个USB2.3. 设置静态IP地址的方法 155]]0 HOST接口,此配件一般用不到''')</p><div class="figure">
[[#m2File:plus-e5-key-pcie-wifi6蓝牙模块的使用方法|39.7. M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 163png]]
[[#ssh远程登录开发板|3</div></li><li><p>10.8. SSH远程登录开发板 165]]1寸MIPI屏幕,用于显示开发板的系统界面(此屏幕和OPi5/OPi5B通用)</p><div class="figure">
[[#_Toc1014925009|3File:plus-5-10.8.1. Ubuntu下SSH远程登录开发板 165png]]
</div></li><li><p>电源适配器,Orange Pi 5 Plus建议使用5V/4A的Type-C电源供电</p><p>[[File:plus-5-11.png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''开发板上有两个长得一样的Type-C接口,其中网口旁边竖着的那个才是电源接口,另外那个Type-C接口是没有供电功能的,请别接错了。'''</big><p>[[File:plus-5-12.png]]</p><big>'''<span style="color:#FF0000">开发板的Type-C电源接口不支持PD协商功能,只支持固定的5V电压输入。</span>'''</big>|}</li><li><p>USB接口的鼠标和键盘,只要是标准USB接口的鼠标和键盘都可以,鼠标和键盘可以用来控制Orange Pi开发板</p><p>[[File:plus-5-13.png]]</p></li><li><p>USB摄像头</p><p>[[File:plus-5-14.png]]</p></li><li><p>5V的散热风扇。如下图所示,开发板上有用于接散热风扇的接口,接口规格为'''2pin 1.25mm间距'''</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <br><big>'''开发板上的风扇可以通过PWM来调节转速和开关。'''</big><br><br>|}<p>[[File:5-plus-15.png]]</p></li><li><p>网线,用于将开发板连接到因特网</p><p>[[File:plus-5-16.png]]</p></li><li><p>Type-C接口的数据线,用于烧录镜像、使用ADB等功能</p><p>[[File:plus-5-17.png]]</p></li><li><p>红外遥控器</p><p>[[File:plus-5-18.png]]</p>{| class="wikitable" style="background-color:#windows下ssh远程登录开发板ffffdc;width:800px;" |-|3<br><big>'''注意,空调遥控或者电视机的遥控是无法控制Orange Pi开发板的,Orange Pi提供的操作系统默认只能保证Orange Pi提供的遥控器才可以使用。'''</big><br><br>|}</li><li><p>1300万MIPI接口的OV13850摄像头(和OPi5/OPi5B通用)</p><p>[[File:plus-5-19.png]]</p></li><li><p>1300万MIPI接口的OV13855摄像头(和OPi5/OPi5B通用)</p><p>[[File:plus-5-20.8png]]</p></li><li><p>M.2M-KEY 2280规格的NVMe SSD固态硬盘,PCIe接口的规格为PCIe3.0x4</p><p>[[File:plus-5-21.png]]</p></li><li><p>eMMC扩展模块('''待添加实物图片''')</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''开发板上插入eMMC模块的位置如下图所示:'''</big><p>[[File:plus-5-22. Windows下SSH远程登录开发板 166png]]</p>|}</li><li><p>RTC电池,接口为2pin,1.25mm间距</p><p>[[File:plus-5-23.png]]</p>{| class="wikitable" style="background-color:#adb的使用方法ffffdc;width:800px;" |-|3<big>'''开发板上接RTC电池接口的位置如下图所示:'''</big><p>[[File:plus-5-24.png]]</p>|}</li><li><p>喇叭,接口为2pin,1.925mm间距</p><p>[[File:plus-5-25. ADB的使用方法 168png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''开发板上接喇叭的接口位置如下图所示:'''</big><p>[[#网络adb的使用方法File:plus-5-26.png]]</p>|}</li><li><p>配套外壳('''待添加图片和组装方法''')</p></li><li><p>'''3.93V'''的USB转TTL模块和杜邦线,使用串口调试功能时,需要USB转TTL模块和杜邦线来连接开发板和电脑</p><p>[[File:plus-5-27.1png]] [[File:plus-5-28. 网络adb的使用方法 168png]]</p></li><li><p>安装有Ubuntu和Windows操作系统的个人电脑</p>
[[#使用type{| class="wikitable" style="width: 600px"|-| style="text-align: left;"| 1| style="text-c数据线连接adbalign: left;"|3.9Ubuntu22.04 PC| style="text-align: left;"| 可选,用于编译Linux源码|-| style="text-align: left;"| 2. 使用type| style="text-align: left;"| Windows PC| style="text-c数据线连接adb 170]]align: left;"| 用于烧录Android和Linux镜像|}</li></ol>
== 下载开发板的镜像和相关的资料 ==<ol start="1" style="list-style-type: decimal;"><li><p>中文版资料的下载网址为为:</p>{| class="wikitable" style="width:800px;" |-| <big><p>'''http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html'''</p></big>|}<p>[[#上传文件到开发板linux系统中的方法|3.10File:plus-5-29. 上传文件到开发板Linux系统中的方法 172png]]</p>
[[#在ubuntu<li><p>英文版资料的下载网址为:</p>{| class="wikitable" style="width:800px;" |-pc中上传文件到开发板linux系统中的方法|3<big>'''http://www.orangepi.10org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.1html'''</big>|}<p>[[File:plus-5-30. 在Ubuntu PC中上传文件到开发板Linux系统中的方法 172png]]</p></li><li><p>资料主要包含</p>a. '''用户手册和原理图:'''保存在百度云盘和谷歌网盘上<br>
[[#在windows-pc中上传文件到开发板linux系统中的方法|3b.10.2. 在Windows PC中上传文件到开发板Linux系统中的方法 176]]'''官方工具:'''主要包括开发板使用过程中需要用到的软件<br>
[[#hdmi测试|3c.11. HDMI测试 180]]'''Android源码''':保存在百度云盘和谷歌网盘上<br>
[[#hdmi输出测试|3d.11.1. HDMI输出测试 180]]'''Linux源码''':保存在Github上<br>
[[#hdmi-in的测试方法|3e.11.2. HDMI IN的测试方法 182]]'''OpenWRT源码''':保存在Github上<br>
[[#hdmi转vga显示测试|3f.11.3. HDMI转VGA显示测试 184]]'''Android镜像''':保存在百度云盘和谷歌网盘上<br>
[[#hdmi分辨率设置方法|3g.11.4. HDMI分辨率设置方法 186]]'''Ubuntu镜像''':保存在百度云盘和谷歌网盘上<br>
[[#蓝牙使用方法|3h.12. 蓝牙使用方法 188]]'''Debian镜像''':保存在百度云盘和谷歌网盘上<br>
[[#桌面版镜像的测试方法-1|3i.12.1. 桌面版镜像的测试方法 188]]'''Orange Pi OS镜像''':保存在百度云盘和谷歌网盘上<br>
[[#_Toc939777078|3j.13. USB接口测试 191]]'''OpenWRT镜像''': 保存在百度云盘和谷歌网盘上
[[#连接usb鼠标或键盘测试|3.13.1. 连接USB鼠标或键盘测试 191]]</li></ol><span id="基于windows-pc将linux镜像烧录到tf卡的方法"></span>
[[#_Toc104139463|3.13.2. 连接USB存储设备测试 191]]== 基于Windows PC将Linux镜像烧录到TF卡的方法 ==
[[{| class="wikitable" style="background-color:#usb无线网卡测试ffffdc;width:800px;" |3-| <br><big>'''注意,这里说的Linux镜像具体指的是从[http://www.13orangepi.3cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus. USB无线网卡测试 192]html Orange Pi资料下载页面]下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。'''</big><br><br>|}
[[#usb摄像头测试|3.13.4. USB摄像头测试 199]]<span id="使用balenaetcher烧录linux镜像的方法"></span>=== 使用balenaEtcher烧录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/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般在2GB以上。</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''</big><p>[[File:plus-5-31.png]]</p>|}</li><li><p>然后下载Linux镜像的烧录软件——'''balenaEtcher''',下载地址为:</p></li> <big>'''https://www.balena.io/etcher/'''</big></ol><ol start="5" style="list-style-type: decimal;"><li><p>进入balenaEtcher下载页面后,点击绿色的下载按钮会跳到软件下载的地方</p><p>[[File:plus-5-32.png]]</p></li><li><p>然后可以选择下载balenaEtcher的Portable版本的软件,Portable版本无需安装,双击打开就可以使用</p><p>[[File:plus-5-33.png]]</p></li><li><p>如果下载的是需要安装版本的balenaEtcher,请先安装再使用。如果下载的Portable版本balenaEtcher,直接双击打开即可,打开后的balenaEtcher界面如下图所示:</p><p>[[File:plus-5-34.png]]</p>{| class="wikitable" style="background-color:#_Toc2089822033ffffdc;width:800px;" |3-| <big>'''打开balenaEtcher时如果提示下面的错误:'''</big><p>[[File:plus-5-35.14png]]</p><big>'''请选择balenaEtcher后点击右键,然后选择以管理员身份运行。'''</big><p>[[File:plus-5-36. 音频测试 202png]]</p>|}</li></ol>
<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>[[#在桌面系统中测试音频方法|3File:plus-5-37.14png]]</p></li></ol></li><li><p>balenaEtcher烧录Linux镜像的过程显示的界面如下图所示,另外进度条显示紫色表示正在烧录Linux镜像到TF卡中</p><p>[[File:plus-5-38.1png]]</p></li><li><p>Linux镜像烧录完后,balenaEtcher默认还会对烧录到TF卡中的镜像进行校验,确保烧录过程没有出问题。如下图所示,显示绿色的进度条就表示镜像已经烧录完成,balenaEtcher正在对烧录完成的镜像进行校验</p><p>[[File:plus-5-39.png]]</p></li><li><p>成功烧录完成后balenaEtcher的显示界面如下图所示,如果显示绿色的指示图标说明镜像烧录成功,此时就可以退出balenaEtcher,然后拔出TF卡插入到开发板的TF卡槽中使用了</p><p>[[File:plus-5-40. 在桌面系统中测试音频方法 202png]]</p></li></ol>
[[#使用命令播放音频的方法|3.14.2. 使用命令播放音频的方法 204]]<span id="使用rkdevtool烧录linux镜像到tf卡中的方法"></span>
[[#使用命令测试录音的方法|3.14.3. 使用命令测试录音的方法 206]]=== 使用RKDevTool烧录Linux镜像到TF卡中的方法 ===
<ol style="list-style-type: decimal;"><li><p>首先需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:plus-5-17.png]]</p></li><li><p>还需要准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''级或'''class10'''级以上,建议使用闪迪等品牌的TF卡</p></li><li><p>然后将TF卡插入开发板的卡槽中</p><p>[[File:plus-5-42.png]]</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和'''MiniLoader'''以及烧录工具'''RKDevTool_Release_v3.15.zip'''</p><ol style="list-style-type: lower-alpha;"><li><p>在[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html Orange Pi的资料下载页面]首先选择'''官方工具''',然后进入下面的文件夹中</p><p>[[File:plus-5-43.png]]</p></li><li><p>然后下载下面的所有文件</p><p>[[File:plus-5-44.png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <br><big>'''注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。'''</big><br><br>|}</li></ol></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</p>{| class="wikitable" style="background-color:#温度传感器ffffdc;width:800px;" |-|3<big>'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''</big><p>[[File:plus-5-31.png]]</p>|}</li><li><p>然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可</p><p>[[File:plus-5-46.png]]</p></li><li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>点击”'''驱动安装'''”按钮</p><p>[[File:plus-5-47.png]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:plus-5-48.png]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v3.15. 温度传感器 207zip''',此软件无需安装,在解压后的文件夹中找到'''RKDevTool'''打开即可</p><p>[[File:plus-5-49.png]]</p></li><li><p>打开'''RKDevTool'''烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:plus-5-50.png]]</p></li><li><p>然后开始烧录Linux镜像到TF卡中</p><ol style="list-style-type: lower-alpha;"><li><p>首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示</p><p>[[File:plus-5-51.png]]</p></li><li><p>确保开发板没有连接Type-C电源</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:plus-5-52.png]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了。Type-C电源接口的位置如下所示:</p><p>[[File:plus-5-53.png]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示“'''发现一个MASKROM设备'''”</p><p>[[File:plus-5-54.png]]</p></li><li><p>然后将鼠标光标放在下面的这片区域中</p><p>[[File:plus-5-55.png]]</p></li><li><p>然后点击鼠标右键会弹出下图所示的选择界面</p><p>[[File:plus-5-56.png]]</p></li><li><p>然后选择'''导入配置'''选项</p><p>[[File:plus-5-57.png]]</p></li><li><p>然后选择前面下载的'''MiniLoader'''文件夹中的'''rk3588_linux_tfcard.cfg'''配置文件,再点击'''打开'''</p><p>[[File:plus-5-58.png]]</p></li><li><p>然后点击'''确定'''</p><p>[[File:plus-5-59.png]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:plus-5-60.png]]</p></li><li><p>再选择前面下载的'''MiniLoader'''文件夹中'''MiniLoaderAll.bin''',再点击'''打开'''</p><p>[[File:plus-5-61.png]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:plus-5-62.png]]</p></li><li><p>然后选择想要烧录的linux镜像的路径,再点击'''打开'''</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''在烧录镜像前,建议将要烧录的linux镜像重命名为orangepi.img或者其它比较短的名字,这样在烧录镜像的时候就能看到烧录进度的百分比数值。'''</big>|}<p>[[File:plus-5-63.png]]</p></li><li><p>然后请勾选上'''强制按地址写'''选项</p><p>[[File:plus-5-64.png]]</p></li><li><p>再点击执行按钮就会开始烧录linux镜像到开发板的tf卡中</p><p>[[File:plus-5-65.png]]</p></li><li><p>linux镜像烧录完后的显示log如下图所示</p><p>[[File:plus-5-66.png]]</p></li><li><p>烧录完linux镜像到tf卡中后,linux系统会自动启动。</p></li></ol></li></ol>
[[#_Toc1924263309|3.16. 40 Pin扩展接口引脚使用说明 208]]<span id="使用win32diskimager烧录linux镜像的方法"></span>
[[#安装wiringop的方法|3.17. 安装wiringOP的方法 210]]=== 使用Win32Diskimager烧录Linux镜像的方法 ===
[[#_Toc1586073625|3<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> <big>'''https://www.18sdcard. 40 pin接口GPIO、I2C、UART、SPI、CAN和PWM测试 212]]org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip '''</big></li>
[[#40-pin-gpio口测试|3.18.1. 40 pin GPIO口测试 212]]<li><p>下载完后直接解压安装即可,然后打开软件</p></li><li><p>如果电脑只插入了TF卡,则”'''Select card'''”一栏中会显示TF卡的盘符,如果电脑插入了多个USB存储设备,可以通过下拉框选择TF卡对应的盘符</p><div class="figure">
[[#40File:plus-pin5-gpio口上下拉电阻的设置方法|367.18.2. 40 pin GPIO口上下拉电阻的设置方法 214png]]
[[#_Toc1538752376|3.18.3. 40 pin SPI测试 215]]</div></li><li><p>然后点击”'''Format'''”,格式化前会弹出一个警告框,选择”'''是(Y)'''”后就会开始格式化</p>
[[#_Toc1875115140|3File:plus-5-68.18.4png]]</li><li><p>格式化完TF卡后会弹出下图所示的信息,点击确定即可</p><p>[[File:plus-5-69. 40 pin I2C测试 218png]]</p></li></ol>
<li><p>从[[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</p>{| class="wikitable" style="background-color:#40ffffdc;width:800px;" |-pin的uart测试|3.18.<big>'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''</big><p>[[File:plus-5-31. 40 pin的UART测试 220png]]</p>|}</li><li><p>使用'''Win32Diskimager'''烧录Linux镜像到TF卡</p><ol style="list-style-type: lower-alpha;"><li>Win32Diskimager的下载页面为</li> <big>'''http://sourceforge.net/projects/win32diskimager/files/Archive/'''</big></li></ol>
<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>[[#pwm的测试方法|3File:plus-5-71.18.6. PWM的测试方法 223png]]</p></li></ol></li><li><p>镜像写入完成后,点击”'''退出'''”按钮退出即可,然后就可以拔出TF卡插到开发板中启动</p></li></ol>
[[#can的测试方法|3.18.7. CAN的测试方法 227]]<span id="基于ubuntu-pc将linux镜像烧录到tf卡的方法"></span>
[[== 基于Ubuntu PC将Linux镜像烧录到TF卡的方法 =={| class="wikitable" style="background-color:#wiringopffffdc;width:800px;" |-python的安装使用方法|3<big>'''注意,这里说的Linux镜像具体指的是从[http://www.19orangepi. wiringOPcn/html/hardWare/computerAndMicrocontrollers/service-Python的安装使用方法 235]and-support/Orange-Pi-5-plus.html Orange Pi资料下载页面]下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像,Ubuntu PC指的是安装了Ubuntu系统的个人电脑。'''</big><br>|}
[[#_Toc1110840395首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''级或'''class10'''级以上,建议使用闪迪等品牌的TF卡# 然后使用读卡器把TF卡插入电脑# 下载balenaEtcher软件,下载地址为::{| class="wikitable" style="width:800px;" |-|3'''https://www.19balena.1. wiringOP-Python的安装方法 235]]io/etcher/'''|}
<ol start="4" style="list-style-type: decimal;"><li><p>进入balenaEtcher下载页面后,点击绿色的下载按钮会跳到软件下载的地方</p><p>[[File:plus-5-32.png]]</p></li><li><p>然后选择下载Linux版本的软件即可</p><p>[[File:plus-5-73.png]]</p></li><li><p>从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''</big><p>[[File:plus-5-31.png]]</p>|}<p>7z结尾的压缩包的解压命令如下所示:</p>{| class="wikitable" style="width:800px;" |-|<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>{| class="wikitable" style="width:800px;" |-|<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''' #_Toc572998836镜像文件</p>|}</li><li><p>解压镜像后可以先用'''sha256sum -c *.sha'''命令计算下校验和是否正确,如果提示'''成功'''说明下载的镜像没有错,可以放心的烧录到TF卡,如果提示'''校验和不匹配'''说明下载的镜像有问题,请尝试重新下载</p>{| class="wikitable" style="width:800px;" |-|<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>{| class="wikitable" style="width:800px;" |-|<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.19AppImage'''即可打开balenaEtcher('''无需安装'''),balenaEtcher打开后的界面显示如下图所示</p><p>[[File:plus-5-75.2png]]</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:plus-5-76.png]]</p></li></ol></li><li><p>balenaEtcher烧录Linux镜像的过程显示的界面如下图所示,另外进度条显示紫色表示正在烧录Linux镜像到TF卡中</p><p>[[File:plus-5-77. 40 pin GPIO口测试 237png]]</p></li></ol>
<ol start="11" style="list-style-type: decimal;"><li><p>Linux镜像烧录完后,balenaEtcher默认还会对烧录到TF卡中的镜像进行校验,确保烧录过程没有出问题。如下图所示,显示绿色的进度条就表示镜像已经烧录完成,balenaEtcher正在对烧录完成的镜像进行校验</p><p>[[#_Toc259985886|3File:plus-5-78.19.3png]]</p></li><li><p>成功烧录完成后balenaEtcher的显示界面如下图所示,如果显示绿色的指示图标说明镜像烧录成功,此时就可以退出balenaEtcher,然后拔出TF卡插入到开发板的TF卡槽中使用了</p><p>[[File:plus-5-79. 40 pin SPI测试 239png]]</p></li></ol>
[[#_Toc1690208511|3.19.4. 40 pin I2C测试 243]]<span id="烧录linux镜像到emmc中的方法"></span>
[[#_Toc1675124788|3.19.5. 40 pin的UART测试 246]]== 烧录Linux镜像到eMMC中的方法 ==
<span id="使用rkdevtool烧录linux镜像到emmc中的方法"></span>=== 使用RKDevTool烧录Linux镜像到eMMC中的方法 ==={| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''注意,下面所有的操作都是在Windows电脑中进行的。'''</big>|}{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''注意,这里说的Linux镜像具体指的是从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html Orange Pi资料下载页面]下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。'''</big>|}<ol style="list-style-type: decimal;"><li><p>开发板预留了eMMC模块的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:</p><p>[[File:plus-5-80-1.png]]</p></li><li><p>还需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:plus-5-17.png]]</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和'''MiniLoader'''以及烧录工具'''RKDevTool_Release_v3.15.zip'''</p><ol style="list-style-type: lower-alpha;"><li><p>在[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html Orange Pi的资料下载页面]首先选择官方工具,然后进入下面的文件夹中</p><p>[[File:plus5-82.png]]</p></li><li><p>然后下载下面的所有文件</p><p>[[File:plus5-83.png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。'''</big>|}</li></ol></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''</big><p>[[File:plus-5-31.png]]</p>|}</li><li><p>然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可</p><p>[[File:plus-5-46.png]]</p></li><li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>点击”'''驱动安装'''”按钮</p><p>[[File:plus-5-47.png]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:plus-5-48.png]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v3.15.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可</p><p>[[File:plus-5-49.png]]</p></li><li><p>打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:plus-5-50.png]]</p></li><li><p>然后开始烧录Linux镜像到eMMC中</p><ol style="list-style-type: lower-alpha;"><li><p>首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示</p><p>[[File:plus-5-51.png]]</p></li><li><p>确保开发板没有插入TF卡,没有连接电源</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:plus-5-52.png]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了</p><p>[[File:plus-5-53.png]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p><p>[[File:plus-5-54.png]]</p></li><li><p>然后将鼠标光标放在下面的这片区域中</p><p>[[File:plus-5-55.png]]</p></li><li><p>然后点击鼠标右键会弹出下图所示的选择界面</p><p>[[File:plus-5-56.png]]</p></li><li><p>然后选择'''导入配置'''选项</p><p>[[File:plus-5-57.png]]</p></li><li><p>然后选择前面下载的'''MiniLoader'''文件夹中的'''rk3588_linux_emmc.cfg'''配置文件,再点击'''打开'''</p><p>[[File:plus-5-97.png]]</p></li><li><p>然后点击'''确定'''</p><p>[[File:plus-5-98.png]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:plus-5-99.png]]</p></li><li><p>再选择前面下载的'''MiniLoader'''文件夹中'''MiniLoaderAll.bin''',再点击'''打开'''</p><p>[[File:plus-5-100.png]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:plus-5-101.png]]</p></li><li><p>然后选择想要烧录的linux镜像的路径,再点击'''打开'''</p>{| class="wikitable" style="background-color:#硬件看门狗测试ffffdc;width:800px;" |-| <big>'''在烧录镜像前,建议将要烧录的linux镜像重命名为orangepi.img或者其它比较短的名字,这样在烧录镜像的时候就能看到烧录进度的百分比数值。'''</big>|3}<p>[[File:plus-5-63.png]]</p></li><li><p>然后请勾选上'''强制按地址写'''选项</p><p>[[File:plus-5-103.png]]</p></li><li><p>再点击执行按钮就会开始烧录linux镜像到开发板的eMMC中</p><p>[[File:plus-5-104.20png]]</p></li><li><p>linux镜像烧录完后的显示log如下图所示</p><p>[[File:plus-5-105. 硬件看门狗测试 248png]]</p></li><li><p>烧录完linux镜像到eMMC中后,linux系统会自动启动。</p></li></ol>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''注意,烧录镜像到eMMC中后如果测试发现启动不了,请清空下SPIFlash后再启动试下。清空SPIFlash的方法请参考[[Orange Pi 5 Plus#使用RKDevTool清空SPIFlash的方法|'''使用RKDevTool清空SPIFlash的方法''']]小节的内容。'''</big>|}</li></ol>
[[#_Toc567390467|3.21. 查看RK3588芯片的序列号 249]]<span id="使用dd命令烧录linux镜像到emmc中的方法"></span>
[[=== 使用dd命令烧录Linux镜像到eMMC中的方法 ==={| class="wikitable" style="background-color:#_Toc594748367ffffdc;width:800px;" |-| <big>'''注意,这里说的Linux镜像具体指的是从Orange Pi资料下载页面下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。'''</big>|3.22. 安装Docker的方法 249]]}
<ol style="list-style-type: decimal;"><li><p>开发板预留了eMMC模块的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC模块和插入开发板的方法如下所示:</p><p>[[#下载安装arm64版本balenaetcher的方法|File:plus-5-80-2.png]][[File:plus-5-80-3.23png]]</p><p>[[File:plus-5-80-4. 下载安装arm64版本balenaEtcher的方法 250png]]</p></li><li><p>使用dd命令烧录linux镜像到eMMC中需要借助TF卡来完成,所以首先需要将linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入linux系统。烧录Linux镜像到TF卡的方法请见[[Orange Pi 5 Plus#基于Windows PC将Linux镜像烧录到TF卡的方法|'''基于Windows PC将Linux镜像烧录到TF卡的方法''']]和[[Orange Pi 5 Plus#基于Ubuntu PC将Linux镜像烧录到TF卡的方法|'''基于Ubuntu PC将Linux镜像烧录到TF卡的方法''']]两小节的说明。</p></li><li><p>使用TF卡启动linux系统后,我们首先将解压后的linux镜像文件(从官网下载的Debian、Ubuntu镜像或者OPi Arch镜像)上传到TF卡中。上传linux镜像文件到开发板中的方法请参考[[Orange Pi 5 Plus#上传文件到开发板Linux系统中的方法|'''上传文件到开发板Linux系统中的方法''']]小节的说明。</p></li><li><p>上传完镜像到开发板的linux系统中后,我们再在开发板linux系统的命令行中进入镜像文件的存放路径,比如,我将开发板的linux镜像存放在'''/home/orangepi/Desktop'''目录下了,然后进入'''/home/orangepi/Desktop'''目录就能看到上传的镜像文件了。</p>{| class="wikitable" style="width:800px;" |-|<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>|}
[[{| class="wikitable" style="background-color:#宝塔linux面板的安装方法ffffdc;width:800px;" |-|3.24. 宝塔Linux面板的安装方法 252]]<p>'''怎么进入开发板linux系统的命令行?'''</p></li># '''使用串口登录终端的方法请参考[[Orange Pi 5 Plus#_Toc1534525445调试串口的使用方法|3.25. 设置中文环境以及安装中文输入法 257调试串口的使用方法]]一小节的说明。''' # '''使用ssh远程登录linux系统请参考[[Orange Pi 5 Plus#_Toc45877095SSH远程登录开发板|3.25.1. Debian 11系统的安装方法 257SSH远程登录开发板]]一小节的说明。'''# '''如果接了HDMI、LCD等显示屏幕,可以在桌面中打开一个命令行终端。'''|}</ol><!-- --><ol start="5" style="list-style-type: decimal;"><li><p>接下来,我们先使用下面的命令确认下eMMC的设备节点</p>{| class="wikitable" style="width:800px;" |-|[[<p>orangepi@orangepi:~/Desktop$ '''ls /dev/mmcblk*boot0 | cut -c1-12'''</p><p>'''<span style="color:#_Toc1536089130FF0000">/dev/mmcblk1</span>'''</p>|}</li><li><p>然后我们可以使用dd命令清空下eMMC,注意'''of='''参数后面请填入上面命令输出的结果</p>{| class="wikitable" style="width:800px;" |3.25.2. Ubuntu 20.04系统的安装方法 263]]-|[[<p>orangepi@orangepi:~/Desktop$ '''sudo dd bs=1M if=/dev/zero of=<span style="color:#ubuntuFF0000">/dev/mmcblk1</span> 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=''' > 参数后面是要填写linux镜像存放的完整路径+Linux镜像的名字(比如'''/home/orangepi/Desktop/Linux镜像的名字''')。因为上面我们已经进入linux镜像的路径下了,所以只需要填写Linux镜像的名字的即可。</p></li><li><p>下面命令中的linux镜像名请不要照抄,要替换为实际的镜像名(因为镜像的版本号可能会更新)。</p>{| class="wikitable" style="width:1000px;" |-2204系统的安装方法|3<p>'''sudo dd bs=1M if=Orangepi5plus_x.x.25x_debian_bullseye_desktop_xfce_linux5.310. Ubuntu 22110.04系统的安装方法 267]]img of=<span style="color:#FF0000">/dev/mmcblk1</span> status=progress'''</p><p>'''sudo''' '''sync'''</p>|}</li>[[{| class="wikitable" style="background-color:#远程登录linux系统桌面的方法ffffdc;width:800px;" |3.26. 远程登录Linux系统桌面的方法 273]]-| [[<big>'''<span style="color:#_Toc1478427515|3.26FF0000">注意,如果上传的是 .17z或者. 使用NoMachine远程登录 273]]xz 结尾linux镜像压缩文件,使用dd命令烧录前请记得先解压。</span>'''</big>
[[#_Toc1204547171<big>'''dd命令的所有参数的详细说明和更多用法可以在linux系统中执行man dd命令来查看。'''</big>|3.26.2. 使用VNC远程登录 276]]}</li></ol></li><li><p>当成功烧录开发板的linux镜像到eMMC后,此时就可以使用'''poweroff'''命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动eMMC中的linux系统了。</p></li></ol>
[[#linux系统支持的部分编程语言测试|3.27. Linux系统支持的部分编程语言测试 278]]<span id="烧录linux镜像到spiflashnvme-ssd中的方法"></span>
[[== 烧录Linux镜像到SPIFlash+NVMe SSD中的方法 =={| class="wikitable" style="background-color:#_Toc2117529784ffffdc;width:800px;" |3-| <big>'''注意,这里说的Linux镜像具体指的是从[http://www.27orangepi.1cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus. Debian Bullseye系统 278]html Orange Pi资料下载页面]下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。'''</big>|}
[[{| class="wikitable" style="background-color:#_Toc1850817164ffffdc;width:800px;" |-| <big>'''注意,下面所有的操作都是在Windows电脑中进行的。'''</big>|3.27.2. Ubuntu Focal系统 280]]}
[[#ubuntu-jammy系统|3.27.3. Ubuntu Jammy系统 282]]<span id="使用rkdevtool烧录的方法"></span>
[[#_Toc1900970922|3.28. QT的安装方法 284]]=== 使用dd命令烧录的方法 ===
<ol style="list-style-type: decimal;"><li><p>首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。</p><p>[[File:plus-5-21.png]]</p></li><li><p>然后把NVMe SSD插入下图所示的开发板的M.2 PCIe接口,并固定好</p><p>[[File:plus-5-108.png]]</p></li><li><p>SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</p><p>[[File:plus-5-109.png]]</p></li><li><p>烧录linux镜像到SPIFlash+NVMe SSD中需要借助TF卡来完成,所以首先需要将linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入linux系统。烧录Linux镜像到TF卡的方法请见[[Orange Pi 5 Plus#基于Windows PC将Linux镜像烧录到TF卡的方法|'''基于Windows PC将Linux镜像烧录到TF卡的方法''']]和[[Orange Pi 5 Plus#_Toc1289407142基于Ubuntu PC将Linux镜像烧录到TF卡的方法|3.29. ROS安装方法 292'''基于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''','''<span style="color:#FF0000">普通用户记得加sudo权限</span>'''</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo nand-sata-install'''</p>|}</li><li><p>然后选择'''7 Install/Update ther bootloader on SPI Flash'''</p></li>
[[#_Toc1823050795|3.29.1. Ubuntu20.04安装ROS 1 Noetic的方法 292]]<div class="figure">
[[#_Toc870443850|3File:plus-5-110.29.2. Ubuntu20.04安装ROS 2 Galactic的方法 296png]]
[[#ubuntu2204安装ros</div></li></ol><ol start="3" style="list-style-2type: lower-humble的方法|3.29.3. Ubuntu22.04安装ROS 2 Humble的方法 299]]alpha;"><li>然后选择'''<Yes>'''</li>
[[#_Toc1550682287|3.30. 安装内核头文件的方法 301]]<div class="figure">
[[#_Toc887686537|3File:plus-5-111.31. 10.1寸MIPI LCD屏幕的使用方法 303png]]
[[#101寸mipi</div></ol><ol start="4" style="list-屏幕的组装方法|3.31.1. 10.1寸MIPI 屏幕的组装方法 303]]style-type: lower-alpha;"><li>然后请耐心等待烧录完成,烧录完成后显示如下所示(左下角会显示一个'''Done'''):</li>
[[#打开101寸mipiFile:plus-lcd屏幕配置的方法|3.31.2. 打开105-112.1寸MIPI LCD屏幕配置的方法 306png]]
[[{| class="wikitable" style="background-color:#服务器版镜像旋转显示方向的方法ffffdc;width:800px;" |-|3.31.3. 服务器版镜像旋转显示方向的方法 308]]<big>'''OPi OS Arch系统中没有nand-sata-install这个脚本,请使用下面的命令将u-boot镜像到SPI Flash中:'''</big>
[[#桌面版镜像旋转显示和触摸方向的方法orangepi@orangepi ~]$ '''sudo dd if=/boot/rkspi_loader.img of=/dev/mtdblock0'''|3.31.4. 桌面版镜像旋转显示和触摸方向的方法 309]]}</ol></ol>
<ol start="6" style="list-style-type: decimal;"><li><p>然后将linux镜像文件(从官网下载的Debian、Ubuntu或者OpenWRT镜像)上传到TF卡中。上传linux镜像文件到开发板中的方法请参考[[Orange Pi 5 Plus#开关机logo使用说明上传文件到开发板Linux系统中的方法|3'''上传文件到开发板Linux系统中的方法''']]小节的说明。</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''</big><p>[[File:plus-5-31.32. 开关机logo使用说明 311png]]</p>|}</li><li><p>上传完镜像到开发板的linux系统中后,我们再在开发板linux系统的命令行中进入镜像文件的存放路径,比如,我将开发板的linux镜像存放在'''/home/orangepi/Desktop'''目录下了,然后进入'''/home/orangepi/Desktop'''目录就能看到上传的镜像文件了。</p>{| class="wikitable" style="width:800px;" |-|<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>|}
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''怎么进入开发板linux系统的命令行?'''</big><ol start="1" style="list-style-type: decimal;"><li><p>'''使用串口登录终端的方法请参考[[Orange Pi 5 Plus#调试串口的使用方法|调试串口的使用方法]]一小节的说明。'''</p></li><li><p>'''使用ssh远程登录linux系统请参考[[Orange Pi 5 Plus#SSH远程登录开发板|SSH远程登录开发板]]一小节的说明。'''</p></li><li><p>'''如果接了HDMI、LCD等显示屏幕,可以在桌面中打开一个命令行终端。'''</p>|}</li></ol><!-- --><ol start="8" style="list-style-type: decimal;"><li><p>接下来,我们先确认下NVMe SSD已经被开发板的linux正常识别了。如果NVMe SSD正常识别了的话,使用'''sudo fdisk -l'''命令就能看到'''nvme'''相关的信息</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~/Desktop$ '''sudo fdisk -l | grep "nvme0n1"'''</p><p>Disk /dev/nvme0n1: 1.86 TiB, 2048408248320 bytes, 4000797360 sectors</p>|}<p>使用'''lspci'''命令可以看到一个NVMe相关的PCI设备</p>{| class="wikitable" style="width:800px;" |-|<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 '''<span style="color:#ov13850和ov13855FF0000">NVMe</span>''' Solid State Drive</p><p>.…</p>|}</li><li><p>然后我们可以使用dd命令清空下NVMe SSD(可选)</p>{| class="wikitable" style="width:1000px;" |-mipi摄像头的测试方法|3<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=''' > 参数后面是要填写linux镜像存放的完整路径+Linux镜像的名字(比如'''/home/orangepi/Desktop/Linux镜像的名字''')。因为上面我们已经进入linux镜像的路径下了,所以只需要填写Linux镜像的名字的即可。</p></li><li><p>下面命令中的linux镜像名请不要照抄,要替换为实际的镜像名(因为镜像的版本号可能会更新)。</p>{| class="wikitable" style="width:1000px;" |-|<p>'''sudo dd bs=1M if=orangepi5plus_x.33x. OV13850和OV13855 MIPI摄像头的测试方法 312]]x_debian_bullseye_desktop_xfce_linux5.10.110.img of=/dev/nvme0n1 status=progress'''</p><p>'''sudo''' '''sync'''</p>|}{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''<span style="color:#FF0000">注意,如果上传的是 .7z或者.xz 或者.gz结尾linux镜像压缩文件,使用dd命令烧录前请记得先解压。</span>'''</big>
[[#红外接收的测试方法<big>'''dd命令的所有参数的详细说明和更多用法可以在linux系统中执行man dd命令来查看。'''</big>|3.34. 红外接收的测试方法 315]]}</li></ol></li><li><p>当成功烧录开发板的linux镜像到NVMe SSD后,此时就可以使用'''poweroff'''命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动SPIFlash+NVMe SSD中的linux系统了。</p></li></ol>
[[#rtc的使用方法|3.35. RTC的使用方法 318]]<span id="使用balenaetcher软件烧录的方法"></span>
[[=== 使用balenaEtcher软件烧录的方法 ==={| class="wikitable" style="background-color:#pwm散热风扇的使用方法ffffdc;width:800px;" |-| <big>'''OPi OS Arch系统和OpenWRT系统请不要使用这种方法。'''</big>|3.36. PWM散热风扇的使用方法 319]]}
<ol style="list-style-type: decimal;"><li><p>首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。</p><p>[[File:plus-5-21.png]]</p></li><li><p>然后把NVMe SSD插入下图所示的开发板的M.2 PCIe接口,并固定好</p><p>[[File:plus-5-108.png]]</p></li><li><p>SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</p><p>[[File:plus-5-109.png]]</p></li><li><p>烧录linux镜像到SPIFlash+NVMe SSD中需要借助TF卡来完成,所以首先需要将linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入linux系统。烧录Linux镜像到TF卡的方法请见[[Orange Pi 5 Plus#关机和重启开发板的方法基于Windows PC将Linux镜像烧录到TF卡的方法|3'''基于Windows PC将Linux镜像烧录到TF卡的方法''']]和[[Orange Pi 5 Plus#基于Ubuntu PC将Linux镜像烧录到TF卡的方法|'''基于Ubuntu PC将Linux镜像烧录到TF卡的方法''']]两小节的说明。</p></li><li><p>启动进入TF卡中的linux系统后,请先确认下NVMe SSD已经被开发板的linux系统正常识别了。如果NVMe SSD正常识别了的话,使用'''sudo fdisk -l'''命令就能看到'''nvme'''相关的信息</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~/Desktop$ '''sudo fdisk -l | grep "nvme0n1"'''</p><p>Disk /dev/nvme0n1: 1.86 TiB, 2048408248320 bytes, 4000797360 sectors</p>|}<p>使用'''lspci'''命令可以看到一个NVMe相关的PCI设备</p>{| class="wikitable" style="width:800px;" |-|<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.370 Non-Volatile memory controller: SK hynix BC501 '''<span style="color:#FF0000">NVMe</span>''' Solid State Drive</p><p>. 关机和重启开发板的方法 320]]…</p>|}</li><li><p>linux镜像中已经预装了balenaEtcher,打开方法如下所示:</p></li>
[[#ubuntu2204-gnome-wayland桌面系统使用说明|4. Ubuntu22.04 Gnome Wayland桌面系统使用说明 322]]<div class="figure">
[[#ubuntu2204File:plus-gnome桌面系统适配情况|4.1. Ubuntu225-117.04 Gnome桌面系统适配情况 322png]]
</div>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''如果没有预装,balenaEtcher arm64版本的下载安装方法请参考[[Orange Pi 5 Plus#确认系统当前使用的窗口系统为wayland的方法下载安装arm64版本balenaEtcher的方法|4.2. 确认系统当前使用的窗口系统为wayland的方法 324下载安装arm64版本balenaEtcher的方法]]小节的说明。'''</big>|}</ol><ol start="7" style="list-style-type: decimal;"><li>balenaEtcher打开后的界面如下所示:</li>
[[#切换默认音频设备的方法|4.3. 切换默认音频设备的方法 325]]<div class="figure">
[[#gpu的测试方法|4File:plus-5-118.4. GPU的测试方法 326png]]
[[#chromium浏览器硬解播放视频的测试方法|4.5. Chromium浏览器硬解播放视频的测试方法 327]]</div></ol><ol start="8" style="list-style-type: decimal;"><li><p>使用balenaEtcher烧录u-boot到开发板SPI Flash中的方法如下所示:</p><ol style="list-style-type: lower-alpha;"><li>首先点击'''Flash from file'''</li></li>
[[#kodi硬解播放视频的测试方法|4.6. Kodi硬解播放视频的测试方法 329]]<div class="figure">
[[#ubuntu2204File:plus-gnome安装ros5-2-humble的方法|4.7. Ubuntu22119.04 Gnome安装ROS 2 Humble的方法 337png]]
[[#设置中文环境以及安装中文输入法的方法|4</div></ol><ol start="2" style="list-style-type: lower-alpha;"><li>然后进入'''/usr/lib/linux-u-boot-legacy-orangepi5plus_1.8x. 设置中文环境以及安装中文输入法的方法 339]]x_arm64'''目录,再选择'''rkspi_loader.img''',再点击'''Open'''打开</li>
[[#orangeFile:plus-pi5-os120.png]]</ol><ol start="3" style="list-style-type: lower-alpha;"><li><p>打开'''rkspi_loader.img'''后的界面如下所示:</p><p>[[File:plus-arch系统使用说明|5-121. Orange Pi OS Arch系统使用说明 346png]]</p></li><li><p>然后点击'''Select target'''</p></li>
[[#orange-pi-os-arch系统适配情况|5.1. Orange Pi OS Arch系统适配情况 346]]<div class="figure">
[[#m2File:plus-e-key-pcie-wifi6蓝牙模块的使用方法5-1|5.2. M122.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 348png]]
[[#101寸mipi</div></ol><ol start="5" style="list-lcd屏幕的使用方法style-1|5.3. 10.1寸MIPI LCD屏幕的使用方法 355]]type: lower-alpha;"><li>然后点击'''Show 2 hidden'''打开更多存储设备的选项</li>
[[#101寸mipi-屏幕的组装方法-1|5.3.1. 10.1寸MIPI 屏幕的组装方法 355]]<div class="figure">
[[#打开101寸mipiFile:plus-lcd屏幕配置的方法5-1|5.3.2. 打开10123.1寸MIPI LCD屏幕配置的方法 358png]]
[[#旋转显示和触摸方向的方法|5.3.3. 旋转显示和触摸方向的方法 359]]</div></ol><ol start="6" style="list-style-type: lower-alpha;"><li>然后选择SPI Flash的设备名'''/dev/mtdblock0''',然后点击'''Select'''</li>
[[#ov13850和ov13855-mipi摄像头的测试方法-1|5.4. OV13850和OV13855 MIPI摄像头的测试方法 362]]<div class="figure">
[[#设置中文环境以及安装中文输入法的方法File:plus-1|5.5-124. 设置中文环境以及安装中文输入法的方法 364png]]
[[#hdmi</div></ol><ol start="7" style="list-in的测试方法style-1|5.6. HDMI IN的测试方法 369]]type: lower-alpha;"><li>然后点击'''Flash'''</li>
[[#安装wiringop的方法-1|5.7. 安装wiringOP的方法 373]]<div class="figure">
[[#40File:plus-pin接口gpioi2cuartspican和pwm测试5-1|5.8125. 40 pin接口GPIO、I2C、UART、SPI、CAN和PWM测试 375png]]
[[#40</div></ol><ol start="8" style="list-pinstyle-gpio口测试type: lower-2|5.8.1. 40 pin GPIO口测试 375]]alpha;"><li>然后点击'''Yes, I’m sure'''</li>
[[#40-pin-gpio口上下拉电阻的设置方法-1|5.8.2. 40 pin GPIO口上下拉电阻的设置方法 376]]<div class="figure">
[[#40File:plus-pin5-spi测试-2|5.8.3126. 40 pin SPI测试 377png]]
[[#40</div></ol><ol start="9" style="list-pinstyle-i2c测试type: lower-2|5.8.4. 40 pin I2C测试 379]]alpha;"><li>然后输入开发板linux系统的密码'''orangepi''',就会开始烧录u-boot镜像到SPI Flash中</li>
[[#40-pin的uart测试-2|5.8.5. 40 pin的UART测试 381]]<div class="figure">
[[#pwm的测试方法File:plus-1|5-127.8.6. PWM的测试方法 382png]]
[[#can的测试方法</div></ol><ol start="10" style="list-1|5.8.7. CAN的测试方法 385]]style-type: lower-alpha;"><li>烧录过程的显示如下所示:</li>
[[#linux-sdkorangepi-build使用说明|6. Linux SDK——orangepi-build使用说明 388]]<div class="figure">
[[#_Toc1252146247|6File:plus-5-128.1. 编译系统需求 388png]]
[[#使用开发板的ubuntu2204系统编译|6.1.1. 使用开发板的Ubuntu22.04系统编译 388]]</div></ol><ol start="11" style="list-style-type: lower-alpha;"><li>烧录完成后的显示如下所示:</li>
[[#使用x64的ubuntu2204电脑编译|6.1.2. 使用x64的Ubuntu22.04电脑编译 388]]<div class="figure">
[[#_Toc1589193219|6File:plus-5-129.2. 获取linux sdk的源码 390png]]
[[#_Toc1845846682|6.2.1. 从github下载orangepi</div></ol></ol><ol start="9" style="list-build 390]]style-type: decimal;"><li><p>烧录TF卡中的linux系统到NVMe SSD中的方法(此方法相当于将TF卡中的系统克隆到NVMe SSD)</p><ol style="list-style-type: lower-alpha;"><li>首先点击'''Clone drive'''</li></li>
[[#_Toc1159780654|6.2.2. 下载交叉编译工具链 392]]<div class="figure">
[[#_Toc1972117286|6File:plus-5-130.2.3. orangepi-build完整目录结构说明 393png]]
[[#_Toc443980527|6.3. 编译u</div></ol><ol start="2" style="list-boot 394]]style-type: lower-alpha;"><li>然后选择TF卡的设备名'''/dev/mmcblk1'''</li>
[[#_Toc968863778|6.4. 编译linux内核 398]]<div class="figure">
[[#_Toc266246976|6.File:plus-5-131. 编译rootfs 402png]]
[[#_Toc520541887|6.6. 编译linux镜像 406]]</div></ol><ol start="3" style="list-style-type: lower-alpha;"><li>打开TF卡后的界面如下所示:</li>
[[#linux开发手册|7. Linux开发手册 410]]<div class="figure">
[[#在开发板的linux系统中单独编译内核源码的方法|7File:plus-5-132.1. 在开发板的linux系统中单独编译内核源码的方法 410png]]
[[#openwrt系统使用说明|8. OpenWRT系统使用说明 412]]</div></ol><ol start="4" style="list-style-type: lower-alpha;"><li>然后点击'''Select target'''</li>
[[#_Toc551974236|8.1. OpenWRT版本 412]]<div class="figure">
[[#_Toc189529025|8File:plus-5-122.2. OpenWRT适配情况 412png]]
[[#第一次启动扩容rootfs|8.3. 第一次启动扩容rootfs 412]]</div></ol><ol start="5" style="list-style-type: lower-alpha;"><li>然后点击'''Show 2 hidden'''打开更多存储设备的选项</li>
[[#登录系统的方法|8.4. 登录系统的方法 413]]<div class="figure">
[[#_Toc308167528|8File:plus-5-123.4.1. 通过串口登录 413png]]
[[#_Toc1037782776|8.4.2. 通过SSH登录系统 413]]</div></ol><ol start="6" style="list-style-type: lower-alpha;"><li>然后选择NVMe SSD的设备名'''/dev/nvme0n1''',然后点击'''Select'''</li>
[[#_Toc950424718|8File:plus-5-135.4.3. 登录LuCI管理界面 414png]]</ol><ol start="7" style="list-style-type: lower-alpha;"><li>然后点击'''Flash'''</li>
[[#_Toc1977488319|8.4.4. 通过LuCI管理界面登录终端 415]]<div class="figure">
[[#_Toc448524287|8.4.File:plus-5-136. 使用IP地址+端口号方式登录终端 418png]]
[[#_Toc194094511|</div></ol><ol start="8.5. 通过命令行修改LAN口IP地址的方法 418]]" style="list-style-type: lower-alpha;"><li>然后点击'''Yes, I’m sure'''</li>
[[#_Toc1966119435|8.6. 修改root密码的方法 420]]<div class="figure">
[[#_Toc556487544|8File:plus-5-137.6.1. 通过命令行修改 420png]]
[[#_Toc1400194965|8.6.2. 通过LuCI管理界面修改 420]]</div></ol><ol start="9" style="list-style-type: lower-alpha;"><li>然后输入开发板linux系统的密码orangepi,就会开始烧录linux镜像到SSD中</li>
[[#_Toc847059711|8.7. USB接口测试 422]]<div class="figure">
[[#_Toc1621658433|8File:plus-5-138.7.1. 在命令行下挂载USB存储设备 422png]]
[[#_Toc1963967295|8.7.2. 在LuCI管理界面挂载USB存储设备 423]]</div></ol><ol start="10" style="list-style-type: lower-alpha;"><li>烧录过程的显示如下所示:</li>
[[#_Toc295433935|8File:plus-5-139.8. M.2 E-Key PCIe无线网卡的使用方法 426png]]
[[#_Toc726321032|8.8.1. 创建WIFI热点的方法 426]]<div class="figure">
[[#连接wifi热点的方法|8File:plus-5-140.8.2. 连接WIFI热点的方法 431png]]
[[#_Toc905990476|8.9. 通过命令行安装软件包 435]]</div></ol><ol start="11" style="list-style-type: lower-alpha;"><li>烧录完成后的显示如下所示:</li>
[[#_Toc168030603|8.9.1File:plus-5-141. 在终端通过opkg安装 435png]]</ol><ol start="12" style="list-style-type: lower-alpha;"><li><p>然后需要扩容下NVMe SSD中rootfs分区的容量,步骤如下所示:</p><ol style="list-style-type: none;"><li>a) 首先打开'''GParted''',如果系统没有预装Gparted,请使用apt命令安装下</li></li>{| class="wikitable" style="width:800px;" |-|orangepi@orangepi:~$ '''sudo apt-get install -y gparted'''|}<div class="figure">
[[#_Toc3681354|8File:plus-5-142.10. OpenWRT管理界面安装软件包 435png]]
[[#_Toc2065771130|8.10.1. 查看系统可用软件包列表 435]]</div></ol><ol start="2" style="list-style-type: none;"><li>b) 然后输入linux系统的密码orangepi,再点击'''Authenticate'''</li>
[[#_Toc2140147889|8File:plus-5-143.10.2png]]</ol><ol start="3" style="list-style-type: none;"><li><p>c) 然后点击'''Fix'''</p><p>[[File:plus-5-144. 安装软件包示例 436png]]</p></li><li><p>d) 然后选择NVMe SSD</p></li>
[[#_Toc447661881|8.10.3. 移除软件包示例 439]]<div class="figure">
[[#_Toc887151260|8File:plus-5-145.11. 使用Samba网络共享 440png]]
[[#_Toc258911217|8.12. zerotier使用说明 444]]</div></ol><ol start="5" style="list-style-type: none;"><li>e) 选择NVMe SSD后的显示界面如下所所示:</li>
[[#_Toc968203768|9. OpenWRT源码的编译方法 447]]<div class="figure">
[[#_Toc722161685|9File:plus-5-146.1. 下载OpenWRT源码 447png]]
[[#_Toc5368886|9.2. 编译OpenWRT源码 447]]</div></ol><ol start="6" style="list-style-type: none;"><li>f) 然后选择'''/dev/nvme0n1p2'''分区,再击点击右键,再选择'''Resize/Move'''</li>
[[#_Toc1535353151|10. Android 12系统的使用说明 449]]<div class="figure">
[[#_Toc1274135921|10File:plus-5-147.1. 已支持的Android版本 449png]]
</div></ol><ol start="7" style="list-style-type: none;"><li><p>g) 然后在下图所示的位置将容量拖动到最大</p><p>[[#_Toc194897911|10File:plus-5-148.2png]]</p></li><li><p>h) 然后点击'''Resize/Move'''</p><p>[[File:plus-5-149.png]]</p></li><li><p>i) 然后点击下图位置绿色的 '''<span style="color:green">√</span>'''</p><p>[[File:plus-5-150.png]]</p></li><li><p>j) 再点击'''Apply'''</p><p>[[File:plus-5-151.png]]</p></li><li><p>k) 然后点击'''Close'''关闭即可</p><p>[[File:plus-5-152. Android功能适配情况 449png]]</p></li></ol></ol>
[[#usb无线网卡的使用方法|10.3. USB无线网卡的使用方法 451]]<!-- --><ol start="13" style="list-style-type: lower-alpha;"><li>此时就可以使用'''sudo poweroff'''命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动SPIFlash+NVMe SSD中的linux系统了。</li></ol></ol>
[[#m2<!-- --><ol start="10" style="list-style-type: decimal;"><li><p>第'''9'''步是克隆TF卡中的系统到NMVe SSD中,我们还可以直接烧录linux镜像文件到NVMe SSD中,这里大概说下步骤:</p><ol style="list-estyle-keytype: lower-pciealpha;"><li><p>上传linux镜像文件到开发板的linux系统中</p></li><li><p>然后使用balenaEtcher烧录即可</p><p>[[File:plus-wifi6蓝牙模块的使用方法5-2|10153.4. M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 452png]]</p></li><li><p>'''使用这种方法烧录镜像后无需手动扩容,第一次启动会自动扩容。'''</p></li></ol></li></ol>
[[#wifi的连接测试方法|10.5. WIFI的连接测试方法 453]]=== 使用RKDevTool烧录的方法 ===
<ol style="list-style-type: decimal;"><li><p>首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。</p><p>[[File:plus-5-21.png]]</p></li><li><p>然后把NVMe SSD插入下图所示的开发板的M.2 PCIe接口,并固定好</p><p>[[File:plus-5-108.png]]</p></li><li><p>SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</p><p>[[File:plus-5-109.png]]</p></li><li><p>然后需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:plus-5-17.png]]</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和'''MiniLoader'''以及烧录工具'''RKDevTool_Release_v3.15.zip'''</p><ol style="list-style-type: lower-alpha;"><li><p>在[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html Orange Pi的资料下载页面]首先选择'''官方工具''',然后进入下面的文件夹中</p><p>[[File:plus-5-31.png]]</p></li><li><p>然后下载下面的所有文件</p><p>[[File:plus5-159.png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。'''</big>|}</li></ol></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载”TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''</big><p>[[File:plus-5-31.png]]</p>|}</li><li><p>然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可</p><p>[[File:plus-5-46.png]]</p></li><li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>点击”'''驱动安装'''”按钮</p><p>[[File:plus-5-47.png]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:plus-5-48.png]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v3.15.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可</p><p>[[File:plus-5-49.png]]</p></li><li><p>打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:plus-5-50.png]]</p></li><li><p>然后开始烧录Linux镜像到SSD中</p><ol style="list-style-type: lower-alpha;"><li><p>首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示</p><p>[[File:plus-5-51.png]]</p></li><li><p>确保开发板没有连接电源,'''<span style="color:#_Toc792896434FF0000">并且没有插入TF卡或者eMMC模块</span>'''</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:plus-5-52.png]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了。Type-C电源接口的位置如下所示:</p><p>[[File:plus-5-53.png]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p><p>[[File:plus-5-54.png]]</p></li><li><p>然后将鼠标光标放在下面的这片区域中</p><p>[[File:plus-5-55.png]]</p></li><li><p>然后点击鼠标右键会弹出下图所示的选择界面</p><p>[[File:plus-5-56.png]]</p></li><li><p>然后选择'''导入配置'''选项</p><p>[[File:plus-5-57.png]]</p></li><li><p>然后进入前面下载的'''MiniLoader'''文件夹中,再进入'''pcie_loader'''文件夹中,然后选择'''rk3588_linux_pcie.cfg'''配置文件,再点击'''打开'''</p><p>[[File:plus-5-173.png]]</p></li><li><p>然后点击'''确定'''</p><p>[[File:plus-5-174.png]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:plus-5-175.png]]</p></li><li><p>再选择前面下载的'''MiniLoader'''文件夹中'''MiniLoaderAll.bin''',再点击'''打开'''</p><p>[[File:plus-5-61.png]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:plus-5-177.png]]</p></li><li><p>然后进入前面下载的'''MiniLoader'''文件夹中,然后选择'''rkspi_loader.img''',再点击'''打开'''</p><p>[[File:plus-5-178.png]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:plus-5-179.png]]</p></li><li><p>然后选择想要烧录的linux镜像的路径,再点击'''打开'''</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-|10<big>'''在烧录镜像前,建议将要烧录的linux镜像重命名为orangepi.img或者其它比较短的名字,这样在烧录镜像的时候就能看到烧录进度的百分比数值。'''</big>|}<p>[[File:plus-5-63.png]]</p></li><li><p>然后请勾选上'''强制按地址写'''选项</p><p>[[File:plus-5-181.6png]]</p></li><li><p>再点击执行按钮就会开始烧录u-boot+linux镜像到SPIFlash+SSD中</p><p>[[File:plus-5-182. Wipng]]</p></li><li><p>linux镜像烧录完后的显示log如下图所示</p><p>[[File:plus-5-Fi hotspot的使用方法 455183.png]]</p></li><li><p>镜像烧录完后会自动启动SPIFlash+PCIe SSD中的linux系统,如果没有正常启动,请重新上电试下。</p></li></ol></li></ol>
[[#_Toc487938533|10.7. 蓝牙的测试方法 458]]<span id="烧录openwrt镜像到spi-flash中的方法"></span>
[[#hdmi-in的测试方法-2|10.8. HDMI In的测试方法 460]]== 烧录OpenWRT镜像到SPI FLASH中的方法 ==
[[{| class="wikitable" style="background-color:#101寸mipiffffdc;width:800px;" |-屏幕的使用方法|10.9. 10.1寸MIPI 屏幕的使用方法 462]]<big>'''此小节介绍的方法是烧录整个OpenWRT镜像到spi flash中,不需要nvme ssd。也就是说,u-boot、内核和rootfs都是存放在spi flash中的。'''</big><br>
[[#_Toc682033045<big>'''由于开发板上的spi flash只有16MB,所以此系统基本无法安装多少软件,目前只能实现一些基础功能。'''</big>|10.10. OV13850和OV13855 MIPI摄像头的测试方法 463]]}
[[#26pin<span id="使用dd命令烧录的方法-接口-gpiouartspi-和-pwm-测试|10.11. 26pin 接口 GPIO、UART、SPI 和 PWM 测试 467]]1"></span>
=== 使用dd命令烧录的方法 ===<ol style="list-style-type: decimal;"><li><p>烧录OpenWRT镜像到SPIFlash中需要借助TF卡来完成,所以首先需要将支持TF卡启动的OpenWRT镜像烧录到TF卡上,然后使用TF卡启动开发板进入OpenWRT系统。烧录OpenWRT镜像到TF卡的方法请见[[Orange Pi 5 Plus#_Toc1797908265基于Ubuntu PC将Linux镜像烧录到TF卡的方法|10.11.1. 40pin GPIO 口测试 467'''基于Windows PC将Linux镜像烧写到TF卡的方法''']] 和[[Orange Pi 5 Plus#_Toc2082228010基于Ubuntu PC将Linux镜像烧录到TF卡的方法|10'''基于Ubuntu PC将Linux镜像烧写到TF卡的方法''']]两小节的说明。</p></li><li><p>然后从[http://www.orangepi.11cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.2html '''Orange Pi的资料下载页面''']下载能够从'''SPIFlash'''启动的'''OpenWRT'''镜像。打开下载链接后可以看到下面两种类型的OpenWRT镜像,请选择'''SPIFlash启动镜像'''文件夹中的镜像进行下载</p><p>[[File:plus5-194. 40pin的UART测试 470png]]</p></li><li><p>然后把从官网下载的镜像上传到TF卡中。</p></li><li><p>然后再执行下面的命令即可将OpenWRT镜像烧写到SPIFlash中。'''<span style="color:#FF0000">注意if=后面需要指定镜像存放的实际路径</span>'''</p></li>{| class="wikitable" style="width:1000px;" |-|'''<span style="color:#FF0000">root@OpenWrt:~# dd if=openwrt-rockchip-armv8-xunlong_orangepi-5-plus-spi-squashfs-sysupgrade.bin of=/dev/mtdblock0</span>'''|}<li><p>然后就可以使用'''poweroff'''命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动SPIFlash中的OpenWRT系统了</p></li></ol>
[[#_Toc998765609|10.11.3. 26pin的SPI测试 473]]<span id="使用-rkdevtool-烧录的方法"></span>=== 使用 RKDevTool 烧录的方法 ===
<ol style="list-style-type: decimal;"><li><p>SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</p><p>[[File:plus-5-109.png]]</p></li><li><p>然后需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:plus-5-17.png]]</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和'''MiniLoader'''以及烧录工具'''RKDevTool_Release_v2.96.zip''',<span style="color:#FF0000">请确保下载的'''RKDevTool'''工具的的版本为'''v2.96'''</span></p><ol style="list-style-type: lower-alpha;"><li><p>在[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html Orange Pi的资料下载页面]首先选择'''官方工具''',然后进入下面的文件夹中</p><p>[[File:plus5-197.png]]</p></li><li><p>然后下载下面的所有文件</p><p>[[File:plus5-198.png]]</p>{| class="wikitable" style="background-color:#_Toc1272083050ffffdc;width:800px;" |-|10<big>'''注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。'''</big>|}</li></ol></li><li><p>然后从[http://www.orangepi.11cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.4html '''Orange Pi的资料下载页面''']下载能够从SPIFlash启动的OpenWRT镜像,受限于SPIFlash的容量,镜像是小于'''16MB'''的。打开下载链接后可以看到下面两种类型的'''OpenWRT'''镜像,请选择'''SPIFlash启动镜像'''文件夹中的镜像</p><p>[[File:plus5-199.png]]</p></li><li><p>然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可</p><p>[[File:plus-5-46.png]]</p></li><li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>点击”'''驱动安装'''”按钮</p><p>[[File:plus-5-47.png]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:plus-5-48.png]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可</p><p>[[File:plus-5-49.png]]</p></li><li><p>打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:plus-5-50.png]]</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:plus-5-51.png]]</p></li><li><p>确保开发板没有连接电源,'''<span style="color:#FF0000">并且没有插入TF卡和eMMC模块</span>'''</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:plus-5-52.png]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了</p><p>[[File:plus-5-53.png]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p><p>[[File:plus-5-54.png]]</p></li><li><p>然后将鼠标光标放在下面的这片区域中</p><p>[[File:plus-5-55.png]]</p></li><li><p>然后点击鼠标右键会弹出下图所示的选择界面</p><p>[[File:plus-5-56.png]]</p></li><li><p>然后选择'''导入配置'''选项</p><p>[[File:plus-5-57.png]]</p></li><li><p>然后选择前面下载的'''MiniLoader'''文件夹中的'''rk3588_linux_spiflash.cfg'''配置文件,再点击'''打开'''</p><p>[[File:plus-5-212. 26pin的PWM测试 475png]]</p></li><li><p>然后点击'''确定'''</p><div class="figure">
[[#_Toc1898711657|10File:plus-5-213.12. ADB的使用方法 478png]]
[[#_Toc1294199544|10.12.1. 使用数据线连接adb调试 478]]</div></li><li><p>然后点击下图所示的位置</p><div class="figure">
[[#_Toc1998404083|10File:plus-5-214.12.2. 使用网络连接adb调试 479png]]
</div></li><li><p>再选择前面下载的'''MiniLoader'''文件夹中'''MiniLoaderAll.bin''',再点击'''打开'''</p><p>[[#_Toc56546329|10.13. Android Box测试过的2File:plus-5-215.4G USB遥控器 480png]]</p></li><li><p>然后点击下图所示的位置</p><div class="figure">
[[#androidFile:plus-box系统红外遥控器的使用方法|10.145-216. Android Box系统红外遥控器的使用方法 481png]]
[[</div></li><li><p>再选择想要烧录的OpenWRT镜像的路径,再点击'''打开'''</p>{| class="wikitable" style="background-color:#androidffffdc;width:800px;" |-box系统hdmi-cec功能的使用方法|10<big>'''<span style="color:#FF0000">在烧录镜像前,建议将要烧录的OpenWRT镜像重命名为orangepi.15. Android Box系统HDMI CEC功能的使用方法 481]]img或者其它比较短的名字,这样在烧录镜像的时候就能看到烧录进度的百分比数值。</span>'''</big>|}<div class="figure">
[[#_Toc60227683|11File:plus-5-63. Android 12源码的编译方法 483png]]
[[#_Toc2118477502|11.1. 下载Android 12的源码 483]]</div></li><li><p>然后请确保'''强制按地址写'''选项已勾上</p><div class="figure">
[[#_Toc11615280|11File:plus-5-218.2. 编译Android 12的源码 484png]]
[[#orange-pi-os-droid-系统的使用说明|12. Orange Pi OS Droid 系统的使用说明 486]]</div></li><li><p>再点击'''执行'''按钮就会开始烧录OpenWRT镜像到SPIFlash中</p><div class="figure">
[[#opiFile:plus-os5-droid系统的功能适配情况|12219.1. OPi OS Droid系统的功能适配情况 486png]]
[[#hdmi-in的测试方法-3|12.2. HDMI In的测试方法 487]]</div></li><li><p>OpenWRT镜像烧录完后的显示log如下图所示</p><div class="figure">
[[#附录|13File:plus-5-220. 附录 490png]]
[[#_Toc1580306799|13.1. 用户手册更新历史 490]]</div></li><li><p>OpenWRT镜像烧录完后会自动启动,如果没有正常启动,请重新上电试下。</p></li></ol></li></ol>
[[#镜像更新历史|13.2. 镜像更新历史 490]]<span id="烧录android镜像到tf卡中的方法"></span>
<span id="orange-pi-5-plus的基本特性"></span>= Orange Pi 5 Plus的基本特性 烧录Android镜像到TF卡中的方法 ==
<span idol style="什么是list-orangestyle-pitype: decimal;"><li><p>首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''或以上,建议使用闪迪等品牌的TF卡</p></li><li><p>然后使用读卡器把TF卡插入电脑</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载SDDiskTool烧写工具,'''<span style="color:#FF0000">请确保SDDiskTool工具的版本为最新的v1.72</span>'''</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载Android12的镜像</p><ol style="list-style-type: lower-alpha;"><li><p>打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择'''TF卡和eMMC启动镜像'''文件夹中的镜像进行下载</p><p>[[File:plus-5-221.png]]</p></li><li><p>进入'''TF卡和eMMC启动镜像'''文件夹后可以看到下面三个镜像,它们的区别是:</p><ol style= 什么是 Orange Pi "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:plus-5-222.png]]</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:plus-5 Plus -223.png]]</p></li><li><p>打开'''SDDiskTool'''后,如果TF卡识别正常,会在”'''选择可移动磁盘设备'''”一栏中显示插入的磁盘设备,'''<span style="color:#FF0000">请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的</span>''',如果没有显示可以尝试拔插下TF卡</p><p>[[File:plus-5-224.png]]</p></li><li><p>确认完盘符后,可以先格式化下TF卡,点击'''SDDiskTool'''中的'''恢复磁盘'''按钮即可,也可使用前面提到的'''SD Card Formatter'''进行TF卡的格式化</p><p>[[File:plus-5-225.png]]</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:plus-5-226.png]]</p></li></ol></li><li><p>烧录完后即可退出SDDiskTool软件,然后就可以把TF卡从电脑中拔出来插到开发板中启动了</p><p>[[File:plus-5-227.png]]</p></li></ol>
Orange Pi 5 Plus采用了瑞芯微RK3588新一代八核64位ARM处理器,具体为四核A76和四核A55,采用的三星8nm LP制程工艺,大核主频最高可达2.4GHz,集成ARM Mali-G610 MP4 GPU,内嵌高性能3D和2D图像加速模块,内置高达6 Tops算力的AI加速器NPU,可选4GB、8GB、16GB或者32GB内存,具有高达8K显示处理能力。<span id="烧录android镜像烧录到emmc中的方法"></span>
Orange Pi 5 Plus引出了相当丰富的接口,包括2个HDMI输出、1个HDMI输入、USB== 烧录Android镜像烧录到eMMC中的方法 =={| class="wikitable" style="background-Ccolor:#ffffdc;width:800px;" |-| <big>'''<span style="color:#FF0000">注意,烧录镜像到eMMC中后如果测试发现启动不了,请清空下SPIFlash后再启动试下。清空SPIFlash的方法请参考使用RKDevTool清空SPIFlash的方法小节的内容。</DP接口、M.2 M-key PCIe3.0x4、M.2 E-key PCIe2.0x1、2个2.5G网口、eMMC扩展接口、USB2.0、USB3.0接口、红外、耳机、板载MIC、喇叭、RTC和40pin扩展排针等。可广泛适用于高端平板、边缘计算、人工智能、云计算、ARspan>'''</VR、智能安防、智能家居等领域,覆盖 AIoT各个行业。big>|}
Orange Pi 5 Plus支持Orange Pi 官方研发的操作系统Orange Pi OS,同时,支持Android 12.1、OpenWRT、Debian11、Debian12、Ubuntu20.04和Ubuntu22.04等操作系统。<span id="通过type-c线将android-镜像烧录到emmc中的方法"></span>=== 通过Type-C线将Android 镜像烧录到eMMC中的方法 ===
<span id{| class="wikitable" style="orangebackground-picolor:#ffffdc;width:800px;" |-5-plus的用途"| <big>'''注意,下面所有的操作都是在Windows电脑中进行的。'''</spanbig>== Orange Pi 5 Plus的用途 ==|}
我们可以用它实现:<ol style="list-style-type: decimal;"><li><p>开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC模块和插入开发板的方法如下所示:</p><p>[[File:plus-5-80-2.png]][[File:plus-5-80-3.png]]</p><p>[[File:plus-5-80-4.png]]</p></li><li><p>还需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:plus-5-17.png]]</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和烧录工具'''<span style="color:#FF0000">RKDevTool_Release_v3.15.zip</span>'''</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载Android的镜像。</p><ol style="list-style-type: lower-alpha;"><li><p>打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择'''TF卡和eMMC启动镜像'''文件夹中的镜像进行下载</p><p>[[File:plus-5-221.png]]</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:plus-5-222.png]]</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:plus-5-46.png]]</p></li><li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>点击”'''驱动安装'''”按钮</p><p>[[File:plus-5-47.png]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:plus-5-48.png]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v3.15.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可</p><p>[[File:plus-5-49.png]]</p></li><li><p>打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:plus-5-50.png]]</p></li><li><p>然后开始烧录Android镜像到eMMC中</p><ol style="list-style-type: lower-alpha;"><li><p>首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示</p><p>[[File:plus-5-51.png]]</p></li><li><p>然后确保开发板没有插入TF卡,没有连接电源</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:plus-5-52.png]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电</p><p>[[File:plus-5-53.png]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p><p>[[File:plus-5-54.png]]</p></li><li><p>然后点击烧录工具的”'''升级固件'''”一栏</p><p>[[File:plus-5-241.png]]</p></li><li><p>接着点击”'''固件'''”按钮选择需要烧录的Android镜像的路径</p><p>[[File:plus-5-242.png]]</p></li><li><p>最后点击”'''升级'''”按钮就会开始烧录,烧录过程中的log如下图所示。烧录完成后Android系统会自动启动。</p><p>[[File:plus-5-243.png]]</p></li></ol></li></ol>
* 一台Linux桌面计算机* 一台Linux网络服务器* Android平板* Android游戏机等<span id="通过tf卡将android-12镜像烧录到emmc中的方法"></span>
=== 通过TF卡将Android 12镜像烧录到eMMC中的方法 ==={| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''当然还有其他更多的功能,依托强大的生态系统以及各式各样的扩展配件,OPi 5 Plus可以帮助用户轻松实现从创意到原型再到批量生产的交付,是创客、梦想家、业余爱好者的理想创意平台。注意,下面所有的操作都是在Windows电脑中进行的。'''</big>|}
<ol style="list-style-type: decimal;"><li><p>开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC模块和插入开发板的方法如下所示:</p><p>[[File:plus-5-80-2.png]][[File:plus-5-80-3.png]]</p><p>[[File:plus-5-80-4.png]]</p></li><li><p>还需要准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''或以上,建议使用闪迪等品牌的TF卡</p></li><li><p>然后使用读卡器把TF卡插入电脑</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载SDDiskTool烧写工具,'''<span idstyle="sectioncolor:#FF0000">请确保SDDiskTool工具的版本为最新的v1.72</span>'''</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载Android的镜像</p><ol style="list-style-type: lower-alpha;"><li><p>打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择'''TF卡和eMMC启动镜像'''文件夹中的镜像进行下载</p><p>[[File:plus-5-221.png]]</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:plus-5-222.png]]</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:plus-5-223.png]]</p></li><li><p>打开'''SDDiskTool'''后,如果TF卡识别正常,会在”'''选择可移动磁盘设备'''”一栏中显示插入的磁盘设备,'''<span style="color:#FF0000">请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的</span>''',如果没有显示可以尝试拔插下TF卡</p><p>[[File:plus-5-224.png]]</p></li><li><p>确认完盘符后,可以先格式化下TF卡,点击'''SDDiskTool'''中的'''恢复磁盘'''按钮即可,也可使用前面提到的'''SD Card Formatter'''进行TF卡的格式化</p><p>[[File:plus-5-225.png]]</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:plus-5-250.png]]</p></li></ol></li><li><p>烧录完成后的显示如下图所示,然后就可以退出SDDiskTool</p><p>[[File:plus-5-251.png]]</p></li><li><p>然后把TF卡从电脑中拔出来插到开发板中,开发板上电启动后就会自动开始将TF卡中的Android镜像烧录到开发板的eMMC中</p></li><li><p>如果开发板连接了HDMI显示器,还可以从HDMI显示器中看到烧录Android镜像到eMMC中的进度条</p><p>[[File:plus-5-252.png]]</p></li><li><p>当HDMI显示器显示如下信息时,说明烧录Android镜像到eMMC中已完成,此时就可以拔出TF卡,然后eMMC中的安卓系统就会开始启动。</p><p>[[File:plus-5-253.png]]</p></li></ol>
<span id="orange烧录android镜像到spiflashnvme-pi-5-plus的硬件规格ssd中的方法"></span>== Orange Pi 5 Plus的硬件规格 ==
== 烧录Android镜像到SPIFlash+NVMe SSD中的方法 =={| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
! | <big>'''注意,下面所有的操作都是在Windows电脑中进行的。'''</big>|} <ol style="list-style-type: decimal;"><li><p>首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。</p><p>[[File:plus-5-21.png]]</p></li><li><p>然后把NVMe SSD插入开发板的M.2 PCIe接口,并固定好</p><p>[[File:plus-5-108.png]]</p></li><li><p>SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</p><p>[[File:plus-5-109.png]]</p></li><li><p>还需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:plus-5-17.png]]</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange -Pi -5-plus.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和烧录工具'''<span style="color:#FF0000">RKDevTool_Release_v3.15.zip</span>'''</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载Android12的镜像</p><ol style="list-style-type: lower-alpha;"><li><p>打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择'''SPIFlash-NVME > SSD启动镜像'''文件夹中的镜像进行下载</p><p>[[File:plus-5 PLUS硬件规格-258.png]]</p></li><li><p>进入'''SPIFlash-NVME > 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:plus-5-259.png]]</p></li></ol></li></ol></li><li><p>然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可</p><p>[[File:plus-5-46.png]]</p></li><li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>点击”'''驱动安装'''”按钮</p><p>[[File:plus-5-47.png]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:plus-5-48.png]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v3.15.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可</p><p>[[File:plus-5-49.png]]</p></li><li><p>打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:plus-5-50.png]]</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:plus-5-51.png]]</p></li><li><p>确保开发板没有插入TF和eMMC模块,没有连接电源</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:plus-5-52.png]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了</p><p>[[File:plus-5-53.png]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p><p>[[File:plus-5-54.png]]</p></li><li><p>然后点击烧录工具的”'''升级固件'''”一栏</p><p>[[File:plus-5-241.png]]</p></li><li><p>接着点击”'''固件'''”按钮选择需要烧录的Android镜像</p><p>[[File:plus-5-242.png]]</p></li><li><p>最后点击”'''升级'''”按钮就会开始烧录,烧录的过程如下图所示,可以看到,首先会烧录固件到SPIFlash中,然后烧录固件到PCIE中。烧录完成后Android系统会自动启动。</p><p>[[File:plus-5-271.png]]</p></li></ol></li></ol> <span id="烧录orange-pi-os-droid镜像到tf卡中的方法"></span> == 烧录Orange Pi OS (Droid)镜像到TF卡中的方法 == !{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
| 主控芯片<big>'''注意,下面所有的操作都是在Windows电脑中进行的。'''</big>| Rockchip RK3588} <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/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载SDDiskTool烧写工具,'''<span style="color:#FF0000">请确保SDDiskTool工具的版本为最新的v1.72</span>'''</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载Orange Pi OS (Droid)的镜像,打开Orange Pi OS (Droid)镜像的下载链接后可以看到下面两种类型的镜像,请选择下面的镜像</p><p>[[File:plus-5-272.png]]</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:plus-5-223.png]]</p></li><li><p>打开'''SDDiskTool'''后,如果TF卡识别正常,会在”'''选择可移动磁盘设备'''”一栏中显示插入的磁盘设备,'''<span style="color:#FF0000">请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的</span>''',如果没有显示可以尝试拔插下TF卡</p><p>[[File:plus-5-224.png]]</p></li><li><p>确认完盘符后,可以先格式化下TF卡,点击'''SDDiskTool'''中的'''恢复磁盘'''按钮即可,也可使用前面提到的'''SD Card Formatter'''进行TF卡的格式化</p><p>[[File:plus-5-225.png]]</p></li><li><p>然后开始将Orange Pi OS (8nm LP制程)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 (Droid)镜像到TF卡中</p><p>[[File:plus-5-226.png]]</p></li></ol></li><li><p>烧录完后即可退出SDDiskTool软件,然后就可以把TF卡从电脑中拔出来插到开发板中启动了</p></li> [[File:plus-5-227.png]]</ol><span id="烧录orange-pi-os-droid镜像到emmc中的方法"></span> == 烧录Orange Pi OS (Droid)镜像到eMMC中的方法 == {| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
| CPU<big>'''<span style="color:#FF0000">注意,烧录镜像到eMMC中后如果测试发现启动不了,请清空下SPIFlash后再启动试下。清空SPIFlash的方法请参考使用RKDevTool清空SPIFlash的方法小节的内容。</span>'''</big>| • 8核64位处理器 • 4个Cortex} <span id="通过type-c线将orange-pi-os-A76和4个Cortexdroid-A55及独立的NEON协处理器 • Cortex镜像烧录到emmc"></span>=== 通过Type-A76主频最高2.4GHz,CortexC线将Orange Pi OS (Droid) 镜像烧录到eMMC === {| class="wikitable" style="background-A55主频最高1.8GHzcolor:#ffffdc;width:800px;"
|-
| GPU<big>'''注意,下面所有的操作都是在Windows电脑中进行的。'''</big>| • 集成ARM Mali} <ol style="list-style-type: decimal;"><li><p>开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC模块和插入开发板的方法如下所示:</p><p>[[File:plus-5-80-2.png]][[File:plus-5-80-3.png]]</p><p>[[File:plus-5-80-4.png]]</p></li><li><p>还需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:plus-5-17.png]]</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和烧录工具'''<span style="color:#FF0000">RKDevTool_Release_v3.15.zip</span>'''</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载Orange Pi OS (Droid)的镜像</p><p>[[File:plus-5-272.png]]</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:plus-5-46.png]]</p></li><li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>点击”'''驱动安装'''”按钮</p><p>[[File:plus-5-47.png]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:plus-5-48.png]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v3.15.zip''',此软件无需安装,在解压后的文件夹中找到'''RKDevTool'''打开即可</p><p>[[File:plus-5-49.png]]</p></li><li><p>打开'''RKDevTool'''烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:plus-5-50.png]]</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:plus-5-51.png]]</p></li><li><p>确保开发板没有插入TF卡,没有连接电源</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:plus-G610 • 内置 3D GPU • 兼容OpenGL ES15-52.1png]]</2p></li><li><p>然后给开发板接上Type-C接口的电源,并上电</p><p>[[File:plus-5-53.png]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p><p>[[File:plus-5-54.0png]]</p></li><li><p>然后点击烧录工具的”'''升级固件'''”一栏</3p><p>[[File:plus-5-241.2、OpenCL 2png]]</p></li><li><p>接着点击”'''固件'''”按钮选择需要烧录的Orange Pi OS > (Droid)镜像的路径</p><p>[[File:plus-5-242.2和Vulkan 1png]]</p></li><li><p>最后点击”'''升级'''”按钮就会开始烧录,烧录过程中的log如下图所示。烧录完成后Orange > Pi OS (Droid)系统会自动启动。</p><p>[[File:plus-5-292.2png]]</p></li></ol></li></ol> <span id="通过tf卡将orange-pi-os-droid镜像烧录到emmc"></span> === 通过TF卡将Orange Pi OS (Droid)镜像烧录到eMMC === {| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
| NPU<big>'''注意,下面所有的操作都是在Windows电脑中进行的。'''</big>| 内嵌的NPU支持INT4} <ol style="list-style-type: decimal;"><li><p>开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC模块和插入开发板的方法如下所示:</p><p>[[File:plus-5-80-2.png]][[File:plus-5-80-3.png]]</p><p>[[File:plus-5-80-4.png]]</p></li><li><p>还需要准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''或以上,建议使用闪迪等品牌的TF卡</p></li><li><p>然后使用读卡器把TF卡插入电脑</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载SDDiskTool烧写工具,'''<span style="color:#FF0000">请确保SDDiskTool工具的版本为最新的v1.72</span>'''</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载Orange Pi OS (Droid)的镜像</p><p>[[File:plus-5-272.png]]</p></li><li><p>然后使用解压软件解压下载的Orange Pi OS (Droid)镜像的压缩包,解压后的文件中,以”.img” 结尾的文件就是Orange Pi OS (Droid)镜像文件,大小在1GB以上</INT8p></INT16li><li><p>然后使用解压软件解压'''SDDiskTool_v1.72.zip''',此软件无需安装,在解压后的文件夹中找到'''SD_Firmware_Tool.exe'''打开即可</FP16,算力高达6 Topsp><p>[[File:plus-5-223.png]]</p></li><li><p>打开'''SDDiskTool'''后,如果TF卡识别正常,会在”'''选择可移动磁盘设备'''”一栏中显示插入的磁盘设备,'''<span style="color:#FF0000">请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的</span>''',如果没有显示可以尝试拔插下TF卡</p><p>[[File:plus-5-224.png]]</p></li><li><p>确认完盘符后,可以先格式化下TF卡,点击'''SDDiskTool'''中的'''恢复磁盘'''按钮即可,也可使用前面提到的'''SD Card Formatter'''进行TF卡的格式化</p><p>[[File:plus-5-225.png]]</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:plus-5-226.png]]</p></li></ol></li><li><p>烧录完成后的显示如下图所示,然后就可以退出SDDiskTool</p><p>[[File:plus-5-227.png]]</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:plus-5-252.png]]</p></li><li><p>当HDMI显示器显示如下信息时,说明烧录Orange Pi OS (Droid)镜像到eMMC中已完成,此时就可以拔出TF卡,然后eMMC中的Orange Pi OS (Droid)系统就会开始启动。</p><p>[[File:plus-5-253.png]]</p></li></ol> <span id="烧录orange-pi-os-droid镜像到spiflashnvme-ssd中"></span> == 烧录Orange Pi OS (Droid)镜像到SPIFlash+NVMe SSD中 == {| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
| PMU<big>'''注意,下面所有的操作都是在Windows电脑中进行的。'''</big>| RK806} <ol style="list-style-type: decimal;"><li><p>首先需要准备一个2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。</p><p>[[File:plus-5-21.png]]</p></li><li><p>然后把NVMe SSD插入开发板的M.2 PCIe接口,并固定好</p><p>[[File:plus-5-108.png]]</p></li><li><p>SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</p><p>[[File:plus-5-109.png]]</p></li><li><p>还需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:plus-5-117.png]]</p></li>|<li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip''',烧录工具'''<span style="color:#FF0000">RKDevTool_Release_v3.15.zip</span>'''</p></li><li><p>然后下载Orange Pi OS (Droid)的镜像,打开Orange Pi OS (Droid)镜像的下载链接后可以看到下面两种类型的镜像,请选择带'''spi-nvme'''的镜像进行下载</p><p>[[File:plus-5-306.png]]</p></li><li><p>然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可</p><p>[[File:plus-5-46.png]]</p></li><li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>点击”'''驱动安装'''”按钮</p><p>[[File:plus-5-47.png]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:plus-5-48.png]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v3.15.zip''',此软件无需安装,在解压后的文件夹中找到'''RKDevTool'''打开即可</p><p>[[File:plus-5-49.png]]</p></li><li><p>打开'''RKDevTool'''烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:plus-5-50.png]]</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:plus-5-51.png]]</p></li><li><p>确保开发板没有插入TF和eMMC模块,没有连接电源</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:plus-5-52.png]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了</p><p>[[File:plus-5-53.png]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p><p>[[File:plus-5-54.png]]</p></li><li><p>然后点击烧录工具的”'''升级固件'''”一栏</p><p>[[File:plus-5-241.png]]</p></li><li><p>接着点击”'''固件'''”按钮选择需要烧录的Orange Pi OS (Droid)镜像</p><p>[[File:plus-5-242.png]]</p></li><li><p>最后点击”'''升级'''”按钮就会开始烧录,烧录的过程如下图所示,可以看到,首先会烧录固件到SPIFlash中,然后烧录固件到PCIE中。烧录完成后Orange Pi OS (Droid)系统会自动启动。</p><p>[[File:plus-5-318.png]]</p></li></ol></li></ol> == 使用RKDevTool清空SPIFlash的方法 == <ol style="list-style-type: decimal;"><li><p>SPI Flash在开发板上的位置如下图所示</p><p>[[File:plus-5-109.png]]</p></li><li><p>首先需要准备一根品质良好的Type-C接口的数据线</p><p>[[File:plus-5-17.png]]</p></li><li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和'''MiniLoader'''以及烧录工具'''RKDevTool_Release_v3.15.zip'''</p><ol style="list-style-type: lower-alpha;">| RAM<li><p>在[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html Orange Pi的资料下载页面]首先选择'''官方工具''',然后进入下面的文件夹中</p>| 4GB<p>[[File:plus5-321.png]]</p></8GBli><li><p>然后下载下面的所有文件</16GBp><p>[[File:plus5-322.png]]</32GB可选p>{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
| 存储<big>'''注意,“MiniLoader-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。'''</big>| • QSPI Nor FLASH}</li></ol></li><li><p>然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可</p><p>[[File:plus-5-46.png]]</p></li><li><p>打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>点击”'''驱动安装'''”按钮</p><p>[[File:plus-5-47.png]]</p></li><li><p>等待一段时间后,会弹出窗口提示”'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可</p><p>[[File:plus-5-48.png]]</p></li></ol></li><li><p>然后解压'''RKDevTool_Release_v3.15.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可</p><p>[[File:plus-5-49.png]]</p></li><li><p>打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示”'''没有发现设备'''”</p><p>[[File:plus-5-50.png]]</p></li><li><p>然后就可以开始清空SPI FLASH中的内容</p><ol style="list-style-type: lower-alpha;"><li><p>首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示</p><p>[[File:plus-5-51.png]]</p></li><li><p>确保开发板没有连接电源</p></li><li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p><p>[[File:plus-5-52.png]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了</p><p>[[File:plus-5-53.png]]</p></li><li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p><p>[[File:plus-5-54.png]]</p></li><li><p>然后请选择'''高级功能'''</p><p>[[File:plus-5-332.png]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:plus-5-333.png]]</p></li><li><p>再选择前面下载的'''MiniLoader'''文件夹中的'''MiniLoaderAll.bin''',再点击打开</p><p>[[File: 16MBplus-5-215.png]]</p></li><li><p>然后点击'''下载'''</32MB • MicroSD卡插槽 • eMMC插座,可外接eMMC模块 • 用于NVMe SSD (PCIe 3p><p>[[File:plus-5-335.0 x4) 的Mpng]]</p></li><li><p>下载完'''MiniLoaderAll.2 2280插槽bin'''后的显示如下图所示</p><div class="figure"> [[File:plus-5-336.png]] </div></li><li><p>然后选择存储设备为'''SPINOR'''</p><div class="figure"> [[File:plus-5-337.png]] </div></li><li><p>然后点击'''切换存储'''</p><p>[[File:plus-5-338.png]]</p></li><li><p>然后点击'''擦除所有'''就会开始擦除SPIFlash了</p><div class="figure"> [[File:plus-5-339.png]] </div></li><li><p>擦除SPIFlash后的显示log如下图所示</p><div class="figure"> [[File:plus-5-340.png]] </div> </li></ol> == 启动香橙派开发板 == # 将烧录好镜像的TF卡或eMMC模块插入香橙派开发板的TF卡插槽中。如果SPIFlash+NVMe SSD已经烧录好镜像了,那么就不需要插入TF卡或eMMC模块了,只需确保NVMe SSD正常插入到开发板中即可。# 开发板有HDMI接口,可以通过HDMI转HDMI连接线把开发板连接到电视或者HDMI显示器。如果有购买LCD屏幕,也可以使用LCD屏幕来显示开发板的系统界面。如果有Type-C转HDMI的线,也可以通过Type-C接口来显示开发板的系统界面。# 接上USB鼠标和键盘,用于控制香橙派开发板。# 开发板有以太网口,可以插入网线用来上网。# 连接一个5V/4A的USB Type-C接口的'''高品质'''的电源适配。 ::{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
| USB<big>'''<span style="color:#FF0000">切记不要插入电压输出大于5V的电源适配器,会烧坏开发板。</span>'''</big><br> <big>'''<span style="color:#FF0000">系统上电启动过程中很多不稳定的现象基本都是供电有问题导致的,所以一个靠谱的电源适配器很重要。如果启动过程中发现有不断重启的现象,请更换下电源或者Type-C数据线再试下。</span>'''</big><br> <big>'''<span style="color:#FF0000">Type-C电源接口是不支持PD协商的。</span>'''</big><br> <big>'''<span style="color:#FF0000">另外请不要接到电脑的USB接口来给开发板供电。</span>'''</big><br>| • 2 x USB3.0 • 2 x USB2.0 • 1 x Type} ::{| class="wikitable" style="background-Ccolor:#ffffdc;width:800px;"
|-
| 视频<big>'''开发板上有两个长得一样的Type-C接口,其中网口旁边竖着的那个才是电源接口,另外那个Type-C接口是没有供电功能的,请别接错了。'''</big><br>[[File:plus-5-12.png]]|} <ol start="6" style="list-style-type: decimal;"><li><p>然后打开电源适配器的开关,如果一切正常,此时HDMI显示器或者LCD屏幕就能看到系统的启动画面了。</p></li><li><p>如果想通过调试串口查看系统的输出信息,请使用串口线将开发板连接到电脑,串口的连接方法请参看[[Orange Pi 5 Plus#调试串口的使用方法| • 2 x HDMI 2.'''调试串口的使用方法''']]一节。</p></li></ol> == 调试串口的使用方法 == === 调试串口的连接说明 === <ol start="1 输出,高达8K@60FPS • 1 x Type" style="list-style-C(DP 1type: decimal;"><li><p>首先需要准备一个'''3.4A)输出,高达4K@60FPS • 1 x HDMI输入,高达4K@60FPS • 1 x MIPI DSI 4 Lane输出,高达4K@60Hz3V'''的USB转TTL模块,然后将USB转TTL模块的USB接口一端插入到电脑的USB接口中。</p></li> {| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
| TP接口<big>'''为了更好的兼容性,推荐使用CH340 USB转TTL模块,请不要使用CP2102、PL2303类型的USB转TTL模块。'''</big> <big>'''购买USB转TTL模块前,请确认模块支持1500000速率的波特率。'''</big>| 1 x 6Pin FPC插座} [[File:plus-5-342.png]]</ol><ol start="2" style="list-style-type: decimal;"><li><p>开发板的调试串口GND、RXD和TXD引脚的对应关系如下图所示:</p><p>[[File:plus-5-343.png]]</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模块的<span style="color:#FF0000">'''RX接到开发板的TX上'''</span></p></li><li><p>USB转TTL模块的<span style="color:#FF0000">'''TX接到开发板的RX上'''</span></p></li></ol></li><li><p>USB转TTL模块连接电脑和Orange Pi开发板的示意图如下所示</p><div class="figure"> |[[File:plus-5-344.png]] | 摄像头</div>{| 1 x MIPI CSI 4 Laneclass="wikitable" style="background-color:#ffffdc;width:800px;"
|-
| 音频<big>'''串口的TX和RX是需要交叉连接的,如果不想仔细区分TX和RX的顺序,可以把串口的TX和RX先随便接上,如果测试没有输出再交换下TX和RX的顺序,这样就总有一种顺序是对的。'''</big>| • 1 x 3.5mm耳机孔音频输入}</输出 • 1 x 板载MIC输入 • 2 x HDMI输出 • 1 x HDMI输入 • 1 x DP输出 • 1 x扬声器输出(2pin,1.25mm规格)li></ol> <span id="ubuntu平台调试串口的使用方法"></span> === Ubuntu平台调试串口的使用方法 === {| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
| 以太网<big>'''Linux下可以使用的串口调试软件有很多,如putty、minicom等,下面演示下putty的使用方法。'''</big>|} <ol style="list-style-type: decimal;"><li><p>首先将USB转TTL模块插入Ubuntu电脑的USB接口,如果USB转TTL模块连接识别正常,在Ubuntu PC的'''/dev'''下就可以看到对应的设备节点名,记住这个节点名,后面设置串口软件时会用到。</p>{| 2 x PCIe 2.5G 以太网口(RTL8125BG )class="wikitable" style="width:800px;"
|-
| 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<p>test@test:~$ '''ls /dev/ttyUSB*'''</p>| 包含PCIe 2.0 x 1/PCM<p>/UARTdev/USB2.0接口,支持2230的Wi-Fi6 ttyUSB0</BT模块p>|-}| 按键</li>| 1个MaskROM键,1个RECOVERY键,1个开关机键|-| 供电| 支持Type-C供电,5V@4A|-| 红外接收器<li><p>然后使用下面的命令在Ubuntu PC上安装下putty</p>{| 1个红外接收器class="wikitable" style="width:800px;"
|-
| LED
| RGB LED三色指示灯
|-
| 风扇接口
| 2pin,1.25mm规格,用于接5V风扇,支持PWM控制开关和转速
|-
| RTC电池接口
| 2pin,1.25mm规格,用于给RTC模块供电
|-
| 调试
| 3pin调试串口(UART)
|-
| 支持的操作系统
| Orangepi OS(Droid)、Orangepi OS(Arch)、Orangepi OS(OH)、Ubuntu20.04、Ubuntu22.04、Debian11、Debian12、OpenWRT和Android12等
|-
| 外观规格介绍
|
<p>test@test:~$ '''sudo apt-get update'''</p>
<p>test@test:~$ '''sudo apt-get install -y putty'''</p>
|}
</li>
<li><p>然后运行putty,'''<span style="color:#FF0000">记得加sudo权限</span>'''</p>
{| class="wikitable" style="width:800px;"
|-
| 产品尺寸
| 100mm*75mm
|-
| 重量
| 86.5g
|-
| [[File:media/145907f387ac84f3d723a2655eee1bf7.png|橙子LOGO-透明 (6)]] '''rangePi™是深圳市迅龙软件有限公司的注册商标'''
|
<p>test@test:~$ '''sudo putty'''</p>
|}
</li>
<li><p>执行putty命令后会弹出下面的界面</p>
<p>[[File:plus-5-345.png]]</p></li>
<li><p>首先选择串口的设置界面</p>
<p>[[File:plus-5-346.png]]</p></li>
<li><p>然后设置串口的参数</p>
<ol style="list-style-type: lower-alpha;">
<li><p>设置Serial line to connect to为/dev/ttyUSB0(修改为对应的节点名,一般为/dev/ttyUSB0)</p></li>
<li><p>设置Speed(baud)为'''1500000'''(串口的波特率)</p></li>
<li><p>设置Flow control为None</p>
<p>[[File:plus-5-347.png]]</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:plus-5-348.png]]</p></li></ol>
</li>
<li><p>启动开发板后,就能从打开的串口终端中看到系统输出的Log信息了</p>
<p>[[File:plus-5-349.png]]</p></li></ol>
<span id="orange-pi-5-plus的顶层视图和底层视图windows平台调试串口的使用方法"></span>== Orange Pi 5 Plus的顶层视图和底层视图 ==
'''顶层视图:'''=== Windows平台调试串口的使用方法 ===
<div {| class="figurewikitable" style="background-color:#ffffdc;width:800px;"|-| <big>'''Windows下可以使用的串口调试软件有很多,如SecureCRT、MobaXterm等,下面演示MobaXterm的使用方法,这款软件有免费版本,无需购买序列号即可使用。'''</big>|}
<ol style="list-style-type: decimal;"><li><p>下载MobaXterm</p><ol style="list-style-type: lower-alpha;"><li><p>下载MobaXterm网址如下</p> <big>'''https://mobaxterm.mobatek.net'''</big></li><li><p>进入MobaXterm下载网页后点击'''GET XOBATERM NOW!'''</p><p>[[File:mediaplus-5-350.png]]</p></li><li><p>然后选择下载Home版本</2dfcfcfd5ec58bfde1c59b454d905175p><p>[[File:plus-5-351.jpeg|Orangepng]]</p></li><li><p>然后选择Portable便携式版本,下载完后无需安装,直接打开就可以使用</p><p>[[File:plus-5-Pi352.png]]</p></li></ol></li><li><p>下载完后使用解压缩软件解压下载的压缩包,即可得到MobaXterm的可执软件,然后双击打开</p><p>[[File:plus-5-PLUS353.png]]</p></li><li><p>打开软件后,设置串口连接的步骤如下</p><ol style="list-style-type: lower-1]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></li>
[[File:plus-5-354.png]]</ol></divol><ol start="4" style="list-style-type: decimal;"><li><p>点击“'''底层视图:OK'''”按钮后会进入下面的界面,此时启动开发板就能看到串口的输出信息了</p><p>[[File:plus-5-355.png]]</p></li></ol>
'''[[File:media/8af0d060c57c1540a5a9b30d638e1f8b.jpeg|Orange-Pi-5-PLUS-2]]'''== 使用开发板40pin接口中的5v引脚供电说明 ==
<span id{| class="wikitable" style="orangebackground-picolor:#ffffdc;width:800px;" |-5| <big>'''我们推荐的开发板的供电方式是使用5V/4A或者5V/5A的Type C接口的电源线插到开发板的Type-plus的接口详情图">C电源接口来供电的。如果需要使用40pin接口中的5V引脚来给开发板供电,请确保使用的电源线和电源适配器能满足开发板的供电需求。如果有使用不稳定的情况,请换回Type-C电源供电。'''</spanbig>== Orange Pi 5 Plus的接口详情图 ==|}
<div ol style="list-style-type: decimal;"><li><p>首先需要准备一根下图所示的电源线</p><p>[[File:5plus-1.png]]</p>{| class="figurewikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''上图所示的电源线在淘宝可以买到,请自行搜索购买。'''</big>|}</li><li><p>使用40pin接口中的5V引脚来给开发板供电,电源线的接法如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>上图所示的电源线USB A口需要插到'''5V/4A'''或者'''5V/5A'''的电源适配器接头上'''(请不要插到电脑的USB接口来供电,一般的手机充电头也不行,因为开发板没有PD功能,一般的手机充电头只能输出最低的5V/2A)'''</p></li><li><p>红色的杜邦线需要插到开发板40pin的5V引脚上</p></li><li><p>黑色的杜邦线需要插到40pin接口的GND引脚上</p></li><li><p>40pin接口5V引脚和GND引脚在开发板中的位置如下图所示,'''切记不要接反了'''</p><p>[[File:5plus-2.png]]</p></li></ol></li></ol>
[[File:media<span id="ubuntudebian-server和xfce桌面系统使用说明"></65e01296b63ef44854780897f4f8b438.jpeg|d33968888c1840571eb373aa98d167ac]]span>
</div>= '''开发板使用介绍Ubuntu/Debian Server和Xfce桌面系统使用说明''' =
{| class="wikitable" style= 准备需要的配件 =="background-color:#ffffdc;width:800px;" |-| <big>'''本章内容是基于Ubuntu/Debian的服务器版本镜像和xfce桌面版本镜像编写的。'''</big>
# TF卡,最小16GB容量(推荐32GB或以上)的<big>'''class10如果使用的是Ubuntu22.04 Gnome镜像,请先查看[[Orange Pi 5 Plus#Ubuntu22.04 Gnome Wayland桌面系统使用说明|Ubuntu22.04 Gnome Wayland桌面系统使用说明]]一章的说明。'''级或以上的高速闪迪卡</big>
<big>'''[[File:media/6e9eb24684d742368f6c1fd7198269f2Orange Pi 5 Plus#Ubuntu22.04 Gnome Wayland桌面系统使用说明|Ubuntu22.png04 Gnome Wayland桌面系统使用说明]]一章中不存在的内容,可以参考此章的说明,但是有些细节是会有差异的,这点请特别注意下。'''</big>
<big>'''如果使用的是OPi OS Arch镜像,请查看[[Orange Pi 5 Plus# TF卡读卡器,用于将镜像烧录到TF卡中Orange Pi OS Arch系统使用说明|Orange Pi OS Arch系统使用说明]]一章的内容。'''</big>|}
[[File:media<span id="已支持的ubuntudebian镜像类型和内核版本"></9aeb47c08e101b5ae5944f0b37186b5b.png]]span>== 已支持的Ubuntu/Debian镜像类型和内核版本 ==
# HDMI接口的显示器{| class="wikitable" style="width: 600px"|-| 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;"| '''支持'''| style="text-align: left;"| '''支持'''|-| 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="text-align: left;"| '''支持'''|}
[[File:media/6e703c0c7ed5ad1316d29481c52b69e1.png]]== linux系统适配情况 ==
# HDMI转HDMI连接线,用于将开发板连接到HDMI显示器或者电视进行显示{| class="wikitable" style="width: 600px"|-[[File| style="text-align:media/4c06c9135e500bd449b1dc7078fb7235left;"| '''功能'''| style="text-align: left;"| '''Debian11'''| style="text-align: left;"| '''Debian12'''| style="text-align: left;"| '''Ubuntu20.04'''| style="text-align: left;"| '''Ubuntu22.png]]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;"| '''注意,如果想接4K或者8K显示器,请确保HDMI线支持4K或者8K视频显示。OK'''|-# Type| 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-C转HDMI线,通过Typealign: left;"| '''HDMI RX音频'''| style="text-C接口将开发板连接到HDMI显示器或者电视进行显示align: left;"| '''OK'''| style="text-align: left;"| '''OK'''<div class| style="text-align: left;"| '''OK'''| style="figuretext-align: left;">| '''OK'''|-[[File| style="text-align:media/0174a4b79602bae0961fca3d6f4778b8left;"| '''USB2.jpeg0X2'''|IMG_256]]style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''</div>| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''# Type|-C转USB转接头,用于通过Type| style="text-C接口连接USB存储设备或者鼠标键盘等USB设备(align: left;"| '''开发板上有2个USB3USB3.0 HOST接口和2个USB20X2'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''2.0 HOST接口,此配件一般用不到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/d87207918bd57eee554d6a502cd7a652left;"| '''2.jpeg5G PCIe网口灯'''| style="text-align: left;"|98F5D70E2C9B3673E8ECE4B8ABDDFD80]]'''OK'''| style="text-align: left;"| '''OK'''</div>| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-# 10| 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;"| '''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.1寸MIPI屏幕,用于显示开发板的系统界面(此屏幕和OPi5/OPi5B通用)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;"| '''40PIN GPIO'''| 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 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="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Chromium硬解视频'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|}
<div class="figure">= 本手册linux命令格式说明 ==
[[File<ol style="list-style-type:mediadecimal;"><li><p>本手册中所有需要在Linux系统中输入的命令都会使用下面的方框框起来</86b6898415454b15a150b5d91ca7baf4.jpegp>{| class="wikitable" style="width:800px;height: 40px" |-|IMG_7546]]
|}<p>如下所示,黄色方框里内容表示需要特别注意的内容,这里面的命令除外。</divp>{| class="wikitable" style="background-color:# 电源适配器,Orange Pi 5 Plus建议使用5V/4A的Typeffffdc;width:800px;height: 40px" |-C电源供电|
|}</li><li><p>命令前面的提示符类型说明</p><ol style="list-style-type: lower-alpha;"><li><p>命令前面提示符指的是下面方框内红色部分的内容,这部分内容不是linux命令的一部分,所以在linux系统中输入命令时,请不要把红色字体部分的内容也输入进去。</p>{| class="wikitable" style="width:800px;" |-|<p>'''<span style="color:#FF0000">orangepi@orangepi:~$</span> sudo apt update'''</p><p>'''<span style="color:#FF0000">root@orangepi:~#</span>''' '''vim /boot/boot.cmd'''</p><p>'''<span style="color:#FF0000">test@test:~$</span> ssh root@192.168.1.xxx'''</p><p>'''<span style="color:#FF0000">root@test:~#</span> ls'''</p>|}</li><li><p>'''<span style="color:#FF0000">root@orangepi:~$</span>''' 提示符表示这个命令是在'''开发板的linux系统'''中输入的,提示符最后的 '''<span style="color:#FF0000">$</span>''' 表示系统当前用户为普通用户,当执行特权命令时,需要加上'''sudo'''</p></li><li><p>'''<span style="color:#FF0000">root@orangepi:~#</span>''' 提示符表示这个命令是在'''开发板的linux系统'''中输入的,提示符最后的 '''<span style="color:#FF0000">#</span>''' 表示系统当前用户为root用户,可以执行任何想要执行的命令</p></li><li><p>'''<span style="color:#FF0000">test@test:~$</span>''' 提示符表示这个命令是在Ubuntu PC或者Ubuntu虚拟机中输入的,而不是开发板的linux系统中。提示符最后的 '''<span style="color:#FF0000">$</span>''' 表示系统当前用户为普通用户,当执行特权命令时,需要加上'''sudo'''</p></li><li><p>'''<span style="color:#FF0000">root@test:~#</span>''' 提示符表示这个命令是在Ubuntu PC或者Ubuntu虚拟机中输入的,而不是开发板的linux系统中。提示符最后的 '''<span style="color:#FF0000">#</span>''' 表示系统当前用户为root用户,可以执行任何想要执行的命令</p></li></ol></li><li><p>哪些是需要输入的命令?</p><ol style="list-style-type: lower-alpha;"><li><p>如下所示,'''黑色加粗部分'''是需要输入的命令,命令下面的是输出的内容(有些命令有输出,有些可能没有输出),这部分内容是不需要输入的</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~# '''cat /boot/orangepiEnv.txt'''</p><p>'''<span style="color:#FF0000">verbosity=7</span>'''</p><p>bootlogo=false</p><p>'''<span style="color:#FF0000">console=serial</span>'''</p>|}</li><li><p>如下所示,有些命令一行写不下会放到下一行,只要黑色加粗的部分就都是需要输入的命令。当这些命令输入到一行的时候,每行最后的”'''\'''”是需要去掉的,这个不是命令的一部分。另外命令的不同部分都是有空格的,请别漏了</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''echo \'''</p><p>'''"deb [[Filearch=$(dpkg --print-architecture) \'''</p><p>'''signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \'''</p><p>'''https:media/77b8b78b238fb92cfcce413cdbe5a559/download.docker.png]]com/linux/debian \'''</p><p>'''$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null'''</p>|}</li></ol></li></ol>
'''开发板上有两个长得一样的Type-C接口,其中网口旁边竖着的那个才是电源接口,另外那个Type-C接口是没有供电功能的,请别接错了。'''== linux系统登录说明 ==
[[File:media/be21ec9a0619208250c105cfbdfa9eb8.png]]=== linux系统默认登录账号和密码 ===
{| class="wikitable" style="width: 600px"|-| style="text-align: left;"| '''账号'''| style="text-align: left;"| '''密码'''|-| style="text-align: left;"| '''root'''| style="text-align: left;"| '''orangepi'开发板的Type''|-C电源接口不支持PD协商功能,只支持固定的5V电压输入。| style="text-align: left;"| '''orangepi'''| style="text-align: left;"| '''orangepi'''|}
{| class="wikitable" style="background-color:# USB接口的鼠标和键盘,只要是标准USB接口的鼠标和键盘都可以,鼠标和键盘可以用来控制Orange Pi开发板ffffdc;width:800px;" |-| <big>'''注意,输入密码的时候,<span style="color:#FF0000">屏幕上是不会显示输入的密码的具体内容的</span>,请不要以为是有什么故障,输入完后直接回车即可。'''</big>|}
[[File{| class="wikitable" style="background-color:media#ffffdc;width:800px;" |-| <big>'''当输入密码提示错误,或者ssh连接有问题,请注意,只要使用的是Orange Pi提供的Linux镜像,<span style="color:#FF0000">就请不要怀疑上面的密码不对</span>,而是要找其它的原因。'''</5727ec7dde759bc93ad1296aef20b2f8.png]]big>|}
# USB摄像头=== 设置linux系统终端自动登录的方法 ===
<ol style="list-style-type: decimal;"><li><p>linux系统默认就是自动登录终端的,默认登录的用户名是'''<span style="color:#FF0000">orangepi</span>'''</p><p>[[File:media/25529640bdf8e911199feaefc0fa32b3plus-5-356.png]]</p></li><li><p>使用下面的命令可以设置root用户自动登录终端</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo auto_login_cli.sh root'''</p>|}</li><li><p>使用下面的命令可以禁止自动登录终端</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo auto_login_cli.sh -d'''</p>|}</li><li><p>使用下面的命令可以再次设置orangepi用户自动登录终端</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo auto_login_cli.sh orangepi'''</p>|}</li></ol>
# 5V的散热风扇。如下图所示,开发板上有用于接散热风扇的接口,接口规格为'''2pin 1.25mm间距'''=== linux桌面版系统自动登录说明 ===
'''开发板上的风扇可以通过PWM来调节转速和开关。'''<ol style="list-style-type: decimal;"><li><p>桌面版系统启动后会自动登录进入桌面,无需输入密码</p><div class="figure">
[[File:media/b649c2ec8b48ce2e46f7fd44e6201edeplus-5-357.png]]
# 网线,用于将开发板连接到因特网</div></li><li><p>运行下面的命令可以禁止桌面版系统自动登录桌面</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo disable_desktop_autologin.sh'''</p>|}</li><li><p>然后重启系统就会出现登录对话框,此时需要输入'''密码'''才能进入系统</p></li>
[[File:media/e80a4ec8fa226847c3bd4550bc5f6902.png]]<div class="figure">
# Type[[File:plus-C接口的数据线,用于烧录镜像、使用ADB等功能5-358.png]]
[[File:media</d84ad9c1e0e447425ddd86cfefafca1e.png]]div></ol><span id="linux桌面版系统root用户自动登录的设置方法"></span>
# 红外遥控器=== Linux桌面版系统root用户自动登录的设置方法 ===
<ol style="list-style-type: decimal;"><li><p>执行下面的命令可以设置桌面版系统使用root用户自动登录</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo desktop_login.sh root'''</p>|}</li><li><p>然后重启系统,就会自动使用root用户登录桌面了</p><p>[[File:media/72c9dfb70a7826f59ef6818e8f96d1d4plus-5-359.png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''注意,如果使用root用户登录桌面系统,是无法使用右上角的pulseaudio来管理音频设备的。'''</big>
<big>'''注意,空调遥控或者电视机的遥控是无法控制Orange Pi开发板的,Orange Pi提供的操作系统默认只能保证Orange Pi提供的遥控器才可以使用。另外请注意这并不是一个bug,因为pulseaudio本来就不允许在root用户下运行。'''</big>|}</li><li><p>执行下面的命令可以再次设置桌面版系统使用orangepi用户自动登录</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo desktop_login.sh orangepi'''</p>|}# 1300万MIPI接口的OV13850摄像头(和OPi5</li></OPi5B通用)ol>
[[File:media<span id="linux桌面版系统禁用桌面的方法"></5941e6fa8b5a03d3b89ab5891bd1ff2c.png]]span>
# 1300万MIPI接口的OV13855摄像头(和OPi5/OPi5B通用)=== Linux桌面版系统禁用桌面的方法 ===
[[File<ol style="list-style-type:mediadecimal;"><li><p>首先在命令行中输入下面的命令,'''<span style="color:#FF0000">请记得加sudo权限</span>'''</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo systemctl disable lightdm.service'''</p>|}</li><li><p>然后重启Linux系统就会发现不会显示桌面了</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo reboot'''</p>|}</li><li><p>重新打开桌面的步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先在命令行中输入下面的命令,'''<span style="color:#FF0000">请记得加sudo权限</1ef03ad657d3490c06607c7619bc11b3span>'''</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo systemctl start lightdm.png]]service'''</p>|}</li><li><p>选择完后显示器就会显示桌面了</p></li></ol></li></ol>
# M.2 M-KEY 2280规格的NVMe SSD固态硬盘,PCIe接口的规格为PCIe3.0x4<span id="板载led灯测试说明"></span>
[[File:media/6b09ed51c8f4954ed95742cd63b21c74.png]]== 板载LED灯测试说明 ==
# eMMC扩展模块('''待添加实物图片''') '''开发板上插入eMMC模块的位置如下图所示:'''<ol style="list-style-type: decimal;"><li><p>开发板上有一个红绿蓝三色灯,所在位置如下图所示:</p><p>[[File:media/7cf53c40aa181a8659960c7e93c5d50dplus-5-360.png]] # RTC电池,接口为2pin,1.25mm间距 [[File:media</p></1bb8d4996cde71588fc6fbf3de4f170a.png]]li><li><p>'''开发板上接RTC电池接口的位置如下图所示:<span style="color:#FF0000">只要开发板打开了电源,红色的LED灯就会常亮,这是由硬件控制的,软件无法关闭。通过红色的LED灯可以确定开发板的电源是否已正常开启。</span>'''</p></li><li><p>绿色和蓝色的LED灯在内核启动后会一直闪烁,这是由软件控制的。</p></li>[[File:media<li><p>使用命令设置绿灯亮灭和闪烁的方法如下所示:</970ae11d12051603830ef68596478448.png]]p>{| class="wikitable" style="background-color:# 喇叭,接口为2pin,1.25mm间距ffffdc;width:800px;" |-[[File:media/2ad7918730932cd74a38cd49aab96cde.png]]| <big>'''开发板上接喇叭的接口位置如下图所示:注意,下面的操作请在root用户下进行。'''</big>|}[[File<ol style="list-style-type:media/9cc3dd3182bd9a880c3a546e0269ce67.png]]lower-alpha;"> # 配套外壳('''待添加图片和组装方法''')# '''3.3V'''的USB转TTL模块和杜邦线,使用串口调试功能时,需要USB转TTL模块和杜邦线来连接开发板和电脑 [G7U7JZX(V`L$`A6864]38$P](media<li><p>首先进入绿灯的设置目录</60df9f424365ab96dfe9f13045c378bc.png) [[File:media/ddba63922cf2518ef6c326ed2eb9b969.png]] # 安装有Ubuntu和Windows操作系统的个人电脑p>{| class="wikitable" style="width:800px;"
|-
! 1|! Ubuntu22.04 PC<p>root@orangepi:~# '''cd /sys/class/leds/green_led'''</p>! 可选,用于编译Linux源码|}</li><li><p>设置绿灯停止闪烁的命令如下</p>{| class="wikitable" style="width:800px;"
|-
| 2| Windows PC| 用于烧录Android和Linux镜像<p>root@orangepi:/sys/class/leds/green_led# '''echo none > trigger'''</p>
|}
</li>
<li><p>设置绿灯常亮的命令如下</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>root@orangepi:/sys/class/leds/green_led# '''echo default-on > trigger'''</p>
|}
</li>
<li><p>设置绿灯闪烁的命令如下</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>root@orangepi:/sys/class/leds/green_led# '''echo heartbeat > trigger'''</p>
|}
</li></ol>
</li>
<li><p>使用命令设置蓝灯亮灭和闪烁的方法如下所示:</p>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''注意,下面的操作请在root用户下进行。'''</big>
|}
<ol style="list-style-type: lower-alpha;">
<li><p>首先进入蓝灯的设置目录</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>root@orangepi:~# '''cd /sys/class/leds/blue_led'''</p>
|}
</li>
<li><p>设置蓝灯停止闪烁的命令如下</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>root@orangepi:/sys/class/leds/blue_led# '''echo none > trigger'''</p>
|}
</li>
<li><p>设置蓝灯常亮的命令如下</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>root@orangepi:/sys/class/leds/blue_led# '''echo default-on > trigger'''</p>
|}
</li>
<li><p>设置蓝灯闪烁的命令如下</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>root@orangepi:/sys/class/leds/blue_led# '''echo heartbeat > trigger'''</p>
|}
</li></ol>
<li><p>如果开机后不需要LED灯闪烁,可以使用下面的方法来关闭绿灯和蓝灯</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p>{| class= 下载开发板的镜像和相关的资料 ="wikitable" style="width:800px;" |-# 中文版资料的下载网址为:|<p>orangepi@orangepi:~$ '''http://www.sudo orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.htmlconfig'''http:</p>|}</www.orangepi.cn/downloadresourcescnli><li><p>然后选择'''System'''</p> <p>[[File:media/3cf8969721141beb1274aead93d070165plus-51.png]]</p></li># 英文版资料的下载网址为: <li><p>然后选择'''http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.htmlHardware'''http://www.orangepi.org/downloadresources</p> <p>[[File:media/66d687eb9d1b68472f31b5702f574e015plus-52.png]]</p></li># 资料主要包含## <li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''用户手册和原理图:空格'''保存在百度云盘和谷歌网盘上## 选中'''官方工具:opi5plus-disable-leds'''主要包括开发板使用过程中需要用到的软件配置</p><p>[[File:5plus-53.png]]</p>## </li><li><p>然后选择'''Android源码<Save>''':保存在百度云盘和谷歌网盘上保存</p>## '''Linux源码''':保存在Github上<p>[[File:5plus-54.png]]</p></li>## <li><p>然后选择'''OpenWRT源码<Back>''':保存在Github上</p>## '''Android镜像''':保存在百度云盘和谷歌网盘上<p>[[File:5plus-55.png]]</p>## '''Ubuntu镜像''':保存在百度云盘和谷歌网盘上</li>## <li><p>然后选择'''Debian镜像<Reboot>''':保存在百度云盘和谷歌网盘上重启系统使配置生效</p>## '''Orange Pi OS镜像''':保存在百度云盘和谷歌网盘上<p>[[File:5plus-56.png]]</p>## '''OpenWRT镜像''':保存在百度云盘和谷歌网盘上</li><li><p>重启后就可以看到开发板上只有红灯常亮了,绿灯和蓝灯都不会闪烁了</p><span id="基于windows-pc将linux镜像烧录到tf卡的方法"/li></spanol>== 基于Windows PC将Linux镜像烧录到TF卡的方法 ==</li></ol>
'''注意,这里说的Linux镜像具体指的是从'''[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi资料下载页面''']'''下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。'''== 网络连接测试 ==
<span id="使用balenaetcher烧录linux镜像的方法g以太网口测试"></span>=== 使用balenaEtcher烧录Linux镜像的方法 2.5G以太网口测试 ===
# 首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为<ol style="list-style-type: decimal;"><li><p>开发板有两个2.5G的以太网接口,两个网口的测试方法是一样的。首先将网线的一端插入开发板的以太网接口,网线的另一端接入路由器,并确保网络是畅通的。</p></li><li><p>系统启动后会通过'''class10DHCP'''级或自动给以太网卡分配IP地址,'''class10<span style="color:#FF0000">不需要其他任何配置</span>'''级以上,建议使用闪迪等品牌的TF卡。</p></li><li><p>在开发板的Linux系统中查看IP地址的命令如下所示:</p>{| class="wikitable" style="width:800px;" |-# 然后使用读卡器把TF卡插入电脑|<p>orangepi@orangepi:~$ '''ip addr show'''</p># 从[http<p>1: lo:<LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000</p>:<p>link/wwwloopback 00:00:00:00:00:00 brd 00:00:00:00:00:00</p>:<p>inet 127.0.orangepi0.cn1/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''': <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000</p>:<p>link/htmlether 00:e0:4c:68:00:26 brd ff:ff:ff:ff:ff:ff</serviceAndSupportp>:<p>inet '''192.168.1.245'''/index24 brd 192.168.html 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: '''Orange Pi的资料下载页面enP4p65s0''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以“: <BROADCAST,MULTICAST,UP,LOWER_UP> 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.img1.247'''”结尾的文件就是操作系统的镜像文件,大小一般在2GB以上。/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>|}
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载“TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。当使用ifconfig查看IP地址时,如果提示下面的信息,是因为没有加sudo导致的,正确的命令是:sudo ifconfig'''</p></big><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>
[[File:media/523a42e43bc947bbb3d03d565485dbb8.png]]
{| class="wikitable" style="background-color:# 然后下载Linux镜像的烧录软件——ffffdc;width:800px;" |-| <big>'''balenaEtcher开发板启动后查看IP地址有三种方法:''',下载地址为:
[https://www.balena.io/etcher/ # '''https://www.balena.io/etcher/接HDMI显示器,然后登录系统使用ip addr show命令查看IP地址'''# '''在调试串口终端输入ip addr show命令来查看IP地址'''# '''如果没有调试串口,也没有HDMI显示器,还可以通过路由器的管理界面来查看开发板网口的IP地址。不过这种方法经常有人会无法正常看到开发板的IP地址。如果看不到,调试方法如下所示:''']
# 进入balenaEtcher下载页面后,点击绿色的下载按钮会跳到软件下载的地方<!-- --><ol style="list-style-type: upper-alpha;"><li><p>'''首先检查Linux系统是否已经正常启动,如果开发板的三色灯在闪烁了,一般是正常启动了,如果只亮红灯,说明系统都没正常启动;'''</p></li><li><p>'''检查网线有没有插紧,或者换根网线试下;'''</p></li><li><p>'''换个路由器试下(路由器的问题有遇到过很多,比如路由器无法正常分配IP地址,或者已正常分配IP地址但在路由器中看不到);'''</p></li><li><p>'''如果没有路由器可换就只能连接HDMI显示器或者使用调试串口来查看IP地址。'''</p></li></ol>
[[File:media/02b7cfcad5a6ddd29787302af9ba1725.png]]
# 然后可以选择下载balenaEtcher的Portable版本的软件,Portable版本无需安装,双击打开就可以使用<p>'''另外需要注意的是开发板DHCP自动分配IP地址是不需要任何设置的。'''</p></big>|}</ol>
[[File<!-- --><ol start="4" style="list-style-type:mediadecimal;"><li><p>测试网络连通性的命令如下,'''ping'''命令可以通过'''Ctrl+C'''快捷键来中断运行</8006683a887af694c7f110f69cd2ffabp>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ping www.baidu.com -I enP4p65s0 #其中一个网口的测试命令'''</p><p>orangepi@orangepi:~$ '''ping www.baidu.png]]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.202 ms</p>|}</li></ol>
# 如果下载的是需要安装版本的balenaEtcher,请先安装再使用。如果下载的Portable版本balenaEtcher,直接双击打开即可,打开后的balenaEtcher界面如下图所示:<span id="wifi连接测试"></span>
[[File:media/1c6f6f6847b6ee3a626d7a61409542b6.png]]=== WIFI连接测试 ===
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''打开balenaEtcher时如果提示下面的错误:<span style="color:#FF0000">首先请注意Orange Pi 5 Plus开发板上是没有WIFI模块的,需要外接PCIe网卡或者USB网卡才能使用WIFI功能。</span>'''
'''外接PCIe网卡的使用说明请参考[[File:media/2ad61de4e6ea2756929a84fbbc45cd0eOrange Pi 5 Plus#M.png2 E-Key PCIe WIFI6+蓝牙模块的使用方法|PCIe WIFI6+蓝牙模块的使用方法]]一小节。'''
'''请选择balenaEtcher后点击右键,然后选择以管理员身份运行。外接USB网卡的使用说明请参考[[Orange Pi 5 Plus#USB无线网卡测试|USB无线网卡测试]]一小节。'''</big>|}
[[File{| class="wikitable" style="background-color:media#ffffdc;width:800px;" |-| <big>'''请不要通过修改/etc/network/interfaces配置文件的方式来连接WIFI,通过这种方式连接WIFI网络使用会有问题。'''</62ebf30a0897652d5bec2a5d021cc547.png]]big>|}
# 使用balenaEtcher烧录Linux镜像的具体步骤如下所示<span id="服务器版镜像通过命令连接wifi"></span>## 首先选择要烧录的Linux镜像文件的路径## 然后选择TF卡的盘符## 最后点击Flash就会开始烧录Linux镜像到TF卡中==== 服务器版镜像通过命令连接WIFI ====
[[File{| class="wikitable" style="background-color:media/2a6c7787d912052416983e21633e4ace.png]]#ffffdc;width:800px;" |-| <big>'''当开发板没有连接以太网,没有连接HDMI显示器,只连接了串口时,推荐使用此小节演示的命令来连接WIFI网络。因为nmtui在某些串口软件(如minicom)中只能显示字符,无法正常显示图形界面。当然,如果开发板连接了以太网或者HDMI显示屏,也可以使用此小节演示的命令来连接WIFI网络的。'''
'''<span style="color:# balenaEtcher烧录Linux镜像的过程显示的界面如下图所示,另外进度条显示紫色表示正在烧录Linux镜像到TF卡中FF0000">下面演示的命令都是默认WIFI的网络设备节点名为wlan0,但不同的WIFI模块节点名会有不同,请注意替换为实际看到的节点名,不要照抄。</span>'''</big>|}
[[File<ol style="list-style-type:mediadecimal;"><li><p>先登录linux系统,有下面三种方式</ea192c78911ed00788792961ff282c71.png]]p><ol style="list-style-type: lower-alpha;"><li>如果开发板连接了网线,可以通过'''ssh远程登录linux系统'''</li><li><p>如果开发板连接好了调试串口,可以使用串口终端登录linux系统</p></li><li><p>如果连接了开发板到HDMI显示器,可以通过HDMI显示的终端登录到linux系统</p></li></ol></li><li><p>首先使用'''nmcli dev wifi'''命令扫描周围的WIFI热点</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''nmcli dev wifi'''</p>|}<div class="figure">
# Linux镜像烧录完后,balenaEtcher默认还会对烧录到TF卡中的镜像进行校验,确保烧录过程没有出问题。如下图所示,显示绿色的进度条就表示镜像已经烧录完成,balenaEtcher正在对烧录完成的镜像进行校验[[File:plus-5-361.png]]
[[File</div></li><li><p>然后使用'''nmcli''' 命令连接扫描到的WIFI热点,其中:</p><ol style="list-style-type:medialower-alpha;"><li><p>'''wifi_name'''需要换成想连接的WIFI热点的名字</p></a28b8867823058b385a693baa564e33bli><li><p>'''wifi_passwd'''需要换成想连接的WIFI热点的密码</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''nmcli dev wifi connect <span style="color:#FF0000">wifi_name</span> password <span style="color:#FF0000">wifi_passwd</span>'''</p><p>Device 'wlan0' successfully activated with 'cf937f88-ca1e-4411-bb50-61f402eef293'.png]]</p>|}</li></ol></li><li><p>通过'''ip addr show wlan0'''命令可以查看wifi的IP地址</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''WIFI的设备节点名不一定都是wlan0,请以实际看到的为准。'''</p></big>|}
{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ip addr show wlan0'''</p><p>11: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> 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 '''<span style="color:# 成功烧录完成后balenaEtcher的显示界面如下图所示,如果显示绿色的指示图标说明镜像烧录成功,此时就可以退出balenaEtcher,然后拔出TF卡插入到开发板的TF卡槽中使用了FF0000">192.168.1.11</span>'''/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>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''WIFI的设备节点名不一定都是wlan0,请以实际看到的为准。'''</p></big>|}{| class="wikitable" style="width:800px;" |-|<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>
[[File:media<span id="服务器版镜像通过图形化方式连接wifi"></452d9c831f3c38c0a58686bfa19d300b.png]]span>
<span id="使用rkdevtool烧录linux镜像到tf卡中的方法"></span>=== 使用RKDevTool烧录Linux镜像到TF卡中的方法 服务器版镜像通过图形化方式连接WIFI ====
<ol style="list-style-type: decimal;"><li><p>先登录linux系统,有下面三种方式</p><ol style="list-style-type: lower-alpha;"><li><p>如果开发板连接了网线,可以通过'''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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''nmtui'''</p>|}</li><li><p>输入nmtui命令打开的界面如下所示</p><p>[[File:plus-5-362.png]]</p></li><li><p>选择'''Activate a connect'''后回车</p><p>[[File:plus-5-363.png]]</p></li><li><p>然后就能看到所有搜索到的WIFI热点</p><p>[[File:plus-5-364.png]]</p></li><li><p>选择想要连接的WIFI热点后再使用Tab键将光标定位到'''Activate'''后回车</p><p>[[File:plus-5-365.png]]</p></li><li><p>然后会弹出输入密码的对话框,在'''Password'''内输入对应的密码然后回车就会开始连接WIFI</p><p>[[File:plus-5-366.png]]</p></li><li><p>WIFI连接成功后会在已连接的WIFI名称前显示一个”*”</p><p>[[File:plus-5-367.png]]</p></li><li><p>通过'''ip addr show wlan0'''命令可以查看wifi的IP地址</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''WIFI的设备节点名不一定都是wlan0,请以实际看到的为准。'''</p></big>|}{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ip addr show wlan0'''</p><p>11: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> 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 '''<span style="color:#FF0000">192.168.1.11</span>'''/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>{| class="wikitable" style="background-color:# 首先需要准备一根品质良好的Typeffffdc;width:800px;" |-| <big><p>'''WIFI的设备节点名不一定都是wlan0,请以实际看到的为准。'''</p></big>|}{| class="wikitable" style="width:800px;" |-|<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 ---C接口的数据线</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>
[[File:media/d84ad9c1e0e447425ddd86cfefafca1e.png]]==== 桌面版镜像的测试方法 ====
# 还需要准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为<ol style="list-style-type: decimal;"><li><p>点击桌面右上角的网络配置图标(测试WIFI时请不要连接网线)</p><p>[[File:plus-5-368.png]]</p></li><li><p>在弹出的下拉框中点击'''class10More networks'''级或可以看到所有扫描到的WIFI热点,然后选择想要连接的WIFI热点</p><p>[[File:plus-5-369.png]]</p></li><li><p>然后输入WIFI热点的密码,再点击'''class10Connect'''级以上,建议使用闪迪等品牌的TF卡就会开始连接WIFI</p><p>[[File:plus-5-370.png]]</p></li><li><p>连接好WIFI后,可以打开浏览器查看是否能上网,浏览器的入口如下图所示</p><p>[[File:plus-5-371.png]]</p></li><li><p>打开浏览器后如果能打开其他网页说明WIFI连接正常</p># 然后将TF卡插入开发板的卡槽中<div class="figure">
[[File:media/4bef33e466ce90bd23eed732af50389fplus-5-372.png]]
# 然后从[http:</div></www.orangepi.cnli></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 的资料下载页面]首先选择'''官方工具''',然后进入下面的文件夹中ol>
[[File:media<span id="设置静态ip地址的方法"></816e86dd538ef9fa9cb9cb253871f73f.png]]span>
# 然后下载下面的所有文件=== 设置静态IP地址的方法 ===
[[File{| class="wikitable" style="background-color:media#ffffdc;width:800px;" |-| <big>'''请不要通过修改/etc/network/interfaces配置文件的方式来设置静态IP地址。'''</big>|}<span id="使用nmtui命令来设置静态ip地址"></4828a75a2a73dd5e1f4ea5dcb0a8e3e8.png]]span>==== 使用nmtui命令来设置静态IP地址 ====
<ol style="list-style-type: decimal;"><li><p>首先运行'''nmtui'''命令</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''nmtui'''</p>|}</li><li><p>然后选择'''Edit a connection'''并按下回车键</p><p>[[File:plus-5-373.png]]</p></li><li><p>然后选择需要设置静态IP地址的网络接口,比如设置'''Ethernet'''接口的静态IP地址选择'''Wired connection 1'''或者'''Wired connection 2'''</p><p>[[File:plus-5-374.png]]</p></li><li><p>然后通过'''Tab'''键选择'''Edit'''并按下回车键</p><p>[[File:plus-5-375.png]]</p></li><li><p>然后通过Tab键将光标移动到下图所示的'''<Automatic>'''位置进行IPv4的配置</p><p>[[File:plus-5-376.png]]</p></li><li><p>然后回车,通过上下方向键选择'''Manual'''注意,“MiniLoader,然后回车确定</p><p>[[File:plus-5-377.png]]</p></li><li><p>选择完后的显示如下图所示</p><p>[[File:plus-5-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。378.png]]</p></li><li><p>然后通过Tab键将光标移动到'''<Show>'''</p><p>[[File:plus-5-379.png]]</p></li><li><p>然后回车,回车后会弹出下面的设置界面</p><p>[[File:plus-5-380.png]]</p></li><li><p>然后就可以在下图所示的位置设置IP地址(Addresses)、网关(Gateway)和DNS服务器的地址(里面还有很多其他设置选项,请自行探索),'''<span style="color:# 然后从FF0000">请根据自己的具体需求来设置,下图中设置的值只是一个示例</span>'''</p><p>[http[File:plus-5-381.png]]</p></li><li><p>设置完后将光标移动到右下角的'''<OK>''',然后回车确认</p><p>[[File:plus-5-382.png]]</p></li><li><p>然后点击'''<Back>'''回退到上一级选择界面</wwwp><p>[[File:plus-5-383.png]]</p></li><li><p>然后选择'''Activate a connection''',再将光标移动到'''<OK>''',最后点击回车</p><p>[[File:plus-5-384.orangepipng]]</p></li><li><p>然后选择需要设置的网络接口,比如'''Wired connection 2''',然后将光标移动到'''<Deactivate>''',再按下回车键禁用'''Wired connection 2'''</p><p>[[File:plus-5-385.cnpng]]</htmlp></serviceAndSupportli><li><p>然重新选择并使能'''Wired connection 2''',这样前面设置的静态IP就会生效了</indexp><p>[[File:plus-5-386.html png]]</p></li><li><p>然后通过'''<Back>'''和'''Orange Pi的资料下载页面Quit'''按钮就可以退出nmtui</p><p>[[File:plus-5-387.png]] [[File:plus-5-388.png]]下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以“</p></li><li><p>然后通过'''ip addr show'''就能看到网口的IP地址已经变成前面设置的静态IP地址了</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ip addr show enP4p65s0'''</p><p>3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> 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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ping 192.168.1.img47 -I enP4p65s0'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</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>
'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载“TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''<span id="使用nmcli命令来设置静态ip地址"></span>
[[File:media/523a42e43bc947bbb3d03d565485dbb8.png]]==== 使用nmcli命令来设置静态IP地址 ====
# 然后用解压软件解压<ol style="list-style-type: decimal;"><li><p>如果要设置网口的静态IP地址,请先将网线插入开发板,'''如果需要设置WIFI的静态IP地址,请先连接好WIFI''',然后再开始设置静态IP地址</p></li><li><p>然后通过'''nmcli con show'''命令可以查看网络设备的名字,如下所示,'''Wired connection 1'''和'''Wired connection 2'''为以太网接口的名字</p>{| class="wikitable" style="width:800px;"|-|orangepi@orangepi:~$ '''nmcli con show'''<br><span style="margin-right: 180px;">NAME</span><span style="margin-right: 260px;">UUID </span><span style="margin-right: 45px;">TYPE </span><span style="margin-right: 50px;">DEVICE</span><br><span style="margin-right: 50px;">'''Wired connection 1'''</span><span style="margin-right: 45px;">c043c817-1156-3b72-a559-9a8cd642bf70</span><span style="margin-right: 30px;">ethernet </span><span style="margin-right: 50px;">enP3p49s0</span><br><span style="margin-right: 50px;">'''Wired connection 2'''</span><span style="margin-right: 50px;">6f74598a-ccc6-358b-be05-87eaf34df930</span><span style="margin-right: 30px;">ethernet </span><span style="margin-right: 50px;">enP4p65s0</span><br>|}</li><li><p>然后输入下面的命令,其中</p><ol style="list-style-type: lower-alpha;"><li><p>'''"Wired connection 1"''' 表示设置以太网口的静态IP地址,如果需要设置其它网口的静态IP地址,请修改为对应网络接口对应的名字(通过'''nmcli > con show'''命令可以获取到)</p></li><li><p>'''ipv4.addresses''' 后面是要设置的静态IP地址,可以修改为自己想要设置的值</p></li><li><p>'''ipv4.gateway''' 表示网关的地址</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''nmcli con mod "Wired connection 1" \'''</p><p>'''ipv4.addresses "192.168.1.110" \'''</p><p>'''ipv4.gateway "192.168.1.1" \'''</p><p>'''DriverAssitant_v5ipv4.dns "8.8.8.128" \'''</p><p>'''ipv4.zipmethod "manual"'''</p>|}</li></ol></li><li><p>然后重启linux系统</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo reboot'',再在解压后的文件夹中找到'</p>|}</li><li><p>然后重新进入linux系统使用''DriverInstall'ip addr show'''命令就可以看到IP地址已经设置为想要的值了</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ip addr show'''</p><p>2: enP3p49s0: <BROADCAST,MULTICAST,UP,LOWER_UP> 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 '''<span style="color:#FF0000">192.168.1.exe110</span>'''可执行文件并打开即可/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>
[[File:media<span id="m.2-e-key-pcie-wifi6蓝牙模块的使用方法"></3abe751bd0c4c5e9be6a83f839a1e4c2.png]]span>
# 打开'''DriverInstall== M.exe'''后安装瑞芯微驱动的步骤如下所示## 点击“'''驱动安装'''”按钮2 E-Key PCIe WIFI6+蓝牙模块的使用方法 ==
[[File:media/bc5fc637f8588abefa4f2ff7e0dc2683.png]]# 首先需要购买一个PCIe WIFI6+蓝牙模块
# 等待一段时间后,会弹出窗口提示“::{| class="wikitable" style="width: 800px"|-| '''安装驱动成功序号'''”,然后点击| '''“确定”型号'''| '''实物图片'''| '''已支持的OS'''|-| '''1'''| '''AX200'''按钮即可
[[File:media/48720c90a698617c0f884059ac1d6885.png]]'''(PCIE+USB接口)'''
# 然后解压'''RKDevTool_Release_v2| [[File:plus-5-389.96.zippng]]| ''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool<span style="color:#FF0000">Debian</span>'''打开即可
[[File'''<span style="color:media#FF0000">Ubuntu</c20745924f6e330c0bc60639e5ee8c1b.png]]span>'''
# 打开'''RKDevToolOpenWRT''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示“'''没有发现设备'''”
[[File:media/ca4b9e37ca9d9cce3f888c4278bd3726.png]]'''OPi OS Arch'''
# 然后开始烧录Linux镜像到TF卡中|-| '''2'''## 首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示| '''AX210'''
[[File:media/293482d42e80a8b3e2962b40e834bb41.png]]'''(PCIE+USB接口)'''
# 确保开发板没有连接Type| [[File:plus-5-C电源390.png]]| '''<span style="color:## 然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:FF0000">Debian</span>'''
[[File'''<span style="color:media#FF0000">Ubuntu</b5c295a072c9e13167488051a2a2cb04.png]]span>'''
# 然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了。Type-C电源接口的位置如下所示:'''OpenWRT'''
[[File:media/1f65f9666af69c591813b5597e806ccb.png]]'''OPi OS Arch'''
# 如果前面的步骤顺利,此时开发板会进入|-| '''MASKROM3'''模式,在烧录工具的界面上会提示“| '''发现一个MASKROM设备RTL8852BE'''”
[[File:media/18276e05fbda6e29cb92f7582ba887d4.png]]'''(PCIE+USB接口)'''
| [[File:plus-5-391.png]]| '''<span style="color:# 然后将鼠标光标放在下面的这片区域中FF0000">Debian</span>'''
[[File'''<span style="color:media#FF0000">Ubuntu</86a56c049f0d8807cf1685e7b89306eb.png]]span>'''
# 然后点击鼠标右键会弹出下图所示的选择界面'''Android12'''
[[File:media/e21e70e17552c5c4b75c570c4c167464.png]]'''OPi OS Arch'''
# 然后选择'''导入配置OPi OS Droid'''选项
[[File:media/02a57b0477b87251ffdaaf062e80025d.png]]|}
# 然后选择前面下载的<ol start="2" style="list-style-type: decimal;"><li><p>然后将模块插入开发板的M.2 E-Key接口中并固定好,位置如下图所示:</p><p>[[File:plus-5-392.png]]</p></li><li><p>然后使用lspci命令如果能看到WIFI模块的信息,说明模块接触良好</p><ol style="list-style-type: lower-alpha;"><li><p>AX200显示如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''lspci | grep "Network"''MiniLoader'</p><p>0002:21:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)</p>|}</li><li><p>AX210显示如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ ''文件夹中的'lspci | grep "Network"''rk3588_linux_tfcard'</p><p>0002:21:00.cfg0 Network controller: Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz (rev 1a)</p>|}</li><li><p>RTL8852显示如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''配置文件,再点击lspci | grep "Network"'''</p><p>0002:21:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)</p>|}</li></ol></li><li><p>然后使用下面的命令就能看到会多了一个WIFI的设备节点了</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''ip a'''</p>|}</li><li><p>WIFI的连接和测试方法请参看[[Orange Pi 5 Plus#WIFI连接测试|'''WIFI连接测试''']]一节,这里不再赘述。</p></li><li><p>蓝牙的测试方法请参看[[Orange Pi 5 Plus#蓝牙使用方法|'''打开蓝牙使用方法''']]一节,这里不再赘述。</p></li></ol>
[[File:media<span id="ssh远程登录开发板"></57d5786fd4820bb193fdbc33711ac72e.png]]span>
# 然后点击'''确定'''== SSH远程登录开发板 ==
[[File{| class="wikitable" style="background-color:media#ffffdc;width:800px;" |-| <big>'''Linux系统默认都开启了ssh远程登录,并且允许root用户登录系统。ssh登录前首先需要确保以太网或者wifi网络已连接,然后使用ip addr命令或者通过查看路由器的方式获取开发板的IP地址。'''</c7c890a23f728a94224f270e61b4a7f4.png]]big>|}
# 然后点击下图所示的位置<span id="ubuntu下ssh远程登录开发板"></span>=== Ubuntu下SSH远程登录开发板 ===
[[File:media/82fb5a8dd506d6301435d038c1d099e2.png]]# 获取开发板的IP地址# 然后就可以通过ssh命令远程登录linux系统
# 再选择前面下载的::{| class="wikitable" style="width:800px;" |-|test@test:~$ '''MiniLoaderssh root@192.168.1.xxx'''文件夹中'''MiniLoaderAll(需要替换为开发板的IP地址)<br>root@192.168.1.bin''',再点击'''打开''xx's password: (在这里输入密码,默认密码为orangepi)|}
[[File:media:{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''注意,输入密码的时候,<span style="color:#FF0000">屏幕上是不会显示输入的密码的具体内容的</3679d114ef42d45c105bc92d6c74e07a.png]]span>,请不要以为是有什么故障,输入完后直接回车即可。'''
'''如果提示拒绝连接,只要使用的是Orange Pi提供的镜像,<span style="color:# 然后点击下图所示的位置FF0000">就请不要怀疑orangepi这个密码是不是不对</span>,而是要找其他原因。'''</big>|}
[[File<ol start="3" style="list-style-type:mediadecimal;"><li><p>成功登录系统后的显示如下图所示</2e0cbdef7e813cbdfce311fd9af223f7.png]]p><div class="figure">
# 然后选择想要烧录的linux镜像的路径,再点击'''打开'''[[File:plus-5-399.png]]
[[File</div>{| class="wikitable" style="background-color:#ffffdc;width:media800px;" |-| <big><p>'''如果ssh无法正常登陆linux系统,首先请检查下开发板的IP地址是否能ping通,如果ping通没问题的话,可以通过串口或者HDMI显示器登录linux系统然后在开发板上输入下面的命令后再尝试是否能连接:'''</2a719a7cdf76bfc55d66425871d20080.png]]p>
root@orangepi:~# 然后请勾选上'''强制按地址写reset_ssh.sh'''选项
[[File:media'''如果还不行,请重烧系统试下。'''</4514cff4fc70772df0a100ab84cafc38.png]]big>|}</li></ol><span id="windows下ssh远程登录开发板"></span>
# 再点击执行按钮就会开始烧录linux镜像到开发板的tf卡中=== Windows下SSH远程登录开发板 ===
<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 username'''中输入linux系统的用户名'''root'''或'''orangepi'''</p></li><li><p>最后点击'''OK'''即可</p><p>[[File:media/e18a310a8ea594ec4378b3cbee5e2172plus-5-400.png]]</p></li></ol></li><li><p>然后会提示输入密码,默认root和orangepi用户的密码都为orangepi</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''注意,输入密码的时候,<span style="color:#FF0000">屏幕上是不会显示输入的密码的具体内容的</span>,请不要以为是有什么故障,输入完后直接回车即可。'''</p></big>|}</li>
# linux镜像烧录完后的显示log如下图所示[[File:plus-5-401.png]]</ol><ol start="4" style="list-style-type: decimal;"><li>成功登录系统后的显示如下图所示</li>
[[File:media/60b77a623b8cbd1d682537d46ee1f8b8plus-5-402.png]]</ol><span id="adb的使用方法"></span>
# 烧录完linux镜像到tf卡中后,linux系统会自动启动。== ADB的使用方法 ==
<span id="使用win32diskimager烧录linux镜像的方法"></span>=== 使用Win32Diskimager烧录Linux镜像的方法 网络adb的使用方法 ===
# 首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为<ol style="list-style-type: decimal;"><li><p>系统启动后请先确认下'''class10adbd'''级或已经启动了</p>{| class="wikitable" style="width:800px;"|-|orangepi@orangepi:~$ '''class10ps -ax | grep "adbd"'''级以上,建议使用闪迪等品牌的TF卡<br># 然后使用读卡器把TF卡插入电脑<span style="margin-right: 80px;">808 ?</span><span style="margin-right: 60px;">Sl</span><span style="margin-right: 45px;">0:00 /usr/bin/adbd</span><br># 接着格式化TF卡<span style="margin-right: 30px;">3707 ttyFIQ0</span><span style="margin-right: 60px;">S+</span><span style="margin-right: 50px;">0:00 grep --color=auto adbd</span><br>## 可以使用|}</li><li><p>然后查看下开发板的IP地址,并记下来</p></li><li><p>然后在Ubuntu PC上安装adb工具</p><p>test@test:~$ '''SD Card Formattersudo apt-get update'''这个软件格式化TF卡,其下载地址为</p><p>test@test:~$ '''sudo apt-get install -y adb'''</p></li><li><p>然后使用下面的命令连接网络adb</p></li>
[https{| class="wikitable" style="width://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip 800px;" |-|test@test:~$ '''https://wwwadb connect 192.168.sdcard1.orgxx:5555 <span style="color:#FF0000">#IP地址请替换为开发板的IP地址</downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zipspan>''']
# 下载完后直接解压安装即可,然后打开软件# 如果电脑只插入了TF卡,则“'''Select card'''”一栏中会显示TF卡的盘符,如果电脑插入了多个USB存储设备,可以通过下拉框选择TF卡对应的盘符* daemon not running; starting now at tcp:5037
<div class="figure">* daemon started successfully
[[Fileconnected to 192.168.1.xx:media/4384069bc700c0f22175ca3d90d0ac02.png|选区_199]]5555
</div># 然后点击“test@test:~$ '''Formatadb devices'''”,格式化前会弹出一个警告框,选择“'''是(Y)'''”后就会开始格式化
[[File:media/d99155121da7a5b973411b322db68e1d.png]]List of devices attached
'''192.168.1.xx:5555 device'''|}</ol ><ol start="5" style="list-style-type: decimal;"><li><p>格式化完TF卡后会弹出下图所示的信息,点击确定即可</p><p>[[File:media/9f5034d52491ddc935af7485ac71469a.png]]</p>然后使用下面的命令就可以登录开发板的linux系统</li><li><p>从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以“'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</p></li></ol>
{| class="wikitable" style="width:800px;" |-|test@test:~$ '''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载“TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。adb shell'''
[[File'''root@orangepi5plus:media/523a42e43bc947bbb3d03d565485dbb8.png]] # 使用<--- 看到这个提示符后说明已成功登录开发板'''Win32Diskimager'''烧录Linux镜像到TF卡## Win32Diskimager的下载页面为|}</ol>[http<ol start="6" style="list-style-type:decimal;"><li><p>使用adb上传文件到开发板的命令如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''adb push filename /sourceforge.net/projects/win32diskimager/files/Archive/ root'''http</p><p>filename:1 file pushed. 3.7 MB//sourceforges (1075091 bytes in 0.net277s)</projectsp>|}</win32diskimager/files/Archiveli><li><p>使用adb重启开发板的命令如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''adb reboot''']</p>|}</li></ol>
{| class="wikitable" style="background-color:# 下载完后直接安装即可,Win32Diskimager界面如下所示ffffdc;width:800px;" ## 首先选择镜像文件的路径|-| ### 然后确认下TF卡的盘符和“'<big>''设备'''”一栏中显示的一致#如果您的Windows系统中没有adb工具,可以使用RKDevTool软件([[Orange Pi 5 Plus## 最后点击“'''写入使用RKDevTool烧录Linux镜像到TF卡中的方法|使用RKDevTool烧录Linux镜像到TF卡中的方法]]一小节有用到这个软件)中的adb程序。'''”即可开始烧录</big>
[[File:media/86dd166de4133a78e758cbb2ad88913aplus-5-403-1.png]]
# 镜像写入完成后,点击“<big>'''退出在Windows中使用adb的示例如下所示:'''”按钮退出即可,然后就可以拔出TF卡插到开发板中启动</big>
<span id="基于ubuntu[[File:plus-pc将linux镜像烧录到tf卡的方法"></span>5-404.png]]== 基于Ubuntu PC将Linux镜像烧录到TF卡的方法 ==|}
'''注意,这里说的Linux镜像具体指的是从'''[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi资料下载页面''']'''下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像,Ubuntu PC指的是安装了Ubuntu系统的个人电脑。'''=== 使用type-c数据线连接adb ===
# 首先准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为<ol style="list-style-type: decimal;"><li><p>首先准备一根品质良好的Type-C数据线</p><p>[[File:plus-5-17.png]]</p></li><li><p>然后通过Type-C数据线连接好开发板与Ubuntu PC,开发板Type-C接口的位置如下图所示:</p><p>[[File:plus-5-51.png]]</p></li><li><p>然后运行下面的命令将Type-C接口设置为'''device'''模式</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo set_device.sh'''</p>|}<p>如果linux系统中不存在'''set_device.sh'''脚本,请直接使用下面的命令:</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo bash -c "echo device > /sys/kernel/debug/usb/fc000000.usb/mode"'''</p><p>orangepi@orangepi:~$ '''sudo systemctl restart usbdevice'''</p>|}</li><li><p>'''然后请确认下adbd已经启动了'''</p>{| class="wikitable" style="width:800px;"|-|orangepi@orangepi:~$ '''class10ps -ax | grep "adbd"'''级或<br><span style="margin-right: 80px;">808 ?</span><span style="margin-right: 60px;">Sl</span><span style="margin-right: 45px;">0:00 /usr/bin/adbd</span><br><span style="margin-right: 30px;">3707 ttyFIQ0</span><span style="margin-right: 60px;">S+</span><span style="margin-right: 50px;">0:00 grep --color=auto adbd</span><br>|}</li><li><p>然后在Ubuntu PC上安装下adb工具</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''class10sudo apt-get update'''级以上,建议使用闪迪等品牌的TF卡</p><p>test@test:~$ '''sudo apt-get install -y adb'''</p>|}# 然后使用读卡器把TF卡插入电脑</li># 下载balenaEtcher软件,下载地址为<li><p>然后使用下面的命令查看下有没有识别到adb设备</p></li>
[https{| class="wikitable" style="width://www.balena.io/etcher/ 800px;" |-|test@test:~$ '''https://www.balena.io/etcher/adb devices''']
# 进入balenaEtcher下载页面后,点击绿色的下载按钮会跳到软件下载的地方List of devices attached
[[File'''e0f9f71bc343c305 device'''|}</ol><ol start="7" style="list-style-type:mediadecimal;"><li>然后使用下面的命令就可以登录开发板的linux系统</02b7cfcad5a6ddd29787302af9ba1725.png]]li>
# 然后选择下载Linux版本的软件即可{| class="wikitable" style="width:800px;" |-|test@test:~$ '''adb shell'''
[[File'''root@orangepi5plus:media/9d4e2d241c50c100259713ac21d481fe# <--- 看到这个提示符后说明已成功登录开发板'''|}</ol><ol start="8" style="list-style-type: decimal;"><li><p>使用adb上传文件到开发板的命令如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''adb push filename /root'''</p><p>filename: 1 file pushed. 3.7 MB/s (1075091 bytes in 0.png]]277s)</p>|}
{| class="wikitable" style="background-color:# 从[httpffffdc;width://www.orangepi.cn/html/serviceAndSupport/index.html 800px;" |-| <big>'''如果您的Windows系统中没有adb工具,可以使用RKDevTool软件([[Orange Pi的资料下载页面'''Pi 5 Plus#使用RKDevTool烧录Linux镜像到TF卡中的方法|使用RKDevTool烧录Linux镜像到TF卡中的方法]]下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以“一小节有用到这个软件)中的adb程序。'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</big>
'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载“TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''[[File:plus-5-407.png]]
[[File:media<big>'''在Windows中使用adb的示例如下所示:'''</523a42e43bc947bbb3d03d565485dbb8.png]]big>
7z结尾的压缩包的解压命令如下所示:[[File:plus-5-408.png]]|}</li></ol><span id="上传文件到开发板linux系统中的方法"></span>
test@test:~$ '''7z x orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.7z'''== 上传文件到开发板Linux系统中的方法 ==
test@test:~$ '''ls orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.*'''<span id="在ubuntu-pc中上传文件到开发板linux系统中的方法"></span>=== 在Ubuntu PC中上传文件到开发板Linux系统中的方法 ===
orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.7z orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.sha #校验和文件==== 使用scp命令上传文件的方法 ====
orangepi5plus_1<ol style="list-style-type: decimal;"><li><p>使用scp命令可以在Ubuntu PC中上传文件到开发板的Linux系统中,具体命令如下所示</p><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:''' 开发板linux系统中的路径,也可以修改为其它的路径</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''scp file_path orangepi@192.168.0xx.0_debian_bullseye_desktop_xfce_linux5xx:/home/orangepi/'''</p>|}</li></ol></li><li><p>如果要上传文件夹,需要加上-r参数</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''scp -r dir_path orangepi@192.10168.110xx.img #镜像文件xx:/home/orangepi/'''</p>|}</li><li><p>scp还有更多的用法,请使用下面的命令查看man手册</p></li>{| class="wikitable" style="width:800px;" |-|test@test:~$ '''man scp'''如果下载的是OpenWRT镜像,压缩包是以gz结尾的,解压命令如下所示:|}</ol>
test@test:~$ '''gunzip openwrt-aarch64-opi5plus-23.05-linux-5.10.110-ext4.img.gz'''==== 使用filezilla上传文件的方法 ====
<ol style="list-style-type: decimal;"><li><p>首先在Ubuntu PC中安装filezilla</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''ls openwrtsudo apt install -aarch64y filezilla'''</p>|}</li><li><p>然后使用下面的命令打开filezilla</p>{| class="wikitable" style="width:800px;" |-opi5plus-23.05-linux-5.10.110-ext4.img|<p>test@test:~$ '''filezilla'''</p>|}</li><li><p>filezilla打开后的界面如下所示,此时右边远程站点下面显示的是空的</p><div class="figure">
'''openwrt-aarch64-opi5plus-23.05-linux[[File:plus-5.10.110-ext4409.img''' #镜像文件png]]
# 解压镜像后可以先用'''sha256sum -c *.sha'''命令计算下校验和是否正确,如果提示'''成功'''说明下载的镜像没有错,可以放心的烧录到TF卡,如果提示'''校验和不匹配'''说明下载的镜像有问题,请尝试重新下载</div></li><li><p>连接开发板的方法如下图所示</p></li>
test@test:~$ '''sha256sum -c *.sha'''<div class="figure">
orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10[[File:plus-5-410.110.img: OKpng]]
如果下载的是OpenWRT镜像,要对压缩包进行校验,不要解压后再校验</div></ol><ol start="5" style="list-style-type: decimal;"><li><p>然后选择'''保存密码''',再点击'''确定'''</p><p>[[File:plus-5-411.png]]</p></li><li><p>然后选择'''总是信任该主机''',再点击'''确定'''</p></li>
test@test:~$ '''sha256sum -c openwrt-aarch64-opi5plus-23.04-linux-5.10.110-ext4.img.gz.sha'''<div class="figure">
openwrt-aarch64-opi5plus-23.04-linux[[File:plus-5.10.110-ext4412.img.gz: OKpng]]
# 然后在Ubuntu PC的图形界面双击'''balenaEtcher</div></ol><ol start="7" style="list-1.14.3style-x64.AppImage'''即可打开balenaEtcher('''无需安装'''),balenaEtcher打开后的界面显示如下图所示type: decimal;"><li>连接成功后在filezilla软件的右边就可以看到开发板linux文件系统的目录结构了</li>
[[File:media/26204e2f341c12fc900164f2b8ba7dfa.png]]<div class="figure">
# 使用balenaEtcher烧录Linux镜像的具体步骤如下所示## 首先选择要烧录的Linux镜像文件的路径## 然后选择TF卡的盘符## 最后点击Flash就会开始烧录Linux镜像到TF卡中[[File:plus-5-413.png]]
[[File</div></ol><ol start="8" style="list-style-type:mediadecimal;"><li>然后在filezilla软件的右边选择要上传到开发板中的路径,再在filezilla软件的左边选中Ubuntu PC中要上传的文件,再点击鼠标右键,再点击上传选项就会开始上传文件到开发板中了。</9a391c046432e77581d1c3fb3e8977ad.png]]li>
# balenaEtcher烧录Linux镜像的过程显示的界面如下图所示,另外进度条显示紫色表示正在烧录Linux镜像到TF卡中<div class="figure">
[[File:media/9c28592e064af1b64771bdb654cf03edplus-5-414.png]]
# Linux镜像烧录完后,balenaEtcher默认还会对烧录到TF卡中的镜像进行校验,确保烧录过程没有出问题。如下图所示,显示绿色的进度条就表示镜像已经烧录完成,balenaEtcher正在对烧录完成的镜像进行校验</div></ol><ol start="9" style="list-style-type: decimal;"><li><p>上传完成后就可以去开发板linux系统中的对应路径中查看上传的文件了</p></li><li><p>上传文件夹的方法和上传文件的方法是一样的,这里就不再赘述了</p></li></ol>
[[File:media<span id="在windows-pc中上传文件到开发板linux系统中的方法"></78d21f8608325b4f70982f721d173e85.png]]span>
# 成功烧录完成后balenaEtcher的显示界面如下图所示,如果显示绿色的指示图标说明镜像烧录成功,此时就可以退出balenaEtcher,然后拔出TF卡插入到开发板的TF卡槽中使用了=== 在Windows PC中上传文件到开发板Linux系统中的方法 ===
[[File:media<span id="使用filezilla上传文件的方法-1"></82137b25d46bf405b908d12d43aa9df9.png]]span>==== 使用filezilla上传文件的方法 ====
<span idol style="烧录linux镜像到emmc中的方法list-style-type: decimal;"><li><p>首先下载filezilla软件Windows版本的安装文件,下载链接如下所示</spanp>{| class="wikitable" style= 烧录Linux镜像到eMMC中的方法 ="width:800px;" |-|<big>'''https://filezilla-project.org/download.php?type=client'''</big>|}</li>
<span iddiv class="使用rkdevtool烧录linux镜像到emmc中的方法figure"></span>=== 使用RKDevTool烧录Linux镜像到eMMC中的方法 ===
'''注意,下面所有的操作都是在Windows电脑中进行的。'''[[File:plus-5-415.png]]
'''注意,这里说的Linux镜像具体指的是从'''</div>[[httpFile://wwwplus-5-416.orangepi.cnpng]]</htmlol><ol start="2" style="list-style-type: decimal;"><li><p>下载的安装包如下所示,然后双击直接安装即可</serviceAndSupport/index.html p>{| class="wikitable" style="width:800px;" |-|<p>'''Orange Pi资料下载页面''']'''下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。FileZilla_Server_1.5.1_win64-setup.exe'''</p>|}</li>
# 开发板预留了eMMC模块的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:安装过程中,下面的安装界面请选择'''Decline''',然后再选择'''Next>'''
[[File:media/509c9654850ee23aaabfc364310b90d9.png]]<div class="figure">
# 还需要准备一根品质良好的Type[[File:plus-C接口的数据线5-417.png]]
[[File</div></ol><ol start="3" style="list-style-type:mediadecimal;"><li>filezilla打开后的界面如下所示,此时右边远程站点下面显示的是空的</d84ad9c1e0e447425ddd86cfefafca1e.png]]li>
# 然后从[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的资料下载页面]首先选择官方工具,然后进入下面的文件夹中<div class="figure">
[[File:media/816e86dd538ef9fa9cb9cb253871f73fplus-5-418.png]]
# 然后下载下面的所有文件</div></ol><ol start="4" style="list-style-type: decimal;"><li>连接开发板的方法如下图所示:</li>
[[File:media/4828a75a2a73dd5e1f4ea5dcb0a8e3e8.png]]<div class="figure">
'''注意,“MiniLoader[[File:plus-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。'''5-419.png]]
# 然后从[http:</div></www.orangepi.cn/html/serviceAndSupport/index.html ol><ol start="5" style="list-style-type: decimal;"><li>然后选择'''Orange Pi的资料下载页面保存密码''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以“,再点击'''.img确定'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</li>
'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载“TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''<div class="figure">
[[File:media/523a42e43bc947bbb3d03d565485dbb8plus-5-420.png]]
# 然后用解压软件解压</div></ol><ol start="6" style="list-style-type: decimal;"><li>然后选择'''DriverAssitant_v5.12.zip总是信任该主机''',再在解压后的文件夹中找到,再点击'''DriverInstall.exe确定'''可执行文件并打开即可</li>
[[File:media/3abe751bd0c4c5e9be6a83f839a1e4c2.png]]<div class="figure">
# 打开'''DriverInstall[[File:plus-5-421.exe'''后安装瑞芯微驱动的步骤如下所示## 点击“'''驱动安装'''”按钮png]]
[[File</div></ol><ol start="7" style="list-style-type:mediadecimal;"><li>连接成功后在filezilla软件的右边就可以看到开发板linux文件系统的目录结构了</bc5fc637f8588abefa4f2ff7e0dc2683.png]]li>
# 等待一段时间后,会弹出窗口提示“'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可<div class="figure">
[[File:media/48720c90a698617c0f884059ac1d6885plus-5-422.png]]
# 然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可</div></ol><ol start="8" style="list-style-type: decimal;"><li>然后在filezilla软件的右边选择要上传到开发板中的路径,再在filezilla软件的左边选中Windows PC中要上传的文件,再点击鼠标右键,再点击上传选项就会开始上传文件到开发板中了</li>
[[File:media/c20745924f6e330c0bc60639e5ee8c1b.png]]<div class="figure">
# 打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type[[File:plus-C线连接上开发板,所以左下角会提示“'''没有发现设备'''”5-423.png]]
[[File</div></ol><ol start="9" style="list-style-type:mediadecimal;"><li><p>上传完成后就可以去开发板linux系统中的对应路径中查看上传的文件了</p></li><li><p>上传文件夹的方法和上传文件的方法是一样的,这里就不再赘述了</p></li></ca4b9e37ca9d9cce3f888c4278bd3726.png]]ol>
# 然后开始烧录Linux镜像到eMMC中## 首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示<span id="hdmi测试"></span>
[[File:media/293482d42e80a8b3e2962b40e834bb41.png]]== HDMI测试 ==
# 确保开发板没有插入TF卡,没有连接电源<span id="hdmi输出测试"></span>## 然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:=== HDMI输出测试 ===
<ol style="list-style-type: decimal;"><li><p>开发板有两个HDMI输出接口,所在位置如下图所示:</p><p>[[File:plus-5-424.png]]</p></li><li><p>Linux系统默认配置HDMI_TX1支持8K显示,HDMI_TX2默认只支持4K显示(同一时间只能有1个HDMI_TX接口支持8K显示)。如果想设置HDMI_TX2支持8K显示,请按照如下步骤设置下:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li><li><p>然后选择'''System'''</p><p>[[File:5plus-51.png]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:media5plus-52.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中'''hdmi2-8k'''配置</b5c295a072c9e13167488051a2a2cb04p><p>[[File:plus-5-427.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:5plus-54.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:5plus-55.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:5plus-56.png]]</p></li></ol></li><li><p>然后使用HDMI转HDMI线连接Orange Pi开发板和HDMI显示器</p><p>[[File:plus-5-7.png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''注意,如果想接4K或者8K显示器,请确保HDMI线支持4K或者8K视频显示。'''</p></big>|}</li><li><p>启动linux系统后如果HDMI显示器有图像输出说明HDMI接口使用正常</p></li>
{| class="wikitable" style="background-color:# 然后给开发板接上Typeffffdc;width:800px;" |-C接口的电源,并上电,然后就可以松开MaskROM按键了| <big>'''注意,很多笔记本电脑虽然带有HDMI接口,但是笔记本的HDMI接口一般只有输出功能,并没有HDMI in的功能,也就是说并不能将开发板的HDMI输出显示到笔记本的屏幕上。'''
[[File:media/1f65f9666af69c591813b5597e806ccb.png]]'''当想把开发板的HDMI接到笔记本电脑HDMI接口时,请先确认清楚您的笔记本是支持HDMI in的功能。'''
# 如果前面的步骤顺利,此时开发板会进入'''MASKROM当HDMI没有显示的时候,请先检查下HDMI线有没有插紧,确认接线没问题后,可以换一个不同的屏幕试下有没有显示。'''模式,在烧录工具的界面上会提示“'''发现一个MASKROM设备'''”</big>|}</ol><span id="hdmi-in的测试方法"></span>
[[File:media/18276e05fbda6e29cb92f7582ba887d4.png]]=== HDMI IN的测试方法 ===
# 然后将鼠标光标放在下面的这片区域中<ol style="list-style-type: decimal;"><li><p>开发板HDMI In接口的所在位置如下所示:</p><p>[[File:plus-5-432.png]]</p></li><li><p>首先使用下图所示的HDMI转HDMI线将其它设备的HDMI输出接到开发板的HDMI In接口上</p><p>[[File:plus-5-7.png]]</p></li><li><p>Linux系统HDMI In功能默认是关闭的,打开方法如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li><li><p>然后选择'''System'''</p><p>[[File:5plus-51.png]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:5plus-52.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中'''hdmirx'''配置</p><p>[[File:plus-5-436.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:5plus-54.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:5plus-55.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:5plus-56.png]]</p></li></ol></li><li><p>重启进入系统后再在桌面上打开一个终端,然后运行下'''test_hdmiin.sh'''脚本</p>{| class="wikitable" style="width:800px;" |-|<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"> [[File:plus-5-440.png]]
[[File:media</86a56c049f0d8807cf1685e7b89306eb.png]]div></li></ol>
# 然后点击鼠标右键会弹出下图所示的选择界面<span id="hdmi转vga显示测试"></span>
[[File:media/e21e70e17552c5c4b75c570c4c167464.png]]=== 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:plus-5-441.png]]</p></li><li><p>一根VGA线</p><p>[[File:plus-5-442.png]]</p></li><li><p>一个支持VGA接口的显示器或者电视</p></li></ol></li><li><p>HDMI转VGA显示测试如下所示:</p><p>[[File:plus-5-443.png]]</p>{| class="wikitable" style="background-color:# 然后选择ffffdc;width:800px;" |-| <big><p>'''导入配置使用HDMI转VGA显示时,开发板以及开发板的Linux系统是不需要做任何设置的,只需要开发板HDMI接口能正常显示就可以了。所以如果测试有问题,请检查HDMI转VGA转换器、VGA线以及显示器是否有问题。'''选项</p></big>|}</li></ol>
[[File:media<span id="hdmi分辨率设置方法"></02a57b0477b87251ffdaaf062e80025d.png]]span>
# 然后选择前面下载的'''MiniLoader'''文件夹中的'''rk3588_linux_emmc.cfg'''配置文件,再点击'''打开'''=== HDMI分辨率设置方法 ===
<ol style="list-style-type: decimal;"><li><p>首先在'''Settings'''中打开'''Display'''</p><p>[[File:plus-5-444.png]]</p></li><li><p>然后就能看到系统当前的分辨率</p><p>[[File:plus-5-445.png]]</p></li><li><p>点击Resolution(分辨率)的下拉框,就可以看到显示器当前支持的所有分辨率</p><p>[[File:plus-5-446.png]]</p></li><li><p>然后选择想要设置的分辨率,再点击Apply</p><p>[[File:mediaplus-5-447.png]]</p></4bdabe5bde016a30d5388e1c13d78442li><li><p>等新的分辨率设置完后再选择'''Keep the configuration'''即可</p><p>[[File:plus-5-448.png]]</p></li></ol>
# 然后点击'''确定'''== 蓝牙使用方法 ==
[[File{| class="wikitable" style="background-color:media#ffffdc;width:800px;" |-| <big>'''<span style="color:#FF0000">请注意,Orange Pi 5 Plus开发板上是没有蓝牙模块的,需要外接带蓝牙的PCIe网卡或者带蓝牙的USB网卡才能使用蓝牙功能。</f553629a04bdec64defd25641f0aeeff.png]]span>'''
'''外接PCIe网卡的使用说明请参考[[Orange Pi 5 Plus# 然后点击下图所示的位置M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法|PCIe WIFI6+蓝牙模块的使用方法]]一小节。'''
'''外接USB网卡的使用说明请参考[[File:media/4069975205588ba8282c74d28712b4a9.pngOrange Pi 5 Plus#USB无线网卡测试|USB无线网卡测试]]一小节。'''</big>|}
# 再选择前面下载的'''MiniLoader'''文件夹中'''MiniLoaderAll.bin''',再点击'''打开'''
[[File:media<span id="桌面版镜像的测试方法-1"></3679d114ef42d45c105bc92d6c74e07a.png]]span>=== 桌面版镜像的测试方法 ===
# 然后点击下图所示的位置<ol style="list-style-type: decimal;"><li><p>点击桌面右上角的蓝牙图标</p><p>[[File:plus-5-449.png]]</p></li><li><p>然后选择适配器</p><p>[[File:plus-5-450.png]]</p></li><li><p>如果有提示下面的界面,请选择'''Yes'''</p><p>[[File:plus-5-451.png]]</p></li><li><p>然后在蓝牙的适配器设置界面中设置'''Visibility Setting'''为'''Always visible''',然后关闭即可</p><p>[[File:plus-5-452.png]]</p></li><li><p>然后打开蓝牙设备的配置界面</p><p>[[File:plus-5-453.png]]</p></li><li><p>点击'''Search'''即可开始扫描周围的蓝牙设备</p><p>[[File:plus-5-454.png]]</p></li></ol>
<!-- --><ol start="6" style="list-style-type: decimal;"><li><p>然后选择想要连接的蓝牙设备,再点击鼠标右键就会弹出对此蓝牙设备的操作界面,选择'''Pair'''即可开始配对,这里演示的是和Android手机配对</p><p>[[File:plus-5-455.png]]</p></li><li><p>配对时,桌面的右上角会弹出配对确认框,选择'''Confirm'''确认即可,此时手机上也同样需要进行确认</p><p>[[File:plus-5-456.png]]</p></li><li><p>和手机配对完后,可以选择已配对的蓝牙设备,然后右键选择'''Send a File'''即可开始给手机发送一张图片</p><p>[[File:mediaplus-5-457.png]]</5f60d2fd6cee4d10da6c84863661ad35p></li><li><p>发送图片的界面如下所示</p><p>[[File:plus-5-458.png]]</p></li></ol>
# 然后选择想要烧录的linux镜像的路径,再点击'''打开'''<span id="usb接口测试"></span>
[[File:media/2a719a7cdf76bfc55d66425871d20080.png]]== USB接口测试 ==
{| class="wikitable" style="background-color:# 然后请勾选上ffffdc;width:800px;" |-| <big>'''强制按地址写USB接口是可以接USB hub来扩展USB接口的数量的。'''选项</big>|}
[[File:media<span id="连接usb鼠标或键盘测试"></b3ac884db8cce87a2ebe03807fac10bf.png]]span>=== 连接USB鼠标或键盘测试 ===
# 再点击执行按钮就会开始烧录linux镜像到开发板的eMMC中将USB接口的键盘插入Orange Pi开发板的USB接口中# 连接Orange Pi开发板到HDMI显示器# 如果鼠标或键盘能正常操作系统说明USB接口使用正常(鼠标只有在桌面版的系统中才能使用)
[[File:media<span id="连接usb存储设备测试"></f0a83b5f00c165d570ec67b18bfea528.png]]span>=== 连接USB存储设备测试 ===
# linux镜像烧录完后的显示log如下图所示首先将U盘或者USB移动硬盘插入Orange Pi开发板的USB接口中# 执行下面的命令如果能看到sdX的输出说明U盘识别成功
[[File:media:{| class="wikitable" style="width:800px;"|-|orangepi@orangepi:~$ '''cat /proc/partitions | grep "sd*"'''<br><span style="margin-right: 30px;">major </span><span style="margin-right: 40px;">minor </span><span style="margin-right: 30px;">#blocks</span><span style="margin-right: 50px;">name</span><br><span style="margin-right: 70px;">8</span><span style="margin-right: 60px;">0</span><span style="margin-right: 50px;">30044160 </span><span style="margin-right: 50px;color:#FF0000">'''sda'''</span><br><span style="margin-right: 70px;">8</span><span style="margin-right: 60px;">1</span><span style="margin-right: 50px;">30043119 </span><span style="margin-right: 50px;color:#FF0000">'''sda1'''</cbfa85c214ab9bd71d88b43d0bf3a0fb.png]]span><br>|}
# 烧录完linux镜像到eMMC中后,linux系统会自动启动。<ol start="3" style="list-style-type: decimal;"><li>使用mount命令可以将U盘挂载到'''/mnt'''中,然后就能查看U盘中的文件了</li>
<span id{| class="使用dd命令烧录linux镜像到emmc中的方法wikitable"><style="width:800px;" |-|orangepi@orangepi:~$ '''sudo mount /dev/sda1 /mnt/span>=== 使用dd命令烧录Linux镜像到eMMC中的方法 ==='''
orangepi@orangepi:~$ '''注意,这里说的Linux镜像具体指的是从Orange Pi资料下载页面下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。ls /mnt/'''
# 开发板预留了eMMC模块的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:test.txt|}</ol><ol start="4" style="list-style-type: decimal;"><li>挂载完后通过'''df -h'''命令就能查看U盘的容量使用情况和挂载点</li>
[[File{| class="wikitable" style="width:media/509c9654850ee23aaabfc364310b90d9.png]]800px;" |-|orangepi@orangepi:~$ '''df -h | grep "sd"'''
# 使用dd命令烧录linux镜像到eMMC中需要借助TF卡来完成,所以首先需要将linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入linux系统。烧录Linux镜像到TF卡的方法请见[[#_基于Windows/dev/sda1 29G 208K 29G 1%20PC将Linux镜像烧录到TF卡的方法|'''基于Windows PC将Linux镜像烧录到TF卡的方法''']]和[[#_基于Ubuntu%20PC将Linux镜像烧录到TF卡的方法|'''基于Ubuntu PC将Linux镜像烧录到TF卡的方法''']]两小节的说明。/mnt# 使用TF卡启动linux系统后,我们首先将解压后的linux镜像文件(从官网下载的Debian、Ubuntu镜像或者OPi Arch镜像)上传到TF卡中。上传linux镜像文件到开发板中的方法请参考[[#_上传文件到开发板Linux系统中的方法|'''上传文件到开发板Linux系统中的方法''']]小节的说明。}# 上传完镜像到开发板的linux系统中后,我们再在开发板linux系统的命令行中进入镜像文件的存放路径,比如,我将开发板的linux镜像存放在'''</home/orangepi/Desktop'''目录下了,然后进入'''/home/orangepiol><span id="usb无线网卡测试"></Desktop'''目录就能看到上传的镜像文件了。span>
orangepi@orangepi:~$ '''cd /home/orangepi/Desktop'''=== USB无线网卡测试 ===
orangepi@orangepi:~/Desktop$ 目前'''ls测试过的'''能用的USB无线网卡如下所示,其他型号的USB无线网卡请自行测试,如果无法使用就需要移植对应的USB无线网卡驱动
Orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img{| class="wikitable" style="width: 800px;"|-| 序 号| 型号| 实物图片|-| 1| RTL8723BU
'''怎么进入开发板linux系统的命令行?'''支持2.4G WIFI+BT4.0
# '''使用串口登录终端的方法请参考'''| [[#_调试串口的使用方法|'''调试串口的使用方法'''File:plus-5-459.png]]'''一小节的说明。'''# '''使用ssh远程登录linux系统请参考'''[[#_SSH远程登录开发板|'''SSH远程登录开发板''']]'''一小节的说明。'''-# '''如果接了HDMI、LCD等显示屏幕,可以在桌面中打开一个命令行终端。'''| 2# 接下来,我们先使用下面的命令确认下eMMC的设备节点| RTL8811
orangepi@orangepi:~/Desktop$ '''ls /dev/mmcblk*boot0 | cut -c1-12'''支持2.4G +5G WIFI
'''/dev/mmcblk1'''| [[File:plus-5-460.png]]|-| 3| RTL8821CU
# 然后我们可以使用dd命令清空下eMMC,注意'''of='''参数后面请填入上面命令输出的结果支持2.4G +5G WIFI
orangepi@orangepi:~/Desktop$ '''sudo dd bs=1M if=/dev/zero of=/dev/mmcblk1 count=1000 status=progress'''支持BT 4.2
orangepi@orangepi| [[File:~/Desktop$ '''sudo sync'''plus-5-461.png]]|}
# 然后就可以使用dd命令烧录开发板的linux镜像到eMMC中## 下面的命令中 '''if<span id=''' 参数后面是要填写linux镜像存放的完整路径+Linux镜像的名字(比如'''/home/orangepi/Desktop"rtl8723bu测试"></Linux镜像的名字''')。因为上面我们已经进入linux镜像的路径下了,所以只需要填写Linux镜像的名字的即可。span>## 下面命令中的linux镜像名请不要照抄,要替换为实际的镜像名(因为镜像的版本号可能会更新)。==== RTL8723BU测试 ====
<ol style="list-style-type: decimal;"><li><p>首先将RTL8723BU无线网卡模块插入开发板的USB接口中</p></li><li><p>然后linux系统会自动加载RTL8723BU蓝牙和WIFI相关的内核模块,通过lsmod命令可以看到下面内核模块已自动加载</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''lsmod'''sudo dd bs</p><span style="margin-right: 100px;">Module </span><span style="margin-right: 50px;">Size </span><span style="margin-right: 45px;">Used by</span><br><span style="margin-right: 100px;">rfcomm </span><span style="margin-right: 50px;">57344</span><span style="margin-right: 50px;">16</span><br><span style="margin-right: 95px;">rtl8xxxu </span><span style="margin-right: 50px;">106496</span><span style="margin-right: 30px;">0</span><br><span style="margin-right: 90px;">rtk_btusb </span><span style="margin-right: 50px;">61440</span><span style="margin-right: 30px;">0</span><br>|}</li><li><p>通过dmesg命令可以看到RTL8723BU模块的加载信息</p>{| class=1M if"wikitable" style=Orangepi5plus_x"width:800px;" |-|<p>orangepi@orangepi:~$ '''dmesg'''</p><p>....x.x_debian_bullseye_desktop_xfce_linux5.10</p><p>[ 83.110438901] usb 2-1: new high-speed USB device number 2 using ehci-platform</p><p>[ 83.img of588375] usb 2-1: New USB device found, idVendor=0bda, idProduct=b720, bcdDevice=2.00</devp><p>[ 83.588403] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3</mmcblk1 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=progress0 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的连接和测试方法请参看[[Orange Pi 5 Plus#WIFI连接测试|'''WIFI连接测试''']]一节,这里不再赘述</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo ifconfig wlx0013eff458ae'''</p><p>wlx0013eff458ae: flags=4099<UP,BROADCAST,MULTICAST> 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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo apt update && 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:plus-5-462.png]]</p></li><li><p>点击'''Turn Bluetooth On'''可以打开蓝牙</p><p>[[File:plus-5-463.png]]</p></li><li><p>打开蓝牙后的显示如下所示</p><p>[[File:plus-5-464.png]]</p></li><li><p>蓝牙的测试方法请参看[[Orange Pi 5 Plus#蓝牙使用方法|'''蓝牙使用方法''']]一节,这里不再赘述</p></li></ol>
'''sudo''' '''sync'''<span id="rtl8811测试"></span>
'''注意,如果上传的是 .7z或者.xz 结尾linux镜像压缩文件,使用dd命令烧录前请记得先解压。'''==== RTL8811测试 ====
<ol style="list-style-type: decimal;"><li><p>首先将RTL8811无线网卡模块插入开发板的USB接口中</p></li><li><p>然后linux系统会自动加载RTL8811 WIFI相关的内核模块,通过lsmod命令可以看到下面内核模块已自动加载</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''dd命令的所有参数的详细说明和更多用法可以在linux系统中执行man dd命令来查看。lsmod'''</p><span style="margin-right: 100px;">Module </span><span style="margin-right: 50px;">Size </span><span style="margin-right: 45px;">Used by</span><br><span style="margin-right: 100px;">8821cu </span><span style="margin-right: 50px;">1839104 </span><span style="margin-right: 50px;">0</span><br>|}</li><li><p>通过dmesg命令可以看到RTL8811模块的加载信息</p>{| class="wikitable" style="width:800px;" |-|# 当成功烧录开发板的linux镜像到eMMC后,此时就可以使用<p>orangepi@orangepi:~$ '''poweroffdmesg'''命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动eMMC中的linux系统了。</p><p>[ 118.618194] usb 2-1: new high-speed USB device number 2 using ehci-platform</p><p>[ 118.767152] usb 2-1: New USB device found, idVendor=0bda, idProduct=c811, bcdDevice= 2.00</p><span idp>[ 118.767181] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber="烧录linux镜像到spiflashnvme3</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-ssd中的方法"1:1.0 wlx1cbfced9d260: renamed from wlan0</p>|}</spanli><li><p>然后通过'''sudo ifconfig'''命令可以看到WIFI的设备节点,WIFI的连接和测试方法请参看[[Orange Pi 5 Plus#WIFI连接测试|'''WIFI连接测试''']]一节,这里不再赘述</p>{| class="wikitable" style= 烧录Linux镜像到SPIFlash+NVMe SSD中的方法 ="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo ifconfig wlx1cbfced9d260'''</p><p>wlx1cbfced9d260: flags=4099<UP,BROADCAST,MULTICAST> 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>
'''注意,这里说的Linux镜像具体指的是从'''[http:<span id="usb摄像头测试"><//www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi资料下载页面''']'''下载的Debian、Ubuntu、OpenWRT或者OPi OS Arch这样的Linux发行版镜像。'''span>
'''注意,下面所有的操作都是在Windows电脑中进行的。'''=== USB摄像头测试 ===
<span idol style="使用rkdevtool烧录的方法list-style-type: decimal;"><li><p>首先需要准备一个下图所示的或者类似的支持UVC协议的USB摄像头,然后将USB摄像头插入到Orange Pi开发板的USB接口中</p><p>[[File:plus-5-14.png]]</p></li><li><p>通过v4l2-ctl命令可以看到USB摄像头的设备节点信息为/spandev/video0</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''v4l2-ctl --list-devices'''</p><p>Q8 HD Webcam: Q8 HD Webcam ('''<span style= 使用RKDevTool烧录的方法 ="color:#FF0000">usb</span>'''-fc880000.usb-1):</p>::<p>'''/dev/video0'''</p>::<p>/dev/video1</p>::<p>/dev/media0</p>|}{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''注意v4l2中的l是小写字母l,不是数字1。'''</p>
# 首先需要准备一个M<p>'''另外video的序号不一定都是video0,请以实际看到的为准。'''</p></big>|}</li><li><p>在桌面系统中可以使用Cheese直接打开USB摄像头,Cheese打开方法如下图所示:</p><p>[[File:plus-Key 2280规格的NVMe SSD固态硬盘,开发板M5-466.png]]</p><p>Cheese打开USB摄像头后的界面如下图所示:</p><p>[[File:plus-5-467.png]]</p></li><li><p>使用fswebcam测试USB摄像头的方法</p><ol style="list-style-type: lower-alpha;"><li><p>安装fswebcam</p>{| class="wikitable" style="width:800px;" |-|<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>{| class="wikitable" style="width:800px;" |-|<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 PC上镜像观看</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''scp image.jpg test@192.168.2插槽PCIe接口的规格为PCIe31.0x4。55:/home/test (根据实际情况修改IP地址和路径)'''</p>|}</li><li><p>在桌面版的linux系统中,可以通过HDMI显示器直接查看拍摄的图片</p></li></ol></li></ol>
[[File:media/6b09ed51c8f4954ed95742cd63b21c74.png]]== 音频测试 ==
# 然后把NVMe SSD插入下图所示的开发板的M.2 PCIe接口,并固定好=== 在桌面系统中测试音频方法 ===
<ol style="list-style-type: decimal;"><li><p>首先打开文件管理器</p><p>[[File:mediaplus-5-468.png]]</p></li><li><p>然后找到下面这个文件(如果系统中没有这个音频文件,可以自己上传一个音频文件到系统中)</eff81166492ce92b30912818342b0d5bp><p>[[File:plus-5-469.png]]</p></li><li><p>然后选中audio.wav文件,右键选择使用vlc打开就可以开始播放</p><p>[[File:plus-5-470.png]]</p></li><li><p>切换HDMI播放和耳机播放等不同音频设备的方法</p><ol style="list-style-type: lower-alpha;"><li><p>首先打开音量控制界面</p><p>[[File:plus-5-471.png]]</p></li><li><p>播放音频的时候,在'''Playback'''中会显示播放软件可以使用的音频设备选项,如下图所示,在这里可以设置需要播放到哪个音频设备</p><p>[[File:plus-5-472.png]]</p></li></ol></li></ol>
# SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置=== 使用命令播放音频的方法 ===
[[File:media/815ee597fcdbd832b687cc3df51795b6.png]]==== 耳机接口播放音频测试 ====
<ol style="list-style-type: decimal;"><li><p>首先将耳机插入开发板的耳机孔中</p><p>[[File:plus-5-473.png]]</p></li><li><p>然后可以通过'''aplay -l'''命令可以查看下linux系统支持的声卡设备,从下面的输出可知,'''card 3'''为es8388的声卡设备,也就是耳机的声卡设备</p>{| class="wikitable" style="width:800px;" |-|<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 # 然后需要准备一根品质良好的Type0: subdevice #0'''</p>|}</li><li><p>然后使用'''aplay'''命令播放下系统自带的音频文件,如果耳机能听到声音说明硬件能正常使用</p>{| class="wikitable" style="width:800px;" |-C接口的数据线|<p>orangepi@orangepi:~$ '''aplay -D hw:<span style="color:#FF0000">3</span>,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 '''Orange Pi的资料下载页面''decimal;"><li><p>首先需要准备一个下图所示的喇叭,开发板上喇叭座子的规格为']下载瑞芯微驱动'''DriverAssitant_v52pin 1.12.zip25mm'''和'''MiniLoader'''以及烧录工具'''RKDevTool_Release_v2间距</p><p>[[File:plus-5-25.96png]]</p></li><li><p>开发板上喇叭接口的位置如下所示,准备好喇叭后,请将其插入到开发板的喇叭接口中</p><p>[[File:plus-5-475.zippng]]</p></li><li><p>喇叭和耳机使用的同一个声卡,使用喇叭前,请确保耳机接口没有插入耳机(如果插入了耳机,音频会播放到耳机)。然后使用''',请确保下载的aplay'''RKDevTool'''工具的的版本为'命令播放下系统自带的音频文件,如果喇叭能听到声音说明硬件能正常使用</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ ''v2.96'''## 在[httpaplay -D hw:3,0 /usr/www.orangepi.cnshare/htmlsounds/serviceAndSupportalsa/indexaudio.html Orange Pi的资料下载页面]首先选择wav'''官方工具</p><p>Playing WAVE 'audio.wav'',然后进入下面的文件夹中: Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p>|}</li></ol>
[[File:media<span id="hdmi音频播放测试"></816e86dd538ef9fa9cb9cb253871f73f.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>{| class="wikitable" style="width:800px;" |-|<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 [Filerockchip,dp0 spdif-hifi-0]</p>:media<p>Subdevices: 1/1</4828a75a2a73dd5e1f4ea5dcb0a8e3e8.png]]p>:<p>Subdevice #0: subdevice #0</p><p>'''注意,“MiniLoadercard 1: rockchiphdmi0 [rockchip-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。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 [httprockchip-hdmi1], device 0:rockchip-hdmi1 i2s-hifi-0 [rockchip-hdmi1 i2s-hifi-0]'''</p>:<p>'''Subdevices: 1/www.orangepi.cn1'''</htmlp>:<p>'''Subdevice #0: subdevice #0'''</serviceAndSupportp>|}</index.html li><li><p>然后使用'''Orange Pi的资料下载页面aplay''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以“命令播放下系统自带的音频文件,如果HDMI显示器或者电视能听到声音说明硬件能正常使用</p><ol style="list-style-type: lower-alpha;"><li><p>播放音频到HDMI_TX1的命令如下所示:</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''aplay -D hw:<span style="color:#FF0000">1</span>,0 /usr/share/sounds/alsa/audio.imgwav'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</p>|}</li><li><p>播放音频到HDMI_TX2的命令如下所示:</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载“TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。aplay -D hw:<span style="color:#FF0000">2</span>,0 /usr/share/sounds/alsa/audio.wav'''</p>|}</li></ol></li></ol>
[[File:media/523a42e43bc947bbb3d03d565485dbb8.png]]=== 使用命令测试录音的方法 ===
# 然后用解压软件解压<ol style="list-style-type: decimal;"><li><p>开发板上有板载MIC,位置如下所示:</p><p>[[File:plus-5-476.png]]</p></li><li><p>运行'''test_record.sh main'''命令会通过板载MIC录制一段音频,然后播放到HDMI_TX1和耳机。</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''test_record.sh main'''</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'DriverAssitant_v5: Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p><p>Playing WAVE '/tmp/test.12wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p>|}</li><li><p>除了板载MIC,我们还可以通过带MIC功能的耳机来录制音频。将带MIC功能的耳机插入开发板后,运行'''test_record.zipsh headset''',再在解压后的文件夹中找到命令会通过耳机录制一段音频,然后播放到HDMI_TX1和耳机。</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''DriverInstalltest_record.exesh 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/3abe751bd0c4c5e9be6a83f839a1e4c2.png]]== 温度传感器 ==
# 打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示## 点击“'''驱动安装'''”按钮查看系统温度传感器的命令为:
[[File{| class="wikitable" style="width:media/bc5fc637f8588abefa4f2ff7e0dc2683.png]]800px;" |-|orangepi@orangepi:~$ '''sensors'''
# 等待一段时间后,会弹出窗口提示“'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可gpu_thermal-virtual-0
[[FileAdapter:media/48720c90a698617c0f884059ac1d6885.png]]Virtual device
# 然后解压'''RKDevTool_Release_v2temp1: +47.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可2°C
[[File:media/c20745924f6e330c0bc60639e5ee8c1b.png]]littlecore_thermal-virtual-0
# 打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示“'''没有发现设备'''”Adapter: Virtual device
[[Filetemp1:media/ca4b9e37ca9d9cce3f888c4278bd3726+47.png]]2°C
# 然后开始烧录Linux镜像到SSD中## 首先通过Typebigcore0_thermal-C数据线连接好开发板与Windows电脑,开发板Typevirtual-C接口的位置如下图所示0
[[FileAdapter:media/293482d42e80a8b3e2962b40e834bb41.png]]Virtual device
# 确保开发板没有连接电源,'''并且没有插入TF卡或者eMMC模块'''## 然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:temp1: +47.2°C
[[File:media/b5c295a072c9e13167488051a2a2cb04.png]]tcpm_source_psy_6_0022-i2c-6-22
# 然后给开发板接上TypeAdapter: rk3x-C接口的电源,并上电,然后就可以松开MaskROM按键了。Type-C电源接口的位置如下所示:i2c
[[Filein0:media/1f65f9666af69c591813b5597e806ccb0.png]]00 V (min = +0.00 V, max = +0.00 V)
# 如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示“'''发现一个MASKROM设备'''”curr1: 0.00 A (max = +0.00 A)
[[File:media/18276e05fbda6e29cb92f7582ba887d4.png]]npu_thermal-virtual-0
# 然后将鼠标光标放在下面的这片区域中Adapter: Virtual device
[[Filetemp1:media/86a56c049f0d8807cf1685e7b89306eb+47.png]]2°C
# 然后点击鼠标右键会弹出下图所示的选择界面center_thermal-virtual-0
[[FileAdapter:media/e21e70e17552c5c4b75c570c4c167464.png]]Virtual device
# 然后选择'''导入配置'''选项temp1: +47.2°C
[[File:media/02a57b0477b87251ffdaaf062e80025d.png]]bigcore1_thermal-virtual-0
# 然后进入前面下载的'''MiniLoader'''文件夹中,再进入'''pcie_loader'''文件夹中,然后选择'''rk3588_linux_pcie.cfg'''配置文件,再点击'''打开'''Adapter: Virtual device
[[Filetemp1:media/baca1aa12e72875e7ff1adb16bb8c49e+47.png]]2°C
# 然后点击'''确定'''soc_thermal-virtual-0
[[FileAdapter:media/56af00f0bde1c1269ea5314e35d5fa50.png]]Virtual device
# 然后点击下图所示的位置temp1: +47.2°C (crit = +115.0°C)|}
[[File:media<span id="pin扩展接口引脚使用说明"></1d34861eb15435c8833e6b551fd60a09.png]]span>
# 再选择前面下载的'''MiniLoader'''文件夹中'''MiniLoaderAll.bin''',再点击'''打开'''== 40 Pin扩展接口引脚使用说明 ==
[[File:media/3679d114ef42d45c105bc92d6c74e07a.png]]<div class="figure">
# 然后点击下图所示的位置[[File:plus-5-477.png]]
</div><ol style="list-style-type: decimal;"><li><p>Orange Pi 5 Plus开发板40 pin扩展接口引脚的顺序请参考下图:</p><p>[[File:mediaplus-5-478.png]]</p></li><li><p>Orange Pi 5 Plus开发板40 pin接口引脚的功能如下表所示</p><ol style="list-style-type: lower-alpha;"><li><p>下面是40 pin完整的引脚图</772de6bbeec502ba94b8061abc3e18f5p><p>[[File:plus-5-479.png|1000px]]</p><p>下面这张是彩图,包含上面表格中的部分内容:</p><p>[[File:plus-5-480.png]]</p></li><li><p>下面的表格是上面完整表格左半边部分的图,能看得清楚点</p><p>[[File:plus-5-481.png]]</p></li><li><p>下面的表格是上面完整表格右半边部分的图,能看得清楚点</p><p>[[File:plus-5-482.png]]</p>{| class="wikitable" style="background-color:# 然后进入前面下载的ffffdc;width:800px;" |-| <big><p>'''MiniLoader上面表格中pwm都标出了对应的寄存器的基地址,在查看/sys/class/pwm/中哪个pwmchip对应40 pin排针中哪个pwm引脚时很有用。'''文件夹中,再进入</p></big>|}</li></ol></li><li><p>40 pin接口中总共有'''pcie_loader<span style="color:#FF0000">28</span>'''文件夹中,然后选择个GPIO口,所有GPIO口的电压都是'''uboot'''文件,再点击'''打开<span style="color:#FF0000">3.3v</span>'''。</p></li></ol>
[[File:media<span id="安装wiringop的方法"></12c0bda5f8618e3ba6a9fe470f7af082.png]]span>
# 然后点击下图所示的位置== 安装wiringOP的方法 ==
[[File{| class="wikitable" style="background-color:media/388f3cddbef853c69fda064fd88e62a2.png]]#ffffdc;width:800px;" |-| <big>'''注意,Orange Pi发布的linux镜像中已经预装了wiringOP,除非wiringOP的代码有更新,否则无需重新下载编译安装,直接使用即可。'''
# 然后选择想要烧录的linux镜像的路径,再点击'''打开'''
[[File'''编译好的wiringOP的deb包在orangepi-build中的存放路径为:'''<br>'''<span style="color:mediablue">orangepi-build/2a719a7cdf76bfc55d66425871d20080external/cache/debs/arm64/wiringpi_x.png]]xx.deb</span>'''
# 然后请勾选上'''强制按地址写'''选项
[[File:media'''进入系统后可以运行下gpio readall命令,如果能看到下面的输出,说明wiringOP已经预装并且能正常使用。'''</3140a7526761d3d8763b33fb6a7f7c0f.png]]big>|}
{| class="wikitable" style="background-color:# 再点击执行按钮就会开始烧录linux镜像到SSD中ffffdc;width:800px;" |-| [[File:plus-5-483.png]]
[[File:media<big>'''wiringOP目前主要适配了设置GPIO口输入输出,设置GPIO口输出高低电平以及设置上下拉电阻的功能,像硬件PWM这样的功能是用不了的。'''</27dde6f6413ee1a80eb7b94f3438c099.png]]big>|}
<ol style="list-style-type: decimal;"><li><p>下载wiringOP的代码</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo apt update'''</p><p>orangepi@orangepi:~$ '''sudo apt install -y git'''</p>orangepi@orangepi:~$ '''git clone https://github.com/orangepi-xunlong/wiringOP.git -b next'''|}{| class="wikitable" style="background-color:# linux镜像烧录完后的显示log如下图所示ffffdc;width:800px;" |-| <big><p>'''注意,Orange Pi 5 Plus需要下载wiringOP next分支的代码,请别漏了-b next这个参数。'''</p><p>'''如果从GitHub下载代码有问题,可以直接使用Linux镜像中自带的wiringOP源码,存放位置为:/usr/src/wiringOP'''</p></big>|}</li><li><p>编译安装wiringOP</p>{| class="wikitable" style="width:800px;" |-|<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">
[[File:media/51749642e585969b5357d41d130492bbplus-5-483.png]]
# 然后烧录启动SSD中linux系统需要的uboot镜像到SPIFlash,'''首先再次进入MaskROM模式'''## 然后选择'''导入配置'''选项</div></li></ol>
[[File:media<span id="pin接口gpioi2cuartspican和pwm测试"></5d16da28e59cd345d3b86b7669d5ccde.png]]span>
# 然后选择前面下载的'''MiniLoader'''文件夹中的'''rk3588_linux_spiflash.cfg'''配置文件,再点击'''打开'''== 40 pin接口GPIO、I2C、UART、SPI、CAN和PWM测试 ==
[[File:media<span id="pin-gpio口测试"></16fd256dd887bb4809776eec8c720d31.png]]span>=== 40 pin GPIO口测试 ===
{| class="wikitable" style="background-color:# 然后点击ffffdc;width:800px;" |-| <big>'''确定Orange Pi发布的linux系统中有预装一个blink_all_gpio程序,这个程序会设置40 pin中的所有28个GPIO口不停的切换高低电平。'''
[[File:media/be2834019fb098c81bf4b08aaba8b702'''运行blink_all_gpio程序后,当用万用表去测量GPIO口的电平时,会发现GPIO引脚会在0和3.png]]3v之间不停的切换。使用这个程序我们可以来测试GPIO口是否能正常工作。'''
# 然后点击下图所示的位置'''运行blink_all_gpio程序的方式如下所示:'''
[[Fileorangepi@orangepi5plus:media/d9480ca861f660193824c5a89200147d.png]]~$ '''sudo blink_all_gpio #记得加sudo权限'''
# 再选择前面下载的[sudo] password for orangepi: '''MiniLoader'''文件夹中'''MiniLoaderAll.bin''',再点击'''打开#在这里需要输入密码'''</big>|}
[[File:media/3679d114ef42d45c105bc92d6c74e07a.png]]
# 然后点击下图所示的位置<ol style="list-style-type: decimal;"><li><p>开发板40 pin中总共有'''28'''个GPIO口可以使用,下面以7号引脚——对应GPIO为GPIO1_D6 ——对应wPi序号为2——为例演示如何设置GPIO口的高低电平</p><div class="figure">
[[File:media/bf61d76c5509d50ce663566689bca37bplus-5-485.png]]
</div></li><li><p>首先设置GPIO口为输出模式,其中第三个参数需要输入引脚对应的wPi的序号</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP# 再选择前面下载的'''MiniLoadergpio mode <span style="color:#FF0000">2</span> out'''文件夹中</p>|}</li><li><p>然后设置GPIO口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP# '''rkspi_loader''',再点击'''打开gpio write 2 <span style="color:#FF0000">0</span>'''</p>|}<p>使用gpio readall可以看到7号引脚的值(V)变为了0</p><div class="figure">
[[File:media/917c492414698dd632b26fd1fa7f8bcaplus-5-486.png]]
</div></li><li><p>然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP# 然后请确保'''强制按地址写gpio write 2 <span style="color:#FF0000">1</span>'''选项已勾上</p>|}<p>使用gpio readall可以看到7号引脚的值(V)变为了1</p><div class="figure">
[[File:media/f9f9c995b91de0abba1301b12a439ab4plus-5-487.png]]
# 再点击'''执行'''按钮就会开始烧录u-boot镜像到SPIFlash中</div></li><li><p>其他引脚的设置方法类似,只需修改wPi的序号为引脚对应的序号即可</p></li></ol>
[[File:media<span id="pin-gpio口上下拉电阻的设置方法"></237f0a286c0a52bf5f65dd9f54651ef4.png]]span>
# u-boot镜像烧录完后的显示log如下图所示=== 40 pin GPIO口上下拉电阻的设置方法 ===
[[File<ol style="list-style-type:mediadecimal;"><li><p>下面以7号引脚——对应GPIO为GPIO1_D6 ——对应wPi序号为2——为例演示如何设置GPIO口的上下拉电阻</ee4027d49848cea09db08cb1bb0dc506.png]]p><div class="figure">
# u[[File:plus-boot镜像烧录完后会自动启动SPIFlash+PCIe SSD中的linux系统,如果没有正常启动,请重新上电试下。5-487.png]]
</div></li><li><p>首先需要设置GPIO口为输入模式,其中第三个参数需要输入引脚对应的wPi的序号</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP# '''gpio mode <span style= 使用dd命令烧录的方法 "color:#FF0000">2</span> in'''</p>|}</li><li><p>设置为输入模式后,执行下面的命令可以设置GPIO口为上拉模式</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP# '''gpio mode <span style="color:#FF0000">2</span> up'''</p>|}</li><li><p>然后输入下面的命令读取GPIO口的电平,如果电平为1,说明上拉模式设置成功</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP# 首先需要准备一个M'''gpio read <span style="color:#FF0000">2</span>'''</p><p>'''1'''</p>|}</li><li><p>然后执行下面的命令可以设置GPIO口为下拉模式</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP# '''gpio mode <span style="color:#FF0000">2</span> down'''</p>|}</li><li><p>然后输入下面的命令读取GPIO口的电平,如果电平为0,说明下拉模式设置成功</p>{| class="wikitable" style="width:800px;" |-Key 2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。|<p>root@orangepi:~/wiringOP# '''gpio read <span style="color:#FF0000">2</span>'''</p><p>'''0'''</p>|}</li></ol>
[[File:media<span id="pin-spi测试"></6b09ed51c8f4954ed95742cd63b21c74.png]]span>
# 然后把NVMe SSD插入下图所示的开发板的M.2 PCIe接口,并固定好=== 40 pin SPI测试 ===
<ol style="list-style-type: decimal;"><li><p>由下图可知,Orange Pi 5 Plus可用的SPI为SPI0和SPI4</p><p>[[File:media/eff81166492ce92b30912818342b0d5bplus-5-479.png]]</p></li><li><p>SPI0和SPI4在40pin中对应的引脚如下表所示。SPI4_M1和SPI4_M2同一时间只能使用其中一组,不能同时使用,它们都是同一个SPI4,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的SPI总线。</p></li>
# SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置{| class="wikitable" style="width: 800px;"|-|| '''S PI0_M2对应40pin'''| '''S PI4_M1对应40pin'''| '''SP I4_M2对应40pin'''|-| '''MOSI'''
[[File:media/815ee597fcdbd832b687cc3df51795b6.png]]| '''19号引脚'''| '''12号引脚'''| '''8号引脚'''|-| '''MISO'''
# 烧录linux镜像到SPIFlash+NVMe SSD中需要借助TF卡来完成,所以首先需要将linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入linux系统。烧录Linux镜像到TF卡的方法请见[[#_基于Windows%20PC将Linux镜像烧写到TF卡的方法|'''基于Windows PC将Linux镜像烧写到TF卡的方法21号引脚'''| '''31号引脚''']]和[[#_基于Ubuntu%20PC将Linux镜像烧写到TF卡的方法|'''基于Ubuntu PC将Linux镜像烧写到TF卡的方法10号引脚''']]两小节的说明。# 使用TF卡启动linux系统后,我们首先烧录u|-boot镜像到SPI Flash中## 先运行下| '''CLK'''| '''23号引脚'''| '''35号引脚'''| '''22号引脚'''nand|-sata| '''CS0'''| '''24号引脚'''| '''40号引脚'''| '''31号引脚'''|-install| '''CS1',''| '''普通用户记得加sudo权限26号引脚'''| '''38号引脚'''orangepi@orangepi| '''<span style="color:~$ #FF0000">无</span>'''sudo nand|-| '''dtb o配置'''| '''spi 0-m2-satacs0-installspidev'''
# 然后选择'''7 Install/Update ther bootloader on SPI Flashspi 0-m2-cs1-spidev'''
<div class="figure">'''spi0-m2 -cs0-cs1-spidev'''
[[File:media/28d309141c910fd8c70f95fa2b79fd71.png|IMG_256]]'''spi 4-m1-cs0-spidev'''
</div># 然后选择'''<Yes>spi 4-m1-cs1-spidev'''
<div class="figure">'''spi4-m1 -cs0-cs1-spidev'''
| '''spi4 -m2-cs0-spidev'''|}</ol><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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li><li><p>然后选择'''System'''</p><p>[[File:media5plus-51.png]]</014d57f7b10cab0c4214fd1c3d6da9e8p></li><li><p>然后选择'''Hardware'''</p><p>[[File:5plus-52.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的SPI的配置</p><p>[[File:plus-5-492.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:5plus-54.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:5plus-55.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:5plus-56.png|IMG_256]]</p></li></ol></li><li><p>重启后进入系统先查看下linux系统中是否存在'''spidevx.x'''的设备节点,如果存在,说明SPI已经设置好了,可以直接使用。</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ls /dev/spidev*'''</p><p>/dev/spidev0.0 /dev/spidev0.1 /dev/spidev4.0 /dev/spidev4.1</p>|}{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''上面是打开spi0-m2-cs0-cs1-spidev和spi4-m1-cs0-cs1-spidev后显示的结果。'''</p></big>|}</li><li><p>然后先不短接SPI0或者SPI4的MOSI和MISO两个引脚,运行spidev_test的输出结果如下所示,可以看到TX和RX的数据不一致</p>{| class="wikitable" style="width:800px;" |-|<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 '''<span style="color:#FF0000">40 00 00 00 00 95</span>''' 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 '''<span style="color:#FF0000">FF FF FF FF FF FF</span>''' 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>{| class="wikitable" style="width:800px;" |-|<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 '''<span style="color:#FF0000">40 00 00 00 00 95</span>''' 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 '''<span style="color:#FF0000">40 00 00 00 00 95</span>''' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D | ......@.…▒..................▒.</p>|}</li></ol>
<span id="pin-i2c测试"></divspan># 然后请耐心等待烧录完成,烧录完成后显示如下所示(左下角会显示一个'''Done'''):
[[File:media/96caeb7df4bc0747972dfe80d39b458d.png]]=== 40 pin I2C测试 ===
'''OPi OS Arch系统中没有nand<ol style="list-satastyle-install这个脚本,请使用下面的命令将utype: decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的i2c为i2c2、i2c4、i2c5和i2c8共四组 i2c总线。</p><p>[[File:plus-boot镜像到SPI Flash中:'''5-479.png]]</p></li><li><p>4组I2C总线在40pin中对应的引脚如下表所示。I2C2_M0和I2C2_M4同一时间只能使用其中一组,不能同时使用,它们都是同一个I2C2,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的I2C2总线。</p></li>
[{| class="wikitable" style="width:800px;"|-| style="text-align: left;"| '''I2C总线'''| 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><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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi :~]$ '''sudo dd if=orangepi-config'''</p>|}</li><li><p>然后选择'''System'''</p><p>[[File:5plus-51.png]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:5plus-52.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的I2C的配置</p><p>[[File:plus-5-499.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:5plus-54.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:5plus-55.png]]</p></bootli><li><p>然后选择'''<Reboot>'''重启系统使配置生效</rkspi_loaderp><p>[[File:5plus-56.img ofpng]]</p></li></ol></li><li><p>启动linux系统后,先确认下'''/dev'''下存在需要使用I2C的设备节点</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ls /dev/mtdblock0i2c-*'''</p>|}</li><li><p>然后在40 pin接口对应的I2C引脚上接一个I2C设备</p></li><li><p>然后使用'''i2cdetect -y'''命令如果能检测到连接的i2c设备的地址,就说明i2c能正常使用</p>{| class="wikitable" style="width:800px;" |-|<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>
# 然后将linux镜像文件(从官网下载的Debian、Ubuntu或者OpenWRT镜像)上传到TF卡中。上传linux镜像文件到开发板中的方法请参考[[#_上传文件到开发板Linux系统中的方法|'''上传文件到开发板Linux系统中的方法''']]小节的说明。<div class="figure">
'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面两种类型的镜像,请下载“TF卡、eMMC和NVME SSD启动镜像”文件夹中的镜像文件。'''[[File:plus-5-503.png]]
[[File:media</523a42e43bc947bbb3d03d565485dbb8.png]]div></ol><span id="pin的uart测试"></span>
# 上传完镜像到开发板的linux系统中后,我们再在开发板linux系统的命令行中进入镜像文件的存放路径,比如,我将开发板的linux镜像存放在'''/home/orangepi/Desktop'''目录下了,然后进入'''/home/orangepi/Desktop'''目录就能看到上传的镜像文件了。=== 40 pin的UART测试 ===
orangepi@orangepi<ol style="list-style-type:~$ '''cd decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的uart为uart1、uart3、uart4、uart6、uart7和uart8共6组uart总线</homep><p>[[File:plus-5-479.png]]</p></li><li><p>6组UART总线在40pin中对应的引脚如下表所示:</orangepip></Desktop'''li>
orangepi@orangepi{| class="wikitable" style="width:800px;" |-| 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:~/Desktop$ left;"| '''ls26号引脚'''| style="text-align: left;"| '''uart7-m2'''orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img|-| style="text-align: left;"| '''UART8_M1'''| style="text-align: left;"| '''怎么进入开发板linux系统的命令行?40号引脚'''| style="text-align: left;"| '''35号引脚'''# | style="text-align: left;"| '''使用串口登录终端的方法请参考uart8-m1'''[[#_调试串口的使用方法|}</ol><ol start="3" style="list-style-type: decimal;"><li><p>在linux系统中,40 pin中的UART默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''调试串口的使用方法sudo''']]权限</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''一小节的说明。sudo orangepi-config'''</p>|}</li># <li><p>然后选择'''使用ssh远程登录linux系统请参考System'''</p><p>[[#_SSH远程登录开发板|File:5plus-51.png]]</p></li><li><p>然后选择'''SSH远程登录开发板Hardware'''</p><p>[[File:5plus-52.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''一小节的说明。空格'''选中想要打开的UART的配置</p><p>[[File:plus-5-507.png]]</p></li># <li><p>然后选择'''如果接了HDMI、LCD等显示屏幕,可以在桌面中打开一个命令行终端。<Save>'''保存</p><p>[[File:5plus-54.png]]</p></li># 接下来,我们先确认下NVMe SSD已经被开发板的linux正常识别了。如果NVMe SSD正常识别了的话,使用<li><p>然后选择'''sudo fdisk -l<Back>'''命令就能看到</p><p>[[File:5plus-55.png]]</p></li><li><p>然后选择'''nvme<Reboot>'''相关的信息重启系统使配置生效</p><p>[[File:5plus-56.png]]</p></li></ol></li><li><p>进入linux系统后,先确认下/dev下是否存在对应uart的设备节点</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ls /dev/Desktop$ ttyS*'''sudo fdisk -l </p>| grep “nvme0n1”}</li><li><p>然后开始测试uart接口,先使用杜邦线短接要测试的uart接口的rx和tx引脚</p></li><li><p>使用'''gpio serial'''命令测试串口的回环功能如下所示,如果能看到下面的打印,说明串口通信正常(ttySX需要替换为对应uart的节点名,请不要照抄)</p>{| class="wikitable" style="width:800px;" |-|Disk <p>orangepi@orangepi:~$ '''sudo gpio serial /dev/nvme0n1ttySX'''</p><p>[sudo] password for orangepi: 1.86 TiB, 2048408248320 bytes, 4000797360 sectors#在这里输入密码</p>
使用'''lspci'''命令可以看到一个NVMe相关的PCI设备<p>Out: 0: -> 0</p><p>Out: 1: -> 1</p><p>Out: 2: -> 2</p><p>Out: 3: -> 3</p><p>Out: 4: -> 4</p><p>Out: 5: -> 5^C</p>|}</li></ol>
orangepi@orangepi:~$ '''lspci'''<span id="pwm的测试方法"></span>
0000:00:00.0 PCI bridge: Rockchip Electronics Co., Ltd Device 3588 (rev 01)=== PWM的测试方法 ===
0000<ol style="list-style-type:01decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的PWM有pwm0、pwm1、pwm11、pwm12、pwm13和pwm14共六路pwm</p><p>[[File:00plus-5-479.0 Non-Volatile memory controller: SK hynix BC501 '''NVMe''' Solid State Drivepng|1000px]]</p></li><li><p>PWM在40pin中对应的引脚如下表所示。PWM0_M0和PWM0_M2、PWM1_M0和PWM1_M2、PWM14_M0和PWM14_M2同一时间只能使用其中一个,不能同时使用,它们都是同一个PWM,只是接到不同的引脚上去了而已,请不要以为它们是两个不同的PWM总线。</p></li>
…{| class="wikitable" style="width:800px;" |-| 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><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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li><li><p>然后选择'''System'''</p><p>[[File:5plus-51.png]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:5plus-52.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的PWM的配置</p><p>[[File:plus-5-514.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:5plus-54.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:5plus-55.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:5plus-56.png]]</p></li></ol></li><li><p>当打开一个pwm后,在'''/sys/class/pwm/'''中就会多出一个pwmchipX(X为具体的的数字),比如打开pwm14后,查看'''/sys/class/pwm/'''下的pwmchipX会由两个变成了三个</p>{| class="wikitable" style="width:800px;" |-|<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">
# 然后我们可以使用dd命令清空下NVMe SSD(可选)[[File:plus-5-518.png]]
orangepi@orangepi5plus:~</div></Desktop$ li><li><p>然后由下表可知,pwm14寄存器的基地址为febf0020,再看 '''sudo dd bs=1M if=ls /devsys/zero of=class/devpwm/nvme0n1 count=2000 status=progress-l'''命令的输出,可以看到pwmchip2中链接到了febf0020.pwm,所以pwm14对应pwmchip为pwmchip2</p><p>[[File:plus-5-519.png]]</p></li><li><p>然后使用下面的命令可以让pwm14输出一个50Hz的方波(请先切换到root用户,再执行下面的命令)</p></li>
{| class="wikitable" style="width:800px;" |-|root@orangepi@orangepi5plus:~/Desktop$ # '''sudo syncecho 0 > /sys/class/pwm/pwmchip2/export'''
root@orangepi:~# 然后就可以使用dd命令烧录开发板的linux镜像到NVMe SSD中## 下面的命令中 '''if=''' 参数后面是要填写linux镜像存放的完整路径+Linux镜像的名字(比如'''echo 20000000 > /sys/class/homepwm/orangepipwmchip2/Desktoppwm0/Linux镜像的名字period''')。因为上面我们已经进入linux镜像的路径下了,所以只需要填写Linux镜像的名字的即可。## 下面命令中的linux镜像名请不要照抄,要替换为实际的镜像名(因为镜像的版本号可能会更新)。
root@orangepi:~# '''sudo dd bs=1M if=orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img of=echo 1000000 > /devsys/nvme0n1 status=progressclass/pwm/pwmchip2/pwm0/duty_cycle'''
root@orangepi:~# '''sudo''' '''syncecho 1 > /sys/class/pwm/pwmchip2/pwm0/enable'''|}
'''注意,如果上传的是 [[File:plus-5-520.7z或者.xz 或者.gz结尾linux镜像压缩文件,使用dd命令烧录前请记得先解压。'''png]]</ol><ol start="8" style="list-style-type: decimal;"><li>上面演示的pwm14的测试方法,其他pwm测试方法都是类似的。</li></ol>
'''dd命令的所有参数的详细说明和更多用法可以在linux系统中执行man dd命令来查看。'''<span id="can的测试方法"></span>
# 当成功烧录开发板的linux镜像到NVMe SSD后,此时就可以使用'''poweroff'''命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动SPIFlash+NVMe SSD中的linux系统了。=== CAN的测试方法 ===
<span id="使用balenaetcher软件烧录的方法打开can的方法"></span>=== 使用balenaEtcher软件烧录的方法 = 打开CAN的方法 ====
<ol style="list-style-type: decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的CAN总线为CAN0和CAN1共两组CAN总线</p><p>[[File:plus5-521.png|1200px]]</p></li><li><p>在linux系统中,40 pin中的CAN默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''OPi OS Arch系统和OpenWRT系统请不要使用这种方法。orangepi-config''',普通用户记得加'''sudo'''权限</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li><li><p>然后选择'''System'''</p><p>[[File:5plus-51.png]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:5plus-52.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的CAN的配置(OPi > 5 Plus可选'''can0-m0'''和'''cam1-m0''')</p><p>[[File:plus-5-524.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:5plus-54.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:5plus-55.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:5plus-56.png]]</p></li></ol></li><li><p>进入linux系统后,使用'''sudo ifconfig -a'''命令如果能看到CAN的设备节点,就说明CAN已正确打开了</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo ifconfig -a'''</p><p>can0: flags=128<NOARP> 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>
# 首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。
[[File<p>can1:mediaflags=128<NOARP> mtu 16</6b09ed51c8f4954ed95742cd63b21c74p>::<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.png]]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>
# 然后把NVMe SSD插入下图所示的开发板的M.2 PCIe接口,并固定好{| class="wikitable" style="width:800px;" |-|| 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号引脚'''|}</ol><span id="使用canalyst-ii分析仪测试收发消息"></span>
[[File:media/eff81166492ce92b30912818342b0d5b.png]]==== 使用CANalyst-II分析仪测试收发消息 ====
<ol style="list-style-type: decimal;"><li><p>测试使用的CANalyst-II分析仪如下图所示</p><p>[[File:plus-5-528.png]]</p></li><li><p>CANalyst-II分析仪资料下载链接</p>{| class="wikitable" style="width:800px;" |-| <big>'''https://www.zhcxgd.com/3.html'''</big>|}</li><li><p>首先要安装USBCANToolSetup这个软件</p><p>[[File:plus-5-529.png]]</p></li><li><p>USBCANToolSetup安装后的快捷方式为</p><p>[[File:plus-5-530.png]]</p></li><li><p>另外还需要安装一下USB驱动程序</p><p>[[File:plus-5-531.png]]</p></li><li><p>CANalyst-II分析仪的USB接口那端需要接到电脑的USB接口中</p><p>[[File:plus-5-532.png]]</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:plus-5-533.png]]</p></li></ol></li><li><p>然后可以打开USB-CAN软件</p><p>[[File:plus-5-534.png]]</p></li><li><p>然后点击启动设备</p><p>[[File:plus-5-535.png]]</p></li><li><p>然后点击确定</p><p>[[File:plus-5-536.png]]</p></li><li><p>再设置波特率为1000k bps</p><p>[[File:plus-5-537.png]]</p></li><li><p>成功打开后USB-CAN软件会显示序列号等信息</p><p>[[File:plus-5-538.png]]</p></li><li><p>开发板接收CAN消息测试</p><ol style="list-style-type: lower-alpha;"><li><p>首先在开发板的Linux系统中设置下CAN总线的波特率为'''1000kbps'''</p>{| class="wikitable" style="width:800px;" |-|<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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo candump can0'''</p>|}</li><li><p>然后在USB-CAN软件中发送一个消息给开发板</p><p>[[File:plus-5-539.png]]</p></li><li><p>如果开发板中可以接收到分析仪发送的消息说明CAN总线能正常使用</p>{| class="wikitable" style="width:800px;" |-|<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>{| class="wikitable" style="width:800px;" |-|<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'''命令,发送一个消息</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo cansend can0 123# SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置1122334455667788'''</p>|}</li><li><p>如果USB-CAN软件可以接收到开发板发过来的消息说明通信成功</p><p>[[File:plus-5-540.png]]</p></li></ol></li></ol>
[[File:media<span id="wiringop-python的安装使用方法"></815ee597fcdbd832b687cc3df51795b6.png]]span>
# 烧录linux镜像到SPIFlash+NVMe SSD中需要借助TF卡来完成,所以首先需要将linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入linux系统。烧录Linux镜像到TF卡的方法请见[[#_基于Windows%20PC将Linux镜像烧写到TF卡的方法|'''基于Windows PC将Linux镜像烧写到TF卡的方法''']]和[[#_基于Ubuntu%20PC将Linux镜像烧写到TF卡的方法|'''基于Ubuntu PC将Linux镜像烧写到TF卡的方法''']]两小节的说明。# 启动进入TF卡中的linux系统后,请先确认下NVMe SSD已经被开发板的linux系统正常识别了。如果NVMe SSD正常识别了的话,使用'''sudo fdisk == wiringOP-l'''命令就能看到'''nvme'''相关的信息Python的安装使用方法 ==
orangepi@orangepi{| class="wikitable" style="width:800px;background-color:~/Desktop$ #ffffdc;" |-|<big>'''sudo fdisk wiringOP-l | grep “nvme0n1”Python是wiringOP的Python语言版本的库,用于在Python程序中操作开发板的GPIO、I2C、SPI和UART等硬件资源。'''
Disk /dev/nvme0n1: 1.86 TiB, 2048408248320 bytes, 4000797360 sectors
使用'''lspci另外请注意下面所有的命令都是在<span style="color:#FF0000">root</span>用户下操作的。'''命令可以看到一个NVMe相关的PCI设备</big>|}
orangepi@orangepi:~$ '''lspci'''<span id="wiringop-python的安装方法"></span>=== wiringOP-Python的安装方法 ===
0000<ol style="list-style-type:00decimal;"><li><p>首先安装依赖包</p>{| class="wikitable" style="width:00.0 PCI bridge800px;" |-|<p>root@orangepi: Rockchip Electronics Co., Ltd Device 3588 (rev 01)~# '''sudo apt-get update'''</p><p>root@orangepi:~# '''sudo apt-get -y install git swig python3-dev python3-setuptools'''</p>|}</li><li><p>然后使用下面的命令下载wiringOP-Python的源码</p></li>
0000{| class="wikitable" style="background-color:01#ffffdc;width:00.0 Non800px;" |-Volatile memory controller: SK hynix BC501 | <big>'''NVMe注意,下面的git clone--recursive命令会自动下载wiringOP的源码,因为wiringOP-Python是依赖wiringOP的。请确保下载过程没有因为网络问题而报错。''' Solid State Drive
….
# linux镜像中已经预装了balenaEtcher,打开方法如下所示:'''如果从GitHub下载代码有问题,可以直接使用Linux镜像中自带的wiringOP-Python源码,存放位置为:/usr/src/wiringOP-Python'''。</big>|}
<div {| class="figurewikitable">style="width:800px;" |-|root@orangepi:~# '''git clone --recursive https://github.com/orangepi-xunlong/wiringOP-Python -b next'''
[[Fileroot@orangepi:media/db463db0603506d0545ab7365958e3d7.png|IMG_256]]~# '''cd wiringOP-Python'''
<root@orangepi:~/div>'''如果没有预装,balenaEtcher arm64版本的下载安装方法请参考'''[[wiringOP-Python#_下载安装arm64版本balenaEtcher的方法|'''下载安装arm64版本balenaEtcher的方法''']]'''小节的说明。git submodule update --init --remote'''
# balenaEtcher打开后的界面如下所示:|}</ol>
<div ol start="3" style="list-style-type: decimal;"><li><p>然后使用下面的命令编译wiringOP-Python并将其安装到开发板的Linux系统中</p>{| class="figurewikitable">style="width:800px;" |-|root@orangepi:~# '''cd wiringOP-Python'''
[[Fileroot@orangepi:media~/4bfda35a981f23c25b02b064980a0b7fwiringOP-Python# '''python3 generate-bindings.png|IMG_256]]py > bindings.i'''
<root@orangepi:~/div># 使用balenaEtcher烧录uwiringOP-boot到开发板SPI Flash中的方法如下所示:#Python# 首先点击'''Flash from filesudo python3 setup.py install'''
|}<div class="figure"/li><li><p>然后输入下面的命令,如果有帮助信息输出,说明wiringOP-Python安装成功,按下'''q'''键可以退出帮助信息的界面</p></li>
[[File{| class="wikitable" style="width:media800px;" |-|root@orangepi:~/bcd77dfc718bcd24d2b3b07d39888566.png|IMG_256]]wiringOP-Python# '''python3 -c "import wiringpi; help(wiringpi)"'''
</div># 然后进入'''/usr/lib/linux-u-boot-legacy-orangepi5plus_1.x.x_arm64'''目录,再选择'''rkspi_loader.img''',再点击'''Open'''打开Help on module wiringpi:
[[File:media/0f071bc08470c49f60b9cede5ff613cd.png]]
# 打开'''rkspi_loader.img'''后的界面如下所示:NAME
[[File:media/b0894fc0f790a30947a020b647e61ca3.png]]:wiringpi
# 然后点击'''Select target'''
<div class="figure">DESCRIPTION
[[File:media: # This file was automatically generated by SWIG (http:/c136bf32af304d3ed19fdca6c2cfad6b/www.swig.org).png|IMG_256]]
</div>:: # 然后点击'''Show Version 4.0.2 hidden'''打开更多存储设备的选项
<div class="figure">:: #
[[File:media/ac2317519307c6249b11b5a090ab8991.png|IMG_256]]: # Do not make changes to this file unless you know what you are doing--modify
:: # the SWIG interface file instead.|}</divol># 然后选择SPI Flash的设备名'''<ol start="5" style="list-style-type: decimal;"><li><p>在python命令行下测试wiringOP-Python是否安装成功的步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li>首先使用python3命令进入python3的命令行模式</devli></mtdblock0li>{| class="wikitable" style="width:800px;" |-|root@orangepi:~# ''',然后点击'''Selectpython3'''|}</ol>
<div class="figure">
[[File<ol start="2" style="list-style-type:medialower-alpha;"><li>然后导入wiringpi的python模块</21e68b1f9a0f46c7f00253209c359823.png|IMG_256]]li>
{| class="wikitable" style="width:800px;" |-|>>> '''import wiringpi;'''|}</divol># 然后点击<ol start="3" style="list-style-type: lower-alpha;"><li>最后输入下面的命令可以查看下wiringOP-Python的帮助信息,按下'''Flashq'''键可以退出帮助信息的界面</li>
<div {| class="figurewikitable">style="width:800px;" |-|>>> '''help(wiringpi)'''
[[FileHelp on module wiringpi:media/fc6bd6a8c7c07de69ec06060a6573ddd.png|IMG_256]]
</div>
# 然后点击'''Yes, I’m sure'''
<div class="figure">NAME
[[File:media/3e8e47b9496aa156568cfd7435c1ddeb.png|IMG_256]]:wiringpi
</div>
# 然后输入开发板linux系统的密码'''orangepi''',就会开始烧录u-boot镜像到SPI Flash中
<div class="figure">DESCRIPTION
[[File:media: # This file was automatically generated by SWIG (http:/2d34eeb0deab3c91d2469620a3746c0f/www.swig.org).png|IMG_256]]
</div>:: # 烧录过程的显示如下所示:Version 4.0.2
<div class="figure">:: #
[[File:media/06073e8f64c978992df7c77365af9102.png|IMG_256]]: # Do not make changes to this file unless you know what you are doing--modify
</div>:: # 烧录完成后的显示如下所示:the SWIG interface file instead.
<div class="figure">
[[File:media/dacdf69b64bb2e7dda8465d942be44c4.png|IMG_256]]CLASSES
</div># 烧录TF卡中的linux系统到NVMe SSD中的方法(此方法相当于将TF卡中的系统克隆到NVMe SSD)## 首先点击'''Clone drive'''::builtins.object
<div class="figure">::::GPIO
[[File:media/09bb4c33bf4872ce16fec074697560cb.png|IMG_256]]:::I2C
</div># 然后选择TF卡的设备名'''/dev/mmcblk1'''::::Serial
<div class="figure">::::nes
[[File:media/b37893e28622574fc5efe99bce1e1819.png|IMG_256]]
</div># 打开TF卡后的界面如下所示:::class GPIO(builtins.object)
<div class::| GPIO(pinmode="figure">0)
[[File:media/12049fba8819f7ec5924d8a9abe7b243.png:|IMG_256]]
</div>
# 然后点击'''Select target'''
>>>|}<div class/ol><span id="figurepin-gpio口测试-1"></span> === 40 pin GPIO口测试 ===
[[File{| class="wikitable" style="background-color:media#ffffdc;width:800px;" |-| <big>'''wiringOP-Python跟wiringOP一样,也是可以通过指定wPi号来确定操作哪一个GPIO引脚,因为wiringOP-Python中没有查看wPi号的命令,所以只能通过wiringOP中的gpio命令来查看板子wPi号与物理引脚的对应关系。'''</c136bf32af304d3ed19fdca6c2cfad6b.png|IMG_256]]big>
</div>[[File:plus-5-485.png]]# 然后点击'''Show 2 hidden'''打开更多存储设备的选项|}
<ol style="list-style-type: decimal;">
<li><p>下面以7号引脚——对应GPIO为GPIO1_D6——对应wPi序号为2——为例演示如何设置GPIO口的高低电平</p>
<div class="figure">
[[File:media/ac2317519307c6249b11b5a090ab8991plus-5-483.png|IMG_256]]
</div></li><li><p>直接用命令测试的步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先设置GPIO口为输出模式,其中'''pinMode'''函数的第一个参数是引脚对应的wPi的序号,第二个参数是GPIO的模式</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP-Python# '''python3 -c "import wiringpi; \'''</p><p>'''from wiringpi import GPIO; wiringpi.wiringPiSetup() ; \'''</p><p>'''wiringpi.pinMode(2, GPIO.OUTPUT) ; "'''</p>|}</li><li><p>然后设置GPIO口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP-Python# '''python3 -c "import wiringpi; \'''</p><p>'''from wiringpi import GPIO; wiringpi.wiringPiSetup() ;\'''</p><p>'''wiringpi.digitalWrite(2, GPIO.LOW)"'''</p>|}</li><li><p>然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP-Python# 然后选择NVMe SSD的设备名'''python3 -c "import wiringpi; \'''</p><p>'''from wiringpi import GPIO; wiringpi.wiringPiSetup() ;\'''</p><p>'''wiringpi.digitalWrite(2, GPIO.HIGH)"'''</p>|}</li></ol></li><li><p>在python3的命令行中测试的步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先使用python3命令进入python3的命令行模式</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~# '''python3'''</p>|}</li><li><p>然后导入wiringpi的python模块</p>{| class="wikitable" style="width:800px;" |-|<p>>>> '''import wiringpi'''</p><p>>>> '''from wiringpi import GPIO'''</p>|}</devli><li><p>然后设置GPIO口为输出模式,其中'''pinMode'''函数的第一个参数是引脚对应的wPi的序号,第二个参数是GPIO的模式</p>{| class="wikitable" style="width:800px;" |-|<p>>>> '''wiringpi.wiringPiSetup()'''</p><p>0</p><p>>>> '''wiringpi.pinMode(2, GPIO.OUTPUT)'''</p>|}</li><li><p>然后设置GPIO口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功</p>{| class="wikitable" style="width:800px;" |-|<p>>>> '''wiringpi.digitalWrite(2, GPIO.LOW)'''</p>|}</li><li><p>然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功</nvme0n1p>{| class="wikitable" style="width:800px;" |-|<p>>>> '''wiringpi.digitalWrite(2,然后点击GPIO.HIGH)'''</p>|}</li></ol></li><li><p>wiringOP-Python在python代码中设置GPIO高低电平的方法可以参考下examples中的'''blink.py''Select'测试程序,'''blink.py'''测试程序会设置开发板40 pin中所有的GPIO口的电压不断的高低变化</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP-Python# '''cd examples'''</p><p>root@orangepi:~/wiringOP-Python/examples# '''ls blink.py'''</p><p>'''blink.py'''</p><p>root@orangepi:~/wiringOP-Python/examples'''# python3 blink.py'''</p>|}</li></ol>
[[File:media<span id="pin-spi测试-1"></52daeb90d9b6df19685ff9cb0fa23888.png]]span>
# 然后点击'''Flash'''=== 40 pin SPI测试 ===
<div classol style="figurelist-style-type: decimal;"><li><p>由下图可知,Orange Pi 5 Plus可用的SPI为SPI0和SPI4</p><p>[[File:plus-5-479.png|1000px]]</p></li><li><p>SPI0和SPI4在40pin中对应的引脚如下表所示。SPI4_M1和SPI4_M2同一时间只能使用其中一组,不能同时使用,它们都是同一个SPI4,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的SPI总线。</p></li>
[[File{| class="wikitable" style="width:media/d4bdce400cdffa1cd1899e991274a04f.png800px;" |-|| '''S PI0_M2对应40pin'''| '''S PI4_M1对应40pin'''| '''SP I4_M2对应40pin'''|-|IMG_256]]'''MOSI'''
</div>| '''19号引脚'''# 然后点击| '''Yes, I’m sure12号引脚'''| '''8号引脚'''<div class="figure">|- [[File:media/854a2530f68e66a7028b93704b61b753.png|IMG_256]]'''MISO'''
| '''21号引脚'''| '''31号引脚'''| '''10号引脚'''|-| '''CLK'''| '''23号引脚'''| '''35号引脚'''| '''22号引脚'''|-| '''CS0'''| '''24号引脚'''| '''40号引脚'''| '''31号引脚'''|-| '''CS1'''| '''26号引脚'''| '''38号引脚'''| '''<span style="color:#FF0000">无</divspan>'''# 然后输入开发板linux系统的密码orangepi,就会开始烧录linux镜像到SSD中|-| '''dtb o配置'''| '''spi 0-m2-cs0-spidev'''
<div class="figure">'''spi 0-m2-cs1-spidev'''
[[File:media/5633a026d977e654c258b88a042b8b29.png|IMG_256]]'''spi0-m2 -cs0-cs1-spidev'''
</div># 烧录过程的显示如下所示:| '''spi 4-m1-cs0-spidev'''
[[File:media/a6a0747563cc053e29be4160b337a89e.png]]'''spi 4-m1-cs1-spidev'''
<div class="figure">'''spi4-m1 -cs0-cs1-spidev'''
| '''spi4 -m2-cs0-spidev'''|}</ol><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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li><li><p>然后选择'''System'''</p><p>[[File:5plus-51.png]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:5plus-52.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的SPI的配置</p><p>[[File:mediaplus5-546.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:5plus-54.png]]</52b419038836c65e66a22f49d779fa66p></li><li><p>然后选择'''<Back>'''</p><p>[[File:5plus-55.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:5plus-56.png|IMG_256]]</p></li></ol></li><li><p>重启后进入系统先查看下linux系统中是否存在'''spidevx.x'''的设备节点,如果存在,说明SPI已经设置好了,可以直接使用。</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ls /dev/spidev*'''</p><p>/dev/spidev0.0 /dev/spidev0.1 /dev/spidev4.0 /dev/spidev4.1</p>|}{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''上面是打开spi0-m2-cs0-cs1-spidev和spi4-m1-cs0-cs1-spidev后显示的结果。'''</p></big>|}</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>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''--channel和--port参数后面的x需要替换为具体SPI的通道号和SPI的端口号。'''</p></big>|}{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP-Python# '''cd examples'''</p>
<root@orangepi:~/div>wiringOP-Python/examples# 烧录完成后的显示如下所示:'''python3 spidev_test.py --channel x --port x'''
[[Filespi mode:media/091e14751d63864d74bb976f558c9983.png]]0x0
# 然后需要扩容下NVMe SSD中rootfs分区的容量,步骤如下所示:## 首先打开'''GParted'''max speed: 500000 Hz (500 KHz)
<div class="figure">Opening device /dev/spidev4.1
[[FileTX | FF FF FF FF FF FF '''<span style="color:media#FF0000">40 00 00 00 00 95</f9e7ee4c7b9d283ef85636374fd137c6span>''' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D |......@.......png…|IMG_256]]
RX | FF FF FF FF FF FF '''<span style="color:#FF0000">FF FF FF FF FF FF</divspan>''' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF |.............….||}</li></ol><ol start="7" style="list-style-type: decimal;"><li><p>然后使用杜邦线短接SPI的MOSI和MISO两个引脚,再运行'''spidev_test.py'''的输出如下,可以看到发送和接收的数据一样,说明SPI回环测试正常</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''--channel和--port参数后面的x需要替换为具体SPI的通道号和SPI的端口号。'''</p></big>|}{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP-Python# 然后输入linux系统的密码orangepi,再点击'''Authenticatecd examples'''</p>
[[Fileroot@orangepi:media~/0b31f76e5827f43bf2b22cafd024915cwiringOP-Python/examples# '''python3 spidev_test.png]]py --channel x --port x'''
# 然后点击'''Fix'''spi mode: 0x0
[[Filemax speed:media/ae4cead90a273e276b4668cc3fb88002.png]]500000 Hz (500 KHz)
# 然后选择NVMe SSDOpening device /dev/spidev4.1
TX | FF FF FF FF FF FF '''<div classspan style="figurecolor:#FF0000">40 00 00 00 00 95</span>''' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D |......@.......…|
[[FileRX | FF FF FF FF FF FF '''<span style="color:media#FF0000">40 00 00 00 00 95</26724aba59165d5ff0b04942c7f447a7span>''' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D |......@...png....…|IMG_256]]|}</li></ol><span id="pin-i2c测试-1"></span>
</div># 选择NVMe SSD后的显示界面如下所所示:=== 40 pin I2C测试 ===
<div classol style="figurelist-style-type: decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的i2c为i2c2、i2c4、i2c5和i2c8共四组 i2c总线。</p><p>[[File:plus-5-479.png|1000px]]</p></li><li><p>4组I2C总线在40pin中对应的引脚如下表所示。I2C2_M0和I2C2_M4同一时间只能使用其中一组,不能同时使用,它们都是同一个I2C2,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的I2C2总线。</p></li>
{| class="wikitable" style="width:800px;" |-| style="text-align: left;"| '''I2C总线'''| 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><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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li><li><p>然后选择'''System'''</p><p>[[File:media5plus-51.png]]</1178f121a97a7e9eb91f37478a2fd603p></li><li><p>然后选择'''Hardware'''</p><p>[[File:5plus-52.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的I2C的配置</p><p>[[File:plus5-553.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:5plus-54.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:5plus-55.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:5plus-56.png]]</p></li></ol></li><li><p>启动linux系统后,先确认下'''/dev'''下存在对应i2c的设备节点</p>{|IMG_256class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ls /dev/i2c-*'''</p>|}</li><li><p>然后在40 pin接头的i2c引脚上接一个i2c设备,这里以ds1307 RTC模块为例</p><p>[[File:plus-5-557.png]]</p></li><li><p>然后使用'''i2cdetect -y'''命令如果能检测到连接的i2c设备的地址,就说明i2c能正常识别。</p>{| class="wikitable" style="width:800px;" |-|<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>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''/dev/i2c-x需要替换是具体的i2c设备节点的序号。'''</p></big>|}{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP-Python# '''cd examples'''</p><p>root@orangepi:~/wiringOP-Python/examples# '''python3 ds1307.py --device "/dev/i2c-x"'''</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"></divspan># 然后选择'''/dev/nvme0n1p2'''分区,再击点击右键,再选择'''Resize/Move'''
<div class="figure">== 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/598e77754a7b79e0dc612384eb63e444plus-5-479.png|IMG_256]]</p></li><li><p>6组UART总线在40pin中对应的引脚如下表所示:</p></li>
{| class="wikitable" style="width:800px;" |-| 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;"| '''uart8-m1'''|}</ol><ol start="3" style="list-style-type: decimal;"><li><p>在linux系统中,40 pin中的UART默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</divp># 然后在下图所示的位置将容量拖动到最大|}</li><li><p>然后选择'''System'''</p><p>[[File:media5plus-51.png]]</p></li><li><p>然后选择'''Hardware'''</46b9871924b98afb0ee2a394e73e8e59p><p>[[File:5plus-52.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的UART的配置</p><p>[[File:plus5-561.png]]</p></li># 然后点击<li><p>然后选择'''<Save>'''Resize保存</p><p>[[File:5plus-54.png]]</p></Moveli><li><p>然后选择'''<Back>'''</p> <p>[[File:media/08cf1d9f66400c2132bb37c5e7486ea45plus-55.png]]</p></li> # 然后点击下图位置绿色的<li><p>然后选择'''√<Reboot>'''重启系统使配置生效</p> <p>[[File:media/fec0790461f2c591f97baf4f06c86e4d5plus-56.png]]</p></li></ol></li><li><p>进入linux系统后,先确认下/dev下是否存在对应uart的设备节点</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ls /dev/ttyS*'''</p>|}</li><li><p>然后开始测试uart接口,先使用杜邦线短接要测试的uart接口的rx和tx引脚</p></li><li><p>然后使用'''wiringOP-Python/examples'''中的'''serialTest.py'''程序测试串口的回环功能。如下所示,如果能看到下面的打印,说明串口通信正常。</p>{| class="wikitable" style="background-color:# 再点击ffffdc;width:800px;" |-| <big><p>'''Apply/dev/ttySX需要替换是具体的uart设备节点的序号。'''</p></big>|}{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP-Python/examples# '''python3 serialTest.py --device "/dev/ttySX"'''</p><p>Out: 0: -> 0</p><p>Out: 1: -> 1</p><p>Out: 2: -> 2</p><p>Out: 3: -> 3</p><p>Out: 4:^C</p><p>exit</p>|}</li></ol>
[[File:media/ce3376d260f85c58842061e833487cec.png]]== 硬件看门狗测试 ==
# 然后点击'''Close'''关闭即可Orange Pi发布的linux系统中预装了watchdog_test程序,可以直接测试。
[[File:media/db6e7741c5dd47ed8138381fe951f887.png]]运行watchdog_test程序的方法如下所示:
# 此时就可以使用<ol style="list-style-type: lower-alpha;"><li><p>第二个参数10表示看门狗的计数时间,如果这个时间内没有喂狗,系统会重启</p></li><li><p>我们可以通过按下键盘上的任意键(ESC除外)来喂狗,喂狗后,程序会打印一行keep alive表示喂狗成功</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo poweroffwatchdog_test 10'''命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动SPIFlash+NVMe SSD中的linux系统了。</p><p>open success</p><p>options is 33152,identity is sunxi-wdt</p><p>put_usr return,if 0,success:0</p><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># 第'''9)''' 步是克隆TF卡中的系统到NMVe SSD中,我们还可以直接烧录linux镜像文件到NVMe SSD中,这里大概说下步骤:<p>keep alive</p><p>keep alive</p>## 上传linux镜像文件到开发板的linux系统中|}## 然后使用balenaEtcher烧录即可</li></ol>
[[File:media<span id="查看rk3588芯片的序列号"></f364ea68c540dfd15dec8845e8345f54.png]]span>
# '''使用这种方法烧录镜像后无需手动扩容,第一次启动会自动扩容。'''== 查看RK3588芯片的序列号 ==
<span id="烧录openwrt镜像到spi-flash中的方法"></span>== 烧录OpenWRT镜像到SPI FLASH中的方法 ==查看RK3588芯片序列号的命令如下所示,每个芯片的序列号都是不同的,所以可以使用序列号来区分多个开发板。
{| class="wikitable" style="width:800px;" |-|orangepi@orangepi:~$ '''此小节介绍的方法是烧录整个OpenWRT镜像到spi flash中,不需要nvme ssd。也就是说,u-boot、内核和rootfs都是存放在spi flash中的。cat_serial.sh'''
Serial : '''由于开发板上的spi flash只有16MB,所以此系统基本无法安装多少软件,目前只能实现一些基础功能。<span style="color:blue">1404a7682e86830c</span>'''|}
<span id="使用-rkdevtool-烧录的方法安装docker的方法"></span>=== 使用 RKDevTool 烧录的方法 ===
# SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置== 安装Docker的方法 ==
[[File<ol style="list-style-type:mediadecimal;"><li><p>Orange Pi提供的linux镜像已经预装了Docker,只是Docker服务默认没有打开</815ee597fcdbd832b687cc3df51795b6p></li><li><p>使用'''enable_docker.sh'''脚本可以使能docker服务,然后就可以开始使用docker命令了,并且在下次启动系统时也会自动启动docker服务</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''enable_docker.png]]sh'''</p>|}</li><li><p>然后可以使用下面的命令测试下docker,如果能运行hello-world说明docker能正常使用了</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''docker run hello-world'''</p><p>Unable to find image 'hello-world:latest' locally</p><p>latest: Pulling from library/hello-world</p><p>256ab8fe8778: Pull complete</p><p>Digest: sha256:7f0a9f93b4aa3022c3a4c147a449ef11e0941a1fd0bf4a8e6c9408b2600777c5</p><p>Status: Downloaded newer image for hello-world:latest</p>
# 然后需要准备一根品质良好的Type-C接口的数据线
[[File<p>'''<span style="color:media#FF0000">Hello from Docker!</d84ad9c1e0e447425ddd86cfefafca1espan>'''</p><p>'''<span style="color:#FF0000">This message shows that your installation appears to be working correctly.png]]</span>'''</p><p>'''.….'''</p>|}</li></ol>
# 然后从[http:<span id="下载安装arm64版本balenaetcher的方法"><//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的资料下载页面]首先选择'''官方工具''',然后进入下面的文件夹中span>
[[File:media/816e86dd538ef9fa9cb9cb253871f73f.png]]== 下载安装arm64版本balenaEtcher的方法 ==
# 然后下载下面的所有文件<ol style="list-style-type: decimal;"><li><p>balenaEtcher arm64版本的下载地址为:</p><ol style="list-style-type: lower-alpha;"><li><p>deb安装包的下载地址如下所示,需要安装才能使用</p>{| class="wikitable" style="width:800px;" |-|<big>'''https://github.com/Itai-Nelken/BalenaEtcher-arm/releases/download/v1.7.9/balena-etcher-electron_1.7.9+5945ab1f_arm64.deb'''</big>|}</li><li><p>无需安装的AppImage版本的下载地址如下所示:</p>{| class="wikitable" style="width:800px;" |-|<big>'''https://github.com/Itai-Nelken/BalenaEtcher-arm/releases/download/v1.7.9/balenaEtcher-1.7.9+5945ab1f-arm64.AppImage'''</big>|}</li>
[[File:media/4828a75a2a73dd5e1f4ea5dcb0a8e3e8.png]]<div class="figure">
'''注意,“MiniLoader[[File:plus-烧录Linux镜像才需要用到的东西”文件夹下文简称为MiniLoader文件夹。'''5-565.png|1000px]]
# 然后从[http:</div></ol></www.orangepi.cnli></htmlol><ol start="2" style="list-style-type: decimal;"><li><p>deb版本balenaEtcher的安装使用方法:</serviceAndSupportp><ol style="list-style-type: lower-alpha;"><li><p>deb版本的balenaEtcher安装命令如下所示:</index.html p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''Orange Pi的资料下载页面sudo apt install -y \''']下载能够从SPIFlash启动的OpenWRT镜像,受限于SPIFlash的容量,镜像是小于</p><p>'''16MB--fix-broken ./balena-etcher-electron_1.7.9+5945ab1f_arm64.deb'''的。打开下载链接后可以看到下面两种类型的'''OpenWRT'''镜像,请选择'''SPIFlash启动镜像'''文件夹中的镜像</p>|}</li>[[File:media<li><p>deb版本的balenaEtcher安装完成后,在Application中就可以打开了</a52efe9584feb0dc952a7468bcd7ce93.png]]p><div class="figure">
# 然后用解压软件解压'''DriverAssitant_v5[[File:plus-5-117.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可png|1200px]]
[[File:media</3abe751bd0c4c5e9be6a83f839a1e4c2.png]]div></li><li><p>balenaEtcher打开后的界面如下所示:</p></li>
# 打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示## 点击“'''驱动安装'''”按钮<div class="figure">
[[File:media/bc5fc637f8588abefa4f2ff7e0dc2683plus-5-567.png]]
# 等待一段时间后,会弹出窗口提示“</div></ol></li></ol><ol start="3" style="list-style-type: decimal;"><li><p>AppImage版本的balenaEtcher的使用方法:</p><ol style="list-style-type: lower-alpha;"><li><p>首先给balenaEtcher添加权限</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~/Desktop$ '''安装驱动成功chmod +x balenaEtcher-1.7.9+5945ab1f-arm64.AppImage'''”,然后点击'''“确定”'''按钮即可</p>|}</li><li><p>然后选中AppImage版本balenaEtcher,再点击鼠标右键,再点击Execute就可以打开balenaEtcher了</p><p>[[File:plus-5-568.png]]</p></li></ol></li></ol>
[[File:media<span id="宝塔linux面板的安装方法"></48720c90a698617c0f884059ac1d6885.png]]span>
# 然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可== 宝塔Linux面板的安装方法 ==
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能(摘抄自[[Filehttps:media/c20745924f6e330c0bc60639e5ee8c1b/www.png]bt.cn/ 宝塔官网])'''</big>|}
# 打开<ol style="list-style-type: decimal;"><li><p>宝塔Linux系统兼容性推荐的顺序为</p>{| class="wikitable" style="width:800px;" |-|<p>'''Debian11 > Ubuntu 22.04'''</p>|}</li><li><p>然后在linux系统中输入下面的命令就可以开始宝塔的安装</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo install_bt_panel.sh'RKDevTool''</p>|}</li><li><p>然后宝塔安装程序会提醒是否安装' 烧录工具后,因为电脑此时还没有通过Type''Bt-C线连接上开发板,所以左下角会提示“Panel'''到'''没有发现设备/www'''”文件夹,此时输入'''y'''即可</p>{| class="wikitable" style="width:800px;" |-|<p>+----------------------------------------------------------------------</p><p>| Bt-WebPanel FOR CentOS/Ubuntu/Debian</p><p>+----------------------------------------------------------------------</p><p>| Copyright © 2015-2099 BT-SOFT(http://www.bt.cn) All rights reserved.</p><p>+----------------------------------------------------------------------</p><p>| The WebPanel URL will be http://SERVER_IP:8888 when installed.</p><p>+----------------------------------------------------------------------</p>
[[File:media/ca4b9e37ca9d9cce3f888c4278bd3726.png]]
<p>Do you want to install Bt-Panel to the /www directory now?(y/n): '''<span style="color:# 然后开始烧录OpenWRT镜像到SPI FLASH中FF0000">y</span>'''</p>|}</li><li><p>然后要做的就是耐心等待,当看到终端输出下面的打印信息时,说明宝塔已经安装完成,整个安装过程大约耗时9分钟,根据网络速度的不同可能会有一些差别</p><p>[[File:plus-5-569.png]]</p></li><li><p>此时在浏览器中输入上面显示的'''面板地址'''就可以打开宝塔Linux面板的登录界面,然后在对应的位置输入上图显示的'''username'''和'''password'''就可以登录进宝塔</p><p>[[File:plus-5-570.png]]</p></li><li><p>成功登录宝塔后的会弹出下面的欢迎界面,首先请将中间的用户须知阅读完拖到最下面,然后就可以选择”我已同意并阅读《用户协议》“,接着点击”进入面板”就可以进入宝塔了</p><p>[[File:plus-5-571.png]]</p></li><li><p>进入宝塔后首先会提示需要绑定宝塔官网的账号,如果没有账号可以去宝塔的官网('''https://www.bt.cn''')注册一个</p><p>[[File:plus-5-572.png]]</p></li><li><p>最终显示的界面如下图所示,可以很直观的看到开发板Linux系统的一些状态信息,比如负载状态、CPU的使用率、内存使用率和存储空间的使用情况等</p><p>[[File:plus-5-573.png]]</p></li><li><p>测试宝塔的SSH终端登录</p>## 首先通过Type<ol style="list-style-type: lower-alpha;"><li><p>打开宝塔的SSH终端后首先会提示需要输入开发板系统的密码,此时在密码框中输入'''orangepi'''(默认密码,如果有修改请填写修改后的)即可</p><p>[[File:plus-5-574.png]]</p></li><li><p>成功登录后的显示如下图所示</p><p>[[File:plus-5-575.png]]</p></li></ol></li><li><p>在宝塔的软件商店中可以安装Apache、MySQL和PHP等软件,也可以一键部署各种应用程序,这部分功能请自行探索,这里就不一一演示了</p><p>[[File:plus-C数据线连接好开发板与Windows电脑,开发板Type5-C接口的位置如下图所示576.png]]</p></li><li><p>宝塔命令行工具测试</p><div class="figure">
[[File:media/293482d42e80a8b3e2962b40e834bb41plus-5-577.png]]
# 确保开发板没有连接电源,</div></li><li><p>宝塔的更多功能可以参考下面资料自行探索</p>{| class="wikitable" style="width:800px;" |-|<p>使用手册:[http://docs.bt.cn '''http://docs.bt.cn''']</p><p>论坛地址:[https://www.bt.cn/bbs '''https://www.bt.cn/bbs''']</p><p>GitHub链接:'并且没有插入TF卡和eMMC模块''https://github.com/aaPanel/BaoTa'''</p>|}## 然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</li></ol>
[[File:media/b5c295a072c9e13167488051a2a2cb04.png]]== 设置中文环境以及安装中文输入法 ==
{| class="wikitable" style="background-color:# 然后给开发板接上Typeffffdc;width:800px;" |-C接口的电源,并上电,然后就可以松开MaskROM按键了| <big>'''注意,安装中文输入法前请确保开发板使用的Linux系统为桌面版系统。'''</big>|}
[[File:media<span id="debian-11系统的安装方法"></1f65f9666af69c591813b5597e806ccb.png]]span>=== Debian 11系统的安装方法 ===
<ol style="list-style-type: decimal;"><li><p>首先设置默认'''locale'''为中文</p><ol style="list-style-type: lower-alpha;"><li><p>输入下面的命令可以开始配置'''locale'''</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo dpkg-reconfigure locales'''</p>|}</li><li><p>然后在弹出的界面中选择'''zh_CN.UTF-8 UTF-8'''(通过键盘上的上下方向按键来上下移动,通过空格键来选择,最后通过Tab键可以将光标移动到'''<OK>''',然后回车即可)</p><p>[[File:plus-5-578.png]]</p></li><li><p>然后设置默认'''locale'''为'''zh_CN.UTF-8'''</p><p>[[File:plus-5-579.png]]</p></li><li><p>退出界面后就会开始'''locale'''的设置,命令行显示的输出如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo 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>然后打开'''Input Method'''</p><p>[[File:plus-5-580.png]]</p></li><li><p>然后选择'''OK'''</p><p>[[File:plus-5-581.png]]</p></li><li><p>然后选择'''Yes'''</p><p>[[File:plus-5-582.png]]</p></li><li><p>然后选择'''fcitx'''</p><p>[[File:plus-5-583.png]]</p></li><li><p>然后选择'''OK'''</p><p>[[File:plus-5-584.png]]</p></li><li><p>'''<span style="color:# 如果前面的步骤顺利,此时开发板会进入FF0000">然后重启Linux系统才能使配置生效</span>'''</p></li><li><p>然后打开'''Fcitx configuration'''</p><p>[[File:plus-5-585.png]]</p></li><li><p>然后点击下图所示位置的'''+'''号</p><p>[[File:plus-5-586.png]]</p></li><li><p>然后搜索'''Google Pinyin'''再点击'''OK'MASKROM''</p><p>[[File:plus-5-587.png]]</p></li><li><p>然后将'模式,在烧录工具的界面上会提示“''Google Pinyin'发现一个MASKROM设备''放到最前面</p><p>[[File:plus-5-588.png]]</p><p>[[File:plus-5-589.png]]</p></li><li><p>然后打开'''Geany'''这个编辑器测试下中文输入法</p><p>[[File:plus-5-590.png]]</p></li><li><p>中文输入法测试如下所示</p><p>[[File:plus-5-591.png]]</p></li><li><p>通过'''Ctrl+Space'''快捷键可以切换中英文输入法</p></li><li><p>如果需要整个系统都显示为中文,可以将'''/etc/default/locale'''中的变量都设置为'''zh_CN.UTF-8'''</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo vim /etc/default/locale'''</p><p># File generated by update-locale</p><p>LC_MESSAGES='''<span style="color:#FF0000">zh_CN.UTF-8</span>'''</p><p>LANG='''<span style="color:#FF0000">zh_CN.UTF-8</span>'''</p><p>LANGUAGE='''<span style="color:#FF0000">zh_CN.UTF-8</span>'''</p>|}</li><li><p>然后'''<span style="color:#FF0000">重启系统</span>'''”就能看到系统显示为中文了</p><p>[[File:plus-5-592.png]]</p></li></ol>
[[File:media<span id="ubuntu-20.04系统的安装方法"></18276e05fbda6e29cb92f7582ba887d4.png]]span>
# 然后将鼠标光标放在下面的这片区域中=== Ubuntu 20.04系统的安装方法 ===
<ol style="list-style-type: decimal;"><li><p>首先打开'''Language Support'''</p><p>[[File:mediaplus-5-593.png]]</86a56c049f0d8807cf1685e7b89306ebp></li><li><p>然后找到'''汉语(中国)'''选项</p><p>[[File:plus-5-594.png]]</p></li><li><p>然后请使用鼠标左键选中'''汉语(中国)'''并按住不动,然后往上将其拖到最开始的位置,拖完后的显示如下图所示:</p><p>[[File:plus-5-595.png]]</p></li>
{| class="wikitable" style="background-color:# 然后点击鼠标右键会弹出下图所示的选择界面ffffdc;width:800px;" |-| <big>'''注意,这一步不是很好拖动的,请耐心多试几次。'''</big>|}</ol><ol start="4" style="list-style-type: decimal;"><li><p>然后选择'''Apply System-Wide'''将中文设置应用到整个系统</p><p>[[File:plus-5-596.png]]</p></li><li><p>然后设置'''Keyboard input method system'''为'''fcitx'''</p><p>[[File:plus-5-597.png]]</p></li><li><p>'''<span style="color:#FF0000">然后重启Linux系统使配置生效</span>'''</p></li><li><p>重新进入系统后,在下面的界面请选择'''不要再次询问我''',然后请根据自己的喜好决定标准文件夹是否也要更新为中文</p><p>[[File:plus-5-598.png]]</p></li><li><p>然后可以看到桌面都显示为中文了</p><p>[[File:plus-5-599.png]]</p></li><li><p>然后我们可以打开'''Geany'''测试下中文输入法,打开方式如下图所示</p><p>[[File:plus-5-600.png]]</p></li><li><p>打开'''Geany'''后,默认还是英文输入法,我们可以通过'''Ctrl+Space'''快捷键来切换成中文输入法,然后就能输入中文了</p><p>[[File:plus-5-601.png]]</p></li></ol>
[[File:media<span id="ubuntu-22.04系统的安装方法"></e21e70e17552c5c4b75c570c4c167464.png]]span>
# 然后选择'''导入配置'''选项=== Ubuntu 22.04系统的安装方法 ===
<ol style="list-style-type: decimal;"><li><p>首先打开'''Language Support'''</p><p>[[File:mediaplus-5-593.png]]</02a57b0477b87251ffdaaf062e80025dp></li><li><p>然后找到'''汉语(中国)'''选项</p><p>[[File:plus-5-603.png]]</p></li><li><p>然后请使用鼠标左键选中'''汉语(中国)'''并按住不动,然后往上将其拖到最开始的位置,拖完后的显示如下图所示:</p><p>[[File:plus-5-604.png]]</p></li>
{| class="wikitable" style="background-color:# 然后选择前面下载的ffffdc;width:800px;" |-| <big>'''MiniLoader注意,这一步不是很好拖动的,请耐心多试几次。'''文件夹中的</big>|}</ol><ol start="4" style="list-style-type: decimal;"><li><p>然后选择'''rk3588_linux_spiflashApply System-Wide'''将中文设置应用到整个系统</p><p>[[File:plus-5-605.png]]</p></li><li><p>'''<span style="color:#FF0000">然后重启Linux系统使配置生效</span>'''</p></li><li><p>重新进入系统后,在下面的界面请选择'''不要再次询问我''',然后请根据自己的喜好决定标准文件夹是否也要更新为中文</p><p>[[File:plus-5-598.png]]</p></li><li><p>然后可以看到桌面都显示为中文了</p><p>[[File:plus-5-599.png]]</p></li><li><p>然后打开Fcitx5配置程序</p><p>[[File:plus-5-608.png]]</p></li><li><p>然后选择使用拼音输入法</p><p>[[File:plus-5-609.png]]</p></li><li><p>选择后的界面如下所示,再点击确定即可</p><p>[[File:plus-5-610.cfgpng]]</p></li><li><p>然后我们可以打开'''配置文件,再点击Geany'''测试下中文输入法,打开方式如下图所示</p><p>[[File:plus-5-600.png]]</p></li><li><p>打开'''Geany'''后,默认还是英文输入法,我们可以通过'''Ctrl+Space'''快捷键来切换成中文输入法,然后就能输入中文了</p><p>[[File:plus-5-612.png]]</p></li></ol>
[[File:media<span id="远程登录linux系统桌面的方法"></16fd256dd887bb4809776eec8c720d31.png]]span>
# 然后点击'''确定'''== 远程登录Linux系统桌面的方法 ==
<div {| class="figurewikitable" style="background-color:#ffffdc;width:800px;"|-| <big>'''Ubuntu Gnome Wayland镜像不支持使用此处介绍的Nomachine和VNC来远程登录桌面。'''</big>|}
[[File:media<span id="使用nomachine远程登录"></7c4d8296584d4a759fe485bbdeb8ff1d.png|3b7b326151b95df2a98f0ec476e5c887]]span>=== 使用NoMachine远程登录 ===
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| </divbig># 然后点击下图所示的位置'''请确保开发板安装的Ubuntu或者Debian系统为桌面版本的系统。另外NoMachine也提供了详细的使用文档,强烈建议通读此文档来熟悉NoMachine的使用,文档链接如下所示:'''
'''https://knowledgebase.nomachine.com/DT10R00166'''<div class="figure"/big>|}
[[File{| class="wikitable" style="background-color:#ffffdc;width:media800px;" |-| <big>'''NoMachine支持Windows、Mac、Linux、iOS和安卓平台,所以我们可以在多种设备上通过NoMachine来远程登录控制Orange Pi开发板。下面演示下在Windows中通过NoMachine来远程登录Orange Pi开发板的Linux系统桌面。其他平台的安装方法请参考下NoMachine的官方文档。'''</0cc7e5082314344827e7b5b1df9e10c9.pngbig>|}QYR7OA61XB6U5Y1S@W8{OR]]
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| </divbig># 再选择前面下载的'''MiniLoader'''文件夹中'''MiniLoaderAll.bin''',再点击'''打开操作前请先确保Windwos电脑和开发板在同一局域网内,并且能正常ssh登录开发板的Ubuntu或者Debian系统。'''</big>|}
[[File<ol style="list-style-type:mediadecimal;"><li><p>首先下载NoMachine软件Linux '''<span style="color:#FF0000">arm64</span>''' deb版本的安装包,然后安装到开发板的Linux系统中</p><ol style="list-style-type: lower-alpha;"><li>由于RK3588是ARMv8架构的SOC,我们使用的系统为Ubuntu或者Debian,所以这里需要下载'''NoMachine for ARM ARMv8 DEB'''安装包,下载链接如下所示:</3679d114ef42d45c105bc92d6c74e07a.png]]li>
{| class="wikitable" style="background-color:# 然后点击下图所示的位置ffffdc;width:800px;" |-|<big>'''注意,这个下载链接可能会变,请认准Armv8/Arm64版本的deb包。'''</big>|}{| class="wikitable" style="width:800px;" |-|<big>'''https://www.nomachine.com/download/download&id=112&s=ARM'''</big>|}
![H5OM6~IN1[[media/01f9cb368ecbc8f09a7f5f6415b6982aFile:plus-5-613.png|F8FN$L7ACC`%5]]</ol>
# 再选择想要烧录的OpenWRT镜像的路径,再点击<ol start="2" style="list-style-type: lower-alpha;"><li><p>另外在'''打开官方工具'''中也可以下载到'''NoMachine'''的安装包</p><p>[[File:plus-5-614.png]]</p><p>先进入'''远程登录软件-NoMachine'''文件夹</p><p>[[File:plus-5-615.png]]</p><p>然后下载arm64版本的deb安装包</p><p>[[File:plus-5-616.png]]</p></li><li><p>然后将下载的'''nomachine_x.x.x_x_arm64.deb'''上传到开发板的Linux系统中</p></li><li><p>然后使用下面的命令在开发板的Linux系统中安装'''NoMachine'''</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo dpkg -i nomachine_x.x.x_x_arm64_arm64.deb'''</p>|}</li></ol></li></ol><!-- --><ol start="2" style="list-style-type: decimal;"><li>然后下载NoMachine软件Windows版本的安装包,下载地址如下所示</li>
[1VT6F{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''注意,这个下载链接可能会变。'''</big>|}8C`H)]0RYPSVT@)XE](media/d12a0aa9d912afa12e5f74d3a811736b.png)
# 然后请确保{| class="wikitable" style="width:800px;" |-|<big>'''强制按地址写https://downloads.nomachine.com/download/?id=9'''选项已勾上</big>|}
[[File:plus-5-617.png]]<div class/ol><ol start="3" style="figurelist-style-type: decimal;"><li><p>然后在Windows中安装NoMachine,'''安装完后请重启下电脑'''</p></li><li><p>然后在Window中打开'''NoMachine'''</p><p>[[File:plus-5-618.png]]</p></li><li><p>NoMachine启动后会自动扫描局域网内其他安装有NoMachine的设备,进入NoMachine的主界面后就可以看到开发板已经在可连接的设备列表里了,然后点击下图红色方框所示的位置即可开始登录开发板的Linux系统桌面</p><p>[[File:plus-5-619.png]]</p></li><li><p>然后点击'''OK'''</p><p>[[File:plus-5-620.png]]</p></li><li><p>然后在下图对应的位置输入开发板Linux系统的用户名和密码,再点击'''OK'''开始登陆</p><p>[[File:plus-5-621.png]]</p></li><li><p>然后在接下来的界面中都点击OK</p></li><li><p>最后就能看到开发板Linux系统的桌面了</p><p>[[File:plus-5-622.png]]</p></li></ol>
[[File:media<span id="使用vnc远程登录"></8ad87b32c21b6446467cf38ae06781b1.png|QDMZW$_J@VTSZ4QIE}516EO]]span>
</div># 再点击'''执行'''按钮就会开始烧录OpenWRT镜像到SPIFlash中=== 使用VNC远程登录 ===
![UA8B5)GA[[media/fed987ef930abca415de8df6d9cd3990.png{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-|KO{5%53CH2YNZJ]]<big>'''操作前请先确保Windwos电脑和开发板在同一局域网内,并且能正常ssh登录开发板的Ubuntu或者Debian系统。'''
'''<span style="color:# OpenWRT镜像烧录完后的显示log如下图所示FF0000">Ubuntu20.04测试VNC很多问题,请不要使用这种方法。</span>'''</big>|}
<div ol style="list-style-type: decimal;"><li><p>首先运行'''set_vnc.sh'''脚本设置下vnc,'''<span style="color:#FF0000">记得加sudo权限</span>'''</p>{| class="figurewikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo set_vnc.sh'''</p><p>You will require a password to access your desktops.</p><p>Password: '''<span style="color:#FF0000">#在这里设置vnc的密码,8位字符</span>'''</p><p>Verify: '''<span style="color:#FF0000">#在这里设置vnc的密码,8位字符</span>'''</p><p>Would you like to enter a view-only password (y/n)? '''<span style="color:#FF0000">n</span>'''</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></li>
[[File:mediaplus-5-623.png]]</329ec96c7caa8377aecad9e400727516ol><ol start="2" style="list-style-type: lower-alpha;"><li><p>然后输入前面设置的VNC的密码</p><p>[[File:plus-5-624.png|21EM~CZW2KAX{TZ1S3~3Q33]]</p></li><li><p>登录成功后的界面显示如下图所示,然后就可以远程操作开发板linux系统的桌面了</p></li>
[[File:plus-5-625.png]]</divol></ol># OpenWRT镜像烧录完后会自动启动,如果没有正常启动,请重新上电试下。<span id="linux系统支持的部分编程语言测试"></span>
<span id="使用dd命令烧录的方法-1"></span>=== 使用dd命令烧录的方法 =Linux系统支持的部分编程语言测试 ==
# 烧录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卡的方法''']]两小节的说明。<span id="debian-bullseye系统"></span># 然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载能够从'''SPIFlash'''启动的'''OpenWRT'''镜像。打开下载链接后可以看到下面两种类型的OpenWRT镜像,请选择'''SPIFlash启动镜像'''文件夹中的镜像进行下载=== Debian Bullseye系统 ===
[[File<ol style="list-style-type:mediadecimal;"><li><p>Debian Bullseye默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序</a52efe9584feb0dc952a7468bcd7ce93p><ol style="list-style-type: lower-alpha;"><li><p>gcc的版本如下所示</p>{| class="wikitable" style="width:800px;" |-|<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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''vim hello_world.c'''</p><p>#include <stdio.png]]h></p>
# 然后把从官网下载的镜像上传到TF卡中。<p>int main(void)</p># 然后再执行下面的命令即可将OpenWRT镜像烧写到SPIFlash中<p>{</p># 然后就可以使用'''poweroff'''命令关机了。然后请拔出TF卡,再短按电源按键开机,此时就会启动SPIFlash中的OpenWRT系统了::<p>printf("Hello World!\n");</p>
::<span idp>return 0;</p><p>}</p>|}</li><li><p>然后编译运行'''hello_world.c'''</p>{| class="wikitable" style="width:800px;" |-|<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>Debian Bullseye默认安装有Python3</p><ol style="list-style-type: lower-alpha;"><li><p>Python具体版本如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''python3'''</p><p>'''Python 3.9.2''' (default, Feb 28 2021, 17:03:44)</p><p>[GCC 10.2.1 20210110] on linux</p><p>Type "help", "copyright", "credits" or "license" for more information.</p><p>>>></p>|}{| class="烧录android镜像到tf卡中的方法wikitable"style="background-color:#ffffdc;width:800px;" |-| <big><p>'''使用Ctrl+D快捷键可退出python的交互模式。'''</p></spanbig>|}</li><li><p>编写Python语言的'''hello_world.py'''程序</p>{| class="wikitable" style= 烧录Android镜像到TF卡中的方法 "width:800px;" |-|<p>orangepi@orangepi:~$ '''vim hello_world.py'''</p><p>print('Hello World!')</p>|}</li><li><p>运行'''hello_world.py'''的结果如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''python3 hello_world.py'''</p><p>Hello World!</p>|}</li></ol></li><li><p>Debian Bullseye默认没有安装Java的编译工具和运行环境</p><ol style="list-style-type: lower-alpha;"><li><p>可以使用下面的命令安装openjdk,Debian > Bullseye中最新版本为openjdk-17</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo apt install -y openjdk-17-jdk'''</p>|}</li><li><p>安装完后可以查看下Java的版本</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''java --version'''</p>|}</li><li><p>编写Java版本的'''hello_world.java'''</p>{| class="wikitable" style="width:800px;" |-|<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("Hello World!");</p>::<p>}</p><p>}</p>|}</li><li><p>然后编译运行'''hello_world.java'''</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''javac hello_world.java'''</p><p>orangepi@orangepi:~$ '''java hello_world'''</p><p>Hello World!</p>|}</li></ol></li></ol>
# 首先准备一张16GB或更大容量的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的资料下载页面''']下载Android12的镜像## 打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择'''TF卡和eMMC启动镜像'''文件夹中的镜像进行下载=== Debian Bookworm系统 ===
[[File<ol style="list-style-type:mediadecimal;"><li><p>Debian Bookworm默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序</350842f0522fe231ed1d086428f064e5p><ol style="list-style-type: lower-alpha;"><li><p>gcc的版本如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''gcc --version'''</p><p>gcc (Debian 12.2.0-14) 12.2.0</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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''vim hello_world.c'''</p><p>#include <stdio.png]]h></p>
# 进入'''TF卡和eMMC启动镜像'''文件夹后可以看到下面三个镜像,它们的区别是:<p>int main(void)</p>## 第一个镜像专门用于HDMI显示的,支持8K显示,如果不使用LCD屏幕,请下载不带lcd的镜像<p>{</p>### 如果要使用lcd屏幕,请选择带lcd的镜像### 带box的镜像是专用于电视盒子的镜像::<p>printf("Hello World!\n");</p>
[[File:media:<p>return 0;</p><p>}</p>|}</li><li><p>然后编译运行'''hello_world.c'''</p>{| class="wikitable" style="width:800px;" |-|<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>Debian Bookworm默认安装有Python3</p><ol style="list-style-type: lower-alpha;"><li><p>Python具体版本如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''python3'''</d8100e59a8e2115f5da066c8bd149170p><p>'''Python 3.11.png]2''' (main, Mar 13 2023, 12:18:29) [GCC 12.2.0]on linux</p><p>Type "help", "copyright", "credits" or "license" for more information.</p><p>>>></p>|}{| class="wikitable" style="background-color:# 然后使用解压软件解压下载的Android镜像的压缩包,解压后的文件中,以“ffffdc;width:800px;" |-| <big><p>'''使用Ctrl+D快捷键可退出python的交互模式。'''</p></big>|}</li><li><p>编写Python语言的'''hello_world.img” 结尾的文件就是Android镜像文件,大小在1GB以上py'''程序</p>{| class="wikitable" style="width:800px;" # 然后使用解压软件解压|-|<p>orangepi@orangepi:~$ '''SDDiskTool_v1vim hello_world.72py'''</p><p>print('Hello World!')</p>|}</li><li><p>运行'''hello_world.zippy''',此软件无需安装,在解压后的文件夹中找到的结果如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''SD_Firmware_Toolpython3 hello_world.exepy'''打开即可</p><p>Hello World!</p>|}</li></ol></li>[[File<li><p>Debian Bookworm默认没有安装Java的编译工具和运行环境</p><ol style="list-style-type: lower-alpha;"><li><p>可以使用下面的命令安装openjdk,Debian Bookworm中最新版本为openjdk-17</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:media~$ '''sudo apt install -y openjdk-17-jdk'''</0368da194342b31d165057aa92eda2ad.png]]p>|}</li><li><p>安装完后可以查看下Java的版本</p>{| class="wikitable" style="width:800px;" |-|# 打开<p>orangepi@orangepi:~$ '''SDDiskTooljava --version'''后,如果TF卡识别正常,会在“</p>|}</li><li><p>编写Java版本的'''选择可移动磁盘设备hello_world.java'''”一栏中显示插入的磁盘设备,</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的vim hello_world.java''',如果没有显示可以尝试拔插下TF卡</p><p>public class hello_world</p><p>{</p>::<p>public static void main(String[[File] args)</p>::<p>{</p>::::<p>System.out.println("Hello World!");</p>::media<p>}</p><p>}</p>|}</li><li><p>然后编译运行'''hello_world.java'''</b56645d0ada2cc60a79509b0ea711638p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''javac hello_world.png]]java'''</p><p>orangepi@orangepi:~$ '''java hello_world'''</p><p>Hello World!</p>|}</li></ol></li></ol>
# 确认完盘符后,可以先格式化下TF卡,点击'''SDDiskTool'''中的'''恢复磁盘'''按钮即可,也可使用前面提到的'''SD Card Formatter'''进行TF卡的格式化
[[File:media<span id="ubuntu-focal系统"></74fd8a52c97e0b0f86bb7228291fbe6a.png]]span>
# 然后开始将Android镜像写入TF卡## 首先在“'''选择功能模式'''”中勾选“'''SD启动'''”## 然后在“'''选择升级固件'''”一栏中选择Android镜像的路径## 最后点击“'''开始创建'''”按钮就会开始烧录Android镜像到TF卡中=== Ubuntu Focal系统 ===
[[File<ol style="list-style-type:mediadecimal;"><li><p>Ubuntu Focal默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序</f9d8ef3d894b68734db549f3e25c7ee4p><ol style="list-style-type: lower-alpha;"><li><p>gcc的版本如下所示</p>{| class="wikitable" style="width:800px;" |-|<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.png]]</p>|}</li><li><p>编写C语言的'''hello_world.c'''程序</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''vim hello_world.c'''</p><p>#include <stdio.h></p>
# 烧录完后即可退出SDDiskTool软件,然后就可以把TF卡从电脑中拔出来插到开发板中启动了<p>int main(void)</p><p>{</p>::<p>printf("Hello World!\n");</p>
[[File:media:<p>return 0;</p><p>}</p>|}</li><li><p>然后编译运行'''hello_world.c'''</p>{| class="wikitable" style="width:800px;" |-|<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="list-style-type: lower-alpha;"><li><p>Python3具体版本如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''python3'''</p><p>Python 3.8.10 (default, Nov 14 2022, 12:59:47)</5616b51a8ee998dbc83ea26d5388515dp><p>[GCC 9.png]4.0]on linux</p><p>Type "help", "copyright", "credits" or "license" for more information.</p><span idp>>>></p>|}{| class="wikitable" style="烧录android镜像烧录到emmc中的方法background-color:#ffffdc;width:800px;"|-| <big><p>'''使用Ctrl+D快捷键可退出python的交互模式。'''</p></big>|}</li><li><p>编写Python语言的'''hello_world.py'''程序</spanp>{| class="wikitable" style= 烧录Android镜像烧录到eMMC中的方法 "width:800px;" |-|<p>orangepi@orangepi:~$ '''vim hello_world.py'''</p><p>print('Hello World!')</p>|}</li><li><p>运行'''hello_world.py'''的结果如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''python3 hello_world.py'''</p><span idp>Hello World!</p>|}</li></ol></li><li><p>Ubuntu Focal默认没有安装Java的编译工具和运行环境</p><ol style="通过typelist-c线将androidstyle-镜像烧录到emmc中的方法type: lower-alpha;"><li><p>可以使用下面的命令安装openjdk-17</spanp>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo apt install -y openjdk-17-jdk'''</p>|}</li><li><p>安装完后可以查看下Java的版本</p>{| class= 通过Type"wikitable" style="width:800px;" |-C线将Android 镜像烧录到eMMC中的方法 =|<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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''注意,下面所有的操作都是在Windows电脑中进行的。vim hello_world.java'''</p><p>public class hello_world</p># 开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:<p>{</p>::<p>public static void main(String[] args)</p>[[File:media:<p>{</509c9654850ee23aaabfc364310b90d9p>::::<p>System.png]]out.println("Hello World!");</p>::<p>}</p><p>}</p>|}</li><li><p>然后编译运行'''hello_world.java'''</p>{| class="wikitable" style="width:800px;" # 还需要准备一根品质良好的Type|-C接口的数据线|<p>orangepi@orangepi:~$ '''javac hello_world.java'''</p><p>orangepi@orangepi:~$ '''java hello_world'''</p><p>Hello World!</p>|}</li></ol></li></ol>
[[File:media<span id="ubuntu-jammy系统"></d84ad9c1e0e447425ddd86cfefafca1e.png]]span>
# 然后从[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启动镜像'''文件夹中的镜像进行下载=== Ubuntu Jammy系统 ===
[[File<ol start="1" style="list-style-type:mediadecimal;"><li><p>Ubuntu Jammy默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序</350842f0522fe231ed1d086428f064e5p><ol style="list-style-type: lower-alpha;"><li><p>gcc的版本如下所示</p>{| class="wikitable" style="width:800px;" |-|<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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''vim hello_world.c'''</p><p>#include <stdio.png]]h></p>
# 进入'''TF卡和eMMC启动镜像'''文件夹后可以看到下面三个镜像,它们的区别是:<p>int main(void)</p>## 第一个镜像专门用于HDMI显示的,支持8K显示,如果不使用LCD屏幕,请下载不带lcd的镜像<p>{</p>### 如果要使用lcd屏幕,请选择带lcd的镜像### 带box的镜像是专用于电视盒子的镜像::<p>printf("Hello World!\n");</p>
[[File:media:<p>return 0;</d8100e59a8e2115f5da066c8bd149170p><p>}</p>|}</li><li><p>然后编译运行'''hello_world.png]]c'''</p>{| class="wikitable" style="width:800px;" |-# 然后使用解压软件解压下载的Android镜像的压缩包,解压后的文件中,以“.img” 结尾的文件就是Android镜像文件,大小在1GB以上|# 然后用解压软件解压<p>orangepi@orangepi:~$ '''DriverAssitant_v5.12gcc -o hello_world hello_world.zipc''',再在解压后的文件夹中找到</p><p>orangepi@orangepi:~$ '''DriverInstall.exe/hello_world'''可执行文件并打开即可</p><p>Hello World!</p>|}[[File</li></ol></li><li><p>Ubuntu Jammy默认安装有Python3</p><ol style="list-style-type: lower-alpha;"><li><p>Python3具体版本如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:media~$ '''python3'''</3abe751bd0c4c5e9be6a83f839a1e4c2p><p>Python '''3.10.png]4''' (main, Apr 2 2022, 09:04:19) [GCC 11.2.0]on linux</p><p>Type "help", "copyright", "credits" or "license" for more information.</p><p>>>></p>|}{| class="wikitable" style="background-color:# 打开ffffdc;width:800px;" |-| <big><p>'''DriverInstall.exe使用Ctrl+D快捷键可退出python的交互模式。'''后安装瑞芯微驱动的步骤如下所示</p></big>## 点击“|}</li><li><p>编写Python语言的'''驱动安装hello_world.py'''”按钮程序</p>{| class="wikitable" style="width:800px;" |-|[[File<p>orangepi@orangepi:media~$ '''vim hello_world.py'''</p><p>print('Hello World!')</bc5fc637f8588abefa4f2ff7e0dc2683.png]]p>|}</li># 等待一段时间后,会弹出窗口提示“<li><p>运行'''安装驱动成功hello_world.py'''”,然后点击的结果如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''“确定”python3 hello_world.py'''按钮即可</p><p>Hello World!</p>[[File|}</li></ol></li><li><p>Ubuntu Jammy默认没有安装Java的编译工具和运行环境</p><ol style="list-style-type:medialower-alpha;"><li><p>可以使用下面的命令安装openjdk-18</48720c90a698617c0f884059ac1d6885.png]]p>{| class="wikitable" style="width:800px;" |-|# 然后解压<p>orangepi@orangepi:~$ '''RKDevTool_Release_v2.96.zipsudo apt install -y openjdk-18-jdk''',此软件无需安装,在解压后的文件夹中找到 </p>|}</li><li><p>安装完后可以查看下Java的版本</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''RKDevTooljava --version'''打开即可</p><p>openjdk 18-ea 2022-03-22</p><p>OpenJDK Runtime Environment (build 18-ea+36-Ubuntu-1)</p>[[File:media<p>OpenJDK 64-Bit Server VM (build 18-ea+36-Ubuntu-1, mixed mode, sharing)</c20745924f6e330c0bc60639e5ee8c1b.png]]p>|}</li># 打开<li><p>编写Java版本的'''RKDevToolhello_world.java''' 烧录工具后,因为电脑此时还没有通过Type</p>{| class="wikitable" style="width:800px;" |-C线连接上开发板,所以左下角会提示“|<p>orangepi@orangepi:~$ '''没有发现设备vim hello_world.java'''”</p><p>public class hello_world</p><p>{</p>::<p>public static void main(String[[File] args)</p>::media<p>{</ca4b9e37ca9d9cce3f888c4278bd3726p>::::<p>System.png]]out.println("Hello World!");</p>::<p>}</p><p>}</p>|}</li><li><p>然后编译运行'''hello_world.java'''</p># 然后开始烧录Android镜像到eMMC中{| class="wikitable" style="width:800px;" ## 首先通过Type|-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示|[[File<p>orangepi@orangepi:media~$ '''javac hello_world.java'''</293482d42e80a8b3e2962b40e834bb41.png]]p><p>orangepi@orangepi:~$ '''java hello_world'''</p><p>Hello World!</p>|}# 然后确保开发板没有插入TF卡,没有连接电源</li></ol>## 然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</li></ol>
[[File:media<span id="qt的安装方法"></b5c295a072c9e13167488051a2a2cb04.png]]span>
# 然后给开发板接上Type-C接口的电源,并上电== QT的安装方法 ==
[[File<ol style="list-style-type:mediadecimal;"><li><p>使用下面的脚本可以安装QT5和QT Creator</1f65f9666af69c591813b5597e806ccbp>{| class="wikitable" style="width:800px;" |-|<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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''install_qt.sh'''</p><p>......</p><p>QMake version 3.1</p><p>Using Qt version '''<span style="color:#FF0000">5.12.8</span>''' in /usr/lib/aarch64-linux-gnu</p>|}</li><li><p>Ubuntu22.04自带的QT版本为'''5.15.3'''</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''install_qt.sh'''</p><p>......</p><p>QMake version 3.1</p><p>Using Qt version '''<span style="color:#FF0000">5.15.3</span>''' in /usr/lib/aarch64-linux-gnu</p>|}</li><li><p>Debian11自带的QT版本为'''5.15.2'''</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''install_qt.sh'''</p><p>......</p><p>QMake version 3.1</p><p>Using Qt version '''<span style="color:#FF0000">5.15.2</span>''' in /usr/lib/aarch64-linux-gnu</p>|}</li><li><p>Debian12自带的QT版本为'''5.15.8'''</p>{| class="wikitable" style="width:800px;" |-|orangepi@orangepi:~$ '''install_qt.png]]sh'''
# 如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示“'''发现一个MASKROM设备'''”......
[[File:media/18276e05fbda6e29cb92f7582ba887d4QMake version 3.png]]1
# 然后点击烧录工具的“Using Qt version '''升级固件<span style="color:#FF0000">5.15.8</span>'''”一栏in /usr/lib/aarch64-linux-gnu
|}</li></ol></li><li><p>然后在'''Applications'''中就可以看到QT Creator的启动图标</p><p>[[File:plus-5-626.png]]</p><p>也可以使用下面的命令打开QT Creator</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''qtcreator'''</p>|}{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''<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></big>|}</li><li><p>QT Creator打开后的界面如下所示</p><p>[[File:plus-5-627.png]]</p></li><li><p>QT Creator的版本如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>QT Creator在'''Ubuntu20.04'''中的默认版本如下所示</p><p>[[File:plus-5-628.png]]</p></li><li><p>QT Creator在'''Ubuntu22.04'''中的默认版本如下所示</p><p>[[File:plus-5-629.png]]</p></li><li><p>QT Creator在'''Debian11'''中的默认版本如下所示</p><p>[[File:plus-5-630.png]]</p></li><li><p>QT Creator在'''Debian12'''中的默认版本如下所示</p><p>[[File:plus-5-630-1.png]]</p></li></ol></li><li><p>然后设置下QT</p><ol style="list-style-type: lower-alpha;"><li><p>首先打开'''Help'''->'''About Plugins...'''</p><p>[[File:mediaplus-5-631.png]]</p></li><li><p>然后去掉'''ClangCodeModel'''的那个勾</3e9bea3f77dce0b408bac9df3a5b416bp><p>[[File:plus-5-632.png]]</p></li><li><p>'''<span style="color:#FF0000">设置完后需要重启下QT Creator</span>'''</p></li><li><p>然后确保QT Creator使用的GCC编译器,如果默认为Clang,请修改为GCC</p>
{| class="wikitable" style="background-color:# 接着点击“ffffdc;width:800px;" |-| <big>'''固件Debian12请跳过这步。'''</big>|}<p>[[File:plus-5-633.png]]</p><p>[[File:plus-5-634.png]]</p></li></ol></li><li><p>然后就可以打开一个示例代码</p><p>[[File:plus-5-635.png]]</p></li><li><p>点击示例代码后会自动打开对应的说明文档,可以仔细看下其中的使用说明</p><p>[[File:plus-5-636.png]]</p></li><li><p>然后点击下'''Configure Project'''</p><p>[[File:plus-5-637.png]]</p></li><li><p>然后点击左下角的绿色三角形编译运行下示例代码</p><p>[[File:plus-5-638.png]]</p></li><li><p>等待一段时间后,会弹出下图所示的界面,此时就说明QT能正常编译运行</p><p>[[File:plus-5-639.png]]</p></li><li><p>参考资料</p>{| class="wikitable" style="width:800px;" |-|'''https://wiki.qt.io/Install_Qt_5_on_Ubuntu'''”按钮选择需要烧录的Android镜像的路径
[[File'''https:media/c3d19212664a98ca47af3920fe1bf596/download.qt.png]]io/archive/qtcreator'''
# 最后点击“'''升级https://download.qt.io/archive/qt'''”按钮就会开始烧录,烧录过程中的log如下图所示。烧录完成后Android系统会自动启动。|}</li></ol>
[[File:media<span id="ros安装方法"></fddaf8b13961a864c9ec6f66552ac584.png]]span>
<span id="通过tf卡将android-12镜像烧录到emmc中的方法"></span>=== 通过TF卡将Android 12镜像烧录到eMMC中的方法 =ROS安装方法 ==
'''注意,下面所有的操作都是在Windows电脑中进行的。'''<span id="ubuntu20.04安装ros-1-noetic的方法"></span>=== Ubuntu20.04安装ROS 1 Noetic的方法 ===
# 开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:ROS 1当前活跃的版本如下所示,推荐版本为'''Noetic Ninjemys'''
::[[File:media/509c9654850ee23aaabfc364310b90d9plus-5-640.png]]
# 还需要准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''或以上,建议使用闪迪等品牌的TF卡# 然后使用读卡器把TF卡插入电脑# 然后从::[[httpFile://www.orangepiplus-5-641.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面'''png]下载SDDiskTool烧写工具,'''请确保SDDiskTool工具的版本为最新的v1.72'''# 然后从[http://www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载Android的镜像## 打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择'''TF卡和eMMC启动镜像'''文件夹中的镜像进行下载
[[File:media:{| class="wikitable" style="width:800px;" |-|'''http:/350842f0522fe231ed1d086428f064e5/docs.ros.png]]org'''
# 进入'''TF卡和eMMC启动镜像https://wiki.ros.org/Distributions'''文件夹后可以看到下面三个镜像,它们的区别是:## 第一个镜像专门用于HDMI显示的,支持8K显示,如果不使用LCD屏幕,请下载不带lcd的镜像### 如果要使用lcd屏幕,请选择带lcd的镜像### 带box的镜像是专用于电视盒子的镜像|}
<ol start="2" style="list-style-type: decimal;"><li><p>ROS 1 '''Noetic Ninjemys'''官方安装文档链接如下所示:</p>{| class="wikitable" style="width:800px;" |-|'''http://wiki.ros.org/noetic/Installation/Ubuntu'''|}</li><li><p>ROS '''Noetic Ninjemys'''官方安装文档中Ubuntu推荐使用Ubuntu20.04,所以请确保开发板使用的系统为'''Ubuntu20.04桌面版系统'''</p>{| class="wikitable" style="width:800px;" |-|'''http://wiki.ros.org/noetic/Installation'''|}<p>[[File:media/d8100e59a8e2115f5da066c8bd149170plus-5-642.png]]</p></li><li><p>然后使用下面的脚本安装ros1</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi5plus:~$ '''install_ros.sh ros1'''</p>|}</li><li><p>使用ROS工具前,首先需要初始化下rosdep,然后编译源码时就能快速的安装一些系统依赖和一些ROS中的核心组件</p></li>
{| class="wikitable" style="background-color:# 然后使用解压软件解压下载的Android镜像的压缩包,解压后的文件中,以“.img” 结尾的文件就是Android镜像文件,大小在1GB以上ffffdc;width:800px;" # 然后使用解压软件解压|-| <big>'''SDDiskTool_v1.72.zip''',此软件无需安装,在解压后的文件夹中找到'''SD_Firmware_Tool.exe<span style="color:#FF0000">注意,运行下面的命令需要确保开发板能正常访问github,否则会由于网络问题而报错。</span>'''打开即可
[[File:media'''install_ros.sh脚本会尝试修改/etc/0368da194342b31d165057aa92eda2adhosts并自动运行下面的命令。但是这种方法无法保证每次都能正常访问github,如果install_ros.png]]sh安装完ros1后有提示下面的错误,请自己想其它办法让开发板的linux系统能正常访问github,然后再手动运行下面的命令。'''
# 打开'''SDDiskToolhttps://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml'''后,如果TF卡识别正常,会在“'''选择可移动磁盘设备'''”一栏中显示插入的磁盘设备,'''请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的''',如果没有显示可以尝试拔插下TF卡
[[File'''Hit https:media/b56645d0ada2cc60a79509b0ea711638/raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.png]]yaml'''
# 确认完盘符后,可以先格式化下TF卡,点击'''SDDiskTool'''中的'''恢复磁盘'''按钮即可,也可使用前面提到的'''SD Card Formatter<span style="color:#FF0000">ERROR: error loading sources list:</span>'''进行TF卡的格式化
[[File:media:'''<span style="color:#FF0000">The read operation timed out</span>'''</74fd8a52c97e0b0f86bb7228291fbe6a.png]]big>|}
# 然后开始将Android镜像写入TF卡{| class="wikitable" style="width:800px;" ## 首先在'''“选择可移动磁盘设备”'''下面确认显示的盘符为TF卡对应的盘符|-## 然后在“'''选择功能模式'''”中选择'''“固件升级”'''## 然后在“'''选择升级固件'''”一栏中选择Android固件的路径|## 最后点击“orangepi@orangepi:~$ '''开始创建source /opt/ros/noetic/setup.bash'''”按钮就会开始烧录
[[Fileorangepi@orangepi:media/b2d877a351549f41d6dae7ae22d96cb4.png]]~$ '''sudo rosdep init'''
# 烧录完成后的显示如下图所示,然后就可以退出SDDiskToolWrote /etc/ros/rosdep/sources.list.d/20-default.list
[[FileRecommended:media/c999fc9ee19372b1b76a2d69848537b5.png]]please run
# 然后把TF卡从电脑中拔出来插到开发板中,开发板上电启动后就会自动开始将TF卡中的Android镜像烧录到开发板的eMMC中
# 如果开发板连接了HDMI显示器,还可以从HDMI显示器中看到烧录Android镜像到eMMC中的进度条
[[File:media/21725ffae6d6578fbb4ae157698a7624.png]]:rosdep update
# 当HDMI显示器显示如下信息时,说明烧录Android镜像到eMMC中已完成,此时就可以拔出TF卡,然后eMMC中的安卓系统就会开始启动。orangepi@orangepi:~$ '''rosdep update'''
[[File:mediareading in sources list data from /14acd8efbf40564fe8111876419a3667etc/ros/rosdep/sources.list.png]]d
<span id="烧录android镜像到spiflashnvmeHit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-ssd中的方法"></span>== 烧录Android镜像到SPIFlash+NVMe SSD中的方法 ==homebrew.yaml
'''注意,下面所有的操作都是在Windows电脑中进行的。'''Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
# 首先需要准备一个M-Key 2280规格的NVMe SSD固态硬盘,开发板MHit https://raw.2插槽PCIe接口的规格为PCIe3githubusercontent.0x4。com/ros/rosdistro/master/rosdep/python.yaml
[[FileHit https:media/6b09ed51c8f4954ed95742cd63b21c74/raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.png]]yaml
# 然后把NVMe SSD插入开发板的MHit https://raw.2 PCIe接口,并固定好githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
[[FileQuery rosdistro index https:media/eff81166492ce92b30912818342b0d5b/raw.githubusercontent.com/ros/rosdistro/master/index-v4.png]]yaml
# SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置Skip end-of-life distro "ardent"
[[File:media/815ee597fcdbd832b687cc3df51795b6.png]]Skip end-of-life distro "bouncy"
# 还需要准备一根品质良好的TypeSkip end-C接口的数据线of-life distro "crystal"
[[File:media/d84ad9c1e0e447425ddd86cfefafca1e.png]]Skip end-of-life distro "dashing"
# 然后从[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的资料下载页面''']下载Android12的镜像## 打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择'''SPIFlashSkip end-NVME SSD启动镜像'''文件夹中的镜像进行下载of-life distro "eloquent"
[[File:media/c184a625bb30b4a53c4d07e4c6f7814a.png]]Add distro "foxy"
# 进入'''SPIFlash-NVME SSD启动镜像'''文件夹后可以看到下面三个镜像,它们的区别是:## 第一个镜像专门用于HDMI显示的,支持8K显示,如果不使用LCD屏幕,请下载不带lcd的镜像### 如果要使用lcd屏幕,请选择带lcd的镜像### 带box的镜像是专用于电视盒子的镜像Add distro "galactic"
[[File:media/4b7258a8692d675d4aaad728c7dd09fa.png]]Skip end-of-life distro "groovy"
# 然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可Add distro "humble"
[[File:media/3abe751bd0c4c5e9be6a83f839a1e4c2.png]]Skip end-of-life distro "hydro"
# 打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示## 点击“'''驱动安装'''”按钮Skip end-of-life distro "indigo"
[[File:media/bc5fc637f8588abefa4f2ff7e0dc2683.png]]Skip end-of-life distro "jade"
# 等待一段时间后,会弹出窗口提示“'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可Skip end-of-life distro "kinetic"
[[File:media/48720c90a698617c0f884059ac1d6885.png]]Skip end-of-life distro "lunar"
# 然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可Add distro "melodic"
[[File:media/c20745924f6e330c0bc60639e5ee8c1b.png]]Add distro "noetic"
# 打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示“'''没有发现设备'''”Add distro "rolling"
updated cache in /home/orangepi/.ros/rosdep/sources.cache|}</ol><ol start="6" style="list-style-type: decimal;"><li><p>然后在'''桌面'''中打开一个命令行终端窗口,再使用'''test_ros.sh'''脚本可以启动一个小海龟的例程来测试下ROS是否能正常使用</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''test_ros.sh'''</p>|}</li><li><p>运行完'''test_ros.sh'''脚本后,会弹出下图所示的一个小海龟</p><p>[[File:media/ca4b9e37ca9d9cce3f888c4278bd3726plus-5-643.png]]</p></li><li><p>然后请保持刚才打开终端窗口在最上面</p></li>
# 然后开始烧录Android镜像到SPIFlash+NVMe SSD中[[File:plus-5-644.png]]</ol><ol start="9" style="list-style-type: decimal;"><li><p>此时按下键盘上的方向按键就可以控制小海龟上下左右移动了</p>## 首先通过Type<p>[[File:plus-C数据线连接好开发板与Windows电脑,开发板Type5-C接口的位置如下图所示645.png]]</p></li></ol>
[[File:media<span id="ubuntu20.04安装ros-2-galactic的方法"></293482d42e80a8b3e2962b40e834bb41.png]]span>
# 确保开发板没有插入TF和eMMC模块,没有连接电源## 然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:=== Ubuntu20.04安装ROS 2 Galactic的方法 ===
<ol style="list-style-type: decimal;"><li><p>ROS 2当前活跃的版本如下所示,推荐版本为'''Galactic Geochelone'''</p><p>[[File:mediaplus-5-646.png]]</b5c295a072c9e13167488051a2a2cb04p><p>[[File:plus-5-647.png]]</p>{| class="wikitable" style="width:800px;" |-|'''http://docs.ros.org'''
# 然后给开发板接上Type'''http://docs.ros.org/en/galactic/Releases.html'''|}</li><li><p>ROS 2 '''Galactic Geochelone'''官方安装文档链接如下所示:</p>{| class="wikitable" style="width:800px;" |-C接口的电源,并上电,然后就可以松开MaskROM按键了|<p>'''docs.ros.org/en/galactic/Installation.html'''</p>[[File<p>'''http:media/1f65f9666af69c591813b5597e806ccb/docs.ros.org/en/galactic/Installation/Ubuntu-Install-Debians.png]]html'''</p>|}</li><li><p>ROS 2 '''Galactic Geochelone'''官方安装文档中Ubuntu Linux推荐使用Ubuntu20.04,所以请确保开发板使用的系统为'''<span style="color:# 如果前面的步骤顺利,此时开发板会进入FF0000">Ubuntu20.04桌面版系统</span>'''。安装ROS 2有几种方法,下面演示下通过'''Debian packages'''的方式来安装ROS 2 '''Galactic Geochelone''MASKROM'</p></li><li><p>使用''模式,在烧录工具的界面上会提示“'install_ros.sh'''脚本可以安装ros2</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''发现一个MASKROM设备install_ros.sh ros2'''”</p>|}</li><li><p>'''install_ros.sh'''脚本安装完ros2后会自动运行下'''ros2 -h'''命令,如果能看到下面的打印,说明ros2安装完成</p>{| class="wikitable" style="width:800px;" |-|<p>usage: ros2 [-h] Call `ros2 <command> -h` for more detailed usage. ...</p>
[[File:media/18276e05fbda6e29cb92f7582ba887d4.png]]
# 然后点击烧录工具的“'''升级固件'''”一栏<p>ros2 is an extensible command-line tool for ROS 2.</p>
[[File:media/3e9bea3f77dce0b408bac9df3a5b416b.png]]
# 接着点击“'''固件'''”按钮选择需要烧录的Android镜像<p>optional arguments:</p>:<p>-h, --help show this help message and exit</p>
[[File:media/c3d19212664a98ca47af3920fe1bf596.png]]
# 最后点击“'''升级'''”按钮就会开始烧录,烧录的过程如下图所示,可以看到,首先会烧录固件到SPIFlash中,然后烧录固件到PCIE中。烧录完成后Android系统会自动启动。<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>
[[File:media/c6f65462132a7004e1c5d4c6056d8ac7.png]]
:<span idp>Call `ros2 <command> -h` for more detailed usage.</p>|}</li><li><p>然后可以使用 '''test_ros.sh'''脚本测试下ROS 2是否安装成功,如果能看到下面的打印,说明ROS 2能正常运行</p>{| class="wikitable" style="烧录orangewidth:800px;" |-pi-os-droid镜像到tf卡中的方法"|<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</spanp>{| class="wikitable" style= 烧录Orange Pi OS (Droid)镜像到TF卡中的方法 ="width:800px;" |-|<p>orangepi@orangepi:~$ '''source /opt/ros/galactic/setup.bash'''</p><p>orangepi@orangepi:~$ '''ros2 run rviz2 rviz2'''</p>|}<div class="figure">
'''注意,下面所有的操作都是在Windows电脑中进行的。'''[[File:plus-5-648.png]]
# 首先准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为</div></li><li><p>ROS的使用方法请参考下ROS 2的文档</p>{| class="wikitable" style="width:800px;" |-|'''class10'''或以上,建议使用闪迪等品牌的TF卡# 然后使用读卡器把TF卡插入电脑# 然后从[http://wwwdocs.orangepiros.cnorg/htmlen/serviceAndSupportgalactic/indexTutorials.html '''Orange Pi的资料下载页面''']下载SDDiskTool烧写工具,'''请确保SDDiskTool工具的版本为最新的v1.72'''# 然后从[http:|}</li></www.orangepi.cn/html/serviceAndSupport/index.html '''Orange Pi的资料下载页面''']下载Orange Pi OS (Droid)的镜像,打开Orange Pi OS (Droid)镜像的下载链接后可以看到下面两种类型的镜像,请选择下面的镜像ol>
[[File:media<span id="ubuntu22.04安装ros-2-humble的方法"></f21092f6cc6b075f4dc1a24178a83e0f.png]]span>
# 然后使用解压软件解压下载的Orange Pi OS (Droid)镜像的压缩包,解压后的文件中,以“=== Ubuntu22.img” 结尾的文件就是Orange Pi OS (Droid)镜像文件,大小在1GB以上# 然后使用解压软件解压'''SDDiskTool_v1.72.zip''',此软件无需安装,在解压后的文件夹中找到'''SD_Firmware_Tool.exe'''打开即可04安装ROS 2 Humble的方法 ===
[[File<ol style="list-style-type: decimal;"><li><p>使用'''install_ros.sh'''脚本可以安装ros2</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:media~$ '''install_ros.sh ros2'''</p>|}</0368da194342b31d165057aa92eda2adli><li><p>'''install_ros.png]sh'''脚本安装完ros2后会自动运行下'''ros2 -h'''命令,如果能看到下面的打印,说明ros2安装完成</p>{| class="wikitable" style="width:800px;" |-|<p>usage: ros2 [-h]Call `ros2 <command> -h` for more detailed usage. ...</p>
# 打开'''SDDiskTool'''后,如果TF卡识别正常,会在“'''选择可移动磁盘设备'''”一栏中显示插入的磁盘设备,'''请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的''',如果没有显示可以尝试拔插下TF卡
[[File:media<p>ros2 is an extensible command-line tool for ROS 2.</b56645d0ada2cc60a79509b0ea711638.png]]p>
# 确认完盘符后,可以先格式化下TF卡,点击'''SDDiskTool'''中的'''恢复磁盘'''按钮即可,也可使用前面提到的'''SD Card Formatter'''进行TF卡的格式化
[[File<p>optional arguments:media</74fd8a52c97e0b0f86bb7228291fbe6a.png]]p>:<p>-h, --help show this help message and exit</p>
# 然后开始将Orange Pi OS (Droid)镜像写入TF卡
## 首先在“'''选择功能模式'''”中勾选“'''SD启动'''”
## 然后在“'''选择升级固件'''”一栏中选择Orange Pi OS (Droid)镜像的路径
## 最后点击“'''开始创建'''”按钮就会开始烧录Orange Pi OS (Droid)镜像到TF卡中
[[File<p>Commands:media</f9d8ef3d894b68734db549f3e25c7ee4.png]]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>
# 烧录完后即可退出SDDiskTool软件,然后就可以把TF卡从电脑中拔出来插到开发板中启动了
:<p>Call `ros2 <command> -h` for more detailed usage.</p>|}</li><li><p>然后可以使用 '''test_ros.sh'''脚本测试下ROS 2是否安装成功,如果能看到下面的打印,说明ROS 2能正常运行</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi5plus:~$ '''test_ros.sh'''</p><p>[INFO] [1671174101.200091527] [talker]: Publishing: 'Hello World: 1'</p><p>[INFO] [1671174101.235661048] [Filelistener]:mediaI heard: [Hello World: 1]</5616b51a8ee998dbc83ea26d5388515dp><p>[INFO] [1671174102.png199572327][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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''source /opt/ros/humble/setup.bash'''</p><p>orangepi@orangepi:~$ '''ros2 run rviz2 rviz2'''</p>|}
<span iddiv class="烧录orange-pi-os-droid镜像到emmc中的方法figure"></span>== 烧录Orange Pi OS (Droid)镜像到eMMC中的方法 ==
<span id="通过type[[File:plus-c线将orange5-pi-os-droid-镜像烧录到emmc"></span>=== 通过Type-C线将Orange Pi OS (Droid) 镜像烧录到eMMC ===649.png]]
</div></li><li><p>参考文档</p>{| class="wikitable" style="width:800px;" |-|<p>'''注意,下面所有的操作都是在Windows电脑中进行的。http://docs.ros.org/en/humble/index.html'''</p><p>'''http://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html'''</p>|}</li></ol>
# 开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:== 安装内核头文件的方法 ==
[[File<ol style="list-style-type: decimal;"><li><p>OPi发布的Linux镜像默认自带了内核头文件的deb包,存放的位置为'''/opt/'''</p>{| class="wikitable" style="width:media800px;" |-|<p>orangepi@orangepi5plus:~$ '''ls /509c9654850ee23aaabfc364310b90d9opt/linux-headers*'''</p><p>/opt/linux-headers-legacy-rockchip-rk3588_x.x.x_arm64.png]]deb</p>|}</li><li><p>使用下面的命令可以安装内核头文件的deb包</p>{| class="wikitable" style="background-color:# 还需要准备一根品质良好的Typeffffdc;width:800px;" |-| <big><p>'''内核头文件deb包的名字需要替换为实际的名字,请不要照抄。'''</p></big>|}{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo dpkg -i /opt/linux-headers-legacy-rockchip-rk3588_1.x.x_arm64.deb'''</p>|}</li><li><p>安装完后在'''/usr/src'''下就能看到内核头文件所在的文件夹</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ls /usr/src'''</p><p>linux-headers-5.10.110-rockchip-C接口的数据线rk3588</p>|}</li>[[File<li><p>然后可以编写一个hello内核模块测试下内核头文件</p><ol style="list-style-type:medialower-alpha;"><li><p>首先编写hello内核模块的代码,如下所示:</d84ad9c1e0e447425ddd86cfefafca1ep>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''vim hello.png]]c'''</p><p>#include <linux/init.h></p><p>#include <linux/module.h></p>
# 然后从[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的资料下载页面''']下载Orange Pi OS (Droid)的镜像
[[File<p>static int hello_init(void)</p><p>{</p>::media<p>printk("Hello Orange Pi -- init\n");</f21092f6cc6b075f4dc1a24178a83e0f.png]]p>
# 然后使用解压软件解压下载的Orange Pi OS (Droid)镜像的压缩包,解压后的文件中,以“.img” 结尾的文件就是Orange Pi OS (Droid)镜像文件,大小在1GB以上
# 然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可
[[File:media:<p>return 0;</p><p>}</p><p>static void hello_exit(void)</p><p>{</p>::<p>printk("Hello Orange Pi -- exit\n");</3abe751bd0c4c5e9be6a83f839a1e4c2.png]]p>
# 打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示
## 点击“'''驱动安装'''”按钮
[[File:media:<p>return;</p><p>}</bc5fc637f8588abefa4f2ff7e0dc2683.png]]p>
# 等待一段时间后,会弹出窗口提示“'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可
[[File:media<p>module_init(hello_init);</48720c90a698617c0f884059ac1d6885.png]]p><p>module_exit(hello_exit);</p>
# 然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可
<p>MODULE_LICENSE("GPL");</p>|}</li><li><p>然后编写编译hello内核模块的Makefile文件,如下所示:</p>{| class="wikitable" style="width:800px;" |-|<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>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''如果自己复制的代码这里编译如果有问题,请去[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html 官方工具]中下载源码然后上传到开发板的Linux系统中测试。'''</p></big><p>[[File:mediaplus-5-650.png]]</p>|}{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''make'''</p><p>make -C /lib/modules/c20745924f6e330c0bc60639e5ee8c1b5.png10.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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ls *.ko'''</p><p>hello.ko</p>|}</li><li><p>使用'''insmod'''命令可以将'''hello.ko'''内核模块插入内核中</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo insmod hello.ko'''</p>|}</li><li><p>然后使用'''demsg'''命令可以查看下'''hello.ko'''内核模块的输出,如果能看到下面的输出说明'''hello.ko'''内核模块加载正确</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''dmesg | grep "Hello"'''</p><p>[ 2871.893988] '''Hello Orange Pi -- init'''</p>|}</li><li><p>使用'''rmmod'''命令可以卸载'''hello.ko'''内核模块</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo rmmod hello'''</p><p>orangepi@orangepi:~$ '''dmesg | grep "Hello"'''</p><p>[ 2871.893988]Hello Orange Pi -- init</p><p>[ 3173.800892]'''Hello Orange Pi -- exit'''</p>|}</li></ol></li></ol>
# 打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type<span id="寸mipi-C线连接上开发板,所以左下角会提示“'''没有发现设备'''”lcd屏幕的使用方法"></span>
[[File:media/ca4b9e37ca9d9cce3f888c4278bd3726== 10.png]]1寸MIPI LCD屏幕的使用方法 ==
# 然后开始烧录Orange Pi OS (Droid)镜像到eMMC中<span id="寸mipi-屏幕的组装方法"></span>## 首先通过Type-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示=== 10.1寸MIPI 屏幕的组装方法 ===
<ol style="list-style-type: decimal;"><li><p>首先准备需要的配件</p><ol style="list-style-type: lower-alpha;"><li><p>10.1寸MIPI LCD显示屏+触摸屏(此屏幕和OPi5/OPi5B通用)</p><p>[[File:media/293482d42e80a8b3e2962b40e834bb41plus-5-651.png]]</p></li><li><p>屏幕转接板+31pin转40pin排线</p><div class="figure">
# 确保开发板没有插入TF卡,没有连接电源## 然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:[[File:plus-5-652.png]]
[[File:media</b5c295a072c9e13167488051a2a2cb04.png]]div></li><li><p>30pin MIPI排线</p><div class="figure">
# 然后给开发板接上Type[[File:plus-C接口的电源,并上电5-653.png]]
</div></li><li><p>12pin 触摸屏排线</p><p>[[File:mediaplus-5-654.png]]</1f65f9666af69c591813b5597e806ccbp></li></ol></li><li><p>按照下图将12pin 触摸屏排线、31pin转40pin排线、30pin MIPI排线接到屏幕转接板上,注意'''<span style="color:#FF0000">触摸屏排线蓝色的绝缘面朝下</span>''',其它两根排线绝缘面朝上,如果接错会导致无显示或者不能触摸的问题</p><p>[[File:plus-5-655.png]]</p></li><li><p>按照下图将连接好排线的转接板置于MIPI LCD屏上面,并通过31pin转40pin排线连接MIPI LCD屏与转接板</p></li>
[[File:plus-5-656.png]]</ol><ol start="4" style="list-style-type: decimal;"><li><p>然后通过12pin触摸屏排线连接触摸屏与转接板,注意绝缘面的朝向</p><p>[[File:plus-5-657.png]]</p></li><li><p>最后通过30pin MIPI排线连接到开发板的LCD接口上</p><p>[[File:plus-5-658.png]]</p>{| class="wikitable" style="background-color:# 如果前面的步骤顺利,此时开发板会进入ffffdc;width:800px;" |-| <big><p>'''MASKROM注意,下面的触摸接口不是给LCD MIPI屏幕使用的,目前为备用接口,使用不到。'''模式,在烧录工具的界面上会提示“'''发现一个MASKROM设备'''”</p></big><p>[[File:plus-5-659.png]]</p>|}</li></ol>
[[File:media<span id="打开10.1寸mipi-lcd屏幕配置的方法"></18276e05fbda6e29cb92f7582ba887d4.png]]span>
# 然后点击烧录工具的“'''升级固件'''”一栏=== 打开10.1寸MIPI LCD屏幕配置的方法 ===
<ol style="list-style-type: decimal;"><li><p>linux镜像默认是没有打开mipi lcd屏幕的配置的,如果需要使用mipi lcd屏幕,需要手动打开才行。</p></li><li><p>开发板mipi lcd屏幕接口的位置如下所示:</p><p>[[File:plus-5-660.png]]</p></li><li><p>打开mipi lcd配置的步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li><li><p>然后选择'''System'''</p><p>[[File:5plus-51.png]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:5plus-52.png]]</p></li><li><p>然后使用键盘的方向键定位到'''opi5plus-lcd''',再使用'''空格'''选中</p><p>[[File:mediaplus-5-663-1.png]]</3e9bea3f77dce0b408bac9df3a5b416bp></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:plus-5-664.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:plus-5-665.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:plus-5-666.png]]</p></li></ol></li><li><p>启动后可以看到lcd屏幕的显示如下所示(默认为竖屏):</p></li>
# 接着点击“'''固件'''”按钮选择需要烧录的Orange Pi OS (Droid)镜像的路径[[File:plus-5-667.png]]</ol>
[[File:media/c3d19212664a98ca47af3920fe1bf596.png]]=== 服务器版镜像旋转显示方向的方法 ===
<ol style="list-style-type: decimal;"><li><p>在'''/boot/orangepiEnv.txt'''中加入'''extraargs=fbcon=rotate:要旋转的方向'''这句配置就可以设置服务器版本的linux系统显示的方向,其中'''fbcon=rotate:'''后面的数字可以设置为:</p><ol style="list-style-type: lower-alpha;"><li><p>0: 正常屏(默认为竖屏)</p></li><li><p>1: 顺时钟转90度</p></li><li><p>2: 翻转180度</p></li><li><p>3: 顺时钟转270度</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt'''</p><p>overlays=opi5plus-lcd</p><p>'''<span style="color:# 最后点击“FF0000">extraargs=cma=128M fbcon=rotate:3</span>'''升级</p>|}{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''注意,/boot/orangepiEnv.txt中如果默认有extraargs=cma=128M这行配置,fbcon=rotate:3这个配置添加到extraargs=cma=128M的后面即可(需要用空格隔开)。'''</p></big>|}</li></ol></li><li><p>然后'''<span style="color:#FF0000">重启</span>'''”按钮就会开始烧录,烧录过程中的log如下图所示。烧录完成后Orange Pi OS (Droid)系统会自动启动。linux系统就能看到lcd屏幕显示的方向已经旋转了</p></li></ol>
[[File:media/0679ed0d11458c418a27c06f1f331b54.png]]=== 桌面版镜像旋转显示和触摸方向的方法 ===
<span idol style="通过tf卡将orangelist-pistyle-ostype: decimal;"><li><p>首先在linux系统中打开'''Display'''设置</p><p>[[File:plus-5-668.png]]</p></li><li><p>然后在'''Rotation'''中选择想要旋转的方向</p><ol style="list-style-type: lower-alpha;"><li><p>'''None''': 不旋转</p></li><li><p>'''Left''': 向左旋转90度</p></li><li><p>'''Inverted''': 上下翻转,相当于旋转180度</p></li><li><p>'''Right''': 向右旋转90度</p><p>[[File:plus-5-669.png]]</p></li></ol></li><li><p>然后点击'''Apply'''</p><p>[[File:plus-5-670.png]]</p></li><li><p>然后选择'''Keep this configuration'''</p><p>[[File:plus-5-671.png]]</p></li><li><p>此时屏幕显示就已旋转完成,然后关闭掉'''Display'''程序即可</p></li><li><p>上面的步骤只会选择显示方向,并不会旋转触摸的方向,使用'''set_lcd_rotate.sh'''脚本可以旋转下触摸的方向,此脚本设置完后会自动重启,然后就可以测试触摸是否已经能正常使用了</p><ol style="list-style-type: lower-droid镜像烧录到emmcalpha;"><li><p>'''None''': 不旋转</spanp>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''set_lcd_rotate.sh none'''</p>|}</li><li><p>'''Left''': 向左旋转90度</p>{| class= 通过TF卡将Orange Pi OS (Droid)镜像烧录到eMMC "wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''set_lcd_rotate.sh left'''</p>|}</li><li><p>'''Inverted''': 上下翻转,相当于旋转180度</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''set_lcd_rotate.sh inverted'''</p>|}</li><li><p>'''Right''': 向右旋转90度</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''set_lcd_rotate.sh right'''</p>|}
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''注意,下面所有的操作都是在Windows电脑中进行的。set_lcd_rotate.sh脚本主要做四件事:'''</p>
# 开发板预留了eMMC的扩展接口,烧录系统到eMMC前,首先需要购买一个与开发板eMMC接口相匹配的eMMC模块。然后将eMMC模块安装到开发板上。eMMC接口的位置如下所示:
[[File<ol style="list-style-type:mediadecimal;"><li><p>'''旋转framebuffer显示的方向'''</509c9654850ee23aaabfc364310b90d9.png]]p></li><li><p>'''旋转触摸的方向'''</p></li><li><p>'''关闭开机logo'''</p></li><li><p>'''重启系统'''</p></li></ol>
# 还需要准备一张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)的镜像
[[File<p>'''旋转触摸的方向是通过在/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"不同的方向配置不同。'''</p></big>|}</li></ol></li></ol><!-- --><ol start="7" style="list-style-type: decimal;"><li><p>触摸旋转参考资料</p>{| class="wikitable" style="width:800px;" |-|'''https:media/f21092f6cc6b075f4dc1a24178a83e0f/wiki.png]]ubuntu.com/X/InputCoordinateTransformation'''|}</li></ol>
# 然后使用解压软件解压下载的Orange Pi OS (Droid)镜像的压缩包,解压后的文件中,以“.img” 结尾的文件就是Orange Pi OS (Droid)镜像文件,大小在1GB以上# 然后使用解压软件解压'''SDDiskTool_v1.72.zip''',此软件无需安装,在解压后的文件夹中找到'''SD_Firmware_Tool.exe'''打开即可== 开关机logo使用说明 ==
[[File<ol style="list-style-type:mediadecimal;"><li><p>开关机logo默认只在桌面版的系统中才会显示</0368da194342b31d165057aa92eda2adp></li><li><p>在'''/boot/orangepiEnv.txt'''中设置'''bootlogo'''变量为'''false'''可以关闭开关机logo</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt'''</p><p>verbosity=1</p><p>'''<span style="color:#FF0000">bootlogo=false</span>'''</p>|}</li><li><p>在'''/boot/orangepiEnv.txt'''中设置'''bootlogo'''变量为'''true'''可以开启开关机logo</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt'''</p><p>verbosity=1</p><p>'''<span style="color:#FF0000">bootlogo=false</span>'''</p>|}</li><li><p>开机logo图片在linux系统中的位置为</p>{| class="wikitable" style="width:800px;" |-|<p>'''/usr/share/plymouth/themes/orangepi/watermark.png]]'''</p>|}</li><li><p>替换开机logo图片后需要运行下命令才能生效</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo update-initramfs -u'''</p>|}</li></ol>
# 打开'''SDDiskTool'''后,如果TF卡识别正常,会在“'''选择可移动磁盘设备'''”一栏中显示插入的磁盘设备,'''请务必确认显示的磁盘设备和你想烧录的TF卡的盘符是一致的''',如果没有显示可以尝试拔插下TF卡<span id="ov13850和ov13855-mipi摄像头的测试方法"></span>
[[File:media/b56645d0ada2cc60a79509b0ea711638.png]]== OV13850和OV13855 MIPI摄像头的测试方法 ==
# 确认完盘符后,可以先格式化下TF卡,点击'''SDDiskTool'''中的'''恢复磁盘'''按钮即可,也可使用前面提到的'''SD Card Formatter'''进行TF卡的格式化目前开发板支持两款MIPI摄像头,OV13850和OV13855,具体的图片如下所示:
<ol style="list-style-type: lower-alpha;"><li><p>1300万MIPI接口的OV13850摄像头</p><p>[[File:mediaplus-5-19.png]]</p></li><li><p>1300万MIPI接口的OV13855摄像头</74fd8a52c97e0b0f86bb7228291fbe6ap><p>[[File:plus-5-20.png]]</p></li></ol><p>OV13850和OV13855摄像头使用的转接板和FPC排线是一样的,只是两款摄像头接在转接板上的位置不一样。FPC排线如下图所示,请注意FPC排线是有方向的,标注'''TO MB'''那端需要插到开发板的摄像头接口中,标注'''TO CAMERA'''那端需要插到摄像头转接板上。</p>
# 然后开始将Orange Pi OS (Droid)镜像写入TF卡## 首先在'''“选择可移动磁盘设备”'''下面确认显示的盘符为TF卡对应的盘符## 然后在“'''选择功能模式'''”中选择'''“固件升级”'''## 然后在“'''选择升级固件'''”一栏中选择Orange Pi OS (Droid)固件的路径## 最后点击“'''开始创建'''”按钮就会开始烧录[[File:plus-5-674.png]]
[[File:media/b2d877a351549f41d6dae7ae22d96cb4.png]]摄像头转接板上总共有3个摄像头的接口,同一时间只能接一个使用,如下图所示,其中:
# 烧录完成后的显示如下图所示,然后就可以退出SDDiskTool<ol style="list-style-type: lower-alpha;"><li><p>'''1号接口接OV13850摄像头'''</p></li><li><p>'''2号接口接OV13855摄像头'''</p></li><li><p>3号接口未使用,忽略即可</p></li>
[[File:media/c999fc9ee19372b1b76a2d69848537b5plus-5-675.png]]</ol>Orange Pi 5 Plus开发板上总共有1个摄像头接口,位置如下所示:
# 然后把TF卡从电脑中拔出来插到开发板中,开发板上电启动后就会自动开始将TF卡中的Orange Pi OS (Droid)镜像烧录到开发板的eMMC中# 如果开发板连接了HDMI显示器,还可以从HDMI显示器中看到烧录Orange Pi OS (Droid)镜像到eMMC中的进度条[[File:plus-5-676.png]]
[[File:media/21725ffae6d6578fbb4ae157698a7624.png]]摄像头插在开发板的摄像头接口的方法如下所示:
# 当HDMI显示器显示如下信息时,说明烧录Orange Pi OS (Droid)镜像到eMMC中已完成,此时就可以拔出TF卡,然后eMMC中的Orange Pi OS (Droid)系统就会开始启动。[[File:plus-5-677.png]]
[[File:media/14acd8efbf40564fe8111876419a3667.png]]连接好摄像头到开发板上后,我们可以使用下面的方法来测试下摄像头:
<span idol style="烧录orangelist-pistyle-ostype: lower-droid镜像到spiflashnvmealpha;"><li><p>首先运行下'''orangepi-ssd中config''',普通用户记得加'''sudo'''权限</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li><li><p>然后选择'''System'''</p><p>[[File:5plus-51.png]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:5plus-52.png]]</p></li><li><p>然后使用使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的摄像头,其中'''opi5plus-ov13850'''表示使用ov13850摄像头,'''opi5plus-ov13855'''表示使用ov13855摄像头。</p><p>[[File:plus-5-680.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:plus-5-681.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:plus-5-682.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:5plus-56.png]]</p></spanli><li><p>然后在桌面系统中打开一个终端,再运行下面的脚本</p>{| class="wikitable" style= 烧录Orange Pi OS (Droid)镜像到SPIFlash+NVMe SSD中 ="width:800px;" |-|<p>orangepi@orangepi:~$ '''test_camera.sh'''</p>|}</li><li><p>然后就能看到摄像头的预览画面了</p><div class="figure">
'''注意,下面所有的操作都是在Windows电脑中进行的。'''[[File:plus-5-684.png]]
# 首先需要准备一个2280规格的NVMe SSD固态硬盘,开发板M.2插槽PCIe接口的规格为PCIe3.0x4。</div></li></ol>
[[File:media/6b09ed51c8f4954ed95742cd63b21c74.png]]== 红外接收的测试方法 ==
# 然后把NVMe SSD插入开发板的M.2 PCIe接口,并固定好开发板上自带一个红外接收器,连接到'''PWM15_IR_M1'''引脚上。查看红外接收到的键值的方法如下所示:
<ol style="list-style-type: decimal;"><li><p>首先在命令行中运行'''evtest'''命令,然后选择'''febf0030.pwm'''对应的设备序号</p>{| class="wikitable" style="width:800px;" |-|<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>'''<span style="color:#FF0000">/dev/input/event0: febf0030.pwm</span>'''</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 [[File0-11]: '''<span style="color:#FF0000">0 #这里选择febf0030.pwm对应的序号</span>'''</p><p>Input driver version is 1.0.1</p><p>Input device ID: bus 0x19 vendor 0x524b product 0x6 version 0x100</p><p>Input device name: "febf0030.pwm"</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 (KEY_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:media</eff81166492ce92b30912818342b0d5bp><p>Testing ...png]](interrupt to exit)</p>|}</li><li><p>然后需要准备一个下图所示的红外遥控器</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p style="color:#FF0000">'''注意:香橙派提供的Linux系统默认只支持香橙派提供的遥控器,电视或者空调的遥控器是不能用的。'''</p></big>|}<div class="figure">
# SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置[[File:plus-5-685.png]]
</div></li><li><p>然后对着开发板上的红外接收器按下遥控器上的按键,红外接收器在开发板上的位置如下图所示:</p><p>[[File:media/815ee597fcdbd832b687cc3df51795b6plus-5-686.png]]</p></li><li><p>然后就能看到'''evtest'''会打印接收到的键值了</p>{| class="wikitable" style="width:800px;" |-|<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 ------------</p><p>Event: time 1684152326.667633, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 0</p><p>Event: time 1684152328.427632, -------------- SYN_REPORT ------------</p><p>Event: time 1684152330.761986, type 1 (EV_KEY), code 116 (KEY_POWER), value 1</p><p>Event: time 1684152330.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>
# 还需要准备一根品质良好的Type-C接口的数据线<span id="rtc的使用方法"></span>
[[File:media/d84ad9c1e0e447425ddd86cfefafca1e.png]]== RTC的使用方法 ==
# 然后从<ol style="list-style-type: decimal;"><li><p>开发板上预留了一个RTC电池的接口,位置如下所示:</p><p>[http[File:plus-5-24.png]]</p></wwwli><li><p>需要购买的RTC电池如下所示,接口为2pin,1.orangepi25mm间距</p><p>[[File:plus-5-23.cnpng]]</htmlp></serviceAndSupportli><li><p>开发板上使用的RTC芯片为HYM8563TS,此芯片的特点有:</indexp><ol style="list-style-type: lower-alpha;"><li><p>宽工作电压范围:1.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v50~5.125v</p></li><li><p>低休眠电流:典型值为0.zip''',烧录工具'''RKDevTool_Release_v225μA(VDD =3.96.zip0V, 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>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ ''',请确保下载的'''RKDevTool'''工具的的版本为'''v2.96cat /proc/driver/rtc'''</p><p>rtc_time : 06:07:40</p><p>rtc_date : 2023-05-22</p><p>alrm_time : 03:36:00</p># 然后下载Orange Pi OS (Droid)的镜像,打开Orange Pi OS (Droid)镜像的下载链接后可以看到下面两种类型的镜像,请选择带'''spi<p>alrm_date : 2023-05-nvme'''的镜像进行下载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></ol>
[[File:media<span id="pwm散热风扇的使用方法"></1ea829666fe6cb4d44baca4a5ced4ea9.png]]span>
# 然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可== PWM散热风扇的使用方法 ==
<ol style="list-style-type: decimal;"><li><p>开发板上有用于接散热风扇的接口,接口规格为'''2pin 1.25mm间距''','''5V电压驱动''',风扇接口的位置如下图所示:</p><p>[[File:media/3abe751bd0c4c5e9be6a83f839a1e4c2plus5-689.png]]</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>{| class="wikitable" style="width:800px;" |-|<p>'''orange-pi-5.10-rk3588/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts'''</p>
# 打开'''DriverInstall.exe'''后安装瑞芯微驱动的步骤如下所示
## 点击“'''驱动安装'''”按钮
[[File:media<p>fan: pwm-fan {</p>::<p>compatible = "pwm-fan";</p>::<p>#cooling-cells = <2>;</p>::<p>pwms = <&pwm3 0 50000 0>;</p>::<p>cooling-levels = <0 50 100 150 200 255>;</p>::<p>rockchip,temp-trips = <</p>:::<p>50000 1</p>:::<p>55000 2</p>:::<p>60000 3</p>:::<p>65000 4</p>:::<p>70000 5</p>::<p>>;</bc5fc637f8588abefa4f2ff7e0dc2683.png]]p>
# 等待一段时间后,会弹出窗口提示“'''安装驱动成功'''”,然后点击'''“确定”'''按钮即可
[[File:media:<p>status = "okay";</p>:<p>};</p>|}<p>其中:</p><ol style="list-style-type: lower-alpha;"><li><p>'''pwms = <&pwm3 0 50000 0>''':表示控制风扇的pwm为pwm3。</p></li><li><p>'''cooling-levels = <0 50 100 150 200 > 255>''':用来配置转速(pwm的占空比)的档位,档位数量和大小可以自己定义,这里配置6个档位,转速的范围是0-255。</p></li><li><p>'''rockchip,temp-trips''':用来配置CPU温度和风扇转速档位的对应关系,可以根据实际需要进行调整,上面的配置50度对应档位1,70度对对应档位5。</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''开机后如果发现风扇没有转是正常的,因为开机后CPU的温度一般都低于50度,只有当CPU的温度达到50度后,风扇才会开始转。'''</48720c90a698617c0f884059ac1d6885.png]]p>
# 然后解压'''RKDevTool_Release_v2.96.zip''',此软件无需安装,在解压后的文件夹中找到 '''RKDevTool'''打开即可
[[File<p>'''使用下面的命令可以让所有CPU都跑满,然后就能看到风扇会开始工作了:'''</p><p>orangepi@orangepi:media~$ '''for i in $(seq 0 $(( $(nproc --all) - 1)) ); do (taskset -c $i yes > /dev/null &); done'''</p></big>|}</li></ol></li></c20745924f6e330c0bc60639e5ee8c1b.png]]ol>
# 打开'''RKDevTool''' 烧录工具后,因为电脑此时还没有通过Type-C线连接上开发板,所以左下角会提示“'''没有发现设备'''”
[[File:media/ca4b9e37ca9d9cce3f888c4278bd3726.png]]== 关机和重启开发板的方法 ==
{| class="wikitable" style="background-color:# 然后开始烧录Android镜像到SPIFlash+NVMe SSD中ffffdc;width:800px;" ## 首先通过Type|-C数据线连接好开发板与Windows电脑,开发板Type-C接口的位置如下图所示| <big>'''最新版本的Ubuntu20.04、Ubuntu22.04、Debian11和Debian12桌面版系统中已经预装了zfs,直接使用即可。'''
[[File:media/293482d42e80a8b3e2962b40e834bb41'''在Ubuntu20.png]]04、Ubuntu22.04桌面版系统中预装的zfs版本是2.1.6。'''
# 确保开发板没有插入TF和eMMC模块,没有连接电源## 然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:'''在Debian11和Debian12桌面版系统中预装的zfs版本是2.1.11。'''
[[File:media/b5c295a072c9e13167488051a2a2cb04.png]]'''系统启动后,首先请确认下zfs的内核模块有没有被加载,如果使用lsmod命令可以看到zfs相关的内容,就说明系统已经预装了zfs。'''
# 然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了orangepi@orangepi:~$ '''lsmod | grep "zfs"'''</big>
[[File:media/1f65f9666af69c591813b5597e806ccb.png]]zfs 2801664 0
# 如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示“'''发现一个MASKROM设备'''”zunicode 327680 1 zfs
[[File:media/18276e05fbda6e29cb92f7582ba887d4.png]]zzstd 471040 1 zfs
# 然后点击烧录工具的“'''升级固件'''”一栏zlua 139264 1 zfs
[[File:media/3e9bea3f77dce0b408bac9df3a5b416b.png]]zcommon 69632 1 zfs
# 接着点击“'''固件'''”按钮选择需要烧录的Orange Pi OS (Droid)镜像znvpair 61440 2 zfs,zcommon
[[File:media/c3d19212664a98ca47af3920fe1bf596.png]]zavl 16384 1 zfs
# 最后点击“'''升级'''”按钮就会开始烧录,烧录的过程如下图所示,可以看到,首先会烧录固件到SPIFlash中,然后烧录固件到PCIE中。烧录完成后Orange Pi OS (Droid)系统会自动启动。icp 221184 1 zfs
[[File:media/c6f65462132a7004e1c5d4c6056d8ac7.png]]spl 77824 6 zfs,icp,zzstd,znvpair,zcommon,zavl|}
== 启动香橙派开发板 = 安装ZFS的方法 === {| class="wikitable" style="background-color:# 将烧录好镜像的TF卡或eMMC模块插入香橙派开发板的TF卡插槽中。如果SPIFlash+NVMe SSD已经烧录好镜像了,那么就不需要插入TF卡或eMMC模块了,只需确保NVMe SSD正常插入到开发板中即可。ffffdc;width:800px;" # 开发板有HDMI接口,可以通过HDMI转HDMI连接线把开发板连接到电视或者HDMI显示器。如果有购买LCD屏幕,也可以使用LCD屏幕来显示开发板的系统界面。如果有Type-C转HDMI的线,也可以通过Type|-C接口来显示开发板的系统界面。# 接上USB鼠标和键盘,用于控制香橙派开发板。# 开发板有以太网口,可以插入网线用来上网。| # 连接一个5V/4A的USB Type-C接口的<big>'''高品质安装zfs前,请先确保使用的linux镜像为最新版本。另外,如果系统中已经安装了zfs,就无需重复安装了。'''的电源适配。</big>|}安装zfs前首先需要安装内核头文件,安装内核头文件的方法请参考[[Orange Pi 5 Plus#安装内核头文件的方法|安装内核头文件的方法]]小节的说明。
'''切记不要插入电压输出大于5V的电源适配器,会烧坏开发板。'''在Ubuntu20.04、Ubuntu22.04和Debian11系统中,zfs是无法通过apt直接安装的,这是因为默认的apt源中zfs版本低于2.1.6,存在和rk linux5.10内核不兼容的问题,这个问题在zfs的2.1.6及以后的版本中得到了修复。
为了解决这个问题,我们提供了能正常安装的zfs的deb包,可以从开发板的'''系统上电启动过程中很多不稳定的现象基本都是供电有问题导致的,所以一个靠谱的电源适配器很重要。如果启动过程中发现有不断重启的现象,请更换下电源或者Type-C数据线再试下。官方工具'''中下载到。打开'''官方工具''',然后进入'''Ubuntu和Debian系统使用的zfs相关的deb包'''文件夹后,可以看到Ubuntu20.04、Ubuntu22.04和Debian11三种类型的deb包,请下载需要的版本。
'''Type<p>[[File:5plus-C电源接口是不支持PD协商的。'''3.png]]</p>
'''另外请不要接到电脑的USB接口来给开发板供电。'''下载完对应版本的zfs deb包后,请将它们上传到开发板的Linux系统中。上传方法请参考[[Orange Pi 5 Plus#上传文件到开发板Linux系统中的方法|上传文件到开发板Linux系统中的方法]]小节的说明。
上传完成后,再在开发板linux系统的命令行中使用'''开发板上有两个长得一样的Typecd'''命令进入deb包的目录,然后使用下面的命令就可以安装zfs的deb包。{| class="wikitable" style="width:800px;" |-C接口,其中网口旁边竖着的那个才是电源接口,另外那个Type-C接口是没有供电功能的,请别接错了。|orangepi@orangepi:~$ '''sudo apt install ./*.deb'''|}
[[File:media/be21ec9a0619208250c105cfbdfa9eb8.png]]安装完成后,使用下面的命令可以看到zfs相关的内核模块:
# 然后打开电源适配器的开关,如果一切正常,此时HDMI显示器或者LCD屏幕就能看到系统的启动画面了。{| class="wikitable" style="width:800px;" |-# 如果想通过调试串口查看系统的输出信息,请使用串口线将开发板连接到电脑,串口的连接方法请参看[[#_调试串口的使用方法|orangepi@orangepi:~$ '''调试串口的使用方法ls /lib/modules/5.10.110-rockchip-rk3588/updates/dkms/icp.ko spl.ko zavl.ko zcommon.ko zfs.ko zlua.ko znvpair.ko zunicode.ko zzstd.ko''']]一节。|}
== 调试串口的使用方法 ==然后重启下linux系统就能看到zfs内核模块会自动加载了:
{| class="wikitable" style== 调试串口的连接说明 ==="background-color:#ffffdc;width:800px;" |-| orangepi@orangepi:~$ '''lsmod | grep "zfs"'''
# 首先需要准备一个'''3.3V'''的USB转TTL模块,然后将USB转TTL模块的USB接口一端插入到电脑的USB接口中。zfs 2801664 0
'''为了更好的兼容性,推荐使用CH340 USB转TTL模块,请不要使用CP2102、PL2303类型的USB转TTL模块。'''zunicode 327680 1 zfs
'''购买USB转TTL模块前,请确认模块支持1500000速率的波特率。'''zzstd 471040 1 zfs
[[File:media/535a6a26ef013767b4779e527e38b33d.png]]zlua 139264 1 zfs
# 开发板的调试串口GND、RXD和TXD引脚的对应关系如下图所示:zcommon 69632 1 zfs
[[File:media/0c20aec6e73010155a5f9b521e0091df.png]]znvpair 61440 2 zfs,zcommon
# USB转TTL模块GND、TXD和RXD引脚需要通过杜邦线连接到开发板的调试串口上## USB转TTL模块的GND接到开发板的GND上## USB转TTL模块的'''RX接到开发板的TX上'''## USB转TTL模块的'''TX接到开发板的RX上'''# USB转TTL模块连接电脑和Orange Pi开发板的示意图如下所示zavl 16384 1 zfs
<div class="figure">icp 221184 1 zfs
[[File:media/3ec828638547de28b3e8dd72788bb899.jpegspl 77824 6 zfs,icp,zzstd,znvpair,zcommon,zavl|QQ图片20210204145010]]}
</div>'''串口的TX和RX是需要交叉连接的,如果不想仔细区分TX和RX的顺序,可以把串口的TX和RX先随便接上,如果测试没有输出再交换下TX和RX的顺序,这样就总有一种顺序是对的。'''在Debian12中,zfs的默认版本为2.1.11,所以我们可以通过下面的命令直接安装zfs,再次提醒下,安装前需要确保系统已安装内核头文件的deb包。
<span id{| class="ubuntu平台调试串口的使用方法wikitable"></span>style="width:800px;" |-|orangepi@orangepi:~$ '''sudo apt install -y zfsutils-linux zfs-dkms'''=== Ubuntu平台调试串口的使用方法 ===|}
=== 创建ZFS池的方法 ==={| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Linux下可以使用的串口调试软件有很多,如putty、minicom等,下面演示下putty的使用方法。ZFS是基于存储池的,我们可以将多个物理存储设备添加到池中,然后从这个池中分配存储空间。'''
# 首先将USB转TTL模块插入Ubuntu电脑的USB接口,如果USB转TTL模块连接识别正常,在Ubuntu PC的'''/dev下面的内容是基于开发板接了一个NVMe SSD和一个U盘来演示的。'''下就可以看到对应的设备节点名,记住这个节点名,后面设置串口软件时会用到。</big>|}
test@test:~$ 1) 首先我们可以通过'''ls /dev/ttyUSB*lsblk'''命令查看下开发板所有的存储设备,当前开发板接了一个NVMe SSD以及一个U盘,输出如下所示:
<p>[[File:5plus-4.png]]</dev/ttyUSB0p>
# 然后使用下面的命令在Ubuntu PC上安装下putty2) 然后输入下面的命令可以创建一个ZFS池,包含NVMe SSD和U盘两个存储设备
test{| class="wikitable" style="width:800px;" |-|orangepi@testorangepi:~$ '''sudo aptzpool create -get updatef pool1 /dev/nvme0n1 /dev/sda'''|}
test@test:~$ 3) 然后使用'''sudo apt-get install -y puttyzpool list'''命令可以看到系统已经创建了一个名为pool1的ZFS池,并且ZFS池pool1的大小是NVME SSD的大小加上U盘的大小
# 然后运行putty,'''记得加sudo权限'''<p>[[File:5plus-5.png]]</p>
test@test:~$ 4) 然后执行'''sudo puttydf -h'''可以看到'''pool1'''被挂载到了'''/pool1'''目录
# 执行putty命令后会弹出下面的界面{| class="wikitable" style="width:800px;" |-|orangepi@orangepi:~$ '''df -h''' <br>Filesystem Size Used Avail Use% Mounted on <br>tmpfs 1.6G 18M 1.6G 2% /run <br>/dev/mmcblk0p2 29G 6.0G 22G 22% / <br>tmpfs 7.7G 46M 7.7G 1% /dev/shm <br>tmpfs 5.0M 4.0K 5.0M 1% /run/lock <br>tmpfs 7.7G 944K 7.7G 1% /tmp <br>/dev/mmcblk0p1 1022M 115M 908M 12% /boot <br>/dev/zram1 188M 4.5M 169M 3% /var/log <br>tmpfs 1.6G 80K 1.6G 1% /run/user/1000 <br>'''pool1 489G 9.3M 489G 1% /pool1''' <br>|}5) 使用下面的命令可以看到pool1的文件系统类型为zfs
[[File{| class="wikitable" style="width:media/4cb7aaad274d23f21834af0dc996ee8f.png]]800px;" |-|orangepi@orangepi:~$ '''mount | grep pool1'''
# 首先选择串口的设置界面pool1 on /pool1 type '''zfs''' (rw,xattr,noacl)|}6) 然后我们可以测试下拷贝一个文件到ZFS池中
[[File{| class="wikitable" style="width:media800px;" |-|orangepi@orangepi:~$ '''sudo cp -v /1f8ad933c1ef10b3b4c5db492a1a0171usr/local/test.png]]mp4 /pool1/'''
# 然后设置串口的参数## 设置Serial line to connect to为'/devusr/ttyUSB0(修改为对应的节点名,一般为local/dev/ttyUSB0)## 设置Speed(baud)为'''1500000test.mp4'-> '/pool1/test.mp4'(串口的波特率)## 设置Flow control为None|}
[[File:media/5cffd82cb8bc49d25de65f3c6794a8c2.png]]=== 测试ZFS的数据去重功能 ===1) ZFS的数据去重功能默认是关闭的,我们需要执行下面的命令打开
# 在串口的设置界面设置完后,再回到Session界面{| class="wikitable" style="width:800px;" ## 首先选择Connection type为Serial|-## 然后点击Open按钮连接串口|orangepi@orangepi:~$ '''sudo zfs set dedup=on pool1'''|}2) 然后做一个简单的测试,首先进入pool1中,再执行下面的命令生成1个1G大小的随机文件
[[File{| class="wikitable" style="width:media800px;" |-|orangepi@orangepi:~$ '''cd /pool1/ '''<br>root@orangepi:/pool1$ '''sudo dd if=/dev/ac16d5b208878c112460a63fce155007urandom of=test.png]]1g bs=1M count=1024''' <br>1024+0 records in <br>1024+0 records out <br>1073741824 bytes (1.1 GB, 1.0 GiB) copied, 5.04367 s, 213 MB/s <br>|}3) 然后使用下面的命令将1G大小的随机文件拷贝1000份
# 启动开发板后,就能从打开的串口终端中看到系统输出的Log信息了{| class="wikitable" style="width:800px;" |-|root@orangepi:/pool1$ '''for ((i=0; i<1000; i++)); do sudo cp test.1g $i.test.1g; done'''|}4) 然后用'''du -lh'''可以看到目前池中总共有1002G的数据,但实际上ZFS池的大小只有'''504GB'''(SSD+U盘的总容量),是装不下那么大的数据的
[[File{| class="wikitable" style="width:800px;" |-|root@orangepi:media/58cd299d346f1eab252489e23f4fb533.png]]pool1$ '''du -lh'''
<span id="windows平台调试串口的使用方法"></span>1002G=== Windows平台调试串口的使用方法 ===|}5) 然后用'''zpool list'''命令可以看到实际只占用了1.01G,因为这1001个文件都是重复的,说明数据去重功能有效。
'''Windows下可以使用的串口调试软件有很多,如SecureCRT、MobaXterm等,下面演示MobaXterm的使用方法,这款软件有免费版本,无需购买序列号即可使用。'''<p>[[File:5plus-6.png]]</p>
# 下载MobaXterm## 下载MobaXterm网址如下=== 测试ZFS的数据压缩功能 ===
[https:1) 因为存储的数据不同,压缩节省的磁盘空间也会有所不同,所以我们选择压缩比较大的纯文本文件来进行压缩测试,执行下面的命令将'''/var/mobaxterm.mobatek.netlog/ '''https:和'''/etc/mobaxterm.mobatek.net''']目录打包成tar包
# 进入MobaXterm下载网页后点击{| class="wikitable" style="width:800px;" |-|orangepi@orangepi:~$ '''GET XOBATERM NOW!cd /pool1/'''
[[Fileroot@orangepi:media/417679229a973d6c98ccd8d6d8de9c8cpool1$ '''sudo tar -cf text.png]]tar /var/log/ /etc/'''|}2) 然后通过'''ls -lh'''命令可以看到的文件大小以及在ZFS池中占用的空间都是'''27M'''
# 然后选择下载Home版本<p>[[File:5plus-7.png]]</p>
[[File:media/db2428c0da9263ccd5f44e0163c4adf4.png]]3) 然后我们在ZFS池pool1中启用压缩功能
# 然后选择Portable便携式版本,下载完后无需安装,直接打开就可以使用{| class="wikitable" style="width:800px;" |-|root@orangepi:/pool1$ '''sudo zfs set compression=lz4 pool1'''|}4) 然后再次执行下面的命令将'''/var/log/'''和'''/etc/'''目录打包成tar包
[[File{| class="wikitable" style="width:800px;" |-|root@orangepi:media/77684f844781eb72bc35373cf7c069c8pool1$ '''sudo tar -cf text.png]]tar /var/log/ /etc/'''|}# 下载完后使用解压缩软件解压下载的压缩包,即可得到MobaXterm的可执软件,然后双击打开5) 这时可以看到'''text.tar'''文件大小还是27M,但是在ZFS池中只占用9.47M的空间,说明文件被压缩了
<p>[[File:media/119198b28093131b7bd8c2ef661964405plus-8.png]]</p>
# 打开软件后,设置串口连接的步骤如下## 打开会话的设置界面## 选择串口类型## 选择串口的端口号(根据实际的情况选择对应的端口号),如果看不到端口号,请使用[http://weishi.360.cn/qudongdashi/ '''360驱动大师''']扫描安装USB转TTL串口芯片的驱动## 选择串口的波特率为'''1500000'''## 最后点击“'''OK'''”按钮完成设置== 关机和重启开发板的方法 ==
<ol style="list-style-type: decimal;"><li><p>在Linux系统运行的过程中,如果直接拔掉Type-C电源断电,可能会导致文件系统丢失某些数据或者损坏,所以在断电前请先使用'''poweroff'''命令关闭开发板的Linux系统,然后再拔掉电源。</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo poweroff'''</p>|}</li><li><p>另外开发板配有开关机按键,还可以'''短按'''开发板上的开关机按键来关机。</p><p>[[File:media/9d93e4eb4f9f5bf5588075a37943c357plus-5-690.png]]</p>
{| class="wikitable" style="background-color:# 点击“ffffdc;width:800px;" |-| <big>'''OK注意,Linux桌面版系统按下开关机按键后会弹出下图所示的确认框,需要点击Shut Down选项后才会关机。'''”按钮后会进入下面的界面,此时启动开发板就能看到串口的输出信息了</big>
[[File:mediaplus-5-691.png]]|}</li></ol><ol start="3" style="list-style-type: decimal;"><li><p>关机后短按开发板上的开关机按键即可开机。</5796bb79c7388cc64ac2b7ecf5cf1225p><p>[[File:plus-5-690.png]]</p></li><li><p>重启linux系统的命令为</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo''' '''reboot'''</p>|}</li></ol>
<span id="ubuntudebianubuntu22.04-server和xfce桌面系统使用说明gnome-wayland桌面系统使用说明"></span>= Ubuntu/Debian Server和Xfce桌面系统使用说明 =
= '''本章内容是基于Ubuntu/Debian的服务器版本镜像和xfce桌面版本镜像编写的。Ubuntu22.04 Gnome Wayland桌面系统使用说明'''=
'''如果使用的是Ubuntu22.04 Gnome镜像,请先查看'''[[{| class="wikitable" style="background-color:#_Ubuntu22.04%20Gnome%20Wayland桌面系统使用说明ffffdc;width:800px;" |-|<big>'''Ubuntu22ubuntu22.04 Gnome Wayland桌面系统使用说明''']]'''一章的说明。gnome镜像默认预装panfork mesa用户空间库,预装的kodi播放器和chromium浏览器支持硬解播放视频。'''
[[#_Ubuntu22.04%20Gnome%20Wayland桌面系统使用说明|'''Ubuntu22.04 Gnome Wayland桌面系统使用说明''']]'''一章中不存在的内容,可以参考此章的说明,但是有些细节是会有差异的,这点请特别注意下。需要注意的是此镜像需要在wayland下使用,如果需要使用x11,请选择xfce类型的镜像。'''</big>|}
'''如果使用的是OPi OS Arch镜像,请查看'''[[#_Orange%20Pi%20OS%20Arch系统使用说明|'''Orange Pi OS Arch系统使用说明''']]'''一章的内容。'''<span id="ubuntu22.04-gnome桌面系统适配情况"></span>== Ubuntu22.04 Gnome桌面系统适配情况 ==
<span id{| class="wikitable" style="已支持的ubuntudebian镜像类型和内核版本width:800px;"></span>|-| style="text-align: left;"| '''功能'''| style= 已支持的Ubuntu/Debian镜像类型和内核版本 "text-align: left;"| '''Ubuntu22.04 Gnome Wayland'''|-| style=="text-align: left;"| '''HDMI TX1视频'''{| classstyle="wikitabletext-align: left;"| '''OK'''
|-
! | style="text-align: left;"| '''Linux镜像类型HDMI TX1音频'''! | style="text-align: left;"| '''内核版本'''! '''服务器版'''! '''桌面版OK'''
|-
| '''Debian 11 style="text- Bullseye'''align: left;"| '''Linux5.10HDMI TX2视频'''| '''支持'''style="text-align: left;"| '''支持OK'''
|-
| '''Debian 12 style="text- Bookworm'''align: left;"| '''Linux5.10HDMI TX2音频'''| '''计划支持'''style="text-align: left;"| '''计划支持OK'''
|-
| '''Ubuntu 20.04 style="text- Focal'''align: left;"| '''Linux5.10HDMI RX视频'''| '''支持'''style="text-align: left;"| '''支持OK'''
|-
| '''Ubuntu 22.04 style="text- Jammy'''align: left;"| '''Linux5.10HDMI RX音频'''| '''支持'''style="text-align: left;"| '''支持OK'''|} == linux系统适配情况 == {| class="wikitable"
|-
! | style="text-align: left;"| '''功能'''! '''Linux5USB2.10驱动0X2'''! '''Debian11| style="text-align: left;"| '''! '''Ubuntu20.04'''! '''Ubuntu22.04OK'''
|-
| '''HDMI TX1视频'''| '''OK'''style="text-align: left;"| '''OKUSB3.0X2'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''HDMI TX1音频'''| '''OK'''style="text-align: left;"| '''OK2.5G PCIe网口X2'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''HDMI TX2视频'''| '''OK'''style="text-align: left;"| '''OK2.5G PCIe网口灯'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''HDMI TX2音频'''| '''OK'''style="text-align: left;"| '''OK调试串口'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''HDMI RX视频'''| '''OK'''style="text-align: left;"| '''OKRTC芯片'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''HDMI RX音频FAN风扇接口'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''eMMC扩展接口'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''OKAP6275P-WIFI'''| style="text-align: left;"| '''OK'''
|-
| '''USB2.0X2'''| '''OK'''style="text-align: left;"| '''OKAP6275P-BT'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''USB3.0X2'''| '''OK'''style="text-align: left;"| '''OKAX200-WIFI'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''2.5G PCIe网口X2'''| '''OK'''style="text-align: left;"| '''OKAX200-BT'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''2.5G PCIe网口灯'''| '''OK'''style="text-align: left;"| '''OKAX210-WIFI'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''调试串口'''| '''OK'''style="text-align: left;"| '''OKAX210-BT'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''RTC芯片'''| '''OK'''style="text-align: left;"| '''OKRTL8852BE-WIFI'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''FAN风扇接口'''| '''OK'''style="text-align: left;"| '''OKRTL8852BE-BT'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''eMMC扩展接口'''| '''OK'''style="text-align: left;"| '''OKMaskROM按键'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''AP6275Pstyle="text-WIFI'''align: left;"| '''OKType-C转USB3.0'''| '''OK'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''AP6275Pstyle="text-BT'''align: left;"| '''OKType-C ADB功能'''| '''OK'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''AX200style="text-WIFI'''align: left;"| '''OKType-C DP视频'''| '''OK'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''AX200Type-BTC DP音频'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''开关机按键'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''OK红外功能'''| style="text-align: left;"| '''OK'''
|-
| '''AX210style="text-WIFI'''align: left;"| '''OK三色LED灯'''| '''OK'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''AX210style="text-BT'''align: left;"| '''OK板载MIC'''| '''OK'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''RTL8852BEstyle="text-WIFI'''align: left;"| '''OK耳机播放'''| '''OK'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''RTL8852BEstyle="text-BT'''align: left;"| '''OK耳机录音'''| '''OK'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''MaskROM按键'''| '''OK'''style="text-align: left;"| '''OKSPK喇叭'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''Typestyle="text-C转USB3.0'''align: left;"| '''OK40PIN GPIO'''| '''OK'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''Typestyle="text-C ADB功能'''align: left;"| '''OK40PIN I2C'''| '''OK'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''Typestyle="text-C DP视频'''align: left;"| '''OK40PIN SPI'''| '''OK'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''Typestyle="text-C DP音频'''align: left;"| '''OK40PIN UART'''| '''OK'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''开关机按键'''| '''OK'''style="text-align: left;"| '''OK40PIN CAN'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''红外功能'''| '''OK'''style="text-align: left;"| '''OK40PIN PWM'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''三色LED灯TF卡启动'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''SPI+NVME启动'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''OKOV13850摄像头'''| style="text-align: left;"| '''OK'''
|-
| '''板载MIC'''| '''OK'''style="text-align: left;"| '''OKOV13855摄像头'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''耳机播放'''| '''OK'''style="text-align: left;"| '''OKGPU'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''耳机录音'''| '''OK'''style="text-align: left;"| '''OKVPU'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''SPK喇叭'''| '''OK'''style="text-align: left;"| '''OKNPU'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''40PIN GPIO'''| '''OK'''style="text-align: left;"| '''OKREBOOT命令重启'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''40PIN I2C'''| '''OK'''style="text-align: left;"| '''OKPoweroff命令关机'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''40PIN SPI'''| '''OK'''style="text-align: left;"| '''OKMIPI LCD显示'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''40PIN UART'''| '''OK'''style="text-align: left;"| '''OKMIPI LCD触摸'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''40PIN CAN'''| '''OK'''style="text-align: left;"| '''OK看门狗测试'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''40PIN PWM'''| '''OK'''style="text-align: left;"| '''OKChromium硬解视频'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| '''TF卡启动'''| '''OK'''style="text-align: left;"| '''OKMPV硬解视频'''| '''OK'''style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''SPI+NVME启动Kodi硬解视频'''| style="text-align: left;"| '''OK'''| } == 确认系统当前使用的窗口系统为wayland的方法 == <ol style="list-style-type: decimal;"><li><p>系统默认使用的窗口系统为wayland,确认方法如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先打开设置</p><p>[[File:plus-5-693.png]]</p></li><li><p>然后选择'''OKAbout''',如果'''Windowing System'''一栏显示的'''wayland'''说明设置正确</p><p>[[File:plus-5-694.png]]</p></li></ol></li><li><p>当'''Log Out'''出系统后会进入下面的登录界面</p><p>[[File:plus-5-695.png]]</p></li><li><p>再次登录系统前请先点击下图所示的位置</p><p>[[File:plus-5-696.png]]</p></li><li><p>然后选择'''Ubuntu on Wayland''',再输入密码登录系统</p><p>[[File:plus-5-697.png]]</p></li></ol> == 切换默认音频设备的方法 == | <ol style="list-style-type: decimal;"><li><p>首先打开设置</p><p>[[File:plus-5-693.png]]</p></li><li><p>然后选择'''Sound''',然后在'''OKOutput Device'''中选择想要使用的音频设备即可</p><p>[[File:plus-5-699.png]]</p></li></ol> <span id="gpu的测试方法"></span> | == GPU的测试方法 == <ol style="list-style-type: decimal;"><li><p>在桌面中打开一个终端,然后输入 '''glmark2'''命令,如果能看到'''GL_VERDOR'''后面显示为'''OKPanfrost'''说明有使用到GPU</p>{| class="wikitable" style="width:800px;"
|-
| <p>orangepi@orangepi:~$ '''OV13850摄像头glmark2'''</p>| '''OK'''}<p>[[File:plus-5-700.png]]</p></li><li><p>glmark2跑分测试一般为1000多分</p>| '''OK'''<p>[[File:plus-5-701.png]]</p></li>| <li><p>运行'''OKgpu_load.sh'''脚本可以查看GPU当前的负载情况</p>{| '''OK'''class="wikitable" style="width:800px;"
|-
| <p>orangepi@orangepi:~$ '''OV13855摄像头gpu_load.sh'''</p>| }<p>[[File:plus-5-702.png]]</p></li></ol> <span id="chromium浏览器硬解播放视频的测试方法"></span> == Chromium浏览器硬解播放视频的测试方法 == <ol style="list-style-type: decimal;"><li><p>首先打开Chromium浏览器</p><p>[[File:plus-5-703.png]]</p></li><li><p>然后在Chromium浏览器中输入'''OKchrome://gpu'''可以查看下GPU和视频解码的支持情况</p>| '''OK'''<p>[[File:plus-5-704.png]]</p></li>| '''OK'''<li><p>然后可以打开视频网站播放一个视频文件,或者在浏览器中输入下面的路径名播放系统自带的一个测试视频文件</p>{| '''OK'''class="wikitable" style="width:800px;"
|-
| <p>'''GPU/usr/local/test.mp4'''</p>| '''OK'''}| '''OK'''</li>| <li><p>播放视频的时候可以在终端中运行下'''OKvpu_debug.sh'''脚本,如果有下图右下角的打印输出,说明有使用硬件来解码视频</p>{| '''OK'''class="wikitable" style="width:800px;"
|-
| '''VPU'''| <p>orangepi@orangepi:~$ '''OKvpu_debug.sh'''</p>| '''OK'''}| '''OK'''<div class="figure">| '''OK'''|[[File:plus-| '''NPU'''| '''OK'''| '''OK'''| '''OK'''| '''OK'''|5-705.png]]| '''REBOOT命令重启'''| '''OK'''| '''OK'''| '''OK'''| '''OK'''</div></li></ol>|-| '''Poweroff命令关机'''<span id="kodi硬解播放视频的测试方法"></span>| '''OK'''| '''OK'''== Kodi硬解播放视频的测试方法 ==| '''OK'''| '''OK'''{|class="wikitable" style="background-| '''MIPI LCD显示'''| '''OK'''| '''OK'''| '''OK'''| '''OK'''color:#ffffdc;width:800px;"
|-
| '''MIPI LCD触摸'''| '''OK'''| '''OK'''| '''OK'''| '''OK'''|-| '''Chromium硬解视频'''| '''OK'''| '''OK'''| '''OK'''| <big>'''OK注意,在Wayland桌面中直接打开Kodi显示会有有问题,请严格按照下面的方法打开Kodi。'''</big>
|}
<ol style="list-style-type: decimal;"><li><p>首先登出系统</p><p>[[File:plus-5-706.png]] [[File:plus-5-707.png]]</p></li><li><p>当登出系统后会进入下面的登录界面</p><p>[[File:plus-5-695.png]]</p></li><li><p>然后点击下图所示的位置</p><p>[[File:plus-5-696.png]]</p></li><li><p>然后选择'''Kodi Wayland''',再输入密码登录系统</p><p>[[File:plus-5-710.png]]</p></li><li><p>Kodi打开后的界面显示如下所示</p><div class= 本手册linux命令格式说明 =="figure">
# 本手册中所有需要在Linux系统中输入的命令都会使用下面的方框框起来[[File:plus-5-711.png]]
如下所示,黄色方框里内容表示需要特别注意的内容,这里面的命令除外。</div></li><li><p>然后点击设置</p><p>[[File:plus-5-712.png]]</p></li><li><p>然后选择'''Player'''</p><p>[[File:plus-5-713.png]]</p></li><li><p>然后选择'''Videos''',然后点击左下角的'''Standard'''</p><p>[[File:plus-5-714.png]]</p></li><li><p>点击两次后会切换成'''Expert'''模式,具体显示如下图所示</p><p>[[File:plus-5-715.png]]</p></li><li><p>然后在'''Processing'''设置中打开'''Allow using DRM PRIME decoder'''</p><p>[[File:plus-5-716.png]]</p></li><li><p>然后我们来导入一个系统自带的测试视频测试下,你也可以上传想要播放的视频到系统中,然后导入播放</p><ol style="list-style-type: lower-alpha;"><li><p>首先进入主界面,然后选择'''Movies'''</p><p>[[File:plus-5-717.png]]</p></li><li><p>然后选择'''Add videos...'''</p><p>[[File:plus-5-718.png]]</p></li><li><p>然后选择'''Browse'''</p><p>[[File:plus-5-719.png]]</p></li><li><p>然后选择'''Root filesystem'''</p><p>[[File:plus-5-720.png]]</p></li><li><p>然后选择'''usr'''</p><p>[[File:plus-5-721.png]]</p></li><li><p>然后选择'''local'''</p><p>[[File:plus-5-722.png]]</p></li><li><p>然后选择'''OK'''</p><p>[[File:plus-5-723.png]]</p></li><li><p>然后选择'''OK'''</p><p>[[File:plus-5-724.png]]</p></li><li><p>然后选择OK</p><p>[[File:plus-5-725.png]]</p></li><li><p>然后进入local文件夹中</p><p>[[File:plus-5-726.png]]</p></li><li><p>然后就可以播放'''test.mp4'''测试视频了</p><p>[[File:plus-5-727.png]]</p></li></ol></li><li><p>播放视频的时候可以在命令行中(通过ssh或者串口)运行下'''vpu_debug.sh'''脚本,如果有下面的打印输出,说明有使用硬件来解码视频</p>{| class="wikitable" style="width:800px;" |-|<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:plus-5-728.png]]</p></li></ol>
# 命令前面的提示符类型说明## 命令前面提示符指的是下面方框内红色部分的内容,这部分内容不是linux命令的一部分,所以在linux系统中输入命令时,请不要把红色字体部分的内容也输入进去。<span id="ubuntu22.04-gnome安装ros-2-humble的方法"></span>
'''orangepi@orangepi:~$ sudo apt update'''== Ubuntu22.04 Gnome安装ROS 2 Humble的方法 ==
<ol style="list-style-type: decimal;"><li><p>使用'''install_ros.sh''root'脚本可以安装ros2</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~#$ ''' install_ros.sh ros2'''vim </bootp>|}</bootli><li><p>install'''_ros.cmdsh'''脚本安装完ros2后会自动运行下'''ros2 -h'''命令,如果能看到下面的打印,说明ros2安装完成</p>{| class="wikitable" style="width:800px;" |-|<p>usage: ros2 [-h] Call `ros2 <command> -h` for more detailed usage. ...</p>
'''test@test:~$ ssh''' [mailto:root@192.168.1.36 '''root@192.168.1.''']'''xxx'''
'''root@test:~# ls'''<p>ros2 is an extensible command-line tool for ROS 2.</p>
# '''root@orangepi:~$''' 提示符表示这个命令是在'''开发板的linux系统'''中输入的, 提示符最后的 '''$''' 表示系统当前用户为普通用户,当执行特权命令时,需要加上'''sudo'''
## '''root@orangepi:~#''' 提示符表示这个命令是在'''开发板的linux系统'''中输入的, 提示符最后的 '''#''' 表示系统当前用户为root用户,可以执行任何想要执行的命令
## '''test@test:~$''' 提示符表示这个命令是在Ubuntu PC或者Ubuntu虚拟机中输入的,而不是开发板的linux系统中。提示符最后的 '''$''' 表示系统当前用户为普通用户,当执行特权命令时,需要加上'''sudo'''
## '''root@test:~#''' 提示符表示这个命令是在Ubuntu PC或者Ubuntu虚拟机中输入的,而不是开发板的linux系统中。提示符最后的 '''#''' 表示系统当前用户为root用户,可以执行任何想要执行的命令
# 哪些是需要输入的命令?
## 如下所示,'''黑色加粗部分'''是需要输入的命令,命令下面的是输出的内容(有些命令有输出,有些可能没有输出),这部分内容是不需要输入的
root@orangepi<p>optional arguments:~# '''cat </bootp>:<p>-h, --help show this help message and exit</orangepiEnv.txt'''p>
'''verbosity=7'''
bootlogo=false<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>
'''console=serial'''
<ol style="list-style-type: decimal;"><li><p>如下所示,有些命令一行写不下会放到下一行,只要黑色加粗的部分就都是需要输入的命令。当这些命令输入到一行的时候,每行最后的“'''\'''”是需要去掉的,这个不是命令的一部分。另外命令的不同部分都是有空格的,请别漏了Call `ros2 <command> -h` for more detailed usage.</p><p>orangepi@orangepi:~$ '''echo \'''</p>|}<p>'''“deb [arch=$(dpkg –print-architecture) \'''</pli><pli>'''signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \'''</p><p>然后可以使用 '''https://downloadtest_ros.docker.com/linux/debian \sh'''脚本测试下ROS 2是否安装成功,如果能看到下面的打印,说明ROS 2能正常运行</p><p>'''$(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null'''</p></li></ol> == linux系统登录说明 == === linux系统默认登录账号和密码 === {| class="wikitable" style="width:800px;"
|-
! |<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>{| class="wikitable" style="width:800px;"
|-
| <p>orangepi@orangepi:~$ '''rootsource /opt/ros/humble/setup.bash'''</p>| '''<p>orangepi'''|-| '''@orangepi:~$ '''| '''orangepiros2 run rviz2 rviz2'''</p>
|}
'''注意,输入密码的时候,屏幕上是不会显示输入的密码的具体内容的,请不要以为是有什么故障,输入完后直接回车即可。'''
'''当输入密码提示错误,或者ssh连接有问题,请注意,只要使用的是Orange Pi提供的Linux镜像,就请不要怀疑上面的密码不对,而是要找其它的原因。'''
=== 设置linux系统终端自动登录的方法 ===
# linux系统默认就是自动登录终端的,默认登录的用户名是'''orangepi'''
[[File:media/02c5ddf60e06bfa30f01b3466c102d43.png]]
# 使用下面的命令可以设置root用户自动登录终端
orangepi@orangepi:~$ '''sudo auto_login_cli.sh root'''
# 使用下面的命令可以禁止自动登录终端
orangepi@orangepi:~$ '''sudo auto_login_cli.sh -d'''
# 使用下面的命令可以再次设置orangepi用户自动登录终端
orangepi@orangepi:~$ '''sudo auto_login_cli.sh orangepi'''
=== linux桌面版系统自动登录说明 ===
# 桌面版系统启动后会自动登录进入桌面,无需输入密码
<div class="figure">
[[File:media/d2f40d044ad0e2ffef5815070adf5f80plus-5-729.png|1]]
</div></li># 运行下面的命令可以禁止桌面版系统自动登录桌面<li><p>参考文档</p>{| class="wikitable" style="width:800px;" |-|<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>
orangepi@orangepi:~$ '''sudo disable_desktop_autologin.sh''' # 然后重启系统就会出现登录对话框,此时需要输入[[#_linux系统默认登录账号和密码|'''密码''']]才能进入系统== 设置中文环境以及安装中文输入法的方法 ==
<ol style="list-style-type: decimal;">
<li><p>首先打开设置</p>
<p>[[File:plus-5-693.png]]</p></li>
<li><p>然后找到'''Region & Language'''选项,然后点击'''Manage Installed Languages'''选项</p>
<p>[[File:plus-5-731.png]]</p></li>
<li><p>然后请使用鼠标左键选中'''汉语(中国)'''并按住不动,然后往上将其拖到最开始的位置,拖完后的显示如下图所示:</p>
<p>[[File:plus-5-732.png]]</p></li>
<li><p>然后选择'''Apply System-Wide'''将中文设置应用到整个系统</p>
<p>[[File:plus-5-733.png]]</p></li>
<li><p>'''<span style="color:#FF0000">然后重启Linux系统使配置生效</span>'''</p></li>
<li><p>重新进入系统后,在下面的界面请选择'''不要再次询问我''',然后请根据自己的喜好决定标准文件夹是否也要更新为中文</p>
<p>[[File:plus-5-734.png]]</p></li>
<li><p>然后可以看到桌面都显示为中文了</p>
<div class="figure">
[[File:media/10be49a9de980c18ea13be55fe252501plus-5-735.png|IMG_256]]
</div></li><li><p>然后打开Fcitx5配置程序</p><p>[[File:plus-5-736.png]]</p></li><li><p>然后选择使用拼音输入法</p><p>[[File:plus-5-737.png]]</p></li><li><p>选择后的界面如下所示,再点击确定即可</p><p>[[File:plus-5-738.png]]</p></li><li><p>然后我们可以打开'''Geany'''测试下中文输入法,打开方式如下图所示</p><p>[[File:plus-5-739.png]]</p></li><span id="linux桌面版系统root用户自动登录的设置方法"li><p>打开'''Geany'''后,默认还是英文输入法,我们可以通过'''Ctrl+Space'''快捷键来切换成中文输入法,然后就能输入中文了</spanp>=== Linux桌面版系统root用户自动登录的设置方法 ===<p>[[File:plus-5-740.png]]</p></li></ol>
# 执行下面的命令可以设置桌面版系统使用root用户自动登录<span id="orange-pi-os-arch系统使用说明"></span>
orangepi@orangepi:~$ = '''sudo desktop_login.sh rootOrange Pi OS Arch系统使用说明'''=
# 然后重启系统,就会自动使用root用户登录桌面了<span id="orange-pi-os-arch系统适配情况"></span>== Orange Pi OS Arch系统适配情况 ==
[[File{| class="wikitable" style="width:media/aa945ef5c7ffc88116693712e82d7b23.png]]800px;"|-| style="text-align: left;"| '''注意,如果使用root用户登录桌面系统,是无法使用右上角的pulseaudio来管理音频设备的。功能''' | '''另外请注意这并不是一个bug,因为pulseaudio本来就不允许在root用户下运行。OPi OS Arch Gnome''' # 执行下面的命令可以再次设置桌面版系统使用orangepi用户自动登录 orangepi@orangepi| style="text-align:~$ '''sudo desktop_login.sh orangepileft;"| ''' OPi OS Arch Xfce<span idstyle="linux桌面版系统禁用桌面的方法color:#FF0000">(待发布)</span>'''|-| style="text-align: left;"| '''HDMI TX1视频'''| '''OK'''| style="text-align: left;"| '''OK'''|-| style= Linux桌面版系统禁用桌面的方法 "text-align: left;"| '''HDMI TX1音频'''| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX2视频'''| '''OK'''| style="text-align: left;"| '''OK'''|-# 首先在命令行中输入下面的命令,| style="text-align: left;"| '''请记得加sudo权限HDMI TX2音频'''| '''OK'''orangepi@orangepi| style="text-align:~$ left;"| '''sudo systemctl disable lightdm.serviceOK'''|-# 然后重启Linux系统就会发现不会显示桌面了| style="text-align: left;"| '''HDMI RX视频'''| '''OK'''orangepi@orangepi| style="text-align:~$ left;"| '''sudo rebootOK'''|-# 重新打开桌面的步骤如下所示:| style="text-align: left;"| '''HDMI RX音频'''| '''OK'''## 首先在命令行中输入下面的命令,| style="text-align: left;"| '''请记得加sudo权限OK'''|-orangepi@orangepi| style="text-align:~$ left;"| '''sudo systemctl start lightdmUSB2.service0X2'''| '''OK'''# 选择完后显示器就会显示桌面了| style="text-align: left;"| '''OK'''|-<span id| style="板载led灯测试说明text-align: left;"></span>| '''USB3.0X2'''| '''OK'''| style="text-align: left;"| '''OK'''|-| style= 板载LED灯测试说明 =="text-align: left;"| '''2.5G PCIe网口X2'''| '''OK'''# 开发板上有一个红绿蓝三色灯,所在位置如下图所示:| style="text-align: left;"| '''OK'''|-[[File| style="text-align:media/254e993446dedf4387be6fd80f20297eleft;"| '''2.png]]5G PCIe网口灯'''| '''OK'''# | style="text-align: left;"| '''只要开发板打开了电源,红色的LED灯就会常亮,这是由硬件控制的,软件无法关闭。通过红色的LED灯可以确定开发板的电源是否已正常开启。OK'''# 绿色和蓝色的LED灯在内核启动后会一直闪烁,这是由软件控制的。|-# 设置绿灯亮灭和闪烁的方法如下所示:| style="text-align: left;"| '''调试串口'''| '''OK'''| style="text-align: left;"| '''注意,下面的操作请在root用户下进行。OK'''|-# 首先进入绿灯的设置目录| style="text-align: left;"| '''RTC芯片'''| '''OK'''root@orangepi| style="text-align:~# left;"| '''cd /sys/class/leds/green_ledOK'''|-# 设置绿灯停止闪烁的命令如下| style="text-align: left;"| '''FAN风扇接口'''| '''OK'''root@orangepi| style="text-align:/sys/class/leds/green_led# left;"| '''OK'''echo none >|-| style="text-align: left; trigger"| '''eMMC扩展接口'''| '''OK'''# 设置绿灯常亮的命令如下| style="text-align: left;"| '''OK'''|-root@orangepi| style="text-align:/sys/class/leds/green_led# left;"| '''echo defaultAP6275P-on >WIFI'''| '''OK'''| style="text-align: left; trigger"| '''OK'''|-# 设置绿灯闪烁的命令如下| style="text-align: left;"| '''AP6275P-BT'''| '''OK'''root@orangepi| style="text-align:/sys/class/leds/green_led# left;"| '''OK'''echo heartbeat >|-| style="text-align: left; trigger"| '''AX200-WIFI'''| '''OK'''# 设置蓝灯亮灭和闪烁的方法如下所示:| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''注意,下面的操作请在root用户下进行。AX200-BT'''| '''OK'''# 首先进入绿灯的设置目录| style="text-align: left;"| '''OK'''|-root@orangepi| style="text-align:~# left;"| '''cd /sys/class/leds/blue_ledAX210-WIFI'''| '''OK'''# 设置绿灯停止闪烁的命令如下| style="text-align: left;"| '''OK'''|-root@orangepi| style="text-align:/sys/class/leds/blue_led# left;"| '''echo none > triggerAX210-BT'''| '''OK'''# 设置绿灯常亮的命令如下| style="text-align: left;"| '''OK'''|-root@orangepi| style="text-align:/sys/class/leds/blue_led# left;"| '''RTL8852BE-WIFI'''| '''OK'''echo default| style="text-on >align: left; trigger"| '''OK'''|-# 设置绿灯闪烁的命令如下| style="text-align: left;"| '''RTL8852BE-BT'''| '''OK'''root@orangepi| style="text-align:/sys/class/leds/blue_led# left;"| '''echo heartbeat > triggerOK'''|-| style== 网络连接测试 =="text-align: left;"| '''MaskROM按键'''| '''OK'''<span id| style="g以太网口测试text-align: left;"></span>| '''OK'''|-| style=== 2"text-align: left;"| '''Type-C转USB3.5G以太网口测试 0'''| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C DP视频'''| '''OK'''| style="text-align: left;"| '''OK'''|-# 开发板有两个2.5G的以太网接口,两个网口的测试方法是一样的。首先将网线的一端插入开发板的以太网接口,网线的另一端接入路由器,并确保网络是畅通的。| style="text-align: left;"| '''Type-C DP音频'''# 系统启动后会通过| '''DHCPOK'''自动给以太网卡分配IP地址,| style="text-align: left;"| '''不需要其他任何配置OK'''。# 在开发板的Linux系统中查看IP地址的命令如下所示:|-| style="text-align: left;"| '''开关机按键'''| '''OK'''orangepi@orangepi| style="text-align:~$ left;"| '''ip addr showOK'''|-1| style="text-align: loleft;"| '''红外功能'''| '''OK'''| style="text-align: <left;LOOPBACK,UP,LOWER_UP>"| '''OK'''|-| style="text-align: left; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000"| '''三色LED灯'''| '''OK'''link/loopback 00| style="text-align:00left;"| '''OK'''|-| style="text-align:00left;"| '''板载MIC'''| '''OK'''| style="text-align:00left;"| '''OK'''|-| style="text-align:00left;"| '''耳机播放'''| '''OK'''| style="text-align:00 brd 00left;"| '''OK'''|-| style="text-align:00left;"| '''耳机录音'''| '''OK'''| style="text-align:00left;"| '''OK'''|-| style="text-align:00left;"| '''SPK喇叭'''| '''OK'''| style="text-align:00left;"| '''OK'''|-| style="text-align:00left;"| '''40PIN GPIO'''| '''OK'''inet 127.0.0.1/8 scope host lo| style="text-align: left;"| '''OK'''|-valid_lft forever preferred_lft forever| style="text-align: left;"| '''40PIN I2C'''| '''OK'''inet6 | style="text-align:left;"| '''OK'''|-| style="text-align:1/128 scope hostleft;"| '''40PIN SPI'''| '''OK'''valid_lft forever preferred_lft forever| style="text-align: left;"| '''OK'''|-2| style="text-align: left;"| '''enP3p49s040PIN UART'''| '''OK'''| style="text-align: <left;BROADCAST,MULTICAST,UP,LOWER_UP>"| '''OK'''|-| style="text-align: left; mtu 1500 qdisc mq state UP group default qlen 1000"| '''40PIN CAN'''| '''OK'''link/ether 00| style="text-align:e0left;"| '''OK'''|-| style="text-align:4cleft;"| '''40PIN PWM'''| '''OK'''| style="text-align:68left;"| '''OK'''|-| style="text-align:00left;"| '''TF卡启动'''| '''OK'''| style="text-align:26 brd ffleft;"| '''OK'''|-| style="text-align:ff:ff:ff:ff:ffleft;"| '''SPI+NVME启动'''| '''OK'''inet | style="text-align: left;"| '''192.168.1.245OK'''/24 brd 192.168.1.255 scope global dynamic noprefixroute enP3p49s0|-valid_lft 42537sec preferred_lft 42537sec| style="text-align: left;"| '''OV13850摄像头'''| '''OK'''inet6 fe80| style="text-align::9005:95ac:b9c0:2beb/64 scope link noprefixrouteleft;"| '''OK'''|-valid_lft forever preferred_lft forever| style="text-align: left;"| '''OV13855摄像头'''| '''OK'''3| style="text-align: left;"| '''enP4p65s0OK'''|-| style="text-align: <left;BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000"| '''GPU'''| '''OK'''link/ether 00| style="text-align:e0:4c:68:00:27 brd ff:ff:ff:ff:ff:ffleft;"| '''OK'''|-inet | style="text-align: left;"| '''192.168.1.247VPU'''/24 brd 192.168.1.255 scope global dynamic noprefixroute enP4p65s0| '''OK'''valid_lft 43179sec preferred_lft 43179sec| style="text-align: left;"| '''OK'''|-inet6 fe80| style="text-align:left;"| '''NPU'''| '''<span style="color:62b5#FF0000">NO</span>'''| style="text-align:dc5eleft;"| '''<span style="color:728e:39a3#FF0000">NO</64 scope link noprefixroutespan>'''|-valid_lft forever preferred_lft forever| style="text-align: left;"| '''REBOOT命令重启'''| '''OK'''| style="text-align: left;"| '''当使用ifconfig查看IP地址时,如果提示下面的信息,是因为没有加sudo导致的,正确的命令是:sudo ifconfigOK'''|-orangepi@orangepi| style="text-align:~$ left;"| '''ifconfigPoweroff命令关机'''| '''OK'''Command ‘ifconfig’ is available in the following places| style="text-align: left;"| '''OK'''|-* /sbin/ifconfig| style="text-align: left;"| '''MIPI LCD显示'''| '''OK'''* /usr/sbin/ifconfig| style="text-align: left;"| '''OK'''|-The command could not be located because ‘/sbin| style="text-align:/usr/sbin’ is not included in the PATH environment variable.left;"| '''MIPI LCD触摸'''| '''OK'''This is most likely caused by the lack of administrative privileges associated with your user account.| style="text-align: left;"| '''OK'''|-ifconfig| style="text-align: command not found left;"| '''开发板启动后查看IP地址有三种方法:看门狗测试''' # | '''接HDMI显示器,然后登录系统使用ip addr show命令查看IP地址OK'''# | style="text-align: left;"| '''在调试串口终端输入ip addr show命令来查看IP地址OK'''# |-| style="text-align: left;"| '''如果没有调试串口,也没有HDMI显示器,还可以通过路由器的管理界面来查看开发板网口的IP地址。不过这种方法经常有人会无法正常看到开发板的IP地址。如果看不到,调试方法如下所示:Chromium硬解视频'''# | '''首先检查Linux系统是否已经正常启动,如果开发板的三色灯在闪烁了,一般是正常启动了,如果只亮红灯,说明系统都没正常启动;<span style="color:#FF0000">NO</span>'''# | style="text-align: left;"| '''检查网线有没有插紧,或者换根网线试下;<span style="color:#FF0000">NO</span>'''# |-| style="text-align: left;"| '''换个路由器试下(路由器的问题有遇到过很多,比如路由器无法正常分配IP地址,或者已正常分配IP地址但在路由器中看不到);MPV硬解视频'''# | '''如果没有路由器可换就只能连接HDMI显示器或者使用调试串口来查看IP地址。OK''' | style="text-align: left;"| '''另外需要注意的是开发板DHCP自动分配IP地址是不需要任何设置的。OK'''|}
# 测试网络连通性的命令如下,'''ping'''命令可以通过'''Ctrl+C'''快捷键来中断运行<span id="m.2-e-key-pcie-wifi6蓝牙模块的使用方法-1"></span>
orangepi@orangepi:~$ '''ping www== M.baidu.com 2 E-I enP4p65s0 #其中一个网口的测试命令'''Key PCIe WIFI6+蓝牙模块的使用方法 ==
orangepi@orangepi:~$ '''ping www.baidu.com -I enP3p49s0 #另一个网口的测试命令'''首先需要购买一个PCIe WIFI6+蓝牙模块
PING www.a.shifen.com (14.119.104.254) from 192.168.::{| class="wikitable" style="width:800px;"|-| '''序 号'''| '''型号'''| '''实物图片'''| '''已支持的OS'''|-| '''1.182 enP3p49s0: 56(84) bytes of data.'''| '''AX200'''
64 bytes from 14.119.104.254 (14.119.104.254'''(PCIE+USB接口): icmp_seq=1 ttl=56 time=6.26 ms'''
64 bytes from 14.119.104.254 (14.119.104.254)| [[File: icmp_seq=6 ttl=56 time=plus-5-389.69 mspng]]| '''Debian'''
^C'''Ubuntu'''
-– www.a.shifen.com ping statistics —'''OpenWRT'''
6 packets transmitted, 6 received, 0% packet loss, time 5008ms'''<span style="color:#FF0000">OPi OS Arch</span>'''
rtt min/avg/max/mdev = 5.671/5.859/6.264/0.202 ms|-| '''2'''| '''AX210'''
<span id="wifi连接测试"></span>=== WIFI连接测试 ==='''(PCIE+USB接口)'''
| [[File:plus-5-390.png]]| '''首先请注意Orange Pi 5 Plus开发板上是没有WIFI模块的,需要外接PCIe网卡或者USB网卡才能使用WIFI功能。Debian'''
'''外接PCIe网卡的使用说明请参考'''[[#_PCIe%20WIFI6+蓝牙模块的使用方法|'''PCIe WIFI6+蓝牙模块的使用方法''']]'''一小节。Ubuntu'''
'''外接USB网卡的使用说明请参考'''[[#_USB无线网卡测试|'''USB无线网卡测试''']]'''一小节。OpenWRT'''
'''请不要通过修改<span style="color:#FF0000">OPi OS Arch</etc/network/interfaces配置文件的方式来连接WIFI,通过这种方式连接WIFI网络使用会有问题。span>'''
<span id="服务器版镜像通过命令连接wifi"></span>|-==== 服务器版镜像通过命令连接WIFI ====| '''3'''| '''RTL8852BE'''
'''当开发板没有连接以太网,没有连接HDMI显示器,只连接了串口时,推荐使用此小节演示的命令来连接WIFI网络。因为nmtui在某些串口软件(如minicom)中只能显示字符,无法正常显示图形界面。当然,如果开发板连接了以太网或者HDMI显示屏,也可以使用此小节演示的命令来连接WIFI网络的。(PCIE+USB接口)'''
| [[File:plus-5-391.png]]| '''下面演示的命令都是默认WIFI的网络设备节点名为wlan0,但不同的WIFI模块节点名会有不同,请注意替换为实际看到的节点名,不要照抄。Debian'''
# 先登录linux系统,有下面三种方式## 如果开发板连接了网线,可以通过[[#_SSH远程登录开发板|'''ssh远程登录linux系统Ubuntu''']]## 如果开发板连接好了调试串口,可以使用串口终端登录linux系统## 如果连接了开发板到HDMI显示器,可以通过HDMI显示的终端登录到linux系统# 首先使用'''nmcli dev wifi'''命令扫描周围的WIFI热点
orangepi@orangepi:~$ '''nmcli dev wifiAndroid12'''
'''<div classspan style="figurecolor:#FF0000">OPi OS Arch</span>'''
[[File:media/6fffc39743b74d468801e729811a5c4d.png|选区_011]]'''OPi OS Droid'''
</div># 然后使用'''nmcli''' 命令连接扫描到的WIFI热点,其中:## '''wifi_name'''需要换成想连接的WIFI热点的名字## '''wifi_passwd'''需要换成想连接的WIFI热点的密码|}
<ol start="2" style="list-style-type: decimal;"><li><p>然后将WIFI模块插入开发板的M.2 E-Key接口中并固定好</p><p>[[File:plus-5-392.png]]</p></li><li><p>然后在OPi OS Arch系统中打开WIFI模块的配置,步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先在'''/boot/extlinux/extlinux.conf'''中添加一行下面的配置</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi:~]$ '''nmcli dev wifi connect wifi_name password wifi_passwdsudo vim /boot/extlinux/extlinux.conf'''</p><p>LABEL Orange Pi</p><p>LINUX /Image</p>Device ‘wlan0’ successfully activated with ‘cf937f88<p>FDT /dtbs/rockchip/rk3588-ca1eorangepi-44115-bb50plus.dtb</p><p>'''<span style="color:#FF0000">FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-61f402eef293’wifi-pcie.dtbo #需要添加的</span>'''</p>|}</li><li><p>'''<span style="color:# 通过FF0000">然后重启OPi OS Arch系统</span>'''</p></li></ol></li><li><p>重启系统后如果一切正常,此时使用下面的命令就能看到WIFI设备节点了。如果看不到,请先检查前面的配置是否有问题</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''ip addr show wlan0'''命令可以查看wifi的IP地址</p><p>......</p><p>4: '''wlan0''': <BROADCAST,MULTICAST,UP,LOWER_UP> 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:plus-5-745-1.png]]</p></li><li><p>然后选择Wi-Fi</p><p>[[File:plus-5-746-1.png]]</p></li><li><p>然后选择想要连接的WIFI</p><p>[[File:plus-5-747.png]]</p></li><li><p>然后输入WIFI的密码,再点击'''Connect'''</p><p>[[File:plus-5-748.png]]</p></li><li><p>然后再次进入下面的界面就能看到WIFI已连接</p><p>[[File:plus-5-749.png]]</p></li></ol></li><li><p>蓝牙的使用示例:</p><ol style="list-style-type: lower-alpha;"><li><p>首先点击桌面右上角的这块区域</p><p>[[File:plus-5-745-1.png]]</p></li><li><p>然后打开设置</p><p>[[File:plus-5-751-1.png]]</p></li><li><p>然后在设置中选择蓝牙,并确保蓝牙右上角的开关按钮已打开</p><p>[[File:plus-5-752.png]]</p></li><li><p>然后选择想要配置对的蓝牙设备,比如和安卓手机配对</p><p>[[File:plus-5-753.png]]</p></li><li><p>然后点击'''Confirm''',手机端也需要确认配对</p><p>[[File:plus-5-754.png]]</p></li><li><p>蓝牙和安卓手机连接后的显示如下所示:</p><p>[[File:plus-5-755.png]]</p></li><li><p>然后点击已配对的蓝牙设备会弹出下图所示的操作界面</p><p>[[File:plus-5-756.png]]</p></li><li><p>此时点击'''Send Files...'''就可给手机发送一个文件</p></li>
orangepi@orangepi[[File:~$ '''ip addr show wlan0'''plus-5-757.png]]</ol>
11<ol style="list-style-type: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP>lower-roman; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000"><li><p>蓝牙发送图片给手机的示意图如下所示:</p><div class="figure">
link/ether 23[[File:8c:d6:ae:76:bb brd ff:ff:ff:ff:ff:ffplus-5-758.png]]
inet '''192.168.</div></li></ol></li></ol><span id="寸mipi-lcd屏幕的使用方法-1.11'''"></24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0span>
valid_lft 259192sec preferred_lft 259192sec== 10.1寸MIPI LCD屏幕的使用方法 ==
inet6 240e:3b7:3240:c3a0:c401:a445:5002:ccdd<span id="寸mipi-屏幕的组装方法-1"></64 scope global dynamic noprefixroutespan>=== 10.1寸MIPI 屏幕的组装方法 ===
valid_lft 259192sec preferred_lft 172792sec<ol style="list-style-type: decimal;"><li><p>首先准备需要的配件</p><ol style="list-style-type: lower-alpha;"><li><p>10.1寸MIPI LCD显示屏+触摸屏(和OPi5/OPi5B通用)</p><p>[[File:plus-5-651.png]]</p></li><li><p>屏幕转接板+31pin转40pin排线</p><div class="figure">
inet6 fe80[[File::42f1:6019:a80e:4c31/64 scope link noprefixrouteplus-5-652.png]]
valid_lft forever preferred_lft forever</div></li><li><p>30pin MIPI排线</p><div class="figure">
# 使用'''ping'''命令可以测试wifi网络的连通性,'''ping'''命令可以通过'''Ctrl+C'''快捷键来中断运行[[File:plus-5-653.png]]
orangepi@orangepi</div></li><li><p>12pin 触摸屏排线</p><p>[[File:~$ plus-5-654.png]]</p></li></ol></li><li><p>按照下图将12pin 触摸屏排线、31pin转40pin排线、30pin MIPI排线接到屏幕转接板上,注意'''ping www.orangepi.org -I wlan0<span style="color:#FF0000">触摸屏排线蓝色的绝缘面朝下</span>''',其它两根排线绝缘面朝上,如果接错会导致无显示或者不能触摸的问题</p><p>[[File:plus-5-655.png]]</p></li><li><p>按照下图将连接好排线的转接板置于MIPI LCD屏上面,并通过31pin转40pin排线连接MIPI LCD屏与转接板</p></li>
PING www[[File:plus-5-656.orangepipng]]</ol><ol start="4" style="list-style-type: decimal;"><li><p>然后通过12pin触摸屏排线连接触摸屏与转接板,注意绝缘面的朝向</p><p>[[File:plus-5-657.org (182png]]</p></li><li><p>最后通过30pin MIPI排线连接到开发板的LCD接口上</p><p>[[File:plus-5-658.92.236.130) from 192.168.1.49 wlan0png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''注意,下面的触摸接口不是给LCD MIPI屏幕使用的,目前为备用接口,使用不到。'''</p></big><p>[[File: 56(84) bytes of dataplus-5-659.png]]</p>|}</li></ol>
64 bytes from 182.92.236.130 (182.92.236<span id="打开10.130): icmp_seq=1寸mipi-lcd屏幕配置的方法-1 ttl=52 time=43.5 ms"></span>
64 bytes from 182=== 打开10.92.236.130 (182.92.236.130): icmp_seq1寸MIPI LCD屏幕配置的方法 =2 ttl=52 time=41.3 ms
64 bytes from 182<ol style="list-style-type: decimal;"><li><p>开发板上mipi lcd屏幕的接口的位置如下图所示</p><p>[[File:plus5-768.92png]]</p></li><li><p>OPi OS Arch镜像默认是没有打开mipi lcd屏幕配置的,如果需要使用mipi lcd屏幕,需要手动打开才行。打开mipi lcd配置的方法如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先在'''/boot/extlinux/extlinux.236conf'''中加入下面的配置</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''sudo vim /boot/extlinux/extlinux.130 (182conf'''</p><p>LABEL Orange Pi</p><p>LINUX /Image</p><p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.92dtb</p><p>'''<span style="color:#FF0000">FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-opi5plus-lcd.236.130)dtbo #需要添加的配置</span>'''</p>|}</li><li><p>'''<span style="color: icmp_seq=3 ttl=52 time=44.9 ms#FF0000">然后重启OPi OS Arch系统</span>'''</p></li></ol></li><li><p>重启后可以看到lcd屏幕的显示如下所示(默认为竖屏):</p></li>
64 bytes from 182.92.236.130 (182.92.236.130)[[File: icmp_seq=4 ttl=52 time=45plus-5-769.6 mspng]]</ol>
64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=5 ttl=52 time=48.8 ms旋转显示和触摸方向的方法 ===
^C<ol style="list-style-type: decimal;"><li><p>首先点击桌面右上角的这块区域</p><p>[[File:plus-5-745-1.png]]</p></li><li><p>然后打开设置</p><p>[[File:plus-5-751-1.png]]</p></li><li><p>然后选择'''Displays'''</p><p>[[File:plus-5-772.png]]</p></li><li><p>然后在'''Displays'''的'''Orientation'''中选择想要旋转的方向</p><p>[[File:plus-5-773.png]]</p></li><li><p>然后选择'''Apply'''</p><p>[[File:plus-5-774.png]]</p></li><li><p>然后就能看到屏幕已经旋转好了,此时还需要选择'''Keep Changes'''来最后确定旋转</p><p>[[File:plus-5-775.png]]</p></li><li><p>LCD屏幕旋转90度后的显示如下所示:</p><p>[[File:plus-5-776.png]]</p></li><li><p>'''OPi OS Arch系统LCD屏幕的触摸功能会随着显示方向的旋转而旋转,无需其他设置。'''</p></li></ol>
<span id="ov13850和ov13855-– www.orangepi.org ping statistics —mipi摄像头的测试方法-1"></span>
5 packets transmitted, 5 received, 0% packet loss, time 4006ms== OV13850和OV13855 MIPI摄像头的测试方法 ==
rtt min/avg/max/mdev = 41.321/44.864/48.834/2.484 ms目前开发板支持两款MIPI摄像头,OV13850和OV13855,具体的图片如下所示:
<span idol style="服务器版镜像通过图形化方式连接wifilist-style-type: lower-alpha;"><li><p>1300万MIPI接口的OV13850摄像头</p><p>[[File:plus-5-19.png]]</p></li><li><p>1300万MIPI接口的OV13855摄像头</spanp>==== 服务器版镜像通过图形化方式连接WIFI ====<p>[[File:plus-5-20.png]]</p></li></ol><p>OV13850和OV13855摄像头使用的转接板和FPC排线是一样的,只是两款摄像头接在转接板上的位置不一样。FPC排线如下图所示,请注意FPC排线是有方向的,标注'''TO MB'''那端需要插到开发板的摄像头接口中,标注'''TO CAMERA'''那端需要插到摄像头转接板上。</p>
# 先登录linux系统,有下面三种方式## 如果开发板连接了网线,可以通过[[#_SSH远程登录开发板|'''ssh远程登录linux系统'''File:plus-5-674.png]]## 如果开发板连接好了调试串口,可以使用串口终端登录linux系统(串口软件请使用MobaXterm,使用minicom无法显示图形界面)## 如果连接了开发板到HDMI显示器,可以通过HDMI显示的终端登录到linux系统# 然后在命令行中输入nmtui命令打开wifi连接的界面
orangepi@orangepi:~$ '''nmtui'''摄像头转接板上总共有3个摄像头的接口,同一时间只能接一个使用,如下图所示,其中:
# 输入nmtui命令打开的界面如下所示<ol style="list-style-type: lower-alpha;"><li><p>'''1号接口接OV13850摄像头'''</p></li><li><p>'''2号接口接OV13855摄像头'''</p></li><li><p>3号接口未使用,忽略即可</p>
[[File:media/be42c1722b75038edd0ec1af2c86346bplus-5-675.png]]</li></ol>Orange Pi 5 Plus开发板上总共有1个摄像头接口,位置如下所示:
# 选择'''Activate a connect'''后回车[[File:plus-5-676.png]]
[[File:media/d489ff7fcdd00af10e64ce6d291a9c9f.png]]摄像头插在开发板的摄像头接口的方法如下所示:
# 然后就能看到所有搜索到的WIFI热点[[File:plus-5-677.png]]
[[File:media/8056e216d61a504c94e3fd8ee9f34491.png]]连接好摄像头到开发板上后,我们可以使用下面的方法来测试下摄像头:
<ol style="list-style-type: lower-alpha;"><li><p>首先在'''/boot/extlinux/extlinux.conf'''中加上下面的配置</p>{| class="wikitable" style="width:800px;" |-|<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>'''<span style="color:# 选择想要连接的WIFI热点后再使用Tab键将光标定位到FF0000">FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-opi5plus-ov13850.dtbo</span>'''</p>|}<p>上面红色字体演示的是摄像头接口接'''ov13850'''的配置,其他的配置如下表所示,将对应的dtbo配置添加到''Activate'<span style="color:#FF0000">FDTOVERLAYS</span>'''后回车后面即可。</p>
[[File{| class="wikitable" style="width:media800px;" |-| style="text-align: left;"| '''摄像头'''| style="text-align: left;"| '''dtbo的配置'''|-| style="text-align: left;"| '''接ov13850'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-opi5plus-ov13850.dtbo'''|-| style="text-align: left;"| '''接ov13855'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-opi5plus-ov13855.dtbo'''|}</li></ol><ol start="2" style="list-style-type: lower-alpha;"><li><p>'''<span style="color:#FF0000">然后重启OPi OS Arch系统</span>'''</p></li><li><p>然后在桌面系统中打开一个终端,再运行下面的脚本</85aa0329c4c2fcbcbbe460364dcf79b8p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''test_camera.png]]sh'''</p>|}</li><li><p>然后就能看到摄像头的预览画面了</p><div class="figure">
# 然后会弹出输入密码的对话框,在'''Password'''内输入对应的密码然后回车就会开始连接WIFI[[File:plus-5-783.png]]
[[File:media</16eb47e7d1df183b0f3e5fa869ed37b5.png]]div></li></ol>
# WIFI连接成功后会在已连接的WIFI名称前显示一个“*”<span id="设置中文环境以及安装中文输入法的方法-1"></span>
[[File:media/47dc3826be0342a12c631c645f3ea91e.png]]== 设置中文环境以及安装中文输入法的方法 ==
# 通过<ol style="list-style-type: decimal;"><li><p>首先点击桌面右上角的这块区域</p><p>[[File:plus-5-745-1.png]]</p></li><li><p>然后打开设置</p><p>[[File:plus-5-785.png]]</p></li><li><p>然后找到'''ip addr show wlan0Region & Language'''命令可以查看wifi的IP地址选项</p><p>[[File:plus-5-786.png]]</p></li><li><p>然后选择'''Language'''</p><p>[[File:plus-5-787.png]]</p></li><li><p>然后选择汉语</p><p>[[File:plus-5-788.png]]</p></li><li><p>然后点击'''Select'''</p><p>[[File:plus-5-789.png]]</p></li><li><p>然后点击'''Logout...'''登出系统,再重新登入系统</p><p>[[File:plus-5-790.png]]</p></li><li><p>然后可以看到桌面都显示为中文了</p><div class="figure">
orangepi@orangepi[[File:~$ '''ip addr show wlan0'''plus-5-791.png]]
11</div></li><li><p>然后安装下'''fcitx-im'''和'''fcitx-configtool'''</p>{| class="wikitable" style="width: wlan0800px;" |-|<p>[orangepi@orangepi ~]$ '''sudo pacman -S fcitx-im fcitx-configtool'''</p><p>:: 在组 fcitx-im 中有 3 成员:</p><p>: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000: 软件仓库 community</p>:<p>1) fcitx 2) fcitx-qt5 3) fcitx-qt6</p>
link/ether 24:8c:d3:aa:76:bb brd ff:ff:ff:ff:ff:ff
inet <p>输入某个选择 ( 默认=全部选定 ): '''1921'''</p>|}</li><li><p>然后打开Fcitx配置程序</p><p>[[File:plus-5-792.168png]]</p><p>[[File:plus-5-793.1.11png]]</p></li><li><p>然后添加'''Google拼音'''输入法</24 brd 192p><p>[[File:plus-5-794.168png]]</p><p>[[File:plus-5-795.1.255 scope global dynamic noprefixroute wlan0png]]</p></li><li><p>然后我们可以打开一个终端测试下中文输入法,打开终端后,如果默认还是英文输入法,我们可以通过'''Ctrl+Space'''快捷键来切换成中文输入法,然后就能输入中文了</p><div class="figure">
valid_lft 259069sec preferred_lft 259069sec[[File:plus-5-796.png]]
inet6 240e:3b7:3240:c4a0:c401:a445:5002:ccdd</64 scope global dynamic noprefixroutediv></li></ol>
valid_lft 259071sec preferred_lft 172671sec<span id="hdmi-in的测试方法-1"></span>
inet6 fe80::42f1:6019:a80e:4c31/64 scope link noprefixroute== HDMI IN的测试方法 ==
valid_lft forever preferred_lft forever<ol start="1" style="list-style-type: decimal;"><li><p>开发板HDMI In接口的所在位置如下所示:</p><p>[[File:plus-5-432.png]]</p></li><li><p>首先使用下图所示的HDMI转HDMI线将其它设备的HDMI输出接到开发板的HDMI In接口上</p><p>[[File:plus-5-7.png]]</p></li><li><p>OPi OS Arch系统HDMI In功能默认是关闭的,打开方法如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先在'''/boot/extlinux/extlinux.conf'''中加上下面的配置</p>{| class="wikitable" style="width:800px;" |-|<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>'''<span style="color:#FF0000">FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-hdmirx.dtbo #需要添加的配置</span>'''</p>|}</li><li><p>'''<span style="color:#FF0000">然后重启OPi OS Arch系统</span>'''</p></li></ol></li><li><p>重启进入系统后再在桌面上打开一个终端,然后运行下'''test_hdmiin.sh'''脚本</p>{| class="wikitable" style="width:800px;" |-|<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:plus-5-799.png]]</p></li><li><p>除了使用'''test_hdmiin.sh'''脚本来测试HDMI In外,我们还可以使用'''Qt V4L2 test Utility'''来测试HDMI In的视频('''<span style="color:#FF0000">此方法目前无法测试音频</span>''')。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>先进入应用程序列表中</p><p>[[File:plus-5-800.png]]</p></li><li><p>然后找到'''Qt V4L2 test Utility'''并打开</p><p>[[File:plus-5-801.png]]</p></li><li><p>然后请确保'''Qt V4L2 test Utility'''识别到了HDMI In设备</p><p>[[File:plus-5-802.png]]</p></li><li><p>然后点击下图所示的位置就可以看到HDMI In输入的视频</p><p>[[File:plus-5-803.png]]</p></li><li><p>HDMI In输入的视频窗口如下所示:</p><div class="figure">
# 使用'''ping'''命令可以测试wifi网络的连通性,'''ping'''命令可以通过'''Ctrl+C'''快捷键来中断运行[[File:plus-5-804.png]]
orangepi@orangepi:~$ '''ping www.orangepi.org -I wlan0'''</div></li></ol></li></ol>
PING www.orangepi.org (182.92.236.130) from 192.168.<span id="安装wiringop的方法-1.49 wlan0: 56(84) bytes of data."></span>
64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=1 ttl=52 time安装wiringOP的方法 ==43.5 ms
64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq{| class=2 ttl"wikitable" style=52 time=41.3 ms"background-color:#ffffdc;width:800px;" |-| <big>'''注意,Orange Pi发布的OPi OS Arch镜像中已经预装了wiringOP,除非wiringOP的代码有更新,否则无需重新下载编译安装,直接使用即可。'''
64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=3 ttl=52 time=44.9 ms'''进入系统后可以运行下gpio readall命令,如果能看到下面的输出,说明wiringOP已经预装并且能正常使用。'''</big>
64 bytes from 182.92.236.130 (182.92.236.130)[[File: icmp_seq=4 ttl=52 time=45plus-5-805.6 mspng]]
64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=5 ttl=52 time=48.8 ms<big>'''wiringOP目前主要适配了设置GPIO口输入输出,设置GPIO口输出高低电平以及设置上下拉电阻的功能,像硬件PWM这样的功能是用不了的。'''</big>|}
^C<ol style="list-style-type: decimal;"><li><p>下载wiringOP的代码</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''sudo pacman -Syy git'''</p><p>[orangepi@orangepi ~]$ '''git clone https://github.com/orangepi-xunlong/wiringOP.git -b next'''</p>|}{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''注意,Orange Pi 5 Plus需要下载wiringOP next分支的代码,请别漏了-b next这个参数。'''</p><p>'''如果从GitHub下载代码有问题,可以去[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html Orange Pi 5 Plus资料下载页面的官方工具]中下载wiringOP.tar.gz的源码压缩包。'''</p></big><p>[[File:plus-5-806.png]]</p>|}</li><li><p>编译安装wiringOP</p>{| class="wikitable" style="width:800px;" |-|<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:plus-5-807.png]]</p></li></ol>
<span id="pin接口gpioi2cuartspican和pwm测试-– www.orangepi.org ping statistics —1"></span>
5 packets transmitted, 5 received, 0% packet loss, time 4006ms== 40 pin接口GPIO、I2C、UART、SPI、CAN和PWM测试 ==
rtt min/avg/max/mdev {| class="wikitable" style= 41.321/44.864/48.834"background-color:#ffffdc;width:800px;" |-| <big>'''注意,如果需要设置fdt overlays同时打开多个配置,请像下面红色字体配置那样使用空格隔开写在一行即可。'''</2.484 msbig>
==== 桌面版镜像的测试方法 ====
# 点击桌面右上角的网络配置图标(测试WIFI时请不要连接网线)[orangepi@orangepi ~]$ '''sudo vim /boot/extlinux/extlinux.conf'''
[[File:media/11c2c1eabe35785b8d5d923066a3ec33.png]]LABEL Orange Pi
# 在弹出的下拉框中点击'''More networks'''可以看到所有扫描到的WIFI热点,然后选择想要连接的WIFI热点LINUX /Image
[[File:mediaFDT /59eafdc9367e0ff5f48c58b4d46d1113dtbs/rockchip/rk3588s-orangepi-5.png]]dtb
# 然后输入WIFI热点的密码,再点击'''Connect<span style="color:#FF0000">FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-i2c1-m2.dtbo /dtbs/rockchip/overlay/rk3588-uart0-m2.dtbo</span>'''就会开始连接WIFI|}
[[File:media<span id="pin-gpio口测试-2"></08964ae814fa621e4443e36dd282734f.png]]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:plus5-808.png]]</p></li><li><p>首先设置GPIO口为输出模式,其中第三个参数需要输入引脚对应的wPi的序号</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''gpio mode <span style="color:# 连接好WIFI后,可以打开浏览器查看是否能上网,浏览器的入口如下图所示FF0000">2</span> out'''</p>|}</li><li><p>然后设置GPIO口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''gpio write 2 <span style="color:#FF0000">0</span>'''</p>|}</li><li><p>然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''gpio write 2 <span style="color:#FF0000">1</span>'''</p>|}</li><li><p>其他引脚的设置方法类似,只需修改wPi的序号为引脚对应的序号即可</p></li></ol>
[[File:media<span id="pin-gpio口上下拉电阻的设置方法-1"></abbe2becd8842c4f373eab2358d1fdb8.png]]span>
# 打开浏览器后如果能打开其他网页说明WIFI连接正常=== 40 pin GPIO口上下拉电阻的设置方法 ===
<div ol style="list-style-type: decimal;"><li><p>下面以7号引脚——对应GPIO为GPIO1_D6 ——对应wPi序号为2——为例演示如何设置GPIO口的上下拉电阻</p><p>[[File:plus5-809.png]]</p></li><li><p>首先需要设置GPIO口为输入模式,其中第三个参数需要输入引脚对应的wPi的序号</p>{| class="figurewikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''gpio mode <span style="color:#FF0000">2</span> in'''</p>|}</li><li><p>设置为输入模式后,执行下面的命令可以设置GPIO口为上拉模式</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''gpio mode <span style="color:#FF0000">2</span> up'''</p>|}</li><li><p>然后输入下面的命令读取GPIO口的电平,如果电平为1,说明上拉模式设置成功</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''gpio read <span style="color:#FF0000">2</span>'''</p><p>'''1'''</p>|}</li><li><p>然后执行下面的命令可以设置GPIO口为下拉模式</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''gpio mode <span style="color:#FF0000">2</span> down'''</p>|}</li><li><p>然后输入下面的命令读取GPIO口的电平,如果电平为0,说明下拉模式设置成功</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''gpio read <span style="color:#FF0000">2</span>'''</p><p>'''0'''</p>|}</li></ol>
[[File:media<span id="pin-spi测试-2"></bb072200775e332be38aa39b62a9d08c.png|5]]span>
</div><span id="设置静态ip地址的方法"></span>=== 设置静态IP地址的方法 40 pin SPI测试 ===
'''请不要通过修改<ol style="list-style-type: decimal;"><li><p>由下图可知,Orange Pi 5 Plus可用的SPI为SPI0和SPI4</etcp><p>[[File:plus-5-479.png]]</networkp></interfaces配置文件的方式来设置静态IP地址。'''li><li><p>SPI0和SPI4在40pin中对应的引脚如下表所示。SPI4_M1和SPI4_M2同一时间只能使用其中一组,不能同时使用,它们都是同一个SPI4,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的SPI总线。</p></li>
{| class="wikitable" style="width:800px;"|-|| style="text-align: left;"| '''SPI0_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><span idol start="3" style="使用nmtui命令来设置静态ip地址list-style-type: decimal;"><li><p>在linux系统中,40 pin中的SPI默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</spanp><ol style="list-style-type: lower-alpha;"><li><p>首先在'''/boot/extlinux/extlinux.conf'''中加上下面的配置</p>{| class="wikitable" style="width:800px;" |-|<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>'''<span style= 使用nmtui命令来设置静态IP地址 ==="color:#FF0000">FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-spi0-m2-cs0-cs1-spidev.dtbo</span>'''</p>|}<p>上面红色字体演示的是打开'''spi0-m2并使用cs0和cs1引脚'''的配置,其他的配置如下表所示,将对应的dtbo配置添加到'''<span style="color:#FF0000">FDTOVERLAYS</span>'''后面即可。</p></li>
# 首先运行{| class="wikitable" style="width:800px;"|-| style="text-align: 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/rockchip/overlay/rk3588-spi4-m2-cs0-spidev.dtbo'''|}</ol><ol start="2" style="list-style-type: lower-alpha;"><li>然后'''nmtui<span style="color:#FF0000">重启OPi OS Arch系统</span>'''命令</li></ol></li></ol>
<!-- --><ol start="4" style="list-style-type: decimal;"><li><p>重启后进入系统先查看下linux系统中是否存在'''spidevx.x'''的设备节点,如果存在,说明SPI已经设置好了,可以直接使用。</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''ls /dev/spidev*'''</p><p>/dev/spidev0.0 /dev/spidev0.1 /dev/spidev4.0 /dev/spidev4.1</p>|}{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''上面是打开spi0-m2-cs0-cs1-spidev和spi4-m1-cs0-cs1-spidev后显示的结果。'''</p></big>|}</li><li><p>然后先不短接SPI0或者SPI4的MOSI和MISO两个引脚,运行spidev_test的输出结果如下所示,可以看到TX和RX的数据不一致</p>{| class="wikitable" style="width:800px;" |-|<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 '''<span style="color:#FF0000">40 00 00 00 00 95</span>''' 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 '''<span style="color:#FF0000">FF FF FF FF FF FF</span>''' 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>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''sudo spidev_test -v -D /dev/spidev4.0'''</p><p>'''或者'''</p><p>[orangepi@orangepi ~]$ '''nmtuisudo 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 '''<span style="color:# 然后选择FF0000">40 00 00 00 00 95</span>'''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 'Edit a connection''<span style="color:#FF0000">40 00 00 00 00 95</span>'并按下回车键'' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D | ......@.…▒..................▒.</p>|}</li></ol>
[[File:media<span id="pin-i2c测试-2"></d26bc0465b36f531a18b6d8a19625fab.png]]span>
# 然后选择需要设置静态IP地址的网络接口,比如设置'''Ethernet'''接口的静态IP地址选择'''Wired connection 1'''或者'''Wired connection 2'''=== 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/94aea4e82529fa735592f8d010b681d1plus-5-479.png]]</p></li><li><p>4组I2C总线在40pin中对应的引脚如下表所示。I2C2_M0和I2C2_M4同一时间只能使用其中一组,不能同时使用,它们都是同一个I2C2,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的I2C2总线。</p></li>
{| class="wikitable" style="width:800px;" |-| 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号引脚'''|}</ol><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>{| class="wikitable" style="width:800px;" |-|<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>'''<span style="color:# 然后通过FF0000">FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-i2c2-m0.dtbo</span>'''Tab</p>|}<p>上面红色字体演示的是打开'''键选择i2c2-m0'''Edit的配置,其他的配置如下表所示,将对应的dtbo配置添加到'''<span style="color:#FF0000">FDTOVERLAYS</span>'''并按下回车键后面即可。</p></li>
{| class="wikitable" style="width:800px;" |-| 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;"| '''I2C2_M4'''| style="text-align: left;"| '''/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'''|}</ol><ol start="2" style="list-style-type: lower-alpha;"><li>然后'''<span style="color:#FF0000">重启OPi OS Arch系统</span>'''</li></ol></li></ol><!-- --><ol start="4" style="list-style-type: decimal;"><li><p>启动linux系统后,先确认下'''/dev'''下存在需要使用I2C的设备节点</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ls /dev/i2c-*'''</p>|}</li><li><p>然后在40 pin接口对应的I2C引脚上接一个I2C设备</p></li><li><p>然后使用'''i2cdetect -y'''命令如果能检测到连接的i2c设备的地址,就说明i2c能正常使用</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''sudo pacman -S i2c-tools''' #首先现在i2c工具</p><p>[orangepi@orangepi ~]$ '''sudo i2cdetect -y 2''' #i2c2的测试命令</p><p>[File:mediaorangepi@orangepi ~]$ '''sudo i2cdetect -y 4''' #i2c4的测试命令</d064997e35c46cc968fd96c7102d16de.pngp><p>[orangepi@orangepi ~]$ '''sudo i2cdetect -y 5''' #i2c5的测试命令</p><p>[orangepi@orangepi ~]$ '''sudo i2cdetect -y 8''' #i2c8的测试命令</p>|}</li></ol>
# 然后通过Tab键将光标移动到下图所示的'''<Automatic>'''位置进行IPv4的配置<span id="pin的uart测试-2"></span>
[[File:media/5fabf89cecc0e3a7b75a76006be9b2db.png]]=== 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:plus-5-479.png]]</p></li><li><p>在linux系统中,40 pin中的UART默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先在'''/boot/extlinux/extlinux.conf'''中加上下面的配置</p>{| class="wikitable" style="width:800px;" |-|<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>'''<span style="color:# 然后回车,通过上下方向键选择FF0000">FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-uart1-m1.dtbo</span>'''</p>|}<p>上面红色字体演示的是打开'''uart1-m1'''的配置,其他的配置如下表所示,将对应的dtbo配置添加到''Manual'<span style="color:#FF0000">FDTOVERLAYS</span>''',然后回车确定后面即可。</p></li>
[[File{| class="wikitable" style="width:media800px;"|-| 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/d7af3737379521191a730b2956bab39erk3588-uart3-m1.png]]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'''|}</ol>
<ol start="2" style="list-style-type: lower-alpha;"><li>然后'''<span style="color:# 选择完后的显示如下图所示FF0000">重启OPi OS Arch系统</span>'''</li></ol></li></ol>[[File<!-- --><ol start="3" style="list-style-type:mediadecimal;"><li><p>进入linux系统后,先确认下'''/069275e6daffa6daf0e569a97aa37699.png]dev'''下是否存在对应uart的设备节点</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''ls /dev/ttyS*'''</p>|}</li><li><p>然后开始测试uart接口,先使用杜邦线短接要测试的uart接口的rx和tx引脚</p></li>
# 然后通过Tab键将光标移动到{| class="wikitable" style="width:800px;"|-| 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;Show>"| '''35号引脚'''|}</ol><ol start="5" style="list-style-type: decimal;"><li><p>使用'''gpio serial'''命令测试串口的回环功能如下所示,如果能看到下面的打印,说明串口通信正常(ttySX需要替换为对应uart的节点名,请不要照抄)</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''sudo gpio serial /dev/ttySX'''</p><p>[sudo] password for orangepi: #在这里输入密码</p>
[[File:media/c58f2e40d2d2dcee017103071d3cad95.png]]
# 然后回车,回车后会弹出下面的设置界面<p>Out: 0: -> 0</p><p>Out: 1: -> 1</p><p>Out: 2: -> 2</p><p>Out: 3: -> 3</p><p>Out: 4: -> 4</p><p>Out: 5: -> 5^C</p>|}</li></ol>
[[File:media<span id="pwm的测试方法-1"></e3617e1dc9e606c7370a8ec226cd7ea8.png]]span>
# 然后就可以在下图所示的位置设置IP地址(Addresses)、网关(Gateway)和DNS服务器的地址(里面还有很多其他设置选项,请自行探索),'''请根据自己的具体需求来设置,下图中设置的值只是一个示例'''=== 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/95a7640c6218cf925d16c3d49bc129d4plus-5-479.png]]</p></li><li><p>PWM在40pin中对应的引脚如下表所示。PWM0_M0和PWM0_M2、PWM1_M0和PWM1_M2、PWM14_M0和PWM14_M2同一时间只能使用其中一个,不能同时使用,它们都是同一个PWM,只是接到不同的引脚上去了而已,请不要以为它们是两个不同的PWM总线。</p></li>
# 设置完后将光标移动到右下角的{| class="wikitable" style="width:800px;"|-| style="text-align: left;"| '''PWM总线'''| 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><ol start="3" style="list-style-type: decimal;OK>"><li><p>在linux系统中,40 pin中的PWM默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先在'''/boot/extlinux/extlinux.conf'''中加上下面的配置</p>{| class="wikitable" style="width:800px;" |-|<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>'''<span style="color:#FF0000">FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-pwm0-m0.dtbo</span>'''</p>|}<p>上面红色字体演示的是打开'''pwm0-m0'''的配置,其他的配置如下表所示,将对应的dtbo配置添加到'''<span style="color:#FF0000">FDTOVERLAYS</span>''',然后回车确认后面即可。</p></li>
[[File{| class="wikitable" style="width:media800px;"|-| style="text-align: left;"| '''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/1b3cc3dff83bef7d056d89527d8587d1rk3588-pwm14-m2.png]]dtbo'''|}</ol>
<ol style="list-style-type: lower-alpha;"><li>然后'''<span style="color:# 然后点击FF0000">重启OPi OS Arch系统</span>'''<</li></ol></li></ol><!-- --><ol start="4" style="list-style-type: decimal;Back>"><li><p>当打开一个pwm后,在'''/sys/class/pwm/'''中就会多出一个pwmchipX(X为具体的的数字),比如打开pwm14后,查看'''/sys/class/pwm/'''下的pwmchipX会由两个变成了三个</p>{| class="wikitable" style="width:800px;" |-|<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/b5d562738f610e46e18d0e2b71ae5f75plus5-814.png]]
# 然后选择</div></li><li><p>然后由下表可知,pwm14寄存器的基地址为febf0020,再看 '''Activate a connectionls /sys/class/pwm/ -l''',再将光标移动到'''<OK>''',最后点击回车命令的输出,可以看到pwmchip2中链接到了febf0020.pwm,所以pwm14对应pwmchip为pwmchip2</p><p>[[File:plus5-815.png]]</p></li><li><p>然后使用下面的命令可以让pwm14输出一个50Hz的方波(请先切换到root用户,再执行下面的命令)</p></li>
{| class="wikitable" style="width:800px;" |-|[[File:mediaroot@orangepi ~]# '''echo 0 > /sys/class/pwm/pwmchip2/dcc055c7849cf758c080780d2cd4fe60.png]]export'''
[root@orangepi ~]# 然后选择需要设置的网络接口,比如'''Wired connection 2''',然后将光标移动到'''<Deactivateecho 20000000 >''',再按下回车键禁用'''Wired connection 2/sys/class/pwm/pwmchip2/pwm0/period'''
[[File:mediaroot@orangepi ~]# '''echo 1000000 > /sys/class/pwm/pwmchip2/pwm0/2365b3686a6260b12552c9a07ef7d738.png]]duty_cycle'''
[root@orangepi ~]# 然重新选择并使能'''Wired connection 2echo 1 > /sys/class/pwm/pwmchip2/pwm0/enable''',这样前面设置的静态IP就会生效了|}
[[File:media/ca9b82e063071009c7f223ec771d4d5eplus5-816.png]]</ol><ol start="8" style="list-style-type: decimal;"><li>上面演示的pwm14的测试方法,其他pwm测试方法都是类似的。</li></ol>
# 然后通过'''<Back>'''和'''Quit'''按钮就可以退出nmtui<span id="can的测试方法-1"></span>
[[File:media/695d3e846f595e5cffa36e73ffa61123.png]] [[File:media/6dbccb5e63f3b7ff27a907b2814448d3.png]]=== CAN的测试方法 ===
# 然后通过'''ip addr show'''就能看到网口的IP地址已经变成前面设置的静态IP地址了<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:plus-5-479.png]]</p></li><li><p>在linux系统中,40 pin中的CAN默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先在'''/boot/extlinux/extlinux.conf'''中加上下面的配置</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi:~]$ '''ip addr show enP4p65s0sudo 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>'''<span style="color:#FF0000">FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-can0-m0.dtbo</span>'''</p>|}<p>上面红色字体演示的是打开'''can0-m0'''的配置,其他的配置如下表所示,将对应的dtbo配置添加到'''<span style="color:#FF0000">FDTOVERLAYS</span>'''后面即可。</p></li>
3{| class="wikitable" style="width: eth0800px;"|-| style="text-align: left;"| '''CAN总线'''| style="text-align: left;"| '''dtbo的配置'''|-| style="text-align: left;"| '''can0-m0'''| style="text-align: <left;BROADCAST,MULTICAST,UP,LOWER_UP>"| '''/dtbs/rockchip/overlay/rk3588-can0-m0.dtbo'''|-| style="text-align: left;"| '''can1-m0'''| style="text-align: left; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000"| '''/dtbs/rockchip/overlay/rk3588-can1-m0.dtbo'''|}</ol>
link/ether 5e<ol start="2" style="list-style-type:aclower-alpha;"><li>然后'''<span style="color:14:a5:92:b3 brd ff:ff:ff:ff:ff:ff#FF0000">重启OPi OS Arch系统</span>'''</li></ol></li></ol>
inet <!-- --><ol start="3" style="list-style-type: decimal;"><li><p>进入linux系统后,使用'''192.168.1.100sudo ifconfig -a'''命令如果能看到CAN的设备节点,就说明CAN已正确打开了</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''sudo pacman -Syy net-tools'''</p><p>[orangepi@orangepi ~]$ '''sudo ifconfig -a'''</p><p>can0: flags=128<NOARP> mtu 16</p>::<p>unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)</24 brd 192p>::<p>RX packets 0 bytes 0 (0.1680 B)</p>::<p>RX errors 0 dropped 0 overruns 0 frame 0</p>::<p>TX packets 0 bytes 0 (0.1.255 scope global noprefixroute enP4p65s00 B)</p>::<p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</p>::<p>device interrupt 94</p>
valid_lft forever preferred_lft forever
inet6 241e<p>can1: flags=128<NOARP> 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>:3b8:3240<p>RX packets 0 bytes 0 (0.0 B)</p>:c3a0:e269<p>RX errors 0 dropped 0 overruns 0 frame 0</p>:8305:dc08<p>TX packets 0 bytes 0 (0.0 B)</p>:135e:<p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</p>::<p>device interrupt 95</p>|}</li><li><p>CAN0和CAN1对应的引脚为</p></64 scope global dynamic noprefixrouteli>
valid_lft 259149sec preferred_lft 172749sec{| class="wikitable" style="width:800px;"|-|| 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号引脚'''|}</ol><ol start="5" style="list-style-type: decimal;"><li>使用CANalyst-II分析仪测试CAN收发消息的方法请参考下[[Orange Pi 5 Plus#使用CANalyst-II分析仪测试收发消息|'''使用CANalyst-II分析仪测试收发消息''']]一小节的内容。</li></ol>
inet6 fe80::957d:bbbe:4928:3604<span id="linux-sdkorangepi-build使用说明"></64 scope link noprefixroutespan>
valid_lft forever preferred_lft forever= '''Linux SDK——orangepi-build使用说明''' =
# 然后就可以测试网络的连通性来检查IP地址是否配置OK了,'''ping'''命令可以通过'''Ctrl+C'''快捷键来中断运行== 编译系统需求 ==
orangepi@orangepi{| class="wikitable" style="background-color:~$ #ffffdc;width:800px;" |-| <big>'''ping 192.168我们可以在x64的电脑中交叉编译开发板的Linux镜像,也可以在开发板的Ubuntu22.1.47 -I enP4p65s004系统中来编译开发板的Linux镜像,请根据自己的喜好二选一。'''
PING 192.168.1.47 (192.168.1.47) from 192.168.1.188 enP4p65s0: 56(84) bytes of data.
64 bytes from 192'''如果是在开发板的Ubuntu22.168.1.47: icmp_seq=1 ttl=64 time=0.233 ms04系统中使用orangepi-build来编译Linux镜像,请做好散热(尤其是SSD启动时)。如果散热没做好,容易出现文件系统跑飞的错误。'''</big>|}
64 bytes from 192<span id="使用开发板的ubuntu22.16804系统编译"></span>=== 使用开发板的Ubuntu22.1.47: icmp_seq04系统编译 =2 ttl=64 time=0.263 ms
^C<ol style="list-style-type: decimal;"><li><p>Linux SDK,即'''orangepi-build''',支持在开发板的'''<span style="color:#FF0000">Ubuntu 22.04</span>'''的上运行(其它系统没有测试过),所以下载orangepi-build前,请首先确保开发板已安装的Ubuntu版本是Ubuntu 22.04。查看开发板已安装的Ubuntu版本的命令如下所示,如果Release字段显示的不是'''<span style="color:#FF0000">22.04</span>''',说明当前使用的Ubuntu版本不符合要求,请更换系统后再进行下面的操作。</p>{| class="wikitable" style="width:800px;" |-|<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: '''<span style="color:#FF0000">22.04</span>'''</p><p>Codename: jammy</p>|}</li><li><p>'''<span style="color:#FF0000">由于内核和U-boot等源码都是存放在GitHub上的,所以编译镜像的时候请确保开发板能正常从GitHub下载代码,这点是非常重要的。</span>'''</p></li></ol>
-– 192<span id="使用x64的ubuntu22.168.1.47 ping statistics —04电脑编译"></span>
5 packets transmitted, 5 received, 0% packet loss, time 4042ms=== 使用x64的Ubuntu22.04电脑编译 ===
rtt min<ol style="list-style-type: decimal;"><li><p>Linux SDK,即'''orangepi-build''',支持在安装有'''<span style="color:#FF0000">Ubuntu 22.04</avgspan>'''的电脑上运行,所以下载orangepi-build前,请首先确保自己电脑已安装的Ubuntu版本是Ubuntu 22.04。查看电脑已安装的Ubuntu版本的命令如下所示,如果Release字段显示的不是'''<span style="color:#FF0000">22.04</maxspan>''',说明当前使用的Ubuntu版本不符合要求,请更换系统后再进行下面的操作。</mdev p>{| class="wikitable" style= 0"width:800px;" |-|<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: '''<span style="color:#FF0000">22.04</span>'''</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 '''<span style="color:#FF0000">amd64</span>'''版本的安装镜像下载地址为:</p>{| class="wikitable" style="width:800px;" |-|<p>'''https://mirrors.tuna.tsinghua.edu.233cn/0ubuntu-releases/22.26204/0ubuntu-22.27504-desktop-amd64.iso'''</0p><p>或者</p><p>'''https://repo.huaweicloud.015 mscom/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>{| class="wikitable" style="width:800px;" |-|'''https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/'''|}</ol>
<span idol start="使用nmcli命令来设置静态ip地址2"style="list-style-type: lower-alpha;"><li><p>注意Ubuntu版本需要切换到22.04</spanp><p>[[File:plus-5-818.png]]</p></li><li><p>需要替换的'''/etc/apt/sources.list'''文件的内容为</p>{| class="wikitable" style=== 使用nmcli命令来设置静态IP地址 ===="width:800px;" |-|<p>test@test:~$ '''sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak'''</p><p>test@test:~$ '''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>
# 如果要设置网口的静态IP地址,请先将网线插入开发板,'''如果需要设置WIFI的静态IP地址,请先连接好WIFI''',然后再开始设置静态IP地址
# 然后通过'''nmcli con show'''命令可以查看网络设备的名字,如下所示,'''Wired connection 1'''和'''Wired connection 2'''为以太网接口的名字
orangepi<p># 预发布软件源,不建议启用</p><p># 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>{| class="wikitable" style="width:800px;" |-|<p>test@orangepitest:~$ '''nmcli con showsudo apt update'''</p>|}</li><li><p>'''<span style="color:#FF0000">另外,由于内核和U-boot等源码都是存放在GitHub上的,所以编译镜像的时候请确保电脑能正常从GitHub下载代码,这点是非常重要的。</span>'''</p></li></ol></li></ol>NAME UUID TYPE DEVICE<span id="获取linux-sdk的源码"></span>
Wired connection 1 c043c817-1156-3b72-a559-9a8cd642bf70 ethernet enP3p49s0== 获取linux sdk的源码 ==
Wired connection 2 6f74598a=== 从github下载orangepi-ccc6-358b-be05-87eaf34df930 ethernet enP4p65s0build ===
# 然后输入下面的命令,其中## '''“Wired connection 1”''' 表示设置以太网口的静态IP地址,如果需要设置其它网口的静态IP地址,请修改为对应网络接口对应的名字(通过'''nmcli con show'''命令可以获取到)## '''ipv4.addresses'''后面是要设置的静态IP地址,可以修改为自己想要设置的值## '''ipv4.gateway''' 表示网关的地址linux sdk其实指的就是orangepi-build这套代码,orangepi-build是基于armbian build编译系统修改而来的,使用orangepi-build可以编译出多个版本的linux镜像。首先下载orangepi-build的代码,命令如下所示:
orangepi::{| class="wikitable" style="width:800px;" |-|test@orangepitest:~$ '''nmcli con mod “Wired connection 1” \sudo apt-get update'''
test@test:~$ '''ipv4.addresses “192.168.1.110” \sudo apt-get install -y git'''
test@test:~$ '''ipv4git clone https://github.gateway “192com/orangepi-xunlong/orangepi-build.168.1.1” \git <span style="color:#FF0000">-b next</span>'''|}
::{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''ipv4.dns “8.8.8.8” \注意,Orange Pi 5 Plus开发板是需要下载orangepi-build的<span style="color:#FF0000">next</span>分支源码的,上面的git clone命令需要指定orangepi-build源码的分支为next。'''
'''ipv4[[File:plus-5-819.method “manual”'''png]]
# 然后重启linux系统
orangepi@orangepi:~$ '''sudo reboot通过git clone命令下载orangepi-build的代码是不需要输入github账号的用户名和密码的(下载本手册中的其他代码也是一样的),如果如输入git clone命令后Ubuntu PC提示需要输入github账号的用户名和密码,一般都是git clone后面的orangepi-build仓库的地址输入错误了,请仔细检查命令拼写是否有错误,而不是以为我们这里忘了提供github账号的用户名和密码。'''</big>|}
# 然后重新进入linux系统使用'''ip addr show'''命令就可以看到IP地址已经设置为想要的值了<ol start="2" style="list-style-type: decimal;"><li>开发板当前使用的u-boot和linux内核版本如下所示</li>
orangepi@orangepi{| class="wikitable" style="width:~$ 800px;" |-| style="text-align: left;"| '''分支'''| style="text-align: left;"| '''u-boot版本'''| style="text-align: left;"| '''linux内核版本'''|-| style="text-align: left;"| '''legacy'''| style="text-align: left;"| '''u-boot 2017.09'''| style="text-align: left;"| '''ip addr showlinux5.10'''|}
2{| class="wikitable" style="background-color: enP3p49s0#ffffdc;width: <BROADCAST,MULTICAST,UP,LOWER_UP>800px; mtu 1500 qdisc mq state UP group default qlen 1000" |-| <big>'''这里所说的分支和orangepi-build源代码的分支不是同一个东西,请不要搞混了。此分支主要是用来区分不同内核源码版本的。'''
link'''目前RK提供的linux5.10 bsp内核我们定义为legacy分支。如果以后支持主线内核了,就会添加一个current分支。'''</ether 00big>|}</ol><ol start="3" style="list-style-type:e0decimal;"><li><p>orangepi-build下载完后会包含下面的文件和文件夹</p><ol style="list-style-type:4clower-alpha;"><li><p>'''build.sh''':68编译启动脚本</p></li><li><p>'''external''':00包含编译镜像需要用的配置文件、特定的脚本以及部分程序的源码等</p></li><li><p>'''LICENSE''':26 brd ffGPL 2许可证文件</p></li><li><p>'''README.md''':fforangepi-build说明文件</p></li><li><p>'''scripts''':ff编译linux镜像的通用脚本</p></li></ol>{| class="wikitable" style="width:ff800px;" |-|<p>test@test:~/orangepi-build$ '''ls'''</p><p>'''build.sh external LICENSE README.md scripts'''</p>|}{| class="wikitable" style="background-color:ff#ffffdc;width:ff800px;" |-| <big><p>'''如果是从github下载的orangepi-build的代码,下载完后你可能会发现orangepi-build中并没有包含u-boot和linux内核的源码,也没有编译u-boot和linux内核需要用到交叉编译工具链,这是正常的,因为这些东西都存放在其它单独的github仓库或者某些服务器上了(下文会详述其地址)。orangepi-build在脚本和配置文件中会指定u-boot、linux内核和交叉编译工具链的地址,运行orangepi-build时,当其发现本地没有这些东西,会自动去相应的地方下载的。'''</p></big>|}</li></ol>
inet '''192.168.1.110'''/32 scope global noprefixroute enP3p49s0=== 下载交叉编译工具链 ===
valid_lft forever preferred_lft forever{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''只有在x64的电脑中使用orangepi-build编译镜像才会下载交叉编译工具链。在开发板的Ubuntu22.04中编译开发板的linux镜像是不会下载交叉编译工具链的,此时orangepi-build/toolchains会是一个空文件夹。'''</big>|}
inet6 fe80<ol style="list-style-type::9005:95ac:b9c0:2bebdecimal;"><li><p>orangepi-build第一次运行的时候会自动下载交叉编译工具链放在'''toolchains'''文件夹中,每次运行orangepi-build的build.sh脚本后,都会检查'''toolchains'''中的交叉编译工具链是否都存在,如果不存在则会重新开始下载,如果存在则直接使用,不会重复下载。</64 scope link noprefixroutep><div class="figure">
valid_lft forever preferred_lft forever[[File:plus-5-820.png]]
<span id="m.2-e-key-pcie-wifi6蓝牙模块的使用方法"/div></spanli>== M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 == # 首先需要购买一个PCIe WIFI6+蓝牙模块<li><p>交叉编译工具链在中国境内的镜像网址为清华大学的开源软件镜像站</p>{| class="wikitable" style="width:800px;"
|-
! |<p>'''序号https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain/'''</p>|}! '''型号'''</li>! <li><p>'''实物图片toolchains'''下载完后会包含多个版本的交叉编译工具链,开发板只会使用其中的两个</p>! '''已支持的OS'''{| class="wikitable" style="width:800px;"
|-
| <p>test@test:~/orangepi-build$ '''1ls 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>| '''AX200''' '''(PCIE+USB接口)'''}</li><li><p>编译linux内核源码使用的交叉编译工具链为</p>| '''[[File<ol style="list-style-type:medialower-alpha;"><li><p>linux5.10</82893e51bf9b88e7de55f1851d3258fa.png]]'''p>{| '''Debian''' '''Ubuntu''' '''OpenWRT''' '''OPi OS Arch'''class="wikitable" style="width:800px;"
|-
| <p>'''gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu'''</p>| '''AX210''' '''(PCIE+USB接口)'''}</li></ol></li><li><p>编译u-boot源码使用的交叉编译工具链为</p>| '''[[File<ol style="list-style-type:medialower-alpha;"><li><p>v2017.09</0780dbc2efb3d2d207de783b499d324f.png]]'''p>{| '''Debian''' '''Ubuntu''' '''OpenWRT''' '''OPi OS Arch'''class="wikitable" style="width:800px;"
|-
| '''3'''| <p>'''RTL8852BE'gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu'' '''(PCIE+USB接口)'''| '''[[File:media</3107bc4a7d847ec89a39d0fa01dae5be.png]]'''| '''Debian''' '''Ubuntu''' '''Android12''' '''OPi OS Arch''' '''OPi OS Droid'''p>
|}
</li></ol>
</li></ol>
# 然后将模块插入开发板的M.2 E=== orangepi-Key接口中并固定好,位置如下图所示:build完整目录结构说明 ===
[[File<ol style="list-style-type:mediadecimal;"><li><p>orangepi-build仓库下载完后并不包含linux内核、u-boot的源码以及交叉编译工具链,linux内核和u-boot的源码存放在独立的git仓库中</p><ol style="list-style-type: lower-alpha;"><li><p>linux内核源码存放的git仓库如下所示:</p>{| class="wikitable" style="width:800px;" |-|<p>'''https://github.com/orangepi-xunlong/linux-orangepi/tree/d8e854d861505b4dfca06d5573b8b642orange-pi-5.png]]10-rk3588'''</p>|}# 然后在Linux系统中打开WIFI模块的配置,步骤如下所示:</li>## 首先运行下<li><p>u-boot源码存放的git仓库如下所示:</p>{| class="wikitable" style="width:800px;" |-|<p>'''https://github.com/orangepi-configxunlong/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>'''sudobuild.sh''': 编译启动脚本</p></li><li><p>'''external''': 包含编译镜像需要用的配置文件、特定功能的脚本以及部分程序的源码,编译镜像过程中缓存的rootfs压缩包也存放在external中</p></li><li><p>'''kernel''': 存放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''': 存放编译生成的u-boot、linux等deb包、编译日志以及编译生成的镜像等文件</p></li><li><p>'''scripts''': 编译linux镜像的通用脚本</p></li><li><p>'''toolchains''': 存放交叉编译工具链</p></li><li><p>'''u-boot''': 存放u-boot的源码,里面名为'''v2017.09-rk3588'''的文件夹存放的就是RK3588/RK3588S系列开发板legacy分支的u-boot源码,u-boot源码的文件夹的名字请不要手动修改,如果修改了,编译系统运行时会重新下载u-boot源码</p></li><li><p>'''userpatches''': 存放编译脚本需要用到的配置文件</p></li></ol>{| class="wikitable" style="width:800px;" |-|<p>test@orangepitest:~/orangepi-build$ '''sudo orangepils'''</p><p>'''build.sh external kernel LICENSE output README.md scripts toolchains u-configboot userpatches'''</p>|}</li></ol>
# 然后选择'''System'''== 编译u-boot ==
[[File<ol style="list-style-type:mediadecimal;"><li><p>运行build.sh脚本,记得加sudo权限</5b020440753c1c1d150d0993f08eacfdp>{| class="wikitable" style="width:800px;" |-|<p>test@test:~/orangepi-build$ '''sudo .png]]/build.sh'''</p>|}</li><li><p>选择'''U-boot package''',然后回车</p><div class="figure">
# 然后选择'''Hardware'''[[File:plus5-821.png]]
[[File:media</0d5151e38da17701cc4920f1997e064c.png]]div></li><li><p>接着选择开发板的型号</p><div class="figure">
# 然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中'''wifi[[File:plus5-pcie'''配置822.png]]
</div></li><li><p>然后就会开始编译u-boot,编译时提示的部分信息说明如下</p><ol style="list-style-type: lower-alpha;"><li><p>u-boot源码的版本</p>{| class="wikitable" style="width:800px;" |-|<p>[ o.k. ] Compiling u-boot [ '''v2017.09''' ]</p>|}</li><li><p>交叉编译工具链的版本</p>{| class="wikitable" style="width:800px;" |-|<p>[ o.k. ] Compiler version [ '''aarch64-linux-gnu-gcc 7.4.1''' ]</p>|}</li><li><p>编译生成的u-boot deb包的路径</p>{| class="wikitable" style="width:800px;" |-|<p>[o.k. ] Target directory [ '''orangepi-build/output/debs/u-boot''' ]</p>|}</li><li><p>编译生成的u-boot deb包的包名</p>{| class="wikitable" style="width:800px;" |-|<p>[o.k. ] Filename [ '''linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb''' ]</p>|}</li><li><p>编译使用的时间</p>{| class="wikitable" style="width:media800px;" |-|<p>[ o.k. ] Runtime [ '''1 min''' ]</968610ad438d5321b038d3a77d144bbdp>|}</li><li><p>重复编译u-boot的命令,使用下面的命令无需通过图形界面选择,可以直接开始编译u-boot</p>{| class="wikitable" style="width:800px;" |-|<p>[ o.k.png]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>{| class="wikitable" style="width:800px;" |-|<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>{| class="wikitable" style="width:800px;" |-|<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>{| class="wikitable" style="width:800px;" |-|<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>
# 然后选择'''<Save>'''保存
[[File<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>{| class="wikitable" style="width:800px;" |-|<p>test@test:media~/orangepi-build$ '''vim userpatches/0b7277228937ba33db13c06e82225708config-default.png]]conf'''</p><p>IGNORE_UPDATES="'''<span style="color:# 然后选择FF0000">yes</span>'''<quot;Back></p>|}</li><li><p>调试u-boot代码时,可以使用下面的方法来更新linux镜像中的u-boot进行测试</p><ol style="list-style-type: lower-alpha;"><li><p>将编译好的u-boot的deb包上传到开发板的linux系统中</p>{| class="wikitable" style="width:800px;" |-|<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 [[Filemailto:root@192.168.1.xxx:media/ec12dd17ab5e65c5fd03d54eadd60a2froot root@192.png]168.1.xxx:/root]'''</p>|}</li><li><p>然后登录到开发板,卸载已安装的u-boot的deb包</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~# 然后选择'''<apt purge -y linux-u-boot-orangepi5plus-legacy'''</p>|}</li><li><p>再安装刚才上传的新的u-boot的deb包</p>{| class="wikitable" style="width:800px;Reboot>" |-|<p>root@orangepi:~# '''dpkg -i''' '''linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb'''</p>|}</li><li><p>然后运行 nand-sata-install脚本</p>{| class="wikitable" style="width:800px;" |-|<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:mediaplus5-823.png]]</03310676d04e3df78bf5a4f3536ad49cp></li><li><p>按下回车键后首先会弹出一个Warning</p><p>[[File:plus5-824.png]]</p></li><li><p>再按下回车键就会开始更新u-boot,更新完后会显示下面的信息</p><p>[[File:plus5-825.png]]</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>{| class="wikitable" style="width:800px;" |-|'''orangepi-build/u-boot/v2017.09-rk3588/configs/orangepi_5_plus_defconfig'''|}<li><p>u-boot 2017.09源码中,开发板使用dts文件为</p></li>{| class="wikitable" style="width:800px;" |-|'''orangepi-build/u-boot/v2017.09-rk3588/arch/arm/dts/rk3588-orangepi-5-plus.dts'''|}</ol></li></ol>
# 重启系统后如果一切正常,此时使用下面的命令就能看到会多了一个WIFI的设备节点了。如果看不到,请先检查前面的配置是否有问题<span id="编译linux内核"></span>
[orangepi@orangepi ~]$ '''ip addr show'''== 编译linux内核 ==
# WIFI的连接和测试方法请参看[[#_WIFI连接测试<ol style="list-style-type: decimal;"><li><p>运行build.sh脚本,记得加sudo权限</p>{|class="wikitable" style="width:800px;" |-|<p>test@test:~/orangepi-build$ '''WIFI连接测试sudo ./build.sh''']]一节,这里不再赘述。</p># 蓝牙的测试方法请参看[[#_桌面版镜像的测试方法_1|}</li><li><p>选择'''蓝牙使用方法Kernel package''']]一节,这里不再赘述。,然后回车</p><span iddiv class="ssh远程登录开发板figure"></span>== SSH远程登录开发板 ==
'''Linux系统默认都开启了ssh远程登录,并且允许root用户登录系统。ssh登录前首先需要确保以太网或者wifi网络已连接,然后使用ip addr命令或者通过查看路由器的方式获取开发板的IP地址。''' <span id="ubuntu下ssh远程登录开发板"></span>=== Ubuntu下SSH远程登录开发板 === # 获取开发板的IP地址# 然后就可以通过ssh命令远程登录linux系统 test@test:~$ '''ssh''' [mailto[File:root@192plus5-826.168.1.36 '''root@192.168.1.'''png]]'''xxx''' (需要替换为开发板的IP地址) root@192.168.1.xx’s password: (在这里输入密码,默认密码为orangepi) '''注意,输入密码的时候,屏幕上是不会显示输入的密码的具体内容的,请不要以为是有什么故障,输入完后直接回车即可。''' '''如果提示拒绝连接,只要使用的是Orange Pi提供的镜像,就请不要怀疑orangepi这个密码是不是不对,而是要找其他原因。''' # 成功登录系统后的显示如下图所示
</div></li>
<li><p>接着选择开发板的型号</p>
<div class="figure">
[[File:media/94f91ae178aa3f3432998e5f31cfe179plus5-827.png|953iring_001]]
</div></li><li><p>然后会提示是否需要显示内核配置界面,如果不需要修改内核配置,则选择第一个即可,如果需要修改内核配置,则选择第二个</p><p>[[File:plus5-828.png]]</p></li><li><p>如果第4) 步选择了需要显示内核配置菜单(第二个选项),则会弹出通过'''如果ssh无法正常登陆linux系统,首先请检查下开发板的IP地址是否能ping通,如果ping通没问题的话,可以通过串口或者HDMI显示器登录linux系统然后在开发板上输入下面的命令后再尝试是否能连接:make menuconfig'''打开的内核配置的界面,此时可以直接修改内核的配置,修改完后再保存退出即可,退出后会开始编译内核源码</p><p>[[File:plus5-829.png]]</p></li></ol>
root<!-- --><ol style="list-style-type: lower-alpha;"><li><p>如果不需要修改内核的配置选项,在运行build.sh脚本时,传入'''KERNEL_CONFIGURE=no'''就可临时屏蔽弹出内核的配置界面了</p>{| class="wikitable" style="width:800px;" |-|<p>test@orangepitest:~# /orangepi-build$ '''reset_sshsudo ./build.shKERNEL_CONFIGURE=no'''</p>|}</li><li><p>也可以设置'''orangepi-build/userpatches/config-default.conf'''配置文件中的'''KERNEL_CONFIGURE=no''',这样可以永久禁用这个功能</p></li><li><p>编译内核的时候如果提示下面的错误,这是由于Ubuntu PC的终端界面太小,导致'''make menuconfig'''的界面无法显示,请把Ubuntu PC的终端调到最大,然后重新运行build.sh脚本</p><p>[[File:plus5-830.png]]</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>{| class="wikitable" style="width:800px;" |-|<p>[ o.k. ] Compiling current kernel [ '''如果还不行,请重烧系统试下。5.10.110''']</p>|}<span id/li><li><p>使用的交叉编译工具链的版本</p>{| class="wikitable" style="width:800px;" |-|<p>[ o.k. ] Compiler version [ '''aarch64-none-linux-gnu-gcc 11.2.1''' ]</p>|}</li><li><p>内核默认使用的配置文件以及它存放的路径</p>{| class="wikitable" style="windows下ssh远程登录开发板width:800px;"|-|<p>[ o.k. ] Using kernel config file [ '''config/kernel/linux-rockchip-rk3588-legacy.config''' ]</p>|}</li><li><p>编译生成的内核相关的deb包的路径</spanp>{| class="wikitable" style="width:800px;" |-|<p>[ o.k. ] Target directory [ '''orangepi-build/output/debs/''' ]</p>|}</li><li><p>编译生成的内核镜像deb包的包名</p>{| class= Windows下SSH远程登录开发板 "wikitable" style="width:800px;" |-|<p>[ o.k. ] File name [ '''linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb''' ]</p>|}</li><li><p>编译使用的时间</p>{| class="wikitable" style="width:800px;" |-|<p>[ o.k. ] Runtime [ '''5 min''' ]</p>|}</li><li><p>最后会显示重复编译上一次选择的内核的编译命令,使用下面的命令无需通过图形界面选择,可以直接开始编译内核源码</p>{| class="wikitable" style="width:800px;" |-|<p>[ o.k. ] 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></li></ol>{| class="wikitable" style="width:800px;" |-|<p>test@test:~/orangepi-build$ '''ls output/debs/linux-*'''</p><p>output/debs/linux-dtb-legacy-rockchip-rk3588_1.0.0_arm64.deb</p><p>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><li><p>生成的linux-image的deb包包含的文件如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>使用下面的命令可以解压deb包</p></li>
# 首先获取开发板的IP地址{| class="wikitable" style="width:800px;" # 在windows下可以使用MobaXterm远程登录开发板,首先新建一个ssh会话|-## 打开'''Session'''|## 然后在'''Session Setting'''中选择'''SSH'''## 然后在'''Remote host'''中输入开发板的IP地址## 然后在'''Specify username'''中输入linux系统的用户名'''root'''或'''<p>test@test:~/orangepi-build$ '''## 最后点击'''OKcd output/debs'''即可</p>
[[Filetest@test:media~/e6c71d27251439f7a6a50d4060e4de9c.png]]orangepi_build/output/debs$ '''mkdir test'''
# 然后会提示输入密码,默认root和orangepi用户的密码都为orangepitest@test:~/orangepi_build/output/debs$ '''cp \'''
'''注意,输入密码的时候,屏幕上是不会显示输入的密码的具体内容的,请不要以为是有什么故障,输入完后直接回车即可。linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb test/'''
[[Filetest@test:media~/6dea5ad1f260d425d8a12c2719e6e5de.png]]orangepi_build/output/debs$ '''cd test'''
# 成功登录系统后的显示如下图所示test@test:~/orangepi_build/output/debs/test$ '''dpkg -x \'''
[[File:media/574f6acd6e720878669f4d1a9217769f'''linux-image-legacy-rockchip-rk3588_1.png]]0.0_arm64.deb .'''
<span id="adb的使用方法"><test@test:~/span>== ADB的使用方法 ==orangepi_build/output/debs/test$ '''ls'''
=== 网络adb的使用方法 ==='''boot etc lib''' linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb '''usr'''|}</ol>
# 系统启动后请先确认下<ol start="2" style="list-style-type: lower-alpha;"><li><p>解压后的文件如下所示</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~/orangepi-build/output/debs/test$ '''adbdtree -L 2'''已经启动了</p><p>.</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></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>{| class="wikitable" style="width:800px;" |-|<p>test@orangepitest:~/orangepi-build$ '''ps vim userpatches/config-ax | grep “adbd”default.conf'''</p> 808 ? Sl 0<p>IGNORE_UPDATES="'''<span style="color:00 #FF0000">yes</usrspan>'''"</binp>|}</adbdli><li><p>如果对内核做了修改,可以使用下面的方法来更新开发板linux系统的内核和内核模块</p>3707 ttyFIQ0 S+ 0<ol style="list-style-type:00 grep –color=auto adbdlower-alpha;"><li><p>将编译好的linux内核的deb包上传到开发板的linux系统中</p># 然后查看下开发板的IP地址,并记下来{| class="wikitable" style="width:800px;" # 然后在Ubuntu PC上安装adb工具|-|<p>test@test:~/orangepi-build$ '''sudo apt-get updatecd output/debs'''</p> <p>test@test:~/orangepi-build/output/debs$ '''sudo 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>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~# '''aptpurge -y linux-image-legacy-rockchip-rk3588'''</p>|}</li><li><p>再安装刚才上传的新的linux内核的deb包</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~# '''dpkg -i linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb'''</p>|}</li><li><p>然后重启开发板,再查看内核相关的修改是否已生效</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~# '''reboot'''</p>|}</li></ol></li><li><p>其它有用的信息</p><ol style="list-style-type: lower-alpha;"><li><p>内核配置文件存放位置如下所示,请不要到内核源码中去找开发板所使用的内核配置文件</p></li>{| class="wikitable" style="width:800px;" |-|'''orangepi-build/external/config/kernel/linux-rockchip-rk3588-legacy.config'''|}<li><p>开发板使用的dts文件所在的位置为</p></li>{| class="wikitable" style="width:800px;" |-|'''orangepi-build/kernel/orange-pi-5.10-rk3588/arch/arm64/boot/dts/rockchip/rk3588-orangepi-get install 5-y adbplus.dts'''|}</ol></li></ol>
# 然后使用下面的命令连接网络adb<span id="orangepi-buildkernelorange-pi-5.10-rk3588archarm64bootdtsrockchiprk3588-orangepi-5-plus.dts编译rootfs"></span>
test@test:~$ '''adb connect 192.168.1.xx:5555 #IP地址请替换为开发板的IP地址'''== 编译rootfs ==
* daemon not running<ol style="list-style-type: decimal;"><li><p>运行build.sh脚本,记得加sudo权限</p>{| class="wikitable" style="width:800px; starting now at tcp" |-|<p>test@test:5037~/orangepi-build$ '''sudo ./build.sh'''</p>|}</li><li><p>选择'''Rootfs and all deb packages''',然后回车</p></li>
* daemon started successfully<div class="figure">
connected to 192.168.1[[File:plus5-831.xx:5555png]]
test@test</div></ol><ol start="3" style="list-style-type:~$ '''adb devices'''decimal;"><li><p>接着选择开发板的型号</p><div class="figure">
List of devices attached[[File:plus5-832.png]]
</div></li><li><p>然后选择rootfs的类型(目前主要维护'''192.168.1.xx:5555 devicebullseye/focal/jammy''')</p><div class="figure">
# 然后使用下面的命令就可以登录开发板的linux系统[[File:plus5-833.png]]
test@test</div></li><li><p>然后选择镜像的类型</p><ol style="list-style-type:~$ lower-alpha;"><li><p>'''adb shellImage with console interface > (server)'''表示服务器版的镜像,体积比较小</p></li><li><p>'''Image with desktop environment'''表示带桌面的镜像,体积比较大</p><div class="figure">
'''root@orangepi5plus[[File:/# <— 看到这个提示符后说明已成功登录开发板'''plus5-834.png]]
# 使用adb上传文件到开发板的命令如下所示</div></li></ol></li><li><p>如果是编译服务器版的镜像,还可以选择编译Standard版本或者Minimal版本,Minimal版本预装的软件会比Standard版本少很多('''没特殊需求请不要选择Minimal版本,因为很多东西默认没有预装,部分功能可能用不了''')</p><div class="figure">
test@test[[File:~$ '''adb push filename /root'''plus5-835.png]]
filename: 1 file pushed. 3.7 MB</s (1075091 bytes in 0.277s)div></li><li><p>如果是编译桌面版本的镜像还需要选择桌面环境的类型,目前Ubuntu Jammy主要维护XFCE和Gnome两种桌面,Ubuntu Focal只维护XFCE桌面,Debian Bullseye主要维护XFCE和KDE桌面</p><div class="figure">
# 使用adb重启开发板的命令如下所示[[File:plus5-836.png]]
test@test</div><p>[[File:plus5-837.png]]</p><p>然后可以选择需要安装的额外的软件包。这里请按下回车键直接跳过。</p><p>[[File:plus5-838.png]]</p></li><li><p>然后就会开始编译rootfs,编译时提示的部分信息说明如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>rootfs的类型</p>{| class="wikitable" style="width:~$ 800px;" |-|<p>[ o.k. ] local not found [ Creating new rootfs cache for '''adb rebootjammy''']</p>|}</li><li><p>编译生成的rootfs压缩包的存放路径</p>{| class="wikitable" style="width:800px;" |-|<p>[ o.k. ] Target directory [ '''如果您的Windows系统中没有adb工具,可以使用RKDevTool软件(external/cache/rootfs''']</p>|}</li><li><p>编译生成的rootfs压缩包的名字</p>{| class="wikitable" style="width:800px;" |-|<p>[o.k. ] File name [#_使用RKDevTool烧录Linux镜像到TF卡中的方法|'''使用RKDevTool烧录Linux镜像到TF卡中的方法jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4''']</p>|}</li><li><p>编译使用的时间</p>{| class="wikitable" style="width:800px;" |-|<p>[ o.k. ]Runtime [ '''一小节有用到这个软件)中的adb程序。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>[[File<ol style="list-style-type:medialower-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></7b7fc88499b4e0bfe94534a34803ba14.png]]ol></li><li><p>'''在Windows中使用adb的示例如下所示:jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.list'''列出了rootfs安装的所有软件包的包名</p>{| class="wikitable" style="width:800px;" [[File|-|<p>test@test:media~/orangepi-build$ '''ls external/cache/rootfs/'''</d6ce50010881a3b7c814d9bb4d386004p><p>'''jammy-xfce-arm64.png]]f930ff6ebbac1a72108a2e100762b18f.tar.lz4'''</p><p>jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.current</p>=== 使用type<p>jammy-xfce-c数据线连接adb ===arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.list</p>|}</li></ol></li><li><p>如果需要的rootfs在'''external/cache/rootfs'''下已经存在,那么再次编译rootfs就会直接跳过编译过程,不会重新开始编译,编译镜像的时候也会去'''external/cache/rootfs'''下查找是否已经有缓存可用的rootfs,如果有就直接使用,这样可以节省大量的下载编译时间。</p></li></ol>
# 首先准备一根品质良好的Type-C数据线== 编译linux镜像 ==
[[File<ol style="list-style-type:mediadecimal;"><li><p>运行build.sh脚本,记得加sudo权限</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~/orangepi-build$ '''sudo ./d84ad9c1e0e447425ddd86cfefafca1ebuild.png]]sh'''</p>|}</li><li><p>选择'''Full OS image for flashing''',然后回车</p></li>
# 然后通过Type-C数据线连接好开发板与Ubuntu PC,开发板Type-C接口的位置如下图所示:<div class="figure">
[[File:media/293482d42e80a8b3e2962b40e834bb41plus5-839.png]]
# 然后运行下面的命令将Type</div></ol><ol start="3" style="list-C接口设置为'''device'''模式style-type: decimal;"><li><p>然后选择开发板的型号</p><div class="figure">
orangepi@orangepi[[File:~$ '''sudo set_deviceplus5-840.sh'''png]]
如果linux系统中不存在</div></li><li><p>然后选择rootfs的类型(目前主要维护'''set_device.shbullseye/focal/jammy'''脚本,请直接使用下面的命令:)</p><div class="figure">
orangepi@orangepi[[File:~$ '''sudo bash plus5-c “echo device > /sys/kernel/debug/usb/fc000000841.usb/mode”'''png]]
orangepi@orangepi</div></li><li><p>然后选择镜像的类型</p><ol style="list-style-type:~$ lower-alpha;"><li><p>'''sudo systemctl restart usbdeviceImage with console interface (server)'''表示服务器版的镜像,体积比较小</p></li><li><p>'''Image with desktop environment'''表示带桌面的镜像,体积比较大</p><div class="figure">
# 然'''后请确认下adbd已经启动了'''[[File:plus5-842.png]]
orangepi@orangepi:~$ </div></li></ol></li><li><p>如果是编译服务器版的镜像,还可以选择编译Standard版本或者Minimal版本,Minimal版本预装的软件会比Standard版本少很多('''ps -ax | grep “adbd”没特殊需求请不要选择Minimal版本,因为很多东西默认没有预装,部分功能可能用不了''')</p><div class="figure">
808 ? Sl 0[[File:00 /usr/bin/adbdplus5-843.png]]
3707 ttyFIQ0 S+ 0:00 grep –color</div></li><li><p>如果是编译桌面版本的镜像还需要选择桌面环境的类型,目前Ubuntu Jammy主要维护XFCE和Gnome两种桌面,Ubuntu Focal只维护XFCE桌面,Debian Bullseye主要维护XFCE和KDE桌面</p><div class=auto adbd"figure">
# 然后在Ubuntu PC上安装下adb工具[[File:plus5-844.png]]
test@test</div><p>[[File:~$ plus5-845.png]]</p><p>然后可以选择需要安装的额外的软件包。这里请按下回车键直接跳过。</p><p>[[File:plus5-846.png]]</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>{| class="wikitable" style="width:800px;" |-|<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>{| class="wikitable" style="width:800px;" |-|'''[ o.k. ] Runtime [ 19 min ]'''|}</ol><ol style="list-style-type: lower-alpha;"><li><p>重复编译镜像的命令,使用下面的命令无需通过图形界面选择,可以直接开始编译镜像</p>{| class="wikitable" style="width:800px;" |-|<p>[ o.k. ] Repeat Build Options [ '''sudo apt-get update./build.sh BOARD=orangepi5plus BRANCH=legacy BUILD_OPT=image RELEASE=bullseye BUILD_MINIMAL=no BUILD_DESKTOP=no KERNEL_CONFIGURE=yes''']</p>|}</li></ol></li></ol><span id="linux开发手册"></span>
test@test:~$ = '''sudo apt-get install -y adbLinux开发手册'''=
# 然后使用下面的命令查看下有没有识别到adb设备== 在开发板的linux系统中单独编译内核源码的方法 ==
test<ol style="list-style-type: decimal;"><li><p>首先下载开发板的Linux内核源码</p>{| class="wikitable" style="width:800px;" |-|<p>'''orangepi@testorangepi:~$ git clone --depth=1 -b orange-pi-5.10-rk3588 https://github.com/orangepi-xunlong/linux-orangepi'''adb devices'''</p>|}</li>
List of devices attached{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''如果从github下载代码有问题,可以去开发板的[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html 官方工具]中下载内核源码压缩包,然后上传到开发板的linux系统中,再解压即可。'''</big>
'''e0f9f71bc343c305 device'''[[File:plus5-847.png]] [[File:plus5-848.png]]
# 然后使用下面的命令就可以登录开发板的linux系统
test@test:~$ <big>'''adb shell解压内核源码压缩包的命令为:'''</big>
orangepi@orangepi:~$ '''root@orangepi5plus:/# <— 看到这个提示符后说明已成功登录开发板tar zxf orange-pi-5.10-rk3588.tar.gz'''
# 使用adb上传文件到开发板的命令如下所示orangepi@orangepi:~$ '''mv orange-pi-5.10-rk3588 linux-orangepi'''
test@test:~$ '''adb push filename /root'''
filename: 1 file pushed. 3.7 MB<big>'''解压后请执行下面的命令和github同步下源码,确保源码为最新的状态:'''</s (1075091 bytes in 0.277s)big>
orangepi@orangepi:~$ '''如果您的Windows系统中没有adb工具,可以使用RKDevTool软件('''[[#_使用RKDevTool烧录Linux镜像到TF卡中的方法|'''使用RKDevTool烧录Linux镜像到TF卡中的方法''']]'''一小节有用到这个软件)中的adb程序。cd linux-orangepi'''
[[Fileorangepi@orangepi:media~/7b7fc88499b4e0bfe94534a34803ba14.png]]linux-orangepi$ '''git pull'''|}</ol><ol start="2" style="list-style-type: decimal;"><li><p>然后配置下默认的内核配置</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''在Windows中使用adb的示例如下所示:cd linux-orangepi'''</p><p>orangepi@orangepi:~/linux-orangepi$ '''make rockchip_linux_defconfig'''</p>|}{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''rockchip_linux_defconfig在内核源码中的路径为arch/arm64/configs/'''</big>|}</li></ol>[[File<ol start="3" style="list-style-type:mediadecimal;"><li><p>然后编译内核源码</dfee068ae45e64ddd03fa640b96056be.png]]p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~/linux-orangepi$ '''make -j10'''</p>|}</li><li><p>然后安装下内核模块</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~/linux-orangepi$ '''sudo make modules_install'''</p>|}{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''内核模块的安装路径为:/lib/modules'''
<span id="上传文件到开发板linux系统中的方法"></span>
== 上传文件到开发板Linux系统中的方法 ==
<span id="在ubuntu-pc中上传文件到开发板linux系统中的方法"><'''执行完sudo make modules_install命令后可以看到/span>=== 在Ubuntu PC中上传文件到开发板Linux系统中的方法 ===lib/modules/下会多了一个内核模块的文件夹:'''
==== 使用scp命令上传文件的方法 ====orangepi@orangepi5plus:~$ '''ls /lib/modules'''
# 使用scp命令可以在Ubuntu PC中上传文件到开发板的Linux系统中,具体命令如下所示## '''file_path:'''需要替换为要上传文件的路径## '''orangepi:'''为开发板linux系统的用户名,也可以替换成其它的,比如root#<span style="color:# FF0000">5.10.110+</span>'''1925.16810.xx.xx:''' 为开发板的IP地址,请根据实际情况进行修改110-rockchip-rk3588</big>|}## '''</homeli></orangepi:''' 开发板linux系统中的路径,也可以修改为其它的路径ol>
test<ol start="5" style="list-style-type: decimal;"><li><p>然后安装内核镜像和uInitrd</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@testorangepi:~/linux-orangepi$ '''scp file_path orangepi@192.168.xx.xxsudo make install'''</p>|}{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''内核镜像和uInitrd的安装路径为:/home/orangepiboot/'''
# 如果要上传文件夹,需要加上-r参数'''执行完 sudo make install命令后可以看到/boot/下会多了一个内核文件:'''
testorangepi@testorangepi5plus:~/orange-pi-5.10-rk3588$ '''scp -r dir_path orangepi@192.168.xx.xx:ls /home/orangepiboot/vmlinuz*'''
'''<span style="color:# scp还有更多的用法,请使用下面的命令查看man手册FF0000">/boot/vmlinuz-5.10.110+</span>''' /boot/vmlinuz-5.10.110-rockchip-rk3588<br /><br />'''系统启动时实际加载的是/boot/Image这个文件,Image是vmlinuz文件的拷贝。'''</big>|}</li></ol>
test<ol start="6" style="list-style-type: decimal;"><li><p>然后安装dtb文件到'''/boot/dtb'''中</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@testorangepi:~/linux-orangepi$ '''man scpsudo make dtbs_install INSTALL_DTBS_PATH=/boot/dtb/'''</p>|}</li><li><p>然后重启Linux系统就会加载新编译的内核了</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''uname -r'''</p><p>'''5.10.110+'''</p>|}</li></ol>
<span id==== 使用filezilla上传文件的方法 ===="openwrt系统使用说明"></span>
# 首先在Ubuntu PC中安装filezilla= '''OpenWRT系统使用说明''' =
test@test:~$ '''sudo apt install -y filezilla'''<span id="openwrt版本"></span>== OpenWRT版本 ==
# 然后使用下面的命令打开filezilla{| class="wikitable" style="width:800px;" |-| style="text-align: left;"| '''OpenWRT版本'''| style="text-align: left;"| '''内核版本'''|-| style="text-align: left;"| '''v22.03.4'''| style="text-align: left;"| '''Linux5.10.110'''|}
test@test:~$ '''filezilla'''<span id="openwrt适配情况"></span>== OpenWRT适配情况 ==
# filezilla打开后的界面如下所示,此时右边远程站点下面显示的是空的{| class="wikitable" style="width:800px;" |-| 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'''|-<div class| style="text-align: left;"| '''SPIFlash启动完整的系统'''| style="figuretext-align: left;">| '''OK'''|-[[File| style="text-align:media/3b7360ea29e03dd177b776501aa12c22left;"| '''2.png5G PCIe网口X2'''|截图 2022style="text-12align: left;"| '''OK'''|-03 19| style="text-04align: left;"| '''网口状态灯'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''LED灯'''| style="text-align: left;"| '''OK'''|-40]]| 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'''|}
</div># 连接开发板的方法如下图所示== 第一次启动扩容rootfs ==
<div 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>{| class="figurewikitable" style="width:800px;"|-|<p>root@OpenWrt:~# df -h</p><span style="margin-right: 80px;">Filesystem </span><span style="margin-right: 50px;">Size </span><span style="margin-right: 30px;">Used </span><span style="margin-right: 30px;">Available </span><span style="margin-right: 50px;">Use% Mounted on</span><br><span style="margin-right: 80px;color:#FF0000">'''/dev/root'''</span><span style="margin-right: 50px;color:#FF0000">'''14.8G'''</span><span style="margin-right: 30px;color:#FF0000">'''14.7G'''</span><span style="margin-right: 70px;color:#FF0000">'''91.6M'''</span><span style="margin-right: 90px;color:#FF0000">'''99% /'''</span><br><span style="margin-right: 100px;">tmpfs </span><span style="margin-right: 50px;">495.5M</span><span style="margin-right: 30px;">6.1M</span><span style="margin-right: 70px;">489.4M</span><span style="margin-right: 90px;">1% /tmp</span><br><span style="margin-right: 100px;">tmpfs </span><span style="margin-right: 60px;">512.0K</span><span style="margin-right: 50px;">0</span><span style="margin-right: 70px;">512.0K</span><span style="margin-right: 90px;">0% /dev</span><br><span style="margin-right: 80px;">/dev/root</span><span style="margin-right: 50px;">14.8G</span><span style="margin-right: 30px;">14.7G </span><span style="margin-right: 70px;">91.6M</span><span style="margin-right: 90px;">99% /opt/docker</span><br>|}</li></ol>
[[File:media/503bb172ac97f241bca7cb024a3fa743.png|IMG_256]]== 登录系统的方法 ==
</div># 然后选择'''保存密码''',再点击'''确定''' [[File:media/c359910f5c6337e8e3028609f8c2cf73.png]] # 然后选择'''总是信任该主机''',再点击'''确定'''=== 通过串口登录 ===
<ol style="list-style-type: decimal;">
<li><p>首先调试串口的使用可以参考[[Orange Pi 5 Plus#调试串口的使用方法|'''调试串口的使用方法''']]章节</p></li>
<li><p>OpenWrt系统默认会以 '''root''' 用户自动登录,显示界面如下</p>
<div class="figure">
[[File:media/364fc9c47a12b288156e284afe51d842plus5-849.png|IMG_256]]
</div># 连接成功后在filezilla软件的右边就可以看到开发板linux文件系统的目录结构了</li></ol>
<div classspan id="figure通过ssh登录系统"></span>
[[File:media/755a60b1e73071a96951dbcbd3b8e47f.png|IMG_256]]=== 通过SSH登录系统 ===
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''请注意,在Orange Pi 5 Plus的OpenWrt系统中,默认将靠近typeC电源接口的网口配置成WAN口功能,靠近HDMI接口的网口配置为LAN口功能'''</divbig># 然后在filezilla软件的右边选择要上传到开发板中的路径,再在filezilla软件的左边选中Ubuntu PC中要上传的文件,再点击鼠标右键,再点击上传选项就会开始上传文件到开发板中了。|}
<div 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>{| class="figurewikitable" style="width:800px;"|-|<p>test@ubuntu:~$ '''ssh root@192.168.2.1'''</p>|}</li><li><p>成功登录系统后的显示如下图所示</p><p>[[File:plus5-850.png]]</p></li><li><p>如果电脑装的Windows系统,可以参考[[Orange Pi 5 Plus#Windows下SSH远程登录开发板|'''Windows下SSH远程登录开发板''']]一小节介绍的方法进行登录。</p></li></ol>
[[File:media<span id="登录luci管理界面"></b06497997793e704ad92d334e6328282.png|IMG_256]]span>
</div># 上传完成后就可以去开发板linux系统中的对应路径中查看上传的文件了# 上传文件夹的方法和上传文件的方法是一样的,这里就不再赘述了=== 登录LuCI管理界面 ===
<span id{| class="wikitable" style="在windowsbackground-pc中上传文件到开发板linux系统中的方法color:#ffffdc;width:800px;"|-| <big>'''请注意,OpenWRT系统默认将靠近Type-C电源接口的网口配置成WAN口功能,靠近HDMI接口的网口配置为LAN口功能。'''</spanbig>=== 在Windows PC中上传文件到开发板Linux系统中的方法 ===
<span id="使用filezilla上传文件的方法[[File:plus5-1"></span>851.png]]==== 使用filezilla上传文件的方法 ====|}
# 首先下载filezilla软件Windows版本的安装文件,下载链接如下所示首先用网线连接板子的LAN口到电脑的网口,以便电脑的网口能通过DHCP获取到IP地址 [https://filezilla-project# 默认板子的LAN口IP是设置为'''192.168.org/download2.php?type=server 1'''https://filezilla-project的,所以此时电脑可以获取到以'''192.org/download168.php2'''开头的IP地址#close在电脑上的浏览器中输入IP地址'''192.168.2.1''']就可以登录LuCI界面了
<div class="figure">
::[[File:media/1dcdfbc301754638212b3ae858835a62plus5-852.png|IMG_256]]
</div>
<ol start="4" style="list-style-type: decimal;"><li><p>'''<span style="color:#FF0000">OpenWrt系统默认是没有设置密码的</span>''',所以直接点击'''登录'''按钮即可,登录成功后界面显示如下图所示</p><p>[[File:media/f757fa9e2104061b1be2ce2ba9a6f123plus5-853.png]]</p></li></ol>
# 下载的安装包如下所示,然后双击直接安装即可<span id="通过luci管理界面登录终端"></span>
'''FileZilla_Server_1.5.1_win64-setup.exe'''=== 通过LuCI管理界面登录终端 ===
安装过程中,下面的安装界面请选择{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Decline''',然后再选择'''Next>请注意,OpenWRT系统默认将靠近Type-C电源接口的网口配置成WAN口功能,靠近HDMI接口的网口配置为LAN口功能。'''</big>
<div class="figure">[[File:plus5-854.png]]|}
[[File:media/f6d1478e15e5c2fdc2bbad04daa5ac90# 首先用网线连接板子的LAN口到电脑的网口,以便电脑的网口能通过DHCP获取到IP地址# 默认板子的LAN口IP是设置为'''192.168.2.1'''的,所以此时电脑可以获取到以'''192.168.png|IMG_256]] </div>2'''开头的IP地址# filezilla打开后的界面如下所示,此时右边远程站点下面显示的是空的在电脑上的浏览器中输入IP地址'''192.168.2.1'''就可以登录LuCI界面了
<div class="figure">
::[[File:media/f19adeefed310b1822ad6f57e7a89a73plus5-855.png|IMG_256]]
</div>
# 连接开发板的方法如下图所示:<ol start="4" style="list-style-type: decimal;"><li>在导航栏的'''“服务”'''一栏中选择'''“终端”'''并点击进入</li>
[[File:plus5-856.png]]<div class/ol><ol start="figure5"style="list-style-type: decimal;"><li><p>此时终端界面如下图所示</p><p>[[File:plus5-857.png]]</p></li><li><p>输入用户名root即可登录</p><p>[[File:plus5-858.png]]</p></li></ol>
[[File:media<span id="使用ip地址端口号方式登录终端"></95b0d7d63ff312f501e117b8a3fc3af2.png|IMG_256]]span>
</div># 然后选择'''保存密码''',再点击'''确定'''=== 使用IP地址+端口号方式登录终端 ===
<div {| class="figurewikitable" style="background-color:#ffffdc;width:800px;"|-| <big>'''请注意,OpenWRT系统默认将靠近Type-C电源接口的网口配置成WAN口功能,靠近HDMI接口的网口配置为LAN口功能。'''</big>
[[File:media/476ac540096c0b3517fd6d1bf072a8abplus5-859.png|IMG_256]]|}
</div># 首先用网线连接板子的LAN口到电脑的网口,以便电脑的网口能通过DHCP获取到IP地址# 然后选择默认板子的LAN口IP是设置为'''总是信任该主机192.168.2.1''',再点击的,所以此时电脑可以获取到以'''192.168.2'''开头的IP地址# 然后在浏览器输入'''确定192.168.2.1:7681'''即可登录OpenWRT的终端
<div class="figure">
::[[File:media/f7be7d1baf5d4bb398944e60091028c1plus5-860.png|IMG_256]]
</div>
# 连接成功后在filezilla软件的右边就可以看到开发板linux文件系统的目录结构了<span id="通过命令行修改lan口ip地址的方法"></span>
<div class="figure">= 通过命令行修改LAN口IP地址的方法 ==
# 在OpenWrt系统中,提供了一个命令行工具uci,它可以很方便地对配置文件中的内容进行修改、添加、删除和读取,详细说明请参考[[Filehttps:media/be556f78b621118eacb9e93ad99dffdd/openwrt.png|IMG_256]org/docs/guide-user/base-system/uci '''官方文档''']# 首先使用以下命令获取网络配置,对应的配置文件是'''/etc/config/network,'''可以看到'''network.lan.ipaddr'''这一项的值是'''192.168.2.1'''
</div>::{| class="wikitable" style="width:800px;" |-|root@OpenWrt:~# 然后在filezilla软件的右边选择要上传到开发板中的路径,再在filezilla软件的左边选中Windows PC中要上传的文件,再点击鼠标右键,再点击上传选项就会开始上传文件到开发板中了'''uci show network'''
<div class="figure">...
[[File:media/1ad637781d4f63286b9e6751bb9119danetwork.png|IMG_256]]lan=interface
</div># 上传完成后就可以去开发板linux系统中的对应路径中查看上传的文件了# 上传文件夹的方法和上传文件的方法是一样的,这里就不再赘述了network.lan.device='br-lan'
<span id="hdmi测试"></span>== HDMI测试 =network.lan.proto='static'
'''<span idstyle="hdmi输出测试color:#FF0000">network.lan.ipaddr='192.168.2.1'</span>=== HDMI输出测试 ==='''
# 开发板有两个HDMI输出接口,所在位置如下图所示:network.lan.netmask='255.255.255.0'
[[File:media/5d04176e89fe3f8b6482ef8ee148cf2fnetwork.png]]lan.ip6assign='60'
# Linux系统默认配置HDMI_TX1支持8K显示,HDMI_TX2默认只支持4K显示(同一时间只能有1个HDMI_TX接口支持8K显示)。如果想设置HDMI_TX2支持8K显示,请按照如下步骤设置下:.…## 首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限|}
orangepi@orangepi<ol start="3" style="list-style-type:~$ decimal;"><li>然后输入以下命令修改'''sudo orangepi-confignetwork.lan.ipaddr'''这一项</li>
{| class="wikitable" style="width:800px;" |-|root@OpenWrt:~# 然后选择'''Systemuci set network.lan.ipaddr='192.168.100.1''''|}</ol><ol start="4" style="list-style-type: decimal;"><li>然后输入以下命令完成提交,即写入到配置文件</li>
[[File{| class="wikitable" style="width:media/5b020440753c1c1d150d0993f08eacfd.png]]800px;" |-|root@OpenWrt:~# '''uci commit'''|}
# 然后选择'''Hardware'''如果红色字体的IP地址与要设置的一致,说明修改成功
[[File{| class="wikitable" style="width:media800px;" |-|root@OpenWrt:~# '''cat /etc/config/0d5151e38da17701cc4920f1997e064c.png]]network'''
# 然后使用键盘的方向键定位到下图所示的位置,再使用'''空格...'''选中'''hdmi2-8k'''配置
[[File:media/cd8b4cca1f4668a914d083dfe286f348.png]]config interface 'lan'
# 然后选择option device 'br-lan''<Save>'''保存
[[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5b.png]]option proto 'static'
# 然后选择'''<Back>'option netmask '255.255.255.0'
[[File:media/3191851a2c1e634c8765850e0eedbe63.png]]option ip6assign '60'
'''<span style="color:# 然后选择'FF0000">option ipaddr '192.168.100.1'<Reboot></span>'''重启系统使配置生效
...|}</ol><ol start="5" style="list-style-type: decimal;"><li>通过ubus重启网络,ubus的使用说明请参考[[Filehttps:media/03310676d04e3df78bf5a4f3536ad49c/openwrt.png]org/docs/guide-developer/ubus '''官方文档''']</li>
{| class="wikitable" style="width:800px;" |-|root@OpenWrt:~# 然后使用HDMI转HDMI线连接Orange Pi开发板和HDMI显示器'''ubus call network restart'''|}</ol><ol start="6" style="list-style-type: decimal;"><li><p>此时,输入命令可以看到LAN口的IP已经是'''192.168.100.1'''</p>{| class="wikitable" style="width:800px;" |-|<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>
[[File:media/4c06c9135e500bd449b1dc7078fb7235.png]]== 修改root密码的方法 ==
'''注意,如果想接4K或者8K显示器,请确保HDMI线支持4K或者8K视频显示。'''=== 通过命令行修改 ===
# 启动linux系统后如果HDMI显示器有图像输出说明HDMI接口使用正常首先在系统的命令行输入passwd root,会出现以下提示信息,此时可以输入想要设置的密码,按下回车键确认
::{| class="wikitable" style="width:800px;" |-|root@OpenWrt:/# '''注意,很多笔记本电脑虽然带有HDMI接口,但是笔记本的HDMI接口一般只有输出功能,并没有HDMI in的功能,也就是说并不能将开发板的HDMI输出显示到笔记本的屏幕上。passwd root'''
'''当想把开发板的HDMI接到笔记本电脑HDMI接口时,请先确认清楚您的笔记本是支持HDMI in的功能。Enter new UNIX password:'''|}
'''当HDMI没有显示的时候,请先检查下HDMI线有没有插紧,确认接线没问题后,可以换一个不同的屏幕试下有没有显示。'''<ol start="2" style="list-style-type: decimal;"><li>接着会提示重新输入密码,此时再次输入密码确认并回车即可</li>
{| class="wikitable" style="width:800px;" |-|'''Retype password:'''|}</ol><span idol start="3" style="hdmilist-style-in的测试方法type: decimal;"><li>修改成功的显示如下</spanli>=== HDMI IN的测试方法 ===
# 开发板HDMI In接口的所在位置如下所示:{| class="wikitable" style="width:800px;" |-|'''passwd: password for root changed by root'''|}</ol><span id="通过luci管理界面修改"></span>
[[File:media/02b0241c5966daf8d9b568d8fc42282c.png]]=== 通过LuCI管理界面修改 ===
<ol style="list-style-type: decimal;"><li><p>首先参考[[Orange Pi 5 Plus# 首先使用下图所示的HDMI转HDMI线将其它设备的HDMI输出接到开发板的HDMI In接口上登录LuCI管理界面|'''登录LuCI管理界面''']]进入OpenWRT的管理界面</p></li><li><p>然后按照下面的步骤修改密码</p><ol style="list-style-type: lower-alpha;"><li><p>在导航栏中找到”'''系统'''”选项并点击</p></li><li><p>在系统下方的竖栏选项中,选择”'''管理权'''”并点击</p><p>[[File:plus5-861.png]]</p></li><li><p>在Tab页中选择”'''路由器密码'''”选项</p><p>[[File:plus5-862.png]]</p></li></ol></li><li><p>修改并保存路由器密码</p><ol style="list-style-type: lower-alpha;"><li><p>在”'''密码'''”和”'''确认密码'''”的对话框中输入自己设定的密码(如果不确定密码是否输入正确,可点击对话框后面的”'''*'''”图标以显示输入字符)</p></li><li><p>点击”'''保存'''”即可保存新修改的密码</p><p>[[File:plus5-863.png]]</p></li></li></ol>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''注:在”密码”和”确认密码”的对话框中,需要两次输入的密码保持一致。'''</big>|}</ol><ol start="4" style="list-style-type: decimal;"><li><p>密码修改成功之后,会弹出”'''系统密码已更改成功'''”的弹框,此时登录OpenWRT就需要密码才能登录</p><p>[[File:plus5-864.png]]</p></li></ol>
[[File:media<span id="usb接口测试-1"></4c06c9135e500bd449b1dc7078fb7235.png]]span>
# Linux系统HDMI In功能默认是关闭的,打开方法如下所示:## 首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限== USB接口测试 ==
orangepi@orangepi:~$ '''sudo orangepi-config'''<span id="在命令行下挂载usb存储设备"></span>=== 在命令行下挂载USB存储设备 ===
# 然后选择'''System'''首先将U盘插入Orange Pi开发板的USB接口中# 执行下面的命令如果能看到sdX的输出说明U盘识别成功
[[File:media:{| class="wikitable" style="width:800px;"|-|root@OpenWrt:~# '''cat /proc/partitions | grep "sd*"'''<br><span style="margin-right: 50px;">major</span><span style="margin-right: 50px;">minor </span><span style="margin-right: 55px;">#blocks</span><span style="margin-right: 50px;">name</span><br><span style="margin-right: 70px;margin-left: 20px;">8</span><span style="margin-right: 70px;">0</span><span style="margin-right: 40px;">15126528 </span><span style="margin-right: 50px;color:#FF0000">'''sda'''</5b020440753c1c1d150d0993f08eacfd.png]]span><br>|}
<ol start="3" style="list-style-type: decimal;"><li>使用mount命令可以将U盘挂载到/mnt中,然后就能查看U盘中的文件了</li>{| class="wikitable" style="width:800px;" |-|root@OpenWrt:~# 然后选择'''Hardwaremount /dev/sda /mnt/'''
[[Fileroot@OpenWrt:media~# '''ls /0d5151e38da17701cc4920f1997e064c.png]]mnt/'''
test.txt|}</ol><ol start="4" style="list-style-type: decimal;"><li>挂载完后通过df -h命令就能查看U盘的容量使用情况和挂载点</li>{| class="wikitable" style="width:800px;" |-|root@OpenWrt:~# 然后使用键盘的方向键定位到下图所示的位置,再使用'''空格df -h | grep "sd"'''选中'''hdmirx'''配置
[[File<span style="margin-right:media20px;">/f480d413a2af097fd73fb1b783c10af0dev/sda</span><span style="margin-right: 20px;">14.4G</span><span style="margin-right: 20px;">187.png]]2M</span><span style="margin-right: 20px;">14.2G</span><span style="margin-right: 50px;">1% /mnt</span><br>|}</ol><span id="在luci管理界面挂载usb存储设备"></span>
# 然后选择'''<Save>'''保存=== 在LuCI管理界面挂载USB存储设备 ===
<ol style="list-style-type: decimal;"><li><p>首先将U盘(或者其它存储设备)通过USB2.0连接到开发板</p></li><li><p>然后按照[[Orange Pi 5 Plus#登录LuCI管理界面|'''登录LuCI管理界面''']]进入LuCI管理界面</p></li><li><p>然后在LuCI管理界面中,点击”系统->挂载点”进入挂载点的配置界面</p><p>[[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5bplus5-865.png]]</p></li><li><p>然后按照下面的步骤新增一个挂载点</p><ol style="list-style-type: lower-alpha;"><li><p>在挂载点'''全局设置界面'''下方找到”'''挂载点'''”</p></li><li><p>在'''挂载点'''下方,选择”添加”按钮并点击进入</p></li>
# 然后选择[[File:plus5-866.png]]</ol><ol start="3" style="list-style-type: lower-alpha;"><li><p>接着会弹出下面的弹窗界面</p><p>[[File:plus5-867.png]]</p></li><li><p>然后就可以开始挂载存储设备</p><ol style="list-style-type: lower-alpha;"><li><p>勾选”'''<Back>已启用'''”</p></li><li><p>在常规设置UUID一栏中选择实际接入的设备/dev/sda(根据自己的设备选择)</p></li><li><p>在挂载点一栏中选择”'''自定义'''”,并填入要挂载到的目标目录,这里以'''/mnt'''目录为例,填好后'''回车'''确认</p></li><li><p>然后点击右下角的”'''保存'''”按钮</p></li></ol>[[File:plus5-868.png]]</li></ol></li></ol><ol start="5" style="list-style-type: decimal;"><li>然后会回到挂载点全局设置页面,在页面的左下角点击”'''保存并应用'''”使挂载点生效</li>
[[File:media/3191851a2c1e634c8765850e0eedbe63plus5-869.png]]</ol><ol start="6" style="list-style-type: decimal;"><li>保存完后可以看到”'''已挂载的文件系统'''”中,该存储设备已经挂载成功</li>
# 然后选择'''<Reboot>'''重启系统使配置生效[[File:plus5-870.png]]</ol><span id="m.2-e-key-pcie无线网卡的使用方法"></span>
[[File:media/03310676d04e3df78bf5a4f3536ad49c== M.png]]2 E-Key PCIe无线网卡的使用方法 ==
# 重启进入系统后再在桌面上打开一个终端,然后运行下'''test_hdmiin.sh'''脚本目前OpenWRT镜像镜像目前适配的PCIe无线网卡型号如下所示:
[orangepi@orangepi ~]$ ::{| class="wikitable" style="width:800px;" |-| '''test_hdmiin.sh序号'''| '''型号'''| '''实物图片'''| '''已支持的OS'''|-| '''1'''
# 然后就能看到HDMI In的输入画面了(下图中HDMI In显示的是opi5开发板HDMI输出的画面,此时正在播放一个视频)。| '''test_hdmiin.shAX200'''脚本默认会将HDMI In输入的音频播放到开发板的HDMI_TX1、HDMI_TX2和ES8388(代表喇叭或者耳机)中去。
<div class="figure">'''(PCIE+USB接口)'''
| [[File:media/4664b10205d90d19c941ce98b4438f56plus5-871.png|1]]| '''Debian'''
</div><span id="hdmi转vga显示测试"></span>=== HDMI转VGA显示测试 ==='''Ubuntu'''
'''<span style="color:# 首先需要准备下面的配件## HDMI转VGA转换器FF0000">OpenWRT</span>'''
[[File:media/5a4115ff50af9b25396b47c664a8f607.png]]'''OPi OS Arch'''
# 一根VGA线|-| '''2'''
[[File:media/9067ddbafe81ae87e9650da2df96fac3.png]]| '''AX210'''
# 一个支持VGA接口的显示器或者电视# HDMI转VGA显示测试如下所示:'''(PCIE+USB接口)'''
| [[File:media/80f22962aa16252eb35a25172cb5f57fplus5-872.png]]| '''Debian'''
'''使用HDMI转VGA显示时,开发板以及开发板的Linux系统是不需要做任何设置的,只需要开发板HDMI接口能正常显示就可以了。所以如果测试有问题,请检查HDMI转VGA转换器、VGA线以及显示器是否有问题。Ubuntu'''
'''<span idstyle="hdmi分辨率设置方法color:#FF0000">OpenWRT</span>=== HDMI分辨率设置方法 ==='''
# 首先在'''Settings'''中打开'''DisplayOPi OS Arch'''
[[File:media/9197dc8efb0d012b0f4256db8f1004a7.png]]|-| '''3'''
# 然后就能看到系统当前的分辨率| '''RTL8852BE'''
[[File:media/a453bcc252bc89fa9e783b44c8a74e11.png]]'''(PCIE+USB接口)'''
# 点击Resolution(分辨率)的下拉框,就可以看到显示器当前支持的所有分辨率| [[File:plus5-873.png]]| '''Debian'''
[[File:media/da17d4b84b83a1c8c8ca9adc7a81ca46.png]]'''Ubuntu'''
'''<span style="color:# 然后选择想要设置的分辨率,再点击ApplyFF0000">不支持OpenWRT</span>'''
[[File:media/a35db334c3e8a7849920eab02a9189c3.png]]'''Android12'''
# 等新的分辨率设置完后再选择'''Keep the configurationOPi OS Arch'''即可
[[File:media/14696ad05efc46a9d1ccbb0757843b99.png]]'''OPi OS Droid'''
== 蓝牙使用方法 ==|}
'''请注意,Orange Pi 5 Plus开发板上是没有蓝牙模块的,需要外接带蓝牙的PCIe网卡或者带蓝牙的USB网卡才能使用蓝牙功能。'''<span id="创建wifi热点的方法"></span>=== 创建WIFI热点的方法 ===
'''外接PCIe网卡的使用说明请参考'''[[{| class="wikitable" style="background-color:#_PCIe%20WIFI6+蓝牙模块的使用方法ffffdc;width:800px;" |-| <big>'''PCIe WIFI6+蓝牙模块的使用方法''']]'''一小节。注意AX200和AX210目前仅支持2.4G频段热点,5G频段模式下会出现无线网卡修改配置后无法应用的错误。'''</big>|}
<ol style="list-style-type: decimal;"><li><p>首先将PCIe无线网卡插入开发板的M.2 E-KEY端口,然后接上Type-C电源给开发板上电。</p><p>[[File:plus5-874.png]]</p></li><li><p>系统启动完成,点击 '''网络 -> 无线''' 进入无线WiFi配置界面。</p><p>[[File:plus5-875.png]]</p></li><li><p>OpenWRT系统默认的无线配置是'''Master''' 模式,这里为了方便接下来的操作,我们将默认的无线连接移除。</p><p>[[File:plus5-876.png]]</p></li><li><p>然后点击页面的右下角 '''保存''' 让配置生效。</p><p>[[File:plus5-877.png]]</p></li><li><p>然后点击右侧的 '''添加''' 按钮。</p><p>[[File:plus5-878.png]]</p></li><li><p>在弹出标签页 '''设备配置''' 中,我们设置参数如下图所示。</p><p>[[File:plus5-879.png]]</p></li><li><p>然后在 '''接口配置 -> 常规设置''' 中,将模式设置成 '''接入点AP''' ,'''ESSID'''(无线网络名称)设置为'''OpenWrt''' ,网络指定为''' lan'''</p><p>[[File:plus5-880.png]]</p></li><li><p>然后在 '''接口配置 -> 无线安全''' 中,加密算法选择'''外接USB网卡的使用说明请参考 WPA2-PSK''' ;密钥(无线密码)设置为 '''password'''</p><p>[[#_USB无线网卡测试|File:plus5-881.png]]</p></li><li><p>以上设置完成后,点击页面右下角'''USB无线网卡测试 保存''',之后会退出标签页</p><p>[[File:plus5-882.png]]</p></li><li><p>然后点击页面右下角 '''一小节。保存并应用''' 等待配置被应用完成。</p><p>[[File:plus5-883.png]]</p></li><li><p>成功创建热点的显示界面如下图所示</p><p>[[File:plus5-884.png]]</p></li><li><p>然后使用手机或电脑搜索对应SSID的WiFi进行连接,连接成功后如下图所示</p><p>[[File:plus5-885.png]]</p></li></ol>
<span id="桌面版镜像的测试方法-1连接wifi热点的方法"></span>=== 桌面版镜像的测试方法 ===
# 点击桌面右上角的蓝牙图标=== 连接WIFI热点的方法 ===
<ol style="list-style-type: decimal;"><li><p>将PCIe无线网卡插入开发板的M.2 E-KEY端口,然后接上Type-C电源给开发板上电。</p><p>[[File:plus5-886.png]]</p></li><li><p>系统启动完成后,点击 '''网络 -> 无线''' 进入配置无线WiFi界面。</p><p>[[File:plus5-887.png]]</p></li><li><p>OpenWRT系统默认的无线配置是'''Master''' 模式,这里为了方便接下来的操作,我们将默认的无线连接移除。</p><p>[[File:plus5-888.png]]</p></li><li><p>然后点击页面的右下角 '''保存''' 让配置生效。</p><p>[[File:plus5-889.png]]</p></li><li><p>然后点击 '''扫描''' 按钮扫描周围的WiFi热点。</p><p>[[File:plus5-890.png]]</p></li><li><p>然后会弹出下面的窗口显示可用的WiFi热点,这时点击想要连接的WiFi热点右边的 '''加入网络''' 按钮来连接WiFi热点。</p><p>[[File:plus5-891.png]]</p></li><li><p>然后会弹出一个连接WiFi热点的界面,我们在下图所示的位置输入热点的密码,再点击 '''提交''' 按钮。</p><p>[[File:plus5-892.png]]</p></li><li><p>然后会弹出下面的界面,点击右下角的 '''保存''' 按钮即可。</p><p>[[File:plus5-893.png]]</p></li><li><p>最后会回到无线配置的主界面,点击 '''保存并应用''' 等待配置被应用完成。</p><p>[[File:mediaplus5-894.png]]</0701f1eff58c244ea2c521fc4b721a53p></li><li><p>成功连接到WiFi热点后,界面显示如下图所示。</p><p>[[File:plus5-895.png]]</p></li></ol>
# 然后选择适配器== 通过命令行安装软件包 ==
[[File:media/1de79a418395f3662c27c6be36116949.png]]=== 在终端通过opkg安装 ===
# 如果有提示下面的界面,请选择更新可获取的软件包列表::{| class="wikitable" style="width:800px;" |-|root@OpenWrt:/# '''Yesopkg update'''|}
[[File<ol start="2" style="list-style-type:mediadecimal;"><li>获取软件列表</9f7d35094efa4256f67952325bda8ffc.png]]li>{| class="wikitable" style="width:800px;" |-|root@OpenWrt:/# 然后在蓝牙的适配器设置界面中设置'''Visibility Settingopkg list'''为|}</ol><ol start="3" style="list-style-type: decimal;"><li>安装指定的软件包</li>{| class="wikitable" style="width:800px;" |-|root@OpenWrt:/# '''Always visibleopkg install <包名称>''',然后关闭即可|}</ol>[[File<ol start="4" style="list-style-type:mediadecimal;"><li>查看已经安装的软件</806ce4f5d74b0c29fb4784bb19f70974.png]]li>{| class="wikitable" style="width:800px;" |-|root@OpenWrt:/# 然后打开蓝牙设备的配置界面'''opkg list-installed'''|}[[File</ol><ol start="5" style="list-style-type:mediadecimal;"><li>卸载软件</ba0d8c5f376c45d3b42aebcdaf3181e2.png]]li>{| class="wikitable" style="width:800px;" |-|root@OpenWrt:/# 点击'''Searchopkg remove <包名称>'''即可开始扫描周围的蓝牙设备|}[[File:media</ol><span id="openwrt管理界面安装软件包"></a2d1d87249ebaf26f8561e5720ab42ae.png]]span>
# 然后选择想要连接的蓝牙设备,再点击鼠标右键就会弹出对此蓝牙设备的操作界面,选择'''Pair'''即可开始配对,这里演示的是和Android手机配对== OpenWRT管理界面安装软件包 ==
[[File{| class="wikitable" style="background-color:media#ffffdc;width:800px;" |-| <big>'''若需要新增软件包,可通过OpenWRT的管理界面进行安装。'''</206d2dd8476635503b405b6898367966.png]]big>|}
# 配对时,桌面的右上角会弹出配对确认框,选择'''Confirm'''确认即可,此时手机上也同样需要进行确认=== 查看系统可用软件包列表 ===
[[File<ol style="list-style-type:mediadecimal;"><li><p>首先进入软件包管理页面</ce0f1fa5f65f0e690ea50a718f1e1b24.png]]p><ol style="list-style-type: lower-alpha;"><li><p>在导航栏中找到”'''系统'''”选项并点击进入</p></li><li><p>在系统下方的竖栏选项中,选择”'''软件包'''”并点击进入</p></li>
# 和手机配对完后,可以选择已配对的蓝牙设备,然后右键选择[[File:plus5-896.png]]</ol></li></ol><ol start="2" style="list-style-type: decimal;"><li><p>然后会出现软件包的主页面,如下图所示,获取可用的软件列表</p><ol style="list-style-type: lower-alpha;"><li><p>在软件包的”'''操作'''”选项中,点击”'''Send a File更新列表'''”,获取可用的软件包列表</p></li><li><p>在Tab页中,点击”'''可用'''即可开始给手机发送一张图片”,查看当前可用软件包</p></li><li><p>查看当前可用软件包的数量</p><p>[[File:plus5-897.png]]</p></li></ol></li></ol>
[[File:media/cf7b48855501f4c1a08d201cdf8b3997.png]]=== 安装软件包示例 ===
# 发送图片的界面如下所示<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>[[File:plus5-898.png]]</p></li><li><p>然后会出现以下弹窗,点击”'''安装'''”即可</p><p>[[File:plus5-899.png]]</p></li><li><p>然后等待安装完成</p><p>[[File:plus5-900.png]]</p></li><li><p>安装完成的显示如下</p><p>[[File:plus5-901.png]]</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:plus5-902.png]]</p></li></ol></li></ol>
[[File:media/f9ef2eaed2da85b46a8083685baf4b0d.png]]=== 移除软件包示例 ===
<span idol style="usb接口测试list-style-type: decimal;"><li><p>以移除软件包”'''luci-app-acl'''”为例</spanp><ol style="list-style-type: lower-alpha;"><li><p>在OpenWRT的软件包管理界面下,点击筛选器的对话框并输入”'''luci-app-acl'''”</p></li><li><p>在Tab页中选择”'''已安装'''”,显示已安装的软件包列表</p></li><li><p>点击右边的”'''移除'''”,即可移除相应的软件包</p><p>[[File:plus5-903.png]]</p></li><li><p>然后会显示下面弹窗,点击”'''移除'''”即可</p><p>[[File:plus5-904.png]]</p></li><li><p>移除成功后,显示界面如下</p><p>[[File:plus5-905.png]]</p></li></ol></li><li><p>查看软件包是否移除成功</p><ol style= USB接口测试 =="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:plus5-906.png]]</p></li></ol></li></ol>
'''USB接口是可以接USB hub来扩展USB接口的数量的。'''<span id="使用samba网络共享"></span>
<span id="连接usb鼠标或键盘测试"></span>=== 连接USB鼠标或键盘测试 =使用Samba网络共享 ==
{| class="wikitable" style="background-color:# 将USB接口的键盘插入Orange Pi开发板的USB接口中ffffdc;width:800px;" # 连接Orange Pi开发板到HDMI显示器|-| <big>'''OpenWRT局域网文件共享实现主要有两个软件选择,Samba和NFS。Samba系统兼容性较好,NFS则性能表现占优。对于需要使用Windows设备的用户来说,建议选择Samba。'''</big># 如果鼠标或键盘能正常操作系统说明USB接口使用正常(鼠标只有在桌面版的系统中才能使用)|}
<span idol style="连接usb存储设备测试list-style-type: decimal;"><li><p>进入Samba网络共享的管理页面</spanp><ol style="list-style-type: lower-alpha;"><li><p>在导航栏中找到”'''服务'''”选项并点击进入</p></li><li><p>在服务下方的竖栏选项中,选择”'''网络共享'''”并点击进入</p></li></ol><p>[[File:plus5-907.png]]</p></li><li><p>选择Samba服务需要监听的接口</p><ol style="list-style-type: lower-alpha;"><li><p>在网络共享的导航栏中选择”'''常规设置'''”并点击进入</p></li><li><p>接口根据实际需求指定,如果想通过”wan口”访问,则设置为”'''wan'''”</p></li></ol><p>[[File:plus5-908.png]]</p></li><li><p>设置网络共享的共享目录</p><ol style= 连接USB存储设备测试 ="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></li></ol><p>[[File:plus5-909.png]]</p></li><li><p>window10启动网络发现与共享</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''注:在windows10系统下访问Samba,共享需要先确认window10是否已经启动网络发现与共享,如未启动,先进行如下设置。'''</p></big>|}</li>
# 首先将U盘或者USB移动硬盘插入Orange Pi开发板的USB接口中<ol style="list-style-type: lower-alpha;"># 执行下面的命令如果能看到sdX的输出说明U盘识别成功<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/CIFS文件共享支持”</p></li><li><p>点击”确定”,配置应用</p></li></ol>
orangepi@orangepi[[File:~$ plus5-910.png]]</li></ol><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>打开”'''启用网络发现'''”和”'''cat /proc/partitions | grep “sd*”启用文件和打印机共享'''”</p></li><li><p>点击”保存更改”,保存Windows10的网络发现配置</p></li></ol>
major minor #blocks name[[File:plus5-911.png]]</li></ol></ol><ol start="5" style="list-style-type: decimal;"><li>设置完成后,在资源管理器的地址栏输入\\OpenWrt即可访问共享目录,用户名为root,密码为开发板主机设定的密码</li>
8 0 30044160 '''sda'''[[File:plus5-912.png]]</ol>
8 1 30043119 '''sda1'''== zerotier使用说明 ==
{| class="wikitable" style="background-color:# 使用mount命令可以将U盘挂载到ffffdc;width:800px;" |-| <big>'''/mntOpenWRT系统已经预装了zerotier客户端,在zerotier官网创建虚拟局域网后,在客户端可以通过Network ID直接加入其中,具体操作如下文所示。'''中,然后就能查看U盘中的文件了</big>|}
orangepi@orangepi<ol style="list-style-type: decimal;"><li><p>登录zerotier官网[https:~$ //my.zerotier.com/network '''sudo mount https://my.zerotier.com/network'''],注册登录后点击Network->Create A Network,创建一个虚拟局域网</p><p>[[File:plus5-913.png]]</p><p>[[File:plus5-914.png]]</p></li><li><p>点击进入网络控制台页面,可以把隐私选项设置为公共,这样加入的网络节点就不需要验证</p><p>[[File:plus5-915.png]]</devp></sda1 li><li><p>下面自动分配地址这里可以自己选择网段,此处选择的是172.27.*.*</mntp><p>[[File:plus5-916.png]]</p></li><li><p>在OpenWRT终端输入下面命令就可以加入到上面创建的虚拟局域网,'''<span style="color:#FF0000">其中8286ac0e47d53bb5是上面创建的虚拟局域网的Network ID</span>'''</p>{| class="wikitable" style="width:800px;" |-|root@OpenWrt:/# '''zerotier-one -d'''#启动zerotier客户端
orangepiroot@orangepiOpenWrt:~$ /# '''ls zerotier-cli join 8286ac0e47d53bb5''' #加入网络|}</mntli></ol><ol start="5" style="list-style-type: decimal;"><li>在终端输入ifconfig可以看到已经有个新增的'''ztks54inm2'''设备,IP地址为'''172.27.214.213'''{| class="wikitable" style="width:800px;" test.txt|-|root@OpenWrt:/# '''ifconfig'''
# 挂载完后通过'''df -hztks54inm2'''命令就能查看U盘的容量使用情况和挂载点Link encap:Ethernet HWaddr F6:4E:DE:BF:D8:52
orangepi@orangepi:~$ :inet addr:'''df -h | grep “sd”172.27.214.213'''Bcast:172.27.255.255 Mask:255.255.0.0
::inet6 addr: fe80::e82f:d0ff:fe5a:867e/dev/sda1 29G 208K 29G 1% /mnt64 Scope:Link
<span id="usb无线网卡测试"></span>=== USB无线网卡测试 ===::UP BROADCAST RUNNING MULTICAST MTU:2800 Metric:1
目前'''测试过的'''能用的USB无线网卡如下所示,其他型号的USB无线网卡请自行测试,如果无法使用就需要移植对应的USB无线网卡驱动::RX packets:18 errors:0 dropped:0 overruns:0 frame:0
{| class="wikitable"|-! 序号! 型号! 实物图片|-| 1| RTL8723BU 支持2.4G WIFI+BT4.::TX packets:48 errors:0| [[Filedropped:media/1ffa4c6f1afde803f7c8fd0638e464bd.png]]|-| 2| RTL8811 支持2.4G +5G WIFI| [[File0 overruns:media/75fc96b8cf1488a161ca5317ba6b18f1.png]]|-| 3| RTL8821CU 支持2.4G +5G WIFI 支持BT 4.2| [[File0 carrier:media/27e02242279bb4d114d0c514c3fff40d.jpeg|tb_image_share_1670833201123]]|}0
<span id="rtl8723bu测试"></span>==== RTL8723BU测试 ====::collisions:0 txqueuelen:1000
# 首先将RTL8723BU无线网卡模块插入开发板的USB接口中::RX bytes:1720 (1.6 KiB) TX byte81 (8.2 KiB)# 然后linux系统会自动加载RTL8723BU蓝牙和WIFI相关的内核模块,通过lsmod命令可以看到下面内核模块已自动加载|}</li></ol>
orangepi@orangepi<ol start="6" style="list-style-type:~$ '''lsmod'''decimal;"><li>在另一台设备上安装zerotier客户端(此处以Ubuntu18.04为例),执行下面命令进行安装,安装完成后需要重启电脑
Module Size Used by{| class="wikitable" style="width:800px;" |-|test@ubuntu:~$ '''curl -s https://install.zerotier.com | sudo bash'''|}</li></ol><ol start="7" style="list-style-type: decimal;"><li>重启后根据Network ID加入虚拟局域网,也可以看到已经获取到zerotier分配的ip地址,此时该Ubuntu PC和OrangePi R1 Plus LTS处于同一局域网中,两者可以自由通信{| class="wikitable" style="width:800px;" |-|test@ubuntu:~$ '''sudo zerotier-cli join 8286ac0e47d53bb5'''
rfcomm 57344 16test@ubuntu:~$ '''ifconfig'''
rtl8xxxu 106496 0'''ztks54inm2''': flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 2800
rtk_btusb 61440 ::inet '''172.27.47.214''' netmask 255.255.0.0 broadcast 172.27.255.255
# 通过dmesg命令可以看到RTL8723BU模块的加载信息::inet6 fe80::5ce1:85ff:fe2b:6918 prefixlen 64 scopeid 0x20<link>
orangepi@orangepi:~$ '''dmesg''':ether f6:fd:87:68:12:cf txqueuelen 1000 (以太网)
……::RX packets 0 bytes 0 (0.0 B)
[ 83.438901] usb 2-1: new high-speed USB device number 2 using ehci-platform:RX errors 0 dropped 0 overruns 0 frame 0
[ 83.588375] usb 2-1: New USB device found, idVendor=0bda, idProduct=b720, bcdDevice= 2:TX packets 46 bytes 10006 (10.000 KB)
[ 83.588403] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0|}</li></ol>
[ 83.588422] usb 2<ol start="8" style="list-style-1type: decimal;"><li>测试两个终端是否可以通信</li>{| class="wikitable" style="width: Product800px;" |-|root@OpenWrt: 802/# '''ping 172.11n WLAN Adapter27.47.214 -I ztks54inm2'''
[ 83PING 172.588443] usb 2-1: Manufacturer27.47.214 (172.27.47.214): Realtek56 data bytes
[ 8364 bytes from 172.588460] usb 2-27.47.214: seq=0 ttl=64 time=1: SerialNumber: 00e04c000001.209 ms
[ 8364 bytes from 172.601974] Bluetooth: hci0: RTL27.47.214: examining hci_verseq=06 hci_rev1 ttl=000b lmp_ver64 time=06 lmp_subver=87231.136 ms
[ 8364 bytes from 172.603894] Bluetooth27.47.214: hci0: RTL: rom_version statusseq=2 ttl=0 version64 time=1.203 ms
[ 8364 bytes from 172.603920] Bluetooth: hci0: RTL27.47.214: loading rtl_bt/rtl8723b_fwseq=3 ttl=64 time=1.bin235 ms
[ 83.610108] Bluetooth: hci0: RTL: loading rtl_bt/rtl8723b_config.bin^C
[ 83--- 172.611274] Bluetooth: hci0: RTL: cfg_sz 68, total sz 2256427.47.214 ping statistics ---
[ 83.658494] rtk_btusb: Realtek Bluetooth USB driver ver 3.1.6d45ddf.20220519-1424324 packets transmitted, 4 packets received, 0% packet loss
[ 83round-trip min/avg/max = 1.658651] usbcore: registered new interface driver rtk_btusb136/1.195/1.235 ms|}</ol>
[ 83.667124] usb 2<ol start="9" style="list-1style-type: This Realtek USB WiFi dongle (0x0bdadecimal;"><li>zerotier其他常用命令</li>{| class="wikitable" style="width:0xb720) is untested!800px;" |-|root@OpenWrt:/# '''zerotier-one -d''' #启动zerotier客户端
[ 83.667137] usb 2root@OpenWrt:/# '''zerotier-1: Please report results to Jes.Sorensen@gmail.comcli status''' #获取地址和服务状态
[ 83.890140] usb 2root@OpenWrt:/# '''zerotier-1: Vendor: Realtekcli join # Network ID''' #加入网络
[ 83.890153] usb 2root@OpenWrt:/# '''zerotier-1: Product: 802.11n WLAN Adaptercli leave # Network ID''' #离开网络
[ 83.890159] usb 2root@OpenWrt:/# '''zerotier-1: rtl8723bu_parse_efuse: dumping efuse (0x200 bytes):cli listnetworks''' #列出网络
……OPENWRT_DEVICE_REVISION="v0"
[ 83OPENWRT_RELEASE="OpenWrt 22.890412] usb 203.4 r20123-1: RTL8723BU rev E (SMIC) 1T1R, TX queues 3, WiFi=1, BT=1, GPS=0, HI PA=038ccc47687"|}</ol>
[ 83.890417] usb 2-1: RTL8723BU MAC: 00:13:ef:f4:58:ae<span id="openwrt源码的编译方法"></span>
[ 83.890421] usb 2-1: rtl8xxxu: Loading firmware rtlwifi/rtl8723bu_nic.bin= '''OpenWRT源码的编译方法''' =
[ 83.895289] usb 2-1: Firmware revision 35.0 (signature 0x5301)<span id="下载openwrt源码"></span>== 下载OpenWRT源码 ==
[ 84# 首先执行下面的命令下载openwrt-22.050893] Bluetooth: hci0: RTL: fw version 0x0e2f9f7303分支代码
[ 84.266905] Bluetooth: RFCOMM TTY layer initialized:{| class="wikitable" style="width:800px;" |-|test@test:~$ '''sudo apt update'''
[ 84.266949] Bluetoothtest@test: RFCOMM socket layer initialized~$ '''sudo apt install -y git'''
[ 84test@test:~$ '''git clone https://github.com/orangepi-xunlong/openwrt.266999] Bluetooth: RFCOMM ver 1git -b openwrt-22.1103'''|}
[ 84.884270] usbcore<ol start="2" style="list-style-type: registered new interface driver rtl8xxxudecimal;"><li>OpenWRT代码下载完后会包含下面的文件和文件夹</li>{| class="wikitable" style="width:800px;" |-|test@test:~/openwrt$ '''ls'''
[ 84BSDmakefile Config.912046] rtl8xxxu 2-1:1in include Makefile README.2 wlx0013eff458ae: renamed from wlan0md scripts toolchain
# 然后通过'''sudo ifconfig'''命令可以看到RTL8723BU WIFI的设备节点,WIFI的连接和测试方法请参看[[#_WIFI连接测试Config feeds.conf.default LICENSE package rules.mk target tools|'''WIFI连接测试''']]一节,这里不再赘述}</ol><span id="编译openwrt源码"></span>
orangepi@orangepi:~$ '''sudo ifconfig wlx0013eff458ae'''== 编译OpenWRT源码 ==
wlx0013eff458ae<ol style="list-style-type: decimal;"><li><p>首先安装下面这些依赖包(目前仅测试了在Ubuntu20.04上编译需要安装下列依赖包,如果在其他版本的系统上编译,请根据出错信息自行安装依赖包)</p><ol style="list-style-type: lower-alpha;"><li>方法1:使用脚本安装依赖包的命令如下所示:</li>{| class="wikitable" style="width:800px;" |-|test@test: flags~/openwrt$ '''sudo ./install_dep.sh'''|}</ol><ol start="2" style=4099<"list-style-type: lower-alpha;UP,BROADCAST,MULTICAST>"><li>方法2:直接使用下面的命令安装依赖包</li>{| class="wikitable" style="width:800px; mtu 1500" |-|test@test:~/openwrt$ '''sudo apt update'''
ether 00test@test:13:ef:f4:58:ae txqueuelen 1000 (Ethernet)~/openwrt$ '''sudo apt install -y ack antlr3 asciidoc autoconf \'''
RX packets 0 bytes 0 (0.0 B)'''automake autopoint binutils bison build-essential \'''
RX errors 0 dropped 0 overruns 0 frame 0'''bzip2 ccache cmake cpio curl device-tree-compiler fastjar \'''
TX packets 0 bytes 0 (0.0 B)'''flex gawk gettext gcc-multilib g++-multilib git gperf haveged \'''
TX errors 0 dropped 0 overruns 0 carrier 0 collisions '''help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev \'''
# 然后通过'''hciconfiglibgmp3-dev libltdl-dev libmpc-dev libmpfr-dev \'''命令可以看到USB的蓝牙设备
orangepi@orangepi:~$ '''sudo apt update && sudo apt install bluezlibncurses5-dev \libncursesw5-dev libreadline-dev libssl-dev \'''
orangepi@orangepi:~$ '''hciconfiglibtool lrzsz mkisofs msmtp nano ninja-build p7zip p7zip-full \'''
hci0: Type: Primary Bus: '''USBpatch pkgconf python2.7 python3 python3-pyelftools \'''
BD Address: 00:13:EF:F4:58:AE ACL MTU: 820:8 SCO MTU: 255:16'''libpython3-dev qemu-utils rsync scons squashfs-tools \'''
DOWN'''subversion swig texinfo uglifyjs upx-ucl unzip \'''
RX bytes'''vim wget xmlto xxd zlib1g-dev'''|}</ol></li></ol><ol start="2" style="list-style-type:1252 acldecimal;"><li>然后执行'''./scripts/feeds update -a'''和'''./scripts/feeds install -a'''下载依赖包</li>{| class="wikitable" style="width:0 sco800px;" |-|test@test:0 events:125 errors:0~/openwrt$ '''./scripts/feeds update -a'''
TX bytestest@test:23307 acl~/openwrt$ '''./scripts/feeds install -a'''|}</ol><ol start="3" style="list-style-type: decimal;"><li><p>然后选择使用OrangePi 5 Plus的配置文件</p><ol style="list-style-type: lower-alpha;"><li>编译支持TF卡、eMMC、NVMe启动的镜像,选择如下的配置</li>{| class="wikitable" style="width:800px;" |-|test@test:~/openwrt$ '''cp configs/orangepi-5-plus-rk3588_defconfig .config'''|}</ol><ol start="2" style="list-style-type: lower-alpha;"><li>编译支持SPIFlash启动的镜像,选择如下的配置</li>{| class="wikitable" style="width:0 sco800px;" |-|test@test:0 commands~/openwrt$ '''cp configs/orangepi-5-plus-rk3588-spi_defconfig .config'''|}</ol></li></ol><ol start="4" style="list-style-type:125 errorsdecimal;"><li>然后执行下面的命令使配置生效</li>{| class="wikitable" style="width:0800px;" |-|# 在桌面中也可以看到出现了蓝牙图标,此时蓝牙还未打开,所以会显示一个红色的test@test:~/openwrt$ '''xmake defconfig'''|}</ol>[[File<ol start="5" style="list-style-type:mediadecimal;"><li>执行下面的命令开始编译openwrt源码</d098f3b0e5ead13282c828ca2202fc4f.png]]li>{| class="wikitable" style="width:800px;" |-|# 点击test@test:~/openwrt$ '''Turn Bluetooth Onmake V=s'''可以打开蓝牙|}</ol>[[File<ol start="6" style="list-style-type:mediadecimal;"><li>编译完成后,镜像生成所在的路径为:</fe4b2c5e0dedc8871fc2b916e17ec7a6.png]]li>{| class="wikitable" style="width:800px;" |-|# 打开蓝牙后的显示如下所示test@test:~/openwrt$ '''tree -L 1 bin/targets/rockchip/armv8/'''
[[File:mediabin/targets/rockchip/armv8/be18e93d7c379d7a2be3672468ce5255.png]]
# 蓝牙的测试方法请参看[[#_桌面版镜像的测试方法_1|'''蓝牙使用方法''']]一节,这里不再赘述├── config.buildinfo
<span id="rtl8811测试"></span>==== RTL8811测试 ====├── feeds.buildinfo
# 首先将RTL8811无线网卡模块插入开发板的USB接口中# 然后linux系统会自动加载RTL8811 WIFI相关的内核模块,通过lsmod命令可以看到下面内核模块已自动加载├── openwrt-rockchip-armv8-xunlong_orangepi-5-plus-ext4-sysupgrade.img.gz
orangepi@orangepi:~$ '''lsmod'''├── openwrt-rockchip-armv8-xunlong_orangepi-5-plus.manifest
Module Size Used by├── openwrt-rockchip-armv8-xunlong_orangepi-5-plus-squashfs-sysupgrade.img.gz
8821cu 1839104 0├── packages
# 通过dmesg命令可以看到RTL8811模块的加载信息├── profiles.json
orangepi@orangepi:~$ '''dmesg'''├── sha256sums
[ 118└── version.618194] usb 2-1: new high-speed USB device number 2 using ehci-platformbuildinfo
[ 118.767152] usb 2-1: New USB device found, idVendor=0bda, idProduct=c811, bcdDevice= 2.00
[ 118.767181] usb 2-1: New USB device strings: Mfr=1directory, Product9 files|}</ol><span id=2, SerialNumber=3"android-12系统的使用说明"></span>
[ 118.767199] usb 2-1: Product: 802.11ac NIC= '''Android 12系统的使用说明''' =
[ 118.767219] usb 2-1: Manufacturer: Realtek<span id="已支持的android版本"></span>== 已支持的Android版本 ==
[ 118{| class="wikitable" style="width:800px;"|-| style="text-align: left;"| '''Android版本'''| style="text-align: left;"| '''内核版本'''|-| style="text-align: left;"| '''Android 12'''| style="text-align: left;"| '''Linux5.767235] usb 210'''|-1| style="text-align: SerialNumberleft;"| '''Android 12 Box'''| style="text-align: 123456left;"| '''Linux5.10'''|}
[ 119.500530] usbcore: registered new interface driver rtl8821cu<span id="android功能适配情况"></span>
[ 119.525498] rtl8821cu 2-1:1.0 wlx1cbfced9d260: renamed from wlan0== Android功能适配情况 ==
{| class="wikitable" style="width:800px;"|-| 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;"| '''<span style="color:# 然后通过FF0000">NO</span>'''| style="text-align: left;"| '''<span style="color:#FF0000">NO</span>'''|-| style="text-align: left;"| '''sudo ifconfigAX200-BT'''命令可以看到WIFI的设备节点,WIFI的连接和测试方法请参看[[| style="text-align: left;"| '''<span style="color:#_WIFI连接测试FF0000">NO</span>'''| style="text-align: left;"|'''WIFI连接测试<span style="color:#FF0000">NO</span>''']]一节,这里不再赘述|-orangepi@orangepi| style="text-align:~$ left;"| '''AX210-WIFI'''| style="text-align: left;"| '''<span style="color:#FF0000">NO</span>'''| style="text-align: left;"| '''<span style="color:#FF0000">NO</span>'''|-| style="text-align: left;"| '''AX210-BT'''| style="text-align: left;"| '''<span style="color:#FF0000">NO</span>'''| style="text-align: left;"| '''sudo ifconfig wlx1cbfced9d260<span style="color:#FF0000">NO</span>'''|-wlx1cbfced9d260| style="text-align: flagsleft;"| '''RTL8852BE-WIFI'''| style=4099<"text-align: left;UP,BROADCAST,MULTICAST>"| '''OK'''| style="text-align: left; mtu 1500"| '''OK'''|-ether 1c| style="text-align:bfleft;"| '''RTL8852BE-BT'''| style="text-align:celeft;"| '''OK'''| style="text-align:d9left;"| '''OK'''|-| style="text-align:d2left;"| '''Recovery按键'''| style="text-align:60 txqueuelen 1000 (Ethernet)left;"| '''OK'''| style="text-align: left;"| '''OK'''|-RX packets 0 bytes 0 (0| style="text-align: left;"| '''Type-C接口USB3.0 B)0功能'''| 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;"| '''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'''RX errors 0 dropped 0 overruns 0 frame 0| style="text-align: left;"| '''OK'''|-TX packets 0 bytes 0 (0| style="text-align: left;"| '''USB3.0 B)Hub'''| 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;"| '''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+NVME固态启动'''| 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背光'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI CEC功能'''| style="text-align: left;"| '''<span style="color:#FF0000">NO</span>'''| style="text-align: left;"| '''OK'''|}
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0<span id="usb无线网卡的使用方法"></span>
<span id="usb摄像头测试"></span>=== USB摄像头测试 =USB无线网卡的使用方法 ==
# 首先需要准备一个下图所示的或者类似的支持UVC协议的USB摄像头,然后将USB摄像头插入到Orange Pi开发板的USB接口中目前Android镜像适配的USB无线网卡型号如下所示:
[[File:media/25529640bdf8e911199feaefc0fa32b3:{| class="wikitable" style="width:800px;"|-| style="text-align: left;"| '''芯片型号'''| style="text-align: left;"| '''功能'''| style="text-align: left;"| '''VID&PID'''| style="text-align: left;"| '''适配情况'''|-| style="text-align: left;"| '''RTL8723BU'''| style="text-align: left;"| '''2.4G WIFI+BT4.png]]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功能和开热点'''|}
# 通过v4l2<ol start="2" style="list-ctl命令可以看到USB摄像头的设备节点信息为style-type: decimal;"><li><p>上面两款USB无线网卡的图片如下所示:</devp><ol style="list-style-type: lower-alpha;"><li><p>RTL8723BU USB无线网卡模块的图片如下所示:</video0p><div class="figure">
orangepi@orangepi[[File:~$ '''v4l2plus5-ctl –list-devices'''917.png]]
Q8 HD Webcam</div></li><li><p>RTL8811CU USB无线网卡模块的图片如下所示:</p><p>[[File: Q8 HD Webcam (plus5-918.png]]</p></li></ol></li><li><p>以上2种型号的USB无线网卡的测试方法都是相同的,首先需要将USB网卡插入开发板的USB接口</p></li><li><p>然后WIFI的连接和测试方法请参考[[Orange Pi 5 Plus#WIFI的连接测试方法|'''WIFI的连接测试方法''']]一节的内容</p></li><li><p>蓝牙的测试请参考[[Orange Pi 5 Plus#蓝牙的测试方法|''usb'蓝牙的测试方法''-fc880000.usb-1):']]一节的内容</p></li></ol>
'''<span id="m.2-e-key-pcie-wifi6蓝牙模块的使用方法-2"></dev/video0'''span>
/dev/video1== M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法 ==
/dev/media0# 目前Android12适配的PCIe无线网卡型号如下所示:
::{| class="wikitable" style="width:800px;"|-| '''注意v4l2中的l是小写字母l,不是数字1。序号'''| '''型号'''| '''实物图片'''|-| '''1'''| '''RTL8852BE'''
'''另外video的序号不一定都是video0,请以实际看到的为准。(PCIE+USB接口)'''
# 在桌面系统中可以使用Cheese直接打开USB摄像头,Cheese打开方法如下图所示:| [[File:plus5-919.png]]|}
<ol start="2" style="list-style-type: decimal;"><li><p>首先将PCIe无线网卡插入开发板的M.2 E-KEY接口中并固定好</p><p>[[File:media/012581c7ff8d01a7b8ef2e5366fce919plus5-920.png]]</p></li><li><p>然后给开发板接上Type-C接口的电源,并上电</p></li><li><p>系统启动后,WIFI的连接和测试方法请参考[[Orange Pi 5 Plus#WIFI的连接测试方法|'''WIFI的连接测试方法''']]一节的内容</p></li><li><p>蓝牙的测试请参考[[Orange Pi 5 Plus#蓝牙的测试方法|'''蓝牙的测试方法''']]一节的内容</p></li></ol>
Cheese打开USB摄像头后的界面如下图所示:<span id="wifi的连接测试方法"></span>
[[File:media/44afa15275b9de2f2f534177b97dbc21.png]]== WIFI的连接测试方法 ==
{| class="wikitable" style="background-color:# 使用fswebcam测试USB摄像头的方法ffffdc;width:800px;" |-| <big>'''<span style="color:## 安装fswebcamFF0000">首先请注意Orange Pi 5 Plus开发板上是没有WIFI模块的,需要外接PCIe网卡或者USB网卡才能使用WIFI功能。</span>'''
orangepi@orangepi:~$ '''sudo''' '''apt update外接PCIe网卡的使用说明请参考[[Orange Pi 5 Plus#M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法|M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法]]一小节。'''
orangepi@orangepi:~$ '''sudo apt-get install -y fswebcam外接USB网卡的使用说明请参考[[Orange Pi 5 Plus#USB无线网卡的使用方法|USB无线网卡的使用方法]]一小节。'''</big>|}
# 安装完fswebcam后可以使用下面的命令来拍照## -d 选项用于指定USB摄像头的设备节点### --no-banner用于去除照片的水印### -r 选项用于指定照片的分辨率### -S 选项用设置于跳过前面的帧数### ./image.jpg 用于设置生成的照片的名字和路径首先点击进入'''Setting'''
orangepi@orangepi:~$ '''sudo''' '''fswebcam :[[File:plus5-d /dev/video0 \'''921.png]]
<ol start="2" style="list-style-type: decimal;"><li>然后选择'''–no-banner -r 1280x720 -S 5 ./image.jpgNetwork & internet'''</li>
# 在服务器版的linux系统中,拍完照后可以使用scp命令将拍好的图片传到Ubuntu PC上镜像观看[[File:plus5-922.png]]</ol><ol start="3" style="list-style-type: decimal;"><li>然后选择'''Internet'''</li>
orangepi@orangepi:~$ '''scp image.jpg''' [mailto[File:test@192plus5-923.168.1.55:/homepng]]</test '''test@192.168.1.55ol><ol start="4" style="list-style-type:/home/testdecimal;"><li>然后打开'''] '''(根据实际情况修改IP地址和路径)Wi-Fi'''开关</li>
# 在桌面版的linux系统中,可以通过HDMI显示器直接查看拍摄的图片[[File:plus5-924.png]]</ol><ol start="5" style="list-style-type: decimal;"><li><p>打开'''Wi-Fi'''后如果一切正常,就可以扫描到附近的Wi-Fi热点了</p><p>[[File:plus5-925.png]]</p></li><li><p>然后选择想连接的Wi-Fi后会弹出下图所示的密码输入界面</p><p>[[File:plus5-926.png]]</p></li><li><p>然后使用键盘输入Wi-Fi对应的密码,再使用鼠标点击虚拟键盘中的回车按钮就会开始连接Wi-Fi了</p><p>[[File:plus5-927.png]]</p></li><li><p>Wi-Fi连接成功后的显示如下图所示:</p><p>[[File:plus5-928.png]]</p></li></ol>
<span id== 音频测试 =="wi-fi-hotspot的使用方法"></span>
=== 在桌面系统中测试音频方法 =Wi-Fi hotspot的使用方法 ==
# 首先打开文件管理器<ol style="list-style-type: decimal;"><li><p>首先请确保以太网口已连接网线,并且能正常上网</p></li><li><p>然后选择'''Settings'''</p><p>[[File:plus5-929.png]]</p></li><li><p>然后选择'''Network & internet'''</p><p>[[File:plus5-930.png]]</p></li><li><p>然后选择'''Hotspot & tethering'''</p><p>[[File:plus5-931.png]]</p></li><li><p>然后选择'''Wi-Fi hotspot'''</p><p>[[File:plus5-932.png]]</p></li><li><p>然后打开'''Wi-Fi hotspot''',下图中还可以看到生成的热点的名字和密码,记住它们,在连接热点的时候要用到('''如果需要修改热点的名字和密码,需要先关闭Wi-Fi hotspot,然后才能修改''')</p><p>[[File:plus5-933.png]]</p></li><li><p>此时可以拿出你的手机,如果一切正常,在手机搜索到的WI-FI列表中就能找到上图'''Hotspot name'''下面显示的同名('''这里为 AndroidAP_6953''')的WIFI热点了。然后可以点击'''AndroidAP_6953'''连接热点,密码在上图的'''Hotspot password''' 下面可以看到</p></li>
[[File:media/48e93469a77e6f37d83f5154dcf5fc14plus5-934.png]]</ol><ol start="8" style="list-style-type: decimal;"><li>连接成功后显示如下图所示(不同手机界面会有区别,具体界面以你手机显示的为准)。此时就可以在手机上打开一个网页看下能否上网了,如果能正常打开网页, 说明开发板的'''WI-FI Hotspot''' 能正常使用</li>
# 然后找到下面这个文件(如果系统中没有这个音频文件,可以自己上传一个音频文件到系统中)[[File:plus5-935.png]]</ol>
[[File:media/67f839b3e30fa9548207a15681e5bec8.png]]== 蓝牙的测试方法 ==
{| class="wikitable" style="background-color:# 然后选中audio.wav文件,右键选择使用vlc打开就可以开始播放ffffdc;width:800px;" |-| <big>'''<span style="color:#FF0000">请注意,Orange Pi 5 Plus开发板上是没有蓝牙模块的,需要外接带蓝牙的PCIe网卡或者带蓝牙的USB网卡才能使用蓝牙功能。</span>'''
'''外接PCIe网卡的使用说明请参考[[File:media/2a438bfdd0b671359e578e5120b1ad73Orange Pi 5 Plus#M.png2 E-Key PCIe WIFI6+蓝牙模块的使用方法|M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法]]一小节。'''
'''外接USB网卡的使用说明请参考[[Orange Pi 5 Plus# 切换HDMI播放和耳机播放等不同音频设备的方法USB无线网卡的使用方法|USB无线网卡的使用方法]]一小节。'''</big>## 首先打开音量控制界面|}
<ol style="list-style-type: decimal;"><li><p>首先点击进入'''Setting'''</p><p>[[File:plus5-936.png]]</p></li><li><p>然后选择'''Connected devices'''</p><p>[[File:plus5-937.png]]</p></li><li><p>然后点击'''Pair new device'''打开蓝牙并开始扫描周围的蓝牙设备</p><p>[[File:plus5-938.png]]</p></li><li><p>搜索到的蓝牙设备会在'''Available devices'''下面显示出来</p><p>[[File:plus5-939.png]]</p></li><li><p>然后点击想要连接的蓝牙设备就可以开始配对了,当弹出下面的界面时,请使用鼠标选择'''Pair'''选项</p><p>[[File:plus5-940.png]]</p></li><li><p>这里测试的是开发板和安卓手机蓝牙的配置过程,此时在手机上会弹出下面的确认界面,在手机上也点击配对按钮后就会开始配对过程</p><p>[[File:plus5-941.png]]</p></li><li><p>配对完成后,可以看到如下图所示的已配对的蓝牙设备</p><p>[[File:plus5-942.png]]</p></li><li><p>此时可以使用手机蓝牙给开发板发送一张图片,发送后,在开发板的安卓系统中可以看到下面的确认界面,然后点击'''Accept'''就可以开始接收手机发过来的图片了</p><p>[[File:mediaplus5-943.png]]</p></li><li><p>开发板Android系统蓝牙接收到的图片可以在文件管理器中打开'''Download'''目录查看</e4b9965cdb68139d49061256d7712619p><p>[[File:plus5-944.png]]</p></li></ol>
# 播放音频的时候,在'''Playback'''中会显示播放软件可以使用的音频设备选项,如下图所示,在这里可以设置需要播放到哪个音频设备<span id="hdmi-in的测试方法-2"></span>
[[File:media/45b31acc70e4297b2d61525827dbc939.png]]== HDMI In的测试方法 ==
<ol style=== 使用命令播放音频的方法 ==="list-style-type: decimal;"><li><p>开发板HDMI In接口的所在位置如下所示:</p><p>[[File:plus5-945.png]]</p></li><li><p>然后使用下图所示的HDMI转HDMI线将其它设备的HDMI输出接到开发板的HDMI In接口上</p><p>[[File:plus5-946.png]]</p></li><li><p>确保连接到HDMI In接口的设备的HDMI输出是正常的,然后打开HDMI In测试APP</p><p>[[File:plus5-947.png]]</p></li><li><p>然后就可以看到HDMI In的视频输入了,同时HDMI In的音频输入也会从开发板的HDMI TX接口或者耳机接口输出。下图显示的是通过HDMI In输入的OPi5开发板Linux系统的桌面。</p><p>[[File:plus5-948.png]]</p></li></ol>
<span id="寸mipi-屏幕的使用方法"></span>=== 耳机接口播放音频测试 ==10.1寸MIPI 屏幕的使用方法 ==
{| class="wikitable" style="background-color:# 首先将耳机插入开发板的耳机孔中ffffdc;width:800px;" |-| <big>'''请确保使用的Android镜像为下面的两个版本的镜像:'''
[[File:media/2c63eff774d376c436b95989f40576a6'''OrangePi5Plus_RK3588_Android12_lcd_v1.png]]x.x.img'''
# 然后可以通过'''aplay OrangePi5Plus_RK3588_Android12_spi-lnvme_lcd_v1.x.x.img'''命令可以查看下linux系统支持的声卡设备,从下面的输出可知,'''card 3'''为es8388的声卡设备,也就是耳机的声卡设备</big>|}
orangepi@orangepi<ol style="list-style-type:~$ decimal;"><li><p>首先需要组装好屏幕,请参考[[Orange Pi 5 Plus#10.1寸MIPI 屏幕的组装方法|'''aplay 10.1寸MIPI屏幕的组装方法''']]</p></li><li><p>开发板上LCD的接口位置如下图所示:</p><p>[[File:plus5-949.png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-l| <big><p>'''注意,下面的触摸接口不是给LCD MIPI屏幕使用的,目前为备用接口,使用不到。'''</p></big><p>[[File:plus5-950.png]]</p>|}</li><li><p>将组装好的屏幕接到LCD接口,给板子接通Type-C电源,并上电,系统启动后,就可以看到屏幕显示如下图所示</p><p>[[File:plus5-951.png]]</p></li></ol>
**** List of PLAYBACK Hardware Devices ****<span id="ov13850和ov13855-mipi摄像头的测试方法-2"></span>
card 0: rockchipdp0 [rockchip,dp0], device 0: rockchip,dp0 spdif-hifi-0 [rockchip,dp0 spdif-hifi-0]== OV13850和OV13855 MIPI摄像头的测试方法 ==
Subdevices: 0/1目前开发板支持两款MIPI摄像头,OV13850和OV13855,具体的图片如下所示:
Subdevice #0<ol style="list-style-type: subdevice #0lower-alpha;"><li><p>1300万MIPI接口的OV13850摄像头</p><p>[[File:plus5-952.png]]</p></li><li><p>1300万MIPI接口的OV13855摄像头</p><p>[[File:plus5-953.png]]</p></li></ol><p>OV13850和OV13855摄像头使用的转接板和FPC排线是一样的,只是两款摄像头接在转接板上的位置不一样。FPC排线如下图所示,请注意FPC排线是有方向的,标注'''TO MB'''那端需要插到开发板的摄像头接口中,标注'''TO CAMERA'''那端需要插到摄像头转接板上。</p>
card 1[[File: rockchiphdmi0 [rockchipplus5-hdmi0954.png], device 0: rockchip-hdmi0 i2s-hifi-0 [rockchip-hdmi0 i2s-hifi-0]
Subdevices: 0/1摄像头转接板上总共有3个摄像头的接口,同一时间只能接一个使用,如下图所示,其中:
Subdevice #0<ol style="list-style-type: subdevice #0lower-alpha;"><li><p>'''1号接口接OV13850摄像头'''</p></li><li><p>'''2号接口接OV13855摄像头'''</p></li><li><p>3号接口未使用,忽略即可</p></li>
card 2[[File: rockchiphdmi1 [rockchipplus5-hdmi1955.png], device 0: rockchip-hdmi1 i2s-hifi-0 [rockchip-hdmi1 i2s-hifi-0]</ol>Orange Pi 5 Plus开发板摄像头接口的位置如下图所示:
Subdevices[[File: 1/1plus5-956.png]]
Subdevice #0: subdevice #0摄像头插在开发板CAM接口的方法如下所示:
'''card 3: rockchipes8388 [rockchip,es8388], device 0[File: dailinkplus5-multicodecs ES8323957.7-0011-0 [dailink-multicodecs ES8323.7-0011-0png]]'''
'''Subdevices: 0/1'''连接好摄像头到开发板上后,我们可以使用下面的方法来测试下摄像头:
'''Subdevice #0<ol style="list-style-type: subdevice #0'''lower-alpha;"><li><p>在桌面中打开相机APP</p><p>[[File:plus5-958.png]]</p></li><li><p>然后就能看到摄像头的预览画面了</p><div class="figure">
# 然后使用'''aplay'''命令播放下系统自带的音频文件,如果耳机能听到声音说明硬件能正常使用[[File:plus5-959.png]]
orangepi@orangepi</div><p>在摄像头APP下图红框所示的区域中按住鼠标然后向右拖动可以调出拍照和摄像的切换界面</p><p>[[File:~$ plus5-960.png]]</p><p>拍照和摄像的切换界面如下所示,点击'''aplay -D hw:3,0 /usr/share/sounds/alsa/audio.wavVideo'''即可切换到录像模式</p><div class="figure">
Playing WAVE ‘audio[[File:plus5-961.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereopng]]
</div><p>点击下图所示的位置可以进入摄像头的设置界面</p><p>[[File:plus5-962.png]]</p><p>摄像头的设置界面如下所示:</p><div class==== 喇叭接口播放音频测试 ===="figure">
# 首先需要准备一个下图所示的喇叭,开发板上喇叭座子的规格为'''2pin 1[[File:plus5-963.25mm'''间距png]]
[[File:media</2ad7918730932cd74a38cd49aab96cde.png]]div></li></ol>
# 开发板上喇叭接口的位置如下所示,准备好喇叭后,请将其插入到开发板的喇叭接口中<span id="pin-接口-gpiouartspi-和-pwm-测试"></span>
[[File:media/da03d169ef5dbe2d7aa796d530ae884f.png]]== 26pin 接口 GPIO、UART、SPI 和 PWM 测试 ==
# 喇叭和耳机使用的同一个声卡,使用喇叭前,请确保耳机接口没有插入耳机(如果插入了耳机,音频会播放到耳机)。然后使用'''aplay'''命令播放下系统自带的音频文件,如果喇叭能听到声音说明硬件能正常使用<span id="pin-gpio-口测试"></span>=== 40pin GPIO 口测试 ===
orangepi@orangepi<ol style="list-style-type: decimal;"><li><p>首先点击wiringOP图标打开wiringOP APP</p><p>[[File:~$ plus5-964.png]]</p></li><li><p>wiringOP APP的主界面显示如下图所示,然后点击'''GPIO_TEST'''按钮打开GPIO测试界面</p><p>[[File:plus5-965.png]]</p></li><li><p>GPIO测试界面如下图所示,左边的两排'''CheckBox'''按钮跟26pin引脚是一一对应的关系。当勾选'''CheckBox'''按钮时,对应的GPIO引脚会被设置为'''OUT'''模式,引脚电平设置为高电平;当取消勾选时,GPIO引脚电平设置为低电平;当点击右边的'aplay ''GPIO READALL'''按钮时,可以获取到wPi号、GPIO模式、引脚电平等信息。</p><p>[[File:plus5-D hw966.png]]</p></li><li><p>然后点击'''GPIO READALL'''按钮,输出信息如下图所示:</p><p>[[File:plus5-967.png]]</p></li><li><p>开发板40pin中总共有28个GPIO口可以使用,下面以11号引脚——对应GPIO为GPIO1_A4 ——对应wPi序号为5——为例演示如何设置GPIO口的高低电平。首先点击11号引脚对应的'''CheckBox'''按钮,当按钮为选中状态时,11号引脚会设置为高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为'''3,0 .3v''',说明设置高电平成功</usrp><p>[[File:plus5-968.png]]</p></li><li><p>然后点击'''GPIO READALL'''按钮,可以看到当前的7号引脚模式为'''OUT''',引脚电平为高电平</sharep><p>[[File:plus5-969.png]]</soundsp></alsali><li><p>再次点击下图的'''CheckBox'''按钮取消勾选状态,11号引脚会设置为低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为'''0v''',说明设置低电平成功</audiop><p>[[File:plus5-970.wavpng]]</p></li><li><p>然后点击'''GPIO READALL'''按钮,可以看到当前的11号引脚模式为OUT,引脚电平为低电平</p><p>[[File:plus5-971.png]]</p></li></ol>
Playing WAVE ‘audio.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo<span id="pin的uart测试-3"></span>=== 40pin的UART测试 ===
<span idol style="hdmi音频播放测试list-style-type: decimal;"><li><p>Android中默认打开了'''UART3'''和'''UART8''',在40pin的位置如下图所示,对应的设备节点分别是'''/dev/ttyS3'''和'''/dev/ttyS8'''</p><p>[[File:plus5-972.png]]</p></li><li><p>首先点击wiringOP图标打开wiringOP APP</p><p>[[File:plus5-973.png]]</p></li><li><p>wiringOP APP的主界面显示如下图所示,然后点击'''UART_TEST'''按钮打开UART测试界面</p><p>[[File:plus5-974.png]]</spanp></li>==== HDMI音频播放测试 ====<li><p>APP的串口测试界面如下图所示</p></li>
# 首先使用HDMI 转HDMI线将Orange Pi开发板连接到电视机上(其他的HDMI显示器需要确保可以播放音频)[[File:plus5-975.png]]# 然后查看下HDMI的声卡序号,从下面的输出可以知道HDMI_TX1的声卡为</ol><ol start="5" style="list-style-type: decimal;"><li>下面以测试'''UART3'''为例,在选择框中选择'''/dev/ttyS3'''节点,在编辑框中输入想要设置的波特率,然后点击'''OPEN'''按钮打开'''/dev/ttyS3'''节点,打开成功后,'''OPEN'''按钮变为不可选中状态,'''card 1CLOSE''',HDMI_TX2的声卡为按钮和'''card 2SEND'''按钮变为可选中状态</li>
orangepi@orangepi[[File:~$ plus5-976.png]]</ol><ol start="6" style="list-style-type: decimal;"><li><p>然后使用杜邦线短接uart3的RXD和TXD引脚</p><p>[[File:plus5-977.png]]</p></li><li><p>然后可以在下面的发送编辑框中输入一段字符,点击'''aplay -lSEND'''按钮开始发送</p></li>
**** List of PLAYBACK Hardware Devices ****[[File:plus5-978.png]]</ol><ol start="8" style="list-style-type: decimal;"><li>如果一切正常,接收框内会显示已接收到的字符串</li>
card 0: rockchipdp0 [rockchip,dp0], device 0[File: rockchip,dp0 spdifplus5-hifi-0 [rockchip,dp0 spdif-hifi-0979.png]]</ol><span id="pin的spi测试"></span>
Subdevices: 1/1=== 26pin的SPI测试 ===
Subdevice #0<ol style="list-style-type: subdevice #0decimal;"><li><p>由下表可知,Orange Pi 5 Plus可用的SPI为SPI0和SPI4</p><p>[[File:plus-5-479.png]]</p></li><li><p>Android系统默认打开的是SPI0的配置,这里演示下通过w25q64模块来测试SPI0接口,首先在SPI0接口接入w25q64设备</p><p>[[File:plus5-981.png]]</p></li><li><p>然后点击wiringOP图标打开wiringOP APP</p><p>[[File:plus5-982.png]]</p></li><li><p>wiringOP APP的主界面显示如下图所示,点击'''SPI_TEST'''按钮打开SPI的测试界面</p><p>[[File:plus5-983.png]]</p></li><li><p>然后点击'''OPEN'''按钮初始化SPI</p></li>
'''card 1[[File: rockchiphdmi0 [rockchipplus5-hdmi0984.png]], device 0: rockchip</ol><ol start="6" style="list-hdmi0 i2sstyle-hifi-0 type: decimal;"><li><p>然后填充需要发送的字节,比如读取w25q64的ID信息,在data[rockchip-hdmi0 i2s-hifi-0]中填入地址0x9f,然后点击'''TRANSFER'''按钮</p><p>[[File:plus5-985.png]]</p></li><li><p>最后APP会显示读取到的ID信息</p></li>
'''Subdevices[[File: 1plus5-986.png]]</1'''ol><ol start="8" style="list-style-type: decimal;"><li><p>w25q64模块的MANUFACTURER ID为EFh,Device ID为4017h,跟上面读取到的值是对应的(h代表是16进制)</p><p>[[File:plus5-987.png]]</p></li></ol>
'''Subdevice #0: subdevice #0'''<span id="pin的pwm测试"></span>
'''card 2: rockchiphdmi1 [rockchip-hdmi1], device 0: rockchip-hdmi1 i2s-hifi-0 [rockchip-hdmi1 i2s-hifi-0]'''=== 26pin的PWM测试 ===
<ol style="list-style-type: decimal;"><li><p>Android默认开启了'''PWM10'''和'''PWM14''',对应的引脚在40pin的所在位置如下图所示:</p><p>[[File:plus-5-988.png]]</p></li><li><p>首先点击wiringOP图标打开wiringOP APP</p><p>[[File:plus-5-989.png]]</p></li><li><p>然后在wiringOP的主界面点击'''PWM_TEST'''按钮进入PWM的测试界面</p><p>[[File:plus-5-990.png]]</p></li><li><p>PWM10对应的基地址是'''febe0020''',PWM14对应的基地址是'''febf0020''',这里pwmchip0右边显示是'''fd8b0020.pwm''',这时需要点击下拉选项选择其它的pwmchip,直到右边显示'''febe0020'''Subdevices或者'''febf0020'''为止。</p><p>[[File: 1plus-5-991.png]]</1p></li><li><p>当下拉选项菜单选择'''pwmchip2'''时,右边对应的就是'''PWM10'''的基地址'''febe0020'''</p><p>[[File:plus-5-992.png]]</p></li><li><p>当下拉选项菜单选择'''pwmchip4'''时,右边对应的就是'''PWM14'''的基地址'''febe0020'''</p><p>[[File:plus-5-993.png]]</p></li><li><p>以测试PWM10为例,我们需要选择'''pwmchip2'''</p><p>[[File:plus-5-994.png]]</p></li><li><p>然后确认PWM的周期,默认的配置是'''50000ns''',转换为PWM频率是'''20KHz''',可自行修改,点击开启按钮导出'''PWM10'''</p><p>[[File:plus-5-995.png]]</p></li><li><p>然后拖动下面的拖动条,就可以改变PWM的占空比,然后勾选Enable就可以输出PWM波形了</p></li>
'''Subdevice #0[[File: subdevice #0'''plus-5-996.png]]</ol><ol start="10" style="list-style-type: decimal;"><li>然后使用示波器测量开发板40pin中的第31号引脚就可以看到下面的波形了</li>
# 然后使用'''aplay'''命令播放下系统自带的音频文件,如果HDMI显示器或者电视能听到声音说明硬件能正常使用[[File:plus-5-997.png]]## 播放音频到HDMI_TX1的命令如下所示:</ol><span id="adb的使用方法-1"></span>
orangepi@orangepi:~$ '''aplay -D hw:1,0 /usr/share/sounds/alsa/audio.wav'''== ADB的使用方法 ==
# 播放音频到HDMI_TX2的命令如下所示:=== 使用数据线连接adb调试 ===
orangepi<ol start="1" style="list-style-type: decimal;"><li><p>首先准备一根品质良好的Type-C数据线</p><p>[[File:plus-5-17.png]]</p></li><li><p>然后通过Type-C数据线连接好开发板与Ubuntu PC,开发板Type-C接口的位置如下图所示:</p><p>[[File:plus-5-51.png]]</p></li><li><p>然后在Ubuntu PC上安装adb工具</p>{| class="wikitable" style="width:800px;" |-|<p>test@orangepitest:~$ '''aplay sudo apt update'''</p><p>test@test:~$ '''sudo apt -y install adb'''</p>|}</li><li><p>通过下面的命令可以查看识别到的ADB设备</p>{| class="wikitable" style="width:800px;" |-D hw|<p>test@test:2,0 ~$ '''adb devices'''</p><p>List of devices attached</p><p>S63QCF54CJ device</p><p>test@test:~$ '''lsusb'''</usrp><p>Bus 003 Device 006: ID 2207:0006</sharep>|}</soundsli><li><p>然后在Ubuntu PC上通过adb shell就可以登录到android系统了</alsap></audio.wavli>{| class="wikitable" style="width:800px;" |-|test@test:~$ '''adb shell'''
console:/ $|}</ol><ol start="6" style="list-style-type: decimal;"><li>执行下面的命令可以重新挂载Android系统</li>{| class= 使用命令测试录音的方法 =="wikitable" style="width:800px;" |-|test@test:~$ '''adb root'''
# 开发板上有板载MIC,位置如下所示:test@test:~$ '''adb remount'''|}</ol><ol start="7" style="list-style-type: decimal;"><li>然后就可以传输文件到Android系统了</li>{| class="wikitable" style="width:800px;" |-|test@test:~$ '''adb push example.txt /system/'''|}</ol>
[[File:media/bdbcc8928fe96870298215b0d277712b.png]]=== 使用网络连接adb调试 ===
{| class="wikitable" style="background-color:# 运行ffffdc;width:800px;" |-| <big>'''test_record.sh main使用网络adb无需Typc-C接口的数据线来连接电脑和开发板,而是通过网络来通信,所以首先请确保开发板的有线或者无线网络已经连接好了,然后获取开发板的IP地址,后面要用到。'''命令会通过板载MIC录制一段音频,然后播放到HDMI_TX1和耳机。</big>|}
orangepi@orangepi<ol style="list-style-type:~$ decimal;"><li><p>确保Android系统的'''test_recordservice.sh mainadb.tcp.port'''设置为5555端口号</p>{| class="wikitable" style="width:800px;" |-|<p>console:/ # '''getprop | grep "adb.tcp"'''</p><p>[service.adb.tcp.port]: ['''5555''']</p>|}</li><li><p>如果'''service.adb.tcp.port'''没有设置,可以使用下面的命令设置网络adb的端口号</p></li>{| class="wikitable" style="width:800px;" |-|console:/ # '''setprop service.adb.tcp.port 5555'''
Start recordingconsole: /tmp/test.wav# '''stop adbd'''
Recording WAVE ‘console:/ # '''start adbd'''|}</ol><ol start="3" style="list-style-type: decimal;"><li><p>在Ubuntu PC上安装adb工具</tmpp>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''sudo apt update'''</p><p>test@test:~$ '''sudo apt install -y adb'''</p>|}</li><li><p>然后在Ubuntu PC上连接网络adb</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''adb connect 192.wav’ 168.1.xxx''' '''(IP地址需要修改为开发板的IP地址)'''</p><p>* daemon not running; starting now at tcp: Signed 16 bit Little Endian, Rate 44100 Hz, Stereo5037</p><p>* daemon started successfully</p><p>connected to 192.168.1.xxx:5555</p>
Start playing
Playing WAVE ‘<p>test@test:~$ '''adb devices'''</p><p>List of devices attached</p><p>192.168.1.xxx:5555 device</p>|}</tmpli><li><p>然后在Ubuntu PC上通过adb shell就可以登录到android系统</p></li>{| class="wikitable" style="width:800px;" |-|test@test.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo~$ '''adb shell'''
Playing WAVE ‘console:/tmp#|}</testol><span id="android-box测试过的2.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo4g-usb遥控器"></span>
# 除了板载MIC,我们还可以通过带MIC功能的耳机来录制音频。将带MIC功能的耳机插入开发板后,运行'''test_record== Android Box测试过的2.sh headset'''命令会通过耳机录制一段音频,然后播放到HDMI_TX1和耳机。4G USB遥控器 ==
orangepi@orangepi<ol style="list-style-type:~$ '''test_recorddecimal;"><li><p>目前测试过的一款2.sh headset'''4G USB遥控器如下图所示</p><ol style="list-style-type: lower-alpha;"><li><p>包含一个遥控器</p><p>[[File:plus-5-1000.png]]</p></li><li><p>一个USB无线接收器</p><p>[[File:plus-5-1001.png]]</p></li></ol></li><li><p>Android Box系统无需任何配置,插上就可以用了</p></li></ol>
Start recording: <span id="android-box系统红外遥控器的使用方法"></tmp/test.wavspan>
Recording WAVE ‘/tmp/test.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo== Android Box系统红外遥控器的使用方法 ==
Start playing<ol start="1" style="list-style-type: decimal;"><li><p>开发板自带有红外接收器,其所在位置如下图所示:</p><p>[[File:plus-5-1002.png]]</p></li><li><p>测试红外接收前我们需要准备一个红外遥控器</p><div class="figure">
Playing WAVE ‘/tmp/test[[File:plus-5-1003.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereopng]]
Playing WAVE ‘</tmpdiv>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''<span style="color:#FF0000">注意:香橙派提供的Android系统默认只支持香橙派提供的遥控器,电视或者空调的遥控器是不能用的。</span>'''</p></big>|}</test.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereoli><li><p>Android Box系统已经适配了这款遥控器,直接就可以使用了,无需其它的设置。</p></li></ol>
<span id== 温度传感器 =="android-box系统hdmi-cec功能的使用方法"></span>
查看系统温度传感器的命令为:== Android Box系统HDMI CEC功能的使用方法 ==
orangepi@orangepi{| class="wikitable" style="background-color:~$ #ffffdc;width:800px;" |-| <big>'''sensors<span style="color:#FF0000">HDMI CEC允许用户只用一个遥控器,就能通过HDMI控制所有连接的设备,基于这个功能,我们用电视机的遥控器就可以控制开发板。</span>'''
gpu_thermal-virtual-0
Adapter'''<span style="color: Virtual device#FF0000">测试此功能前,请确保您的电视机是支持HDMI CEC的。</span>'''</big>|}
temp1<ol style="list-style-type: +47decimal;"><li><p>首先将开发板通过HDMI线连接到电视,然后上电启动</p></li><li><p>然后在电视的设置中开启HDMI CEC功能,不同电视开启方式可能有差异,这里以小米电视为例,按下遥控器的菜单键,然后选中CEC遥控并按下确认键</p><p>[[File:plus5-1004.png]]</p></li><li><p>然后选择'''“开”'''就可以打开HDMI CEC遥控</p><p>[[File:plus5-1005.2°Cpng]]</p></li><li><p>此时就可以通过电视的遥控器控制开发板的Android Box系统了</p></li></ol>
littlecore_thermal<span id="android-virtual-012源码的编译方法"></span>
Adapter: Virtual device= '''Android 12源码的编译方法''' =
temp1: +47.2°C<span id="下载android-12的源码"></span>== 下载Android 12的源码 ==
bigcore0_thermal<ol style="list-virtualstyle-0type: decimal;"><li><p>首先从百度云盘或者谷歌网盘下载Android 12源码的分卷压缩包</p><ol style="list-style-type: lower-alpha;"><li><p>百度云盘</p><p>[[File:plus-5-1006.png]]</p></li><li><p>谷歌网盘</p><p>[[File:plus-5-1007.png]]</p></li></ol></li><li><p>Android 12源码的分卷压缩包下载完后,请先检查下MD5校验和是否正确,如果不正确,请重新下载源码</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''md5sum -c Android_12.tar.gz.md5sum'''</p><p style="color:#FF0000">'''Android_12.tar.gz00: 确定'''</p><p style="color:#FF0000">'''Android_12.tar.gz01: 确定'''</p><p style="color:#FF0000">'''Android_12.tar.gz02: 确定'''</p><p style="color:#FF0000">'''Android_12.tar.gz03: 确定'''</p><p style="color:#FF0000">'''Android_12.tar.gz04: 确定'''</p><p style="color:#FF0000">'''Android_12.tar.gz05: 确定'''</p><p style="color:#FF0000">'''Android_12.tar.gz06: 确定'''</p><p style="color:#FF0000">'''Android_12.tar.gz07: 确定'''</p>|}</li><li><p>然后需要将多个压缩文件合并成一个,再进行解压</p></li>{| class="wikitable" style="width:800px;" |-|test@test:~$ '''cat Android_12.tar.gz0* > Android_12.tar.gz'''
Adaptertest@test: Virtual device~$ '''tar -xvf Android_12.tar.gz'''|}</ol><span id="编译android-12的源码"></span>
temp1: +47.2°C== 编译Android 12的源码 ==
tcpm_source_psy_6_0022<ol style="list-i2cstyle-6type: decimal;"><li><p>首先安装编译Android12源码需要的软件包</p>{| class="wikitable" style="width:800px;" |-22|<p>test@test:~$ '''sudo apt-get update'''</p><p>test@test:~$ '''sudo apt-get install -y git gnupg flex bison gperf build-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>{| class="wikitable" style="width:800px;" |-|<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>{| class="wikitable" style="width:800px;" |-|<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>{| class="wikitable" style="width:800px;" |-|<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$ '''./build.sh -AUKu'''</p>|}</li></ol></li><li><p>编译完成后会打印下面的信息</p>{| class="wikitable" style="width:800px;" |-|<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>{| class="wikitable" style="width:800px;" |-|<p>test@test:~/Android_12$ '''cd rockdev/Image-rk3588s_s'''</p><p>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>{| class="wikitable" style="width:800px;" |-|<p>test@test:~/Android_12$ '''cd rockdev/Image-rk3588_box'''</p><p>test@test:~/Android_12/rockdev/Image-rk3588_box$ '''ls update*'''</p><p>update.img update_spi_nvme.img</p>|}</li></ol>
Adapter: rk3x<span id="orange-i2cpi-os-droid-系统的使用说明"></span>
in0: 0.00 V (min = +0.00 V, max '''Orange Pi OS Droid 系统的使用说明''' = +0.00 V)
curr1: 0.00 A (max <span id="opi-os-droid系统的功能适配情况"></span>== OPi OS Droid系统的功能适配情况 == +0.00 A)
npu_thermal{| class="wikitable" style="width:800px;" |-| style="text-align: left;"| '''功能'''| style="text-align: left;"| '''OPi 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;"| '''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;"| '''OK'''|-| style="text-align: left;"| '''AP6275P-BT'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AX200-WIFI'''| style="text-align: left;"| '''<span style="color:#FF0000">NO</span>'''|-| style="text-align: left;"| '''AX200-BT'''| style="text-align: left;"| '''<span style="color:#FF0000">NO</span>'''|-| style="text-align: left;"| '''AX210-WIFI'''| style="text-align: left;"| '''<span style="color:#FF0000">NO</span>'''|-| style="text-align: left;"| '''AX210-BT'''| style="text-align: left;"| '''<span style="color:#FF0000">NO</span>'''|-| style="text-align: left;"| '''RTL8852BE-WIFI'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''RTL8852BE-BT'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Recovery按键'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C接口USB3.0功能'''| 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-virtualC接口DP音频播放'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''USB3.0Hub'''| style="text-align: left;"| '''OK'''|-Adapter| style="text-align: Virtual deviceleft;"| '''开关机按键'''| style="text-align: left;"| '''OK'''temp1|-| 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'''|-| 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+47.2°CNVME固态启动'''| 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'''|-| style="text-align: left;"| '''NPU'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''MIPI LCD'''| style="text-align: left;"| '''<span style="color:#FF0000">NO</span>'''|-| style="text-align: left;"| '''HDMI CEC'''| style="text-align: left;"| '''<span style="color:#FF0000">NO</span>'''|}
center_thermal<span id="hdmi-virtualin的测试方法-03"></span>
Adapter: Virtual device== HDMI In的测试方法 ==
temp1<ol style="list-style-type: +47decimal;"><li><p>开发板HDMI In接口的所在位置如下所示:</p><p>[[File:plus-5-432.png]]</p></li><li><p>然后使用下图所示的HDMI转HDMI线将其它设备的HDMI输出接到开发板的HDMI In接口上</p><p>[[File:plus-5-7.png]]</p></li><li><p>确保连接到HDMI In接口的设备的HDMI输出是正常的,然后打开HDMI In测试APP</p><p>[[File:plus-5-1010.png]]</p></li><li><p>然后会出现如下图所示的窗口,这时是看不到HDMI In的视频输入的,需要点击下图红框标记的位置放大为全屏</p><p>[[File:plus-5-1011.png]]</p></li><li><p>然后就可以看到HDMI In的视频输入了,同时HDMI In的音频输入也会从开发板的HDMI TX接口或者耳机接口输出。下图显示的是通过HDMI In输入的OPi5开发板Linux系统的桌面。</p><p>[[File:plus-5-1012.2°Cpng]]</p></li></ol>
bigcore1_thermal-virtual-0= '''附录''' =
Adapter: Virtual device== 用户手册更新历史 ==
temp1{| class="wikitable" style="width: +47800px;" |-! 版本 !! 日期 !! 更新说明|-| v1.2°C0| 2023-05-22| 初始版本|-| v1.1| 2023-05-24| 1. Android Box系统红外遥控器的使用方法
soc_thermal-virtual-02. Orange Pi OS Droid 系统的使用说明
Adapter: Virtual device|-| v1.2| 2023-05-26| 1. Ubuntu/Debian:HDMI IN的测试方法
temp1: +472.2°C (crit = +115.0°C)删除RTL8821CU USB WIFI模块的使用说明,不推荐使用此模块
<span id="pin扩展接口引脚使用说明"></span>|-== 40 Pin扩展接口引脚使用说明 ==| v1.3| 2023-05-29| 1. 更新使用RKDevTool烧录镜像到SPIFlash+SSD中的方法
<div class="figure">2. 使用RKDevTool清空SPIFlash的方法
[[File:media/a2e3e17a9eba6dc38a2c96698b330b1f|-| v1.jpeg4|5725d46c4ff256fbd1d42ed5ba883f9f]]2023-05-31| 1. 更新M.2 E-Key PCIe WIFI6+蓝牙模块的使用方法
<2. Ubuntu/div># Orange Pi 5 Plus开发板40 pin扩展接口引脚的顺序请参考下图:Debian:ZFS文件系统的使用方法
[[File:media3. Ubuntu/a60956e1c6771e2a198f738598a77fcd.png]]Debian:开机默认关闭绿灯和蓝灯的方法
# Orange Pi 5 Plus开发板40 pin接口引脚的功能如下表所示## 下面是40 pin完整的引脚图4. 添加Debian12系统的使用说明(分散在多个小节中)
[[File:media/8fdc5f37f284d983dd9764c23147b1565.png]]使用开发板40pin接口中的5v引脚供电说明
下面这张是彩图,包含上面表格中的部分内容:|-| v1.5| 2023-06-07| 1. 添加eMMC模块的图片
[[File:media/2bc11748f8f69c39863670e218a921572.png]]更正散热风扇接口的图片
# 下面的表格是上面完整表格左半边部分的图,能看得清楚点3. 添加查看nvme ssd温度的方法
[[File:media/c25e56f7ee717fc0a967c1cb82de9233.png]]|}
# 下面的表格是上面完整表格右半边部分的图,能看得清楚点== 镜像更新历史 ==
[[File:media/db512b4cd98f4ae32d598a09b5169c65.png]]{| class="wikitable"|-| '''日期'''
| '''上面表格中pwm都标出了对应的寄存器的基地址,在查看/sys/class/pwm/中哪个pwmchip对应40 pin排针中哪个pwm引脚时很有用。更新说明'''|-| 2023-05-19| Orangepi5plus_1.0.0_debian_bullseye_server_linux5.10.110.7z
# 40 pin接口中总共有'''28'''个GPIO口,所有GPIO口的电压都是'''3Orangepi5plus_1.3v'''。0.0_debian_bullseye_desktop_xfce_linux5.10.110.7z
<span id="安装wiringop的方法"></span>== 安装wiringOP的方法 ==Orangepi5plus_1.0.0_debian_bullseye_desktop_kde-plasma_linux5.10.110.7z
'''注意,Orange Pi发布的linux镜像中已经预装了wiringOP,除非wiringOP的代码有更新,否则无需重新下载编译安装,直接使用即可。'''Orangepi5plus_1.0.0_ubuntu_focal_server_linux5.10.110.7z
'''编译好的wiringOP的deb包在orangepi-build中的存放路径为:'''Orangepi5plus_1.0.0_ubuntu_focal_desktop_xfce_linux5.10.110.7z
'''orangepi-build/external/cache/debs/arm64/wiringpi_xOrangepi5plus_1.xx0.deb'''0_ubuntu_jammy_server_linux5.10.110.7z
'''进入系统后可以运行下gpio readall命令,如果能看到下面的输出,说明wiringOP已经预装并且能正常使用。'''Orangepi5plus_1.0.0_ubuntu_jammy_desktop_xfce_linux5.10.110.7z
<div class="figure">Orangepi5plus_1.0.0_ubuntu_jammy_desktop_gnome_linux5.10.110.7z
[[File:media/167f6a97004f798d35e9653b7692d025Opios-droid-aarch64-opi5plus-23.png|876iring_001]]05-linux5.10.110.tar.gz
</div>'''wiringOP目前主要适配了设置GPIO口输入输出,设置GPIO口输出高低电平以及设置上下拉电阻的功能,像硬件PWM这样的功能是用不了的。'''Opios-droid-aarch64-opi5plus-23.05-linux5.10.110-spi-nvme.tar.gz
# 下载wiringOP的代码OrangePi5Plus_RK3588_Android12_v1.0.0.tar.gz
orangepi@orangepi:~$ '''sudo apt update'''OrangePi5Plus_RK3588_Android12_lcd_v1.0.0.tar.gz
orangepi@orangepi:~$ '''sudo apt install OrangePi5Plus-y git'''RK3588_Android12-box_v1.0.0.tar.gz
orangepi@orangepi:~$ '''git clone https://githubOrangePi5Plus_RK3588_Android12_spi-nvme_v1.com/orangepi-xunlong/wiringOP0.0.tar.git -b next'''gz
'''注意,Orange Pi 5 Plus需要下载wiringOP next分支的代码,请别漏了OrangePi5Plus_RK3588_Android12_spi-b next这个参数。'''nvme_lcd_v1.0.0.tar.gz
'''如果从GitHub下载代码有问题,可以直接使用Linux镜像中自带的wiringOP源码,存放位置为:/usr/src/wiringOP'''OrangePi5Plus-RK3588_Android12-box_spi-nvme_v1.0.0.tar.gz
# 编译安装wiringOPopenwrt-aarch64-opi5plus-23.05-linux5.10.110-ext4.img.gz
orangepi@orangepi:~$ '''cd wiringOP'''* 初始版本
orangepi@orangepi:~/wiringOP$ '''sudo |-| 2023-05-22| Opios-arch-aarch64-gnome-opi5plus-23./build clean'''05-linux5.10.110.img.xz
orangepi@orangepi:~/wiringOP$ '''sudo openwrt-rockchip -armv8-xunlong_orangepi-5-plus-spi-squashfs-sysupgrade./build'''bin
# 测试gpio readall命令的输出如下* 初始版本
<div class="figure">|-| 2023-05-24| Orangepi5plus_1.0.2_debian_bullseye_desktop_kde-plasma_linux5.10.110.7z
[[File:media/167f6a97004f798d35e9653b7692d025.png|876iring_001]]* 修复桌面音频无法使用的问题
</div><span id="pin接口gpioi2cuartspican和pwm测试"></span>== 40 pin接口GPIO、I2C、UART、SPI、CAN和PWM测试 ==* 更新chromium浏览器为chromium-brow ser_110.0,支持h264、h265、vp8、vp9和av1格式的视频硬解播放
<span id="pin|-gpio口测试"></span>=== 40 pin GPIO口测试 ===| 2023-05-26| Opios-arch-aarch64-gnome-opi5plus-23.05.1-linux5.10.110.img.xz
'''Orange Pi发布的linux系统中有预装一个blink_all_gpio程序,这个程序会设置40 pin中的所有28个GPIO口不停的切换高低电平。'''* 任务栏:去掉日历和音乐,添加命令行终端和浏览器的快捷方式
'''运行blink_all_gpio程序后,当用万用表去测量GPIO口的电平时,会发现GPIO引脚会在0和3.3v之间不停的切换。使用这个程序我们可以来测试GPIO口是否能正常工作。'''* 支持通过CTRL+ALT+T快捷键打开命令行终端
'''运行blink_all_gpio程序的方式如下所示:'''OrangePi5Plus_RK3588_Android12_v1.0.1.tar.gz
orangepi@orangepi5plus:~$ '''sudo blink_all_gpio #记得加sudo权限'''OrangePi5Plus_RK3588_Android12_v1.0.1_lcd.tar.gz
[sudo] password for orangepi: '''#在这里需要输入密码'''OrangePi5Plus_RK3588_Android12_v1.0.1_spi-nvme.tar.gz
# 开发板40 pin中总共有'''28'''个GPIO口可以使用,下面以7号引脚——对应GPIO为GPIO1_D6 ——对应wPi序号为2——为例演示如何设置GPIO口的高低电平OrangePi5Plus_RK3588_Android12_v1.0.1_lcd_spi-nvme.tar.gz
<div class="figure">* 预装google play store
[[File:media/848fb41de6fb6e4978ca52df25d5e04dOrangepi5plus_1.png|874iring_001]]0.4_debian_bullseye_desktop_kde-plasma_linux5.10.110.7z
* 支持CTRL+ALT+T快捷方式打开命令行终端<br /div># 首先设置GPIO口为输出模式,其中第三个参数需要输入引脚对应的wPi的序号* 任务栏新增konsole终端和chromium浏览器的快捷方式<br />* 优化音频设备显示的名字<br />* 优化test_hdmiin.sh测试脚本<br />* 修复spiflash+nvme ssd无法启动的问题
root@orangepi:~/wiringOP# '''gpio mode 2 out'''Orangepi5plus_1.0.4_debian_bullseye_desktop_xfce_linux5.10.110.7z
# 然后设置GPIO口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功* 支持CTRL+ALT+T快捷方式打开命令行终端<br />* 优化音频设备显示的名字<br />* 优化test_hdmiin.sh测试脚本<br />* 更新chromium浏览器为chromium-brows er_110.0,支持h264、h265、vp8、vp9和av1格式的视频硬解播放<br />* 修复spiflash+nvme ssd无法启动的问题
root@orangepi:~Orangepi5plus_1.0.4_ubuntu_focal_desktop_xfce_linux5.10.110.7z<br />Orangepi5plus_1.0.4_ubuntu_jammy_desktop_xfce_linux5.10.110.7z<br /wiringOP# '''gpio write 2 >Orangepi5plus_1.0'''.4_ubuntu_jammy_desktop_gnome_linux5.10.110.7z
使用gpio readall可以看到7号引脚的值(V)变为了0* 支持CTRL+ALT+T快捷方式打开命令行终端<br />* 优化音频设备显示的名字<br />* 优化test_hdmiin.sh测试脚本<br />* 修复spiflash+nvme ssd无法启动的问题
Orangepi5plus_1.0.4_debian_bullseye_server_linux5.10.110.7z<div class="figure"br />Orangepi5plus_1.0.4_ubuntu_focal_server_linux5.10.110.7z<br />Orangepi5plus_1.0.4_ubuntu_jammy_server_linux5.10.110.7z
[[File:media/b56b2329e91103c88644feb84d4ea385.png|874iring_002]]* 修复spiflash+nvme ssd无法启动的问题
</div>|-# 然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3| 2023-05-29| Opios-droid-aarch64-opi5plus-23.05.1-linux5.10.110-en.tar.3v,说明设置高电平成功gz
root@orangepi:~/wiringOP# '''gpio write 2 Opios-droid-aarch64-opi5plus-23.05.1'''-linux5.10.110-en-spi-nvme.tar.gz
使用gpio readall可以看到7号引脚的值* 预装google play store (V上面镜像名中的en表示英文版,需要去谷歌网盘下载)变为了1
<div class="figure">|-| 2023-06-01
[[File:media/b014b3ea3b78da6fde018f37b20de7cd| Orangepi5plus_1.0.6_ubuntu_jammy_desktop_xfce_linux5.10.png|875iring_001]]110.7z
</div>
# 其他引脚的设置方法类似,只需修改wPi的序号为引脚对应的序号即可
<span id="pin-gpio口上下拉电阻的设置方法"></span>
=== 40 pin GPIO口上下拉电阻的设置方法 ===
# 下面以7号引脚——对应GPIO为GPIO1_D6 ——对应wPi序号为2——为例演示如何设置GPIO口的上下拉电阻* 修复zfs文件系统无法安装的问题
<div class="figure">* 增加rk3588-opi5plus-disable-leds.dtbo,用于关闭蓝灯和绿灯
[[File:media/b014b3ea3b78da6fde018f37b20de7cd* 更新chromium浏览器为chromium-browser_110.png|875iring_001]]0,支持h264、h265、vp8、vp9和av1格式的视频硬解播放
</div>
# 首先需要设置GPIO口为输入模式,其中第三个参数需要输入引脚对应的wPi的序号
root@orangepi:~/wiringOP# '''gpio mode 2 in''' # 设置为输入模式后,执行下面的命令可以设置GPIO口为上拉模式 root@orangepi:~/wiringOP# '''gpio mode 2 up''' # 然后输入下面的命令读取GPIO口的电平,如果电平为1,说明上拉模式设置成功 root@orangepi:~/wiringOP# '''gpio read 2''' '''1''' # 然后执行下面的命令可以设置GPIO口为下拉模式 root@orangepi:~/wiringOP# '''gpio mode 2 down''' # 然后输入下面的命令读取GPIO口的电平,如果电平为0,说明下拉模式设置成功 root@orangepi:~/wiringOP# '''gpio read 2''' '''Orangepi5plus_1.0''' <span id="pin-spi测试"></span>=== 40 pin SPI测试 ===.6_debian_bullseye_desktop_xfce_linux5.10.110.7z
# 由下图可知,Orange Pi 5 Plus可用的SPI为SPI0和SPI4Orangepi5plus_1.0.6_debian_bullseye_desktop_kde-plasma_linux5.10.110.7z
[[File:media/8fdc5f37f284d983dd9764c23147b156.png]]
# SPI0和SPI4在40pin中对应的引脚如下表所示。SPI4_M1和SPI4_M2同一时间只能使用其中一组,不能同时使用,它们都是同一个SPI4,只是接到不同的引脚上去了而已,请不要以为它们是两组不同的SPI总线。* 更新mpp包
{| 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]] # 然后选择'''<Save>'''保存 [[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5b.png]] # 然后选择'''<Back>''' [[File:media/3191851a2c1e634c8765850e0eedbe63.png]] # 然后选择'''<Reboot>'''重启系统使配置生效 [[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后显示的结果。''' # 然后先不短接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测试"></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]] # 然后选择'''<Save>'''保存 [[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5b.png]] # 然后选择'''<Back>''' [[File:media/3191851a2c1e634c8765850e0eedbe63.png]] # 然后选择'''<Reboot>'''重启系统使配置生效 [[File:media/03310676d04e3df78bf5a4f3536ad49c.png]] # 启动linux系统后,先确认下'''/dev'''下存在需要使用I2C的设备节点 orangepi@orangepi:~$ '''ls /dev/i2c-*''' # 然后在40 pin接口对应的I2C引脚上接一个I2C设备# 然后使用'''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的命令 <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号引脚'''| '''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]] # 然后选择'''<Save>'''保存 [[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5b.png]] # 然后选择'''<Back>''' [[File:media/3191851a2c1e634c8765850e0eedbe63.png]] # 然后选择'''<Reboot>'''重启系统使配置生效 [[File:media/03310676d04e3df78bf5a4f3536ad49c.png]] # 进入linux系统后,先确认下/dev下是否存在对应uart的设备节点 orangepi@orangepi:~$ '''ls /dev/ttyS*''' # 然后开始测试uart接口,先使用杜邦线短接要测试的uart接口的rx和tx引脚# 使用'''gpio serial'''命令测试串口的回环功能如下所示,如果能看到下面的打印,说明串口通信正常(ttySX需要替换为对应uart的节点名,请不要照抄) orangepi@orangepi:~$ '''sudo gpio serial /dev/ttySX''' [sudo] password for orangepi: #在这里输入密码 Out: 0: -> 0 Out: 1: -> 1 Out: 2: -> 2 Out: 3: -> 3 Out: 4: -> 4 Out: 5: -> 5^C <span id="pwm的测试方法"></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'''! '''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]] # 然后选择'''<Save>'''保存 [[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5b.png]] # 然后选择'''<Back>''' [[File:media/3191851a2c1e634c8765850e0eedbe63.png]] # 然后选择'''<Reboot>'''重启系统使配置生效 [[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 > /sys/class/pwm/pwmchip2/export''' root@orangepi:~# '''echo 20000000 > /sys/class/pwm/pwmchip2/pwm0/period''' root@orangepi:~# '''echo 1000000 > /sys/class/pwm/pwmchip2/pwm0/duty_cycle''' root@orangepi:~# '''echo 1 > /sys/class/pwm/pwmchip2/pwm0/enable''' [[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]] # 然后选择'''<Save>'''保存 [[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5b.png]] # 然后选择'''<Back>''' [[File:media/3191851a2c1e634c8765850e0eedbe63.png]] # 然后选择'''<Reboot>'''重启系统使配置生效 [[File:media/03310676d04e3df78bf5a4f3536ad49c.png]] # 进入linux系统后,使用'''sudo ifconfig -a'''命令如果能看到CAN的设备节点,就说明CAN已正确打开了 orangepi@orangepi:~$ '''sudo ifconfig -a''' can0: flags=128<NOARP> 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<NOARP> 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 > bindings.i''' root@orangepi:~/wiringOP-Python# '''sudo python3 setup.py install''' # 然后输入下面的命令,如果有帮助信息输出,说明wiringOP-Python安装成功,按下'''q'''键可以退出帮助信息的界面 root@orangepi:~/wiringOP-Python# '''python3 -c “import wiringpi; help(wiringpi)”''' Help on module wiringpi: NAME wiringpi DESCRIPTION # This file was automatically generated by SWIG (http://www.swig.org). # Version 4.0.2 # # Do not make changes to this file unless you know what you are doing–modify # the SWIG interface file instead. # 在python命令行下测试wiringOP-Python是否安装成功的步骤如下所示:## 首先使用python3命令进入python3的命令行模式 root@orangepi:~# '''python3''' # 然后导入wiringpi的python模块 >>> '''import wiringpi;''' # 最后输入下面的命令可以查看下wiringOP-Python的帮助信息,按下'''q'''键可以退出帮助信息的界面 >>> '''help(wiringpi)''' Help on module wiringpi: NAME wiringpi DESCRIPTION # This file was automatically generated by SWIG (http://www.swig.org). # Version 4.0.2 # # Do not make changes to this file unless you know what you are doing–modify # the SWIG interface file instead. CLASSES builtins.object GPIO I2C Serial nes class GPIO(builtins.object) | GPIO(pinmode=0) | >>> <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模块 >>> '''import wiringpi''' >>> '''from wiringpi import GPIO''' # 然后设置GPIO口为输出模式,其中'''pinMode'''函数的第一个参数是引脚对应的wPi的序号,第二个参数是GPIO的模式 >>> '''wiringpi.wiringPiSetup()''' 0 >>> '''wiringpi.pinMode(2, GPIO.OUTPUT)''' # 然后设置GPIO口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功 >>> '''wiringpi.digitalWrite(2, GPIO.LOW)''' # 然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功 >>> '''wiringpi.digitalWrite(2, GPIO.HIGH)''' # wiringOP-Python在python代码中设置GPIO高低电平的方法可以参考下examples中的'''blink.py'''测试程序,'''blink.py'''测试程序会设置开发板40 pin中所有的GPIO口的电压不断的高低变化 root@orangepi:~/wiringOP-Python# '''cd examples''' root@orangepi:~/wiringOP-Python/examples# '''ls blink.py''' '''blink.py''' root@orangepi:~/wiringOP-Python/examples'''# python3 blink.py''' <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]] # 然后选择'''<Save>'''保存 [[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5b.png]] # 然后选择'''<Back>''' [[File:media/3191851a2c1e634c8765850e0eedbe63.png]] # 然后选择'''<Reboot>'''重启系统使配置生效 [[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]] # 然后选择'''<Save>'''保存 [[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5b.png]] # 然后选择'''<Back>''' [[File:media/3191851a2c1e634c8765850e0eedbe63.png]] # 然后选择'''<Reboot>'''重启系统使配置生效 [[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]] # 然后选择'''<Save>'''保存 [[File:media/77fdb1f8d8e83e1f16d26896c1cdeb5b.png]] # 然后选择'''<Back>''' [[File:media/3191851a2c1e634c8765850e0eedbe63.png]] # 然后选择'''<Reboot>'''重启系统使配置生效 [[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: -> 0 Out: 1: -> 1 Out: 2: -> 2 Out: 3: -> 3 Out: 4:^C exit == 硬件看门狗测试 == Orange Pi发布的linux系统中预装了watchdog_test程序,可以直接测试。 运行watchdog_test程序的方法如下所示: # 第二个参数10表示看门狗的计数时间,如果这个时间内没有喂狗,系统会重启## 我们可以通过按下键盘上的任意键(ESC除外)来喂狗,喂狗后,程序会打印一行keep alive表示喂狗成功 orangepi@orangepi:~$ '''sudo watchdog_test 10''' open success options is 33152,identity is sunxi-wdt put_usr return,if 0,success:0 The old reset time is: 16 return ENOTTY,if -1,success:0 return ENOTTY,if -1,success:0 put_user return,if 0,success:0 put_usr return,if 0,success:0 keep alive keep alive keep alive <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 > 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键可以将光标移动到'''<OK>''',然后回车即可) [[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&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 <stdio.h> int main(void) { printf(“Hello World!\n”); return 0; } # 然后编译运行'''hello_world.c''' orangepi@orangepi:~$ '''gcc -o hello_world hello_world.c''' orangepi@orangepi:~$ '''./hello_world''' Hello World! # Debian Bullseye默认安装有Python3## Python具体版本如下所示 orangepi@orangepi:~$ '''python3''' '''Python 3.9.2''' (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110] on linux Type “help”, “copyright”, “credits” or “license” for more information. >>> '''使用Ctrl+D快捷键可退出python的交互模式。''' # 编写Python语言的'''hello_world.py'''程序 orangepi@orangepi:~$ '''vim hello_world.py''' print(‘Hello World!’) # 运行'''hello_world.py'''的结果如下所示 orangepi@orangepi:~$ '''python3 hello_world.py''' Hello World! # Debian Bullseye默认没有安装Java的编译工具和运行环境## 可以使用下面的命令安装openjdk,Debian Bullseye中最新版本为openjdk-17 orangepi@orangepi:~$ '''sudo apt install -y openjdk-17-jdk''' # 安装完后可以查看下Java的版本 orangepi@orangepi:~$ '''java –version''' # 编写Java版本的'''hello_world.java''' orangepi@orangepi:~$ '''vim hello_world.java''' public class hello_world { public static void main(String[] args) { System.out.println(“Hello World!”); } } # 然后编译运行'''hello_world.java''' orangepi@orangepi:~$ '''javac hello_world.java''' orangepi@orangepi:~$ '''java hello_world''' Hello World! <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 <stdio.h> int main(void) { printf(“Hello World!\n”); return 0; } # 然后编译运行'''hello_world.c''' orangepi@orangepi:~$ '''gcc -o hello_world hello_world.c''' orangepi@orangepi:~$ '''./hello_world''' Hello World! # Ubuntu Focal默认安装有Python3## Python3具体版本如下所示 orangepi@orangepi:~$ '''python3''' Python 3.8.10 (default, Nov 14 2022, 12:59:47) [GCC 9.4.0] on linux Type “help”, “copyright”, “credits” or “license” for more information. >>> '''使用Ctrl+D快捷键可退出python的交互模式。''' # 编写Python语言的'''hello_world.py'''程序 orangepi@orangepi:~$ '''vim hello_world.py''' print(‘Hello World!’) # 运行'''hello_world.py'''的结果如下所示 orangepi@orangepi:~$ '''python3 hello_world.py''' Hello World! # Ubuntu Focal默认没有安装Java的编译工具和运行环境## 可以使用下面的命令安装openjdk-17 orangepi@orangepi:~$ '''sudo apt install -y openjdk-17-jdk''' # 安装完后可以查看下Java的版本 orangepi@orangepi:~$ '''java –version''' openjdk 17.0.2 2022-01-18 OpenJDK Runtime Environment (build 17.0.2+8-Ubuntu-120.04) OpenJDK 64-Bit Server VM (build 17.0.2+8-Ubuntu-120.04, mixed mode, sharing) # 编写Java版本的'''hello_world.java''' orangepi@orangepi:~$ '''vim hello_world.java''' public class hello_world { public static void main(String[] args) { System.out.println(“Hello World!”); } } # 然后编译运行'''hello_world.java''' orangepi@orangepi:~$ '''javac hello_world.java''' orangepi@orangepi:~$ '''java hello_world''' Hello World! <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 <stdio.h> int main(void) { printf(“Hello World!\n”); return 0; } # 然后编译运行'''hello_world.c''' orangepi@orangepi:~$ '''gcc -o hello_world hello_world.c''' orangepi@orangepi:~$ '''./hello_world''' Hello World! # Ubuntu Jammy默认安装有Python3## Python3具体版本如下所示 orangepi@orangepi:~$ '''python3''' Python '''3.10.4''' (main, Apr 2 2022, 09:04:19) [GCC 11.2.0] on linux Type “help”, “copyright”, “credits” or “license” for more information. >>> '''使用Ctrl+D快捷键可退出python的交互模式。''' # 编写Python语言的'''hello_world.py'''程序 orangepi@orangepi:~$ '''vim hello_world.py''' print(‘Hello World!’) # 运行'''hello_world.py'''的结果如下所示 orangepi@orangepi:~$ '''python3 hello_world.py''' Hello World! # Ubuntu Jammy默认没有安装Java的编译工具和运行环境## 可以使用下面的命令安装openjdk-18 orangepi@orangepi:~$ '''sudo apt install -y openjdk-18-jdk''' # 安装完后可以查看下Java的版本 orangepi@orangepi:~$ '''java –version''' openjdk 18-ea 2022-03-22 OpenJDK Runtime Environment (build 18-ea+36-Ubuntu-1) OpenJDK 64-Bit Server VM (build 18-ea+36-Ubuntu-1, mixed mode, sharing) # 编写Java版本的'''hello_world.java''' orangepi@orangepi:~$ '''vim hello_world.java''' public class hello_world { public static void main(String[] args) { System.out.println(“Hello World!”); } } # 然后编译运行'''hello_world.java''' orangepi@orangepi:~$ '''javac hello_world.java''' orangepi@orangepi:~$ '''java hello_world''' Hello World! <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'''->'''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 <command> -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 <command> -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 <command> -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 <command> -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 <linux/init.h> #include <linux/module.h> 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]] # 然后选择'''<Save>'''保存 [[File:media/7766a48af4bfd5c3f774d45aafe2113a.png]] # 然后选择'''<Back>''' [[File:media/c959b79c640d175015d9b5f8de6abe0c.png]] # 然后选择'''<Reboot>'''重启系统使配置生效 [[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]] # 然后选择'''<Save>'''保存 [[File:media/2226fe857ef2ae960e61858ba71dc4eb.png]] # 然后选择'''<Back>''' [[File:media/9cacd4269d293bac7a70bc44e56d08d7.png]] # 然后选择'''<Reboot>'''重启系统使配置生效 [[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 = <2>; pwms = <&pwm3 0 50000 0>; cooling-levels = <0 50 100 150 200 255>; rockchip,temp-trips = < 50000 1 55000 2 60000 3 65000 4 70000 5 >; status = “okay”; }; 其中: # '''pwms = <&pwm3 0 50000 0>''':表示控制风扇的pwm为pwm3。## '''cooling-levels = <0 50 100 150 200 255>''':用来配置转速(pwm的占空比)的档位,档位数量和大小可以自己定义,这里配置6个档位,转速的范围是0-255。## '''rockchip,temp-trips''':用来配置CPU温度和风扇转速档位的对应关系,可以根据实际需要进行调整,上面的配置50度对应档位1,70度对对应档位5。 '''开机后如果发现风扇没有转是正常的,因为开机后CPU的温度一般都低于50度,只有当CPU的温度达到50度后,风扇才会开始转。''' '''使用下面的命令可以让所有CPU都跑满,然后就能看到风扇会开始工作了:''' orangepi@orangepi:~$ '''for i in $(seq 0 $(( $(nproc –all) - 1)) ); do (taskset -c $i yes > /dev/null &); done''' == 关机和重启开发板的方法 == # 在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 <command> -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 <command> -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 & 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''': <BROADCAST,MULTICAST,UP,LOWER_UP> 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 & 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: -> 0 Out: 1: -> 1 Out: 2: -> 2 Out: 3: -> 3 Out: 4: -> 4 Out: 5: -> 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 > /sys/class/pwm/pwmchip2/export''' [root@orangepi ~]# '''echo 20000000 > /sys/class/pwm/pwmchip2/pwm0/period''' [root@orangepi ~]# '''echo 1000000 > /sys/class/pwm/pwmchip2/pwm0/duty_cycle''' [root@orangepi ~]# '''echo 1 > /sys/class/pwm/pwmchip2/pwm0/enable''' [[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<NOARP> 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<NOARP> 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管理界面中,点击“系统->挂载点”进入挂载点的配置界面 [[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]] # 系统启动完成,点击 '''网络 -> 无线''' 进入无线WiFi配置界面。 [[File:media/ff90ab1ed4d8477835c9269c4419e214.png]] # OpenWRT系统默认的无线配置是'''Master''' 模式,这里为了方便接下来的操作,我们将默认的无线连接移除。 [[File:media/c75f19f89252aa1fa93d0292c320289d.png]] # 然后点击页面的右下角 '''保存''' 让配置生效。 [[File:media/eb567315f333b150b77fbb35a44a7a3f.png]] # 然后点击右侧的 '''添加''' 按钮。 [[File:media/84cfa5e24d8ba32834fb43e9459f07f1.png]] # 在弹出标签页 '''设备配置''' 中,我们设置参数如下图所示。 [[File:media/881679489d254cf69ebbb46bad829020.png]] # 然后在 '''接口配置 -> 常规设置''' 中,将模式设置成 '''接入点AP''' ,'''ESSID'''(无线网络名称)设置为'''OpenWrt''' ,网络指定为 '''lan''' [[File:media/ce31d073ed52dcde68aac183da25157d.png]] # 然后在 '''接口配置 -> 无线安全''' 中,加密算法选择 '''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]] # 系统启动完成后,点击 '''网络 -> 无线''' 进入配置无线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 <包名称>''' # 查看已经安装的软件 root@OpenWrt:/# '''opkg list-installed''' # 卸载软件 root@OpenWrt:/# '''opkg remove <包名称>''' <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->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<UP,BROADCAST,RUNNING,MULTICAST> 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<link> 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&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 & 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 & internet''' [[File:media/e865e599310b2f1dc826ebe00de1a76f.png]] # 然后选择'''Hotspot & 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* > 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'''| '''NO'''|}修复zfs文件系统无法安装的问题
<span id="hdmi* 增加rk3588-in的测试方法opi5plus-3"></span>== HDMI In的测试方法 ==disable-leds.dtbo,用于关闭蓝灯和绿灯
# 开发板HDMI In接口的所在位置如下所示:
[[File:media/02b0241c5966daf8d9b568d8fc42282cOrangepi5plus_1.png]]0.6_ubuntu_focal_desktop_xfce_linux5.10.110.7z
# 然后使用下图所示的HDMI转HDMI线将其它设备的HDMI输出接到开发板的HDMI In接口上Orangepi5plus_1.0.6_ubuntu_jammy_desktop_gnome_linux5.10.110.7z
[[File:media/4c06c9135e500bd449b1dc7078fb7235Orangepi5plus_1.png]]0.6_ubuntu_focal_server_linux5.10.110.7z
# 确保连接到HDMI In接口的设备的HDMI输出是正常的,然后打开HDMI In测试APPOrangepi5plus_1.0.6_debian_bullseye_server_linux5.10.110.7z
[[File:media/bdc21bcb5659f5054a4e0927714346baOrangepi5plus_1.png]]0.6_ubuntu_jammy_server_linux5.10.110.7z
# 然后会出现如下图所示的窗口,这时是看不到HDMI In的视频输入的,需要点击下图红框标记的位置放大为全屏
[[File:media/2dd1cef55a372a50c206cb3d647414b5* 增加rk3588-opi5plus-disable-leds.png]]dtbo,用于关闭蓝灯和绿灯
# 然后就可以看到HDMI In的视频输入了,同时HDMI In的音频输入也会从开发板的HDMI TX接口或者耳机接口输出。下图显示的是通过HDMI In输入的OPi5开发板Linux系统的桌面。* 修复zfs文件系统无法安装的问题
[[File:media/79ef2338436ffe5c0c5c7b3c242d90fb.png]]
= 附录 =Orangepi5plus_1.0.6_debian_bookworm_server_linux5.10.110
== 用户手册更新历史 ==Orangepi5plus_1.0.6_debian_bookworm_desktop_xfce_linux5.10.110
{| class="wikitable"
|-
! '''版本'''
! '''日期'''
! '''更新说明'''
|-
| v1.0
| 2023-05-22
| 初始版本
|-
| v1.1
| 2023-05-24
| Android Box系统红外遥控器的使用方法 Orange Pi OS Droid 系统的使用说明
|-
| v1.2
| 2023-05-25
| Ubuntu/Debian:HDMI IN的测试方法
|}
== 镜像更新历史 ==* 初始版本
{| 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快捷键打开命令行终端
|}