Open main menu

Wiki-Orange Pi β

Changes

Orange Pi 5 Plus

1,028 bytes removed, 10:25, 15 June 2023
Burn Orange Pi OS (Droid) image toeMMC
= '''Basic Features of Orange Pi 5''' '''Plus'''=
'''User Manual'''<span id="what-is-orange-pi-5-plus"></span>== What is Orange Pi 5 Plus ==
[[File:Orange Pi 5 Plus adopts Rockchip RK3588 new-generation octa-core 64-bit ARM processor, specifically quad-core A76 and quad-core A55, using Samsung 8nm LP process technology, large-core main frequency up to 2./images/media/image24GHz, integrated ARM Mali-G610 MP4 GPU, embedded with high-performance 3D and 2D image acceleration modules, built-in AI accelerator NPU with a computing power of up to 6 Tops, optional 4GB, 8GB, 16GB or 32GB memory, with up to 8K display processing capabilities.png|576x446px]]
'''目录'''Orange Pi 5 Plus introduces quite a lot of interfaces, including 2 HDMI outputs, 1 HDMI input, USB-C/DP interface, M.2 M-key PCIe3.0x4, M.2 E-key PCIe2.0x1, 2 2.5G network port, eMMC expansion interface, USB2.0, USB3.0 interface, infrared, earphone, onboard MIC, speaker, RTC and 40pin expansion pin header, etc. It can be widely used in high-end tablet, edge computing, artificial intelligence, cloud computing, AR/VR, smart security, smart home and other fields, covering various AIoT industries.
1. Basic Features of Orange Pi 5 Plus supports Orange Pi OS, the official operating system developed by Orange Pi. At the same time, it supports Android 12.1, OpenWRT, Debian11, Debian12, Ubuntu20.04 and Ubuntu22.04 and other operating systems.
1.1. What is <span id="purpose-of-orange-pi-5-plus"></span>== Purpose of Orange Pi 5 Plus 1==
1.2. Purpose of Orange Pi 5 Plus 1We can use it to achieve:
1* A Linux desktop computer* A Linux web server* Android tablet* Android game console, etc.3. Hardware Specifications of Orange Pi 5 Plus 2
1{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Of course, there are more functions.4. Top view Relying on a strong ecosystem and bottom view a variety of Orange Pi expansion accessories, OPi 5 Plus 4can help users easily realize the delivery from idea to prototype to mass production. It is a maker, dreamer, amateur The ideal creative platform for enthusiasts.'''</big>|}
1.5. nterface details <span id="hardware-specifications-of Orange Pi 5 Plus -orange-pi-5-plus"></span>
2. Introduction to the use == Hardware Specifications of the development board 6Orange Pi 5 Plus ==
{| class="wikitable" style="width:800px;" |-|colspan=2.1. Prepare the required accessories 6|<div style="text-align:center"><big>'''Hardware Specifications of Orange Pi 5 Plus'''</big></div>|-| Master chip| Rockchip RK3588(8nm LP process)|-| CPU| • 8-core 64-bit processor
2.2. Download the image of the development board • 4 Cortex-A76 and related materials 144 Cortex-A55 with independent NEON coprocessor
• Cortex-A76 up to 2.34GHz, Cortex-A55 up to 1. Method of burning Linux image to TF card based on Windows PC 158GHz
2.3.1. How to use balenaEtcher to burn Linux image 16|-| GPU| • Integrated ARM Mali-G610
2.3.2. How to use RKDevTool to burn Linux image to TF card 21• Built-in 3D GPU
• Compatible with OpenGL ES1.1/2.0/3.32, OpenCL 2.2 and Vulkan 1. How to use Win32Diskimager to burn Linux image 292
2.4. Method of burning Linux image |-| NPU| Embedded GPU supports INT4/INT8/INT16/FP16, with computing power up to TF card based on Ubuntu PC 326 Tops|-| PMU| RK806-1|-| RAM| 4GB/8GB/16GB/32GB optional|-| Storage| • QSPI Nor FLASH: 16MB/32MB
2.5. How to burn Linux image to eMMC 37• MicroSD card slot
2.5.1. How to use RKDevTool to burn Linux image into eMMC 37socket, external eMMC module can be connected
2.5• M.22280 slot for NVMe SSD (PCIe 3. Using the dd command to burn the Linux image into eMMC 460 x4)
|-| USB| • 2x USB3.6. How to burn Linux image to SPIFlash+NVMe SSD 480
2x USB2.6.1. The method of using the dd command to burn 480
2.6.2. How to use balenaEtcher software to program 52• 1 x Type-C
|-| Video| • 2 x HDMI 2.6.3. Using RKDevTool 1 output, up to burn 688K@60FPS
2• 1 x Type-C (DP 1.7. How to burn OpenWRT image 4A) output, up to SPI FLASH 774K@60FPS
2.7.1. The method of using the dd command x HDMI input, up to burn 774K@60FPS
2.7.2. Using RKDevTool • 1 x MIPI DSI 4 Lane output, up to burn 784K@60FPS
2.8. How to burn Android image to TF card 86|-| TP interface| 1 x 6Pin FPC socket2.9. How to burn Android image into eMMC 89|-| Camera2.9.| 1. How to burn Android image into eMMC via Typex MIPI CSI 4 Lane|-C cable 90| Audio2.9.2| • 1 x 3. How to burn Android 12 image into eMMC via TF card 955mm headphone jack audio input/output
2.10. How to burn Android image to SPIFlash+NVMe SSD 99• 1 x onboard MIC input
2.11. How to burn Orange Pi OS (Droid) image to TF card 104x HDMI output
2.12. How to burn Orange Pi OS (Droid) image into eMMC 107• 1 x HDMI input
2.12.1. Burn Orange Pi OS (Droid) image toeMMC 107x DP output
2.12.2• 1 x speaker output (2pin, 1. Burn Orange Pi OS (Droid25mm specification) image to eMMC via TF card 112
|-| Ethernet| 2 x PCIe 2.135G Ethernet ports (RTL8125BG )|-| 40pin expansion port| Used to expand UART, I2C, SPI, CAN, PWM, GPIO interfaces|-| PCIe M.2 M-KEY| PCIe 3.0 x 4 lanes, used to connect 2280 NVMe SSD solid state drive|-| PCIe M.2 E-KEY| Contains PCIe 2.0 x 1/PCM/UART/USB2.0 interface, supports 2230 Wi-Fi6 /BT module|-| Button| 1 MaskROM key, 1 RECOVERY key, 1 power on/off key|-| Powered supply| Support Type-C power supply, 5V@4A|-| Infrared receiver| 1 x infrared receiver|-| LED| RGB LED three-color indicator light|-| Fan interface| 2pin, 1.25mm specification, used to connect 5V fan, support PWM control switch and speed|-| RTC battery interface| 2pin, 1. Burn Orange Pi 25mm specification, used to power the RTC module|-| Debugging| 3pin debug serial port (UART)|-| Supported OS| Orangepi OS (Droid) image to SPIFlash+NVMe SSD 117、Orangepi OS(Arch)、Orangepi OS(OH)、Ub untu20.04、Ubuntu22.04、Debian11、Debian12、OpenWRT and Android12|-|colspan=2|<div style="text-align:center"><big>'''Introduction of Appearance Specifications'''</big></div>|-| Product Size| 100mm*75mm|-| Weight| 86.5g|}
2.14. How to use RKDevTool to clear SPIFlash 122<span id="top-view-and-bottom-view-of-orange-pi-5-plus"></span>
2.15. Start the == Top view and bottom view of Orange Pi development board 1295 Plus ==
2.16. How to use the debugging serial port 130<big>'''Top view:'''</big>
2.16.1. Connection instruction of debugging serial port 130<div class="figure">
2[[File:plus5-img4.16.2. How to use the debugging serial port on the Ubuntu platform 132png]]
2.16.3. How to use the debugging serial port on Windows platform 135</div><big>'''Bottom view:'''</big>
3. Ubuntu/Debian Server and Xfce desktop system instructions 138<div class="figure">
3[[File:plus5-img5.1. Supported Ubuntu/Debian image types and kernel versions 138png]]
3.2. Linux system adaptation 139</div><span id="nterface-details-of-orange-pi-5-plus"></span>
3.3. The format == Interface details of linux commands in this manual 140Orange Pi 5 Plus ==
3[[File:plus5-img6.4. Linux system login instructions 142png]]
3<div style="margin-left: 100px;">[[File:plus5-img7.4.1. Linux system default login account and password 142png]]</div>
3.4.2. How to set automatic terminal login in linux system 142<span id="section"></span>
3.4.3. Instructions for automatic login = '''Introduction to the use of Linux desktop version system 143the development board''' =
3.4.4. The setting method of root user automatic login in Linux desktop version system 145<span id="prepare-the-required-accessories"></span>== Prepare the required accessories ==
3.4.5. The method # TF card, a class 10 or above high-speed SanDisk card with a minimum capacity of disabling the desktop in the Linux desktop version system 14516GB (32GB or above is recommended)
3::[[File:plus5-img8.5. Onboard LED Light Test Instructions 146png]]
3.6. Network connection test 147<ol start="2" style="list-style-type: decimal;"><li>TF card reader, used to burn the image into the TF card</li>
[[File:plus5-img9.png]]</ol><ol start="3.6.1. 2.5G Ethernet port test 147" style="list-style-type: decimal;"><li>Display with HDMI interface</li>
3[[File:plus5-img10-1.6.2. WIFI connection test 149png]]</ol><ol start="4" style="list-style-type: decimal;"><li>HDMI to HDMI cable, used to connect the development board to an HDMI monitor or TV for display</li>
3[[File:plus5-img11.6.3. How to set a static IP address 157png]]
3{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note, if you want to connect a 4K or 8K display, please make sure that the HDMI cable supports 4K or 8K video display.7. How '''</big>|}</ol><ol start="5" style="list-style-type: decimal;"><li>Type-C to HDMI cable, connect the development board to use Ean HDMI monitor or TV for display through the Type-Key PCIe WIFI6+Bluetooth module 165C interface</li>
3.8. SSH remote login development board 167<div class="figure">
3[[File:plus5-img12.8.1. SSH remote login development board under Ubuntu 167png]]
3.8</div></ol><ol start="6" style="list-style-type: decimal;"><li>Type-C to USB adapter, used to connect USB devices such as USB storage devices or mouse keyboards through the Type-C interface '''(there are 2 USB3.0 HOST interfaces and 2USB2. SSH remote login 0 HOST interfaces on the development board under Windows 169, this accessory generally not used)'''</li>
3.9. How to use ADB 170<div class="figure">
3[[File:plus5-img13.9.1. How to use network adb 170png]]
3</div></ol><ol start="7" style="list-style-type: decimal;"><li>10.9.2. adb3.9.2. Use type1-c data cable inch MIPI screen, used to connect display the system interface of the development board (this screen is common to adb 172OPi5/OPi5B)</li>
3.10. The method of uploading files to the Linux system of the development board 175<div class="figure">
3[[File:plus5-img14.10.1. How to upload files to the development board Linux system in Ubuntu PC 175png]]
3.10.2. The method of uploading files </div></ol><ol start="8" style="list-style-type: decimal;"><li>Power adapter, Orange Pi 5 Plus is recommended to the development board Linux system in Windows PC 178use 5V/4A Type-C power supply for power supply</li>
3[[File:plus5-img15.11. HDMI test 183png]]
3{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''There are two Type-C ports that look the same on the development board.11The one next to the network port is the power port, and the other Type-C port has no power supply function.1Please don't connect it wrong. HDMI test 183'''</big>
3.11.2. HDMI IN test method 185<div class="figure">
3[[File:plus5-img16.11.3. HDMI to VGA display test 188png|center]]
3</div><big>'''The Type-C power interface of the development board does not support the PD negotiation function, and only supports a fixed 5V voltage input.11.4. HDMI resolution setting method 189'''</big>|}</ol><ol start="9" style="list-style-type: decimal;"><li>The mouse and keyboard of the USB interface, as long as the mouse and keyboard of the standard USB interface are acceptable, the mouse and keyboard can be used to control the Orange Pi development board</li>
3[[File:plus5-img17.12. How to use Bluetooth 192png]]</ol><ol start="10" style="list-style-type: decimal;"><li>USB camera</li>
3[[File:plus5-img18.12png]]</ol><ol start="11" style="list-style-type: decimal;"><li>'''5V cooling fan.As shown in the figure below, the development board has an interface for connecting the cooling fan, and the interface specification is 2pin 1. Test method of desktop image 19225mm pitch'''</li>
3{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''The fan on the development board can adjust the speed and switch through PWM.13. USB interface test 195'''</big>|}
3[[File:plus5-img19.13.1. Connect USB mouse or keyboard png]]</ol><ol start="12" style="list-style-type: decimal;"><li>Network cable, used to connect the development board to test 195the Internet</li>
3[[File:plus5-img20.png]]</ol><ol start="13.2. Connect USB storage device test 195" style="list-style-type: decimal;"><li>The data cable of the Type-C interface, used for burning images, using ADB and other functions</li>
3[[File:plus5-img21.13.3. USB wireless network card test 196png]]</ol><ol start="14" style="list-style-type: decimal;"><li>Infrared remote control</li>
3[[File:plus5-img22.13.4. USB camera test 201png]]
3{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note that the remote control of the air conditioner or the TV cannot control the Orange Pi development board.14The operating system provided by Orange Pi can only ensure that the remote control provided by Orange Pi can be used by default. Audio Test 203'''</big>|}</ol><ol start="15" style="list-style-type: decimal;"><li><p>OV13850 camera with 13 million MIPI interface (common with OPi5/OPi5B)</p><p>[[File:plus5-img23.png]]</p></li><li><p>OV13855 camera with 13 million MIPI interface (common with OPi5/OPi5B)</p><p>[[File:plus5-img24.png]]</p></li><li><p>M.2 M-KEY 2280 specification NVMe SSD solid state drive, PCIe interface specification is PCIe3.0x4</p></li><p>[[File:plus5-img25.png]]</p></ol><ol start="18" style="list-style-type: decimal;"><li>eMMC expansion module (to be added physical pictures)</li>
3.14.1. Testing audio methods {| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''The position where the eMMC module is inserted on desktop systems 203the development board is shown in the figure below:'''</big>
3[[File:plus5-img26.14png|center]]|}</ol><ol start="19" style="list-style-type: decimal;"><li><p>RTC battery, the interface is 2pin, 1.225mm pitch</p><p>[[File:plus5-img27. The method of using commands to play audio 205png]]</p></li>
3.14.3. Method {| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''The location of using commands to test recording 208the RTC battery interface on the development board is shown in the figure below:'''</big>
3[[File:plus5-img28.15png|center]]|}</ol><ol start="20" style="list-style-type: decimal;"><li>Horn, the interface is 2pin, 1. Temperature sensor 20825mm pitch</li>
3[[File:plus5-img29.16. 40 Pin Expansion Interface Pin Instructions 210png]]
3.17. How to install wiringOP 212{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''The interface position of the speaker on the development board is shown in the figure below:'''</big>
[[File:plus5-img30.png|center]]|}</ol><ol start="21" style="list-style-type: decimal;"><li><p>Matching shell (pictures and assembly methods to be added)</p></li><li><p>3.18. 40 pin interface GPIO3V USB to TTL module and DuPont line, I2Cwhen using serial port debugging function, UART, SPI, CAN need USB to TTL module and DuPont line to connect the development board and PWM test 214computer</p></li>
3[[File:plus5-img31.18png]] [[File:plus5-img32.1. 40 pin GPIO port test 214png]]</ol><ol start="23" style="list-style-type: decimal;"><li>Personal computer with Ubuntu and Windows operating systems installed</li>
3.18{| class="wikitable" style="width:800px;" |-| style="text-align: left;"| 1| style="text-align: left;"| Ubuntu22.04 PC| style="text-align: left;"| Optional, used to compile Linux source code|-| style="text-align: left;"| 2. How to set | style="text-align: left;"| Windows PC| style="text-align: left;"| For burning Android and Linux images|}</ol><span id="download-the pull-down resistance image-of pin GPIO port 216-the-development-board-and-related-materials"></span>
3.18.3. 40 pin SPI test 217== Download the image of the development board and related materials ==
3.18.4. 40 pin I2C test 220# The website for downloading the English version of materials is:
3::{| class="wikitable" style="width:800px;" |-|'''http://www.18orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus. 40 pin UART test 223html'''|}::[[File:plus5-img33.png]]
3.18.6. PWM test method 225<ol start="2" style="list-style-type: decimal;"><li><p>The information mainly includes</p><ol style="list-style-type: lower-alpha;"><li><p>'''User Manual and Schematic:''' Saved on Google Cloud Disk</p></li><li><p>'''Official tools:''' mainly include the software that needs to be used during the use of the development board</p></li><li><p>'''Android source code''': saved on Google Cloud Disk</p></li><li><p>'''Linux source code:''' saved on Github</p></li><li><p>'''OpenWRT source code:''' saved on Github</p></li><li><p>'''Android image:''' saved on Google Cloud Disk</p></li><li><p>'''Ubuntu image''':saved on Google Cloud Disk</p></li><li><p>'''Debian image''':saved on Google Cloud Disk</p></li><li><p>'''Orange Pi OS image''':saved on Google Cloud Disk</p></li><li><p>'''OpenWRT image''':saved on Google Cloud Disk</p></li></ol></li></ol>
3.18.7. CAN test <span id="method 230-of-burning-linux-image-to-tf-card-based-on-windows-pc"></span>
3.19. How == Method of burning Linux image to install and use wiringOP-Python 237TF card based on Windows PC ==
3{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note that the Linux image mentioned here specifically refers to the image of Linux distributions such as Debian, Ubuntu, OpenWRT or OPi OS Arch downloaded from the [http://www.19orangepi.1org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus. How to install wiringOP-Python 237html '''Orange Pi's download page'''].'''</big>|}
3.19.2. 40 pin GPIO port test 240<span id="how-to-use-balenaetcher-to-burn-linux-image"></span>=== How to use balenaEtcher to burn Linux image ===
3# First prepare a TF card with a capacity of 16GB or more.19The transmission speed of the TF card must be '''class 10''' or above.3It is recommended to use a TF card of SanDisk and other brands# Then use the card reader to insert the TF card into the computer# Download the Linux operating system image file compression package that you want to burn from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page'''], and then use the decompression software to decompress it. Among the decompressed files, the file ending with &quot;'''.img'''&quot; is the image file of the operating system. The size is generally above 2GB. 40 pin SPI test 242
3::{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note, if you download the OpenWRT image, you will see the following two types of images in the download link of the OpenWRT image, please download the image file in the &quot;TF card, eMMC and NVME SSD boot image&quot; folder.19.4. 40 pin I2C test 246'''</big>
3[[File:plus5-img34.19.5. 40 pin UART test 249png|center]]|}
3.20. Hardware watchdog test 251<ol start="4" style="list-style-type: decimal;"><li>Then download the burning software of Linux image——'''balenaEtcher,''' the download address is:</li>
3{| class="wikitable" style="width:800px;" |-|'''https://www.21balena. Check io/etcher/'''|}</ol><ol start="5" style="list-style-type: decimal;"><li><p>After entering the serial number balenaEtcher download page, click the green download button to jump to the place where the software is downloaded</p><p>[[File:plus5-img35.png]]</p></li><li><p>Then you can choose to download the Portable version of RK3588 chip 252balenaEtcher software. The Portable version does not need to be installed, and you can use it by double-clicking to open it</p></li>
3[[File:plus5-img36.22png]]</ol><ol start="7" style="list-style-type: decimal;"><li>If the downloaded version of balenaEtcher needs to be installed, please install it before using it. How If you downloaded the Portable version of balenaEtcher, just double-click to install Docker 252open it. The balenaEtcher interface after opening is shown in the figure below:</li>
3[[File:plus5-img37.23. How to download and install arm64 version balenaEtcher 253png]]
3.24. The installation method of {| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''When opening balenaEtcher, if the pagoda linux panel 255following error is prompted:'''</big>
3[[File:plus5-img38.25. Set the Chinese environment and install Chinese input method 261png|center]]
3<big>'''Please select balenaEtcher, right-click, and select Run as administrator.25.1. Debian 11 system installation method 261'''</big>
3.25.2. ubuntu 20.04 system installation method 267<div class="figure">
3[[File:plus5-img39.25.3. Ubuntu 22.04 installation method 271png|center]]
3.26. How </div>|}</ol><ol start="8" style="list-style-type: decimal;"><li>The specific steps to remotely log in use balenaEtcher to burn the Linux system desktop method 277image are as follows</li>
3a.26.1. Use NoMachine remote login 277First select the path of the Linux image file to be burned
3b.26.2. Use VNC remote login 281Then select the drive letter of the TF card
3c.27. Some programming language test supported by thelinux system 283Finally click Flash to start burning the Linux image to the TF card
3.27.1. Debian Bullseye system 283<div class="figure">
3[[File:plus5-img40.27.2. Ubuntu Focal system 285png]]
3</div></ol><ol start="9" style="list-style-type: decimal;"><li>The interface displayed in the process of burning the Linux image by balenaEtcher is shown in the figure below, and the progress bar displays purple, indicating that the Linux image is being burned into the TF card.27.3. Ubuntu Jammy system 286</li>
3[[File:plus5-img41.28png]]</ol><ol start="10" style="list-style-type: decimal;"><li>After burning the Linux image, balenaEtcher will also verify the image burned to the TF card by default to ensure that there is no problem in the burning process. QT installation method 288As shown in the figure below, a green progress bar indicates that the image has been burnt, and balenaEtcher is verifying the burnt image.</li>
3[[File:plus5-img42.29png]]</ol><ol start="11" style="list-style-type: decimal;"><li>After successful burning, the display interface of balenaEtcher is as shown in the figure below. ROS installation method 296If the green indicator icon is displayed, it means that the image burning is successful. At this time, you can exit balenaEtcher, and then pull out the TF card and insert it into the TF card slot of the development board.</li>
3.29.[[File:plus5-img43-1. Ubuntu 20.04 method of installing ROS 1 Noetic 296png]]</ol><span id="how-to-use-rkdevtool-to-burn-linux-image-to-tf-card"></span>
3.29.2. Ubuntu20.04 The method of installing ROS 2 Galactic 300=== How to use RKDevTool to burn Linux image to TF card ===
3.29.3. Ubuntu22.04 # First, you need to install ROS 2 Humble 303prepare a data cable with a good quality Type-C interface
3::[[File:plus5-img21.30. The method of installing the kernel header file 305png]]
3<ol start="2" style="list-style-type: decimal;"><li><p>You also need to prepare a 16GB or larger TF card.31The transmission speed of the TF card must be class 10 or above. How It is recommended to use 10.1 inch MIPI LCD screen 308a TF card of SanDisk and other brands</p></li><li><p>Then insert the TF card into the card slot of the development board</p></li>
3[[File:plus5-img44.png]]</ol><ol start="4" style="list-style-type: decimal;"><li><p>Then download Rockchip '''DriverAssitant_v5.12.zip''' and MiniLoader and the burning tool '''RKDevTool_Release_v2.96.zip RKDevTool_Release_v3.15.zip''' from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.31html '''Orange Pi's download page'''], please ensure that the version of the downloaded RKDevTool tool is v2.196</p><ol style="list-style-type: lower-alpha;"><li>On the [http://www. 10orangepi.1 org/html/hardWare/computerAndMicrocontrollers/service-inch MIPI screen assembly method 308and-support/Orange-Pi-5-plus.html '''Orange Pi's download page'''], first select the official tool, and then enter the following folder.</li>
3.31[[File:plus5-img45.png]]</ol><ol start="2. Open " style="list-style-type: lower-alpha;"><li>Then download all the 10.1 -inch MIPI LCD screen configuration 310files below</li>
3[[File:plus5-img46.31.3. The server version of the image rotation display direction method 312png]]
3{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note that the &quot;MiniLoader-things needed to burn the Linux image&quot; folder is hereinafter referred to as the MiniLoader folder.'''</big>|}</ol></li></ol><ol start="5" style="list-style-type: decimal;"><li>Then download the Linux operating system image file compression package that you want to burn from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.31html '''Orange Pi's download page'''], and then use the decompression software to decompress it.4Among the decompressed files, the file ending with &quot;'''. The desktop img'''&quot; is the image rotation display and touch direction method 313file of the operating system , the size is generally more than 2GB</li>
3.32{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note, if you download the OpenWRT image, you will see the following two types of images in the download link of the OpenWRT image, please download the image file in the &quot;TF card, eMMC and NVME SSD boot image&quot; folder. Instructions for opening the logo use instructions 315'''</big>
3[[File:plus5-img34.33png|center]]|}</ol><ol start="6" style="list-style-type: decimal;"><li>Then use decompression software to decompress '''DriverAssitant_v5. Test methods for OV13850 12.zip''', and then find the '''DriverInstall.exe''' executable file in the decompressed folder and OV13855 MIPI camera 316open it</li>
3[[File:plus5-img47.34png]]</ol><ol start="7" style="list-style-type: decimal;"><li><p>After opening '''DriverInstall. Test method for infrared receiving 320exe''', the steps to install the Rockchip driver are as follows</p><ol style="list-style-type: lower-alpha;"><li>Click the &quot;'''Driver Installation'''&quot; button</li>
3[[File:plus5-img48.35png]]</ol><ol start="2" style="list-style-type: lower-alpha;"><li>After waiting for a period of time, a pop-up window will prompt &quot;'''driver installed successfully'''&quot;, and then click the &quot;'''OK'''&quot; button. The method to use RTC 323</li>
3[[File:plus5-img49.36png]]</ol></li></ol><ol start="8" style="list-style-type: decimal;"><li>Then decompress '''RKDevTool_Release_v2. How 96.zipRKDevTool_Release_v3.15.zip''', this software does not need to use be installed, just find '''RKDevTool''' in the cooling PWM fan 324decompressed folder and open it</li>
3[[File:plus5-img50.37. The method of shutting down and restarting png]]</ol><ol start="9" style="list-style-type: decimal;"><li>After opening the '''RKDevTool''' burning tool, because the computer has not been connected to the development board 326through the Type-C cable at this time, the lower left corner will prompt &quot;'''No device found'''&quot;</li>
4[[File:plus5-img51. Ubuntu22png]]</ol><ol start="10" style="list-style-type: decimal;"><li><p>Then start burning the Linux image to the TF card</p><ol style="list-style-type: lower-alpha;"><li>First, connect the development board to the Windows computer through the Type-C data cable.04 Gnome Wayland Desktop system instructions 327The position of the Type-C interface on the development board is shown in the figure below</li>
4.1. Ubuntu22.04 GNOME desktop system adaptation situation 328<div class="figure">
4[[File:plus5-img52.2. Confirm that the current window system used by the system is Wayland 330png]]
4.3. Switch </div></ol><ol start="2" style="list-style-type: lower-alpha;"><li><p>Make sure the method development board is not connected to the Type-C power supply</p></li><li><p>Then press and hold the MaskROM button on the development board, the position of default audio equipment 331the MaskROM button on the development board is shown in the figure below:</p></li>
4[[File:plus5-img53.png]]</ol><ol start="4" style="list-style-type: lower-alpha;"><li>Finally, connect the power supply of the Type-C interface to the development board, and power on, and then release the MaskROM button. GPU test method 332The location of the Type-C power interface is as follows:</li>
4[[File:plus5-img54.png]]</ol><ol start="5. Chromium browser hard solution to play video test method 334" style="list-style-type: lower-alpha;"><li>If the previous steps are successful, the development board will enter the '''MASKROM''' mode at this time, and the interface of the burning tool will prompt &quot;'''found a MASKROM device'''&quot;</li>
4[[File:plus5-img55.png]]</ol><ol start="6. Kodi hard solution to play video test method 336" style="list-style-type: lower-alpha;"><li>Then place the mouse cursor in the area below</li>
4.7. Ubuntu22.04 Gnome to install ROS 2 Humble 344<div class="figure">
4[[File:plus5-img56.8. Set the Chinese environment and the method of installing the Chinese input method 346png]]
5. Orange Pi OS Arch system use instructions 353</div></ol><ol start="7" style="list-style-type: lower-alpha;"><li>Then click the right mouse button and the selection interface shown in the figure below will pop up</li>
5[[File:plus5-img57.1. Orange Pi OS Arch system adaptation situation 353png]]</ol><ol start="8" style="list-style-type: lower-alpha;"><li>Then select the '''import configuration''' option</li>
5[[File:plus5-img58.2png]]</ol><ol style="list-style-type: lower-roman;"><li>Then select the '''rk3588_linux_tfcard. How to use cfg''' configuration file in the M.2 E-Key PCIE WIFI6+Bluetooth module 355'''MiniLoader''' folder downloaded earlier, and click '''Open'''</li>
5[[File:plus5-img59.3. How to use png]]</ol><ol start="10.1 inch MIPI LCD screen 362" style="list-style-type: lower-alpha;"><li>Then click '''OK'''</li>
5[[File:plus5-img60.3.1. 10.1 png]]</ol><ol start="11" style="list-style-type: lower-inch MIPI screen assembly method 362alpha;"><li>Then click the position shown in the figure below</li>
5[[File:plus5-img61.3png]]</ol><ol start="12" style="list-style-type: lower-alpha;"><li>Then select '''MiniLoaderAll.2. How bin''' in the '''MiniLoader''' folder downloaded earlier, and then click to '''open 10.1 -inch MIPI LCD screen configuration 365'''</li>
5[[File:plus5-img62.3.3. Method of rotating display and touch direction 366png]]</ol><ol start="13" style="list-style-type: lower-alpha;"><li>Then click the position shown in the figure below</li>
5[[File:plus5-img63.4. OV13850 png]]</ol><ol start="14" style="list-style-type: lower-alpha;"><li>Then select the path of the linux image you want to burn, and OV13855 MIPI test methods for testing 369click '''Open'''</li>
5.5{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Before burning the image, it is recommended to rename the linux image to be burned to orangepi. Set img or other shorter names, so that you can see the Chinese environment and percentage value of the method of installing burning progress when burning the Chinese input method 371image.'''</big>|}
5[[File:plus5-img64.6. HDMI IN test method 377png]]</ol><ol start="15" style="list-style-type: lower-alpha;"><li>Then please check the '''option to force writing by address'''</li>
5[[File:plus5-img65.7. How png]]</ol><ol start="16" style="list-style-type: lower-alpha;"><li>Then click the execute button to start burning the linux image to install wiringOP 380the tf card of the development board</li>
5[[File:plus5-img66.8. 40 PIN interface GPIO, I2C, UART, SPI, CAN and PWM test 382png]]</ol><ol start="17" style="list-style-type: lower-alpha;"><li>The log displayed after burning the linux image is shown in the figure below</li>
5.8.1. 40 PIN GPIO port test 383<div class="figure">
5[[File:plus5-img67.8.2. 40 PIN GPIO Port -to -Plattering resistance setting method 383png]]
5</div></ol><ol start="18" style="list-style-type: lower-alpha;"><li>After burning the linux image to the TF card, the linux system will start automatically.8.3. 40 PIN SPI test 384</li></ol></li></ol><span id="how-to-use-win32diskimager-to-burn-linux-image"></span>
5.8.4. 40 pin I2C test 387=== How to use Win32Diskimager to burn Linux image ===
5<ol style="list-style-type: decimal;"><li><p>First prepare a TF card with a capacity of 16GB or more.8The transmission speed of the TF card must be class 10 or above.5It is recommended to use a TF card of SanDisk and other brands</p></li><li><p>Then use the card reader to insert the TF card into the computer</p></li><li><p>Then format the TF card</p><ol style="list-style-type: lower-alpha;"><li>'''SD Card Formatter''' can be used to format the TF card. 40 PinThe download link is</li>{| class="wikitable" style="width:800px;" |-|'s UART test 388''https://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip'''|}</ol><ol start="2" style="list-style-type: lower-alpha;"><li><p>After downloading, unzip and install directly, and then open the software</p></li><li><p>If only a TF card is inserted into the computer, the drive letter of the TF card will be displayed in the &quot;'''Select card'''&quot; column. If multiple USB storage devices are inserted into the computer, you can select the corresponding drive letter of the TF card through the drop-down box</p></li>
5.8.6. PWM test method 390<div class="figure">
5[[File:plus5-img68.8.7. CAN's test method 393png]]
6. Linux SDK——orangepi</div></ol><ol start="4" style="list-build instructions 396style-type: lower-alpha;"><li>Then click &quot;'''Format'''&quot;, a warning box will pop up before formatting, and formatting will start after selecting &quot;'''Yes (Y)'''&quot;</li>
6[[File:plus5-img69.1. Compilation system requirements 396png]]</ol><ol start="5" style="list-style-type: lower-alpha;"><li>After formatting the TF card, the message shown in the figure below will pop up, click OK</li>
6[[File:plus5-img70.1png]]</ol></li></ol><ol start="4" style="list-style-type: decimal;"><li>Download the image file compression package of the Linux operating system that you want to burn from the '''Orange Pi's download page''', and then use the decompression software to decompress it.1Among the decompressed files, the file ending with &quot;'''. Compile with img'''&quot; is the Ubuntu22.04 system image file of the development board 396operating system. The size is generally more than 2GB</li>
6{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note, if you download the OpenWRT image, you will see the following two types of images in the download link of the OpenWRT image, please download the image file in the &quot;TF card, eMMC and NVME SSD boot image&quot; folder.1.2. Compile with x64 Ubuntu22.04 computer 396'''</big>
6[[File:plus5-img34.2. Get png|center]]|}</ol><ol start="5" style="list-style-type: decimal;"><li>Use '''Win32Diskimager''' to burn the Linux image to the source code of linux sdk 399TF card</li>
6.2.1. Download orangepi<ol style="list-build from github 399style-type: lower-alpha;"><li>The download page of Win32Diskimager is</li>
6{| class="wikitable" style="width:800px;" |-|'''http://sourceforge.net/projects/win32diskimager/files/Archive/'''|}</ol><ol start="2" style="list-style-type: lower-alpha;"><li>After downloading, install it directly.2. Download the cross-compilation toolchain 401The interface of Win32Diskimager is as follows</li>
6.2.3. orangepi-build complete directory structure description 402a) First select the path of the image file
6.3. Compile u-boot 403b) Then confirm that the drive letter of the TF card is consistent with that
6.4. Compile displayed in the linux kernel 407&quot;'''Device'''&quot; column
6.5. Compile rootfs 413c) Finally click &quot;'''Write'''&quot; to start burning
6.6. Compile linux image 416<div class="figure">
7[[File:plus5-img71. Linux Development Manual 420png]]
7.1. The method of compiling </div></ol><ol start="3" style="list-style-type: lower-alpha;"><li><p>After the image writing is completed, click the kernel source code separately in '''&quot; Exit &quot;''' button to exit, and then you can pull out the linux system of TF card and insert it into the development board 420to start</p></li></ol></ol><span id="method-of-burning-linux-image-to-tf-card-based-on-ubuntu-pc"></span>
8. OpenWRT system instructions 422== Method of burning Linux image to TF card based on Ubuntu PC ==
8{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note that the Linux image mentioned here specifically refers to the image of Linux distributions such as Debian, Ubuntu, OpenWRT or OPi OS Arch downloaded from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.1html '''Orange Pi's download page'''], and the Ubuntu PC refers to the personal computer with the Ubuntu system installed. OpenWRT version 422'''</big>|}
8# First prepare a TF card with a capacity of '''16GB''' or more.2The transmission speed of the TF card must be '''class 10''' or above. OpenWRT Adaptation 423It is recommended to use a TF card of SanDisk and other brands# Then use the card reader to insert the TF card into the computer# Download the balenaEtcher software, the download address is
8::{| class="wikitable" style="width:800px;" |-|'''https://www.3balena. The first start to expand rootfs 423io/etcher/'''|}
8.<ol start="4. How " style="list-style-type: decimal;"><li>After entering the balenaEtcher download page, click the green download button to log in jump to the system 424place where the software is downloaded</li>
8[[File:plus5-img35.4.1. Login via serial port 424png]]</ol><ol start="5" style="list-style-type: decimal;"><li>Then choose to download the Linux version of the software</li>
8[[File:plus5-img72.4png]]</ol><ol start="6" style="list-style-type: decimal;"><li>Download the Linux operating system image file compression package that you want to burn from the [http://www.2orangepi. Log in org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page'''], and then use the decompression software to decompress it. Among the decompressed files, the file ending with &quot;'''.img'''&quot; is the image file of the operating system via SSH 424. The size is generally more than 2GB</li>
8.4.3. Log {| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note, if you download the OpenWRT image, you will see the following two types of images in the download link of the OpenWRT image, please download the image file in to the LuCI management interface 425&quot;TF card, eMMC and NVME SSD boot image&quot; folder.'''</big>
8.4.4. Log in to the terminal through the LuCI management interface 426<div class="figure">
8[[File:plus5-img73.4.5. Use IP address + port number to log in to the terminal 429png|center]]
8.5. How to modify the IP address of the LAN port through the command line 430</div>|}
8.6. How to modify The decompression command for the root password 431compressed package ending in 7z is as follows:
8{| class="wikitable" style="width:800px;" |-|test@test:~$ '''7z x orangepi5plus_1.60.10_debian_bullseye_desktop_xfce_linux5. Modify via command line 43110.110.7z'''
8test@test:~$ '''ls orangepi5plus_1.60.20_debian_bullseye_desktop_xfce_linux5. Modify through the LuCI management interface 43210.110.*'''
8orangepi5plus_1.70. USB interface test 4330_debian_bullseye_desktop_xfce_linux5.10.110.7z orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.sha # checksum file
8orangepi5plus_1.70.10_debian_bullseye_desktop_xfce_linux5. Mount the USB storage device under the command line 43310.110.img # mirror file|}
8.7.2. Mount If you download the USB storage device on OpenWRT image, the LuCI management interface 434compressed package ends with gz, and the decompression command is as follows:
8{| class="wikitable" style="width:800px;" |-|test@test:~$ '''gunzip openwrt-aarch64-opi5plus-23.805-linux-5.10. How to use E110-Key PCIe wireless network card 438ext4.img.gz'''
8test@test:~$ '''ls openwrt-aarch64-opi5plus-23.805-linux-5.110. How to create WIFI hotspot 438110-ext4.img'''
8'''openwrt-aarch64-opi5plus-23.805-linux-5.210. How 110-ext4.img''' # mirror file|}</ol><ol start="7" style="list-style-type: decimal;"><li>After decompressing the image, you can first use the '''sha256sum -c *.sha'''.sha command to calculate whether the checksum is correct. If the prompt is successful, it means that the downloaded image is correct, and you can safely burn it to connect the TF card. If it prompts that the '''checksum does not match''', it means There is a problem with the downloaded image, please try to WIFI hotspot 443download again</li>
8{| class="wikitable" style="width:800px;" |-|test@test:~$ '''sha256sum -c *.9. Installing packages via the command line 447sha'''
8orangepi5plus_1.90.10_debian_bullseye_desktop_xfce_linux5. Install via opkg in the terminal 44710.110.img: OK|}
8.10. If you download the OpenWRT management interface installation software image, you need to verify the compressed package 447, do not decompress it and then verify it
8{| class="wikitable" style="width:800px;" |-|test@test:~$ '''sha256sum -c openwrt-aarch64-opi5plus-23.04-linux-5.10.1110-ext4.img.gz. View the list of available software packages in the system 448sha'''
openwrt-aarch64-opi5plus-23.04-linux-5.10.110-ext4.img.gz: OK|}</ol><ol start="8" style="list-style-type: decimal;"><li>Then double-click '''balenaEtcher-1.1014.23-x64. Example AppImage''' on the graphical interface of installing software packages 449Ubuntu PC to open balenaEtcher (no installation required), and the interface after balenaEtcher is opened is shown in the figure below</li>
8[[File:plus5-img74.10.3. Remove package example 451png]]</ol><ol start="9" style="list-style-type: decimal;"><li>The specific steps to use balenaEtcher to burn the Linux image are as follows</li>
8a.11. Using Samba Network Shares 453First select the path of the Linux image file to be burned
8b.12. Zerotier Instructions 457Then select the drive letter of the TF card
9c. Compilation method of OpenWRT source code 460Finally click Flash to start burning the Linux image to the TF card
9.1. Download OpenWRT source code 460<div class="figure">
9[[File:plus5-img40.2. Compile OpenWRT source code 460png]]
</div></ol><ol start="10. Instructions for using " style="list-style-type: decimal;"><li>The interface displayed in the Android 12 system 462process of burning the Linux image by balenaEtcher is shown in the figure below, and the progress bar displays purple, indicating that the Linux image is being burned into the TF card</li>
10[[File:plus5-img75.1png]]</ol><ol start="11" style="list-style-type: decimal;"><li>After burning the Linux image, balenaEtcher will also verify the image burned into the TF card by default to ensure that there is no problem in the burning process. Supported Android versions 462As shown in the figure below, a green progress bar indicates that the image has been burnt, and balenaEtcher is verifying the burnt image</li>
10[[File:plus5-img76.2png]]</ol><ol start="12" style="list-style-type: decimal;"><li><p>After successful burning, the display interface of balenaEtcher is as shown in the figure below. Android function adaptation 462If a green indicator icon is displayed, it means that the image burning is successful. At this time, you can exit balenaEtcher, and then pull out the TF card and insert it into the TF card slot of the development board for use.</p><p>[[File:plus5-img77.png]]</p></li></ol>
10.3. How <span id="how-to use the USB wireless network card 464-burn-linux-image-to-emmc"></span>
10.4. M.2 == How to use E-Key PCIe WIFI6+Bluetooth module 465burn Linux image to eMMC ==
10{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note, after burning the image into eMMC, if the test finds that it cannot be started, please clear the SPIFlash and try again.5For the method of clearing SPIFlash, please refer to the method of using RKDevTool to clear SPIFlash. WIFI connection test method 466'''</big>|}
10.6. <span id="how-to-use-rkdevtool-to-burn-linux-image-into-emmc"></span>=== How to use Wi-Fi hotspot 468RKDevTool to burn Linux image into eMMC ===
10{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note that all the following operations are performed on a Windows computer.7. Bluetooth test method 471'''</big>|}
10{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note that the Linux image mentioned here specifically refers to the image of Linux distributions such as Debian, Ubuntu, OpenWRT or OPi OS Arch downloaded from the''' [http://www.8orangepi. Test method of HDMI In 474org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page''']</big>|}
10# The development board reserves the expansion interface of the eMMC module.9Before programming the system to the eMMC, you first need to purchase an eMMC module that matches the eMMC interface of the development board. How Then install the eMMC module to use 10.9.10the development board.1 inch MIPI screen 476The location of the eMMC interface is as follows:
10::[[File:plus5-img78-1.10png]][[File:plus5-img78-2. OV13850 and OV13855 MIPI camera test method 477png]]
10::[[File:plus5-img78-3.11. 26pin interface GPIO, UART, SPI and PWM test 481png]]
10.11.1. 40pin GPIO port test 481<ol start="2" style="list-style-type: decimal;"><li>It is also necessary to prepare a data cable with a good quality Type-C interface</li>
10[[File:plus5-img21.11png]]</ol><ol start="3" style="list-style-type: decimal;"><li><p>Then download Rockchip '''DriverAssitant_v5.212. 40pin UART test 485zip''' and '''MiniLoader''' and the burning tool RKDevTool_Release_v2.96.zipRKDevTool_Release_v3.15.zip from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page'''], please make sure that the version of the downloaded RKDevTool tool is v2.96.</p><ol style="list-style-type: lower-alpha;"><li>On the download page of Orange Pi, first select the official tool, and then enter the following folder</li>
10.11.3. 26pin SPI test 488<div class="figure">
10[[File:plus5-img79.11.4. 26pin PWM test 490png]]
10.12. How to use ADB 493</div></ol><ol start="2" style="list-style-type: lower-alpha;"><li>Then download all the files below</li>
10.12.1. Use the data cable to connect to adb debugging 493<div class="figure">
10[[File:plus5-img80.12.2. Use network connection adb debugging 494png]]
10</div></ol>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note that the &quot;MiniLoader-things needed to burn the Linux image&quot; folder is hereinafter referred to as the MiniLoader folder.13'''</big>|}</li></ol><ol start="4" style="list-style-type: decimal;"><li>Then download the Linux operating system image file compression package that you want to burn from the [http://www. 2orangepi.4G USB remote control tested by Android Box 495org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page'''], and then use the decompression software to decompress it. Among the decompressed files, the file ending with &quot;'''.img'''&quot; is the image file of the operating system , the size is generally more than 2GB</li>
10.14. How to use {| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note, if you download the OpenWRT image, you will see the following two types of images in the infrared remote control download link of the Android Box system 496OpenWRT image, please download the image file in the &quot;TF card, eMMC and NVME SSD boot image&quot; folder.'''</big>
10.15. How to use HDMI CEC function in Android Box system 497<div class="figure">
11[[File:plus5-img73. How to compile Android 12 source code 499png|center]]
11</div>|}</ol><ol start="5" style="list-style-type: decimal;"><li>Then use decompression software to decompress '''DriverAssitant_v5.112. Download Android 12 source code 499zip''', and then find the '''DriverInstall.exe''' executable file in the decompressed folder and open it</li>
11[[File:plus5-img47.2png]]</ol><ol start="6" style="list-style-type: decimal;"><li><p>After opening '''DriverInstall. Compile exe,''' the source code of Android 12 499steps to install the Rockchip driver are as follows</p><ol style="list-style-type: lower-alpha;"><li>Click the &quot;'''Driver Installation'''&quot; button</li>
12[[File:plus5-img48. Instructions png]]</ol><ol start="2" style="list-style-type: lower-alpha;"><li>After waiting for using a period of time, a pop-up window will prompt &quot;'''driver installed successfully'''&quot;, and then click the Orange Pi OS Droid system 502&quot;'''OK'''&quot; button.</li>
12[[File:plus5-img49.1png]]</ol></li></ol><ol start="7" style="list-style-type: decimal;"><li>Then decompress RKDevTool_Release_v3. Function adaptation of OPi OS Droid system 50215.zip, this software does not need to be installed, just find '''RKDevTool''' in the decompressed folder and open it</li>
12[[File:plus5-img50.2. Test method of HDMI In 503png]]</ol><ol start="8" style="list-style-type: decimal;"><li>After opening the '''RKDevTool''' burning tool, because the computer has not been connected to the development board through the Type-C cable at this time, the lower left corner will prompt &quot;'''No device found'''&quot;</li>
13[[File:plus5-img51. Appendix 505png]]</ol><ol start="9" style="list-style-type: decimal;"><li><p>Then start burning the Linux image into eMMC</p><ol style="list-style-type: lower-alpha;"><li>First, connect the development board to the Windows computer through the Type-C data cable. The position of the Type-C interface on the development board is shown in the figure below</li>
13.1. User Manual Update History 505<div class="figure">
13[[File:plus5-img52.2. Image update history 506png]]
<span id/div></ol><ol start="basic-features-of-orange2" style="list-pistyle-5type: lower-plusalpha;"><li><p>Make sure that the development board is not inserted into the TF card and not connected to the power supply</spanp></li>= Basic Features <li><p>Then press and hold the MaskROM button on the development board, the position of Orange Pi 5 Plus =the MaskROM button on the development board is shown in the figure below:</p></li>
[[File:plus5-img53.png]]</ol><span idol start="what-is-orange4" style="list-pistyle-5type: lower-plusalpha;"><li>Then connect the power supply of the Type-C interface to the development board, and power on, and then release the MaskROM button</spanli>== What is Orange Pi 5 Plus ==
Orange Pi [[File:plus5-img54.png]]</ol><ol start="5 Plus adopts Rockchip RK3588 new-generation octa" style="list-core 64style-bit ARM processor, specifically quadtype: lower-core A76 and quad-core A55alpha;"><li>If the previous steps are successful, using Samsung 8nm LP process technologythe development board will enter the '''MASKROM''' mode at this time, large-core main frequency up to 2.4GHz, integrated ARM Mali-G610 MP4 GPU, embedded with high-performance 3D and 2D image acceleration modules, built-in AI accelerator NPU with the interface of the burning tool will prompt &quot;'''found a computing power of up to 6 Tops, optional 4GB, 8GB, 16GB or 32GB memory, with up to 8K display processing capabilities.MASKROM device'''&quot;</li>
Orange Pi 5 Plus introduces quite a lot of interfaces, including 2 HDMI outputs, 1 HDMI input, USB[[File:plus5-Cimg55.png]]</DP interface, M.2 Mol><ol start="6" style="list-style-key PCIe3.0x4, M.2 Etype: lower-key PCIe2.0x1, 2 2.5G network port, eMMC expansion interface, USB2.0, USB3.0 interface, infrared, earphone, onboard MIC, speaker, RTC and 40pin expansion pin header, etc. It can be widely used alpha;"><li>Then place the mouse cursor in high-end tablet, edge computing, artificial intelligence, cloud computing, ARthe area below</VR, smart security, smart home and other fields, covering various AIoT industries.li>
Orange Pi 5 Plus supports Orange Pi OS, the official operating system developed by Orange Pi[[File:plus5-img81-1. At png]]</ol><ol start="7" style="list-style-type: lower-alpha;"><li>Then click the same time, it supports Android 12.1, OpenWRT, Debian11, Debian12, Ubuntu20.04 right mouse button and Ubuntu22.04 and other operating systems.the selection interface shown in the figure below will pop up</li>
[[File:plus5-img57.png]]</ol><span idol start="purpose8" style="list-ofstyle-orangetype: lower-pi-5-plusalpha;"><li>Then select the '''import configuration''' option</spanli>== Purpose of Orange Pi 5 Plus ==
We can use it to achieve:[[File:plus5-img58.png]]</ol><ol style="list-style-type: lower-roman;"><li>Then select the '''rk3588_linux_emmc.cfg''' configuration file in the '''MiniLoader''' folder downloaded earlier, and click '''Open'''</li>
* A Linux desktop computer[[File:plus5-img82.png]]* A Linux web server</ol>* Android tablet<ol start="10" style="list-style-type: lower-alpha;">* Android game console, etc.<li>Then click '''OK'''</li>
'''Of course, there are more functions[[File:plus5-img83. Relying on a strong ecosystem and a variety of expansion accessories, OPi 5 Plus can help users easily realize png]]</ol><ol start="11" style="list-style-type: lower-alpha;"><li>Then click the delivery from idea to prototype to mass production. It is a maker, dreamer, amateur The ideal creative platform for enthusiasts.'''position shown in the figure below</li>
[[File:plus5-img84.png]]<span id/ol><ol start="12" style="sectionlist-style-type: lower-alpha;"><li>Then select '''MiniLoaderAll.bin''' in the '''MiniLoader''' folder downloaded earlier, and then click to '''open'''</spanli>= =
[[File:plus5-img85.png]]</ol><span idol start="section13" style="list-1style-type: lower-alpha;"><li>Then click the position shown in the figure below</spanli>== ==
[[File:plus5-img86.png]]</ol><span idol start="section14" style="list-2style-type: lower-alpha;"><li>Then select the path of the linux image you want to burn, and click '''Open'''</spanli>== ==
* {| class="wikitable" style="background-color:#ffffdc;width:800px;" * |-* | * <big>'''Before burning the image, it is recommended to rename the linux image to be burned to orangepi.img or other shorter names, so that you can see the percentage value of the burning progress when burning the image.'''</big>
[[File:plus5-img64.png]]|}<span id/ol><ol start="hardware15" style="list-specificationsstyle-oftype: lower-orange-pi-5-plusalpha;"><li>Then please check the option to '''force writing by address'''</spanli>== Hardware Specifications of Orange Pi 5 Plus ==
[[File:plus5-img87.png]]</ol><ol start="16" style="list-style-type: lower-alpha;"><li>Then click the execute button to start burning the linux image to the eMMC of the development board</li> [[File:plus5-img88.png]]</ol><ol start="17" style="list-style-type: lower-alpha;"><li>The log displayed after burning the linux image is shown in the figure below</li> [[File:plus5-img89.png]]</ol><ol start="18" style="list-style-type: lower-alpha;"><li>After burning the linux image into the eMMC, the linux system will start automatically.</li>{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
| <big>'''Hardware Specifications Note, after burning the image into eMMC, if the test finds that it cannot be started, please clear the SPIFlash and try again. For the method of Orange Pi 5 Plusclearing SPIFlash, please refer to the method of using RKDevTool to clear SPIFlash.'''</big>|}|-</ol>| Master chip</li></ol>| Rockchip RK3588(8nm LP process)|<span id="using-the-dd-command-to-burn-the-linux-| CPU| • 8image-core 64into-bit processoremmc"></span>
• 4 Cortex-A76 and 4 Cortex-A55 with independent NEON coprocessor • Cortex-A76 up === Using the dd command to 2.4GHz, Cortex-A55 up to 1.8GHzburn the Linux image into eMMC ===
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
| GPU<big>'''Note that the Linux image mentioned here specifically refers to the image of Linux distributions such as Debian, Ubuntu, OpenWRT or OPi OS Arch downloaded from the Orange Pi's download page.'''</big>| • Integrated ARM Mali-G610}
• Built-in 3D GPU# The development board reserves the expansion interface of the eMMC module. Before programming the system to the eMMC, you first need to purchase an eMMC module that matches the eMMC interface of the development board. Then install the eMMC module to the development board. The location of the eMMC interface is as follows:
• Compatible with OpenGL ES1.::[[File:plus5-img78-1/2.0/3.2, OpenCL 2.png]][[File:plus5-img78-2 and Vulkan 1.2png]]
|::[[File:plus5-| NPU| Embedded GPU supports INT4/INT8/INT16/FP16, with computing power up to 6 Tops|img78-| PMU| RK806-1|-| RAM| 4GB/8GB/16GB/32GB optional|-| Storage| • QSPI Nor FLASH: 16MB/32MB3.png]]
• MicroSD <ol start="2" style="list-style-type: decimal;"><li><p>Using the dd command to burn the linux image to eMMC needs to be done with a TF card slot, so first you need to burn the linux image to the TF card, and then use the TF card to start the development board to enter the linux system. For the method of burning the Linux image to the TF card, please refer to the instructions in the two sections of [[Orange Pi 5 Plus#Method of burning Linux image to TF card based on Windows PC|'''the method of burning the Linux image to the TF card based on the Windows PC''']] and [[Orange Pi 5 Plus#Method of burning Linux image to TF card based on Ubuntu PC|'''the method of burning the Linux image to the TF card based on the Ubuntu PC''']]'''.'''</p></li>
• eMMC socket<li><p>After using the TF card to start the linux system, external eMMC module can be connectedwe first upload the decompressed linux image file (Debian, Ubuntu image or OPi Arch image downloaded from the official website) to the TF card. For the method of [[Orange Pi 5 Plus#The method of uploading files to the Linux system of the development board|'''uploading the linux image file to the development board,''']] please refer to the description in the section of the method of uploading files to the development board Linux system.</p></li> • M<li><p>After uploading the image to the linux system of the development board, we enter the storage path of the image file in the command line of the linux system of the development board.2 2280 slot for NVMe SSD (PCIe 3For example, I store the linux image of the development board in the '''/home/orangepi/Desktop''' directory Download it, and then enter the '''/home/orangepi/Desktop''' directory to see the uploaded image file.0 x4)</p></li>
{| class="wikitable" style="width:800px;"
|-
| USB| • 2 x USB3.0orangepi@orangepi:~$ '''cd /home/orangepi/Desktop'''
• 2 x USB2.0orangepi@orangepi:~/Desktop$ '''ls'''
• 1 Orangepi5plus_x.x Type-C.x_debian_bullseye_desktop_xfce_linux5.10.110.img|}
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
| Video| • 2 x HDMI 2.1 output, up <big>'''How to 8K@60FPSenter the command line of the development board linux system?'''
• 1 x Type-C (DP '''1.4A) outputFor the method of using the serial port to log in to the terminal, up please refer to 4K@60FPSthe instructions in the section on how to use the debugging serial port.'''
• 1 x HDMI input'''2. Use ssh to remotely log in to the Linux system, up please refer to the instructions in the section of SSH remote login to 4K@60FPSthe development board.'''
• 1 x MIPI DSI 4 Lane output'''3. If a display screen such as HDMI or LCD is connected, up you can open a command line terminal on the desktop.'''</big>|}</ol><!-- --><ol start="5" style="list-style-type: decimal;"><li>Next, we first use the following command to 4K@60Hzconfirm the device node of eMMC</li>
{| class="wikitable" style="width:800px;"
|-
| TP interfaceorangepi@orangepi:~/Desktop$ '''ls /dev/mmcblk*boot0 | 1 x 6Pin FPC socketcut -c1-12''' <span style="color:#FF0000">'''/dev/mmcblk1'''</span>|}</ol><ol start="6" style="list-style-type: decimal;"><li>Then we can use the dd command to clear the eMMC. Note that after the '''of=''' parameter, please fill in the output result of the above command</li> {| class="wikitable" style="width:800px;"
|-
| Cameraorangepi@orangepi:~/Desktop$ '''sudo dd bs=1M if=/dev/zero of=<span style="color:#FF0000">/dev/mmcblk1</span> count=1000 status=progress''' orangepi@orangepi:~/Desktop$ '''sudo sync'''|}</ol><ol start="7" style="list-style-type: decimal;"><li><p>Then you can use the dd command to burn the linux image of the development board into the eMMC</p><ol style="list-style-type: lower-alpha;"><li><p>In the following command, the '''if=''' parameter is followed by the full path where the linux image is stored + the name of the Linux image (such as '''the name of /home/orangepi/Desktop/Linux image'''). Because we have entered the path of the linux image above, we only need to fill in the name of the Linux image.</p></li><li><p>Please do not copy the linux image name in the following command, but replace it with the actual image name (because the version number of the image may be updated).</p></li> {| 1 x MIPI CSI 4 Laneclass="wikitable" style="width:800px;"
|-
| Audio| • 1 '''sudo dd bs=1M if=Orangepi5plus_x.x 3.5mm headphone jack audio inputx_debian_bullseye_desktop_xfce_linux5.10.110.img of=/dev/outputmmcblk1 status=progress'''
• 1 x onboard MIC input'''sudo''' '''sync'''|}
• 2 x HDMI output{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''<span style="color:#FF0000">Note, if you upload a <span style="color:blue">.7z or .xz</span> linux image compressed file, please remember to decompress it before using the dd command to burn.</span>'''
• 1 x HDMI input'''The detailed description of all parameters of the dd command and more usage can be viewed by executing the man dd command in the linux system.'''</big>|}</ol></li></ol><ol start="8" style="list-style-type: decimal;"><li>After successfully burning the linux image of the development board to the eMMC, you can use the '''poweroff''' command to shut down. Then please pull out the TF card, and then short press the power button to turn on, and then the linux system in the eMMC will be started.</li></ol>
• 1 x DP output<span id="how-to-burn-linux-image-to-spiflashnvme-ssd"></span>
• 1 x speaker output (2pin, 1.25mm specification)== How to burn Linux image to SPIFlash+NVMe SSD ==
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
| Ethernet<big>'''Note that the Linux image mentioned here specifically refers to the image of Linux distributions such as Debian, Ubuntu, OpenWRT or OPi OS Arch downloaded from the''' [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page'''].</big>| 2 x PCIe 2.5G Ethernet ports (RTL8125BG )} {| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
| 40pin expansion port<big>'''Note that all the following operations are performed on a Windows computer.'''</big>| Used } <span id="the-method-of-using-the-dd-command-to expand UART-burn"></span>=== The method of using the dd command to burn === # First, I2Cyou need to prepare an M-Key 2280 specification NVMe SSD solid state drive, and the specification of the PCIe interface in the M.2 slot of the development board is PCIe3.0x4. ::[[File:plus5-img25.png]] <ol start="2" style="list-style-type: decimal;"><li>Then insert the NVMe SSD into the M.2 PCIe interface of the development board shown in the figure below, and fix it</li> [[File:plus5-img90.png]]</ol><ol start="3" style="list-style-type: decimal;"><li>The position of the SPIFlash on the development board is shown in the figure below, no other settings are required before starting the programming</li> [[File:plus5-img91.png]]</ol><ol start="4" style="list-style-type: decimal;"><li><p>Burning the linux image to SPIFlash+NVMe SSD needs to be done with a TF card, CANso first you need to burn the linux image to the TF card, PWMand then use the TF card to start the development board to enter the linux system. For the method of burning the Linux image to the TF card, GPIO interfacesplease refer to the instructions in the two sections of [[Orange Pi 5 Plus#Method of burning Linux image to TF card based on Windows PC|'''the method of burning the Linux image to the TF card based on the Windows PC''']] and [[Orange Pi 5 Plus#Method of burning Linux image to TF card based on Ubuntu PC|'''the method of burning the Linux image to the TF card based on the Ubuntu PC''']]</p></li><li><p>After using the TF card to start the Linux system, we first burn the u-boot image into the SPI Flash</p><ol style="list-style-type: lower-alpha;"><li>Run '''nand-sata-install''' first, '''<span style="color:#FF0000">ordinary users remember to add sudo permission.</span>'''</li> {| class="wikitable" style="width:800px;"
|-
| PCIe M.2 M-KEY| PCIe 3.0 x 4 lanes, used to connect 2280 NVMe SSD solid state drive|orangepi@orangepi:~$ '''sudo nand-| PCIe M.2 Esata-KEYinstall'''| Contains PCIe 2.0 x 1/PCM/UART/USB2.0 interface, supports 2230 Wi-Fi6 /BT module}|-| Button| 1 MaskROM key, 1 RECOVERY key, 1 power on</off keyol>|-| Powered supply| Support Type-C power supply, 5V@4A|-| Infrared receiver| 1 x infrared receiver|-| LED| RGB LED three-color indicator light|-| Fan interface| 2pin, 1.25mm specification, used to connect 5V fan, support PWM control switch and speed|<ol start="2" style="list-| RTC battery interface| 2pin, 1.25mm specification, used to power the RTC module|style-| Debugging| 3pin debug serial port (UART)|type: lower-alpha;">| Supported OS| Orangepi OS(Droid)、Orangepi OS(Arch)、Orangepi OS(OH)、Ub untu20.04、Ubuntu22.04、Debian11、Debian12、OpenWRT and Android12|-| Introduction of Appearance Specifications||-| Product Size| 100mm*75mm|-| Weight| 86.5g|-| ! [[.<li>Then select '''7 Install/imagesUpdate ther bootloader on SPI Flash'''</media%20/image3.png|橙子LOGO-透明 (6)]]{w idth=“0.269444 44444444443in” hei ght=“0.3152777 7777777777in”}li>
'''rangePi™''' '''is a registered trademark of Shenzhen Xunlong Software Co., Ltd.'''<div class="figure">
||}[[File:plus5-img92.png]]
<span id/div></ol><ol start="3" style="sectionlist-style-3type: lower-alpha;"><li>Then select '''&lt;Yes&gt;'''</spanli>== ==
<span iddiv class="section-4figure"></span>== ==
[[File:plus5-img93.png]]
</div></ol><ol start="4" style="list-style-type: lower---alpha;"><li>Then please wait patiently for the burning to complete. After the burning is completed, the display will be as follows (a '''Done''' will be displayed in the lower left corner):</li>
[[File:plus5-img94.png]]
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''There is no nand-sata-install script in OPi OS Arch system, please use the following command to mirror u-boot to SPI Flash:'''</big>
[orangepi@orangepi ~]$ '''sudo dd if=/boot/rkspi_loader.img of=/dev/mtdblock0'''|}<span id/ol></li></ol><ol start="6" style="top-view-and-bottom-view-of-orangelist-pi-5style-plustype: decimal;"></spanli>== Top view and bottom view Then upload the linux image file (Debian, Ubuntu or OpenWRT image downloaded from the official website) to the TF card. For the method of [[Orange Pi 5 Plus ==#The method of uploading files to the Linux system of the development board|'''uploading the linux image file to the development board,''']] please refer to the description in the section of the method of uploading files to the development board Linux system.</li>
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Top view:Note, if you download the OpenWRT image, you will see the following two types of images in the download link of the OpenWRT image, please download the image file in the &quot;TF card, eMMC and NVME SSD boot image&quot; folder.'''</big>
<div class="figure">
[[File:plus5-img73./images/media/image4.jpeg|486x342pxpng|Orange-Pi-5-PLUS-1center]]
</div>
|}</ol><ol start="7" style="list-style-type: decimal;"><li>After uploading the image to the linux system of the development board, we enter the storage path of the image file in the command line of the linux system of the development board. For example, I store the linux image of the development board in the '''Bottom view:/home/orangepi/Desktop'''directory Download it, and then enter the '''/home/orangepi/Desktop''' directory to see the uploaded image file.</li>
<div {| class="figurewikitable">style="width:800px;" |-|orangepi@orangepi:~$ '''cd /home/orangepi/Desktop'''
[[Fileorangepi@orangepi:.~/images/media/image5.jpeg|495x329px|Orange-Pi-5-PLUS-2]]Desktop$ '''ls'''
</div>orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img<span id="section-5"></span>== ==|}
<span id{| class="wikitable" style="nterfacebackground-detailscolor:#ffffdc;width:800px;" |-of-orange-pi-5-plus">| </spanbig>== nterface details '''How to enter the command line of Orange Pi 5 Plus ==the development board linux system?'''
[[File:<p>'''1. For the method of using the serial port to log in to the terminal, please refer to the instructions in the section on how to use the debugging serial port.'''</imagesp><p>'''2. Use ssh to remotely log in to the Linux system, please refer to the instructions in the section of SSH remote login to the development board.'''</media/image6p><p>'''3.png|600x553px]][[File:If HDMI, LCD and other display screens are connected, you can open a command line terminal on the desktop.'''</imagesp></mediabig>|}</image7ol><!-- --><ol start="8" style="list-style-type: decimal;"><li>Next, let's confirm that the NVMe SSD has been recognized by the development board's linux.jpeg|576x483px|未标题If the NVMe SSD is recognized normally, use the '''sudo fdisk -l''' command to see nvme-1]]related information</li>
<span id{| class="sectionwikitable" style="width:800px;" |-6"><|orangepi@orangepi:~/span>== ==Desktop$ '''sudo fdisk -l | grep &quot;nvme0n1&quot;'''
<span id="section-7"><Disk /span>dev/nvme0n1: 1.86 TiB, 2048408248320 bytes, 4000797360 sectors== ==|}
<span id="introduction-Use the lspci command tosee an NVMe-the-use-of-the-development-board"></span>= '''Introduction to the use of the development board''' =related PCI device
<span id{| class="preparewikitable" style="width:800px;" |-the-required-accessories"></span>== Prepare the required accessories ==|orangepi@orangepi:~$ '''lspci'''
# TF card0000:00:00.0 PCI bridge: Rockchip Electronics Co., a class 10 or above high-speed SanDisk card with a minimum capacity of 16GB Ltd Device 3588 (32GB or above is recommendedrev 01)
[[File0000:01:00.0 Non-Volatile memory controller: SK hynix BC501 '''<span style="color:#FF0000">NVMe</images/media/image9.png|124x96px]]span>''' Solid State Drive
.…|}</ol><ol start="29" style="list-style-type: decimal;"><li>TF card reader, used Then we can use the dd command to burn clear the image into the TF cardNVMe SSD (optional)</li></ol>
[[File{| class="wikitable" style="width:800px;" |-|orangepi@orangepi5plus:.~/imagesDesktop$ '''sudo dd bs=1M if=/mediadev/image10.png|139x106px]]zero of=/dev/nvme0n1 count=2000 status=progress'''
orangepi@orangepi5plus:~/Desktop$ '''sudo sync'''|}</ol><ol start="310" style="list-style-type: decimal;"><li>Display <p>Then you can use the dd command to burn the linux image of the development board to the NVMe SSD</p><ol style="list-style-type: lower-alpha;"><li><p>In the following command, the '''if=''' parameter is followed by the full path where the linux image is stored + the name of the Linux image (such as '''the name of /home/orangepi/Desktop/Linux image'''). Because we have entered the path of the linux image above, we only need to fill in the name of the Linux image.</p></li><li><p>Please do not copy the linux image name in the following command, but replace it with HDMI interfacethe actual image name (because the version number of the image may be updated).</lip></olli>
[[File{| class="wikitable" style="width:800px;" |-|'''sudo dd bs=1M if=orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img of=/imagesdev/media/image11.png|313x205px]]nvme0n1 status=progress'''
<ol start="4" style="list-style-type: decimal;">'''sudo''' '''sync'''<li>HDMI to HDMI cable, used to connect the development board to an HDMI monitor or TV for display</li></ol>|}
[[File{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''<span style="color:#FF0000">Note, if you upload a <span style="color:blue">.7z or .xz or .gz</images/mediaspan> linux image compressed file, please remember to decompress it before using the dd command to burn.</image12.png|199x129px]]span>'''
'''\NoteThe detailed description of all parameters of the dd command and more usage can be viewed by executing the man dd command in the linux system.'''</big>|}</ol></li></ol><ol start="11" style="list-style-type: decimal;"><li>After successfully burning the linux image of the development board to the NVMe SSD, if you want can use the poweroff command to connect a 4K or 8K displayshut down. Then please pull out the TF card, please make sure that and then short press the power button to turn on, then the HDMI cable supports 4K or 8K video displaylinux system in SPIFlash+NVMe SSD will be started.'''</li></ol>
<ol startspan id="5" style="listhow-to-use-stylebalenaetcher-type: decimal;"><li>Typesoftware-C to HDMI cable, connect the development board to an HDMI monitor or TV for display through the Type-C interface</liprogram"></olspan>
<div class="figure">== How to use balenaEtcher software to program ===
[[File{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Please do not use this method for OPi OS Arch system and OpenWRT system.'''</images/media/image13.jpeg|243x166pxbig>|IMG_256]]}
</div><ol start="6" style="list-style-type: decimal;"><li>Type# First, you need to prepare an M-C to USB adapterKey 2280 specification NVMe SSD solid state drive, used to connect USB devices such as USB storage devices or mouse keyboards through and the specification of the Type-C PCIe interface '''(there are 2 USB3in the M.0 HOST interfaces and 2 USB2.0 HOST interfaces on slot of the development board, this accessory generally not used)'''</li></ol>is PCIe3.0x4.
<div class="figure">::[[File:plus5-img25.png]]
[[File<ol start="2" style="list-style-type:decimal;"><li>Then insert the NVMe SSD into the M.2 PCIe interface of the development board shown in the figure below, and fix it</images/media/image14.jpeg|245x166px|98F5D70E2C9B3673E8ECE4B8ABDDFD80]]li>
[[File:plus5-img90.png]]</divol><ol start="73" style="list-style-type: decimal;"><li>10.1-inch MIPI screen, used to display The position of the system interface of SPI Flash on the development board (this screen is common to OPi5/OPi5B)shown in the figure below, no other settings are required before starting the programming</li></ol>
[[File:plus5-img91.png]]<div class/ol><ol start="4" style="figurelist-style-type: decimal;"><li><p>Burning the linux image to SPIFlash+NVMe SSD needs to be done with a TF card, so first you need to burn the linux image to the TF card, and then use the TF card to start the development board to enter the linux system. For the method of burning the Linux image to the TF card, please refer to the instructions in the two sections of [[Orange Pi 5 Plus#Method of burning Linux image to TF card based on Windows PC|'''the method of burning the Linux image to the TF card based on the Windows PC''']] and [[Orange Pi 5 Plus#Method of burning Linux image to TF card based on Ubuntu PC|'''the method of burning the Linux image to the TF card based on the Ubuntu PC''']].</p></li><li><p>After booting into the linux system in the TF card, please confirm that the NVMe SSD has been recognized by the linux system of the development board. If the NVMe SSD is recognized normally, use the '''sudo fdisk -l''' command to see nvme-related information</p></li>
[[File{| class="wikitable" style="width:.800px;" |-|orangepi@orangepi:~/imagesDesktop$ '''sudo fdisk -l | grep &quot;nvme0n1&quot;''' Disk /mediadev/image15nvme0n1: 1.jpeg86 TiB, 2048408248320 bytes, 4000797360 sectors|223x203px|IMG_7546]]} Use the lspci command to see an NVMe-related PCI device</div><ol start{| class="8wikitable" style="list-style-typewidth: decimal800px;"><li>Power adapter, Orange Pi 5 Plus is recommended to use 5V/4A Type|-C power supply for power supply</li></ol>|orangepi@orangepi:~$ '''lspci'''
[[File0000:00:00./images/media/image160 PCI bridge: Rockchip Electronics Co.png|274x194px]], Ltd Device 3588 (rev 01)
0000:01:00.0 Non-Volatile memory controller: SK hynix BC501 '''NVMe''There are two Type' Solid State Drive .…|}</ol><ol start="6" style="list-C ports that look the same on the development board. style-type: decimal;"><li>The one next to the network port is balenaEtcher has been pre-installed in the power portlinux image, and the other Type-C port has no power supply function. Please don’t connect it wrong.'''opening method is as follows:</li>
<div class="figure">
[[File:plus5-img95./images/media/image17.jpeg|269x240px|01png]]
</div>
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-|<big>'''The TypeIf it is not pre-C power interface installed, for how to download and install the arm64 version of balenaEtcher, please refer to the development board does not support instructions in the PD negotiation function, section on '''[[Orange Pi 5 Plus#How to download and install arm64 version balenaEtcher|'''how to download and only supports a fixed 5V voltage input.install the arm64 version of balenaEtcher''']].</big>|}</ol><ol start="7" style="list-style-type: decimal;"><li>The interface after opening balenaEtcher is as follows:</li>
<ol startdiv class="9figure" style="list-style-type: decimal;"><li>The mouse and keyboard of the USB interface, as long as the mouse and keyboard of the standard USB interface are acceptable, the mouse and keyboard can be used to control the Orange Pi development board</li></ol>
[[File:./images/media/image18plus5-img96.png|311x264px]]
</div></ol><ol start="108" style="list-style-type: decimal;"><li>USB camera<p>The method of using balenaEtcher to burn u-boot to the SPI Flash of the development board is as follows:</p><ol style="list-style-type: lower-alpha;"><li>First click '''Flash from file'''</olli>
[[File:./images/media/image19.png|331x191px]]<div class="figure">
<ol start="11" style="list-style[[File:plus5-type: decimal;"><li>'''5V cooling fan. As shown in the figure below, the development board has an interface for connecting the cooling fan, and the interface specification is''' 2p'''in 1img97.25mm pitch'''</li></ol>png]]
</div></ol><ol start="2" style="list-style-type: lower-alpha;"><li>Then enter the '''/usr/lib/linux-u-boot-legacy-orangepi5plus_1.x.x_arm64'''The fan on the development board can adjust the speed directory, select '''rkspi_loader.img''', and switch through PWM.click '''Open'''to open</li>
[[File:./images/media/image20plus5-img98.png|410x171px]]</ol><ol start="3" style="list-style-type: lower-alpha;"><li>The interface after opening '''rkspi_loader.img''' is as follows:</li>
[[File:plus5-img99.png]]</ol><ol start="124" style="list-style-type: decimallower-alpha;"><li>Network cable, used to connect the development board to the InternetThen click '''Select target'''</li></ol>
[[File:./images/media/image21.png|143x112px]]<div class="figure">
<ol start="13" style="list-style-type[[File: decimal;"><li>The data cable of the Typeplus5-C interface, used for burning images, using ADB and other functions</li></ol>img100.png]]
[[File:.</imagesdiv></mediaol><ol start="5" style="list-style-type: lower-alpha;"><li>Then click '''Show 2 hidden''' to open more options for storage devices</image22.png|143x113px]]li>
<ol startdiv class="14figure" style="list-style-type: decimal;"><li>Infrared remote control</li></ol>
[[File:./images/media/image23plus5-img101.png|170x173px]]
</div></ol><ol start="6" style="list-style-type: lower-alpha;"><li>Then select the device name of SPI Flash '''/dev/mtdblock0''', and click '''Note that the remote control of the air conditioner or the TV cannot control the Orange Pi development board. The operating system provided by Orange Pi can only ensure that the remote control provided by Orange Pi can be used by default.Select'''</li>
<ol startdiv class="15figure" style="list-style-type: decimal;"><li><p>OV13850 camera with 13 million MIPI interface (common with OPi5/OPi5B)</p><p>[[File:./images/media/image24.png|268x151px]]</p></li><li><p>OV13855 camera with 13 million MIPI interface (common with OPi5/OPi5B)</p><p>[[File:./images/media/image25.png|253x150px]]</p></li><li><p>M.2 M-KEY 2280 specification NVMe SSD solid state drive, PCIe interface specification is PCIe3.0x4</p></li></ol>
<blockquote>[[File:./images/media/image26plus5-img102.png|358x104px]]</blockquote><ol start="18" style="list-style-type: decimal;"><li>eMMC expansion module (to be added physical pictures)</li></ol>
</div></ol><ol start="7" style="list-style-type: lower-alpha;"><li>Then click '''The position where the eMMC module is inserted on the development board is shown in the figure below:Flash'''</li>
[[File:./images/media/image27.png|317x144px]]<div class="figure">
<ol start="19" style="list-style-type: decimal;"><li><p>RTC battery, the interface is 2pin, 1.25mm pitch</p><p>[[File:./images/media/image28plus5-img103.png|250x134px]]</p></li></ol>
</div></ol><ol start="8" style="list-style-type: lower-alpha;"><li>Then click '''The location of the RTC battery interface on the development board is shown in the figure below:Yes, I’m sure'''</li>
[[File:./images/media/image29.png|344x126px]]<div class="figure">
<ol start="20" style="list[[File:plus5-style-type: decimal;"><li>Horn, the interface is 2pin, 1img104.25mm pitch</li></ol>png]]
[[File:.</imagesdiv></mediaol><ol style="list-style-type: lower-roman;"><li>Then enter the password orangepi of the development board linux system, and it will start burning the u-boot image into the SPI Flash</image30.png|200x138px]]li>
'''The interface position of the speaker on the development board is shown in the <div class="figure below:'''">
[[File:./images/media/image31plus5-img105.png|312x158px]]
</div></ol><ol start="2110" style="list-style-type: decimallower-alpha;"><li><p>Matching shell (pictures and assembly methods to be added)</p></li><li><p>3.3V USB to TTL module and DuPont line, when using serial port debugging function, need USB to TTL module and DuPont line to connect The display of the development board and computer</p>burning process is as follows:</li></ol>
[[File:./images/media/image32.png|217x89px|G7U7JZX(V`L$`A6864]38$P]] [[File:./images/media/image33.png|305x110px]]<div class="figure">
<ol start="23" style="list[[File:plus5-style-type: decimal;"><li>Personal computer with Ubuntu and Windows operating systems installed</li></ol>img106.png]]
{| class="wikitable"|-| style="text-align: left;"| 1</div></ol>| style<ol start="text-align: left;11"| Ubuntu22.04 PC| style="text-align: left;"| Optional, used to compile Linux source code|list-| style="text-aligntype: left;"| 2| style="textlower-align: leftalpha;"| Windows PC>| style="text-align<li>After the burning is completed, the display is as follows: left;"| For burning Android and Linux images|}</li>
<span iddiv class="section-8figure"></span>= =
<span id="section[[File:plus5-9"></span>== ==img107.png]]
</div></ol>
</li></ol>
<ol start="9" style="list-style-type: decimal;">
<li></li><lip>The method of burning the linux system in the TF card to the NVMe SSD (this method is equivalent to cloning the system in the TF card to the NVMe SSD)</lip><li></liol style="list-style-type: lower-alpha;"><li>First click '''Clone drive'''</li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol>
<div class="figure">
[[File:plus5-----img108.png]]
</div></ol>
<ol start="2" style="list-style-type: lower-alpha;">
<li>Then select the device name of the TF card '''/dev/mmcblk1'''</li>
-----<div class="figure">
<span id="download[[File:plus5-the-image-of-the-development-board-and-related-materials"></span>== Download the image of the development board and related materials ==img109.png]]
# </div></ol><ol start="3" style="list-style-type: lower-alpha;"><li>The website for downloading interface after opening the English version of materials is:TF card is as follows:</li>
'''http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html'''<div class="figure">
[[File:./images/media/image38plus5-img110.png|361x300px]]
<ol start="2" style="list-style-type: decimal;"><li><p/div>The information mainly includes</pol><ol start="4" style="list-style-type: lower-alpha;"><li><p>'''User Manual and Schematic:''' Saved on Google Cloud Disk</p></li><li><p>'''Official tools:''' mainly include the software that needs to be used during the use of the development board</p></li><li><p>'''Android source code''': saved on Google Cloud Disk</p></li><li><p>'''Linux source code:''' saved on Github</p></li><li><p>Then click '''OpenWRT source code:Select target''' saved on Github</p></li><li><p>'''Android image:''' saved on Google Cloud Disk</p></li><li><p>'''Ubuntu''' '''image''':saved on Google Cloud Disk</p></li><li><p>'''Debian''' '''image''':saved on Google Cloud Disk</p></li><li><p>'''Orange Pi OS''' '''image''':saved on Google Cloud Disk</p></li><li><p>'''OpenWRT''' '''image''':saved on Google Cloud Disk</p></li></ol></li></ol>
<span iddiv class="method-of-burning-linux-image-to-tf-card-based-on-windows-pcfigure"></span>== Method of burning Linux image to TF card based on Windows PC ==
'''Note that the Linux image mentioned here specifically refers to the image of Linux distributions such as Debian, Ubuntu, OpenWRT or OPi OS Arch downloaded from the''' Orange Pi data download page'''[[File:plus5-img100.'''png]]
<span id/div></ol><ol start="how-to5" style="list-usestyle-balenaetchertype: lower-to-burn-linux-imagealpha;"><li>Then click '''Show 2 hidden''' Option to open more storage devices</spanli>=== How to use balenaEtcher to burn Linux image ===
# First prepare a TF card with a capacity of 16GB or more. The transmission speed of the TF card must be '''<div class 10''' or above. It is recommended to use a TF card of SanDisk and other brands# Then use the card reader to insert the TF card into the computer# Download the Linux operating system image file compression package that you want to burn from the '''Orange Pi data download page''', and then use the decompression software to decompress it. Among the decompressed files, the file ending with &quot;'''.img'''&quot; is the image file of the operating system. The size is generally above 2GB.="figure">
'''Note, if you download the OpenWRT image, you will see the following two types of images in the download link of the OpenWRT image, please download the image file in the''' '''&quot;TF card, eMMC and NVME SSD boot image&quot;''' '''folder[[File:plus5-img101.'''png]]
[[File</div></ol><ol start="6" style="list-style-type:.lower-alpha;"><li>Then select the device name of the NVMe SSD '''/imagesdev/medianvme0n1''', and click '''Select'''</image39.png|277x88px]]li>
[[File:plus5-img111.png]]</ol><ol start="47" style="list-style-type: decimallower-alpha;"><li>Then download the burning software of Linux image——click '''balenaEtcher,Flash''' the download address is:</li></ol>
'''https://www.balena.io/etcher/'''<div class="figure">
<ol start="5" style="list[[File:plus5-style-type: decimal;"><li>After entering the balenaEtcher download page, click the green download button to jump to the place where the software is downloaded</li></ol>img112.png]]
<span id/div></ol><ol start="8" style="sectionlist-style-10type: lower-alpha;"><li>Then click '''Yes, I’m sure'''</spanli>== ==
<ol startdiv class="3figure" style="list-style-type: decimal;"><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol></li></ol>
<span id="section[[File:plus5-11"></span>== ==img113.png]]
<span id/div></ol><ol style="sectionlist-12style-type: lower-roman;"><li>Then enter the password orangepi of the linux system on the development board, and it will start burning the linux image to the SSD</spanli>=== ===
<ol startdiv class="6figure" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li><p>[[File:./images/media/image42.png|575x276px]]</p></li><li><p>Then you can choose to download the Portable version of balenaEtcher software. The Portable version does not need to be installed, and you can use it by double-clicking to open it</p></li></ol>
[[File:./images/media/image43plus5-img114.png|576x213px]]
</div></ol><ol start="1210" style="list-style-type: decimallower-alpha;"><li>If the downloaded version The display of balenaEtcher needs to be installed, please install it before using it. If you downloaded the Portable version of balenaEtcher, just double-click to open it. The balenaEtcher interface after opening burning process is shown in the figure belowas follows:</li></ol>
[[File:./images/media/image44plus5-img115.png|483x304px]]
'''When opening balenaEtcher, if the following error is prompted:'''<div class="figure">
[[File:./images/media/image45plus5-img116.png|261x205px]]
'''Please select balenaEtcher, right</div></ol><ol start="11" style="list-style-type: lower-clickalpha;"><li>After the burning is completed, and select Run the display is as administrator.'''follows:</li>
[[File:plus5-img117.png]]<div /ol><ol start="12" style="list-style-type: lower-alpha;"><li><p>Then you need to expand the capacity of the rootfs partition in the NVMe SSD. The steps are as follows:</p><ol style="list-style-type: none;"><li>a) open first '''GParted''', if the system does not have Gparted pre-installed, please use the apt command to install it</li> {| class="figurewikitable">style="width:800px;" |-| orangepi@orangepi:~$ '''sudo apt-get install -y gparted'''|}
[[File:./images/media/image46.png|300x104px|图形用户界面, 文本, 应用程序 描述已自动生成]]<div class="figure">
</div><ol start="13" style="list[[File:plus5-style-type: decimal;"><li>The specific steps to use balenaEtcher to burn the Linux image are as follows</li></ol>img118.png]]
a. First select </div></ol><ol start="2" style="list-style-type: none;"><li>b) Then enter the path password orangepi of the Linux image file to be burnedlinux system, and then click '''Authenticate'''</li>
b[[File:plus5-img119. png]]</ol><ol start="3" style="list-style-type: none;"><li>c) Then select the drive letter of the TF cardclick '''Fix'''</li>
c[[File:plus5-img120. Finally click Flash to png]]</ol><ol start burning the Linux image to the TF card="4" style="list-style-type: none;"><li>d) Then select NVMe SSD</li>
<div class="figure">
[[File:./images/media/image47plus5-img121.png|501x281px|03]]
</div></ol><ol start="145" style="list-style-type: decimalnone;"><li>e) The display interface displayed in the process of burning the Linux image by balenaEtcher after selecting NVMe SSD is shown in the figure below, and the progress bar displays purple, indicating that the Linux image is being burned into the TF card.as follows:</li></ol>
[[File:./images/media/image48.png|506x317px]]<div class="figure">
<ol start="15" style="list-style[[File:plus5-type: decimal;"><li>After burning the Linux image, balenaEtcher will also verify the image burned to the TF card by default to ensure that there is no problem in the burning process. As shown in the figure below, a green progress bar indicates that the image has been burnt, and balenaEtcher is verifying the burnt imageimg122.</li></ol>png]]
[[File</div></ol><ol start="6" style="list-style-type:.none;"><li>f) Then select the '''/dev/imagesnvme0n1p2''' partition, then right-click, and then select '''Resize/mediaMove'''</image49.png|519x325px]]li>
<ol startdiv class="16figure" style="list-style-type: decimal;"><li>After successful burning, the display interface of balenaEtcher is as shown in the figure below. If the green indicator icon is displayed, it means that the image burning is successful. At this time, you can exit balenaEtcher, and then pull out the TF card and insert it into the TF card slot of the development board.</li></ol>
[[File:./images/media/image50plus5-img123.png|523x324px]]
<span id/div></ol><ol start="7" style="howlist-tostyle-use-rkdevtool-to-burn-linux-image-to-tf-cardtype: none;"><li>g) Then drag the capacity to the maximum at the position shown in the figure below</spanli>=== How to use RKDevTool to burn Linux image to TF card ===
# First, you need to prepare a data cable with a good quality Type[[File:plus5-C interfaceimg124.png]]</ol><ol start="8" style="list-style-type: none;"><li>h) and click '''Resize/Move'''</li>
[[File:plus5-img125.png]]</imagesol><ol start="9" style="list-style-type: none;"><li>i) Then click the green one in the picture below '''<span style="color:green">√</mediaspan>'''</image22.png|193x196px]]li>
[[File:plus5-img126.png]]</ol><ol start="210" style="list-style-type: decimalnone;"><li><p>You also need to prepare a 16GB or larger TF card. The transmission speed of the TF card must be class 10 or above. It is recommended to use a TF card of SanDisk and other brands</p>j) Click again '''Apply'''</li><li><p>Then insert the TF card into the card slot of the development board</p></li></ol>
[[File:./images/media/image53plus5-img127.png|300x87px]]</ol><ol start="11" style="list-style-type: none;"><li>k) Then click '''Close''' to close</li>
[[File:plus5-img128.png]]</ol></li></ol><ol start="413" style="list-style-type: decimallower-alpha;"><li><p>Then download Rockchip At this point, you can use the '''DriverAssitant_v5.12.zipsudo poweroff''' command to shut down. Then please pull out the TF card, and MiniLoader and then short press the power button to turn on, then the burning tool linux system in SPIFlash+NVMe SSD will be started.</li></ol></li></ol><!-- --><ol start="10" style="list-style-type: decimal;"><li><p>Step '''RKDevTool_Release_v2.96.zipRKDevTool_Release_v3.15.zip9''' from is to clone the '''Orange Pi data download page''', please ensure that system in the TF card to the NMVe SSD. We can also directly burn the version of linux image file to the downloaded RKDevTool tool is v2NVMe SSD.96Here are the steps:</p>
<ol style="list-style-type: lower-alpha;">
<li>On <p>Upload the Orange Pi data download page, first select linux image file to the official tool, and then enter linux system of the following folder.development board</lip></olli><li><p>Then use balenaEtcher to burn</lip></olli>
[[File:./images/media/image54.png|382x97px]]<div class="figure">
<ol start="2" style="list-style-type[[File: lowerplus5-alpha;"><li>Then download all the files below</li></ol>img129.png]]
[[File</div></ol>:'''c. After using this method to burn the image, there is no need to manually expand the capacity, and it will automatically expand the capacity at the first startup.'''</imagesli></mediaol><span id="using-rkdevtool-to-burn"></image55.png|392x145px]]span>
'''Note that the''' '''&quot;MiniLoader-things needed === Using RKDevTool to burn the Linux image&quot;''' '''folder is hereinafter referred to as the MiniLoader folder.'''===
<ol start="5" style="list-style-type: decimal;"><li>Then download the Linux operating system image file compression package that # First, you want need to burn from the '''Orange Pi data download page'''prepare an M-Key 2280 specification NVMe SSD solid state drive, and then use the decompression software to decompress it. Among specification of the decompressed files, PCIe interface in the file ending with &quot;'''M.img'''&quot; is the image file 2 slot of the operating system , the size development board is generally more than 2GB</li></ol>PCIe3.0x4.
'''Note, if you download the OpenWRT image, you will see the following two types of images in the download link of the OpenWRT image, please download the image file in the''' '''&quot;TF card, eMMC and NVME SSD boot image&quot;''' '''folder::[[File:plus5-img25.'''png]]
[[File<ol start="2" style="list-style-type:decimal;"><li>Then insert the NVMe SSD into the M.2 PCIe interface of the development board shown in the figure below, and fix it</images/media/image39.png|301x95px]]li>
[[File:plus5-img90.png]]</ol><ol start="63" style="list-style-type: decimal;"><li>Then use decompression software to decompress '''DriverAssitant_v5.12.zip''', and then find The position of the SPI Flash on the '''DriverInstall.exe''' executable file development board is shown in the decompressed folder and open itfigure below, no other settings are required before starting the programming</li></ol>
[[File:./images/media/image57plus5-img91.png|575x169px]]</ol><ol start="4" style="list-style-type: decimal;"><li>Then you need to prepare a data cable with good quality Type-C interface</li>
[[File:plus5-img21.png]]</ol><ol start="75" style="list-style-type: decimal;"><li><p>After opening Then download the Rockchip driver '''DriverInstallDriverAssitant_v5.exe12.zip''', and MiniLoader and the steps to install burning tool '''RKDevTool_Release_v3.15.zip''' from the Rockchip driver are as follows[http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page''']</p>
<ol style="list-style-type: lower-alpha;">
<li>Click On the &quot;'''Driver Installation'''&quot; buttondownload page of Orange Pi, first select the official tool, and then enter the following folder</li></ol> </li></oldiv class="figure">
[[File:./images/media/image58plus5-img79.png|300x157px]]
</div></ol>
<ol start="2" style="list-style-type: lower-alpha;">
<li>After waiting for a period of time, a pop-up window will prompt &quot;'''driver installed successfully'''&quot;, and then click Then download all the &quot;'''OK'''&quot; button.files below</li></ol>
[[File:./images/media/image59.png|429x223px]]<div class="figure">
<ol start="8" style="list[[File:plus5-style-type: decimal;"><li>Then decompress '''RKDevTool_Release_v2.96.zipRKDevTool_Release_v3.15img80.zip''', this software does not need to be installed, just find '''RKDevTool''' in the decompressed folder and open it</li></ol>png]]
[[File</div></ol>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note that the &quot;MiniLoader-things needed to burn the Linux image&quot; folder is hereinafter referred to as the MiniLoader folder.'''</imagesbig>|}</mediali></image60ol><ol start="6" style="list-style-type: decimal;"><li>Then download the Linux operating system image file compression package that you want to burn from the Orange Pi's download page, and then use the decompression software to decompress it.png|575x170px]]Among the decompressed files, the file ending with &quot;'''.img'''&quot; is the image file of the operating system , the size is generally more than 2GB</li>
<ol start{| class="9wikitable" style="listbackground-style-typecolor:#ffffdc;width: decimal800px;">|-| <libig>After opening the '''RKDevTool''' burning toolNote, if you download the OpenWRT image, because you will see the computer has not been connected to following two types of images in the development board through download link of the Type-C cable at this timeOpenWRT image, please download the image file in the lower left corner will prompt &quot;'''No device found'''TF card, eMMC and NVME SSD boot image&quot;</li></ol> [[File:folder./images/media/image61.png|402x189px]] <ol start="10" style="list-style-type: decimal;"><li><p>Then start burning the Linux image to the TF card</p><ol style="list-style-type: lower-alpha;"><li>First, connect the development board to the Windows computer through the Type-C data cable. The position of the Type-C interface on the development board is shown in the figure below</li></ol></li>'''</olbig>
<div class="figure">
[[File:plus5-img73./images/media/image63.jpeg|400x113pxpng|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-2.jpg未标题-2center]]
</div>
|}
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>Then use decompression software to decompress '''DriverAssitant_v5.12.zip''', then find '''DriverInstall.exe''' executable file in the decompressed folder and open it</li>
 
[[File:plus5-img47.png]]
</ol>
<ol start="8" style="list-style-type: decimal;">
<li><p>After opening '''DriverInstall.exe''', the steps to install the Rockchip driver are as follows</p>
<ol style="list-style-type: lower-alpha;">
<li>Click the &quot;'''Driver Installation'''&quot; button</li>
 
[[File:plus5-img48.png]]
</ol>
<ol start="2" style="list-style-type: lower-alpha;">
<li>After waiting for a period of time, a pop-up window will prompt &quot;'''driver installed successfully'''&quot;, and then click the &quot;'''OK'''&quot; button.</li> [[File:plus5-img49.png]]</ol><p/li></ol><ol start="9" style="list-style-type: decimal;"><li>Then decompress '''RKDevTool_Release_v3.15.zip''', this software does not need to be installed, just find '''RKDevTool''' in the decompressed folder and open it</li> [[File:plus5-img50.png]]</ol><ol start="10" style="list-style-type: decimal;"><li>Make sure After opening the development board '''RKDevTool''' burning tool, because the computer is not connected to the development board through the Type-C power supplycable at this time, the lower left corner will prompt &quot;'''No device found'''&quot;</pli[[File:plus5-img51.png]]</liol><ol start="11" style="list-style-type: decimal;"><li><p>Then press and hold start burning the Linux image to the MaskROM button on SSD</p><ol style="list-style-type: lower-alpha;"><li>First, connect the development board, to the Windows computer through the Type-C data cable. The position of the MaskROM button Type-C interface on the development board is shown in the figure below:</p>below</li> </oldiv class="figure"[[File:plus5-img52.png]]
[[File</div></ol><ol start="2" style="list-style-type:lower-alpha;"><li><p>Make sure the development board is not connected to the power supply, and no TF card or eMMC module is inserted</p></li><li><p>Then press and hold the MaskROM button on the development board.The position of the MaskROM button on the development board is shown in the figure below:</imagesp></media/image64.png|382x93px]]li>
[[File:plus5-img53.png]]
</ol>
<ol start="4" style="list-style-type: lower-alpha;">
<li>Finally, Then connect the power supply of the Type-C interface to the development board, and power on, and then release the MaskROM button. The location of the Type-C power interface is as follows:follows:</li></ol> [[File:./images/media/image65.png|404x123px]]
[[File:plus5-img54.png]]
</ol>
<ol start="5" style="list-style-type: lower-alpha;">
<li>If the previous steps are successful, the development board will enter the '''MASKROM''' mode at this time, and the interface of the burning tool will prompt &quot;'''found Found a MASKROM device'''&quot;</li></ol> [[File:./images/media/image66.png|457x215px]]
[[File:plus5-img55.png]]
</ol>
<ol start="6" style="list-style-type: lower-alpha;">
<li>Then place the mouse cursor in the area below</li></ol>
<div class="figure">
[[File:./images/media/image68plus5-img130.png|455x216px|图片1]]
</div></ol>
<ol start="7" style="list-style-type: lower-alpha;">
<li>Then click the right mouse button and the selection interface shown in the figure below will pop up</li></ol> [[File:./images/media/image70.png|453x213px]]
[[File:plus5-img57.png]]
</ol>
<ol start="8" style="list-style-type: lower-alpha;">
<li>Then select the '''import Import configuration''' option</li></ol> [[File:./images/media/image72.png|458x215px]]
[[File:plus5-img58.png]]
</ol>
<ol style="list-style-type: lower-roman;">
<li>Then enter the MiniLoader folder downloaded earlier, then select the '''rk3588_linux_tfcardrk3588_linux_pcie.cfg''' configuration file in the '''MiniLoader''' folder downloaded earlier, and click '''Open'''</li></ol> [[File:./images/media/image74.png|483x227px]]
[[File:plus5-img131.png]]
</ol>
<ol start="10" style="list-style-type: lower-alpha;">
<li>Then click '''OK'''</li></ol> [[File:./images/media/image76.png|483x227px]]
[[File:plus5-img132.png]]
</ol>
<ol start="11" style="list-style-type: lower-alpha;">
<li>Then click the position location shown in the figure below</li></ol> [[File:./images/media/image78.png|486x228px]]
[[File:plus5-img133.png]]
</ol>
<ol start="12" style="list-style-type: lower-alpha;">
<li>Then select '''MiniLoaderAll.bin''' in the '''MiniLoader''' folder downloaded earlier, and then click to '''open'''</li></ol> [[File:./images/media/image80.png|492x231px]]
[[File:plus5-img62.png]]
</ol>
<ol start="13" style="list-style-type: lower-alpha;">
<li>Then click the position shown in the figure below</li></ol> [[File:./images/media/image82.png|493x232px]]
[[File:plus5-img134.png]]
</ol>
<ol start="14" style="list-style-type: lower-alpha;">
<li>Then select enter the path of the linux image you want to burn, and click '''OpenMiniLoader'''</li></ol> folder downloaded earlier, select '''Before burning the image, it is recommended to rename the linux image to be burned to orangepirkspi_loader.img or other shorter names, so that you can see the percentage value of the burning progress when burning the image.''' [[File:.and click '''Open'''</images/media/image84.png|499x234px]]li>
[[File:plus5-img135.png]]
</ol>
<ol start="15" style="list-style-type: lower-alpha;">
<li>Then please check click the '''option to force writing by address'''location shown in the figure below</li></ol> [[File:./images/media/image86.png|489x230px]]
[[File:plus5-img136.png]]
</ol>
<ol start="16" style="list-style-type: lower-alpha;">
<li>Then click select the execute button to start burning path of the linux image you want to the tf card of the development boardburn, and click '''Open'''</li></ol>
[[File{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Before burning the image, it is recommended to rename the linux image to be burned to orangepi.img or other shorter names, so that you can see the percentage value of the burning progress when burning the image.'''</images/media/image88.pngbig>|492x231px]]}
[[File:plus5-img64.png]]
</ol>
<ol start="17" style="list-style-type: lower-alpha;">
<li>The log displayed after burning Then please check the linux image is shown in the figure belowoption to '''force write by address'''</li></ol>
[[File:plus5-img137.png]]<div class/ol><ol start="18" style="figurelist-style-type: lower-alpha;"><li>Click the Execute button again to start burning the u-boot+linux image to SPIFlash+SSD</li>
[[File:./images/media/image91plus5-img138.png|492x231px|%O4~FPPAT$0RH{3S~CGJ@@Q(1)]]</ol><ol start="19" style="list-style-type: lower-alpha;"><li>The display log after burning the image is shown in the figure below</li>
</div><ol start="18" style="list-style-type[[File: lowerplus5-alpha;"><li>After burning the linux image to the TF card, the linux system will start automaticallyimg139.</li></ol>png]]
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''If there is a problem with burning, please clear the SPIFlash first and then try burning again. For the method of clearing SPIFlash, please refer to the instructions in the section of using RKDevTool to clear SPIFlash.'''</big>|}</ol><ol start="20" style="list-style-type: lower-alpha;"><li>After the image is burnt, it will automatically start the linux system in SPIFlash+PCIe SSD. If it does not start normally, please power on and try again.</li></ol></li></ol><span id="sectionhow-to-burn-openwrt-image-to-spi-13flash"></span>=== ===
<ol start="11" style="list-style-type: decimal;"><li></li><li></li><li></li><li><ol styleHow to burn OpenWRT image to SPI FLASH ="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol></li></ol>
<span id{| class="wikitable" style="howbackground-tocolor:#ffffdc;width:800px;" |-use-win32diskimager-to-burn-linux-image">| </spanbig>=== How to use Win32Diskimager '''The method introduced in this section is to burn Linux the entire OpenWRT image ===to spi flash, no nvme ssd is required. In other words, u-boot, kernel and rootfs are all stored in spi flash.'''
<ol style="list-style-type: decimal;"><li><p>First prepare a TF card with a capacity of 16GB or more. The transmission speed of '''Since the spi flash on the TF card must development board is only 16MB, this system basically cannot install much software, and currently only some basic functions can be class 10 or aboverealized. It is recommended to use a TF card of SanDisk and other brands</p></li><li><p>Then use the card reader to insert the TF card into the computer</p></li><li><p>Then format the TF card</p><ol style="list-style-type: lower-alpha;"><li>'''SD Card Formatter''' can be used to format the TF card. The download link is</li></olbig></li></ol>|}
'''https:<span id="the-method-of-using-the-dd-command-to-burn-1"><//www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip'''span>=== The method of using the dd command to burn ===
<ol start="2" style="list-style-type: lower-alpha;"><li><p>After downloading# Burning the OpenWRT image to SPIFlash needs to be completed with the help of a TF card, unzip and install directlyso first you need to burn the OpenWRT image that supports TF card startup to the TF card, and then open use the software</p></li><li><p>If only a TF card is inserted into to start the computerdevelopment board to enter the OpenWRT system. For the method of burning the OpenWRT image to the TF card, please refer to the instructions in the drive letter two sections of [[Orange Pi 5 Plus#Method of burning Linux image to TF card based on Windows PC|'''the method of burning the Linux image to the TF card will be displayed in based on the &quot;Windows PC''']] and [[Orange Pi 5 Plus#Method of burning Linux image to TF card based on Ubuntu PC|'''Select the method of burning the Linux image to the TF cardbased on the Ubuntu PC'''&quot; column]]. If multiple USB storage devices are inserted into # Then download the computer'''OpenWRT''' image that can boot from '''SPIFlash''' from [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page''']. After opening the download link, you can select see the corresponding drive letter following two types of '''OpenWRT images''', please select the TF card through image in the drop-down box</p></li></ol>SPIFlash boot image folder to download
<div class="figure">
::[[File:./images/media/image96plus5-img140.png|209x228px|选区_199]]
</div>
<ol start="43" style="list-style-type: lower-alphadecimal;"><li><p>Then click &quot;'''Format'''&quot;upload the image downloaded from the official website to the TF card.</p></li><li><p>Then execute the following command to burn the OpenWRT image into SPIFlash. Note that after if=, a warning box will pop up before formatting, and formatting will start after selecting &quot;'''Yes (Y)'''&quot;you need to specify the actual path where the image is stored</lip></olli>
[[File{| class="wikitable" style="width:800px;" |-|root@OpenWrt:~# '''dd if=openwrt-rockchip-armv8-xunlong_orangepi-5-plus-spi-squashfs-sysupgrade.bin of=/imagesdev/mediamtdblock0'''|}</image97ol><ol start="5" style="list-style-type: decimal;"><li>Then you can use the poweroff command to shut down.png|304x147px]]Then please pull out the TF card, and then short press the power button to turn on, and then the OpenWRT system in SPIFlash will be started.</li></ol>
<ol startspan id="5" style="listusing-rkdevtool-styleto-type: lowerburn-alpha;1"><li>After formatting the TF card, the message shown in the figure below will pop up, click OK</li></olspan>
<blockquote>[[File:./images/media/image98.png|186x149px]]</blockquote><ol start="4" style="list-style-type: decimal;"><li>Download the image file compression package of the Linux operating system that you want = Using RKDevTool to burn from the '''Orange Pi data download page''', and then use the decompression software to decompress it. Among the decompressed files, the file ending with &quot;'''.img'''&quot; is the image file of the operating system. The size is generally more than 2GB</li></ol>===
'''Note, if you download # The position of the OpenWRT image, you will see SPI Flash on the following two types of images development board is shown in the download link of the OpenWRT imagefigure below, please download the image file in no other settings are required before starting the''' '''&quot;TF card, eMMC and NVME SSD boot image&quot;''' '''folder.'''programming
::[[File:./images/media/image39plus5-img91.png|309x98px]]
<ol start="52" style="list-style-type: decimal;"><li>Use '''Win32Diskimager''' Then you need to burn the Linux image to the TF cardprepare a data cable with good quality Type-C interface</li></ol>
[[File:plus5-img21.png]]</ol><ol start="3" style="list-style-type: decimal;"><li><!p>Then download the Rockchip driver '''DriverAssitant_v5.12.zip''' and MiniLoader and the burning tool '''RKDevTool_Release_v3.15.zip''' from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange- Pi-5-plus.html '''Orange Pi's download page''']</p>
<ol style="list-style-type: lower-alpha;">
<li>The On the download page of Win32Diskimager isOrange Pi, first select the official tool, and then enter the following folder</li> </oldiv class="figure">
'''http[[File://sourceforgeplus5-img73.net/projects/win32diskimager/files/Archive/'''png]]
</div></ol>
<ol start="2" style="list-style-type: lower-alpha;">
<li>After downloading, install it directly. The interface of &gt; Win32Diskimager is as followsThen download all the files below</li></ol>
a) First select the path of the image file<div class="figure">
b) Then confirm that the drive letter of the TF card is consistent with that[[File:plus5-img80.png]]
displayed in </div></ol>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note that the''' &quot;MiniLoader-things needed to burn the Linux image&quot;'''Devicefolder is hereinafter referred to as the MiniLoader folder.'''&quot; column</big>|}
c) Finally click &quot</li></ol><ol start="4" style="list-style-type: decimal;"><li>Then download the '''OpenWRT''' image that can be booted from SPIFlash from the download page of Orange Pi. Limited by the capacity of SPIFlash, the image size is less than '''Write16MB.'''&quot; to start burningAfter opening the download link, you can see the following two types of OpenWRT images, please select the image in the '''SPIFlash boot image''' folder</li>
<div class="figure">
[[File:plus5-img140.png]] </imagesdiv></media/image99ol><ol start="5" style="list-style-type: decimal;"><li>Then use decompression software to decompress '''DriverAssitant_v5.12.png|297x206px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\a8fda8737c5b0b3b38fbb75ef68acfczip''', and then find the '''DriverInstall.pnga8fda8737c5b0b3b38fbb75ef68acfc]]exe''' executable file in the decompressed folder and open it</li>
[[File:plus5-img47.png]]</divol><ol start="36" style="list-style-type: lower-alphadecimal;"><li><p>After the image writing is completed, click the &quot;opening '''ExitDriverInstall.exe'''&quot; button &gt; , the steps to exit, and then youinstall the Rockchip driver are as follows</p><pol style="list-style-type: lower-alpha;">can pull out the TF card and insert it into the development board to start</pli>Click the &quot;'''Driver Installation'''&quot; button</li></ol>
[[File:plus5-img48.png]]</ol><span idol start="section2" style="list-style-type: lower-14alpha;"><li>After waiting for a period of time, a pop-up window will prompt &quot;'''driver installed successfully'''&quot;, and then click the &quot;'''OK'''&quot; button.</spanli>=== ===
<ol style="list-style-type: decimal;"><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li></ol></li><li></li><li><ol style="list-style-type[[File: lower-alpha;"><li></li><li><ol style="listplus5-style-type: lower-alpha;"><li></li><li></li><li></li></ol></li>img49.png]]<li></li></ol>
</li></ol>
<ol start="7" style="list-style-type: decimal;">
<li>Then decompress '''RKDevTool_Release_v3.15.zip''', this software does not need to be installed, just find '''RKDevTool''' in the decompressed folder and open it</li>
[[File:plus5-img50.png]]</ol><span idol start="8" style="methodlist-ofstyle-type: decimal;"><li>After opening the '''RKDevTool''' burning-linux-image-tool, because the computer has not been connected tothe development board through the Type-tf-card-based-on-ubuntu-pc">C cable at this time, the lower left corner will prompt &quot;'''No device found'''&quot;</spanli>== Method of burning Linux image to TF card based on Ubuntu PC ==
'''Note that [[File:plus5-img51.png]]</ol><ol start="9" style="list-style-type: decimal;"><li><p>Then start burning the Linux OpenWRT image mentioned here specifically refers into SPI FLASH</p><ol style="list-style-type: lower-alpha;"><li>First, connect the development board to the image of Linux distributions such as Debian, Ubuntu, OpenWRT or OPi OS Arch downloaded from Windows computer through the''' Orange Pi Type-C data download page''', and cable. The position of the Ubuntu PC refers to Type-C interface on the personal computer with development board is shown in the Ubuntu system installed.'''figure below</li>
# First prepare a TF card with a capacity of '''16GB''' or more. The transmission speed of the TF card must be '''<div class 10''' or above. It is recommended to use a TF card of SanDisk and other brands# Then use the card reader to insert the TF card into the computer# Download the balenaEtcher software, the download address is="figure">
'''https[[File://wwwplus5-img52.balena.io/etcher/'''png]]
</div></ol><ol start="42" style="list-style-type: decimallower-alpha;"><li>After entering <p>Make sure the balenaEtcher download pagedevelopment board is not connected to the power supply, click and the green download TF card and eMMC module are not inserted</p></li><li><p>Then press and hold the MaskROM button to jump to on the place where development board. The position of the software MaskROM button on the development board is downloadedshown in the figure below:</lip></olli>
[[File:./images/media/image42plus5-img53.png|575x276px]]</ol><ol start="4" style="list-style-type: lower-alpha;"><li>Then connect the power supply of the Type-C interface to the development board, and power on, and then release the MaskROM button</li>
[[File:plus5-img54.png]]</ol><ol start="5" style="list-style-type: decimallower-alpha;"><li>Then choose to download If the previous steps are successful, the Linux version development board will enter the '''MASKROM''' mode at this time, and the interface of the softwareburning tool will prompt &quot;'''Found a MASKROM device'''&quot;</li></ol>
[[File:./images/media/image101plus5-img55.png|575x218px]]</ol><ol start="6" style="list-style-type: lower-alpha;"><li>Then place the mouse cursor in the area below</li>
<ol startdiv class="6figure" style="list-style-type: decimal;"><li>Download the Linux operating system image file compression package that you want to burn from the '''Orange Pi data download page,''' and then use the decompression software to decompress it. Among the decompressed files, the file ending with &quot;'''.img'''&quot; is the image file of the operating system. The size is generally more than 2GB</li></ol>
'''Note, if you download the OpenWRT image, you will see the following two types of images in the download link of the OpenWRT image, please download the image file in the''' '''&quot;TF card, eMMC and NVME SSD boot image&quot;''' '''folder[[File:plus5-img130.'''png]]
</div class></ol><ol start="7" style="list-style-type: lower-alpha;"><li>Then click the right mouse button and the selection interface shown in the figure"below will pop up</li>
[[File:./images/media/image102plus5-img57.png|275x87px|e6986fc9c8fc078e8cb6a9c39b76fb8]]</ol><ol start="8" style="list-style-type: lower-alpha;"><li>Then select the '''Import configuration''' option</li>
[[File:plus5-img58.png]]</divol><blockquoteol style="list-style-type: lower-roman;">The decompression command for the compressed package ending in 7z is as follows:</blockquoteli>test@test:~$ Then select the '''7z x orangepi5plus_1rk3588_linux_spiflash.0.0_debian_bullseye_desktop_xfce_linux5.10.110.7zcfg''' configuration file in the MiniLoader folder downloaded earlier, and click '''Open'''</li>
test@test[[File:~$ '''ls'plus5-img141.png]]</ol><ol start="10" style="list-style-type: lower-alpha;"><li>Then click '' '''orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.*OK'''</li>
orangepi5plus_1[[File:plus5-img142.0.0_debian_bullseye_desktop_xfce_linux5.10.110.7z orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.sha # checksum filepng]]</ol><ol start="11" style="list-style-type: lower-alpha;"><li>Then click the location shown in the figure below</li>
orangepi5plus_1[[File:plus5-img143.0png]]</ol><ol start="12" style="list-style-type: lower-alpha;"><li>Then select '''MiniLoaderAll.0_debian_bullseye_desktop_xfce_linux5.10.110.img # mirror filebin''' in the '''MiniLoader''' folder downloaded earlier, and click '''Open'''</li>
If you download [[File:plus5-img144.png]]</ol><ol start="13" style="list-style-type: lower-alpha;"><li>Then click the OpenWRT image, location shown in the compressed package ends with gz, and the decompression command is as follows:figure below</li>
test@test[[File:~$ plus5-img145.png]]</ol><ol start="14" style="list-style-type: lower-alpha;"><li><p>Then select the path of the OpenWRT image you want to burn, and click '''gunzipOpen''' </p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''openwrt-aarch64-opi5plus-23.05-linux-5.10.110-ext4Before burning the image, it is recommended to rename the OpenWRT image to be burned to orangepi.imgor other shorter names, so that you can see the percentage value of the burning progress when burning the image.gz'''</p></big>|}</li>
test@test[[File:~$ '''ls openwrt-aarch64plus5-opi5plus-23img64.05png]]</ol><ol start="15" style="list-linuxstyle-5.10.110type: lower-ext4.imgalpha;"><li>Then please make sure that the option to '''force writing by address'''is ticked</li>
'''openwrt-aarch64[[File:plus5-opi5plus-23img146.05png]]</ol><ol start="16" style="list-linuxstyle-5.10.110type: lower-ext4.imgalpha;"><li>Click the '''Execute''' # mirror filebutton again to start burning the OpenWRT image into SPIFlash</li>
[[File:plus5-img147.png]]</ol><ol start="717" style="list-style-type: decimallower-alpha;"><li>After decompressing the image, you can first use the '''sha256sum -c *.sha'''.sha command to calculate whether the checksum is correct. If the prompt is successful, it means that The display log after burning the downloaded OpenWRT image is correct, and you can safely burn it to the TF card. If it prompts that shown in the '''checksum does not match''', it means There is a problem with the downloaded image, please try to download againfigure below</li></ol>
test@test[[File:~$ '''sha256sum plus5-c *img148.sha'''png]]
orangepi5plus_1{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''If there is a problem with burning, please clear the SPIFlash first and then try burning again.0For the method of clearing SPIFlash, please refer to the instructions in the section of using RKDevTool to clear SPIFlash.0_debian_bullseye_desktop_xfce_linux5.10'''</big>|}</ol><ol start="18" style="list-style-type: lower-alpha;"><li>The OpenWRT image will start automatically after burning, if it does not start normally, please try again with power on.110.img: OK</li></ol></li></ol><span id="how-to-burn-android-image-to-tf-card"></span>
If you download the OpenWRT == How to burn Android image, you need to verify the compressed package, do not decompress it and then verify itTF card ==
test@test:~$ '''sha256sum <ol style="list-c openwrtstyle-aarch64type: decimal;"><li><p>First prepare a TF card with a capacity of 16GB or greater. The transmission speed of the TF card must be class10 or above. It is recommended to use a TF card of SanDisk and other brands</p></li><li><p>Then use the card reader to insert the TF card into the computer</p></li><li><p>Then download the SDDiskTool programming tool from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-opi5plusand-23.04support/Orange-linuxPi-5-plus.10html '''Orange Pi's download page'''], '''<span style="color:#FF0000">please make sure that the version of the SDDiskTool tool is the latest v1.11072</span>'''</p></li><li><p>Then download the Android12 image from the Orange Pi download page</p><ol style="list-ext4.img.gz.shastyle-type: lower-alpha;"><li>After opening the download link of the Android image, you can see the following two types of Android images, please select the image in the '''TF card and eMMC boot image'''folder to download</li>
openwrt-aarch64-opi5plus[[File:plus5-23img149.04png]]</ol><ol start="2" style="list-linuxstyle-5.10.110type: lower-ext4.img.gzalpha;"><li>After entering the '''TF card and eMMC boot image''' folder, you can see the following three images, the difference between them is: OK</li>
<ol start="8" style="list-style-type: decimal;"><li>Then double-click '''balenaEtcher-1a) The first image is dedicated to HDMI display and supports 8K display.14.3-x64.AppImage''' on the graphical interface of Ubuntu PC to open balenaEtcher (no installation required)If you don’t use LCD screen, and the interface after balenaEtcher is opened is shown in please download the figure below</li></ol>image without lcd
[[File:./images/media/image103.png|423x251px]]b) If you want to use lcd screen, please choose image with lcd
<ol start="9" style="list-style-type: decimal;"><li>c) The specific steps to use balenaEtcher image with box is a image dedicated to burn the Linux image are as follows</li></ol>TV box
a[[File:plus5-img150. First select png]]</ol></li></ol><ol start="5" style="list-style-type: decimal;"><li><p>Then use decompression software to decompress the path compressed package of the Linux downloaded Android image. Among the decompressed files, the file ending with &quot;.img&quot; is the Android image file , and the size is more than 1GB</p></li><li><p>Then use decompression software to decompress '''SDDiskTool_v1.72.zip''', this software does not need to be burnedinstalled, just find '''SD_Firmware_Tool.exe''' in the decompressed folder and open it</p></li>
b[[File:plus5-img151. Then select png]]</ol><ol start="7" style="list-style-type: decimal;"><li>After opening SDDiskTool, if the TF card is recognized normally, the inserted disk device will be displayed in the &quot;'''Select Removable Disk Device'''&quot; column. '''<span style="color:#FF0000">Please make sure that the displayed disk device is consistent with the drive letter of the TF cardyou want to burn</span>''' If there is no display, you can try to unplug the TF card</li>
c[[File:plus5-img152. Finally png]]</ol><ol start="8" style="list-style-type: decimal;"><li>After confirming the drive letter, you can format the TF card first, click Flash to start burning the Linux image restore disk button in '''SDDiskTool''', or use the SD Card Formatter mentioned above to format the TF card</li>
[[File:plus5-img153.png]]<div class/ol><ol start="9" style="figurelist-style-type: decimal;"><li>Then start to write the Android image to the TF card</li>
[[File:a./images/media/image47.png|501x281px|03]]First check &quot;'''SD Boot'''&quot; in &quot;'''Select Function Mode'''&quot;
</div><ol start="10" style="list-style-type: decimal;"><li>The interface displayed in b. Then select the process path of burning the Linux Android image by balenaEtcher is shown in the figure below, and the progress bar displays purple, indicating that the Linux image is being burned into the TF card</li></ol>&quot;'''Select to upgrade firmware'''&quot; column
[[File:c./images/media/image104.png|576x247px]]Finally click the &quot;'''Start Create'''&quot; button to start burning the Android image to the TF card
[[File:plus5-img154.png]]</ol><ol start="1710" style="list-style-type: decimal;"><li>The interface displayed in the process of After burning , you can exit the Linux image by balenaEtcher is shown in the figure belowSDDiskTool software, and then you can pull out the progress bar displays purple, indicating that TF card from the Linux image is being burned computer and insert it into the TF carddevelopment board to start</li></ol>
[[File:./images/media/image105plus5-img155.png|576x252px]]</ol><span id="how-to-burn-android-image-into-emmc"></span>
<ol start="18" style="list-style-type: decimal;"><li>After successful burning, the display interface of balenaEtcher is as shown in the figure below. If a green indicator icon is displayed, it means that the How to burn Android image burning is successful. At this time, you can exit balenaEtcher, and then pull out the TF card and insert it into the TF card slot of the development board for use.</li></ol>eMMC ==
<span id{| class="wikitable" style="sectionbackground-15color:#ffffdc;width:800px;"|-| <big>'''Note, after burning the image into eMMC, if the test finds that it cannot be started, please clear the SPIFlash and try again. For the method of clearing SPIFlash, please refer to the method of using RKDevTool to clear SPIFlash.'''</spanbig>== [[File:./images/media/image106.png|576x340px]] ==}
<ol startspan id="11" style="listhow-to-burn-android-image-styleinto-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li><ol style="listemmc-stylevia-type: lower-alpha;c-cable"><li></lispan><li></li><li></li></ol></li><li></li></ol>=== How to burn Android image into eMMC via Type-C cable ===
<!-- --><ol start{| class="19wikitable" style="listbackground-style-typecolor:#ffffdc;width: decimal800px;">|-| <libig>'''Note that all the following operations are performed on a Windows computer.'''</libig><li></li></ol>|}
<span id="how-# The development board reserves an eMMC expansion interface. Before programming the system to-burn-linux-image-eMMC, you first need to-emmc"></span>== How to burn Linux image purchase an eMMC module that matches the eMMC interface of the development board. Then install the eMMC module to the development board. The location of the eMMC ==interface is as follows:
'''Note, after burning the image into eMMC, if the test finds that it cannot be started, please clear the SPIFlash and try again::[[File:plus5-img78-1. For the method of clearing SPIFlash, please refer to the method of using RKDevTool to clear SPIFlashpng]][[File:plus5-img78-2.'''png]]
<span id="how::[[File:plus5-toimg78-use-rkdevtool-to-burn-linux-image-into-emmc"></span>=== How to use RKDevTool to burn Linux image into eMMC ===3.png]]
<ol start="2" style="list-style-type: decimal;"><li><p>It is also necessary to prepare a data cable with a good quality Type-C interface</p><p>[[File:plus5-img21.png]]</p></li><li><p>Then download Rockchip driver '''DriverAssitant_v5.12.zip''' and burning tool '''RKDevTool_Release_v3.15.zip'''from [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html 'Note that all ''Orange Pi's download page''']</p></li><li><p>Then download the following operations are performed on a Windows computerAndroid image from [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page'''].</p></li>
'''Note that <ol style="list-style-type: lower-alpha;"><li>After opening the download link of the Linux Android image mentioned here specifically refers to , you can see the image following two types of Linux distributions such as DebianAndroid images, Ubuntu, OpenWRT or OPi OS Arch downloaded from please select the image in the''' Orange Pi data TF card and eMMC startup image''' folder to download page.</li>
# The development board reserves the expansion interface of the eMMC module. Before programming the system to the eMMC, you first need to purchase an eMMC module that matches the eMMC interface of the development board. Then install the eMMC module to the development board. The location of the eMMC interface is as follows:<div class="figure">
[[File:./images/media/image108plus5-img156.png|307x141px]]
</div></ol><ol start="2" style="list-style-type: decimallower-alpha;"><li>It After entering the TF card and eMMC boot image folder, you can see the following three images, the difference between them is also necessary to prepare a data cable with a good quality Type-C interface:</li></ol> [[File:./images/media/image22.png|150x152px]]
<ol start="3" style="list-style-type: decimal;">
<li><p>Then download Rockchip '''DriverAssitant_v5.12.zip''' and '''MiniLoader''' and the burning tool RKDevTool_Release_v2.96.zipRKDevTool_Release_v3.15.zip from the '''Orange Pi data download page''', please make sure that the version of the downloaded RKDevTool tool is v2.96.</p>
<ol style="list-style-type: lower-alpha;">
<li>On the download page of Orange Pi, <p>The first select the official toolimage is dedicated to HDMI display and supports 8K display. If you don’t use LCD screen, and then enter please download the following folderimage without lcd</p></li><li><p>If you want to use lcd screen, please choose image with lcd</p></olli><li><p>The image with box is a image dedicated to the TV box</lip></olli>
[[File:plus5-img150.png]]<div class/ol></ol></ol><ol start="figure5"style="list-style-type: decimal;"><li><p>Then use the decompression software to decompress the compressed package of the downloaded Android image. Among the decompressed files, the file ending with &quot;.img&quot; is the Android image file, and the size is more than 1GB</p></li><li><p>Then use decompression software to decompress '''DriverAssitant_v5.12.zip''', and then find the '''DriverInstall.exe''' executable file in the decompressed folder and open it</p></li>
[[File:plus5-img47.png]]</imagesol><ol start="7" style="list-style-type: decimal;"><li><p>After opening '''DriverInstall.exe''', the steps to install the Rockchip driver are as follows</mediap><ol style="list-style-type: lower-alpha;"><li>Click the &quot;'''Driver Installation'''&quot; button</image109.png|408x99px|c40e71d1a66216e12b3b4297138f749]]li>
[[File:plus5-img48.png]]</divol>
<ol start="2" style="list-style-type: lower-alpha;">
<li>Then download all the files belowAfter waiting for a period of time, a pop-up window will prompt &quot;driver installed successfully&quot;, then click &quot;OK&quot;</li></ol>
[[File:plus5-img49.png]]<div class/ol></li></ol><ol start="8" style="figurelist-style-type: decimal;"><li>Then decompress '''RKDevTool_Release_v3.15.zip''', this software does not need to be installed, just find '''RKDevTool''' in the decompressed folder and open it</li>
[[File:./images/media/image110plus5-img50.png|337x138px|2feec28318eaa60c0514000158b889a]]</ol><ol start="9" style="list-style-type: decimal;"><li>After opening the '''RKDevTool''' burning tool, because the computer has not been connected to the development board through the Type-C cable at this time, the lower left corner will prompt &quot;'''No device found'''&quot;</li>
[[File:plus5-img51.png]]</divol>'''Note that the''' '''&quot;MiniLoader-things needed to burn the Linux image&quot;''' '''folder is hereinafter referred to as the MiniLoader folder.''' <ol start="410" style="list-style-type: decimal;"><li><p>Then download start burning the Linux operating system Android image file compression package that you want to burn from the '''Orange Pi data download page''', and then use the decompression software to decompress it. Among the decompressed files, the file ending with &quot;'''.img'''&quot; is the image file of the operating system , the size is generally more than 2GBinto eMMC</lip></olstyle="list-style-type: lower-alpha;"'''Note<li>First, if you download connect the OpenWRT image, you will see development board to the following two types of images in Windows computer through the download link Type-C data cable. The position of the OpenWRT image, please download Type-C interface on the image file development board is shown in the &quot;TF card, eMMC and NVME SSD boot image&quot; folder.'''figure below</li>
<div class="figure">
[[File:./images/media/image102plus5-img52.png|340x108px|e6986fc9c8fc078e8cb6a9c39b76fb8]]
</div></ol><ol start="52" style="list-style-type: decimallower-alpha;"><li><p>Then use decompression software make sure that the development board is not inserted into the TF card and not connected to decompress '''DriverAssitant_v5.12.zip'''the power supply</p></li><li><p>Then press and hold the MaskROM button on the development board, and then find the '''DriverInstall.exe'''executable file position of the MaskROM button on the development board is shown in the decompressed folder and open itfigure below:</lip></olli>
[[File:plus5-img53.png]]</images/mediaol><ol start="4" style="list-style-type: lower-alpha;"><li>Then connect the power supply of the Type-C interface to the development board, and power on</image57li> [[File:plus5-img54.png|496x146px]]</ol><ol start="5" style="list-style-type: lower-alpha;"><li>If the previous steps are successful, the development board will enter the '''MASKROM''' mode at this time, and the interface of the burning tool will prompt &quot;'''found a MASKROM device'''&quot;</li>
<ol start="6" style="list[[File:plus5-style-type: decimal;">img55.png]]<li><p>After opening '''DriverInstall.exe,''' the steps to install the Rockchip driver are as follows</pol><ol start="6" style="list-style-type: lower-alpha;"><li>Click Then click the &quot;'''Driver InstallationUpgrade Firmware'''&quot; buttoncolumn of the burning tool</li></ol></li></ol>
[[File:./images/media/image58plus5-img157.png|284x149px]]</ol><ol start="7" style="list-style-type: lower-alpha;"><li>Then click the &quot;'''Firmware'''&quot; button to select the path of the Android image that needs to be burned</li>
[[File:plus5-img158.png]]</ol><ol start="28" style="list-style-type: lower-alpha;"><li>After waiting for a period of time<p>Finally, a pop-up window will prompt click the &quot;'''driver installed successfullyUpgrade'''&quot;button to start burning, and then click the &quot;'''OK'''&quot; buttonlog during the burning process is shown in the figure below. After burning is completed, the Android system will start automatically.</p><p>[[File:plus5-img159.png]]</p></li></ol></li></ol><span id="how-to-burn-android-12-image-into-emmc-via-tf-card"></span>
[[File:./images/media/image59.png|296x154px]]=== How to burn Android 12 image into eMMC via TF card ===
<ol start{| class="7wikitable" style="listbackground-style-typecolor:#ffffdc;width: decimal800px;">|-| <libig>Then decompress RKDevTool_Release_v3.15.zip, this software does not need to be installed, just find '''RKDevToolNote that all the following operations are performed on a Windows computer.''' in the decompressed folder and open it</li></olbig>|}
[[File:# The development board reserves an eMMC expansion interface. Before programming the system to eMMC, you first need to purchase an eMMC module that matches the eMMC interface of the development board./images/media/image60Then install the eMMC module to the development board.png|484x143px]]The location of the eMMC interface is as follows:
<ol start="8" style="list::[[File:plus5-styleimg78-type1.png]][[File: decimal;"><li>After opening the '''RKDevTool''' burning tool, because the computer has not been connected to the development board through the Typeplus5-img78-C cable at this time, the lower left corner will prompt &quot;'''No device found'''&quot;</li></ol>2.png]]
::[[File:./images/media/image61plus5-img78-3.png|442x208px]]
<ol start="92" style="list-style-type: decimal;"><li><p>You also need to prepare a TF card with 8GB or larger capacity. The transmission speed of the TF card must be class10 or above. It is recommended to use a TF card of SanDisk and other brands</p></li><li><p>Then use the card reader to insert the TF card into the computer</p></li><li><p>Then download the SDDiskTool programming tool from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page'''], '''<span style="color:#FF0000">please ensure that the version of the SDDiskTool tool is the latest v1.72</span>'''</p></li><li><p>Then start burning download the Linux Android image into eMMCfrom the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page''']</p>
<ol style="list-style-type: lower-alpha;">
<li>First, connect After opening the development board to download link of the Windows computer through Android image, you can see the Type-C data cable. The position following two types of Android images, please '''select the Type-C interface on the development board is shown image in the figure belowTF card and eMMC startup image''' folder to download</li></ol></li></ol>
<div class="figure">
[[File:./images/media/image63.jpeg|403x114px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题plus5-2img156.jpg未标题-2png]]
</div></ol>
<ol start="2" style="list-style-type: lower-alpha;">
<li><p>Make sure that the development board is not inserted into '''After entering the TF card and not connected eMMC boot image folder''', you can see the following three images, the difference between them is:</p><ol style="list-style-type: lower-alpha;"><li><p>The first image is dedicated to HDMI display and supports 8K display. If you don’t use LCD screen, please download the power supplyimage without lcd</p></li><li><p>Then press and hold the MaskROM button on the development boardIf you want to use lcd screen, the position of the MaskROM button on the development board is shown in the figure below:please choose mirror with lcd</p></li><li><p>The mirror with box is a mirror dedicated to the TV box</olp></li>
[[File:plus5-img150.png]]</ol></li></ol></li></imagesol><ol start="6" style="list-style-type: decimal;"><li><p>Then use decompression software to decompress the compressed package of the downloaded Android image. Among the decompressed files, the file ending with &quot;.img&quot; is the Android image file, and the size is more than 1GB</mediap></image64li><li><p>Then use decompression software to decompress '''SDDiskTool_v1.72.zip''', this software does not need to be installed, just find '''SD_Firmware_Tool.png|418x94px]]ex''' in the decompressed folder and open it</p></li>
[[File:plus5-img151.png]]</ol><ol start="48" style="list-style-type: lower-alphadecimal;"><li>Then connect After opening '''SDDiskTool''', if the TF card is recognized normally, the inserted disk device will be displayed in the &quot;'''Select Removable Disk Device'''&quot; column. '''<span style="color:#FF0000">Please make sure that the displayed disk device is consistent with the power supply drive letter of the Type-C interface TF card you want to the development boardburn</span>''', and power onif there is no display, and then release you can try to unplug the MaskROM buttonTF card</li></ol>
[[File:./images/media/image65plus5-img152.png|407x124px]]</ol><ol start="9" style="list-style-type: decimal;"><li>After confirming the drive letter, you can format the TF card first, click the '''restore disk''' button in '''SDDiskTool,''' or use the '''SD Card Formatter''' mentioned above to format the TF card</li>
[[File:plus5-img153.png]]</ol><ol start="510" style=" list-style-type: decimal;"><li><p>Then start to write the Android image into the TF card</p><ol style="list-style-type: lower-alpha;"><li>If <p>First confirm that the previous steps are successful, displayed drive letter is the development board will enter drive letter corresponding to the TF card under &quot;'''Select Removable Disk Device'''&quot;</p></li><li><p>Then select &quot;'''Firmware Upgrade'''&quot; in &quot;'''MASKROMSelect Function Mode''' mode at this time, and &quot;</p></li><li><p>Then select the interface path of the burning tool will prompt Android firmware in the &quot;'''found a MASKROM deviceSelect Upgrade Firmware'''&quot;column</p></li><li><p>Finally click the &quot;'''Start Create'''&quot; button to start burning</olp></li>
[[File:plus5-img160.png]]</imagesol></mediali></image66.png|457x215px]]ol><ol start="11" style="list-style-type: decimal;"><li><p>After the burning is completed, the display is as shown in the figure below, and then you can exit SDDiskTool</p></li>
[[File:plus5-img161.png]]</ol><ol start="612" style="list-style-type: lower-alphadecimal;"><li><p>Then place pull out the mouse cursor TF card from the computer and insert it into the development board. After the development board is powered on, it will automatically start burning the Android image in the area belowTF card to the eMMC of the development board.</p></li><li><p>If the development board is connected to an HDMI display, you can also see the progress bar of burning the Android image to eMMC from the HDMI display</olp></li>
[[File:plus5-img162.png]]</imagesol><ol start="14" style="list-style-type: decimal;"><li><p>When the HDMI monitor displays the following information, it means that the burning of the Android image into the eMMC has been completed. At this time, the TF card can be pulled out, and then the Android system in the eMMC will start.</media/image95p><p>[[File:plus5-img163.png|458x215px]]</p></li></ol>
<ol startspan id="7" style="listhow-to-burn-android-image-styleto-type: lowerspiflashnvme-alpha;ssd"><li>Then click the right mouse button and the selection interface shown in the figure below will pop up</li></olspan>
[[File:./images/media/image70.png|460x216px]]== How to burn Android image to SPIFlash+NVMe SSD ==
<ol start{| class="8wikitable" style="listbackground-style-typecolor:#ffffdc;width: lower-alpha800px;">|-| <libig>Then select the '''import configurationNote that all the following operations are performed on a Windows computer.''' option</li></olbig>|}
[[File:# First, you need to prepare an M-Key 2280 specification NVMe SSD solid state drive, and the specification of the PCIe interface in the M./images/media/image722 slot of the development board is PCIe3.0x4.png|458x215px]]
<ol style="list-style-type: lower:[[File:plus5-roman;"><li>Then select the '''rk3588_linux_emmcimg25.cfg''' configuration file in the '''MiniLoader''' folder downloaded earlier, and click '''Open'''</li></ol>png]]
[[File<ol start="2" style="list-style-type:decimal;"><li>Then insert the NVMe SSD into the M.2 PCIe interface of the development board and fix it</images/media/image111.png|466x219px]]li>
[[File:plus5-img90.png]]</ol><ol start="103" style="list-style-type: lower-alphadecimal;"><li>Then click '''OK'''The position of the SPI Flash on the development board is shown in the figure below, no other settings are required before starting the programming</li></ol>
[[File:./images/media/image113plus5-img91.png|468x220px]]</ol><ol start="4" style="list-style-type: decimal;"><li>It is also necessary to prepare a data cable with a good quality Type-C interface</li>
[[File:plus5-img21.png]]</ol><ol start="115" style="list-style-type: decimal;"><li><p>Then download Rockchip driver '''DriverAssitant_v5.12.zip''' and burning tool '''RKDevTool_Release_v3.15.zip''' from [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page''']</p></li><li><p>Then download the Android12 image from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page''']</p><ol style="list-style-type: lower-alpha;"><li>Then click After opening the download link of the Android image, you can see the following two types of Android images, please select the position shown image in the figure below'''SPIFlash-NVME SSD boot image''' folder to download</li></ol>
[[File:plus5-img164.png]]</ol><ol start="2" style="list-style-type: lower-alpha;"><li><p>After entering the '''SPIFlash-NVME SSD boot image''' folder, you can see the following three images. Their differences are:</p><ol style="list-style-type: lower-alpha;"><li><p>The first image is dedicated to HDMI display and supports 8K display. If you don’t use LCD screen, please download the image without lcd</p></li><li><p>If you want to use lcd screen, please choose image with lcd</p></li><li><p>The image with box is a image dedicated to the TV box</mediap></image115.png|462x217px]]li>
[[File:plus5-img165.png]]</ol></li></ol></li></ol><ol start="127" style="list-style-type: lower-alphadecimal;"><li>Then select use the decompression software to decompress '''MiniLoaderAllDriverAssitant_v5.bin12.zip''' in , and then find the '''MiniLoaderDriverInstall.exe''' executable file in the decompressed folder downloaded earlier, and then click to '''open'''it</li></ol>
[[File:./images/media/image117plus5-img47.png|463x217px]]</ol>:8. After opening DriverInstall.exe, the steps to install the Rockchip driver are as followsa. Click the &quot;'''Driver Install'''&quot; button
<ol start="13" style="list-style-type: lower:[[File:plus5-alpha;"><li>Then click the position shown in the figure below</li></ol>img48.png]]
[[File:::a./images/media/image118.png|459x216px]]After waiting for a period of time, a pop-up window will prompt &quot;'''driver installed successfully'''&quot;, then click the &quot;'''OK'''&quot; button
<ol start="14" style="list-style-type: lower:::[[File:plus5-alpha;"><li>img49. Then select the path of the linux image you want to burn, and click '''Open'''</li></ol>png]]
:9. Then decompress '''RKDevTool_Release_v3.15.zip'''Before burning the image, it is recommended to rename the linux image this software does not need to be burned to orangepi.img or other shorter namesinstalled, so that you can see the percentage value of the burning progress when burning the image.just find '''RKDevTool'''in the decompressed folder and open it::[[File:plus5-img50.png]]
[[File<ol start="10" style="list-style-type:.decimal;"><li>After opening the '''RKDevTool''' burning tool, because the computer is not connected to the development board through the Type-C cable at this time, the lower left corner will prompt &quot;'''No device found'''&quot;</images/media/image84.png|499x234px]]li>
[[File:plus5-img51.png]]</ol><ol start="1512" style="list-style-type: lower-alphadecimal;"><li><p>Then please check start burning the option Android image to '''force writing by address'''SPIFlash+NVMe SSD</p><ol style="list-style-type: lower-alpha;"><li>First, connect the development board to the Windows computer through the Type-C data cable. The position of the Type-C interface on the development board is shown in the figure below</olli>
[[File:./images/media/image120.png|501x235px]]<div class="figure">
<ol start="16" style="list-style-type[[File: lowerplus5-alpha;"><li>Then click the execute button to start burning the linux image to the eMMC of the development board</li></ol>img52.png]]
[[File</div></ol><ol start="2" style="list-style-type:.lower-alpha;"><li><p>Make sure that the development board is not plugged into TF and eMMC modules, and is not connected to the power supply</p></imagesli><li><p>Then press and hold the MaskROM button on the development board, the position of the MaskROM button on the development board is shown in the figure below:</mediap></image122.png|502x236px]]li>
[[File:plus5-img53.png]]</ol><ol start="174" style="list-style-type: lower-alpha;"><li>The log displayed after burning Then connect the linux image is shown in power supply of the figure belowType-C interface to the development board, and power on, and then release the MaskROM button</li></ol>
[[File:./images/media/image124plus5-img54.png|500x235px]]</ol><ol start="5" style="list-style-type: lower-alpha;"><li>If the previous steps are successful, the development board will enter the '''MASKROM''' mode at this time, and the interface of the burning tool will prompt &quot;'''Found a MASKROM device'''&quot;</li>
[[File:plus5-img55.png]]</ol><ol start="186" style="list-style-type: lower-alpha;"><li>After burning Then click the linux image into the eMMC, the linux system will &gtquot;Upgrade Firmware&quot; start automatically.column of the burning tool</li></ol>
[[File:plus5-img157.png]]</ol><span idol start="section7" style="list-16style-type: lower-alpha;"><li>Then click the &quot;Firmware&quot; button to select the Android image to be burned</spanli>== ==
[[File:plus5-img158.png]]</ol><span idol start="section8" style="list-17style-type: lower-alpha;"><li>Finally, click the &quot;Upgrade&quot; button to start burning. The burning process is shown in the figure below. After the burning is completed, the Android system will automatically start.</spanli>=== ===
<ol start="10" style="list-style-type: decimal;"><li></li><li></li><li><ol style="list-style-type[[File: lowerplus5-alpha;"><li></li><li></li></ol></li><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>img166.png]]<li></li></ol>
</li></ol>
<span id="how-to-burn-orange-pi-os-droid-image-to-tf-card"></span>
<span id="using-the-dd-command-= How to-burn-the-linux-Orange Pi OS (Droid) image-into-emmc"></span>=== Using the dd command to burn the Linux image into eMMC =TF card ==
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note that all the Linux image mentioned here specifically refers to the image of Linux distributions such as Debian, Ubuntu, OpenWRT or OPi OS Arch downloaded from the Orange Pi data download pagefollowing operations are performed on a Windows computer.'''</big>|}
# First prepare a TF card with 8GB or larger capacity. The development board reserves the expansion interface transmission speed of the eMMC moduleTF card must be class10 or above. Before programming It is recommended to use a TF card of SanDisk and other brands# Then use the system card reader to insert the eMMCTF card into the computer# Then download the SDDiskTool programming tool from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page'''], you first need to purchase an eMMC module '''<span style="color:#FF0000">please make sure that matches the eMMC interface version of the development boardSDDiskTool tool is the latest v1. 72</span>.'''# Then install download the eMMC module to Orange Pi OS (Droid) image from the development board[http://www. The location orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page'''], open the download link of the Orange Pi OS (Droid) image, and you can see the following two types of images, please select the eMMC interface is as follows:image below
::[[File:./images/media/image108plus5-img167.png|312x143px]]
<ol start="25" style="list-style-type: decimal;"><li><p>Using the dd command to burn the linux image to eMMC needs to be done with a TF card, so first you need to burn the linux image to the TF card, and then Then use the TF card decompression software to start decompress the development board to enter the linux system. For the method compressed file of burning the Linux downloaded Orange Pi OS (Droid) image to . Among the TF carddecompressed files, please refer to the instructions in the two sections of file ending with &quot;'''the method of burning the Linux image to the TF card based on the Windows PC''' and '''the method of burning the Linux image to the TF card based on the Ubuntu PC.img'''</p></li><li><p>After using the TF card to start the linux system, we first upload &quot; is the decompressed linux image file Orange Pi OS (Debian, Ubuntu image or OPi Arch image downloaded from the official websiteDroid) to the TF card. For the method of '''uploading the linux image file to the development board,''' please refer to and the description in the section of the method of uploading files to the development board Linux system.size is more than 1GB</p></li><li><p>After uploading the image Then use decompression software to the linux system of the development board, we enter the storage path of the image file in the command line of the linux system of the development board. For example, I store the linux image of the development board in the decompress '''/home/orangepi/DesktopSDDiskTool_v1.72.zip''' directory Download it, and then enter the /this software does not need to be installed, just find '''/home/orangepi/DesktopSD_Firmware_Tool.ex''' directory to see in the uploaded image file.decompressed folder and open it</p></li></ol>
orangepi@orangepi[[File:~$ plus5-img151.png]]</ol><ol start="7" style="list-style-type: decimal;"><li>After opening '''SDDiskTool''', if the TF card is recognized normally, the inserted disk device will be displayed in the &quot;'''Select Removable Disk Device''cd /home/orangepi'&quot; column. '''<span style="color:#FF0000">Please make sure that the displayed disk device is consistent with the drive letter of the TF card you want to burn</Desktopspan>''', if there is no display, you can try to unplug the TF card</li>
orangepi@orangepi[[File:~plus5-img152.png]]</Desktop$ ol><ol start="8" style="list-style-type: decimal;"><li>After confirming the drive letter, you can format the TF card first, click the '''restore disk''' button in SDDiskTool, or use the '''lsSD Card Formatter'''mentioned above to format the TF card</li>
Orangepi5plus_x[[File:plus5-img153.x.x_debian_bullseye_desktop_xfce_linux5.10.110.imgpng]]</ol><ol start="9" style="list-style-type: decimal;"><li><p>Then start to write the Orange Pi OS (Droid) image into the TF card</p><ol style="list-style-type: lower-alpha;"><li><p>First check &quot;'''SD Boot'''&quot; in &quot;'''Select Function Mode'''&quot;</p></li><li><p>Then select the path of the Orange Pi OS (Droid) image in the &quot;'''Select to upgrade firmware'''&quot; column</p></li><li><p>Finally, click the &quot;'''Start Create'''&quot; button to start burning the Orange Pi OS (Droid) image to the TF card</p></li>
[[File:plus5-img154.png]]</ol></li></ol><ol start="10" style="list-style-type: decimal;"><li>After burning, you can exit the SDDiskTool software, and then you can pull out the TF card from the computer and insert it into the development board to start</li> [[File:plus5-img155.png]]</ol><span id="how-to-burn-orange-pi-os-droid-image-into-emmc"></span> == How to burn Orange Pi OS (Droid) image into eMMC == {| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''How Note, after burning the image into eMMC, if the test finds that it cannot be started, please clear the SPIFlash and try again. For the method of clearing SPIFlash, please refer to enter the command line method of the development board linux system?using RKDevTool to clear SPIFlash.'''</big>|} <span id="burn-orange-pi-os-droid-image-toemmc"></span>=== Burn Orange Pi OS (Droid) image to eMMC ===
{| class="wikitable" style="background-color:# ffffdc;width:800px;" |-| <big>'''For Note that all the method of using the serial port to log in to the terminal, please refer to the instructions in the section following operations are performed on how to use the debugging serial port.'''# '''Use ssh to remotely log in to the Linux system, please refer to the instructions in the section of SSH remote login to the development boarda Windows computer.'''</big># '''If a display screen such as HDMI or LCD is connected, you can open a command line terminal on the desktop.'''|}
<!-- --><ol start="5" style="list-style-type: decimal;"><li>Next# The development board reserves an eMMC expansion interface. Before programming the system to eMMC, we you first use need to purchase an eMMC module that matches the eMMC interface of the following command development board. Then install the eMMC module to confirm the device node development board. The location of the eMMC</li></ol>interface is as follows:
orangepi@orangepi:~/Desktop$ '''ls /dev/mmcblk*boot0 | cut :[[File:plus5-img78-1.png]][[File:plus5-c1img78-12'''2.png]]
'''/dev/mmcblk1'''::[[File:plus5-img78-3.png]]
<ol start="62" style="list-style-type: decimal;"><li>Then we can use the dd command It is also necessary to clear the eMMC. Note that after the '''of=''' parameter, please fill in the output result of the above commandprepare a data cable with a good quality Type-C interface</li></ol>
orangepi@orangepi[[File:~plus5-img21.png]]</Desktop$ ol><ol start="3" style="list-style-type: decimal;"><li><p>Then download Rockchip driver DriverAssitant_v5.12.zip and burning tool '''sudo dd bs=1M if=RKDevTool_Release_v3.15.zip''' from [http://www.orangepi.org/html/devhardWare/zero of=computerAndMicrocontrollers/devservice-and-support/mmcblk1Orange-Pi-5-plus.html '''Orange Pi's download page''']</p></li><li><p>Then download the Orange Pi OS (Droid) image from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html ' ''Orange Pi'count=1000 status=progresss download page''']</p></li>
orangepi@orangepi[[File:~plus5-img167.png]]</Desktop$ ol><ol start="5" style="list-style-type: decimal;"><li><p>Then use decompression software to decompress the compressed file of the downloaded Orange Pi OS (Droid) image. Among the decompressed files, the file ending with &quot;'''sudo sync.img'''&quot; is the Orange Pi OS (Droid) image file, and the size is more than 1GB</p></li><li><p>Then use decompression software to decompress '''DriverAssitant_v5.12.zip''', then find the '''DriverInstall.exe''' executable file in the decompressed folder and open it</p></li>
[[File:plus5-img47.png]]
</ol>
<ol start="7" style="list-style-type: decimal;">
<li><p>Then you can use After opening '''DriverInstall.exe''', the dd command steps to burn install the linux image of the development board into the eMMCRockchip driver are as follows</p>
<ol style="list-style-type: lower-alpha;">
<li>Click the &quot;Driver Installation&quot; button<p/li>In the following command, the '''if=''' parameter is followed by the full path where the linux image is stored + the name of the Linux image (such as '''the name of /home/orangepi/Desktop/Linux image'''). Because we have entered the path of the linux image above, we only need to fill in the name of the Linux image [[File:plus5-img48.png]]</pol></liol start="2" style="list-style-type: lower-alpha;"><li><p>Please do not copy the linux image name in the following commandAfter waiting for a period of time, a pop-up window will prompt &quot;driver installed successfully&quot;, but replace it with the actual image name (because the version number of and then click the image may be updated)&quot;OK&quot; button.</p></li> [[File:plus5-img49.png]]</ol>
</li></ol>
<ol start="8" style="list-style-type: decimal;">
<li>Then decompress '''RKDevTool_Release_v3.15.zip''', this software does not need to be installed, just find '''RKDevTool''' in the decompressed folder and open it</li>
[[File:plus5-img50.png]]</ol><ol start="9" style="list-style-type: decimal;"><li>After opening the '''sudo dd bs=1M if=Orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img of=/dev/mmcblk1RKDevTool''' burning tool, because the computer is not connected to the development board through the Type-C cable at this time, the lower left corner will prompt &quot;'''status=progressNo device found'''&quot;</li>
'''sudo''' '''sync'''[[File:plus5-img51.png]]</ol><ol start="10" style="list-style-type: decimal;"><li><p>Then start burning Orange Pi OS (Droid) image into eMMC</p><ol style="list-style-type: lower-alpha;"><li>First, connect the development board to the Windows computer through the Type-C data cable. The position of the Type-C interface on the development board is shown in the figure below</li> <div class="figure">
'''Note, if you upload a''' '''[[File:plus5-img52.7z or .xz''' '''linux image compressed file, please remember to decompress it before using the dd command to burn.'''png]]
'''The detailed description of all parameters </div></ol><ol start="2" style="list-style-type: lower-alpha;"><li><p>Make sure that the development board is not inserted into the TF card and not connected to the power supply</p></li><li><p>Then press and hold the MaskROM button on the development board, the position of the dd command and more usage can be viewed by executing MaskROM button on the man dd command development board is shown in the linux system.'''figure below:</p></li>
[[File:plus5-img53.png]]</ol><ol start="84" style="list-style-type: decimallower-alpha;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li>After successfully burning Then connect the linux image power supply of the Type-C interface to the development board to the eMMC, you can use the '''poweroff''' command to shut down. Then please pull out the TF card, and then short press the power button to turn on, and then the linux system in the eMMC will be started.</li></ol>
[[File:plus5-img54.png]]</ol><span idol start="how5" style="list-tostyle-burntype: lower-linux-image-to-spiflashnvme-ssdalpha;"><li>If the previous steps are successful, the development board will enter the '''MASKROM''' mode at this time, and the interface of the burning tool will prompt &quot;'''found a MASKROM device'''&quot;</spanli>== How to burn Linux image to SPIFlash+NVMe SSD ==
[[File:plus5-img55.png]]</ol><ol start="6" style="list-style-type: lower-alpha;"><li>Then click the &quot;'''Note that the Linux image mentioned here specifically refers to the image of Linux distributions such as Debian, Ubuntu, OpenWRT or OPi OS Arch downloaded from theUpgrade Firmware''' Orange Pi data download page.&quot; column of the burning tool</li>
[[File:plus5-img157.png]]</ol><ol start="7" style="list-style-type: lower-alpha;"><li>Then click the &quot;'''Note that all the following operations are performed on a Windows computer.Firmware'''&quot; button to select the path of the Orange Pi OS (Droid) image that needs to be burned</li>
[[File:plus5-img158.png]]</ol><span idol start="section8" style="list-18style-type: lower-alpha;"><li>Finally, click the &quot;'''Upgrade'''&quot; button to start burning, and the log during the burning process is shown in the figure below. After burning, the Orange Pi OS (Droid) system will start automatically.</spanli>=== ===
<ol style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li></li><li></li><li><ol style="list-style-type[[File: lowerplus5-alpha;"><li></li><li></li></ol></li><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>img168.png]]<li></li></ol>
</li></ol>
<span id="burn-orange-pi-os-droid-image-to-emmc-via-tf-card"></span>
 
=== Burn Orange Pi OS (Droid) image to eMMC via TF card ===
<span id{| class="wikitable" style="thebackground-method-of-usingcolor:#ffffdc;width:800px;" |-| <big>'''Note that all the-dd-command-to-burn">following operations are performed on a Windows computer.'''</spanbig>=== The method of using the dd command to burn ===|}
# FirstThe development board reserves an eMMC expansion interface. Before programming the system to eMMC, you first need to prepare purchase an M-Key 2280 specification NVMe SSD solid state drive, and eMMC module that matches the specification eMMC interface of the PCIe interface in development board. Then install the eMMC module to the Mdevelopment board.2 slot The location of the development board eMMC interface is PCIe3.0x4.as follows:
::[[File:./images/media/image26plus5-img78.png|306x89px]]
<ol start="2" style="list-style-type: decimal;">
<li><p>You also need to prepare a TF card with 8GB or larger capacity. The transmission speed of the TF card must be class10 or above. It is recommended to use a TF card of SanDisk and other brands</p></li><li><p>Then use the card reader to insert the NVMe SSD TF card into the Mcomputer</p></li><li><p>Then download the SDDiskTool programming tool from the [http://www.2 PCIe interface orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page'''], '''<span style="color:#FF0000">please ensure that the version of the development board shown in SDDiskTool tool is the figure below, latest v1.72</span>.'''</p></li><li><p>Then download the Orange Pi OS (Droid) image from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and fix it-support/Orange-Pi-5-plus.html '''Orange Pi's download page''']</lip></olli>
[[File:plus5-img167.png]]</imagesol><ol start="6" style="list-style-type: decimal;"><li><p>Then use the decompression software to decompress the compressed package of the downloaded Orange Pi OS (Droid) image. Among the decompressed files, the file ending with &quot;.img&quot; is the Orange Pi OS (Droid) image file, and the size is more than 1GB</mediap></image126li><li><p>Then use decompression software to decompress '''SDDiskTool_v1.72.zip''', this software does not need to be installed, just find '''SD_Firmware_Tool.png|274x110px]]exe''' in the decompressed folder and open it</p></li>
[[File:plus5-img151.png]]</ol><ol start="38" style="list-style-type: decimal;"><li>The position of After opening '''SDDiskTool''', if the TF card is recognized normally, the inserted disk device will be displayed in the SPI Flash on &quot;'''Select Removable Disk Device'''&quot; column. '''<span style="color:#FF0000">Please make sure that the development board displayed disk device is shown in consistent with the drive letter of the figure belowTF card you want to burn</span>''', if there is no other settings are required before starting display, you can try to unplug the programmingTF card.</li></ol>
[[File:./images/media/image127plus5-img152.png|416x115px]]</ol><ol start="9" style="list-style-type: decimal;"><li>After confirming the drive letter, you can format the TF card first, click the restore disk button in '''SDDiskTool''', or use the '''SD Card Formatter''' mentioned above to format the TF card</li>
[[File:plus5-img153.png]]</ol><ol start="410" style="list-style-type: decimal;"><li><p>Burning the linux image to SPIFlash+NVMe SSD needs to be done with a TF card, so first you need to burn the linux image to the TF card, and then use the TF card to Then start the development board to enter the linux system. For the method of burning write the Linux Orange Pi OS (Droid) image to the TF card, please refer to the instructions in the two sections of '''the method of burning the Linux image to the TF card based on the Windows PC''' and t'''he method of burning the Linux image to the TF card based on the Ubuntu PC'''</p></li><li><p>After using into the TF card to start the Linux system, we first burn the u-boot image into the SPI Flash</p><ol style="list-style-type: lower-alpha;"><li>Run '''nand-sata-install''' first, '''ordinary users remember to add sudo permission.'''</li></ol></li></ol>
orangepi@orangepi:~$ a. First confirm that the displayed drive letter is the drive letter corresponding to the TF card under &quot;'''sudo nand-sata-installSelect Removable Disk Device'''&quot;
<ol start="2" style="list-style-type: lower-alpha;"><li>b. Then select &quot;'''Firmware Upgrade'7 Install/Update ther bootloader on SPI Flash''&quot; in &quot;'</li></ol>''Select Function Mode'''&quot;
<div class="figure">c. Then select the path of the Orange Pi OS (Droid) firmware in the &quot;'''Select Upgrade Firmware'''&quot; column
[[File:d./images/media/image146.png|355x174px|IMG_256]]Finally click the &quot;'''Start Create'''&quot; button to start burning
[[File:plus5-img160.png]]</divol><ol start="311" style="list-style-type: lower-alphadecimal;"><li>Then select '''&lt;Yes&gt;'''After the burning is completed, the display is as shown in the figure below, and then you can exit SDDiskTool</li></ol>
[[File:plus5-img161.png]]<div class/ol><ol start="12" style="figurelist-style-type: decimal;"><li><p>Then pull out the TF card from the computer and insert it into the development board. After the development board is powered on, it will automatically start burning the Orange Pi OS (Droid) image in the TF card to the eMMC of the development board.</p></li><li><p>If the development board is connected to an HDMI display, you can also see the progress bar of burning the Orange Pi OS (Droid) image to eMMC from the HDMI display</p></li>
[[File:./images/media/image147plus5-img162.png|356x179px|IMG_256]]</ol><ol start="14" style="list-style-type: decimal;"><li>When the HDMI monitor displays the following information, it means that the burning of the Orange Pi OS (Droid) image to the eMMC has been completed. At this time, the TF card can be pulled out, and then the Orange Pi OS (Droid) system in the eMMC will start to start .</li>
[[File:plus5-img163.png]]</divol><ol startspan id="4" style="listburn-orange-pi-os-droid-image-styleto-type: lowerspiflashnvme-alpha;ssd"><li>Then please wait patiently for the burning to complete. After the burning is completed, the display will be as follows (a '''Done''' will be displayed in the lower left corner):</li></olspan>
[[File:./images/media/image148.png|406x199px]]== Burn Orange Pi OS (Droid) image to SPIFlash+NVMe SSD ==
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''There is no nand-sata-install script in OPi OS Arch system, please use Note that all the following command to mirror u-boot to SPI Flash:operations are performed on a Windows computer.'''</big>|}
# First, you need to prepare a 2280 specification NVMe SSD solid state drive. The specification of the PCIe interface in the M.2 slot of the development board is PCIe3.0x4. ::[orangepi@orangepi ~[File:plus5-img25.png]]$ '''sudo dd if=/boot/rkspi_loader.img of=/dev/mtdblock0'''
<ol start="62" style="list-style-type: decimal;"><li>Then upload insert the linux image file (Debian, Ubuntu or OpenWRT image downloaded from NVMe SSD into the official website) to the TF cardM. For the method 2 PCIe interface of '''uploading the linux image file to the development board,''' please refer to the description in the section of the method of uploading files to the development board Linux system.and fix it</li></ol>
'''Note, if you download [[File:plus5-img90.png]]</ol><ol start="3" style="list-style-type: decimal;"><li>The position of the OpenWRT image, you will see SPI Flash on the following two types of images development board is shown in the download link of the OpenWRT imagefigure below, please download the image file in no other settings are required before starting the''' '''&quot;TF card, eMMC and NVME SSD boot image&quot;''' '''folder.'''programming</li>
[[File:plus5-img91.png]]<div class/ol><ol start="4" style="figurelist-style-type: decimal;"><li>It is also necessary to prepare a data cable with a good quality Type-C interface</li>
[[File:plus5-img21.png]]</ol><ol start="5" style="list-style-type: decimal;"><li><p>Then download the Rockchip driver '''DriverAssitant_v5.12.zip''' and the burning tool '''RKDevTool_Release_v3.15.zip''' from the [http://www.orangepi.org/html/hardWare/imagescomputerAndMicrocontrollers/mediaservice-and-support/image102Orange-Pi-5-plus.png|284x90px|e6986fc9c8fc078e8cb6a9c39b76fb8]html '''Orange Pi's download page'''],</p></li><li><p>Then download the Orange Pi OS (Droid) image, open the download link of the Orange Pi OS (Droid) image and you can see the following two types of images, please select the image with '''spi-nvme''' to download</p></li>
[[File:plus5-img169.png]]</divol>
<ol start="7" style="list-style-type: decimal;">
<li>After uploading Then use the image decompression software to the linux system of the development board, we enter the storage path of the image file in the command line of the linux system of the development board. For example, I store the linux image of the development board in the decompress '''/home/orangepi/DesktopDriverAssitant_v5.12.zip''' directory Download it, and then enter find the '''/home/orangepi/DesktopDriverInstall.exe''' directory to see executable file in the uploaded image file.decompressed folder and open it</li></ol>
orangepi@orangepi[[File:~$ plus5-img47.png]]</ol><ol start="8" style="list-style-type: decimal;"><li><p>After opening '''cd /home/orangepi/DesktopDriverInstall.exe''', the steps to install the Rockchip driver are as follows</p><ol style="list-style-type: lower-alpha;"><li>Click the &quot;Driver Installation&quot; button</li>
orangepi@orangepi[[File:~plus5-img48.png]]</Desktop$ ol><ol start="2" style="list-style-type: lower-alpha;"><li>After waiting for a period of time, a pop-up window will prompt &quot;'''driver installed successfully'''&quot;, and then click the &quot;'''lsOK'''&quot; button.</li>
orangepi5plus_x[[File:plus5-img49.xpng]]</ol></li></ol><ol start="9" style="list-style-type: decimal;"><li>Then decompress '''RKDevTool_Release_v3.x_debian_bullseye_desktop_xfce_linux515.10.110.imgzip''', this software does not need to be installed, just find '''RKDevTool''' in the decompressed folder and open it</li>
[[File:plus5-img50.png]]</ol><ol start="10" style="list-style-type: decimal;"><li>After opening the '''RKDevTool'''How burning tool, because the computer is not connected to enter the command line of the development board linux system?through the Type-C cable at this time, the lower left corner will prompt &quot;'''No device found'''&quot;</li>
[[File:plus5-img51.png]]</ol><ol start="411" style="list-style-type: decimal;"><li><p>'''For the method of using the serial port to log in to Then start burning the terminal, please refer Android image to the instructions in the section on how to use the debugging serial port.'''SPIFlash+NVMe SSD</p></liol style="list-style-type: lower-alpha;"><li><p>'''Use ssh to remotely log in to First, connect the Linux system, please refer development board to the instructions in Windows computer through the section Type-C data cable. The position of SSH remote login to the Type-C interface on the development board.'''</p></li><li><p>'''If HDMI, LCD and other display screens are connected, you can open a command line terminal on is shown in the desktop.'''</p>figure below</li></ol>
<!-- --><ol startdiv class="8figure" style="list-style-type: decimal;"><li>Next, let's confirm that the NVMe SSD has been recognized by the development board's linux. If the NVMe SSD is recognized normally, use the '''sudo fdisk -l''' command to see nvme-related information</li></ol>
orangepi@orangepi[[File:~/Desktop$ '''sudo fdisk plus5-l | grep &quot;nvme0n1&quot;'''img52.png]]
Disk </devdiv></nvme0n1ol><ol start="2" style="list-style-type: 1.86 TiBlower-alpha;"><li><p>Make sure that the development board is not plugged into the TF and eMMC modules, 2048408248320 bytesand is not connected to the power supply</p></li><li><p>Then press and hold the MaskROM button on the development board, 4000797360 sectorsthe position of the MaskROM button on the development board is shown in the figure below:</p></li>
Use [[File:plus5-img53.png]]</ol><ol start="4" style="list-style-type: lower-alpha;"><li>Then connect the lspci command power supply of the Type-C interface to see an NVMe-related PCI devicethe development board, and power on, and then release the MaskROM button</li>
orangepi@orangepi[[File:~$ plus5-img54.png]]</ol><ol start="5" style="list-style-type: lower-alpha;"><li>If the previous steps are successful, the development board will enter the '''MASKROM''' mode at this time, and the interface of the burning tool will prompt &quot;'''lspcifound a MASKROM device'''&quot;</li>
0000[[File:00:00plus5-img55.0 PCI bridgepng]]</ol><ol start="6" style="list-style-type: Rockchip Electronics Co., Ltd Device 3588 (rev 01)lower-alpha;"><li>Then click the &quot;'''Upgrade Firmware'''&quot; column of the burning tool</li>
0000[[File:01:00plus5-img157.0 Nonpng]]</ol><ol start="7" style="list-style-Volatile memory controllertype: SK hynix BC501 lower-alpha;"><li>Then click the &quot;'''NVMeFirmware''' Solid State Drive&quot; button to select the Orange Pi OS (Droid) image to be burned</li>
[[File:plus5-img158.png]]</ol><ol start="8" style="list-style-type: lower-alpha;"><li><p>Finally, click the &quot;'''Upgrade'''&quot; button to start burning. The burning process is shown in the figure below. After the burning is completed, the Orange Pi OS (Droid) system will automatically start.</p><p>[[File:plus5-img170.png]]</p></li></ol></li></ol><span id="how-to-use-rkdevtool-to-clear-spiflash"></span>
<ol start="48" style="list-style-type: decimal;"><li>Then we can How to use the dd command RKDevTool to clear the NVMe SSD (optional)</li></ol>SPIFlash ==
orangepi@orangepi5plus:~/Desktop$ '''sudo dd bs=1M if=/dev/zero of=/dev/nvme0n1 count=2000 status=progress''' orangepi@orangepi5plus:~/Desktop$ '''sudo sync''' <ol start="49" style="list-style-type: decimal;"><li><p>Then you can use the dd command to burn the linux image The position of SPI Flash on the development board is shown in the figure below</p><p>[[File:plus5-img91.png]]</p></li><li><p>First, you need to prepare a data cable with a good quality Type-C interface</p><p>[[File:plus5-img21.png]]</p></li><li><p>Then download the NVMe SSDRockchip driver '''DriverAssitant_v5.12.zip''' and '''MiniLoader''' and the burning tool '''RKDevTool_Release_v3.15.zip''' from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''Orange Pi's download page''']</p>
<ol style="list-style-type: lower-alpha;">
<li><p>In On the following commandOrange Pi's download page, first select the '''if=official tool''' parameter is followed by , and then enter the full path where the linux image is stored + the name of the Linux image (such as '''the name of following folder</home/orangepi/Desktop/Linux image'''). Because we have entered the path of the linux image above, we only need to fill in the name of the Linux imagep><p>[[File:plus5-img171.png]]</p></li><li><p>Please do not copy Then download all the linux image name in files below</p><p>[[File:plus5-img172.png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''Note that the following command, but replace it with &quot;MiniLoader-things needed to burn the actual Linux image name (because &quot; folder is hereinafter referred to as the version number of the image may be updated)MiniLoader folder.'''</p></li></olbig>|}
</li></ol>
</li>
<li><p>Then use the decompression software to decompress '''DriverAssitant_v5.12.zip''', and then find the '''DriverInstall.exe''' executable file in the decompressed folder and open it</p>
<p>[[File:plus5-img47.png]]</p></li>
<li><p>After opening '''DriverInstall.exe''', the steps to install the Rockchip driver are as follows</p>
<ol style="list-style-type: lower-alpha;">
<li><p>Click the &quot;'''Driver Installation'''&quot; button</p>
<p>[[File:plus5-img48.png]]</p></li>
<li><p>After waiting for a period of time, a pop-up window will prompt &quot;'''The driver is installed successfully'''&quot;, and then click the &quot;'''OK'''&quot; button.</p>
<p>[[File:plus5-img49.png]]</p></li></ol>
</li>
<li><p>Then decompress '''RKDevTool_Release_v3.15.zip''', this software does not need to be installed, just find '''RKDevTool''' in the decompressed folder and open it</p>
<p>[[File:plus5-img50.png]]</p></li>
<li><p>After opening the '''RKDevTool''' burning tool, because the computer has not been connected to the development board through the Type-C cable at this time, the lower left corner will prompt &quot;'''No device found'''&quot;</p>
<p>[[File:plus5-img51.png]]</p></li>
<li><p>Then you can start to clear the contents of the SPI FLASH</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First, connect the development board to the Windows computer through the Type-C data cable. The position of the Type-C interface on the development board is shown in the figure below</p>
<div class="figure">
'''sudo dd bs=1M if=orangepi5plus_x[[File:plus5-img173.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img of=/dev/nvme0n1 status=progress'''png]]
</div></li><li><p>Make sure the development board is not connected to the power supply</p></li><li><p>Then press and hold the MaskROM button on the development board, the position of the MaskROM button on the development board is shown in the figure below:</p><p>[[File:plus5-img53.png]]</p></li><li><p>Then connect the power supply of the Type-C interface to the development board, and power on, and then release the MaskROM button</p><p>[[File:plus5-img54.png]]</p></li><li><p>If the previous steps are smooth, at this time the development board will enter the '''sudoMaskrom''' mode, and it will be prompted &quot;'''syncFind a Maskrom device'''&quot; on the interface of the recording tool</p><p>[[File:plus5-img55.png]]</p></li><li><p>Then please select '''advanced features'''</p><p>[[File:plus5-img174.png]]</p></li><li><p>Then click the position shown in the figure below</p><p>[[File:plus5-img175.png]]</p></li><li><p>Then select '''MiniLoaderAll.bin''' in the '''MiniLoader''' folder downloaded earlier, and then click Open</p><p>[[File:plus5-img144.png]]</p></li><li><p>Then click '''download'''</p><p>[[File:plus5-img176.png]]</p></li><li><p>The display after downloading '''MiniLoaderAll.bin''' is shown in the figure below</p><p>[[File:plus5-img177.png]]</p></li><li><p>Then select the storage device as '''SPINOR'''</p><p>[[File:plus5-img178.png]]</p></li><li><p>Then click '''switch storage'''</p><p>[[File:plus5-img179.png]]</p></li><li><p>Then click '''Erase All''' to start erasing SPIFlash</p><p>[[File:plus5-img180.png]]</p></li><li><p>The display log after erasing SPIFlash is shown in the figure below</p><p>[[File:plus5-img181.png]]</p></li></ol></li></ol>
'''Note, if you upload a''' '''.7z or .xz or .gz''' '''linux image compressed file, please remember to decompress it before using <span id="start-the dd command to burn.'''-orange-pi-development-board"></span>
'''The detailed description of all parameters of == Start the dd command and more usage can be viewed by executing the man dd command in the linux system.'''Orange Pi development board ==
<ol start="50" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li>After successfully burning # Insert the burned TF card or eMMC module into the linux image TF card slot of the Orange Pi development board . If the image of SPIFlash+NVMe SSD has been burnt, then there is no need to insert a TF card or eMMC module, just make sure that the NVMe SSDis normally inserted into the development board.# The development board has an HDMI interface, and the development board can be connected to a TV or HDMI display through an HDMI-to-HDMI cable. If you buy an LCD screen, you can also use the poweroff command LCD screen to shut down. Then please pull out display the TF card, and then short press system interface of the power button development board. If there is a Type-C to turn onHDMI cable, then the linux system in SPIFlash+NVMe SSD will interface of the development board can also be displayed through the Type-C interface.# Connect a USB mouse and keyboard to control the Orange Pi development board.# The development board has an Ethernet port, which can be startedplugged into a network cable for Internet access.<# Connect a '''high-quality''' power adapter with a 5V/li></ol>4A USB Type-C interface.
<span id::{| class="wikitable" style="howbackground-tocolor:#ffffdc;width:800px;" |-use-balenaetcher-software-to-program| <big style="color:#FF0000"></span>=== How to use balenaEtcher software '''Remember not to program ===plug in a power adapter with a voltage output greater than 5V, as this will burn out the development board.'''
'''Please do not use this method for OPi OS Arch system Many unstable phenomena during the power-on and OpenWRT start-up process of the systemare basically caused by power supply problems, so a reliable power adapter is very important.If you find that there is a phenomenon of continuous restart during the startup process, please replace the power'''
# First, you need to prepare an M'''supply or the Type-Key 2280 specification NVMe SSD solid state drive, C data cable and the specification of the PCIe interface in the M.2 slot of the development board is PCIe3.0x4try again.'''
[[File:'''The Type-C power port does not support PD negotiation./images/media/image26.png|375x108px]]'''
<ol start="2" style="list-style-type: decimal;"><li>Then insert the NVMe SSD into '''In addition, please do not connect the M.2 PCIe USB interface of the computer to power the development board shown in the figure below, and fix it.'''</li></olbig>|}
[[File::{| class="wikitable" style="background-color:#ffffdc;width:800px;"|-|<big>'''There are two Type-C ports that look the same on the development board. The one next to the network port is the power port, and the other Type-C port has no power supply function.Please don’t connect it wrong.'''</images/media/image126.png|349x140px]]big>
<ol startdiv class="3figure" style="list-style-type: decimal;"><li>The position of the SPI Flash on the development board is shown in the figure below, no other settings are required before starting the programming</li></ol>
[[File:./images/media/image127plus5-img182.png|395x109pxcenter]]
</div>|}<ol start="46" style="list-style-type: decimal;"><li><p>Burning Then turn on the linux image to SPIFlash+NVMe SSD needs to be done with a TF card, so first you need to burn switch of the linux image to the TF card, and then use the TF card to start the development board to enter the linux systempower adapter. For the method of burning the Linux image to the TF cardIf everything is normal, please refer to you can see the instructions in the two sections startup screen of '''the method of burning the Linux image to the TF card based on the Windows PC''' and '''the method of burning the Linux image to the TF card based system on the Ubuntu PCHDMI monitor or LCD screen.'''</p></li><li><p>After booting into If you want to view the output information of the linux system in through the TF carddebugging serial port, please confirm that use the NVMe SSD has been recognized by the linux system of serial cable to connect the development boardto the computer. If For the connection method of the NVMe SSD is recognized normallyserial port, please refer to the section on [[Orange Pi 5 Plus#How to use the debugging serial port|'''sudo fdisk -lhow to use the debugging serial port'''command to see nvme-related information]].</p></li></ol>
orangepi@orangepi:~<span id="how-to-use-the-debugging-serial-port"></Desktop$ '''sudo fdisk -l | grep &quot;nvme0n1&quot;'''span>
Disk /dev/nvme0n1: 1.86 TiB, 2048408248320 bytes, 4000797360 sectors== How to use the debugging serial port ==
Use the lspci command to see an NVMe<span id="connection-related PCI deviceinstruction-of-debugging-serial-port"></span>=== Connection instruction of debugging serial port ===
orangepi@orangepi:~$ # First, you need to prepare a '''lspci3.3V'''USB to TTL module, and then insert the USB interface end of the USB to TTL module into the USB interface of the computer.
0000:00:00.0 PCI bridge{| class="wikitable" style="background-color:#ffffdc;width: Rockchip Electronics Co800px;" |-| <big>'''For better compatibility, it is recommended to use CH340 USB to TTL module, please do not use CP2102, PL2303 type USB to TTL module., Ltd Device 3588 (rev 01)'''
0000:01:00.0 Non-Volatile memory controller: SK hynix BC501 '''NVMe''' Solid State Drive
.… <ol start="6" style="list-style-type: decimal;"><li>The balenaEtcher has been pre-installed in the linux image'''Before purchasing a USB to TTL module, and please confirm that the opening method is as follows:module supports a baud rate of 1500000.'''</li></olbig>|}
<div class="figure">
::[[File:./images/media/image149plus5-img183.png|506x249px|IMG_256]]
</div>
'''If it is not pre<ol start="2" style="list-style-installedtype: decimal;"><li><p>The corresponding relationship between GND, for how to download RXD and install TXD pins of the arm64 version debugging serial port of balenaEtcher, please refer to the instructions development board is shown in the section on h'''ow figure below:</p><p>[[File:plus5-img184.png]]</p></li><li><p>The GND, TXD and RXD pins of the USB to TTL module need to be connected to download and install the arm64 version debugging serial port of balenaEtcher.the development board through a DuPont line</p><ol start="7" style="list-style-type: decimallower-alpha;"><li><p>The interface after opening balenaEtcher GND of the USB to TTL module is as followsconnected to the GND of the development board</p></li><li><p>The '''<span style="color:#FF0000">RX</span>''' of the USB to TTL module is '''<span style="color:#FF0000">connected to the TX of the development board</span>'''</p></li><li><p>The '''<span style="color:#FF0000">TX</span>''' of the USB to TTL module is '''<span style="color:#FF0000">connected to the RX of the development board</span>'''</p></li></ol></li><li><p>The schematic diagram of connecting the USB to TTL module to the computer and the Orange Pi development board is as follows</p>
<div class="figure">
[[File:./images/media/image150plus5-img185.png|406x207px|IMG_256]]
</div>
<ol start{| class="8wikitable" style="listbackground-style-typecolor:#ffffdc;width: decimal800px;">|-| <libig><p>'''The method TX and RX of using balenaEtcher the serial port need to burn ube cross-boot connected. If you don’t want to carefully distinguish the order of TX and RX, you can connect the SPI Flash TX and RX of the development board serial port casually. If there is as follows:</p><ol style="list-style-type: lower-alpha;"><li>First click'''Flash from fileno output in the test, then exchange the order of TX and RX, so that there is always a This order is correct.'''</lip></olbig>|}
</li></ol>
<div classspan id="figurehow-to-use-the-debugging-serial-port-on-the-ubuntu-platform"></span>
[[File:./images/media/image151.png|406x205px|IMG_256]]=== How to use the debugging serial port on the Ubuntu platform ===
</div><ol start{| class="2wikitable" style="listbackground-style-typecolor:#ffffdc;width: lower-alpha800px;">|-| <libig>Then enter the '''/usr/lib/linux-u-boot-legacy-orangepi5plus_1.x.x_arm64''' directoryThere are many serial port debugging software that can be used under Linux, such as putty, select '''rkspi_loader.img'''minicom, and click '''Open'''to open</li></ol> [[File:./images/media/image152etc.png|575x162px]] <ol start="3" style="list-style-type: lower-alpha;"><li>The interface after opening '''rkspi_loaderfollowing demonstrates how to use putty.img''' is as follows:</li></olbig[[File:./images/media/image153.png|379x181px]] <ol start="4" style="list-style-type: lower-alpha;"><li>Then click '''Select target'''</li></ol>}
<ol style="list-style-type: decimal;">
<li><p>First, insert the USB-to-TTL module into the USB port of the Ubuntu computer. If the connection and recognition of the USB-to-TTL module is normal, you can see the corresponding device node name under '''/dev''' on the Ubuntu PC. Remember this node name, and then set the serial port software will be used.</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>test@test:~$ '''ls /dev/ttyUSB*'''</p>
<p>/dev/ttyUSB0</p>
|}
</li>
<li><p>Then use the following command to install putty on Ubuntu PC</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>test@test:~$ '''sudo apt-get update'''</p>
<p>test@test:~$ '''sudo apt-get install -y putty'''</p>
|}
</li>
<li><p>Then run putty, '''<span style="color:#FF0000">remember to add sudo permission</span>'''</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>test@test:~$ '''sudo putty'''</p>
|}
</li>
<li><p>After executing the putty command, the following interface will pop up</p>
<p>[[File:plus5-img186.png]]</p></li>
<li><p>First select the setting interface of the serial port</p>
<p>[[File:plus5-img187.png]]</p></li>
<li><p>Then set the parameters of the serial port</p>
<ol style="list-style-type: lower-alpha;">
<li><p>Set the Serial line to connect to as /dev/ttyUSB0 (modify to the corresponding node name, generally /dev/ttyUSB0)</p></li>
<li><p>Set Speed(baud) to '''1500000''' (the baud rate of the serial port)</p></li>
<li><p>Set Flow control to None</p>
<div class="figure">
[[File:./images/media/image154plus5-img188.png|379x171px|IMG_256]]
</div></li></ol></li><li><p>After setting the serial port setting interface, return to the Session interface</p><ol start="5" style="list-style-type: lower-alpha;"><li><p>First select the Connection type as Serial</p></li><li><p>Then click '''Show 2 hidden''' the Open button to open more options for storage devicesconnect to the serial port</lip></oldiv class="figure">
<div class="figure">[[File:plus5-img189.png]]
</div></li></ol></li><li><p>After starting the development board, you can see the Log information output by the system from the opened serial port terminal</p><p>[[File:plus5-img190.png]]</imagesp></mediali></image155.png|385x155px|IMG_256]]ol>
</div><ol startspan id="6" style="listhow-to-use-the-debugging-serial-port-styleon-type: lowerwindows-alpha;platform"><li>Then select the device name of SPI Flash '''/dev/mtdblock0''', and click '''Select'''</li></olspan>
<div class="figure">== How to use the debugging serial port on Windows platform ===
[[File{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''There are many serial port debugging software that can be used under Windows, such as SecureCRT, MobaXterm, etc. The following demonstrates how to use MobaXterm. This software has a free version and can be used without buying a serial number.'''</images/media/image156.png|389x264pxbig>|IMG_256]]}
<ol style="list-style-type: decimal;"><li><p>Download MobaXterm</divp><ol startstyle="list-style-type: lower-alpha;"><li><p>Download MobaXterm website as follows</p>{| class="7wikitable" style=" width:800px;" |-|'''https://mobaxterm.mobatek.net'''|}</li><li><p>After entering the MobaXterm download page, click '''GET XOBATERM NOW!'''</p><p>[[File:plus5-img191.png]]</p></li><li><p>Then choose to download the Home version</p><p>[[File:plus5-img192.png]]</p></li><li><p>Then select Portable portable version, no need to install after downloading, just open it and use it</p><p>[[File:plus5-img193.png]]</p></li></ol></li><li><p>After downloading, use decompression software to decompress the downloaded compressed package, you can get the executable software of MobaXterm, and then double-click to open</p><p>[[File:plus5-img194.png]]</p></li><li><p>After opening the software, the steps to set up the serial port connection are as follows</p><ol style="list-style-type: lower-alpha;"><li>Then <p>Open the session settings interface</p></li><li><p>Select the serial port type</p></li><li><p>Select the port number of the serial port (select the corresponding port number according to the actual situation), if you cannot see the port number, please use '''360 Driver Master''' to scan and install the driver for the USB to TTL serial port chip</p></li><li><p>Select the baud rate of the serial port as '''1500000'''</p></li><li><p>Finally clickthe &quot;'''FlashOK'''&quot; button to complete the settings</p></li></li></ol>
<div class="figure">
[[File:./images/media/image157plus5-img195.png|394x268px|IMG_256]] </div><ol start="8" style="list-style-type: lower-alpha;"><li>Then click'''Yes, I’m sure'''</li></ol>
</div></ol>
<ol start="4" style="list-style-type: decimal;">
<li><p>After clicking the &quot;'''OK'''&quot; button, you will enter the following interface. At this time, start the development board and you can see the output information of the serial port</p>
<div class="figure">
[[File:./images/media/image158plus5-img196.png|396x269px|IMG_256]]
</div><ol style="list-style-type: lower-roman;"><li>Then enter the password orangepi of the development board linux system, and it will start burning the u-boot image into the SPI Flash</li></ol>
<div classspan id="figureubuntudebian-server-and-xfce-desktop-system-instructions"></span>
[[File:./images/media/image159.png|393x269px|IMG_256]]== Instructions for using the 5v pin in the 40pin interface of the development board to supply power ==
</div><ol start{| class="10wikitable" style="listbackground-style-typecolor:#ffffdc;width: lower-alpha800px;">|-| <libig>'''The display power supply method we recommend for the development board is to use the 5V/4A or 5V/5A Type-C interface power cord to plug into the Type-C power interface of the development board for power supply. If you need to use the 5V pin in the 40pin interface to power the development board, please make sure that the power cable and power adapter used can meet the power supply requirements of the burning process development board. If the use is as follows:unstable, please switch back to the Type-C power supply.'''</li></olbig>|}
<div ol style="list-style-type: decimal;"><li><p>First, you need to prepare a power cord as shown in the figure below</p><p>[[File:5plus-1.png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''The power cord shown in the picture above can be bought on Taobao, please search and buy by yourself.'''</big>|}</li><li><p>Use the 5V pin in the 40pin interface to supply power to the development board. The connection method of the power line is as follows</p><ol style="list-style-type: lower-alpha;"><li><p>The USB A port of the power cord shown in the above picture needs to be plugged into the 5V/4A or 5V/5A power adapter connector '''(please do not plug into the USB port of the computer for power supply, nor can the general mobile phone charging head, because the development board Without the PD function, the general mobile phone charging head can only output the lowest 5V/2A)'''</p></li><li><p>The red DuPont line needs to be plugged into the 5V pin of the development board 40pin</p></li><li><p>The black DuPont line needs to be inserted into the GND pin of the 40pin interface</p></li><li><p>The positions of the 5V pin and the GND pin of the 40pin interface in the development board are shown in the figure"below, '''remember not to reverse the connection'''</p><p>[[File:5plus-2.png]]</p></li></ol></li></ol>
[[File:.= '''Ubuntu/images/media/image160.png|397x272px|IMG_256]]Debian Server and Xfce desktop system instructions''' =
</div><ol start{| class="11wikitable" style="listbackground-style-typecolor:#ffffdc;width: lower-alpha800px;">|-| <libig>After the burning '''The content of this chapter is completed, written based on the display is as follows:<Ubuntu/li></ol>Debian server version image and the xfce desktop version image.'''
<div class="figure">'''If you are using the Ubuntu22.04 Gnome image, please first check the instructions in the chapter [[Orange Pi 5 Plus#Ubuntu22.04 Gnome Wayland Desktop system instructions|'''Ubuntu22.04 Gnome Wayland Desktop System Instructions''']].'''
'''You can refer to the instructions in this chapter for the content that does not exist in the chapter of [[File:Orange Pi 5 Plus#Ubuntu22./images/media/image16104 Gnome Wayland Desktop system instructions|'''Ubuntu22.png|395x225px|IMG_25604 Gnome Wayland Desktop System User Manual''']], but some details may be different, please pay special attention to this point.'''
</div><ol start="9" style="list-style-type: decimal;"><li><p>The method of burning the linux system in the TF card to '''If you are using the NVMe SSD (this method is equivalent OPi OS Arch image, please refer to cloning the chapter [[Orange Pi 5 Plus#Orange Pi OS Arch system in the TF card to the NVMe SSD)</p><ol style="list-style-type: lower-alpha;"><li>First click use instructions|'''Orange Pi OS Arch System Instructions'''Clone drive]].'''</li></olbig></li></ol>|}
<div classspan id="figuresupported-ubuntudebian-image-types-and-kernel-versions"></span>== Supported Ubuntu/Debian image types and kernel versions ==
[[File{| class="wikitable" style="width:800px;" |-| style="text-align: left;"| '''Linux image type'''| style="text-align: left;"| '''kernel version'''| style="text-align:left;"| '''server version'''| style="text-align: left;"| '''desktop version'''|-| style="text-align: left;"| '''Debian 11 - Bullseye'''| style="text-align: left;"| '''Linux5./images/media/image16210'''| style="text-align: left;"| '''support'''| style="text-align: left;"| '''support'''|-| style="text-align: left;"| '''Debian 12 - Bookworm'''| style="text-align: left;"| '''Linux5.png10'''| style="text-align: left;"| '''plan support'''| style="text-align: left;"| '''plan support'''|-| style="text-align: left;"| '''Ubuntu 20.04 - Focal'''| style="text-align: left;"| '''Linux5.10'''| style="text-align: left;"| '''support'''| style="text-align: left;"| '''support'''|-| style="text-align: left;"| '''Ubuntu 22.04 - Jammy'''| style="text-align: left;"| '''Linux5.10'''| style="text-align: left;"| '''support'''| style="text-align: left;"|386x204px'''support'''|IMG_256]]}
</div><ol startspan id="2" style="listlinux-stylesystem-type: lower-alpha;adaptation"><li>Then select the device name of the TF card '''/dev/mmcblk1'''</li></olspan>== Linux system adaptation ==
<div {| class="figurewikitable" style="width:800px;">|-[[File:./images/media/image163.png|386x261px|IMG_256]] </div><ol startstyle="3text-align: left;" | '''Function'''| style="listtext-style-typealign: lower-alphaleft;"><li>The interface after opening the TF card is as follows:</li></ol> <div class="figure">| '''Linux5.10 driver''' [[File:./images/media/image164.png|381x191px|IMG_256]] </div><ol start="4" style="listtext-style-typealign: lower-alphaleft;"><li>Then click | '''Select targetDebian11'''</li></ol> <div class| style="figuretext-align: left;">| '''Ubuntu20.04''' [[File:./images/media/image154.png|379x171px|IMG_256]] </div><ol start="5" style="list-styletext-typealign: lower-alphaleft;"><li>Then click | '''Show 2 hiddenUbuntu22.04''' Option to open more storage devices</li></ol>|-<div class| style="figure"> [[Filetext-align:./images/media/image155.pngleft;"|385x155px'''HDMI TX1 Video'''|IMG_256]] </div><ol start="6" style="listtext-style-typealign: lower-alphaleft;"><li>Then select the device name of the NVMe SSD | '''/dev/nvme0n1OK''', and click | style="text-align: left;"| '''SelectOK'''</li></ol> [[File:./images/media/image165.png|386x264px]] <ol startstyle="7text-align: left;" | '''OK'''| style="list-styletext-typealign: lower-alphaleft;"><li>Then click | '''FlashOK'''</li></ol>|-<div class| style="figuretext-align: left;">| '''HDMI TX1 Audio''' [[File:./images/media/image166.png|389x264px|IMG_256]] </div><ol start="8" style="listtext-style-typealign: lower-alphaleft;"><li>Then click | '''Yes, I’m sureOK'''</li></ol> <div class| style="figuretext-align: left;"> [[File:./images/media/image167.png|392x268px'''OK'''|IMG_256]] </div><ol style="listtext-style-typealign: lower-romanleft;">| '''OK'''<li>Then enter the password orangepi of the linux system on the development board, and it will start burning the linux image to the SSD</li></ol> <div class| style="figuretext-align: left;"> [[File:./images/media/image168.png|390x267px'''OK'''|IMG_256]]- </div><ol start| style="10text-align: left;" | '''HDMI TX2 Video'''| style="listtext-style-typealign: lower-alphaleft;"><li>The display of the burning process is as follows:</li></ol> [[File:./images/media/image169.png|393x212px]]'''OK''' <div class| style="figuretext-align: left;">| '''OK''' [[File:./images/media/image170.png|395x205px|IMG_256]] </div><ol start="11" style="listtext-style-typealign: lower-alphaleft;"><li>After the burning is completed, the display is as follows:</li></ol>| '''OK''' [[File:./images/media/image171.png|398x227px]] <ol start="12" style="listtext-style-typealign: lower-alphaleft;">| '''OK'''<li><p>Then you need to expand the capacity of the rootfs partition in the NVMe SSD. The steps are as follows:</p>|-<ol | style="listtext-style-type: lower-alphaalign: left;"><li>open first | '''GPartedHDMI TX2 Audio'''</li></ol></li></ol> <div class="figure"> [[File:./images/media/image172.png|590x317px|IMG_256]] </div><ol start="2" style="listtext-style-typealign: lower-alphaleft;"><li>Then enter the password orangepi of the linux system, and then click | '''AuthenticateOK'''</li></ol> [[File:./images/media/image173.png|356x173px]] <ol startstyle="3text-align: left;" | '''OK'''| style="listtext-style-typealign: lower-alphaleft;"><li>Then click | '''FixOK'''</li></ol> [[File:./images/media/image174.png|375x276px]] <ol start="4" style="listtext-style-typealign: lower-alphaleft;">| '''OK'''<li>Then select NVMe SSD</li></ol>|- <div class| style="figuretext-align: left;">| '''HDMI RX Video'''[[File:./images/media/image175.png|452x187px|IMG_256]] </div><ol start="5" style="list-styletext-typealign: lower-alphaleft;"><li>The display interface after selecting NVMe SSD is as follows:</li></ol> <div class="figure">| '''OK''' [[File:./images/media/image176.png|451x187px|IMG_256]] </div><ol start="6" style="listtext-style-typealign: lower-alphaleft;"><li>Then select the | '''/dev/nvme0n1p2OK''' partition, then right| style="text-click, and then select align: left;"| '''Resize/MoveOK'''</li></ol> <div class| style="figuretext-align: left;">| '''OK'''|-[[File:./images/media/image177.png|448x345px|IMG_256]] </div><ol start="7" style="listtext-style-typealign: lower-alphaleft;">| '''HDMI RX Audio'''<li>Then drag the capacity to the maximum at the position shown in the figure below</li></ol> [[File:./images/media/image178.png|339x210px]] <ol start="8" style="listtext-style-typealign: lower-alphaleft;"><li>and click | '''Resize/MoveOK'''</li></ol> [[File:./images/media/image179.png|339x212px]] <ol style="listtext-style-typealign: lower-romanleft;"><li>Then click the green one in the picture below| '''OK'''</li></ol> [[File:./images/media/image180.png|425x166px]] <ol start="10" style="list-styletext-typealign: lower-alphaleft;"><li>Click again | '''ApplyOK'''</li></ol> [[File:./images/media/image181.png|378x276px]] <ol start="11" style="listtext-style-typealign: lower-alphaleft;"><li>Then click | '''CloseOK''' to close</li></ol>|-[[File:./images/media/image182.png|383x234px]] <ol start="13" style="list-styletext-typealign: lower-alphaleft;"><li>At this point, you can use the | '''sudo poweroffUSB2.0X2''' command to shut down. Then please pull out the TF card, and then short press the power button to turn on, then the linux system in SPIFlash+NVMe SSD will be started.</li></ol> <!-- --><ol start="10" | style="list-styletext-typealign: decimalleft;"><li><p>Step | '''9)OK''' is to clone the system in the TF card to the NMVe SSD. We can also directly burn the linux image file to the NVMe SSD. Here are the steps:</p><ol | style="list-styletext-typealign: lower-alphaleft;"><li><p>Upload the linux image file to the linux system of the development board</p></li><li><p>Then use balenaEtcher to burn</p></li></ol></li></ol> <div class="figure"> [[File:./images/media/image183.png|575x361px|图片1]] </div>'''c.OK''' '''After using this method to burn the image, there is no need to manually expand the capacity, and it will automatically expand the capacity at the first startup.''' <span id| style="usingtext-rkdevtool-to-burnalign: left;"></span>| '''OK'''=== Using RKDevTool to burn === <ol start="12" | style="listtext-style-typealign: decimalleft;"><li>First, you need to prepare an M-Key 2280 specification NVMe SSD solid state drive, and the specification of the PCIe interface in the M.2 slot of the development board is PCIe3.0x4.</li></ol>| '''OK'''|-[[File:./images/media/image26.png|261x75px]] <ol startstyle="13text-align: left;" | '''USB3.0X2'''| style="listtext-style-typealign: decimalleft;"><li>Then insert the NVMe SSD into the M.2 PCIe interface of the development board shown in the figure below, and fix it</li></ol>| '''OK''' [[File:./images/media/image126.png|259x104px]] <ol startstyle="14text-align: left;" | '''OK'''| style="listtext-style-typealign: decimalleft;"><li>The position of the SPI Flash on the development board is shown in the figure below, no other settings are required before starting the programming</li></ol>| '''OK''' [[File:./images/media/image127.png|340x94px]] <ol start="15" style="listtext-style-typealign: decimalleft;">| '''OK'''<li>Then you need to prepare a data cable with good quality Type|-C interface</li></ol> [[File:./images/media/image22.png|123x124px]] <ol start="16style=" style="list-styletext-typealign: decimalleft;"><li><p>Then download the Rockchip driver | '''DriverAssitant_v52.12.zip5G PCIe network port X2''' and MiniLoader and the burning tool | style="text-align: left;"| '''RKDevTool_Release_v3.15.zipOK''' from the Orange Pi data download page</p><ol | style="listtext-style-typealign: lower-alphaleft;"><li>On the download page of Orange Pi, first select the official tool, and then enter the following folder</li></ol>| '''OK'''</li></ol> <div class| style="figuretext-align: left;">| '''OK''' [[File:./images/media/image109.png|371x90px|c40e71d1a66216e12b3b4297138f749]] </div><ol start="2" style="list-styletext-typealign: lower-alphaleft;"><li>Then download all the files below</li></ol> <div class="figure"> [[File:./images/media/image110.png|340x140px|2feec28318eaa60c0514000158b889a]] </div>'''Note that the &quot;MiniLoader-things needed to burn the Linux image&quot; folder is hereinafter referred to as the MiniLoader folder.OK'''|-<ol start="17" | style="listtext-style-typealign: decimalleft;"><li>Then download the Linux operating system image file compression package that you want to burn from the Orange Pi data download page, and then use the decompression software to decompress it. Among the decompressed files, the file ending with &quot;| '''2.img5G PCIe network port light'''&quot; is the image file of the operating system , the size is generally more than 2GB</li></ol> | style="text-align: left;"| '''Note, if you download the OpenWRT image, you will see the following two types of images in the download link of the OpenWRT image, please download the image file in the &quot;TF card, eMMC and NVME SSD boot image&quot; folder.OK''' <div class="figure"> [[File:./images/media/image102.png|340x108px|e6986fc9c8fc078e8cb6a9c39b76fb8]] </div><ol start="18" style="list-styletext-typealign: decimalleft;"><li>Then use decompression software to decompress | '''DriverAssitant_v5.12.zip''', then find ''OK'DriverInstall.exe''' executable file in the decompressed folder and open it</li></ol> [[File:./images/media/image57.png|429x126px]] <ol start="19" style="list-styletext-typealign: decimalleft;"><li><p>After opening | '''DriverInstall.exeOK''', the steps to install the Rockchip driver are as follows</p><ol | style="listtext-style-typealign: lower-alphaleft;"><li>Click the &quot;| '''Driver InstallationOK'''&quot; button</li></ol></li></ol>|-[[File:./images/media/image58.png|300x157px]] <ol start="2" style="listtext-style-typealign: lower-alphaleft;"><li>After waiting for a period of time, a pop-up window will prompt &quot;| '''driver installed successfullyDebug serial port'''&quot;, and then click the &quot| style="text-align: left;"| '''OK'''&quot; button.</li></ol> [[File:./images/media/image59.png|324x168px]] <ol start="20" style="list-styletext-typealign: decimalleft;"><li>Then decompress | '''RKDevTool_Release_v3.15.zipOK''', this software does not need to be installed, just find '''RKDevTool''' in the decompressed folder and open it</li></ol> [[File:./images/media/image60.png|455x135px]] <ol start="21" style="listtext-style-typealign: decimalleft;"><li>After opening the | '''RKDevToolOK''' burning tool, because the computer is not connected to the development board through the Type| style="text-C cable at this time, the lower align: left corner will prompt &quot;"| '''No device foundOK'''&quot;</li></ol>|-[[File:./images/media/image61.png|436x205px]] <ol start="22" style="list-styletext-typealign: decimalleft;">| '''RTC Chip'''<li><p>Then start burning the Linux image to the SSD</p><ol | style="list-styletext-typealign: lower-alphaleft;">| '''OK'''<li>First, connect the development board to the Windows computer through the Type-C data cable. The position of the Type-C interface on the development board is shown in the figure below</li></ol></li></ol> <div class| style="figuretext-align: left;"> [[File:./images/media/image63.jpeg|446x126px'''OK'''|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-2.jpg未标题-2]] </div><ol startstyle="2text-align: left;" | '''OK'''| style="listtext-style-typealign: lower-alphaleft;"><li><p>Make sure the development board is not connected to the power supply, and no TF card or eMMC module is inserted</p></li><li><p>Then press and hold the MaskROM button on the development board. The position of the MaskROM button on the development board is shown in the figure below:</p></li></ol>| '''OK'''|-[[File:./images/media/image64.png|424x103px]] <ol start="4" style="list-styletext-typealign: lower-alphaleft;">| '''FAN interface'''<li>Then connect the power supply of the Type-C interface to the development board, and power on, and then release the MaskROM button. The location of the Type-C power interface is as follows:</li></ol> [[File:./images/media/image65.png|439x134px]] <ol start="5" | style="listtext-style-typealign: lower-alphaleft;"><li>If the previous steps are successful, the development board will enter the MASKROM mode at this time, and the interface of the burning tool will prompt &quot;| '''Found a MASKROM deviceOK'''&quot;</li></ol> [[File:./images/media/image66.png|457x215px]]style="text-align: left;"| '''OK''' <ol start| style="6text-align: left;" | '''OK'''| style="listtext-style-typealign: lower-alphaleft;"><li>Then place the mouse cursor in the area below</li></ol> <div class="figure">| '''OK''' [[File:./images/media/image185.jpeg|452x212px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-4.jpg未标题-4]] </div><ol start="7" | style="listtext-style-typealign: lower-alphaleft;"><li>Then place the mouse cursor in the area below</li></ol> [[File:./images/media/image70.png|453x213px]]'''eMMC Extension ports''' <ol start="8" | style="listtext-style-typealign: lower-alphaleft;"><li>Then select the | '''Import configurationOK''' option</li></ol> [[File:./images/media/image72.png|458x215px]] <ol style="list-styletext-typealign: lower-romanleft;"><li>Then enter the MiniLoader folder downloaded earlier, then select the | '''rk3588_linux_pcie.cfgOK''' configuration file, and click '''Open'''</li></ol> [[File:./images/media/image186.png|462x217px]] <ol start="10" | style="listtext-style-typealign: lower-alphaleft;"><li>Then click | '''OK'''</li></ol> [[File:./images/media/image187.png|468x220px]] <ol start="11" style="listtext-style-typealign: lower-alphaleft;"><li>Then click the location shown in the figure below</li></ol> [[File:./images/media/image188.png|480x225px]]'''OK'''|-<ol start="12" | style="list-styletext-typealign: lower-alphaleft;"><li>Then select | '''MiniLoaderAll.binAP6275P-WIFI''' in the | style="text-align: left;"| '''MiniLoaderOK''' folder downloaded earlier, and then click to '''open'''</li></ol> [[File:./images/media/image80.png|484x227px]] <ol start="13" style="list-styletext-typealign: lower-alphaleft;">| '''OK'''<li>Then click the position shown in the figure below</li></ol> [[File:./images/media/image189.png|486x228px]] <ol start="14" style="listtext-style-typealign: lower-alphaleft;"><li>Then enter the | '''MiniLoaderOK''' folder downloaded earlier, select | style="text-align: left;"| '''rkspi_loader.img,OK''' and click |-| style="text-align: left;"| '''OpenAP6275P-BT'''</li></ol> [[File:./images/media/image190.png|501x235px]] <ol start="15" style="listtext-style-typealign: lower-alphaleft;">| '''OK'''<li>Then click the location shown in the figure below</li></ol> [[File:./images/media/image191.png|501x235px]] <ol start="16" style="list-styletext-typealign: lower-alphaleft;"><li>Then select the path of the linux image you want to burn, and click | '''OpenOK'''</li></ol> '''Before burning the image, it is recommended to rename the linux image to be burned to orangepi.img or other shorter names, so that you can see the percentage value of the burning progress when burning the image.| style="text-align: left;"| '''OK''' [[File:./images/media/image84.png|499x234px]] <ol start="17" style="listtext-style-typealign: lower-alphaleft;"><li>Then please check the option to | '''force write by addressOK'''</li></ol>|-[[File:./images/media/image192.png|487x229px]] <ol start="18" style="listtext-style-typealign: lower-alphaleft;"><li>Click the Execute button again to start burning the u| '''AX200-boot+linux image to SPIFlash+SSD</li></ol>WIFI''' [[File:./images/media/image193.png|489x230px]] <ol start="19" style="listtext-style-typealign: lower-alphaleft;"><li>The display log after burning the image is shown in the figure below</li></ol> [[File:./images/media/image194.png|490x230px]]'''OK''' <ol start="20" | style="listtext-style-typealign: lower-alphaleft;">| '''OK'''<li>After the image is burnt, it will automatically start the linux system in SPIFlash+PCIe SSD. If it does not start normally, please power on and try again.</li></ol> <span id| style="sectiontext-19align: left;"></span>=== ===| '''OK''' <ol start="23" | style="listtext-style-typealign: decimalleft;">| '''OK'''<li></li>|-<li></li><li></li><li></li><li><ol | style="listtext-style-typealign: lower-alphaleft;">| '''AX200-BT'''<li></li><li></li></ol></li><li></li><li></li><li><ol | style="list-styletext-typealign: lower-alphaleft;">| '''OK'''<li></li><li></li></ol></li><li></li><li></li><li><ol | style="listtext-style-typealign: lower-alphaleft;"><li></li>| '''OK'''<li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol></li></ol> <span id| style="howtext-to-burn-openwrt-image-to-spi-flashalign: left;"></span>== How to burn OpenWRT image to SPI FLASH == | '''The method introduced in this section is to burn the entire OpenWRT image to spi flash, no nvme ssd is required. In other words, u-boot, kernel and rootfs are all stored in spi flash.OK''' | style="text-align: left;"| '''Since the spi flash on the development board is only 16MB, this system basically cannot install much software, and currently only some basic functions can be realized.OK''' <span id="section|-20"></span>=== === <ol | style="listtext-style-typealign: decimalleft;">| '''AX210-WIFI'''<li></li><li></li><li><ol | style="list-styletext-typealign: lower-alphaleft;">| '''OK'''<li></li><li></li></ol></li><li></li><li></li><li><ol | style="listtext-style-typealign: lower-alphaleft;"><li></li>| '''OK'''<li></li></ol></li><li></li><li></li><li><ol | style="listtext-align: left;"| '''OK'''| style="text-typealign: lower-alphaleft;">| '''OK'''<li></li>|-<li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol></li></ol> <span id| style="thetext-methodalign: left;"| '''AX210-ofBT'''| style="text-using-the-dd-command-to-burn-1align: left;"></span>=== The method of using the dd command to burn === # Burning the OpenWRT image to SPIFlash needs to be completed with the help of a TF card, so first you need to burn the OpenWRT image that supports TF card startup to the TF card, and then use the TF card to start the development board to enter the OpenWRT system. For the method of burning the OpenWRT image to the TF card, please refer to the instructions in the two sections of | '''the method of burning the Linux image to the TF card based on the Windows PCOK''' and ''| style="text-align: left;"| 'the method of burning the Linux image to the TF card based on the Ubuntu PC.''OK'# Then download the ''| style="text-align: left;"| 'OpenWRT''OK' image that can boot from ''| style="text-align: left;"| 'SPIFlash''OK' from ''|-| style="text-align: left;"| 'Orange Pi's download page.''RTL8852BE-WIFI' After opening the download link, you can see the following two types of ''| style="text-align: left;"| 'OpenWRT images''OK''', please select the image in the SPIFlash boot image folder to download <div class| style="figuretext-align: left;"> [[File:./images/media/image203.png|329x112px'''OK'''|25566f72fb1f4567c78af07e73b5134]] </div><ol startstyle="3text-align: left;" | '''OK'''| style="listtext-style-typealign: decimalleft;"><li><p>Then upload the image downloaded from the official website to the TF card.</p></li><li><p>Then execute the following command to burn the OpenWRT image into SPIFlash. Note that after if=, you need to specify the actual path where the image is stored</p></li></ol> root@OpenWrt:~# | '''dd if=openwrt-rockchip-armv8-xunlong_orangepi-5-plus-spi-squashfs-sysupgrade.bin of=/dev/mtdblock0OK'''|-<ol start="5" | style="list-styletext-typealign: decimalleft;">| '''RTL8852BE-BT'''<li>Then you can use the poweroff command to shut down. Then please pull out the TF card, and then short press the power button to turn on, and then the OpenWRT system in SPIFlash will be started.</li></ol> <span id| style="usingtext-rkdevtool-to-burn-1align: left;"></span>| '''OK'''=== Using RKDevTool to burn === <ol start="10" | style="listtext-style-typealign: decimalleft;">| '''OK'''<li>The position of the | style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''MaskROM button'''| 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.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 Function'''| 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 Video'''| 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 Audio'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''switch button'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''infrared function'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Three-color LED light'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Onboard 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;"| '''headphone playback'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''headphone recording'''| 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 Horn'''| 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 Flash on the development board is shown in the figure below, no other settings are required before starting the programming</li></ol>'''| 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 card start'''| 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 start'''| 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 camera'''| 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 camera'''| 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 command restarts'''| 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 command shutdown'''| 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 display'''| 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 Touch'''| 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 hard solution video'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|}
[[File:.<span id="the-format-of-linux-commands-in-this-manual"></images/media/image127.png|389x107px]]span>== The format of linux commands in this manual ==
<ol start="11" style="list-style-type: decimal;"><li>Then you <p>In this manual, all commands that need to prepare a data cable with good quality Type-C interfacebe entered in the Linux system will be framed in the following box</li></olp>{| class="wikitable" style="width:800px;height: 50px;" |-|
[[File:|}<p>As shown below, the content in the yellow box indicates the content that needs special attention, except for the commands in it.</imagesp></media/image22.pngli>{| class="wikitable" style="background-color:#ffffdc;width:800px;height: 50px;" |-|152x154px]]
|}<li><p>Description of the prompt type in front of the command</p><ol start="12" style="list-style-type: decimallower-alpha;"><li><p>Then download The prompt in front of the command refers to the content of the red part in the box below, which is not part of the linux command, so when entering the Rockchip driver command in the linux system, please do not enter the content of the red font part.</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>'''DriverAssitant_v5<span style="color:#FF0000">test@test:~$</span> ssh [mailto:root@192.12168.zip1.36 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>''' prompt indicates that this command is entered in the '''linux system''' '''of the development board''', and MiniLoader the last '''<span style="color:#FF0000">$</span>''' of the prompt indicates that the current user of the system is an ordinary user. When executing a privileged command, you need to add '''sudo'''</p></li><li><p>'''<span style="color:#FF0000">root@orangepi:~#</span>''' The prompt indicates that this command is entered in the '''linux system of the development board''', and the burning tool '''RKDevTool_Release_v3<span style="color:#FF0000">#</span>''' at the end of the prompt indicates that the current user of the system is the root user, who can execute any desired command</p></li><li><p>'''<span style="color:#FF0000">test@test:~$</span>''' prompt indicates that this command is entered in the Ubuntu PC or Ubuntu virtual machine, not in the linux system of the development board.15The '''<span style="color:#FF0000">$</span>''' at the end of the prompt indicates that the current user of the system is an ordinary user.zipWhen executing privileged commands, you need to add '''sudo''' from </p></li><li><p>'''<span style="color:#FF0000">root@test:~#</span>''' prompt indicates that this command is entered in the Ubuntu PC or Ubuntu virtual machine, not in the linux system of the development board. The '''<span style="color:#FF0000">#</span>''' at the end of the prompt indicates that the current user of the system is the root user and can execute any command you want</p></li></ol></li><li><p>What are the Orange Pi data download pagecommands that need to be entered?</p>
<ol style="list-style-type: lower-alpha;">
<li>On <p>As shown below, the download page of Orange Pi'''black bold part''' is the command that needs to be input, first select and the content below the command is the official tooloutput content (some commands have output, and then enter some may not have output), this part of the following foldercontent does not need to be input</lip>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~# '''cat /boot/orangepiEnv.txt'''</olp><p>'''<span style="color:#FF0000">verbosity=7</lispan>'''</olp><p>bootlogo=false</p><div classp>'''<span style="figurecolor:#FF0000">console=serial</span>'''</p>|}</li>[[File:<li><p>As shown below, some commands cannot be written in one line and will be placed on the next line. As long as the black and bold parts are all commands that need to be input. When these commands are entered into one line, the last &quot;\&quot; of each line needs to be removed, this is not part of the command.In addition, there are spaces in different parts of the command, please don't miss it</images/media/image102.pngp>{|340x108pxclass="wikitable" style="width:800px;" |e6986fc9c8fc078e8cb6a9c39b76fb8]]-|<p>orangepi@orangepi:~$ '''echo \'''</divp><ol startp>'''&quot;deb [arch="2" style$(dpkg --print-architecture) \'''</p><p>'''signed-by="list/usr/share/keyrings/docker-stylearchive-typekeyring.gpg] \'''</p><p>'''https: lower//download.docker.com/linux/debian \'''</p><p>'''$(lsb_release -alphacs) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &gt;"/dev/null'''</p>|}</li>Then download all the files below</ol></li></ol>
<div classspan id="figurelinux-system-login-instructions"></span>
[[File:./images/media/image110.png|401x165px|2feec28318eaa60c0514000158b889a]]== Linux system login instructions ==
<span id="linux-system-default-login-account-and-password"></divspan>'''Note that the''' &quot;MiniLoader-things needed to burn the === Linux image&quot; '''folder is hereinafter referred to as the MiniLoader folder.'''system default login account and password ===
<ol start{| class="13wikitable" style="listwidth:800px;" |-| style="text-typealign: decimalleft;">| '''Account'''<li>Then download the | style="text-align: left;"| '''OpenWRTPassword''' image that can be booted from SPIFlash from the download page of Orange Pi. Limited by the capacity of SPIFlash, the image size is less than |-| style="text-align: left;"| '''16MB.root''' After opening the download link, you can see the following two types of OpenWRT images, please select the image in the | style="text-align: left;"| '''orangepi'''|-| style="text-align: left;"| '''SPIFlash boot imageorangepi''' folder</li></ol>| style="text-align: left;"| '''orangepi'''|}
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note that when entering the password, <div classspan style="figurecolor:#FF0000">the specific content of the entered password will not be displayed on the screen</span>, please do not think that there is any fault, just press Enter after inputting.'''</big>|}
[[File{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''When the wrong password is prompted, or there is a problem with the ssh connection, please note that as long as you are using the Linux image provided by Orange Pi, <span style="color:#FF0000">please do not suspect that the above password is wrong, but look for other reasons</span>.'''</images/media/image203.png|329x112pxbig>|25566f72fb1f4567c78af07e73b5134]]}
</div><ol startspan id="14" style="listhow-to-set-automatic-terminal-login-in-stylelinux-type: decimal;system"><li>Then use decompression software to decompress '''DriverAssitant_v5.12.zip''', and then find the '''DriverInstall.exe''' executable file in the decompressed folder and open it</li></olspan>
[[File:./images/media/image57.png|472x139px]]=== How to set automatic terminal login in linux system ===
<ol start="15" style="list-style-type: decimal;"><li><p>After opening By default, the Linux system automatically logs in to the terminal, and the default login user name is '''DriverInstall.exe<span style="color:#FF0000">orangepi</span>''', </p><p>[[File:plus5-img197.png]]</p></li><li><p>Use the steps following command to install set the Rockchip driver are as followsroot user to automatically log in to the terminal</p><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;"|-|<p>orangepi@orangepi:~$ '''sudo auto_login_cli.sh root'''</p>|}</li><li>Click <p>Use the &quotfollowing command to disable automatic login terminal</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''Driver Installationsudo auto_login_cli.sh -d'''&quot; button</p>|}</li><li><p>Use the following command to set the orangepi user to automatically log in to the terminal again</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo auto_login_cli.sh orangepi'''</olp>|}
</li></ol>
[[File:.<span id="instructions-for-automatic-login-of-linux-desktop-version-system"></images/media/image58.png|276x145px]]span>
<ol start="2" style="list-style-type: lower-alpha;"><li>After waiting = Instructions for a period automatic login of time, a pop-up window will prompt &quot;'''driver installed successfully'''&quot;, and then click the &quot;'''OK'''&quot; button.</li></ol>Linux desktop version system ===
[[File<ol style="list-style-type:.decimal;"><li><p>After the desktop version system is started, it will automatically log in to the desktop without entering a password</images/media/image59.png|292x151px]]p><div class="figure">
<ol start="16" style="list-style[[File:plus5-type: decimal;"><li>Then decompress '''RKDevTool_Release_v3.15img198.zip''', this software does not need to be installed, just find '''RKDevTool''' in the decompressed folder and open it</li></ol>png]]
[[File</div></li><li><p>Run the following command to prohibit the desktop system from automatically logging into the desktop</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo disable_desktop_autologin.sh'''</imagesp>|}</mediali><li><p>Then restart the system and a login dialog box will appear, at which point a '''password''' is required to enter the system</image60.png|467x138px]]p></li>
<ol startdiv class="17figure" style="list-style-type: decimal;"><li>After opening the '''RKDevTool''' burning tool, because the computer has not been connected to the development board through the Type-C cable at this time, the lower left corner will prompt &quot;'''No device found'''&quot;</li></ol>
[[File:./images/media/image61plus5-img199.png|402x189px]]
<ol start="18" style="list-style-type: decimal;"><li><p/div>Then start burning the OpenWRT image into SPI FLASH</pol><ol stylespan id="listthe-stylesetting-type: lowermethod-alpha;"><li>First, connect the development board to the Windows computer through the Typeof-root-user-automatic-C data cable. The position of the Typelogin-C interface on the development board is shown in the figure below</li></ol></li-linux-desktop-version-system"></olspan>
<div class="figure">== The setting method of root user automatic login in Linux desktop version system ===
<ol style="list-style-type: decimal;"><li><p>Execute the following command to set the desktop system to automatically log in as the root user</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo desktop_login.sh root'''</p>|}</li><li><p>Then restart the system, it will automatically use the root user to log in to the desktop</p><p>[[File:plus5-img200.png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''Note that if you log in to the desktop system as the root user, you cannot use pulseaudio in the upper right corner to manage audio devices.'''</imagesp><p>'''Also note that this is not a bug, since pulseaudio is not allowed to run as root.'''</mediap></image63.jpegbig>|424x120px}</li><li><p>Execute the following command to set the desktop system to log in automatically with the orangepi user again</p>{|Cclass="wikitable" style="width:\Users\800px;" |-|<p>orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-2@orangepi:~$ '''sudo desktop_login.jpg未标题-2]]sh orangepi'''</p>|}</li></ol>
</div><ol startspan id="2" style="listthe-method-styleof-type: lowerdisabling-alpha;"><li><p>Make sure the development board is not connected to the power supply, and the TF card and eMMC module are not inserted</p></li><li><p>Then press and hold the MaskROM button on the development board. The position of the MaskROM button on the development board is shown -desktop-in -the figure below:</p></li-linux-desktop-version-system"></olspan>
[[File:./images/media/image64.png|444x100px]]=== The method of disabling the desktop in the Linux desktop version system ===
<ol startstyle="list-style-type: decimal;"><li><p>First enter the following command in the command line, '''<span style="color:#FF0000">please remember to add sudo permission</span>'''</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo systemctl disable lightdm.service'''</p>|}</li><li><p>Then restart the Linux system and you will find that the desktop will not be displayed</p>{| class="wikitable" style="4width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo reboot'''</p>|}</li><li><p>The steps to reopen the desktop are as follows:</p><ol style="list-style-type: lower-alpha;"><li>Then connect <p>First enter the power supply of following command in the Typecommand line, '''<span style="color:#FF0000">please remember to add sudo permission</span>'''</p>{| class="wikitable" style="width:800px;" |-C interface to |<p>orangepi@orangepi:~$ '''sudo systemctl start lightdm.service'''</p>orangepi@orangepi:~$ '''sudo systemctl enable lightdm.service'''|}</li><li><p>After selection, the development board, and power on, and then release monitor will display the MaskROM buttondesktop</p></li></ol></li></ol>
[[File:.<span id="onboard-led-light-test-instructions"></images/media/image65.png|402x123px]]span>
<ol start="5" style="list-style-type: lower-alpha;"><li>If the previous steps are successful, the development board will enter the '''MASKROM''' mode at this time, and the interface of the burning tool will prompt &quot;'''Found a MASKROM device'''&quot;</li></ol>Onboard LED Light Test Instructions ==
[[File:./images/media/image66.png|457x215px]] <ol start="6" style="list-style-type: lower-alphadecimal;"><li>Then place <p>There is a red, green and blue three-color light on the mouse cursor development board, and its location is shown in the area figure below:</li></olp> <div class="figure"p> [[File:./images/media/image185.jpeg|452x212px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题plus5-4img201.jpg未标题-4png]] </divp><ol start="7" style="list-style-type: lower-alpha;"><li>Then click the right mouse button and the selection interface shown in the figure below will pop up</li></ol> [[File:./images/media/image70.png|453x213px]] <ol start="8" style="list-style-type: lower-alpha;"li><lip>Then select the '''Import configuration''' option</li></ol> [[File:./images/media/image72.png|458x215px]] <ol span style="list-style-typecolor: lower-roman;#FF0000"><li>Then select As long as the '''rk3588_linux_spiflash.cfg''' configuration file in development board is powered on, the MiniLoader folder downloaded earlierred LED light will always be on, which is controlled by the hardware and click '''Open'''</li></ol> [[File:cannot be turned off by the software./images/media/image204The red LED light can be used to determine whether the power supply of the development board is turned on normally.png|465x218px]] <ol start="10" style="list-style-type: lower-alpha;"><li/span>Then click '''OK'''</lip></olli[[File:./images/media/image205.png|466x219px]] <ol start="11" style="list-style-type: lower-alpha;"li><lip>Then click The green and blue LED lights will keep blinking after the location shown in the figure belowkernel boots, which is controlled by software.</lip></olli[[File:./images/media/image206.png|467x219px]] <ol start="12" style="list-style-type: lower-alpha;"li><lip>Then select '''MiniLoaderAll.bin''' in The method of setting the '''MiniLoader''' folder downloaded earlier, green light on and off and click '''Open'''flashing is as follows:</li></olp[[File:./images/media/image207.png{|469x220px]] <ol startclass="13wikitable" style="listbackground-style-typecolor:#ffffdc;width: lower-alpha800px;"><li>Then click the location shown in the figure below</li></ol>|- [[File:./images/media/image208.png|452x212px]] <ol start="14" style="list-style-type: lower-alpha;"><libig><p>Then select the path of the OpenWRT image you want to burn, and click '''Open'''</p><p>'''Before burning Note that the image, it is recommended to rename the OpenWRT image to following operations should be burned to''' '''orangepi.img''' '''or other shorter names, so that you can see the percentage value of performed under the burning progress when burning the imageroot user.'''</p></li></olbig[[File:./images/media/image84.png|456x214px]]}<ol start="15" style="list-style-type: lower-alpha;"><li>Then please make sure that the option to '''force writing by address''' is ticked</li></ol> [[File:./images/media/image209.png|463x217px]] <ol start="16" style="list-style-type: lower-alpha;"p><li>Click First enter the '''Execute''' button again to start burning setting directory of the OpenWRT image into SPIFlashgreen light</li></olp[[File:./images/media/image210.png{|463x218px]] <ol startclass="17wikitable" style="list-style-typewidth: lower-alpha800px;"><li>The display log after burning the OpenWRT image is shown in the figure below</li></ol> [[File:./images/media/image211.png|465x219px]] <ol start="18" style="list-style-type: lower-alpha;"><li>The OpenWRT image will start automatically after burning, if it does not start normally, please try again with power on.</li></ol>|<span id="section-21"p><root@orangepi:~# '''cd /span>== == <span id="section-22"><sys/span>=== === <ol start="19" style="list-style-type: decimal;"><li><class/li><li><leds/li><li><ol style="list-style-type: lower-alpha;"><li>green_led'''</lip><li></li></ol>|}
</li>
<li></li><lip>The command to set the green light to stop flashing is as follows</lip><li><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;">|-|<lip><root@orangepi:/sys/class/li><li><leds/li>green_led# '''echo none &gt; trigger'''</olp>|}
</li>
<li></li><lip>The command to set the green light to be on is as follows</lip><li><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;">|-|<lip><root@orangepi:/sys/li><li><class/li><li><leds/li><li>green_led# '''echo default-on &gt; trigger'''</lip><li></li>|}<li></li><li></li><lip>The command to set the green light to flash is as follows</lip><li></li>{| class="wikitable" style="width:800px;" <li></li>|-<li></li>|<lip><root@orangepi:/li><li><sys/li><li><class/li><li><leds/li><li>green_led# '''echo heartbeat &gt; trigger'''</lip><li></li>|}<li></li></ol></li></olli> <span id="section-23"p>The method of setting the blue light on and off and flashing is as follows:</spanp>=== === <ol start{| class="6wikitable" style="listbackground-style-typecolor:#ffffdc;width: decimal800px;"><li></li><li></li>|-<li></li>| <libig></li><lip>'''Note that the following operations should be performed under the root user.'''</lip></olbig<span id="section-24"></span>=== ===|}<ol start="28" style="list-style-type: decimallower-alpha;"><li></li><lip>First enter the setting directory of the blue light</lip><li><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;">|-|<lip><root@orangepi:~# '''cd /sys/class/li><li><leds/li>blue_led'''</olp>|}
</li>
<li></li><lip>The command to set the blue light to stop flashing is as follows</lip><li><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;">|-|<lip><root@orangepi:/sys/class/li><li><leds/li>blue_led# '''echo none &gt; trigger'''</olp>|}
</li>
<li></li><lip>The command to set the blue light to be on is as follows</lip><li><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;"><li></li>|-<li></li>|<lip><root@orangepi:/li><li><sys/li><li><class/li><li><leds/li><li>blue_led# '''echo default-on &gt; trigger'''</lip><li></li>|}<li></li><li></li><lip>The command to set the blue light to flash is as follows</lip><li></li>{| class="wikitable" style="width:800px;" <li></li>|-<li></li>|<lip><root@orangepi:/li><li><sys/li><li><class/li><li><leds/li>blue_led# '''echo heartbeat &gt; trigger'''</olp>|}
</li></ol>
<span id="how-to-burn-android-image-to-tf-card"></span>== How to burn Android image to TF card == <ol style="list-style-type: decimal;"><li><p>First prepare a TF card with a capacity of 16GB or greater. The transmission speed of If you don't want the TF card must be class10 or above. It is recommended LED light to use a TF card of SanDisk and other brands</p></li><li><p>Then flash after booting, you can use the card reader following method to insert turn off the TF card into the computer</p></li><li><p>Then download the SDDiskTool programming tool from '''the Orange Pi data download page''', '''please make sure that the version of the SDDiskTool tool is the latest v1.72'''</p></li><li><p>Then download the Android12 image from the Orange Pi download pagegreen light and blue light</p>
<ol style="list-style-type: lower-alpha;">
<li>After opening <p>First run '''orangepi-config''', normal users remember to add sudo permission</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li><li><p>Then select '''System'''</p><p>[[File:5plus-51.png]]</p></li><li><p>Then select '''Hardware'''</p><p>[[File:5plus-52.png]]</p></li><li><p>Then use the download link arrow keys of the Android imagekeyboard to navigate to the position shown in the figure below, you can see and then use the following two types of Android images, please space to select the image in the '''TF card and eMMC boot imageopi5plus-disable-leds''' configuration</p><p>[[File:5plus-53.png]]</p></li><li><p>Then select '''<Save>''' to save</p><p>[[File:5plus-54.png]]</p></li><li><p>Then select '''<Back>'''</p><p>[[File:5plus-55.png]]</p></li><li><p>Then select '''<Reboot>''' folder to downloadrestart the system to make the configuration take effect</p><p>[[File:5plus-56.png]]</p></li><li><p>After restarting, you can see that only the red light on the development board is always on, and the green and blue lights will not flash</p></li></ol>
</li></ol>
[[File:.<span id="network-connection-test"></images/media/image212.png|240x98px]]span>
<ol start="2" style="list-style-type: lower-alpha;"><li>After entering the '''TF card and eMMC boot image''' folder, you can see the following three images, the difference between them is:</li></ol>Network connection test ==
a) The first image is dedicated to HDMI display and supports 8K display<span id="g-ethernet-port-test"></span>=== 2. If you5G Ethernet port test ===
don’t use LCD screen<ol style="list-style-type: decimal;"><li><p>The development board has two 2.5G Ethernet ports, please download and the image test methods for the two ports are the same. First, insert one end of the network cable into the Ethernet interface of the development board, and connect the other end of the network cable to the router, and ensure that the network is unimpeded.</p></li><li><p>After the system starts, it will automatically assign an IP address to the Ethernet card through DHCP '''<span style="color:#FF0000">without lcdany other configuration</span>'''.</p></li><li><p>The command to view the IP address in the Linux system of the development board is as follows:</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ip addr show'''</p><p>1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000</p>:<p>link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00</p>:<p>inet 127.0.0.1/8 scope host lo</p>::<p>valid_lft forever preferred_lft forever</p>:<p>inet6 ::1/128 scope host</p>::<p>valid_lft forever preferred_lft forever</p><p>2: '''<span style="color:#FF0000">enP3p49s0</span>''': &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP group default qlen 1000</p>:<p>link/ether 00:e0:4c:68:00:26 brd ff:ff:ff:ff:ff:ff</p>:<p>inet '''<span style="color:#FF0000">192.168.1.245</span>'''/24 brd 192.168.1.255 scope global dynamic noprefixroute enP3p49s0</p>::<p>valid_lft 42537sec preferred_lft 42537sec</p>:<p>inet6 fe80::9005:95ac:b9c0:2beb/64 scope link noprefixroute</p>::<p>valid_lft forever preferred_lft forever</p><p>3: '''<span style="color:#FF0000">enP4p65s0</span>''': &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP group default qlen 1000</p>:<p>link/ether 00:e0:4c:68:00:27 brd ff:ff:ff:ff:ff:ff</p>:<p>inet '''<span style="color:#FF0000">192.168.1.247</span>'''/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>|}
b) If you want {| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''When using ifconfig to use lcd screenview the IP address, please choose image with lcdif the following information is prompted, it is because sudo is not added. The correct command is: sudo ifconfig'''</p></big>
c) <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 image with box command could not be located because '/sbin:/usr/sbin' is not included in the PATH environment variable.</p><p>This is a image dedicated to most likely caused by the TV boxlack of administrative privileges associated with your user account.</p><p>ifconfig: command not found</p>|}
[[File{| class="wikitable" style="background-color:#ffffdc;width:./images/media/image213.png800px;" |-|255x97px]]<big>'''There are three ways to check the IP address after the development board starts:'''
<ol start="5" style="list-style-type: decimal;"><li><p>Then use decompression software to decompress # '''Connect the compressed package of the downloaded Android image. Among the decompressed filesHDMI display, then log in to the file ending with &quot;.img&quot; is the Android image file, system and use the size is more than 1GB</p></li><li><p>Then use decompression software ip addr show command to decompress view the IP address'''SDDiskTool_v1.72.zip# ''', this software does not need Enter the ip addr show command in the debugging serial terminal to be installed, just find view the IP address'''SD_Firmware_Tool.exe# ''' If there is no debugging serial port and no HDMI display, you can also check the IP address of the development board's network port through the router's management interface. However, in this method, some people often cannot see the IP address of the decompressed folder and open development board normally. If you can't see it</p></li></ol>, the debug method looks like this:'''
[[File<ol style="list-style-type:upper-alpha;"><li><p>'''First check whether the Linux system has started normally.If the three-color light on the development board is flashing, it is generally started normally. If only the red light is on, it means that the system has not started normally;'''</p></li><li><p>'''Check whether the network cable is plugged in tightly, or try another network cable;'''</p></li><li><p>'''Try another router (I have encountered many problems with the router, such as the router cannot assign the IP address normally, or the IP address has been'''</imagesp><p>'''assigned normally but cannot be seen in the router);'''</mediap></image214li><li><p>'''If there is no router to replace, you can only connect to an HDMI display or use the debugging serial port to check the IP address.png'''</p></li></ol><p>'''In addition, it should be noted that the development board DHCP automatically assigns an IP address without any settings.'''</p></big>|}</li></ol><!-- --><ol start="4" style="list-style-type: decimal;"><li><p>The command to test the network connectivity is as follows, the '''ping''' command can be interrupted through the shortcut key of '''Ctrl+C'''</p>{|575x138px]]class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ping www.baidu.com -I enP4p65s0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Test command for one of the network ports'''</p><p>orangepi@orangepi:~$ '''ping www.baidu.com -I enP3p49s0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Test command of another network port'''</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>
<ol startspan id="7" style="listwifi-styleconnection-type: decimal;test"><li>After opening SDDiskTool, if the TF card is recognized normally, the inserted disk device will be displayed in the &quot;'''Select Removable Disk Device'''&quot; column. '''Please make sure that the displayed disk device is consistent with the drive letter of the TF card you want to burn''' If there is no display, you can try to unplug the TF card</li></olspan>
[[File:./images/media/image215.png|267x228px]]=== WIFI connection test ===
<ol start{| class="8wikitable" style="listbackground-style-typecolor:#ffffdc;width: decimal800px;">|-| <libig>After confirming the drive letter, you can format the TF card first, click the restore disk button in '''SDDiskTool'''<span style="color:#FF0000">First of all, please note that there is no WIFI module on the Orange Pi 5 Plus development board, and an external PCIe network card or USB network card is required to use the SD Card Formatter mentioned above to format the TF cardWIFI function.</li></olspan>'''
'''For instructions on using the external PCIe network card, please refer to the section on [[File:./images/media/image216.pngOrange Pi 5 Plus#How to use E-Key PCIe WIFI6+Bluetooth module|247x212px'''how to use the PCIe WIFI6+Bluetooth module''']].'''
<ol start="9" style="list-style-type: decimal;"><li>Then start to write '''For instructions on using the Android image external USB network card, please refer to [[Orange Pi 5 Plus#USB wireless network card test|'''the TF USB wireless network card</li></ol>test section''']].'''
a. First check &quot;'''SD Boot'''&quot; Please do not connect to WIFI by modifying the /etc/network/interfaces configuration file. There will be problems connecting to the WIFI network in &quot;'''Select Function Modethis way.'''&quot;</big>|}
b. Then select the path of the Android image in the &quot{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Select Please do not connect to upgrade firmwareWIFI by modifying the /etc/network/interfaces configuration file. There will be problems connecting to the WIFI network in this way.'''&quot; column</big>|}<span id="the-server-image-connects-to-wifi-through-commands"></span>==== The server image connects to WIFI through commands ====
c. Finally click the &quot{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Start Create'''&quot; button When the development board is not connected to Ethernet, not connected to HDMI display, but only connected to the serial port, it is recommended to use the commands demonstrated in this section to connect to the WIFI network. Because nmtui can only display characters in some serial port software (such as minicom), and cannot display the graphical interface normally. Of course, if the development board is connected to start burning an Ethernet or HDMI display, you can also use the Android image commands demonstrated in this section to connect to the TF cardWIFI network.'''
[[File:./images/media/image217.png|346x292px]]
'''<ol start="10" span style="list-style-typecolor: decimal;#FF0000"><li>After burningThe commands demonstrated below are the default WIFI network device node name wlan0, you can exit but the SDDiskTool softwarenode names of different WIFI modules will be different, and then please replace it with the actual node name you can pull out the TF card from the computer and insert see, do not copy it into the development board to start.</lispan>'''</olbig>|}
[[File:./images/media/image218.png|304x258px]] <span id="how-to-burn-android-image-into-emmc"></span>== How to burn Android image into eMMC == '''Note, after burning the image into eMMC, if the test finds that it cannot be started, please clear the SPIFlash and try again. For the method of clearing SPIFlash, please refer to the method of using RKDevTool to clear SPIFlash.''' <span id="how-to-burn-android-image-into-emmc-via-type-c-cable"></span>=== How to burn Android image into eMMC via Type-C cable === '''Note that all the following operations are performed on a Windows computer.''' # The development board reserves an eMMC expansion interface. Before programming the system to eMMC, you first need to purchase an eMMC module that matches the eMMC interface of the development board. Then install the eMMC module to the development board. The location of the eMMC interface is as follows: [[File:./images/media/image108.png|307x141px]] <ol start="2" style="list-style-type: decimal;"><li><p>It is also necessary First log in to prepare a data cable with a good quality Type-C interface</p><p>[[File:./images/media/image22.png|134x136px]]</p></li><li><p>Then download Rockchip driver '''DriverAssitant_v5.12.zip''' and burning tool '''RKDevTool_Release_v3.15.zip''' from '''Orange Pi's data download page'''</p></li><li><p>Then download the Android image from '''Orange Pi's download page.'''linux system, there are the following three ways</p></li></ol> <!-- -->
<ol style="list-style-type: lower-alpha;">
<li>After opening <p>If the development board is connected with a network cable, you can '''remotely log in to the Linux system through ssh'''</p></li><li><p>If the download link of development board is connected to the Android imagedebugging serial port, you can see &gt; use the serial port terminal to log in to the Linux system</p></li><li><p>If the development board is connected to the following two types of Android imagesHDMI display, please select you can log in to the linux system through the image &gt; in HDMI display terminal</p></li></ol></li><li><p>First use the '''TF card and eMMC startup imagenmcli dev wifi''' folder command to downloadscan the surrounding WIFI hotspots</lip>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''nmcli dev wifi'''</olp>|}
<div class="figure">
[[File:./images/media/image219plus5-img202.png|240x98px|4db492fa03e0cf83396c36286128350]]
</div><ol start="2" style="list-style-type: lower-alpha;"/li><li>After entering <p>Then use the TF card and eMMC boot image folder, you can see &gt; '''nmcli''' command to connect to the following three imagesscanned WIFI hotspot, the difference between them iswhere:</li></ol> <!-- --p>
<ol style="list-style-type: lower-alpha;">
<li><p>The first image is dedicated '''wifi_name''' needs to HDMI display and supports 8K &gt; display. If you don’t use LCD screen, please download be replaced with the image &gt; without lcd</p></li><li><p>If '''wifi_passwd''' needs to be replaced with the password of the WIFI hotspot you want to use lcd screen, please choose image with lcdconnect to</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</lispan>'''<li/p><p>The image Device 'wlan0' successfully activated with box is a image dedicated to the TV box'cf937f88-ca1e-4411-bb50-61f402eef293'.</p>|}</li></ol></li>[[File:.<li><p>Through the '''ip addr show wlan0''' command, you can view the IP address of wifi</images/media/image213.pngp>{|255x97px]] <ol startclass="5wikitable" style="listbackground-style-typecolor:#ffffdc;width: decimal800px;">|-| <libig><p>Then use the decompression software to decompress the compressed package '''The device node names of the downloaded Android image. Among the decompressed filesWIFI are not necessarily all wlan0, the file ending with &quot;please refer to what you actually see.img&quot; is the Android image file, and the size is more than 1GB'''</p></libig><li>|}{| class="wikitable" style="width:800px;" |-|<p>Then use decompression software to decompress orangepi@orangepi:~$ '''DriverAssitant_v5.12.zipip addr show wlan0'''</p><p>11: wlan0: &lt;BROADCAST,MULTICAST,UP, and then find the LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000</p>:<p>link/ether 23:8c:d6:ae:76:bb brd ff:ff:ff:ff:ff:ff</p>:<p>inet '''DriverInstall<span style="color:#FF0000">192.exe168.1.11</span>''' executable file in the decompressed folder and open it/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0</p>::<p>valid_lft 259192sec preferred_lft 259192sec</lip>:<p>inet6 240e:3b7:3240:c3a0:c401:a445:5002:ccdd/ol64 scope global dynamic noprefixroute</p>::<p>valid_lft 259192sec preferred_lft 172792sec</p>[[File:.<p>inet6 fe80::42f1:6019:a80e:4c31/images64 scope link noprefixroute</mediap>::<p>valid_lft forever preferred_lft forever</image57.pngp>|575x169px]]}</li><ol startli><p>Use the '''ping''' command to test the connectivity of the wifi network, and the '''ping''' command can be interrupted through the shortcut key '''Ctrl+C'''</p>{| class="7wikitable" style="listbackground-style-typecolor:#ffffdc;width: decimal800px;">|-| <libig><p>After opening '''DriverInstallThe device node names of WIFI are not necessarily all wlan0, please refer to what you actually see.exe''', the steps to install the Rockchip driver are as follows</p></big><ol |}{| class="wikitable" style="list-style-typewidth: lower-alpha800px;">|-|<lip>Click the &quot;orangepi@orangepi:~$ '''Driver Installationping www.orangepi.org -I wlan0'''&quot; button</lip><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</olp>|}
</li></ol>
[[File:./images/media/image58.png|300x157px]] <ol startspan id="2" style="listthe-server-image-connects-styleto-type: lowerwifi-in-alpha;"><li>After waiting for a period of time, a pop-up window will prompt &quot;driver installed successfully&quot;, then click &quot;OK&quot;</li></ol> [[File:./images/media/image59.png|315x164px]] <ol start="8" style="list-stylegraphical-type: decimal;way"><li>Then decompress '''RKDevTool_Release_v3.15.zip''', this software does not need to be installed, just find '''RKDevTool''' in the decompressed folder and open it</lispan></ol> [[File:./images/media/image60.png|454x134px]]
<ol start="9" style="list-style-type: decimal;"><li>After opening the '''RKDevTool''' burning tool, because the computer has not been connected == The server image connects to the development board through the Type-C cable at this time, the lower left corner will prompt &quot;'''No device found'''&quot;</li></ol>WIFI in a graphical way ====
[[File:./images/media/image61.png|442x208px]] <ol start="10" style="list-style-type: decimal;"><li><p>Then start burning First log in to the linux system, there are the Android image into eMMCfollowing three ways</p>
<ol style="list-style-type: lower-alpha;">
<li>First<p>If the development board is connected with a network cable, you can '''remotely log in to the Linux system through ssh'''</p></li><li><p>If the development board is connected to the debugging serial port, connect you can use the serial port terminal to log in to the linux system (please use MobaXterm for the serial port software, and minicom cannot display the graphical interface)</p></li><li><p>If the development board is connected to the Windows computer HDMI display, you can log in to the linux system through the Typeterminal displayed on the HDMI</p></li></ol></li><li><p>Then enter the nmtui command in the command line to open the wifi connection interface</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''nmtui'''</p>|}</li><li><p>Enter the nmtui command to open the interface as shown below</p><p>[[File:plus5-C data cableimg203.png]]</p></li><li><p>Select '''Activate a connect''' and press Enter</p><p>[[File:plus5-img204.png]]</p></li><li><p>Then you can see all the searched WIFI hotspots</p><p>[[File:plus5-img205. The png]]</p></li><li><p>Select the WIFI hotspot you want to connect to, then use the Tab key to position of the Typecursor on '''Activate''' and press Enter</p><p>[[File:plus5-img206.png]]</p></li><li><p>Then a dialog box for entering a password will pop up, enter the corresponding password in '''Password''' and press Enter to start connecting to WIFI</p><p>[[File:plus5-C interface on img207.png]]</p></li><li><p>After the development board WIFI connection is shown successful, a &quot;*&quot; will be displayed in front of the figure belowconnected WIFI name</p><p>[[File:plus5-img208.png]]</p></li><li><p>You can view the IP address of wifi through the '''ip addr show wlan0''' command</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''The device node names of WIFI are not necessarily all wlan0, please refer to what you actually see.'''</p></big>|}{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ip addr show wlan0'''</p><p>11: wlan0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000</p>:<p>link/ether 24:8c:d3:aa:76:bb brd ff:ff:ff:ff:ff:ff</p>:<p>inet '''<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>Use the '''ping''' command to test the connectivity of the wifi network, and the '''ping''' command can be interrupted through the shortcut key '''Ctrl+C'''</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''The device node names of WIFI are not necessarily all wlan0, please refer to what you actually see.'''</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</olp><p>rtt min/avg/max/mdev = 41.321/44.864/48.834/2.484 ms</p>|}
</li></ol>
<div classspan id="figuretest-method-of-desktop-image"></span>
[[File:./images/media/image63.jpeg|439x124px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-2.jpg未标题-2]]==== Test method of desktop image ====
</div><ol start="2" style="list-style-type: lower-alphadecimal;"><li><p>Then make sure that Click the network configuration icon in the upper right corner of the development board is desktop (please do not inserted into connect the TF card network cable when testing WIFI)</p><p>[[File:plus5-img209.png]]</p></li><li><p>Click '''More networks''' in the pop-up drop-down box to see all scanned WIFI hotspots, and not connected then select the WIFI hotspot you want to connect to the power supply</p><p>[[File:plus5-img210.png]]</p></li><li><p>Then press and hold enter the MaskROM button on password of the development boardWIFI hotspot, and then click '''Connect''' to start connecting to WIFI</p><p>[[File:plus5-img211.png]]</p></li><li><p>After connecting to WIFI, you can open the position browser to check whether you can access the Internet. The entrance of the MaskROM button on the development board browser is shown in the figure below:below</p><p>[[File:plus5-img212.png]]</p></li><li><p>If you can open other web pages after opening the browser, it means that the WIFI connection is normal</p><p>[[File:plus5-img213.png]]</p></li></ol>
[[File:.<span id="how-to-set-a-static-ip-address"></images/media/image64.png|456x103px]]span>
<ol start="4" style="list-style-type: lower-alpha;"><li>Then connect the power supply of the Type-C interface = How to the development board, and power on</li></ol>set a static IP address ===
[[File{| class="wikitable" style="background-color:.#ffffdc;width:800px;" |-| <big>'''Please do not set a static IP address by modifying the /imagesetc/medianetwork/image65interfaces configuration file.png'''</big>|441x135px]]}
<ol startspan id="5" style="listuse-the-nmtui-command-to-set-a-stylestatic-type: lowerip-alpha;address"><li/span>If the previous steps are successful, the development board will enter the '''MASKROM''' mode at this time, and the interface of ==== Use the burning tool will prompt &quot;'''found nmtui command to set a MASKROM device'''&quot;</li></ol>static IP address ====
<ol style="list-style-type: decimal;"><li><p>First run the '''nmtui''' command</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''nmtui'''</p>|}</li><li><p>Then select '''Edit a connection''' and press Enter</p><p>[[File:plus5-img214.png]]</p></li><li><p>Then select the network interface that needs to set a static IP address, such as setting the static IP address of the Ethernet interface to select '''Wired connection 1''' or '''Wired connection 2'''</p><p>[[File:plus5-img215.png]]</p></li><li><p>Then select '''Edit''' via the '''Tab''' key and press the Enter key</p><p>[[File:plus5-img216.png]]</p></li><li><p>Then use the Tab key to move the cursor to the &lt;'''Automatic'''&gt; position shown in the figure below to configure IPv4</p><p>[[File:plus5-img217.png]]</p></li><li><p>Then press Enter, select '''Manual''' through the up and down arrow keys, and press Enter to confirm</p><p>[[File:plus5-img218.png]]</p></li><li><p>The display after selection is shown in the figure below</p><p>[[File:plus5-img219.png]]</p></li><li><p>Then move the cursor to &lt;'''Show'''&gt; via the Tab key</p><p>[[File:plus5-img220.png]]</imagesp></mediali><li><p>Then press Enter, and the following setting interface will pop up after entering</image66p><p>[[File:plus5-img221.png]]</p></li><li><p>Then you can set the IP address (Addresses), gateway (Gateway) and DNS server address in the position shown in the figure below (there are many other setting options in it, please explore by yourself), '''<span style="color:#FF0000">please set according to your specific needs, The values set in the image below are just an example</span>'''</p><p>[[File:plus5-img222.png]]</p></li><li><p>After setting, move the cursor to '''&lt;OK&gt;''' in the lower right corner, and press Enter to confirm</p><p>[[File:plus5-img223.png]]</p></li><li><p>Then click '''&lt;Back&gt;''' to return to the previous selection interface</p><p>[[File:plus5-img224.png]]</p></li><li><p>Then select '''Activate a connection''', then move the cursor to '''&lt;OK&gt;''', and finally click Enter</p><p>[[File:plus5-img225.png]]</p></li><li><p>Then select the network interface that needs to be set, such as '''Wired connection 2''', then move the cursor to '''&lt;Deactivate&gt;''', and press the Enter key to disable '''Wired connection 2'''</p><p>[[File:plus5-img226.png]]</p></li><li><p>Then re-select and enable '''Wired connection 2''', so that the static IP set earlier will take effect</p><p>[[File:plus5-img227.png]]</p></li><li><p>Then you can exit nmtui through the '''&lt;Back&gt;''' and '''Quit''' buttons</p><p>[[File:plus5-img228.png]] [[File:plus5-img229.png|457x215px]]</p></li><li><p>Then through '''ip addr show,''' you can see that the IP address of the network port has changed to the static IP address set earlier</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ip addr show enP4p65s0'''</p><p>3: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000</p>:<p>link/ether 5e:ac:14:a5:92:b3 brd ff:ff:ff:ff:ff:ff</p>:<p>inet '''<span style="color:#FF0000">192.168.1.100</span>'''/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>Then you can test the connectivity of the network to check whether the IP address is configured OK, and the '''ping''' command can be interrupted through the shortcut key '''Ctrl+C'''</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ping 192.168.1.47 -I enP4p65s0'''</p><p>PING 192.168.1.47 (192.168.1.47) from 192.168.1.188 enP4p65s0: 56(84) bytes of data.</p><p>64 bytes from 192.168.1.47: icmp_seq=1 ttl=64 time=0.233 ms</p><p>64 bytes from 192.168.1.47: icmp_seq=2 ttl=64 time=0.263 ms</p><p>^C</p><p>--- 192.168.1.47 ping statistics ---</p><p>5 packets transmitted, 5 received, 0% packet loss, time 4042ms</p><p>rtt min/avg/max/mdev = 0.233/0.262/0.275/0.015 ms</p>|}</li></ol>
<ol startspan id="6" style="listuse-the-nmcli-command-to-set-a-stylestatic-type: lowerip-alpha;address"><li>Then click the &quot;'''Upgrade Firmware'''&quot; column of the burning tool</li></olspan>
[[File:./images/media/image220.png|442x208px]]==== Use the nmcli command to set a static IP address ====
<ol style="list-style-type: decimal;"><li><p>If you want to set the static IP address of the network port, please insert the network cable into the development board first. '''If you need to set the static IP address of WIFI, please connect the WIFI first''', and then startto set the static IP address</p></li><li><p>Then use the '''nmcli con show''' command to view the name of the network device, as shown below, '''Wired connection 1''' and '''Wired connection 2''' are the names of the Ethernet interfaces</p>{| class="7wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''nmcli con show'''</p><p>NAME &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UUID &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TYPE &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEVICE</p><p>Wired connection 1 &nbsp;&nbsp;&nbsp;&nbsp; c043c817-1156-3b72-a559-9a8cd642bf70 &nbsp;&nbsp;&nbsp;&nbsp; ethernet &nbsp;&nbsp;&nbsp;&nbsp; enP3p49s0</p><p>Wired connection 2 &nbsp;&nbsp;&nbsp;&nbsp; 6f74598a-ccc6-358b-be05-87eaf34df930 &nbsp;&nbsp;&nbsp;&nbsp; ethernet &nbsp;&nbsp;&nbsp;&nbsp; enP4p65s0</p>|}</li><li><p>Then enter the following command, where</p><ol style="list-style-type: lower-alpha;"><li>Then click <p>'''&quot;Wired connection 1&quot;''' means to set the static IP address of the Ethernet port. If you need to set the static IP address of other network ports, please modify it to the name corresponding to the corresponding network interface (you can get it through the '''nmcli con show''' command)</p></li><li><p>'''ipv4.addresses''' is followed by the static IP address to be set, which can be modified to the value you want to set</p></li><li><p>'''ipv4.gateway''' represents the address of the gateway</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''nmcli con mod &quot;Wired connection 1&quot; \'''</p><p>'''ipv4.addresses &quot;192.168.1.110&quot; \'''</p><p>'''ipv4.gateway &quot;192.168.1.1&quot; \'''</p><p>'''ipv4.dns &quot;8.8.8.8&quot; \'''Firmware</p><p>'''ipv4.method &quot;manual&quot; button to select '''</p>|}</li></ol></li><li><p>Then restart the linux system</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo reboot'''</p>|}</li><li><p>Then re-enter the path of linux system and use the Android image '''ip addr show''' command to see that needs the IP address has been set to be burnedthe desired value</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ip addr show'''</p><p>2: enP3p49s0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP group default qlen 1000</p>:<p>link/ether 00:e0:4c:68:00:26 brd ff:ff:ff:ff:ff:ff</p>:<p>inet '''<span style="color:#FF0000">192.168.1.110</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> <span id="how-to-use-e-key-pcie-wifi6bluetooth-module"></span> == How to use E-Key PCIe WIFI6+Bluetooth module ==
[[File:./images/media/image222.png|444x209px]]# First you need to buy a PCIe WIFI6+Bluetooth module
<ol start::{| class="8wikitable" style="list-style-typewidth: lower-alpha800px;"><li>Finally, click the &quot;|-| ''' S/N'''| '''Model'''| '''Physical picture'''| '''Supported OS'''|-| '''1'''| '''UpgradeAX200'''&quot; button to start burning, and the log during the burning process is shown in the figure below. After burning is completed, the Android system will start automatically.</li></ol>
[[File:./images/media/image224.png|449x211px]]'''(PCIE+USB port)'''
| [[File:plus5-img230.png]]| '''<span idstyle="how-to-burn-android-12-image-into-emmc-via-tf-cardcolor:#FF0000">Debian</span>=== How to burn Android 12 image into eMMC via TF card ==='''
'''Note that all the following operations are performed on a Windows computer.<span style="color:#FF0000">Ubuntu</span>'''
# The development board reserves an eMMC expansion interface. Before programming the system to eMMC, you first need to purchase an eMMC module that matches the eMMC interface of the development board. Then install the eMMC module to the development board. The location of the eMMC interface is as follows:'''OpenWRT'''
[[File:./images/media/image108.png|392x180px]]'''OPi OS Arch'''
<ol start="2" style="list|-style-type: decimal;"><li><p>You also need to prepare a TF card with 8GB or larger capacity. The transmission speed of the TF card must be class10 or above. It is recommended to use a TF card of SanDisk and other brands</p></li><li><p>Then use the card reader to insert the TF card into the computer</p></li><li><p>Then download the SDDiskTool programming tool from the | '''Orange Pi data download page''', '''please ensure that the version of the SDDiskTool tool is the latest v1.72'''</p></li><li><p>Then download the Android image from '''Orange Pi's download page2'''</p><ol style="list-style-type: lower-alpha;"><li>After opening the download link of the Android image, you can see the following two types of Android images, please | '''select the image in the TF card and eMMC startup imageAX210''' folder to download</li></ol></li></ol>
<div class="figure">'''(PCIE+USB port)'''
| [[File:./images/media/image219plus5-img231.png|240x98px|4db492fa03e0cf83396c36286128350]]| '''<span style="color:#FF0000">Debian</span>'''
'''</div><ol start="2" span style="list-style-typecolor: lower-alpha;#FF0000">Ubuntu<li><p/span>'''After entering the TF card and eMMC boot image folder '''OpenWRT''', you can see the following three images, the difference between them is:</p><ol style="list-style-type: lower-alpha;"><li><p>The first image is dedicated to HDMI display and supports 8K display. If you don’t use LCD screen, please download the image without lcd</p></li>'''OPi OS Arch''' <li><p>If you want to use lcd screen, please choose mirror with lcd</p></li>|-<li><p>The mirror with box is a mirror dedicated to the TV box</p></li></ol>| '''3'''</li></ol>| '''RTL8852BE'''
[[File:./images/media/image213.png|255x97px]]'''(PCIE+USB port)'''
| [[File:plus5-img232.png]]| '''<ol start="6" span style="list-style-typecolor: decimal;#FF0000"><li><p>Then use decompression software to decompress the compressed package of the downloaded Android image. Among the decompressed files, the file ending with &quot;.img&quot; is the Android image file, and the size is more than 1GB</p>Debian</lispan><li><p>Then use decompression software to decompress '''SDDiskTool_v1.72.zip''', this software does not need to be installed, just find '''SD_Firmware_Tool.ex''' in the decompressed folder and open it</p></li><li></li></ol>
[[File'''<span style="color:.#FF0000">Ubuntu</images/media/image214.png|429x103px]]span>'''
<ol start="9" style="list-style-type: decimal;"><li>After opening '''SDDiskToolAndroid12''', if the TF card is recognized normally, the inserted disk device will be displayed in the &quot;'''Select Removable Disk Device'''&quot; column. '''Please make sure that the displayed disk device is consistent with the drive letter of the TF card you want to burn''', if there is no display, you can try to unplug the TF card</li></ol>
[[File:./images/media/image215.png|267x228px]]'''OPi OS Arch'''
<ol start="10" style="list-style-type: decimal;"><li>After confirming the drive letter, you can format the TF card first, click the '''restore diskOPi OS Droid''' button in '''SDDiskTool,''' or use the '''SD Card Formatter''' mentioned above to format the TF card</li></ol>
[[File:./images/media/image216.png|247x212px]]}
<ol start="112" style="list-style-type: decimal;"><li><p>Then start to write insert the Android image module into the TF cardM.2 E-Key interface of the development board and fix it. The position is shown in the figure below:</p><p>[[File:plus5-img233.png]]</p></li><li><p>Then use the '''lspci''' command, if you can see the information of the WIFI module, it means that the module is in good contact</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First confirm that the displayed drive letter is the drive letter corresponding to the TF card under &quotAX200 displays as follows</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''Select Removable Disk Devicelspci | grep "Network"'''&quot;</p><p>0002:21:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)</p>|}</li><li><p>Then select &quotAX210 displays as follows</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''Firmware Upgrade''lspci | grep "Network"'&quot; in &quot;'''Select Function Mode'''&quot;</p></li><li><p>Then select the path of the Android firmware in the &quot;'''Select Upgrade Firmware'''&quot; column0002:21:00.0 Network controller: Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz (rev 1a)</p>|}</li><li><p>Finally click the &quotRTL8852 display as shown below</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''Start Createlspci | grep "Network"'''&quot; button to start burning</p></lip>0002:21:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)</olp>|}
</li></ol>
</li>
<li><p>Then use the following command to see that there will be an additional WIFI device node</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>[orangepi@orangepi ~]$ '''ip a'''</p>
|}
</li>
<li><p>For the WIFI connection and test method, please refer to the [[Orange Pi 5 Plus#WIFI connection test method|'''WIFI connection test section''']], and will not repeat them here.</p></li>
<li><p>For the test method of Bluetooth, please refer to the section on [[Orange Pi 5 Plus#How to use E-Key PCIe WIFI6+Bluetooth module|'''Bluetooth usage''']], so I won’t go into details here.</p></li></ol>
[[File:.<span id="ssh-remote-login-development-board"></images/media/image227.png|290x246px]]span>
<ol start="12" style="list-style-type: decimal;"><li><p>After the burning is completed, the display is as shown in the figure below, and then you can exit SDDiskTool</p></li><li></li></ol>SSH remote login development board ==
[[File{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Linux systems enable ssh remote login by default and allow the root user to log in to the system. Before logging in with ssh, you first need to ensure that the Ethernet or wifi network is connected, and then use the ip addr command or check the router to obtain the IP address of the development board.'''</images/media/image228.pngbig>|285x243px]]}
<ol start="14" style="list-style-type: decimal;">
<li><p>Then pull out the TF card from the computer and insert it into the development board. After the development board is powered on, it will automatically start burning the Android image in the TF card to the eMMC of the development board.</p></li>
<li><p>If the development board is connected to an HDMI display, you can also see the progress bar of burning the Android image to eMMC from the HDMI display</p></li>
<li></li></ol>
[[File:.<span id="ssh-remote-login-development-board-under-ubuntu"></images/media/image229.png|430x247px]]span>=== SSH remote login development board under Ubuntu ===
<ol start="17" style="list-style-type: decimal;"><li>When the HDMI monitor displays the following information, it means that # Obtain the burning IP address of the Android image into the eMMC has been completed. At this time, the TF card development board# Then you can be pulled out, and then remotely log in to the Android linux system in through the eMMC will start.</li></ol>ssh command
<span id="section-25"></span>=== [[File:./images/media/image230.png:{|576x389px]] === <ol startclass="18wikitable" style="list-style-typewidth: decimal800px;"><li></li><li></li><li></li><li></li><li><ol style="list|-style-type: lower-alpha;"><li></li>|<li><ol style="list-style-typetest@test: lower-alpha;"><li></li><li></li><li></li></ol></li></ol></li><li></li><li></li><li></li><li></li><li><ol style="list-style-type~$ '''ssh [mailto: lower-alpha;"><li></li><li></li><li></li><li></li></ol></li><li></li><li></li><li></li><li></li></ol>root@192.168.1.36 root@192.168.1.]xxx''' (Need to be replaced with the IP address of the development board)
<span id="how-to-burn-android-image-to-spiflashnvme-ssd"></span>root@192.168.1.xx's password: (Enter the password here, the default password is orangepi)== How to burn Android image to SPIFlash+NVMe SSD ==|}
::{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note that all when entering the following operations are performed password, <span style="color:#FF0000">the specific content of the entered password will not be displayed on a Windows computerthe screen</span>, please do not think that there is any fault, just press Enter after inputting.'''
# First, '''If you need are prompted to prepare an M-Key 2280 specification NVMe SSD solid state driverefuse the connection, and as long as you are using the specification of image provided by Orange Pi, <span style="color:#FF0000">please do not suspect that the PCIe interface in the M.2 slot of the development board password orangepi is PCIe3.0x4wrong</span>, but look for other reasons.'''</big>|}
[[File<ol start="3" style="list-style-type:.decimal;"><li><p>After successfully logging in to the system, the display is as shown in the figure below</images/media/image26.png|361x104px]]p><div class="figure">
<ol start="2" style="list[[File:plus5-style-type: decimal;"><li>Then insert the NVMe SSD into the Mimg240.2 PCIe interface of the development board and fix it</li></ol>png]]
[[File:.</images/media/image126.png|355x143px]]div>
<ol start{| class="3wikitable" style="listbackground-style-typecolor:#ffffdc;width: decimal800px;"|-| <big><lip>The position '''If ssh fails to log in to the linux system normally, first check whether the IP address of the SPI Flash on the development board can be pinged. If the ping is shown ok, you can log in to the figure below, no other settings are required before starting linux system through the serial port or HDMI display and then enter the following command on the programmingdevelopment board and try again. Is it possible to connect:'''</lip></olbig>
[[File:./images/media/image127.png|415x114px]]
<ol start="4" style="list-style-typeroot@orangepi: decimal;"><li>It is also necessary to prepare a data cable with a good quality Type-C interface</li></ol>~# '''reset_ssh.sh'''
[[File:./images/media/image22.png|150x152px]]
<ol start="5" style="list-style-type: decimal;"big><li><p>Then download Rockchip driver '''DriverAssitant_v5.12.zipIf it still doesn''' and burning tool '''RKDevTool_Release_v3.15.zip''' from '''Orange Pi's data download paget work, try to reset the system.'''</p></li><li><p>Then download the Android12 image from the '''Orange Pi download page'''</pbig><ol style="list-style-type: lower-alpha;"><li>After opening the download link of the Android image, you can see the following two types of Android images, please select the image in the '''SPIFlash-NVME SSD boot image''' folder to download</li></ol>|}
</li></ol>
<span id="ssh-remote-login-development-board-under-windows"></span>
[[File:./images/media/image231.png|234x91px]]=== SSH remote login development board under Windows ===
<ol start="2" style="list-style-type: lower-alphadecimal;"><li><p>After entering First obtain the '''SPIFlash-NVME SSD boot image''' folderIP address of the development board</p></li><li><p>Under Windows, you can see use MobaXterm to remotely log in to the following three images. Their differences are:development board, first create a new ssh session</p>
<ol style="list-style-type: lower-alpha;">
<li><p>The first image is dedicated to HDMI display and supports 8K display. If you don’t use LCD screen, please download the image without lcdOpen '''Session'''</p></li><li><p>If you want to use lcd screen, please choose image with lcdThen select '''SSH''' in '''Session Setting'''</p></li><li><p>The image with box is a image dedicated to Then enter the IP address of the development board in the TV box'''Remote host'''</p></li><li><p>Then enter the user name '''root''' or '''orangepi''' of the linux system in '''Specify username'''</olp></li></li><p>Finally click '''OK'''</olp><div class="figure">
[[File:./images/media/image232plus5-img241.png|241x70px]]
</div></li></ol start></li><li><p>Then you will be prompted to enter a password. The default passwords for root and orangepi users are orangepi</p>{| class="7wikitable" style="listbackground-style-typecolor:#ffffdc;width: decimal800px;"|-| <big><lip>Then use the decompression software to decompress '''DriverAssitant_v5.12.zip'''Note that when entering the password, and then find the '''DriverInstallspecific content of the entered password will not be displayed on the screen, please do not think that there is any fault, just press Enter after inputting.exe''' executable file in the decompressed folder and open it</lip></olbig>
[[File:./images/media/image57plus5-img242.png|575x169pxcenter]]|}</li></ol><ol start="4" style="list-style-type: decimal;"><li>After successfully logging in to the system, the display is as shown in the figure below</li>
8) After opening DriverInstall[[File:plus5-img243.exe, the steps png]]</ol><span id="how-to install the Rockchip driver are as follows-use-adb"></span>
a. Click the &quot;'''Driver Install'''&quot; button== How to use ADB ==
[[File:.<span id="how-to-use-network-adb"></images/media/image58.png|300x157px]]span>=== How to use network adb ===
a. <ol style="list-style-type: decimal;"><li><p>After waiting for a period of timethe system starts, a pop-up window will prompt &quot;please confirm that '''driver installed successfullyadbd'''has been started</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ps -ax | grep &quot;, then click the adbd&quot;'''OK'''</p><p>808 ? &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sl &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quotnbsp; button [[File0:.00 /usr/imagesbin/mediaadbd</image59.pngp><p>3707 ttyFIQ0 &nbsp;&nbsp; S+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:00 grep --color=auto adbd</p>|429x223px]]}</li><blockquoteli><p>9)Then decompress '''RKDevTool_Release_v3.15.zip''', this software does not need to be installed, just find '''RKDevTool''' in check the IP address of the decompressed folder development board and open write itdown</p></li><li><p>Then install the adb tool on the Ubuntu PC</blockquotep>[[File:./images/media/image60.png{|421x124px]] <ol startclass="11wikitable" style="list-style-typewidth: decimal800px;">|-|<lip>After opening the test@test:~$ '''RKDevToolsudo apt-get update''' burning tool, because the computer is not connected to the development board through the Type-C cable at this time, the lower left corner will prompt &quot;</p><p>test@test:~$ '''No device foundsudo apt-get install -y adb'''&quot;</lip>|}</olli[[File:.<li><p>Then use the following command to connect to the network adb</imagesp></media/image61.png|442x208px]]li>
<ol start{| class="12wikitable" style="list-style-typewidth: decimal800px;"><li><p>Then start burning the Android image to SPIFlash+NVMe SSD</p>|-|test@test:~$ '''adb connect 192.168.1.xx:5555 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <ol span style="list-style-typecolor: lower-roman;#FF0000"><li></li>#Please replace the IP address with the IP address of the development board</olspan>'''
<!-- --><ol style="list-style-type* daemon not running; starting now at tcp: lower-alpha;"><li>First, connect the development board to the Windows computer &gt; through the Type-C data cable. The position of the Type-C &gt; interface on the development board is shown in the figure &gt; below</li></ol></li></ol>5037
<div class="figure">* daemon started successfully
[[File:connected to 192.168./images/media/image631.jpeg|418x118px|Cxx:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-2.jpg未标题-2]]5555
</div><ol start="2" style="list-style-typetest@test: lower-alpha;"><li><p>Make sure that the development board is not plugged into TF and eMMC &gt; modules, and is not connected to the power supply</p></li><li><p>Then press and hold the MaskROM button on the development board, the &gt; position of the MaskROM button on the development board is shown &gt; in the figure below:</p></li></ol>~$ '''adb devices'''
[[File:./images/media/image64.png|443x100px]]List of devices attached
'''<span style="color:blue">192.168.1.xx:5555 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; device</span>'''|}</ol><ol start="45" style="list-style-type: lower-alphadecimal;"><li>Then connect use the following command to log in to the power supply linux system of the Type-C interface to the &gt; development board, and power on, and then release the MaskROM &gt; button</li></ol>
[[File{| class="wikitable" style="width:./images/media/image65.png800px;" |449x137px]]-|test@test:~$ '''adb shell'''
'''root@orangepi5plus:/# &lt;--- After seeing this prompt, it means that you have successfully logged in to the development board'''|}</ol><ol start="56" style="list-style-type: lower-alphadecimal;"><li>If the previous steps are successful, <p>The command to upload files to the development board will &gtusing adb is as follows</p>{| class="wikitable" style="width:800px; enter the " |-|<p>test@test:~$ '''MASKROMadb push filename /root''' mode at this time, and </p><p>filename: 1 file pushed. 3.7 MB/s (1075091 bytes in 0.277s)</p>|}</li><li><p>The command to restart the interface of the &gt; burning tool will prompt &quotdevelopment board using adb is as follows</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''Found a MASKROM deviceadb reboot'''&quot;</li></olp>|}
[[File:./images/media/image66.png{|457x215px]] <ol startclass="6wikitable" style="listbackground-style-typecolor:#ffffdc;width: lower-alpha800px;">|-| <libig>Then click '''If there is no adb tool in your Windows system, you can use the adb program in the RKDevTool software (this software is useful in the section on [[Orange Pi 5 Plus#How to use RKDevTool to burn Linux image to TF card|'''how to use RKDevTool to burn the &quot;Upgrade Firmware&quot; column of Linux image to the burning tool</li>TF card''']]).'''</olbig>
[[File:./images/media/image220plus5-img244.png|442x208px]]
<ol start="7" style="list-style-typebig>'''An example using adb in Windows looks like this: lower-alpha;"><li>Then click the &quot;Firmware&quot; button to select the Android image to be &gt; burned</li>'''</olbig>
[[File:./images/media/image222plus5-img245.png|447x210px800px]]|}</li></ol>
<ol startspan id="8" style="listadb3.9.2.-styleuse-type: lower-alpha;c-data-cable-to-connect-to-adb"><li>Finally, click the &quot;Upgrade&quot; button to start burning. The burning &gt; process is shown in the figure below. After the burning is &gt; completed, the Android system will automatically start.</li></olspan>
[[File:=== adb3./images/media/image2339.png|450x210px]]2. Use type-c data cable to connect to adb ===
<span idol style="howlist-tostyle-burntype: decimal;"><li><p>First prepare a good quality Type-orangeC data cable</p><p>[[File:plus5-pi-os-droid-image-toimg21.png]]</p></li><li><p>Then connect the development board and Ubuntu PC through the Type-tfC data cable. The position of the Type-card">C interface of the development board is shown in the figure below:</spanp><div class== How to burn Orange Pi OS (Droid) image to TF card =="figure">
'''Note that all the following operations are performed on a Windows computer[[File:plus5-img173.'''png]]
# First prepare a TF card with 8GB or larger capacity. The transmission speed of the TF card must be class10 or above. It is recommended to use a TF card of SanDisk and other brands</div></li># <li><p>Then use run the card reader following command to insert set the TF card into the computerType-C interface to '''device''' mode</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo set_device.sh'''</p>|}# Then download the SDDiskTool programming tool from <p>If the '''Orange Pi data download pageset_device.sh'''script does not exist in the Linux system, please use the following command directly:</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''please make sure that the version of thesudo bash -c &quot;echo device &gt; /sys/kernel/debug/usb/fc000000.usb/mode&quot;''' </p><p>orangepi@orangepi:~$ '''SDDiskToolsudo systemctl restart usbdevice'''</p>|}</li><li><p>' ''Then please confirm that adbd has been started'tool is the latest v1.72.''</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ps -ax | grep &quot;adbd&quot;'''</p># <p>808 ? &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sl &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0:00 /usr/bin/adbd</p><p>3707 ttyFIQ0 &nbsp;&nbsp; S+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:00 grep --color=auto adbd</p>|}</li><li><p>Then download install the Orange Pi OS (Droid) image from adb tool on the OUbuntu PC</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''sudo apt-get update''range Pi data download page'</p><p>test@test:~$ '', open the download link of the Orange Pi OS (Droid) image, and you can see 'sudo apt-get install -y adb'''</p>|}</li><li><p>Then use the following two types of images, please select command to check whether the image belowadb device is recognized</p></li>{| class="wikitable" style="width:800px;" |-|test@test:~$ '''adb devices'''
[[File:./images/media/image235.png|286x49px]] <ol start="5" style="list-style-type: decimal;"><li><p>Then use decompression software to decompress the compressed file List of the downloaded Orange Pi OS (Droid) image. Among the decompressed files, the file ending with &quot;'''.img'''&quot; is the Orange Pi OS (Droid) image file, and the size is more than 1GB</p></li><li><p>Then use decompression software to decompress '''SDDiskTool_v1.72.zip''', this software does not need to be installed, just find '''SD_Firmware_Tool.ex''' in the decompressed folder and open it</p></li></ol> [[File:./images/media/image214.png|486x117px]]devices attached
'''e0f9f71bc343c305 device'''
|}
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>After opening '''SDDiskTool''', if Then use the TF card is recognized normally, the inserted disk device will be displayed following command to log in to the &quot;'''Select Removable Disk Device'''&quot; column. '''Please make sure that the displayed disk device is consistent with the drive letter linux system of the TF card you want to burn''' , if there is no display, you can try to unplug the TF carddevelopment board</li></ol>{| class="wikitable" style="width:800px;" |-|[[Filetest@test:./images/media/image215.png|248x212px]]~$ '''adb shell'''
'''root@orangepi5plus:/# &lt;--- After seeing this prompt, it means that you have successfully logged in to the development board'''
|}
</ol>
<ol start="8" style="list-style-type: decimal;">
<li>After confirming the drive letter, you can format the TF card first, click <p>The command to upload files to the development board using adb is as follows</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''restore diskadb push filename /root''' button </p><p>filename: 1 file pushed. 3.7 MB/s (1075091 bytes in SDDiskTool, or use the '''SD Card Formatter''' mentioned above to format the TF card0.277s)</lip>|}</olli>
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''If there is no adb tool in your Windows system, you can use the adb program in the RKDevTool software (this software is useful in the section on [[File:./images/media/image216.pngOrange Pi 5 Plus#How to use RKDevTool to burn Linux image to TF card|261x224px'''how to use RKDevTool to burn the Linux image to the TF card''']]).'''</big>
<ol start="9" style="list-style-type: decimal;"><li><p>Then start to write the Orange Pi OS (Droid) image into the TF card</p><ol style="list-style-type[[File: lowerplus5-alpha;"><li><p>First check &quot;'''SD Boot'''&quot; in &quot;'''Select Function Mode'''&quot;</p></li><li><p>Then select the path of the Orange Pi OS (Droid) image in the &quot;'''Select to upgrade firmware'''&quot; column</p></li><li><p>Finally, click the &quot;'''Start Create'''&quot; button to start burning the Orange Pi OS (Droid) image to the TF card</p></li></ol></li></ol>img244.png]]
[[File<big>'''An example using adb in Windows looks like this:.'''</images/media/image217.png|279x236px]]big>
[[File:plus5-img246.png|800px]]|}</ol start><span id="10" style="listthe-method-of-uploading-files-styleto-type: decimal;"><li>After burning, you can exit the SDDiskTool software, and then you can pull out the TF card from the computer and insert it into -linux-system-of-the -development -board to start</li"></olspan>
[[File:./images/media/image218.png|304x258px]]== The method of uploading files to the Linux system of the development board ==
<span id="how-to-burnupload-orangefiles-pito-the-development-osboard-droidlinux-imagesystem-intoin-emmcubuntu-pc"></span>=== How to burn Orange Pi OS (Droid) image into eMMC upload files to the development board Linux system in Ubuntu PC ===
'''Note, after burning the image into eMMC, if the test finds that it cannot be started, please clear the SPIFlash and try again. For <span id="how-to-upload-files-using-the method of clearing SPIFlash, please refer -scp-command"></span>==== How to upload files using the method of using RKDevTool to clear SPIFlash.'''scp command ====
<span idol style="burnlist-orangestyle-pitype: decimal;"><li><p>Use the scp command to upload files from the Ubuntu PC to the Linux system on the development board. The specific commands are as follows</p><ol style="list-osstyle-droidtype: lower-imagealpha;"><li><p>'''file_path''': need to be replaced with the path of the file to be uploaded</p></li><li><p>'''orangepi''': It is the user name of the Linux system of the development board, and it can also be replaced with other ones, such as root</p></li><li><p>'''192.168.xx.xx''': It is the IP address of the development board, please modify it according to the actual situation</p></li><li><p>'''/home/orangepi''': The path in the Linux system of the development board, which can also be modified to other paths</p>{| class="wikitable" style="width:800px;" |-toemmc"|<p>test@test:~$ '''scp file_path orangepi@192.168.xx.xx:/home/orangepi/'''</p>|}</li></ol></li><li><p>If you want to upload a folder, you need to add the -r parameter</spanp>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''scp <span style= Burn Orange Pi OS (Droid) image toeMMC "color:#FF0000">-r</span> dir_path orangepi@192.168.xx.xx:/home/orangepi/'''</p>|}</li><li><p>There are more usages of scp, please use the following command to view the man manual</p></li>{| class="wikitable" style="width:800px;" |-|test@test:~$ '''man scp'''|}</ol><span id="how-to-upload-files-using-filezilla"></span>
'''Note that all the following operations are performed on a Windows computer.'''==== How to upload files using filezilla ====
# The development board reserves an eMMC expansion interface. Before programming the system to eMMC, you first need to purchase an eMMC module that matches the eMMC interface of the development board. <ol style="list-style-type: decimal;"><li><p>First install filezilla in Ubuntu PC</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''sudo apt install -y filezilla'''</p>|}</li><li><p>Then install use the eMMC module following command to the development board. open filezilla</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''filezilla'''</p>|}</li><li><p>The location of the eMMC interface after filezilla is opened is as follows:, at this time, the display under the remote site on the right is empty</p><div class="figure">
[[File:./images/media/image108plus5-img247.png|324x149px]]
<ol start="2" style="list-style-type: decimal;"/div></li><li>It <p>The method of connecting the development board is also necessary to prepare a data cable with a good quality Type-C interfaceshown in the figure below</lip></olli>
[[File:./images/media/image22.png|127x129px]]<div class="figure">
<ol start="3" style="list[[File:plus5-style-type: decimal;"><li><p>Then download Rockchip driver DriverAssitant_v5.12.zip and burning tool '''RKDevTool_Release_v3.15img248.zip'''from '''Orange Pi's data download page'''</p></li><li><p>Then download the Orange Pi OS (Droid) image from the '''Orange Pi download page'''</p></li></ol>png]]
</div></ol><ol start="5" style="list-style-type: decimal;"><li><p>Then choose to '''save the password''', and then click '''OK'''</p><p>[[File:plus5-img249.png]]</imagesp></mediali><li><p>Then choose to '''always trust this host''', and then click '''OK'''</image235.png|286x49px]]p></li>
<ol startdiv class="5figure" style="list-style-type: decimal;"><li><p>Then use decompression software to decompress the compressed file of the downloaded Orange Pi OS (Droid) image. Among the decompressed files, the file ending with &quot;'''.img'''&quot; is the Orange Pi OS (Droid) image file, and the size is more than 1GB</p></li><li><p>Then use decompression software to decompress '''DriverAssitant_v5.12.zip''', then find the '''DriverInstall.exe''' executable file in the decompressed folder and open it</p></li></ol>
[[File:./images/media/image57plus5-img250.png|575x169px]]
</div></ol>
<ol start="7" style="list-style-type: decimal;">
<li><p>After opening '''DriverInstall.exe'''the connection is successful, you can see the directory structure of the steps to install development board linux file system on the Rockchip driver are as follows</p><ol style="list-style-type: lower-alpha;"><li>Click right side of the &quot;Driver Installation&quot; buttonfilezilla software</li></ol></li></ol>
[[File:./images/media/image58.png|300x157px]]<div class="figure">
<ol start="2" style="list-style-type[[File: lower-alpha;"><li>After waiting for a period of time, a popplus5-up window will prompt &quot;driver installed successfully&quot;, and then click the &quot;OK&quot; buttonimg251.</li></ol>png]]
[[File</div></ol><ol start="8" style="list-style-type:decimal;"><li>Then select the path to be uploaded to the development board on the right side of the filezilla software, and then select the file to be uploaded on the Ubuntu PC on the left side of the filezilla software, then click the right mouse button, and then click the upload option to start uploading the file to the development board bingo.</images/media/image59.png|318x165px]]li>
<ol startdiv class="8figure" style="list-style-type: decimal;"><li>Then decompress'''RKDevTool_Release_v3.15.zip''', this software does not need to be installed, just find '''RKDevTool''' in the decompressed folder and open it</li></ol>
[[File:./images/media/image60plus5-img252.png|575x170px]]
</div></ol>
<ol start="9" style="list-style-type: decimal;">
<li><p>After opening the '''RKDevTool''' burning toolupload is complete, because you can go to the computer is not connected to corresponding path in the Linux system of the development board through to view the Type-C cable at this timeuploaded file</p></li><li><p>The method of uploading a folder is the same as that of uploading a file, the lower left corner will prompt &quot;'''No device found''so I won'&quot;t go into details here</p></li></ol>
[[File:.<span id="the-method-of-uploading-files-to-the-development-board-linux-system-in-windows-pc"></images/media/image61.png|442x208px]]span>
<ol start="10" style="list-style-type: decimal;"><li><p>Then start burning Orange Pi OS (Droid) image into eMMC</p><ol style="list-style-type: lower-alpha;"><li>First, connect the development board to the Windows computer through the Type-C data cable. The position method of the Type-C interface on uploading files to the development board is shown Linux system in the figure below</li></ol></li></ol>Windows PC ===
<span id="how-to-upload-files-using-filezilla-1"></span>==== How to upload files using filezilla ==== <ol style="list-style-type: decimal;"><li><p>First download the installation file of the Windows version of the filezilla software, the download link is as follows</p>{| class="wikitable" style="width:800px;" |-|'''https://filezilla-project.org/download.php?type=client'''|}<div class="figure">
[[File:./images/media/image63.jpeg|468x132px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题plus5-2img253.jpg未标题-2png]]
</div>
<ol start="2" style="list-style-type[[File: lowerplus5-alpha;"><li><p>Make sure that the development board is not inserted into the TF card and not connected to the power supply</p></li>img254.png]]<li><p>Then press and hold the MaskROM button on the development board, the position of the MaskROM button on the development board is shown in the figure below:</p></li></ol>
[[File<ol start="2" style="list-style-type:decimal;"><li><p>The downloaded installation package is as follows, and then double-click to install directly</p>{| class="wikitable" style="width:800px;" |-|<p>'''FileZilla_Server_1.5.1_win64-setup.exe'''</images/media/image64.pngp>|479x108px]]}
<ol start="4" style="list-style-type: lower-alpha;"><li>Then connect During the power supply of installation process, please select '''Decline''' on the Type-C following installation interface to the development board, and power on</li></ol>then select '''Next&gt;'''
[[File:./images/media/image65.png|457x140px]]<div class="figure">
<ol start="5" style="list-style-type[[File: lowerplus5-alpha;"><li>If the previous steps are successful, the development board will enter the '''MASKROM''' mode at this time, and the interface of the burning tool will prompt &quot;'''found a MASKROM device'''&quot;</li></ol>img255.png]]
[[File:.</div></imagesli></mediaol><ol start="3" style="list-style-type: decimal;"><li>The interface after filezilla is opened is as follows, at this time, the display under the remote site on the right is empty</image66.png|457x215px]]li>
<ol startdiv class="6figure" style="list-style-type: lower-alpha;"><li>Then click the &quot;'''Upgrade Firmware'''&quot; column of the burning tool</li></ol>
[[File:./images/media/image220plus5-img256.png|461x217px]]
</div></ol><ol start="74" style="list-style-type: lower-alphadecimal;"><li>Then click The method of connecting the &quot;'''Firmware'''&quot; button to select development board is shown in the path of the Orange Pi OS (Droid) image that needs to be burnedfigure below:</li></ol>
[[File:./images/media/image222.png|453x213px]]<div class="figure">
<ol start="8" style="list-style-type[[File: lowerplus5-alpha;"><li>Finally, click the &quot;'''Upgrade'''&quot; button to start burning, and the log during the burning process is shown in the figure below. After burning, the Orange Pi OS (Droid) system will start automaticallyimg248.</li></ol>png]]
[[File:.</imagesdiv></mediaol><ol start="5" style="list-style-type: decimal;"><li>Then choose to '''save the password''', and then click '''OK'''</image236.png|456x214px]]li>
<span iddiv class="burn-orange-pi-os-droid-image-to-emmc-via-tf-cardfigure"></span>=== Burn Orange Pi OS (Droid) image to eMMC via TF card ===
'''Note that all the following operations are performed on a Windows computer[[File:plus5-img257.'''png]]
# The development board reserves an eMMC expansion interface. Before programming the system </div></ol><ol start="6" style="list-style-type: decimal;"><li>Then choose to eMMC'''always trust this host''', you first need to purchase an eMMC module that matches the eMMC interface of the development board. Then install the eMMC module to the development board. The location of the eMMC interface is as follows:and then click '''OK'''</li>
[[File:./images/media/image108.png|342x157px]]<div class="figure">
<ol start="2" style="list[[File:plus5-style-type: decimal;"><li><p>You also need to prepare a TF card with 8GB or larger capacity. The transmission speed of the TF card must be class10 or above. It is recommended to use a TF card of SanDisk and other brands</p></li><li><p>Then use the card reader to insert the TF card into the computer</p></li><li><p>Then download the SDDiskTool programming tool from the '''Orange Pi data download page''', '''please ensure that the version of the SDDiskTool tool is the latest v1.72img258.'''</p></li><li><p>Then download the Orange Pi OS (Droid) image from the '''Orange Pi download page'''</p></li></ol>png]]
[[File:.</imagesdiv></mediaol><ol start="7" style="list-style-type: decimal;"><li>After the connection is successful, you can see the directory structure of the development board linux file system on the right side of the filezilla software</image235.png|286x49px]]li>
<ol startdiv class="6figure" style="list-style-type: decimal;"><li><p>Then use the decompression software to decompress the compressed package of the downloaded Orange Pi OS (Droid) image. Among the decompressed files, the file ending with &quot;.img&quot; is the Orange Pi OS (Droid) image file, and the size is more than 1GB</p></li><li><p>Then use decompression software to decompress '''SDDiskTool_v1.72.zip''', this software does not need to be installed, just find '''SD_Firmware_Tool.exe''' in the decompressed folder and open it</p></li></ol>
[[File:./images/media/image214plus5-img259.png|454x109px]]
</div></ol>
<ol start="8" style="list-style-type: decimal;">
<li>After opening '''SDDiskTool''', if Then select the path to be uploaded to the development board on the right side of the TF card is recognized normallyfilezilla software, and then select the inserted disk device will file to be displayed in uploaded on the &quot;'''Select Removable Disk Device'''&quot; column. '''Please make sure that Windows PC on the displayed disk device is consistent with the drive letter left side of the TF card you want to burn'''filezilla software, if there is no displaythen click the right mouse button, you can try and then click the upload option to start uploading the file to unplug the TF card.development board bingo</li></ol>
[[File:./images/media/image215.png|267x228px]]<div class="figure">
[[File:plus5-img260.png]]
 
</div></ol>
<ol start="9" style="list-style-type: decimal;">
<li><p>After confirming the drive letterupload is complete, you can format go to the TF card first, click corresponding path in the restore disk button in '''SDDiskTool''', or use Linux system of the '''SD Card Formatter''' mentioned above development board to format view the TF carduploaded file</p></li><li><p>The method of uploading folders is the same as that of uploading files, so I won’t go into details here.</p></li></ol>
[[File:.<span id="hdmi-test"></images/media/image216.png|267x228px]]span>
<ol start="10" style="list-style-type: decimal;"><li>Then start to write the Orange Pi OS (Droid) image into the TF card</li></ol>HDMI test ==
a. First confirm that the displayed drive letter is the drive letter corresponding to the TF card under &quot;'''Select Removable Disk Device'''&quot;<span id="hdmi-test-1"></span>=== HDMI test ===
b<ol style="list-style-type: decimal;"><li><p>There are two HDMI output interfaces on the development board, and their locations are shown in the figure below:</p><p>[[File:plus5-img261. Then select &quotpng]]</p></li><li><p>By default, the Linux system configures HDMI_TX1 to support 8K display, and HDMI_TX2 supports only 4K display by default (only one HDMI_TX interface can support 8K display at a time). If you want to set HDMI_TX2 to support 8K display, please follow the steps below:</p><ol style="list-style-type: lower-alpha;"><li><p>First run '''Firmware Upgradeorangepi-config''', normal users remember to add &quotgt; in &quot'''sudo''' permission</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''Select Function Modesudo orangepi-config'''&quot;</p>|}</li>c<li><p>Then select '''System'''</p><p>[[File:plus5-img234. png]]</p></li><li><p>Then select '''Hardware'''</p><p>[[File:plus5-img235.png]]</p></li><li><p>Then use the path arrow keys of the Orange Pi OS (Droid) firmware keyboard to navigate to the &gt; position shown in the figure below, and then use the '''space''' &quotgt;to select '''Select Upgrade Firmwarehdmi2-8k''' configuration</p><p>[[File:plus5-img262.png]]</p></li><li><p>Then select '''&quotlt; columnSave&gt;''' to save</p><p>[[File:plus5-img263.png]]</p></li>d. Finally click the <li><p>Then select '''&lt;Back&quotgt;'''Start Create</p><p>[[File:plus5-img264.png]]</p></li><li><p>Then select '''&quotlt; button Reboot&gt;''' to restart the system to start burningmake the &gt; configuration take effect</p><p>[[File:plus5-img239.png]]</p></li></ol></li><li><p>Then use HDMI to HDMI cable to connect Orange Pi development board and HDMI display</p><p>[[File:plus5-img11.png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''Note, if you want to connect a 4K or 8K display, please make sure that the HDMI cable supports 4K or 8K video display.'''</p></big>|}</li><li><p>After starting the linux system, if the HDMI display has image output, it means that the HDMI interface is in normal use</p></li>
[[File{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note that although many laptops have an HDMI interface, the HDMI interface of the notebook generally only has the output function, and does not have the function of HDMI in, that is to say, the HDMI output of the development board cannot be displayed on the screen of the notebook./images/media/image227.png|289x246px]]'''
<ol start="11" style="list-style-type: decimal;"><li>After '''When you want to connect the HDMI of the development board to the HDMI port of the burning is completedlaptop, please make sure that your laptop supports the display is as shown HDMI in the figure below, and then you can exit SDDiskToolfunction.'''</li></olbig>|}
[[File{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''When the HDMI is not displayed, please check whether the HDMI cable is plugged in tightly. After confirming that there is no problem with the connection, you can change a different screen and try to see if it is displayed.'''</imagesbig>|}</mediaol><span id="hdmi-in-test-method"></image228.png|285x243px]]span>
<ol start="12" style="list-style-type: decimal;"><li><p>Then pull out the TF card from the computer and insert it into the development board. After the development board is powered on, it will automatically start burning the Orange Pi OS (Droid) image in the TF card to the eMMC of the development board.</p></li><li><p>If the development board is connected to an = HDMI display, you can also see the progress bar of burning the Orange Pi OS (Droid) image to eMMC from the HDMI display</p></li></ol>IN test method ===
<ol style="list-style-type: decimal;"><li><p>The location of the HDMI In interface on the development board is as follows:</p><p>[[File:plus5-img265.png]]</imagesp></mediali><li><p>First use the HDMI to HDMI cable shown in the figure below to connect the HDMI output of other devices to the HDMI In interface of the development board</image229p><p>[[File:plus5-img11.png]]</p></li><li><p>The HDMI In function of the Linux system is disabled by default, and the opening method is as follows:</p><ol style="list-style-type: lower-alpha;"><li><p>First run '''orangepi-config''', normal users remember to add '''sudo''' permission</p>{|430x247pxclass="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li><li><p>Then select '''System'''</p><p>[[File:plus5-img234.png]]</p></li><li><p>Then select '''Hardware'''</p><p>[[File:plus5-img235.png]]</p></li><li><p>Then use the arrow keys of the keyboard to navigate to the position shown in the figure below, and then use the '''space''' to select the '''hdmirx''' configuration</p><p>[[File:plus5-img266.png]]</p></li><li><p>Then select '''&lt;Save&gt;''' to save</p><p>[[File:plus5-img263.png]]</p></li><li><p>Then select '''&lt;Back&gt;'''</p><p>[[File:plus5-img264.png]]</p></li><li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the configuration take effect</p><p>[[File:plus5-img239.png]]</p></li></ol></li><li><p>Restart the system and open a terminal on the desktop, then run the '''test_hdmiin.sh''' script</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''test_hdmiin.sh'''</p>|}</li><li><p>Then you can see the input screen of HDMI In (the HDMI In in the figure below shows the HDMI output screen of the opi5 development board, and a video is being played at this time). The '''test_hdmiin.sh''' script will play the audio input from HDMI In to HDMI_TX1, HDMI_TX2 and ES8388 (representing speakers or headphones) of the development board by default.</p><div class="figure">
<ol start="14" style="list-style[[File:plus5-type: decimal;"><li>When the HDMI monitor displays the following information, it means that the burning of the Orange Pi OS (Droid) image to the eMMC has been completed. At this time, the TF card can be pulled out, and then the Orange Pi OS (Droid) system in the eMMC will start to start img267.</li></ol>png]]
[[File:.</imagesdiv></mediali></image230.png|576x389px]]ol>
<span id="burnhdmi-orange-pi-osto-droidvga-imagedisplay-to-spiflashnvme-ssdtest"></span>== Burn Orange Pi OS (Droid) image to SPIFlash+NVMe SSD ==
'''Note that all the following operations are performed on a Windows computer.'''=== HDMI to VGA display test ===
# <ol style="list-style-type: decimal;"><li><p>First, you need to prepare a 2280 specification NVMe SSD solid state drive. The specification of the PCIe interface in the M.2 slot of the development board is PCIe3.0x4.following accessories</p><ol style="list-style-type: lower-alpha;"><li><p>HDMI to VGA Converter</p><p>[[File:plus5-img268.png]]</imagesp></mediali><li><p>A VGA cable</image26p><p>[[File:plus5-img269.png|314x91px]]</p></li><li><p>A monitor or TV that supports VGA interface</p></li></ol></li><li><p>The HDMI to VGA display test is as follows:</p><ol startp>[[File:plus5-img270.png]]</p>{| class="2wikitable" style="listbackground-style-typecolor:#ffffdc;width: decimal800px;"|-| <big><lip>Then insert '''When using HDMI to VGA display, the development board and the Linux system of the NVMe SSD into development board do not need to make any settings, only the M.2 PCIe HDMI interface of the development board can display normally. So if there is a problem with the test, please check whether there is a problem with the HDMI to VGA converter, VGA cable and fix itmonitor.'''</p></big>|}</li></ol>
[[File:.<span id="hdmi-resolution-setting-method"></images/media/image126.png|323x130px]]span>
<ol start="3" style="list-style-type: decimal;"><li>The position of the SPI Flash on the development board is shown in the figure below, no other settings are required before starting the programming</li></ol>= HDMI resolution setting method ===
<ol style="list-style-type: decimal;"><li><p>First open '''Display''' in '''Settings'''</p><p>[[File:plus5-img271.png]]</imagesp></mediali><li><p>Then you can see the current resolution of the system</image127p><p>[[File:plus5-img272.png|382x105px]]</p></li><li><p>Click the drop-down box of Resolution to see all resolutions currently supported by the monitor</p><p>[[File:plus5-img273.png]]</p></li><li><p>Then select the resolution you want to set, and click Apply</p><p>[[File:plus5-img274.png]]</p></li><li><p>After the new resolution is set, select '''Keep the configuration'''</p><p>[[File:plus5-img275.png]]</p></li></ol>
<ol startspan id="4" style="listhow-to-styleuse-type: decimal;bluetooth"><li/span>It is also necessary == How to prepare a data cable with a good quality Type-C interface</li></ol>use Bluetooth ==
[[File{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''<span style="color:#FF0000">Please note that there is no Bluetooth module on the Orange Pi 5 Plus development board, and an external PCIe network card with Bluetooth or a USB network card with Bluetooth is required to use the Bluetooth function.</images/media/image22.png|143x145px]]span>'''
<ol start="5" style="list-style-type: decimal;"><li><p>Then download the Rockchip driver '''DriverAssitant_v5.12.zip''' and For instructions on using the burning tool '''RKDevTool_Release_v3.15.zip''' from external PCIe network card, please refer to the '''section on [[Orange Pi data download page5 Plus#How to use E-Key PCIe WIFI6+Bluetooth module|''',</p></li><li><p>Then download the Orange Pi OS (Droid) image, open the download link of the Orange Pi OS (Droid) image and you can see the following two types of images, please select how to use the image with PCIe WIFI6+Bluetooth module'''spi-nvme]].''' to download</p></li></ol>
'''For instructions on using the external USB network card, please refer to the [[File:Orange Pi 5 Plus#USB wireless network card test|'''USB wireless network card test section''']].'''</images/media/image238.pngbig>|352x62px]]}
<ol startspan id="7" style="listtest-method-of-desktop-styleimage-type: decimal;1"><li>Then use the decompression software to decompress '''DriverAssitant_v5.12.zip''', and then find the '''DriverInstall.exe''' executable file in the decompressed folder and open it</li></olspan>=== Test method of desktop image ===
<ol style="list-style-type: decimal;"><li><p>Click on the Bluetooth icon in the upper right corner of the desktop</p><p>[[File:plus5-img276.png]]</p></li><li><p>Then select the adapter</p><p>[[File:plus5-img277.png]]</p></li><li><p>If there is a prompt on the following interface, please select '''Yes'''</p><p>[[File:plus5-img278.png]]</p></li><li><p>Then set the '''Visibility Setting''' to '''Always visible''' in the Bluetooth adapter setting interface, and then close it</p><p>[[File:plus5-img279.png]]</p></li><li><p>Then open the configuration interface of the Bluetooth device</p><p>[[File:plus5-img280.png]]</imagesp></mediali><li><p>Click '''Search''' to start scanning the surrounding Bluetooth devices</image57p><p>[[File:plus5-img281.png|423x124px]]</p></li></ol>
<!-- --><ol start="86" style="list-style-type: decimal;"><li><p>After opening Then select the Bluetooth device you want to connect to, and then click the right mouse button to pop up the operation interface for this Bluetooth device, select '''Pair'''DriverInstallto start pairing, and the demonstration here is to pair with an Android phone</p><p>[[File:plus5-img282.exepng]]</p></li><li><p>When pairing, a pairing confirmation box will pop up in the upper right corner of the desktop, just select '''Confirm''' to confirm, and the steps phone also needs to install the Rockchip driver are as followsconfirm at this time</p><ol style="list-style-typep>[[File: lowerplus5-alpha;"img283.png]]</p></li><li>Click <p>After pairing with the mobile phone, you can select the &quot;Driver Installation&quot; buttonpaired Bluetooth device, then right-click and select '''Send a File''' to start sending a picture to the mobile phone</p><p>[[File:plus5-img284.png]]</p></li><li><p>The interface for sending pictures is as follows</olp><p>[[File:plus5-img285.png]]</p></li></ol>
[[File:.<span id="usb-interface-test"></images/media/image58.png|268x140px]]span>
<ol start="2" style="list-style-type: lower-alpha;"><li>After waiting for a period of time, a pop-up window will prompt &quot;'''driver installed successfully'''&quot;, and then click the &quot;'''OK'''&quot; button.</li></ol>USB interface test ==
[[File{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''The USB interface can be connected to a USB hub to expand the number of USB interfaces.'''</images/media/image59.pngbig>|301x156px]]}
<ol startspan id="9" style="listconnect-usb-mouse-or-keyboard-styleto-type: decimal;test"><li/span>Then decompress '''RKDevTool_Release_v3.15.zip''', this software does not need === Connect USB mouse or keyboard to be installed, just find '''RKDevTool''' in the decompressed folder and open it</li></ol>test ===
[[File:./images/media/image60.png|455x134px]]# Insert the keyboard with USB interface into the USB interface of Orange Pi development board<br># Connect the Orange Pi development board to the HDMI display<br># If the mouse or keyboard can operate normally, it means that the USB interface is working normally (the mouse can only be used in the desktop version of the system)
<ol startspan id="10" style="listconnect-styleusb-type: decimal;"><li>After opening the '''RKDevTool''' burning tool, because the computer is not connected to the development board through the Typestorage-C cable at this time, the lower left corner will prompt &quot;'''No device found'''&quot;</li-test"></olspan>
[[File:./images/media/image61.png|442x208px]]=== Connect USB storage device test ===
<ol start="11" style="list-style-type: decimal;"><li><p>Then start burning # First insert the U disk or USB mobile hard disk into the Android image to SPIFlash+NVMe SSD</p><ol style="list-style-type: lower-alpha;"><li>First, connect USB interface of the Orange Pi development board to # Execute the Windows computer through following command, if you can see the Type-C data cable. The position output of sdX, it means that the Type-C interface on the development board U disk is shown in the figure below</li></ol></li></ol>recognized successfully
::{| class="wikitable" style="width:800px;"|-|orangepi@orangepi:~$ '''cat /proc/partitions | grep &quot;sd*&quot;'''<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><div classspan 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="figuremargin-right: 50px;color:#FF0000">'''sda1'''</span><br>|}
[[File<ol start="3" style="list-style-type:./imagesdecimal;"><li>Use the mount command to mount the U disk to '''/mediamnt''', and then you can view the files in the U disk</image63.jpeg|435x123px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-2.jpg未标题-2]]li>
</div><ol start{| class="2wikitable" style="list-style-typewidth: lower-alpha800px;"><li><p>Make sure that the development board is not plugged into the TF and eMMC modules, and is not connected to the power supply</p></li>|-|<li><p>Then press and hold the MaskROM button on the development board, the position of the MaskROM button on the development board is shown in the figure beloworangepi@orangepi:<~$ '''sudo mount /dev/p><sda1 /li><mnt/ol>'''
[[Fileorangepi@orangepi:.~$ '''ls /imagesmnt/media/image64.png|460x103px]]'''
test.txt|}</ol><ol start="4" style="list-style-type: lower-alphadecimal;"><li>Then connect After mounting, you can view the power supply capacity usage and mount point of the TypeU disk through the '''df -C interface to the development board, and power on, and then release the MaskROM buttonh''' command</li></ol>
[[File{| class="wikitable" style="width:800px;" |-|orangepi@orangepi:./images/media/image65.png~$ '''df -h |440x134px]]grep &quot;sd&quot;'''
/dev/sda1 &nbsp;&nbsp;&nbsp;&nbsp; 29G &nbsp;&nbsp;&nbsp;&nbsp; 208K &nbsp;&nbsp;&nbsp;&nbsp; 29G &nbsp;&nbsp;&nbsp;&nbsp; 1% /mnt|}</ol start><span id="5" style="listusb-wireless-stylenetwork-type: lowercard-alpha;test"><li>If the previous steps are successful, the development board will enter the '''MASKROM''' mode at this time, and the interface of the burning tool will prompt &quot;'''found a MASKROM device'''&quot;</li></olspan>
[[File:./images/media/image66.png|457x215px]]=== USB wireless network card test ===
<ol start="6" style="list-style-type: lower-alpha;"><li>Then click the &quot;The usable USB wireless network cards that '''Upgrade Firmwarehave been tested'''&quot; column so far are as follows. For other types of USB wireless network cards, please test them yourself. If they cannot be used, you need to transplant the burning tool</li></ol>corresponding USB wireless network card driver.
[[File{| class="wikitable" style="width:.800px;" |-| S/images/media/image220.pngN| model| Physical picture|-| 1|457x215px]]RTL8723BU
<ol start="7" style="list-style-type: lower-alpha;"><li>Then click the &quot;'''Firmware'''&quot; button to select the Orange Pi OS (Droid) image to be burned</li></ol>Support 2.4G WIFI+BT4.0
| [[File:./images/media/image222plus5-img286.png|472x222px]]|-| 2| RTL8811
<ol start="8" style="list-style-type: lower-alpha;"><li>Finally, click the &quot;'''Upgrade'''&quot; button to start burningSupport 2. The burning process is shown in the figure below. After the burning is completed, the Orange Pi OS (Droid) system will automatically start.</li></ol>4G +5G WIFI
<span id="section-26"></span>== | [[File:./images/media/image239plus5-img287.png|476x225px]] ==|-| 3| RTL8821CU
<ol start="8" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol></li></ol></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li></ol>Support 2.4G +5G WIFI
<!-- --><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li></li><li></li><li><ol style="list-style-type: lower-roman;"><li></li></ol>Support BitTorrent 4.2
<!-- --><ol style="list-style-type| [[File: lowerplus5-alpha;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol>img288.png]]</li></ol>|}
<span id="sectionrtl8723bu-27test"></span>== == RTL8723BU test ====
<ol start="11" style="list-style-type: decimal;"><li><p>First insert the RTL8723BU wireless network card module into the USB interface of the development board</p></li><li><p>Then the linux system will automatically load the RTL8723BU bluetooth and WIFI-related kernel modules, through the lsmod command, you can see that the following kernel modules have been automatically loaded</lip>{| class="wikitable" style="width:800px;" |-|<lip>orangepi@orangepi:~$ '''lsmod'''</lip><lispan style="margin-right: 100px;">Module </span><span style="margin-right: 50px;">Size </span><span style="margin-right: 45px;">Used by</lispan><br><lispan style="margin-right: 100px;">rfcomm </span><span style="margin-right: 50px;">57344</span><span style="margin-right: 50px;">16</lispan><br><lispan style="margin-right: 95px;">rtl8xxxu </lispan><lispan style="margin-right: 50px;">106496</lispan><lispan style="margin-right: 30px;">0</lispan><br><lispan style="margin-right: 90px;">rtk_btusb </span><ol span style="listmargin-right: 50px;">61440</span><span style="margin-typeright: lower-alpha30px;">0</span><libr>|}</li><li><p>Through the dmesg command, you can see the loading information of the RTL8723BU module</lip>{| class="wikitable" style="width:800px;" |-|<lip>orangepi@orangepi:~$ '''dmesg'''</lip><p>......</olp><p>[ 83.438901] usb 2-1: new high-speed USB device number 2 using ehci-platform</lip><lip>[ 83.588375] usb 2-1: New USB device found, idVendor=0bda, idProduct=b720, bcdDevice= 2.00</lip><p>[ 83.588403] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3</olp><p>[ 83.588422] usb 2-1: Product: 802.11n WLAN Adapter</p><span id="sectionp>[ 83.588443] usb 2-28"1: Manufacturer: Realtek</p><p>[ 83.588460] usb 2-1: SerialNumber: 00e04c000001</spanp><p>[ 83.601974] Bluetooth: hci0: RTL: examining hci_ver=06 hci_rev=000b lmp_ver=06 lmp_subver= 8723</p><p>[ 83.603894] Bluetooth: hci0: RTL: rom_version status=0 version=1</p><p>[ 83.603920] Bluetooth: hci0: RTL: loading rtl_bt/rtl8723b_fw.bin</p><p>[ 83.610108] Bluetooth: hci0: RTL: loading rtl_bt/rtl8723b_config.bin</p><p>[ 83.611274] Bluetooth: hci0: RTL: cfg_sz 68, total sz 22564</p><p>[ 83.658494] rtk_btusb: Realtek Bluetooth USB driver ver 3.1.6d45ddf.20220519-142432</p><p>[ 83.658651] usbcore: registered new interface driver rtk_btusb</p><p>[ 83.667124] usb 2-1: This Realtek USB WiFi dongle (0x0bda:0xb720) is untested!</p><p>[ 83.667137] usb 2-1: Please report results to Jes.Sorensen@gmail.com</p><p>[ 83.890140] usb 2-1: Vendor: Realtek</p><p>[ 83.890153] usb 2-1: Product: 802.11n WLAN Adapter</p><span id="sectionp>[ 83.890159] usb 2-29"1: rtl8723bu_parse_efuse: dumping efuse (0x200 bytes):</p><p>......</spanp><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><ol start="11" style="listp>[ 83.890421] usb 2-style1: rtl8xxxu: Loading firmware rtlwifi/rtl8723bu_nic.bin</p><p>[ 83.895289] usb 2-type1: decimal;"Firmware revision 35.0 (signature 0x5301)</p><lip>[ 84.050893] Bluetooth: hci0: RTL: fw version 0x0e2f9f73</lip><lip>[ 84.266905] Bluetooth: RFCOMM TTY layer initialized</lip><lip>[ 84.266949] Bluetooth: RFCOMM socket layer initialized</lip><lip>[ 84.266999] Bluetooth: RFCOMM ver 1.11</lip><lip>[ 84.884270] usbcore: registered new interface driver rtl8xxxu</lip><lip>[ 84.912046] rtl8xxxu 2-1:1.2 wlx0013eff458ae: renamed from wlan0</p>|}</li><li><ol p>Then through the '''sudo ifconfig''' command, you can see the device node of RTL8723BU WIFI. For the connection and test method of WIFI, please refer to the section of [[Orange Pi 5 Plus#WIFI connection test|'''WIFI connection test''']], which will not be repeated here</p>{| class="wikitable" style="listwidth:800px;" |-style-type|<p>orangepi@orangepi:~$ '''sudo ifconfig wlx0013eff458ae'''</p><p>wlx0013eff458ae: lower-alphaflags=4099&lt;UP,BROADCAST,MULTICAST&gt;"mtu 1500</p>::<p>ether 00:13:ef:f4:58:ae txqueuelen 1000 (Ethernet)</p>::<p>RX packets 0 bytes 0 (0.0 B)</p>::<lip>RX errors 0 dropped 0 overruns 0 frame 0</lip>::<lip>TX packets 0 bytes 0 (0.0 B)</lip>::<p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</olp>|}
</li>
<li></li><lip>Then you can see the USB Bluetooth device through the '''hciconfig''' command</lip><li><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;"><li></li><li></li>|-<li></li>|<lip>orangepi@orangepi:~$ '''sudo apt update &amp;&amp; sudo apt install bluez'''</lip><lip>orangepi@orangepi:~$ '''hciconfig'''</lip><li></li><li></li><li></li></ol></li></ol> <span id="section-30"p>hci0: Type: Primary Bus: '''</span>=== === <ol start="15" style="list-style-typecolor: decimal;#FF0000"><li>USB</li><lispan>'''</lip>::<lip>BD Address: 00:13:EF:F4:58:AE ACL MTU: 820:8 SCO MTU: 255:16</lip>::<lip>DOWN</lip>::<lip>RX bytes:1252 acl:0 sco:0 events:125 errors:0</lip>::<lip></li><li></li><li></li><li></li><li><ol style="list-style-typeTX bytes:23307 acl:0 sco:0 commands:125 errors: lower-alpha;"><li></li><li>0</lip><li></li><li></li></ol>|}
</li>
<li><p>You can also see the bluetooth icon on the desktop. At this time, the bluetooth is not turned on, so a red '''<span style="color:#FF0000">x</span>''' will be displayed</p><p>[[File:plus5-img289.png]]</p></li><li><p>Click '''Turn Bluetooth On''' to turn on Bluetooth</p><p>[[File:plus5-img290.png]]</p></li><li><p>The display after turning on Bluetooth is as follows</p><p>[[File:plus5-img291.png]]</p></li><li><p>For the test method of Bluetooth, please refer to the section on [[Orange Pi 5 Plus#How to use E-Key PCIe WIFI6+Bluetooth module|'''Bluetooth usage''']], so I won't go into details here</p></li></ol>
<span id="sectionrtl8811-31test"></span>== ==
==== RTL8811 test ==== <ol start="12" style="list-style-type: decimal;"><li><p>First insert the RTL8811 wireless network card module into the USB interface of the development board</p></li><li><p>Then the linux system will automatically load the kernel module related to RTL8811 WIFI, through the lsmod command, you can see that the following kernel module has been automatically loaded</lip>{| class="wikitable" style="width:800px;" |-|<lip>orangepi@orangepi:~$ '''lsmod'''</lip><lispan style="margin-right: 100px;">Module </span><span style="margin-right: 50px;">Size </span><span style="margin-right: 45px;">Used by</lispan><br><lispan style="margin-right: 100px;">8821cu </span><span style="margin-right: 50px;">1839104 </span><span style="margin-right: 50px;">0</span><br>|}</li><li><p>Through the dmesg command, you can see the loading information of the RTL8811 module</lip>{| class="wikitable" style="width:800px;" |-|<lip>orangepi@orangepi:~$ '''dmesg'''</lip><lip>[ 118.618194] usb 2-1: new high-speed USB device number 2 using ehci-platform</p><ol stylep>[ 118.767152] usb 2-1: New USB device found, idVendor=0bda, idProduct=c811, bcdDevice="list2.00</p><p>[ 118.767181] usb 2-style1: New USB device strings: Mfr=1, Product=2, SerialNumber=3</p><p>[ 118.767199] usb 2-type1: Product: lower802.11ac NIC</p><p>[ 118.767219] usb 2-alpha;"1: Manufacturer: Realtek</p><lip>[ 118.767235] usb 2-1: SerialNumber: 123456</lip><lip>[ 119.500530] usbcore: registered new interface driver rtl8821cu</lip><p>[ 119.525498] rtl8821cu 2-1:1.0 wlx1cbfced9d260: renamed from wlan0</olp>|}
</li>
<li></li><lip>Then, you can see the WIFI device node through the '''sudo ifconfig''' command. For the [[Orange Pi 5 Plus#WIFI connection test|'''WIFI connection and test method''']], please refer to the section of WIFI connection test, which will not be repeated here</lip><li><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;">|-|<lip>orangepi@orangepi:~$ '''sudo ifconfig wlx1cbfced9d260'''</lip><lip>wlx1cbfced9d260: flags=4099&lt;UP,BROADCAST,MULTICAST&gt; mtu 1500</lip>::<lip>ether 1c:bf:ce:d9:d2:60 txqueuelen 1000 (Ethernet)</lip>::<lip>RX packets 0 bytes 0 (0.0 B)</lip>::<lip>RX errors 0 dropped 0 overruns 0 frame 0</lip>::<lip>TX packets 0 bytes 0 (0.0 B)</lip>::<lip>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</lip><li></li></ol>|}
</li></ol>
<span id="howusb-tocamera-use-rkdevtool-to-clear-spiflashtest"></span> ===USB camera test = How to use RKDevTool to clear SPIFlash ==
<ol style="list-style-type: decimal;">
<li><p>The position of SPI Flash on First, you need to prepare a USB camera that supports the development board is UVC protocol as shown in the figure belowor similar, and then insert the USB camera into the USB port of the Orange Pi development board</p><p>[[File:./images/media/image127plus5-img18.png|389x107px]]</p></li><li><p>FirstThrough the v4l2-ctl command, you need to prepare a data cable with a good quality Type-C interfacecan see that the device node information of the USB camera is '''/dev/video0'''</p><p>[[File{| class="wikitable" style="width:./images/media/image22.png800px;" |-|152x154px]]</p></li><li><p>Then download the Rockchip driver orangepi@orangepi:~$ '''DriverAssitant_v5.12.zip''' and '''MiniLoader''' and the burning tool '''RKDevTool_Release_v3.15.zip''' from the '''Orange Pi data download pagev4l2-ctl --list-devices'''</p><ol p>Q8 HD Webcam: Q8 HD Webcam ('''<span style="listcolor:#FF0000">usb</span>'''-stylefc880000.usb-type1): lower-alpha;"</p><li>::<p>On the Orange Pi data download page, first select the '''official &gt; tool/dev/video0''', and then enter the following folder</p></li><li>::<p>[[File:./imagesdev/media/image242.png|486x155px]]video1</p></li><li>::<p>Then download all the files below/dev/media0</p><p>[[File|}{| class="wikitable" style="background-color:#ffffdc;width:./images/media/image243.png800px;" |-|389x175px]]</pbig><p>'''Note that thel in v4l2 is a lowercase letter l, not the number 1.''' </p> <p>'''&quot;MiniLoader-things needed to burn In addition, the serial number of the Linux image&quot;''' '''folder video is hereinafter referred not necessarily video0, please refer to as the MiniLoader folderwhat you actually see.'''</p></li></olbig>|}
</li>
<li><p>Then use In the decompression software desktop system, Cheese can be used to decompress '''DriverAssitant_v5.12.zip''', and then find directly open the '''DriverInstallUSB camera.exe''' executable file The method of opening Cheese is shown in the decompressed folder and open itfigure below:</p><p>[[File:plus5-img292.png]]</imagesp><p>The interface after Cheese turns on the USB camera is shown in the figure below:</media/image57p><p>[[File:plus5-img293.png|472x139px]]</p></li><li><p>After opening '''DriverInstall.exe''', the steps Method of using fswebcam to install the Rockchip driver are as followstest USB camera</p>
<ol style="list-style-type: lower-alpha;">
<li><p>Click the &quot;'''Driver Installation'''&quot; buttonInstall fswebcam</p><p>[[File{| class="wikitable" style="width:./images/media/image58.png800px;" |-|276x145px]]</p></li><li><p>After waiting for a period of time, a pop-up window will prompt &gt; &quot;orangepi@orangepi:~$ '''The driver is installed successfullysudo'''&quot;, and then click &gt; the &quot;'''OKapt update'''&quot; button.</p><p>[[Fileorangepi@orangepi:./images/media/image59.png|292x151px]]~$ '''sudo apt-get install -y fswebcam'''</p></li></ol>|}
</li>
<li><p>Then decompress '''RKDevTool_Release_v3.15.zip''', this software does not need to be installed, just find '''RKDevTool''' in the decompressed folder and open it</p><p>[[File:./images/media/image60.png|467x138px]]</p></li><li><p>After opening the '''RKDevTool''' burning tool, because the computer has not been connected to the development board through the Type-C cable at this timeinstalling fswebcam, the lower left corner will prompt &quot;'''No device found'''&quot;</p><p>[[File:./images/media/image61.png|402x189px]]</p></li><li><p>Then you can start use the following command to clear the contents of the SPI FLASHtake pictures</p><ol style="list-style-type: lower-alphanone;"><li><p>First, connect the development board a) -d option is used to specify the Windows computer &gt; through the Type-C data cable. The position device node of the Type-C &gt; interface on the development board is shown in the figure &gt; belowUSB camera</p><div class="figure"> [[File:./images/media/image244.jpeg|424x120px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-1.jpg未标题-1]] </div></li><li><p>Make sure the development board b) --no-banner is not connected used to remove the watermark of the power &gt; supplyphoto</p></li><li><p>Then press and hold c) -r option is used to specify the MaskROM button on the development board, &gt; the position resolution of the MaskROM button on the development board is &gt; shown in the figure below:</p><p>[[File:./images/media/image64.png|444x100px]]photo</p></li><li><p>Then connect d) -S option is used to set the power supply number of the Type-C interface previous frames to the &gt; development board, and power on, and then release the MaskROM &gt; button</p><p>[[File:./images/media/image65.png|402x123px]]skip</p></li><li><p>If the previous steps are smooth, at this time the development &gt; board will enter e) ./image.jpg is used to set the '''Maskrom''' mode, name and it will be prompted &gt; &quot;'''Find a Maskrom device'''&quot; on the interface path of the &gt; recording toolgenerated photo</p><p>[[File{| class="wikitable" style="width:./images/media/image66.png800px;" |457x215px]]</p></li><li><p>Then please select '''advanced features'''</p>-<p>[[File:./images/media/image245.png|458x138px]]</p></li><li><p>Then click the position shown in the figure below</p><p>[[Fileorangepi@orangepi:./images/media/image246.png|459x216px]]</p></li><li><p>Then select ~$ '''MiniLoaderAll.binsudo''' in the '''MiniLoaderfswebcam -d /dev/video0 \''' folder downloaded earlier, and then click Open</p><p>[[File:'''--no-banner -r 1280x720 -S 5 ./images/media/image207image.png|469x220px]]</p></li><li><p>Then click '''downloadjpg'''</p><p>[[File:./images/media/image247.png|472x222px]]</p>}</li><li><p>The display after downloading '''MiniLoaderAll.bin''' is shown in the figure below</pol><p>[[File:./images/media/image248.png|474x223px]]</p></li><li><p>Then select In the server version of the linux system, you can use the storage device as '''SPINOR'''scp command to transfer the taken pictures to the Ubuntu PC for image viewing after taking pictures</p><p>[[File{| class="wikitable" style="width:./images/media/image249.png800px;" |-|467x220px]]</p></li><li><p>Then click orangepi@orangepi:~$ '''switch storage'''</p><p>scp image.jpg [[Filemailto:test@192.168.1.55:/imageshome/media/image250test test@192.168.1.png|464x218px]]<55:/p><home/li><li><p>Then click '''Erase Alltest] (Modify the IP address and path according to the actual situation)''' to start erasing SPIFlash</p><p>[[File:./images/media/image251.png|467x220px]]</p>}</li><li><p>The In the desktop version of the linux system, you can directly view the captured pictures through the HDMI display log after erasing SPIFlash is shown in d. In the desktop version of the linux system, you can directly view the captured pictures through the figure below</p><p>[[File:./images/media/image252.png|450x212px]]HDMI display</p></li></ol>
</li></ol>
<span id="startaudio-the-orange-pi-development-boardtest"></span>== Start the Orange Pi development board ==
# Insert the burned TF card or eMMC module into the TF card slot of the Orange Pi development board. If the image of SPIFlash+NVMe SSD has been burnt, then there is no need to insert a TF card or eMMC module, just make sure that the NVMe SSD is normally inserted into the development board.# The development board has an HDMI interface, and the development board can be connected to a TV or HDMI display through an HDMI-to-HDMI cable. If you buy an LCD screen, you can also use the LCD screen to display the system interface of the development board. If there is a Type-C to HDMI cable, the system interface of the development board can also be displayed through the Type-C interface.# Connect a USB mouse and keyboard to control the Orange Pi development board.# The development board has an Ethernet port, which can be plugged into a network cable for Internet access.# Connect a '''high-quality''' power adapter with a 5V/4A USB Type-C interface.# # # # # == Audio Test ==
'''Remember not to plug in a power adapter with a voltage output greater than 5V, as this will burn out the development board.''' '''Many unstable phenomena during the power<span id="testing-audio-methods-on and start-up process of the system are basically caused by power supply problems, so a reliable power adapter is very important. If you find that there is a phenomenon of''' '''continuous restart during the startup process,''' '''please replace the''' '''power''' '''supply or the Type-C data cable and try again.''' '''The Typedesktop-C power port does not support PD negotiation.'''systems"></span>'''In addition, please do not connect the USB interface of the computer to power the development board.''' '''There are two Type-C ports that look the same === Testing audio methods on the development board. The one next to the network port is the power port, and the other Type-C port has no power supply function. Please don’t connect it wrong.'''desktop systems ===
<ol style="list-style-type: decimal;">
<li><p>First open the file manager</p>
<p>[[File:plus5-img294.png]]</p></li>
<li><p>Then find the following file (if there is no audio file in the system, you can upload an audio file to the system yourself)</p>
<div class="figure">
[[File:plus5-img295./images/media/image253.jpeg|262x234px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\01.jpg01png]]
</div></li><li><p>Then select the audio.wav file, right click and select open with vlc to start playing</p><p>[[File:plus5-img296.png]]</p></li><li><p>How to switch between different audio devices such as HDMI playback and headphone playback</p><ol start="11" style="list-style-type: decimallower-alpha;"><li><p>Then turn on First open the switch of the power adapter. If everything is normal, you can see the startup screen of the system on the HDMI monitor or LCD screenvolume control interface</p><p>[[File:plus5-img297.png]]</p></li><li><p>If you want to view When playing audio, the output information of audio device options that the system through the debugging serial port, please playback software can use the serial cable to connect the development board to the computer. For the connection method of the serial port, please refer to the section on will be displayed in '''how to use the debugging serial portPlayback'''., as shown in the figure below, where you can set which audio device to play to</p><p>[[File:plus5-img298.png]]</lip></li></liol><li></li></ol>
<span id="howthe-tomethod-useof-theusing-debuggingcommands-serialto-portplay-audio"></span>== How to use the debugging serial port ==
<span id="connection-instruction-of-debugging-serial-port"></span>=== Connection instruction The method of debugging serial port using commands to play audio ===
# First, you need to prepare a '''3.3V''' USB to TTL module, and then insert the USB <span id="headphone-interface end of the USB to TTL module into the USB -playback-audio-test"></span>==== Headphone interface of the computer.playback audio test ====
'''For better compatibility, it is recommended to use CH340 USB to TTL module, please do not use CP2102, PL2303 type USB to TTL module.''' '''Before purchasing a USB to TTL module, please confirm that the module supports a baud rate of 1500000.''' <div class="figure"> [[File:./images/media/image255.png|576x115px|07]] </div><ol start="2" style="list-style-type: decimal;"><li><p>The corresponding relationship between GND, RXD and TXD pins of First insert the earphone into the debugging serial port earphone jack of the development board is shown in the figure below:</p><p>[[File:./images/media/image256plus5-img299.png|485x174px]]</p></li><li><p>The GNDThen you can use the '''aplay -l''' command to view the sound card devices supported by the linux system. From the output below, TXD and RXD pins you can see that '''card 3''' is the sound card device of es8388, that is, the USB to TTL module need to be connected to the debugging serial port sound card device of the development board through a DuPont lineheadset</p><ol {| class="wikitable" style="listwidth:800px;" |-style|<p>orangepi@orangepi:~$ '''aplay -typel'''</p><p>**** List of PLAYBACK Hardware Devices ****</p><p>card 0: rockchipdp0 [rockchip,dp0], device 0: lowerrockchip,dp0 spdif-alpha;"hifi-0 [rockchip,dp0 spdif-hifi-0]</p>:<p>Subdevices: 0/1</p>:<p>Subdevice #0: subdevice #0<li/p><p>The GND of the USB to TTL module is connected to the GND of the &gt; development boardcard 1: rockchiphdmi0 [rockchip-hdmi0], device 0: rockchip-hdmi0 i2s-hifi-0 [rockchip-hdmi0 i2s-hifi-0]</p>:<p>Subdevices: 0/li1</p>:<p>Subdevice #0: subdevice #0<li/p><p>The '''RX''' of the USB to TTL module is '''connected to the TX of &gt; the development board'''card 2: rockchiphdmi1 [rockchip-hdmi1], device 0: rockchip-hdmi1 i2s-hifi-0 [rockchip-hdmi1 i2s-hifi-0]</p>:<p>Subdevices: 1/li1</p>:<p>Subdevice #0: subdevice #0<li/p><p>The '''TXcard 3: rockchipes8388 [rockchip,es8388], device 0: dailink-multicodecs ES8323.7-0011-0 [dailink-multicodecs ES8323.7-0011-0]''' of the USB to TTL module is </p>:<p>'''connected to the RX of &gt; the development boardSubdevices: 0/1'''</p>:</lip>'''Subdevice #0: subdevice #0'''</olp>|}
</li>
<li><p>The schematic diagram of connecting Then use the USB to TTL module '''aplay''' command to play the audio file that comes with the system. If the earphone can hear the computer and sound, it means that the Orange Pi development board is as followshardware can be used normally.</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''aplay -D hw:<div classspan style="figurecolor:#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:.<span id="speaker-interface-playback-audio-test"></images/media/image257.png|524x189px|08]]span>
</div><p>'''The TX and RX of the serial port need to be cross-connected. If you don’t want to carefully distinguish the order of TX and RX, you can connect the TX and RX of the serial port casually. If there is no output in the test, then exchange the order of TX and RX, so that there is always a This order is correct.'''</p></li></ol> <span id="how-to-use-the-debugging-serial-port-on-the-ubuntu-platform"></span>=== How to use the debugging serial port on the Ubuntu platform Speaker interface playback audio test ==== '''There are many serial port debugging software that can be used under Linux, such as putty, minicom, etc. The following demonstrates how to use putty.'''
<ol style="list-style-type: decimal;">
<li><p>First, insert the USB-you need to-TTL module into the USB port of prepare a speaker as shown in the Ubuntu computerfigure below. If the connection and recognition The specification of the USB-to-TTL module is normal, you can see the corresponding device node name under '''/dev''' speaker seat on the Ubuntu PC. Remember this node name, and then set the serial port software will be useddevelopment board is 2pin 1.25mm pitch</p><p>test@test[[File:~$ '''ls /dev/ttyUSB*'''</p><p>/dev/ttyUSB0plus5-img29.png]]</p></li><li><p>Then use The position of the following command to install putty speaker interface on Ubuntu PCthe development board is as follows. After preparing the speaker, please insert it into the speaker interface of the development board</p><p>test@test[[File:~$ '''sudo aptplus5-get update'''</p><p>test@test:~$ '''sudo apt-get install -y putty'''img300.png]]</p></li><li><p>The speaker and earphone use the same sound card. Before using the speaker, please make sure that the earphone jack is not plugged into the earphone (if the earphone is plugged in, the audio will be played to the earphone). Then run putty, use the '''remember to add sudo permissionaplay'''command to play the audio file that comes with the system. If the speaker can hear the sound, it means that the hardware can be used normally.</p>{| class="wikitable" style="width:800px;" |-|<p>testorangepi@testorangepi:~$ '''sudo puttyaplay -D hw:<span style="color:#FF0000">3</span>,0 /usr/share/sounds/alsa/audio.wav'''</p></li><li><p>After executing the putty commandPlaying WAVE 'audio.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, the following interface will pop upStereo</p>|}</li></ol>
<!-- --><ol startspan id="5" style="listhdmi-styleaudio-type: decimal;"><li></li><li><ol style="list-style-type: lowerplayback-alpha;test"><li></li><li></li><li></li></ol></li><li></li></olspan>
<span id="section-32"></span>=== HDMI audio playback test ====
<ol start="5" style="list-style-type: decimal;"><li></lip>First use the HDMI to HDMI cable to connect the Orange Pi development board to the TV (other HDMI monitors need to ensure that they can play audio)<li/p></li><li></li><lip>Then check the serial number of the HDMI sound card. From the output below, you can know that the sound card of HDMI_TX1 is '''card 1''', and the sound card of HDMI_TX2 is '''card 2'''</p>[[File{| class="wikitable" style="width:./images/media/image259.png800px;" |-|367x321px]]</p>orangepi@orangepi:~$ '''aplay -l'''</lip><li><p>First select the setting interface **** List of the serial portPLAYBACK Hardware Devices ****</p><p>card 0: rockchipdp0 [rockchip,dp0], device 0: rockchip,dp0 spdif-hifi-0 [File:./images/media/image260.png|359x352px]rockchip,dp0 spdif-hifi-0]</p>:<p>Subdevices: 1/1</lip><li>:<p>Then set the parameters of the serial portSubdevice #0: subdevice #0</p><ol style="listp>'''card 1: rockchiphdmi0 [rockchip-hdmi0], device 0: rockchip-hdmi0 i2s-hifi-0 [rockchip-stylehdmi0 i2s-type: lowerhifi-alpha;"0]'''</p><li>:<p>Set the Serial line to connect to as '''Subdevices: 1/dev/ttyUSB0 (modify to the &gt; corresponding node name, generally /dev/ttyUSB0)1'''</p></li><li>:<p>Set Speed(baud) to '''1500000Subdevice #0: subdevice #0''' (the baud rate of the serial &gt; port)</p></li><li><p>Set Flow control to None'''card 2: rockchiphdmi1 [rockchip-hdmi1], device 0: rockchip-hdmi1 i2s-hifi-0 [rockchip-hdmi1 i2s-hifi-0]'''</p>:<div class="figure"p[[File'''Subdevices:.1/images/media/image262.png|317x312px|09]] 1'''</divp>:</lip>'''Subdevice #0: subdevice #0'''</olp>|}
</li>
<li><p>After setting Then use the serial port setting interface'''aplay''' command to play the audio file that comes with the system. If the HDMI monitor or TV can hear the sound, return to it means that the Session interfacehardware can be used normally.</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First select the Connection type as Serial</p></li><li><p>Then click the Open button The command to connect play audio to the serial portHDMI_TX1 is as follows:</p><div {| class="figurewikitable" style="width:800px;">|-[[File:./images/media/image264.png|345x340px|10]] </divp>orangepi@orangepi:~$ '''aplay -D hw:<span style="color:#FF0000">1</lispan>,0 /usr/share/sounds/alsa/audio.wav'''</olp>|}
</li>
<li><p>After starting the development board, you can see the Log information output by the system from the opened serial port terminalThe command to play audio to HDMI_TX2 is as follows:</p></li><li></li><li><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;"><li></li>|-<li></li>|<li></li></ol></li><lip>orangepi@orangepi:~$ '''aplay -D hw:<ol span style="list-style-typecolor: lower-alpha;#FF0000">2<li/span>,0 /usr/share/sounds/alsa/audio.wav'''</lip><li>|}</li></ol></li><li><p>[[File:./images/media/image265.png|287x208px]]</p></li></ol>
<span id="howmethod-toof-useusing-thecommands-debugging-serial-portto-ontest-windows-platformrecording"></span>=== How to use the debugging serial port on Windows platform ===
'''There are many serial port debugging software that can be used under Windows, such as SecureCRT, MobaXterm, etc. The following demonstrates how === Method of using commands to use MobaXterm. This software has a free version and can be used without buying a serial number.'''test recording ===
<ol style="list-style-type: decimal;">
<li><p>Download MobaXtermThere is an onboard MIC on the development board, the location is as follows:</p><ol style="list-style-typep>[[File: lowerplus5-alpha;"img301.png]]</p></li><li><p>Download MobaXterm website as followsRunning the '''test_record.sh main''' command will record a piece of audio through the onboard MIC, and then play it to HDMI_TX1 and the headset.</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''test_record.sh main''https'</p><p>Start recording:/tmp/mobaxtermtest.mobatekwav</p><p>Recording WAVE '/tmp/test.net''wav': Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p><p>Start playing</lip><li><p>After entering the MobaXterm download page, click '''GET XOBATERM &gt; NOW!'Playing WAVE '/tmp/test.wav': Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p><p>Playing WAVE '/li>tmp/test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</olp>|}
</li>
<li><ol style="list-style-type: lower-alpha;"><li></li><li><p>[[File:./images/media/image266.png|576x334px]]</p></li><li><p>Then choose In addition to download the Home version</p><p>[[File:./images/media/image267.png|353x231px]]</p></li><li><p>Then select Portable portable versiononboard MIC, no need to install after downloading, just open it and use it</p><p>[[File:we can also record audio through headphones with MIC function./images/media/image268.png|575x259px]]</p></li></ol></li><li><p>After downloading, use decompression software to decompress inserting the headset with MIC function into the downloaded compressed packagedevelopment board, you can get run the executable software '''test_record.sh headset''' command to record a piece of MobaXtermaudio through the headset, and then double-click play it to openHDMI_TX1 and the headset.</p><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;"><li></li>|-|<lip>orangepi@orangepi:~$ '''test_record.sh headset'''</li></olp></li><li><p>[[FileStart recording:./imagestmp/media/image269test.png|576x81px]]wav</p></li><li><p>After opening the softwareRecording WAVE '/tmp/test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, the steps to set up the serial port connection are as followsStereo</p><ol style="list-style-type: lower-alpha;"><li><p>Open the session settings interfaceStart playing</p></li><li><p>Select the serial port type<Playing WAVE '/p><tmp/li><li><p>Select the port number of the serial port (select the &gt; corresponding port number according to the actual situation)test.wav' : Signed 16 bit Little Endian, &gt; if you cannot see the port numberRate 44100 Hz, please use '''360 Driver &gt; Master''' to scan and install the driver for the USB to TTL &gt; serial port chipStereo</p></li><li><p>Select the baud rate of the serial port as '''1500000Playing WAVE '''</p><tmp/li><li><p>Finally click the &quot;test.wav'''OK'''&quot; button to complete the settings: Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p></li></ol>|}
</li></ol>
<div classspan id="figuretemperature-sensor"></span>
[[File:./images/media/image271.png|575x438px|11]]== Temperature sensor ==
</div><ol start="6" style="list-style-type: decimal;"><li><p>After clicking the &quot;'''OK'''&quot; button, you will enter the following interface. At this time, start the development board and you can see the output information of The command to view the serial port</p></li><li><ol style="list-style-typesystem temperature sensor is: lower-alpha;"><li></li><li></li><li></li><li></li><li></li></ol></li><li><div class="figure">
[[File{| class="wikitable" style="width:./images/media/image273.png800px;" |575x291px-|12]]orangepi@orangepi:~$ '''sensors'''
</div></li></ol>gpu_thermal-virtual-0
<span id="ubuntudebian-server-and-xfce-desktop-system-instructions"></span>= Ubuntu/Debian Server and Xfce desktop system instructions =Adapter: Virtual device
'''The content of this chapter is written based on the Ubuntu/Debian server version image and the xfce desktop version imagetemp1: +47.'''2°C
'''If you are using the Ubuntu22.04 Gnome image, please first check the instructions in the chapter''' '''Ubuntu22.04 Gnome Wayland Desktop System Instructions.'''
'''You can refer to the instructions in this chapter for the content that does not exist in the chapter of''' '''Ubuntu22.04 Gnome Wayland Desktop System User Manual,''' '''but some details may be different, please pay special attention to this point.'''littlecore_thermal-virtual-0
'''If you are using the OPi OS Arch image, please refer to the chapter''' '''Orange Pi OS Arch System Instructions.'''Adapter: Virtual device
<span id="supported-ubuntudebian-image-types-and-kernel-versions"></span>== Supported Ubuntu/Debian image types and kernel versions ==temp1: +47.2°C
{| class="wikitable"
|-
| style="text-align: left;"| '''Linux image type'''
| style="text-align: left;"| '''kernel version'''
| style="text-align: left;"| '''server version'''
| style="text-align: left;"| '''desktop version'''
|-
| style="text-align: left;"| '''Debian 11 - Bullseye'''
| style="text-align: left;"| '''Linux5.10'''
| style="text-align: left;"| '''support'''
| style="text-align: left;"| '''support'''
|-
| style="text-align: left;"| '''Debian 12 - Bookworm'''
| style="text-align: left;"| '''Linux5.10'''
| style="text-align: left;"| '''plan support'''
| style="text-align: left;"| '''plan support'''
|-
| style="text-align: left;"| '''Ubuntu 20.04 - Focal'''
| style="text-align: left;"| '''Linux5.10'''
| style="text-align: left;"| '''support'''
| style="text-align: left;"| '''support'''
|-
| style="text-align: left;"| '''Ubuntu 22.04 - Jammy'''
| style="text-align: left;"| '''Linux5.10'''
| style="text-align: left;"| '''support'''
| style="text-align: left;"| '''support'''
|}
<span id="linuxbigcore0_thermal-systemvirtual-adaptation"></span>== Linux system adaptation ==0
Adapter: Virtual device temp1: +47.2°C  tcpm_source_psy_6_0022-i2c-6-22 Adapter: rk3x-i2c in0: 0.00 V (min = +0.00 V, max = +0.00 V) curr1: 0.00 A (max = +0.00 A)  npu_thermal-virtual-0 Adapter: Virtual device temp1: +47.2°C  center_thermal-virtual-0 Adapter: Virtual device temp1: +47.2°C  bigcore1_thermal-virtual-0 Adapter: Virtual device temp1: +47.2°C  soc_thermal-virtual-0 Adapter: Virtual device temp1: +47.2°C (crit = +115.0°C)|} <span id="pin-expansion-interface-pin-instructions"></span> == 40 Pin Expansion Interface Pin Instructions == <div class="figure"> ::[[File:plus5-img302.png]] </div><ol style="list-style-type: decimal;"><li><p>Please refer to the figure below for the order of the 40 pin expansion interface pins on the Orange Pi 5 Plus development board:</p><p>[[File:plus5-img303.png]]</p></li><li><p>The functions of the 40 pin interface pins on the Orange Pi 5 Plus development board are shown in the table below</p><ol style="list-style-type: lower-alpha;"><li><p>The following is the complete pin diagram of 40 pin</p><p>[[File:plus5-img304.png]]</p><p>The following is a color map containing some of the content in the above table:</p><p>[[File:plus5-img305.png]]</p></li><li><p>The table below is the picture of the left half of the complete &gt; table above, so you can see it clearly</p><p>[[File:plus5-img306.png]]</p></li><li><p>The table below is the picture of the right half of the complete &gt; table above, so you can see it clearly</p><p>[[File:plus5-img307.png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
| style="text-align: left;"| <big><p>'''FunctionThe pwm in the above table has marked the base address of the corresponding register, which is useful when checking which pwmchip in /sys/class/pwm/ corresponds to which pwm pin in the 40 pin header.'''</p></big>| }</li></ol></li><li><p>There are a total of '''<span style="text-aligncolor: left;#FF0000"| >28</span>'''Linux5.10GPIO ports in the 40 pin interface, and the voltage of all GPIO ports is ''' '''driver'''| <span style="text-aligncolor: left;#FF0000"| '''Debian11>3.3v</span>'''.</p></li></ol> | style<span id="texthow-align: left;to-install-wiringop"| '''Ubuntu20.04'''></span> == How to install wiringOP == {| class="wikitable" style="textbackground-aligncolor:#ffffdc;width: left800px;"| '''Ubuntu22.04'''
|-
| style="text<big>'''Note that wiringOP has been pre-installed in the linux image released by Orange Pi. Unless the code of wiringOP is updated, there is no need to re-download, compile and install, just use it directly.''' '''The storage path of the compiled wiringOP deb package in orangepi-alignbuild is: left;"| '''HDMI TX1 Video '''| <span style="text-aligncolor: left;blue"| >orangepi-build/external/cache/debs/arm64/wiringpi_x.xx.deb</span>''' 'OK''After entering the system, you can run the gpio readall command. If you can see the following output, it means that wiringOP has been pre-installed and can be used normally.'''</big> | style<div class="textfigure"> [[File:plus5-align: left;"| img308.png]] </div> <big>'''OKwiringOP is currently mainly adapted to the functions of setting GPIO port input and output, setting GPIO port output high and low levels, and setting up and down pull-down resistors. Functions such as hardware PWM are not available.'''</big>| } <ol style="textlist-style-aligntype: leftdecimal;"| '''OK'''><li><p>Download the code of wiringOP</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''HDMI TX1sudo apt update''' </p><p>orangepi@orangepi:~$ '''Audiosudo apt install -y git'''</p>| style="text-align<p>orangepi@orangepi: left;"| ~$ '''OKgit clone https://github.com/orangepi-xunlong/wiringOP.git -b next'''</p>| style} {| class="text-align: left;wikitable"| '''OK'''| style="textbackground-aligncolor: left#ffffdc;"| '''OK'''| style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align: left;"| <big><p>'''HDMI TX2Note that Orange Pi 5 Plus needs to download the code of the wiringOP next branch, please don't miss the -b next parameter.'' '''Video</p><p>'''| style="text-alignIf you have problems downloading the code from GitHub, you can directly use the wiringOP source code that comes with the Linux image, and the storage location is: left;"| '''OK/usr/src/wiringOP'''</p></big>| style="text-align: left;"| '''OK'''}</li><li><p>Compile and install wiringOP</p>{| styleclass="text-align: left;wikitable"| '''OK'''| style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''HDMI TX2cd wiringOP''' </p><p>orangepi@orangepi:~/wiringOP$ '''Audiosudo ./build clean'''</p>| style="text-align<p>orangepi@orangepi: left;"| ~/wiringOP$ '''OKsudo ./build'''</p>| style}</li><li><p>Test the output of the gpio readall command as follows</p><div class="textfigure"> [[File:plus5-align: left;"| '''OK'''img308.png]] </div></li></ol> | style<span id="textpin-interface-gpio-i2c-align: left;uart-spi-can-and-pwm-test"| '''OK'''></span> | style="text-align: left;"| '''OK'''= 40 pin interface GPIO, I2C, UART, SPI, CAN and PWM test ==|-| style<span id="textpin-gpio-port-align: left;test"| '''HDMI RX''' '''Video'''></span>| style="text-align: left;"| '''OK'''== 40 pin GPIO port test === {| styleclass="text-align: left;wikitable"| '''OK'''| style="textbackground-aligncolor: left#ffffdc;"| '''OK'''| style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text<big>'''The linux system released by Orange Pi has a pre-align: left;"| installed blink_all_gpio program, which will set all 28 GPIO ports in the 40 pins to switch between high and low levels continuously.''' '''HDMI RXAfter running the blink_all_gpio program, when using a multimeter to measure the level of the GPIO port, you will find that the GPIO pin will switch between 0 and 3.3v continuously. Using this program we can test whether the GPIO port is working properly.'''  '''AudioThe way to run the blink_all_gpio program is as follows:'''</big>| style="text-alignorangepi@orangepi5plus: left;"| ~$ '''OKsudo blink_all_gpio &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Remember to add sudo permission'''| style="text-align[sudo] password for orangepi: left&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"| '''OK#A password is required here'''| } <ol style="textlist-style-aligntype: leftdecimal;"| ><li><p>There are a total of '''OK28'''GPIO ports in the 40 pins of the development board that can be used. The following uses pin 7—the corresponding GPIO is GPIO1_D6——the corresponding wPi number is 2—as an example to demonstrate how to set the high and low levels of the GPIO port</p><div class="figure"> [[File:plus5-img309.png]] </div></li><li><p>First set the GPIO port to output mode, where the third parameter needs to input the serial number of wPi corresponding to the pin</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>root@orangepi: left;"| '''USB2.0X2~/wiringOP# '''| gpio mode <span style="text-aligncolor: left;#FF0000"| '''OK>2</span> out'''</p>| style="text-align: left;"| '''OK'''}</li><li><p>Then set the GPIO port to output a low level. After setting, you can use a multimeter to measure the voltage value of the pin. If it is 0v, it means that the low level is set successfully.</p>{| styleclass="text-align: left;wikitable"| '''OK'''| style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>root@orangepi: left;"| ~/wiringOP# '''USB3.0X2'''| gpio write 2 <span style="text-aligncolor: left;#FF0000"| '''OK>0</span>'''</p>| style}<p>Use gpio readall to see that the value (V) of pin 7 has changed to 0</p><div class="textfigure"> [[File:plus5-align: left;"| '''OK'''img310.png]] </div></li><li><p>Then set the GPIO port to output a high level. After setting, you can use a multimeter to measure the voltage value of the pin. If it is 3.3v, it means that the high level is set successfully.</p>{| styleclass="text-align: left;wikitable"| '''OK'''| style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>root@orangepi: left;"| ~/wiringOP# '''gpio write 2.5G PCIe network port X2'''| <span style="text-aligncolor: left;#FF0000"| '''OK>1</span>'''</p>| style}<p>Use gpio readall to see that the value (V) of pin 7 has changed to 1</p><div class="figure"> [[File:plus5-img311.png]] </div></li><li><p>The setting method of other pins is similar, just modify the serial number of wPi to the corresponding serial number of the pin</p></li></ol> <span id="texthow-to-set-the-pull-down-resistance-align: left;of-pin-gpio-port"| '''OK'''></span> === How to set the pull-down resistance of pin GPIO port === | <ol style="textlist-style-aligntype: leftdecimal;"| '''OK'''><li><p>The following takes pin No. 7—the corresponding GPIO is GPIO1_D6—the corresponding wPi number is 2—as an example to demonstrate how to set the pull-up and pull-down resistance of the GPIO port</p><div class="figure"> [[File:plus5-img311.png]] </div></li><li><p>First, you need to set the GPIO port to the input mode, and the third parameter needs to be the serial number of the wPi corresponding to the input pin</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>root@orangepi: left;"| ~/wiringOP# '''2.5G PCIe network port light'''| gpio mode <span style="text-aligncolor: left;#FF0000"| '''OK>2</span> in'''</p>| style="text}</li><li><p>After setting to input mode, execute the following command to set the GPIO port to pull-align: left;"| '''OK'''up mode</p>{| styleclass="text-align: left;wikitable"| '''OK'''| style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>root@orangepi: left;"| ~/wiringOP# '''Debug serial port'''| gpio mode <span style="text-aligncolor: left;#FF0000"| '''OK>2</span> up'''</p>| style="text}</li><li><p>Then enter the following command to read the level of the GPIO port, if the level is 1, it means that the pull-align: left;"| '''OK'''up mode is set successfully</p>{| styleclass="text-align: left;wikitable"| '''OK'''| style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>root@orangepi: left;"| '''RTC''' '''Chip~/wiringOP# '''| gpio read <span style="text-aligncolor: left;#FF0000"| '''OK>2</span>'''</p>| style="text-align: left;"| <p>'''OK1'''</p>| style}</li><li><p>Then execute the following command to set the GPIO port to pull-down mode</p>{| class="text-align: left;wikitable"| '''OK'''| style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>root@orangepi: left;"| '''FAN''' '~/wiringOP# ''interface'''| gpio mode <span style="text-aligncolor: left;#FF0000"| '''OK>2</span> down'''</p>| style="text}</li><li><p>Then enter the following command to read the level of the GPIO port, if the level is 0, the pull-align: left;"| '''OK'''down mode is set successfully</p>{| styleclass="text-align: left;wikitable"| '''OK'''| style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>root@orangepi: left;"| ~/wiringOP# '''eMMC''' '''Extension ports'''| gpio read <span style="text-aligncolor: left;#FF0000"| '''OK>2</span>'''</p>| style="text-align: left;"| <p>'''OK0'''</p>| style}</li></ol> <span id="textpin-align: left;spi-test"| '''OK'''></span> | style="text-align: left;"| '''OK'''== 40 pin SPI test ===|-| <ol style="textlist-align: left;"| '''AP6275P-WIFI'''| style="text-aligntype: leftdecimal;"| '''OK'''><li><p>As can be seen from the figure below, the SPIs available for Orange Pi 5 Plus are SPI0 and SPI4</p>| style="text<p>[[File:plus5-align: left;"| '''OK''img304.png]]</p></li><li><p>The corresponding pins of SPI0 and SPI4 in 40pin are shown in the table below. SPI4_M1 and SPI4_M2 can only use one of them at the same time, and they cannot be used at the same time. They are all the same SPI4, but they are connected to different pins. Please don't think that they are two different sets of SPI buses.</p></li> {| styleclass="text-align: left;wikitable"| '''OK'''| style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align: left;"| '''AP6275P-BT'''| style="text-align: left;"| '''OKSPI0_M2 corresponds to 40pin'''| style="text-align: left;"| '''OKSPI4_M1 corresponds to 40pin'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OKSPI4_M2 corresponds to 40pin'''
|-
| style="text-align: left;"| '''AX200-WIFIMOSI'''| style="text-align: left;"| '''OKPin 19'''| style="text-align: left;"| '''OKPin 12'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OKPin 8'''
|-
| style="text-align: left;"| '''AX200-BTMISO'''| style="text-align: left;"| '''OKPin 21'''| style="text-align: left;"| '''OKPin 31'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OKPin 10'''
|-
| style="text-align: left;"| '''AX210-WIFICLK'''| style="text-align: left;"| '''OKPin 23'''| style="text-align: left;"| '''OKPin 35'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OKPin 22'''
|-
| style="text-align: left;"| '''AX210-BTCS0'''| style="text-align: left;"| '''OKPin 24'''| style="text-align: left;"| '''OKPin 40'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OKPin 31'''
|-
| style="text-align: left;"| '''RTL8852BE-WIFICS1'''| style="text-align: left;"| '''OKPin 26'''| style="text-align: left;"| '''OKPin 38'''| style="text-align: left;"| '''OK'''| <span style="text-aligncolor: left;#FF0000"| '''OK>none</span>'''
|-
| style="text'''dtbo configuration'''| '''spi0-m2-cs0-spidev''' '''spi0-m2-cs1-spidev''' '''spi0-m2 -cs0-cs1-align: left;"spidev''' | '''RTL8852BEspi4-m1-cs0-BTspidev''' '''spi4-m1-cs1-spidev''' | style="text'''spi4-m1 -cs0-cs1-align: left;"spidev''' | '''OKspi4-m2-cs0-spidev'''| }</ol><ol start="3" style="textlist-style-aligntype: leftdecimal;"| '''OK'''><li><p>In the linux system, the SPI in the 40 pin is closed by default, and it needs to be opened manually before it can be used. The detailed steps are as follows:</p>| <ol style="textlist-alignstyle-type: leftlower-alpha;"| ><li><p>First run '''orangepi-config''', normal users remember to add '''OKsudo'''permission</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text<p>orangepi@orangepi:~$ '''sudo orangepi-align: left;"config'''</p>| }</li><li><p>Then select '''MaskROMSystem''' </p><p>[[File:plus5-img234.png]]</p></li><li><p>Then select '''buttonHardware'''</p>| style="text<p>[[File:plus5-alignimg235.png]]</p></li><li><p>Then use the arrow keys on the keyboard to navigate to the position shown in the figure below, and then use the '''space''' to select the SPI configuration you want to open</p><p>[[File: leftplus5-img312.png]]</p></li><li><p>Then select '''&lt;"| Save&gt;''' to save</p><p>[[File:plus5-img263.png]]</p></li><li><p>Then select '''OK&lt;Back&gt;'''</p>| style="text<p>[[File:plus5-align: left;"| img264.png]]</p></li><li><p>Then select '''OK&lt;Reboot&gt;'''to restart the system to make the configuration take effect</p>| style="text<p>[[File:plus5-align: left;"| img239.png]]</p></li></ol></li><li><p>After restarting, enter the system and first check whether there is a '''OKspidevx.x'''device node in the linux system. If it exists, it means that the SPI has been set up and can be used directly.</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''Type-C转USB3.0ls /dev/spidev*'''</p><p>/dev/spidev0.0 /dev/spidev0.1 /dev/spidev4.0 /dev/spidev4.1</p>| style="text-align: left;"| '''OK'''}{| styleclass="text-align: left;wikitable"| '''OK'''| style="textbackground-aligncolor: left#ffffdc;"| '''OK'''| style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align: left;"| <big><p>'''TypeThe above is the result displayed after turning on spi0-m2-C ADB''' '''Functioncs0-cs1-spidev and spi4-m1-cs0-cs1-spidev.'''</p></big>| style="text-align: left;"| '''OK'''}</li>| style="text<li><p>Then do not short-align: left;"| '''OK'''circuit the MOSI and MISO pins of SPI0 or SPI4, the output result of running spidev_test is as follows, you can see that the data of TX and RX are inconsistent</p>{| styleclass="text-align: left;wikitable"| '''OK'''| style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''Typesudo spidev_test -C DPv -D /dev/spidev4.0''' </p><p>'''Videoor'''</p>| style="text-align<p>orangepi@orangepi: left;"| ~$ '''OKsudo 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="text-aligncolor: left;#FF0000"| >40 00 00 00 00 95</span>'''OKFF 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="text-aligncolor: left;#FF0000"| '''OK>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>Then short-circuit the MOSI and MISO pins of SPI0 or SPI4, and then run the output of spidev_test as follows. You can see that the sent and received data are the same, indicating that the SPI loopback test is normal.</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''Typesudo spidev_test -C DPv -D /dev/spidev4.0''' </p><p>'''Audioor'''</p>| style="text-align<p>orangepi@orangepi: left;"| ~$ '''OKsudo 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="text-aligncolor: left;#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 '''OK<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-test"></span> === 40 pin I2C test === <ol style="textlist-alignstyle-type: leftdecimal;"| '''OK'''><li><p>As can be seen from the table below, the available i2c for Orange Pi 5 Plus is i2c2, i2c4, i2c5 and i2c8, a total of four sets of i2c buses.</p><p>[[File:plus5-img304.png]]</p></li><li><p>The corresponding pins of the 4 groups of I2C buses in 40pin are shown in the table below. I2C2_M0 and I2C2_M4 can only use one of them at the same time, and they cannot be used at the same time. They are all the same I2C2, but they are connected to different pins. Please don’t think that they are two different sets of I2C2 buses.</p></li> {| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align: left;"| '''switch buttonI2C bus'''| style="text-align: left;"| '''OKSDA corresponds to 40pin'''| style="text-align: left;"| '''OKSCL corresponds to 40pin'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OKdtbo corresponding configuration'''
|-
| style="text-align: left;"| '''infrared functionI2C2_M0'''| style="text-align: left;"| '''OKPin 3'''| style="text-align: left;"| '''OKPin 5'''| style="text-align: left;"| '''OK'''| style="texti2c2-align: left;"| '''OKm0'''
|-
| style="text-align: left;"| '''Three-color LED lightI2C2_M4'''| style="text-align: left;"| '''OKPin 10'''| style="text-align: left;"| '''OKPin 8'''| style="text-align: left;"| '''OK'''| style="texti2c2-align: left;"| '''OKm4'''
|-
| style="text-align: left;"| '''Onboard MICI2C4_M3'''| style="text-align: left;"| '''OKPin 22'''| style="text-align: left;"| '''OKPin 32'''| style="text-align: left;"| '''OK'''| style="texti2c4-align: left;"| '''OKm3'''
|-
| style="text-align: left;"| '''headphone playbackI2C5_M3'''| style="text-align: left;"| '''OKPin 27'''| style="text-align: left;"| '''OKPin 28'''| style="text-align: left;"| '''OK'''| style="texti2c5-align: left;"| '''OKm3'''
|-
| style="text-align: left;"| '''headphone recordingI2C8_M2'''| style="text-align: left;"| '''OKPin 29'''| style="text-align: left;"| '''OKPin 7'''| style="text-align: left;"| '''OKi2c8-m2'''| }</ol><ol start="3" style="list-style-type: decimal;"><li><p>In the linux system, the I2C bus in the 40 pin is closed by default, and it needs to be opened manually to use it. The detailed steps are as follows:</p><ol style="textlist-style-aligntype: leftlower-alpha;"| ><li><p>First run '''orangepi-config''', normal users remember to add '''OKsudo'''permission</p>{| class="wikitable" style="width:800px;"
|-
| style="text<p>orangepi@orangepi:~$ '''sudo orangepi-align: left;"config'''</p>| }</li><li><p>Then select '''SPK HornSystem'''</p>| style="text<p>[[File:plus5-alignimg234.png]]</p></li><li><p>Then select '''Hardware'''</p><p>[[File: left;"| plus5-img235.png]]</p></li><li><p>Then use the arrow keys on the keyboard to navigate to the position shown in the figure below, and then use the '''OKspace'''to select the I2C configuration you want to open</p>| style="text<p>[[File:plus5-alignimg313.png]]</p></li><li><p>Then select '''&lt;Save&gt;''' to save</p><p>[[File: leftplus5-img263.png]]</p></li><li><p>Then select '''&lt;Back&gt;"| '''OK</p><p>[[File:plus5-img264.png]]</p></li><li><p>Then select '''&lt;Reboot&gt;'''to restart the system to make the configuration take effect</p>| style="text<p>[[File:plus5-align: left;"| img239.png]]</p></li></ol></li><li><p>After starting the linux system, first confirm that there are device nodes that need to use I2C under '''OK/dev'''</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''40PIN GPIOls /dev/i2c-*'''</p>| style="text-align: left;"| '''OK}</li><li><p>Then connect an I2C device to the I2C pin corresponding to the 40 pin interface</p></li><li><p>Then use the '''| style="texti2cdetect -align: left;"| '''OKy'''command, if the address of the connected i2c device can be detected, it means that i2c can be used normally</p>{| styleclass="text-align: left;wikitable"| '''OK'''| style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''40PIN I2Csudo i2cdetect -y 2'''#i2c2 command</p>| style="text-align<p>orangepi@orangepi: left;"| ~$ '''OKsudo i2cdetect -y 4'''#i2c4 command</p>| style="text-align<p>orangepi@orangepi: left;"| ~$ '''OKsudo i2cdetect -y 5'''#i2c8 command</p>| style="text-align<p>orangepi@orangepi: left;"| ~$ '''OKsudo i2cdetect -y 8'''#i2c8 command</p>| style}<div class="text-align: left;figure"| '''OK'''> |[[File:plus5-img314.png]] </div></li></ol>| style<span id="textpin-uart-align: left;test"| '''40PIN SPI'''></span> === 40 pin UART test === | <ol style="textlist-alignstyle-type: leftdecimal;"| '''OK'''><li><p>As can be seen from the table below, the uarts available for Orange Pi 5 Plus are uart1, uart3, uart4, uart6, uart7 and uart8, a total of 6 sets of uart buses</p>| style="text<p>[[File:plus5-alignimg304.png]]</p></li><li><p>The corresponding pins of the 6 groups of UART buses in 40pin are shown in the following table: left;"| '''OK'''</p></li> {| styleclass="text-align: left;wikitable"| '''OK'''| style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align: left;"| '''40PIN UARTbus'''| style="text-align: left;"| '''OKRX corresponds to 40pin'''| style="text-align: left;"| '''OKTX corresponds to 40pin'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OKdtbo corresponding configuration'''
|-
| style="text-align: left;"| '''40PIN CANUART1_M1'''| style="text-align: left;"| '''OKPin 27'''| style="text-align: left;"| '''OKPin 28'''| style="text-align: left;"| '''OK'''| style="textuart1-align: left;"| '''OKm1'''
|-
| style="text-align: left;"| '''40PIN PWMUART3_M1'''| style="text-align: left;"| '''OKPin 18'''| style="text-align: left;"| '''OKPin 16'''| style="text-align: left;"| '''OK'''| style="textuart3-align: left;"| '''OKm1'''
|-
| style="text-align: left;"| '''TF card startUART4_M2'''| style="text-align: left;"| '''OKPin 19'''| style="text-align: left;"| '''OKPin 23'''| style="text-align: left;"| '''OK'''| style="textuart4-align: left;"| '''OKm2'''
|-
| style="text-align: left;"| '''SPI+NVME startUART6_M1'''| style="text-align: left;"| '''OKPin 10'''| style="text-align: left;"| '''OKPin 8'''| style="text-align: left;"| '''OK'''| style="textuart6-align: left;"| '''OKm1'''
|-
| style="text-align: left;"| '''OV13850 cameraUART7_M2'''| style="text-align: left;"| '''OKPin 24'''| style="text-align: left;"| '''OKPin 26'''| style="text-align: left;"| '''OK'''| style="textuart7-align: left;"| '''OKm2'''
|-
| style="text-align: left;"| '''OV13855 cameraUART8_M1'''| style="text-align: left;"| '''OKPin 40'''| style="text-align: left;"| '''OKPin 35'''| style="text-align: left;"| '''OKuart8-m1'''| }</ol><ol start="3" style="list-style-type: decimal;"><li><p>In the linux system, the UART in the 40 pin is closed by default, and it needs to be opened manually to use it. The detailed steps are as follows:</p><ol style="textlist-style-aligntype: leftlower-alpha;"| ><li><p>First run '''orangepi-config''', normal users remember to add '''OKsudo'''permission</p>{| class="wikitable" style="width:800px;"
|-
| style="text<p>orangepi@orangepi:~$ '''sudo orangepi-align: left;"config'''</p>| }</li><li><p>Then select '''GPUSystem'''</p>| style="text<p>[[File:plus5-align: left;"| img234.png]]</p></li><li><p>Then select '''OKHardware'''</p>| style="text<p>[[File:plus5-alignimg235.png]]</p></li><li><p>Then use the arrow keys on the keyboard to navigate to the position shown in the figure below, and then use the space to select the UART configuration you want to open</p><p>[[File: leftplus5-img315.png]]</p></li><li><p>Then select '''&lt;"| Save&gt;''' to save</p><p>[[File:plus5-img263.png]]</p></li><li><p>Then select '''OK&lt;Back&gt;'''</p>| style="text<p>[[File:plus5-align: left;"| img264.png]]</p></li><li><p>Then select '''OK&lt;Reboot&gt;'''to restart the system to make the configuration take effect</p><p>[[File:plus5-img239.png]]</p></li></ol></li><li><p>After entering the linux system, first confirm whether there is a device node corresponding to uart under /dev</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''VPUls /dev/ttyS*'''</p>| style="text-align: left;"| '''OK'''}</li><li><p>Then start to test the uart interface, first use the DuPont line to short the rx and tx pins of the uart interface to be tested</p></li>| style="text-align: left;"| <li><p>Use the '''OKgpio serial'''command to test the loopback function of the serial port as shown below. If you can see the following print, it means that the serial port communication is normal (ttySX needs to be replaced with the node name corresponding to uart, please do not copy it)</p>{| styleclass="text-align: left;wikitable"| '''OK'''| style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align: left;"| '''NPU'''| style="text-align<p>orangepi@orangepi: left;"| ~$ '''OKsudo gpio serial /dev/ttySX'''</p>| style="text-align<p>[sudo] password for orangepi: left;"| '''OK'''#enter password here</p>| style="text-align<p>Out: left;"| '''OK'''| style="text-align0: left;"| '''OK'''|-| style="text-align: left&gt;"| '''REBOOT command restarts'''0</p>| style="text-align<p>Out: left;"| '''OK'''| style="text-align1: left;"| '''OK'''| style="text-align: left&gt;"| '''OK'''1</p>| style="text-align<p>Out: left;"| '''OK'''|-| style="text-align2: left;"| '''Poweroff command shutdown'''| style="text-align: left&gt;"| '''OK'''2</p>| style="text-align<p>Out: left;"| '''OK'''| style="text-align3: left;"| '''OK'''| style="text-align: left&gt;"| '''OK'''3</p>|-| style="text-align<p>Out: left;"| '''MIPI LCD display'''| style="text-align: left;"| '''OK'''| style="text-align4: left;"| '''OK'''| style="text-align: left&gt;"| '''OK'''4</p>| style="text-align<p>Out: left;"| '''OK'''|-| style="text-align5: left;"| '''MIPI LCD Touch'''| style="text-align: left&gt;"| '''OK'''5^C</p>| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Chromium hard solution video'''}| style="text-align: left;"| '''OK'''</li></ol>| style="text-align: left;"| '''OK'''| style<span id="textpwm-align: left;"| '''OK'''| style="texttest-align: left;method"| '''OK'''|}></span>
<span id="the-format-of-linux-commands-in-this-manual"></span>== The format of linux commands in this manual PWM test method ===
<ol style="list-style-type: decimal;">
<li><p>In this manual, all commands that need to be entered in the Linux system will As can be framed in seen from the following box</p><p>As shown table below, the content in the yellow box indicates the content that needs special attention, except available PWM for the commands in it.</p></li><li><p>Description of the prompt type in front Orange Pi 5 Plus includes six channels of the command</p><ol style="list-style-typePWM: lower-alpha;"><li><p>The prompt in front of the command refers to the content of the &gt; red part in the box belowpwm0, pwm1, which is not part of the linux &gt; commandpwm11, so when entering the command in the linux systempwm12, &gt; please do not enter the content of the red font part.pwm13 and pwm14</p><p>'''orangepi@orangepi:~$ sudo apt update'''</p><p>'''root@orangepi:~#''' '''vim /boot/boot.cmd'''</p><p>'''test@test:~$ ssh [mailto[File:root@192.168.1.36 root@192.168.1plus5-img304.png]]xxx'''</p><p>'''root@test:~# ls'''</p></li><li><p>'''root@orangepi:~$''' prompt indicates that this command is &gt; entered in the '''linux system''' '''of the development board''', &gt; and the last '''$''' of the prompt indicates that the current &gt; user of the system is an ordinary user. When executing a &gt; privileged command, you need to add '''sudo'''</p></li><li><p>'''root@orangepi:~#''' The prompt indicates that this command is &gt; entered in the '''linux system of the development board''', and &gt; the '''#''' at the end of the prompt indicates that the current &gt; user corresponding pins of the system is the root user, who can execute any &gt; desired command</p></li><li><p>'''test@test:~$''' prompt indicates that this command is entered &gt; PWM in the Ubuntu PC or Ubuntu virtual machine, not 40pin are shown in the linux &gt; system of the development boardtable below. The '''$''' at the end Only one of the &gt; prompt indicates that the current user of the system is an &gt; ordinary user. When executing privileged commandsPWM0_M0 and PWM0_M2, you need to &gt; add '''sudo'''</p></li><li><p>'''root@test:~#''' prompt indicates that this command is entered &gt; in the Ubuntu PC or Ubuntu virtual machinePWM1_M0 and PWM1_M2, not in the linux &gt; system of the development board. The # at the end of the &gt; prompt indicates that the current user of the system is the &gt; root user PWM14_M0 and PWM14_M2 can execute any command you want</p></li></ol></li><li><p>What are the commands that need to be entered?</p><ol style="list-style-type: lower-alpha;"><li><p>As shown below, the '''black bold part''' is used at the command that &gt; needs to be inputsame time, and the content below the command is the &gt; output content (some commands have output, some may not have &gt; output), this part of the content does not need to be input</p><p>root@orangepi:~# '''cat /boot/orangepiEnv.txt'''</p><p>'''verbosity=7'''</p><p>bootlogo=false</p><p>'''console=serial'''</p></li><li><p>As shown below, some commands they cannot be written in one line and &gt; will be placed on used at the next linesame time. As long as the black and bold &gt; parts They are all commands that need to be input. When these &gt; commands the same PWM, but they are entered into one line, the last &quot;\&quot; of each &gt; line needs connected to be removed, this is not part of the commanddifferent pins. In &gt; addition, there Please don’t think that they are spaces in two different parts of the command, &gt; please don’t miss it</p><p>orangepi@orangepi:~$ '''echo \'''</p><p>'''&quot;deb [arch=$(dpkg --print-architecture) \'''</p><p>'''signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \'''</p><p>'''https://download.docker.com/linux/debian \'''</p><p>'''$(lsb_release -cs) stable&quot; | sudo tee /etc/apt/sources.list.d/dockerPWM bus.list &gt; /dev/null'''</p></li></ol></li></ol> <span id="linux-system-login-instructions"></span>== Linux system login instructions == <span id="linux-system-default-login-account-and-password"></span>=== Linux system default login account and password ===
{| class="wikitable" style="width:800px;"
|-
| style="text-align: left;"| '''AccountPWM总线'''| style="text-align: left;"| '''PasswordCorresponding to 40pin'''| style="text-align: left;"| '''dtbo corresponding configuration'''
|-
| style="text-align: left;"| '''rootPWM0_M0'''| style="text-align: left;"| '''orangepiPin 5'''| style="text-align: left;"| '''pwm0-m0'''
|-
| style="text-align: left;"| '''orangepiPWM0_M2'''| style="text-align: left;"| '''Pin 22'''| style="text-align: left;"| '''pwm0-m2'''|-| style="text-align: left;"| '''PWM1_M0'''| style="text-align: left;"| '''Pin 3'''| style="text-align: left;"| '''pwm1-m0'''|-| style="text-align: left;"| '''PWM1_M2'''| style="text-align: left;"| '''Pin 32'''| style="text-align: left;"| '''pwm1-m2'''|-| style="text-align: left;"| '''PWM11_M0'''| style="text-align: left;"| '''Pin 12'''| style="text-align: left;"| '''pwm11-m0'''|-| style="text-align: left;"| '''PWM12_M0'''| style="text-align: left;"| '''Pin 14'''| style="text-align: left;"| '''pwm12-m0'''|-| style="text-align: left;"| '''PWM13_M0'''| style="text-align: left;"| '''Pin 16'''| style="text-align: left;"| '''pwm13-m0'''|-| style="text-align: left;"| '''PWM14_M0'''| style="text-align: left;"| '''Pin 33'''| style="text-align: left;"| '''pwm14-m0'''|-| style="text-align: left;"| '''PWM14_M2'''| style="text-align: left;"| '''Pin 7'''| style="text-align: left;"| '''pwm14-m0'''|}</ol><ol start="3" style="list-style-type: decimal;"><li><p>In the linux system, the PWM in the 40 pin is turned off by default, and it needs to be turned on manually before it can be used. The detailed steps are as follows:</p><ol style="list-style-type: lower-alpha;"><li><p>First run '''orangepi-config''', normal users remember to add '''sudo''' permission</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li><li><p>Then select '''System'''</p><p>[[File:plus5-img234.png]]</p></li><li><p>Then select '''Hardware'''</p><p>[[File:plus5-img235.png]]</p></li><li><p>Then use the arrow keys on the keyboard to navigate to the position shown in the figure below, and then use the space to select the PWM configuration you want to open</p><p>[[File:plus5-img316.png]]</p></li><li><p>Then select '''&lt;Save&gt;''' to save</p><p>[[File:plus5-img263.png]]</p></li><li><p>Then select '''&lt;Back&gt;'''</p><p>[[File:plus5-img264.png]]</p></li><li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the configuration take effect</p><p>[[File:plus5-img239.png]]</p></li></ol></li><li><p>After opening a pwm, there will be an extra pwmchipX in '''/sys/class/pwm/''' (X is a specific number), for example, after opening pwm14, check the pwmchipX under '''/sys/class/pwm/''' two became three</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ls /sys/class/pwm/'''</p><p>pwmchip0 pwmchip1 pwmchip2</p>
|}
</li>
<li><p>Which pwmchip above corresponds to pwm14? Let’s check the output of the ls /sys/class/pwm/ -l command first, as shown below:</p>
<div class="figure">
'''Note that when entering the password,''' '''the specific content of the entered password will not be displayed on the screen, please do not think that there is any fault, just press Enter after inputting[[File:plus5-img317.'''png]]
'''When </div></li><li><p>Then it can be known from the table below that the base address of the wrong password pwm14 register is promptedfebf0020, or there is a problem with and then look at the ssh connection, please note that as long as you are using output of the Linux image provided by Orange Pi,''' ls /sys/class/pwm/ -l'''please do not suspect command, you can see that the above password pwmchip2 is wronglinked to febf0020.pwm, but look for other reasonsso pwm14 corresponds to pwmchip as pwmchip2</p><p>[[File:plus5-img318.'''png]]</p></li><li><p>Then use the following command to make pwm14 output a 50Hz square wave (please switch to the root user first, and then execute the following command)</p></li>
<span id{| class="howwikitable" style="width:800px;" |-to-set-automatic-terminal-login-in-linux-system"><|root@orangepi:~# '''echo 0 &gt; /sys/class/pwm/pwmchip2/span>=== How to set automatic terminal login in linux system ===export'''
<ol style="list-style-type: decimal;"><li><p>By default, the Linux system automatically logs in to the terminal, and the default login user name is '''orangepi'''</p><p>[[File:./images/media/image274.png|387x253px]]</p></li><li><p>Use the following command to set the root user to automatically log in to the terminal</p><p>orangepi@orangepi:~$ # '''sudo auto_login_cli.sh root'''<echo 20000000 &gt; /p><sys/li><li><p>Use the following command to disable automatic login terminal<class/p><p>orangepi@orangepi:~$ '''sudo auto_login_cli.sh -d'''<pwm/p><pwmchip2/li><li><p>Use the following command to set the orangepi user to automatically log in to the terminal again<pwm0/p><p>orangepi@orangepi:~$ period'''sudo auto_login_cli.sh orangepi'''</p></li></ol>
<span id="instructions-for-automatic-login-of-linux-desktop-version-system"><root@orangepi:~# '''echo 1000000 &gt; /span>=== Instructions for automatic login of Linux desktop version system ===sys/class/pwm/pwmchip2/pwm0/duty_cycle'''
<ol style="list-style-typeroot@orangepi: decimal~# '''echo 1 &gt;"><li><p>After the desktop version system is started, it will automatically log in to the desktop without entering a password</p><div sys/class="figure">/pwm/pwmchip2/pwm0/enable'''
[[File:plus5-img319.png]]|}</imagesol><ol start="8" style="list-style-type: decimal;"><li>The test method of pwm14 demonstrated above is similar to other pwm test methods.</mediali></image275.png|576x324px|1]]ol>
</div></li><li><p>Run the following command to prohibit the desktop system from automatically logging into the desktop</p><p>orangepi@orangepi:~$ '''sudo disable_desktop_autologin.sh'''</p></li><li><p>Then restart the system and a login dialog box will appear, at which point a '''password''' is required to enter the system</p></lispan id="can-test-method"></olspan>
<div class="figure">== CAN test method ===
[[File:./images/media/image276.png|569x320px|IMG_256]] </div><span id="the-setting-method-of-root-user-automatic-loginhow-into-linuxopen-desktop-version-systemcan"></span>=== The setting method of root user automatic login in Linux desktop version system = How to open CAN ====
<ol style="list-style-type: decimal;">
<li><p>Execute As can be seen from the following command to set table below, the desktop system to automatically log in as the root user</p><p>orangepi@orangepi:~$ '''sudo desktop_login.sh root'''</p></li><li><p>Then restart the systemavailable CAN bus for Orange Pi 5 Plus is CAN0 and CAN1, it will automatically use the root user to log in to the desktopa total of two CAN buses</p><p>[[File:./images/media/image277plus5-img320.png|362x152px]]</p><p>'''Note that if you log in to the desktop system as the root user, you cannot use pulseaudio in the upper right corner to manage audio devices.'''</p><p>'''Also note that this is not a bug, since pulseaudio is not allowed to run as root.'''</p></li><li><p>Execute the following command to set the desktop system to log in automatically with the orangepi user again</p><p>orangepi@orangepi:~$ '''sudo desktop_login.sh orangepi'''</p></li></ol> <span id="the-method-of-disabling-In the-desktop-in-the-linux-desktop-version-system"></span>=== The method of disabling , the desktop CAN in the Linux desktop version system === <ol style="list-style-type: decimal;"><li><p>First enter the following command in the command line40 pin is closed by default, '''please remember and it needs to add sudo permission'''</p><p>orangepi@orangepi:~$ '''sudo systemctl disable lightdmbe opened manually before it can be used.service'''</p></li><li><p>Then restart the Linux system and you will find that the desktop will not be displayed</p><p>orangepi@orangepi:~$ '''sudo reboot'''</p></li><li><p>The detailed steps to reopen the desktop are as follows:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First enter the following command in the command line, run '''orangepi-config'''please , normal users remember to add &gt; remember to add sudo permission'''</p><p>orangepi@orangepi:~$ '''sudo systemctl start lightdm.service'''permission</p></li><li><p>After selection, the monitor will display the desktop</p></li></ol></li></ol> <span id{| class="onboard-led-light-test-instructionswikitable"></span>== Onboard LED Light Test Instructions == <ol style="list-style-typewidth: decimal800px;"><li><p>There is a red, green and blue three|-color light on the development board, and its location is shown in the figure below:</p><p>[[File:./images/media/image278.png|374x77px]]</p></li><li><p>'''As long as the development board is powered on, the red LED light will always be on, which is controlled by the hardware and cannot be turned off by the software. The red LED light can be used to determine whether the power supply of the development board is turned on normally.'''</p></li><li><p>The green and blue LED lights will keep blinking after the kernel boots, which is controlled by software.</p></li><li><p>The method of setting the green light on and off and flashing is as follows:</p><p>'''Note that the following operations should be performed under the root user.'''</p><ol style="list-style-type: lower-alpha;"><li><p>First enter the setting directory of the green light</p><p>rootorangepi@orangepi:~# $ '''cd /sys/class/leds/green_led'''</p></li><li><p>The command to set the green light to stop flashing is as &gt; follows</p><p>root@sudo orangepi:/sys/class/leds/green_led# '''echo none &gt; trigger'''</p></li><li><p>The command to set the green light to be on is as follows</p><p>root@orangepi:/sys/class/leds/green_led# '''echo default-on &gt; triggerconfig'''</p></li><li><p>The command to set the green light to flash is as follows</p><p>root@orangepi:/sys/class/leds/green_led# '''echo heartbeat &gt; trigger'''</p></li></ol>|}
</li>
<li><p>The method of setting the blue light on and off and flashing is as followsThen select '''System'''</p><p>[[File:plus5-img234.png]]</p></li><li><p>Then select '''Note that the following operations should be performed under the root user.Hardware'''</p><ol style="list-style-typep>[[File: lowerplus5-alpha;"img235.png]]</p></li><li><p>First enter Then use the setting directory of arrow keys on the keyboard to navigate to the &gt; position shown in the figure below, and then use the space to &gt; select the blue lightCAN configuration you want to open ('''can0-m0''' and &gt; '''cam1-m0''' are optional for OPi 5 Plus)</p><p>root@orangepi[[File:~# plus5-img321.png]]</p></li><li><p>Then select '''cd /sys/class/leds/blue_led&lt;Save&gt;'''to save</p><p>[[File:plus5-img63.png]]</p></li><li><p>The command to set the blue light to stop flashing is as followsThen select '''&lt;Back&gt;'''</p><p>root@orangepi[[File:plus5-img264.png]]</sysp></class/leds/blue_led# li><li><p>Then select '''echo none &lt;Reboot&gt; trigger'''to restart the system to make the &gt; configuration take effect</p><p>[[File:plus5-img239.png]]</p></li></ol></li><li><p>The After entering the Linux system, use the '''sudo ifconfig -a''' command to set , if you can see the CAN device node, it means that the blue light to be on is as followsCAN has been opened correctly</p>{| class="wikitable" style="width:800px;" |-|<p>rootorangepi@orangepi:/sys/class/leds/blue_led# ~$ '''echo defaultsudo ifconfig -on &gt; triggera'''</p><p>can0: flags=128&lt;NOARP&gt; mtu 16</lip>::<lip>unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)</p>::<p>The command to set the blue light to flash is as followsRX packets 0 bytes 0 (0.0 B)</p>::<p>root@orangepiRX errors 0 dropped 0 overruns 0 frame 0</p>::<p>TX packets 0 bytes 0 (0.0 B)</sysp>::<p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</classp>::<p>device interrupt 94</leds/blue_led# '''echo heartbeat p><p>can1: flags=128&lt;NOARP&gt; trigger'''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</lip>::<p>device interrupt 95</olp>|}</li><li><p>The corresponding pins of CAN0 and CAN1 are</olp></li>
{| class="wikitable" style="width:800px;" |-|| style="text-align: left;"| '''CAN0'''| style="text-align: left;"| '''CAN1'''|-| '''TX pin'''| style="text-align: left;"| '''Corresponding to pin 5 of 40pin'''| style="text-align: left;"| '''Corresponding to pin 18 of 40pin'''|-| '''RX pin'''| style="text-align: left;"| '''Corresponding to pin 3 of 40pin'''| style="text-align: left;"| '''Corresponding to pin 16 of 40pin'''|}</ol><span id="networkuse-the-canalyst-ii-analyzer-connectionto-test-sending-and-receiving-messages"></span>== Network connection test ==
<span id="g-ethernet-port-test"></span>=== 2.5G Ethernet port Use the CANalyst-II analyzer to test sending and receiving messages ====
<ol style="list-style-type: decimal;">
<li><p>The development board has two 2.5G Ethernet ports, and CANalyst-II analyzer used in the test methods for is shown in the two ports are figure below</p><p>[[File:plus5-img322.png]]</p></li><li><p>CANalyst-II analyzer data download link</p>{| class="wikitable" style="width:800px;" |-|'''https://www.zhcxgd.com/3.html'''|}</li><li><p>First install the samesoftware USBCANToolSetup</p><p>[[File:plus5-img323. Firstpng]]</p></li><li><p>The shortcut after installation of USBCANToolSetup is</p><p>[[File:plus5-img324.png]]</p></li><li><p>In addition, insert one you need to install the USB driver</p><p>[[File:plus5-img325.png]]</p></li><li><p>The end of the network cable into USB interface of the CANalyst-II analyzer needs to be connected to the Ethernet USB interface of the development boardcomputer</p><p>[[File:plus5-img326.png]]</p></li><li><p>To test the CAN function, and connect you need to prepare a CAN transceiver as shown in the other end figure below. The main function of the network cable CAN transceiver is to convert the router, and ensure that TTL signal of the CAN controller into the differential signal of the CAN bus</p><ol style="list-style-type: lower-alpha;"><li><p>The 3.3V pin of the CAN transceiver needs to be connected to the network is unimpeded3.3V pin in the 40 pins of the development board</p></li><li><p>After The GND pin of the system starts, it will automatically assign an IP address CAN transceiver needs to be connected to the Ethernet card through DHCP '''without any other configuration'''.GND pin in the 40 pin of the development board</p></li><li><p>The command CAN TX pin of the CAN transceiver needs to be connected to view the IP address TX pin of the CAN bus in the Linux system 40 pin of the development board is as follows:</p></li><li><p>orangepi@orangepi:~$ '''ip addr show'''The CAN RX pin of the CAN transceiver needs to be connected to the RX pin of the CAN bus in the 40 pin of the development board</p></li><li><p>1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000The CANL pin of the CAN transceiver needs to be connected to the H interface of the analyzer</p></li><li><p>link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00The CANL pin of the CAN transceiver needs to be connected to the L interface of the analyzer</p><p>inet 127[[File:plus5-img327.0.0.1png]]</p></li></8 scope host lool></pli><li><p>valid_lft forever preferred_lft foreverThen you can open the USB-CAN software</p><p>inet6 [[File::1plus5-img328.png]]</128 scope hostp></pli><li><p>valid_lft forever preferred_lft foreverThen click to start the device</p><p>2[[File: '''enP3p49s0''': &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP group default qlen 1000plus5-img329.png]]</p></li><li><p>link/ether 00:e0:4c:68:00:26 brd ff:ff:ff:ff:ff:ffThen click OK</p><p>inet '''192[[File:plus5-img330.168.1.245'''png]]</24 brd 192.168.1.255 scope global dynamic noprefixroute enP3p49s0p></pli><li><p>valid_lft 42537sec preferred_lft 42537secSet the baud rate to 1000k bps</p><p>inet6 fe80[[File::9005:95ac:b9c0:2bebplus5-img331.png]]</64 scope link noprefixroutep></pli><li><p>valid_lft forever preferred_lft foreverAfter successful opening, the USB-CAN software will display the serial number and other information</p><p>3[[File: '''enP4p65s0''': &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP group default qlen 1000plus5-img332.png]]</p></li><li><p>link/ether 00:e0:4c:68:00:27 brd ff:ff:ff:ff:ff:ffDevelopment board receives CAN message test</p><ol style="list-style-type: lower-alpha;"><li><p>inet a. First set the baud rate of the CAN bus to '''192.168.1.2471000kbps'''/24 brd 192.168.1.255 scope global dynamic noprefixroute enP4p65s0in the Linux system of the development board</p>{| class="wikitable" style="width:800px;" |-|<p>valid_lft 43179sec preferred_lft 43179secorangepi@orangepi:~$ '''sudo ip link set can0 down'''</p><p>inet6 fe80orangepi@orangepi::62b5:dc5e:728e:39a3/64 scope ~$ '''sudo ip link noprefixrouteset can0 type can bitrate 1000000'''</p><p>valid_lft forever preferred_lft foreverorangepi@orangepi:~$ '''sudo ip link set can0 up'''</p>|}</li><li><p>'''When using ifconfig to view the IP address, if Then run the following information is prompted, it is because sudo is not added. The correct command is:''' candump can0'''sudo ifconfig'''command to prepare to receive messages</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ifconfigsudo candump can0'''</p>|}</li><li><p>Command 'ifconfig' is available Then send a message to the development board in the following placesUSB-CAN software</p><p>* [[File:plus5-img333.png]]</sbin/ifconfigp></pli><li><p>* /usr/sbin/ifconfigIf the message sent by the analyzer can be received in the development board, it means that the CAN bus can be used normally</p>{| class="wikitable" style="width:800px;" |-|<p>The command could not be located because orangepi@orangepi5plus:~$ '''sudo candump can0''/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.'''&nbsp;&nbsp;&nbsp;&nbsp; can0 &nbsp;&nbsp;&nbsp;&nbsp; 001 &nbsp;&nbsp;&nbsp;&nbsp; [8] &nbsp;&nbsp;&nbsp;&nbsp; 01 02 03 04 05 06 07 08'''</p>|}<p/li>ifconfig: command not found</pol></li><li><p>Development board sends CAN message test</p><olstyle="list-style-type: lower-alpha;"'''There are three ways <li><p>First set the CAN baud rate to check the IP address after the development board starts:''' # 1000kbps'''Connect the HDMI display, then log in to the Linux system and use the''' </p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo ip addr showlink set can0 down''' </p><p>orangepi@orangepi:~$ '''command to view the IP addresssudo ip link set can0 type can bitrate 1000000'''</p># <p>orangepi@orangepi:~$ '''Enter thesudo ip link set can0 up''' </p>|}</li><li><p>Execute the '''ip addr show''' cansend'''command in on the debugging serial terminal to view the IP addressdevelopment board and send a message</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo cansend can0 123# 1122334455667788'''</p>|}</li><li><p>If there is no debugging serial port and no HDMI display, you the USB-CAN software can also check receive the IP address of message from the development board's network port through the router's management interface. However, in this method, some people often cannot see the IP address of the development board normally. If you can't see it, the debug method looks like this:'''communication is successful</p><div class="figure">
<!-- --><ol style="list-style-type[[File: upperplus5-alpha;"><li><p>'''First check whether the Linux system has started normally. If the three-color light on the development board is flashing, it is generally started normally. If only the red light is on, it means that the system has not started normally;'''</p></li><li></li><li><p>'''Check whether the network cable is plugged in tightly, or try another network cable;'''</p></li><li><p>'''Try another router (I have encountered many problems with the router, such as the router cannot assign the IP address normally,''' '''or the IP address has been'''</p><p>'''assigned normally but cannot be seen in the router);'''</p></li><li><p>'''If there is no router to replace, you can only connect to an HDMI display or use the debugging serial port to check the IP address.'''</p><p>'''In addition, it should be noted that the development board DHCP automatically assigns an IP address without any settingsimg334.'''</p></li></ol>png]]
<!-- --><ol start="4" style="list-style-type: decimal;"><li><p>The command to test the network connectivity is as follows, the '''ping''' command can be interrupted through the shortcut key of '''Ctrl+C'''</p><pdiv>orangepi@orangepi:~$ '''ping www.baidu.com -I enP4p65s0 #Test command for one of the network ports'''</p><pli>orangepi@orangepi:~$ '''ping www.baidu.com -I enP3p49s0 #Test command of another network port'''</pol><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>
<span id="wifihow-connectionto-testinstall-and-use-wiringop-python"></span>=== WIFI connection test ===
'''First of all, please note that there is no WIFI module on the Orange Pi 5 Plus development board, == How to install and an external PCIe network card or USB network card is required to use the WIFI function.'''wiringOP-Python ==
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''For instructions on using wiringOP-Python is the external PCIe network cardPython language version of wiringOP, please refer which is used to operate the section on''' '''how to use hardware resources of the development board, such as GPIO, I2C, SPI and UART, in the PCIe WIFI6+Bluetooth modulePython program.'''
'''For instructions on using the external USB network cardIn addition, please refer to note that all the following commands are operated under the''' '''USB wireless network card test section<span style="color:#FF0000">root</span> user.'''</big>|}
'''Please do not connect <span id="how-to WIFI by modifying the''' '''-install-wiringop-python"></etc/network/interfaces''' '''configuration file. There will be problems connecting span>=== How to the WIFI network in this way.'''install wiringOP-Python ===
<span idol style="list-style-type: decimal;"><li><p>First install thedependency package</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~# '''sudo apt-get update'''</p><p>root@orangepi:~# '''sudo apt-serverget -imagey install git swig python3-connectsdev python3-setuptools'''</p>|}</li><li><p>Then use the following command todownload the source code of wiringOP-wifiPython</p>{| class="wikitable" style="background-throughcolor:#ffffdc;width:800px;" |-commands"| <big><p>'''Note that the following git clone --recursive command will automatically download the source code of wiringOP, because wiringOP-Python depends on wiringOP. Please make sure that the download process does not report errors due to network problems.'''</spanp>==== The server <p>'''If you have problems downloading the code from GitHub, you can directly use the wiringOP-Python source code that comes with the Linux image connects to WIFI through commands ==, and the storage location is: /usr/src/wiringOP-Python.'''</p></big>|}{| class="wikitable" style="width:800px;" |-|root@orangepi:~# '''git clone --recursive https://github.com/orangepi-xunlong/wiringOP-Python -b next'''
root@orangepi:~# '''When the development board is not connected to Ethernet, not connected to HDMI display, but only connected to the serial port, it is recommended to use the commands demonstrated in this section to connect to the WIFI network. Because nmtui can only display characters in some serial port software (such as minicom), and cannot display the graphical interface normally. Of course, if the development board is connected to an Ethernet or HDMI display, you can also use the commands demonstrated in this section to connect to the WIFI network.cd wiringOP-Python'''
root@orangepi:~/wiringOP-Python# '''The commands demonstrated below are git submodule update --init --remote'''|}</li><li><p>Then use the default WIFI network device node name wlan0, but following command to compile wiringOP-Python and install it into the node names Linux system of different WIFI modules will be differentthe development board</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~# '''cd wiringOP-Python'''</p><p>root@orangepi:~/wiringOP-Python# '''python3 generate-bindings.py &gt; bindings.i'''</p><p>root@orangepi:~/wiringOP-Python# '''sudo python3 setup.py install'''</p>|}</li><li><p>Then enter the following command, if there is help information output, please replace it with means that wiringOP-Python is installed successfully, press the actual node name you see, do not copy it.'''q''' key to exit the help information interface</p></li>
<ol {| class="wikitable" style="list-style-typewidth: decimal800px;"><li><p>First log in to the linux system, there are the following three ways</p>|-|<ol style="list-style-typeroot@orangepi: lower~/wiringOP-alpha;"><li><p>If the development board is connected with a network cable, you &gt; can Python# '''remotely log in to the Linux system through ssh'''</p></li><li></li><li><p>If the development board is connected to the debugging serial python3 -c &gtquot;import wiringpi; port, you can use the serial port terminal to log in to the help(wiringpi)&gtquot; Linux system</p></li>'''<li></li><li><p>If the development board is connected to the HDMI display, you &gt; can log in to the linux system through the HDMI display &gt; terminal</p></li></ol></li></ol>Help on module wiringpi:
<!-- -->
<ol style="list-style-type: decimal;">
<li><p>First use the '''nmcli dev wifi''' command to scan the surrounding WIFI hotspots</p>
<p>orangepi@orangepi:~$ '''nmcli dev wifi'''</p>
<div class="figure">
[[File:./images/media/image279.png|575x250px|选区_011]]NAME
</div></li><li><p>Then use the '''nmcli''' command to connect to the scanned WIFI hotspot, where:</p><ol style="list-style-type: lower-alpha;"><li><p>'''wifi_name''' needs to be replaced with the</p></li><li><p>'''wifi_passwd''' needs to be replaced with the password of the &gt; WIFI hotspot you want to connect to</p><p>orangepi@orangepi:~$ '''nmcli dev wifi connect wifi_name password wifi_passwd'''</p><p>Device 'wlan0' successfully activated with 'cf937f88-ca1e-4411-bb50-61f402eef293'.</p></li></ol></li><li><p>Through the '''ip addr show wlan0''' command, you can view the IP address of wifi</p><p>'''The device node names of WIFI are not necessarily all wlan0, please refer to what you actually see.'''</p><p>orangepi@orangepi:~$ '''ip addr show wlan0'''</p><p>11: wlan0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000</p><p>link/ether 23:8c:d6:ae:76:bb brd ff:ff:ff:ff:ff:ff</p><p>inet '''192.168.1.11'''/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0</p><p>valid_lft 259192sec preferred_lft 259192sec</p><p>inet6 240e:3b7:3240:c3a0:c401:a445:5002:ccdd/64 scope global dynamic noprefixroute</p><p>valid_lft 259192sec preferred_lft 172792sec</p><p>inet6 fe80::42f1:6019:a80e:4c31/64 scope link noprefixroute</p><p>valid_lft forever preferred_lft forever</p></li><li><p>Use the '''ping''' command to test the connectivity of the wifi network, and the '''ping''' command can be interrupted through the shortcut key '''Ctrl+C'''</p><p>'''The device node names of WIFI are not necessarily all wlan0, please refer to what you actually see.'''</p><p>orangepi@orangepi:~$ '''ping www.orangepi.org -I wlan0'''</p><p>PING www.orangepi.org (182.92.236.130) from 192.168.1.49 wlan0: 56(84) bytes of data.</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=1 ttl=52 time=43.5 ms</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=2 ttl=52 time=41.3 ms</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=3 ttl=52 time=44.9 ms</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=4 ttl=52 time=45.6 ms</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=5 ttl=52 time=48.8 ms</p><p>^C</p><p>--- www.orangepi.org ping statistics ---</p><p>5 packets transmitted, 5 received, 0% packet loss, time 4006ms</p><p>rtt min/avg/max/mdev = 41.321/44.864/48.834/2.484 ms</p></li></ol>wiringpi
<span id="the-server-image-connects-to-wifi-in-a-graphical-way"></span>
==== The server image connects to WIFI in a graphical way ====
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.|}</ol ><ol start="5" style="list-style-type: decimal;"><li><p>First log in The steps to test whether wiringOP-Python is successfully installed under the linux system, there python command line are the following three waysas follows:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>If the development board is connected with a network cable, you &gt; can '''remotely log in to the Linux system through ssh'''</p></li><li><p>If the development board is connected to the debugging serial &gt; port, you can First use the serial port terminal to log in to the &gt; linux system (please use MobaXterm for the serial port &gt; software, and minicom cannot display the graphical interface)</p></li><li><p>If the development board is connected python3 command to the HDMI display, you &gt; can log in to the linux system through the terminal displayed &gt; on the HDMI</p></li></ol></li><li><p>Then enter the nmtui command in the command line to open the wifi connection interface</p><p>orangepi@orangepi:~$ '''nmtui'''</p>mode of python3</li><li><p>Enter the nmtui command to open the interface as shown below</p><p>[[File:./images/media/image280.png{|345x215px]]</p></li><li><p>Select '''Activate a connect''' and press Enter</p><p>[[Fileclass="wikitable" style="width:./images/media/image281.png|349x216px]]</p></li>800px;" <li><p>Then you can see all the searched WIFI hotspots</p><p>[[File:./images/media/image283.png|358x226px]]</p></li>-<li><p>Select the WIFI hotspot you want to connect to, then use the Tab key to position the cursor on '''Activate''' and press Enter</p><p>[[File:./images/media/image285.png|357x226px]]</p></li><li><p>Then a dialog box for entering a password will pop up, enter the corresponding password in '''Password''' and press Enter to start connecting to WIFI</p><p>[[File:./images/media/image286.png|352x225px]]</p></li><li><p>After the WIFI connection is successful, a &quot;*&quot; will be displayed in front of the connected WIFI name</p><p>[[File:./images/media/image287.png|349x223px]]</p></li><li><p>You can view the IP address of wifi through the '''ip addr show wlan0''' command</p><p>'''The device node names of WIFI are not necessarily all wlan0, please refer to what you actually see.'''</p><p>orangepiroot@orangepi:~$ # '''ip addr show wlan0python3'''</p><p>11: wlan0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000</p>|}<p>link/ether 24:8c:d3:aa:76:bb brd ff:ff:ff:ff:ff:ff</pol><p>inet '''192.168.1.11'''/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0</p><p>valid_lft 259069sec preferred_lft 259069sec</p><p>inet6 240e:3b7:3240:c4a0:c401:a445:5002:ccdd/64 scope global dynamic</p><p>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>Use the '''ping''' command to test the connectivity of the wifi network, and the '''ping''' command can be interrupted through the shortcut key '''Ctrl+C'''</p><p>'''The device node names of WIFI are not necessarily all wlan0, please refer to what you actually see.'''</p><p>orangepi@orangepi:~$ '''ping www.orangepi.org -I wlan0'''</p><p>PING www.orangepi.org (182.92.236.130) from 192.168.1.49 wlan0: 56(84) bytes of data.</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=1 ttl=52 time=43.5 ms</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seqol start="2 ttl=52 time=41.3 ms</p><p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq" style=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>"list-style-type: lower- www.orangepi.org ping statistics ---</palpha;"><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</pli>Then import the python module of wiringpi</li></ol>
{| class="wikitable" style="width:800px;" |-|&gt;&gt;&gt; '''import wiringpi;'''|}<span id/ol><ol start="3" style="testlist-methodstyle-oftype: lower-desktop-imagealpha;"><li>Finally, enter the following command to view the help information of wiringOP-Python, and press the q key to exit the help information interface</spanli>==== Test method of desktop image ====
<ol {| class="wikitable" style="list-style-typewidth: decimal800px;"><li><p>Click the network configuration icon in the upper right corner of the desktop (please do not connect the network cable when testing WIFI)</p><p>[[File:./images/media/image288.png|377x166px]]</p></li><li><p>Click '''More networks''' in the pop-up drop-down box to see all scanned WIFI hotspots, and then select the WIFI hotspot you want to connect to</p><p>[[File:./images/media/image289.png|576x353px]]</p></li><li><p>Then enter the password of the WIFI hotspot, and then click &gt;&gt;&gt; '''Connecthelp(wiringpi)''' to start connecting to WIFI</p><p>[[File:./images/media/image290.png|320x163px]]</p></li><li><p>After connecting to WIFI, you can open the browser to check whether you can access the Internet. The entrance of the browser is shown in the figure below</p><p>[[File:./images/media/image291.png|576x308px]]</p></li><li><p>If you can open other web pages after opening the browser, it means that the WIFI connection is normal</p><p>[[File:./images/media/image293.png|574x222px]]</p></li></ol>
<span id="how-to-set-a-static-ip-address"></span>=== How to set a static IP address ===Help on module wiringpi:
'''Please do not set a static IP address by modifying the''' '''/etc/network/interfaces''' '''configuration file.'''
<span id="use-the-nmtui-command-to-set-a-static-ip-address"></span>==== Use the nmtui command to set a static IP address ====NAME
<ol style="list-style-type: decimal;"><li><p>First run the '''nmtui''' command</p><p>orangepi@orangepi:~$ '''nmtui'''</p></li><li><p>Then select '''Edit a connection''' and press Enter</p><p>[[File:./images/media/image294.png|234x234px]]</p></li><li><p>Then select the network interface that needs to set a static IP address, such as setting the static IP address of the Ethernet interface to select '''Wired connection 1''' or '''Wired connection 2'''</p><p>[[File:./images/media/image295.png|306x121px]]</p></li><li><p>Then select '''Edit''' via the '''Tab''' key and press the Enter key</p><p>[[File:./images/media/image296.png|356x142px]]</p></li><li><p>Then use the Tab key to move the cursor to the &lt;'''Automatic'''&gt; position shown in the figure below to configure IPv4</p><p>[[File:./images/media/image297.png|576x215px]]</p></li><li><p>Then press Enter, select '''Manual''' through the up and down arrow keys, and press Enter to confirm</p><p>[[File:./images/media/image298.png|575x212px]]</p></li><li><p>The display after selection is shown in the figure below</p><p>[[File:./images/media/image299.png|575x215px]]</p></li><li><p>Then move the cursor to &lt;'''Show'''&gt; via the Tab key</p><p>[[File:./images/media/image300.png|576x215px]]</p></li><li><p>Then press Enter, and the following setting interface will pop up after entering</p><p>[[File:./images/media/image301.png|576x386px]]</p></li><li><p>Then you can set the IP address (Addresses), gateway (Gateway) and DNS server address in the position shown in the figure below (there are many other setting options in it, please explore by yourself), '''please set according to your specific needs, The values set in the image below are just an example'''</p><p>[[File:./images/media/image302.png|575x217px]]</p></li><li><p>After setting, move the cursor to '''&lt;OK&gt;''' in the lower right corner, and press Enter to confirm</p><p>[[File:./images/media/image303.png|575x114px]]</p></li><li><p>Then click '''&lt;Back&gt;''' to return to the previous selection interface</p><p>[[File:./images/media/image304.png|278x341px]]</p></li><li><p>Then select '''Activate a connection''', then move the cursor to '''&lt;OK&gt;''', and finally click Enter</p><p>[[File:./images/media/image305.png|226x224px]]</p></li><li><p>Then select the network interface that needs to be set, such as '''Wired connection 2''', then move the cursor to '''&lt;Deactivate&gt;''', and press the Enter key to disable '''Wired connection 2'''</p><p>[[File:./images/media/image306.png|417x159px]]</p></li><li><p>Then re-select and enable '''Wired connection 2''', so that the static IP set earlier will take effect</p><p>[[File:./images/media/image307.png|414x160px]]</p></li><li><p>Then you can exit nmtui through the '''&lt;Back&gt;''' and '''Quit''' buttons</p><p>[[File:./images/media/image308.png|260x224px]] [[File:./images/media/image309.png|225x225px]]</p></li><li><p>Then through '''ip addr show,''' you can see that the IP address of the network port has changed to the static IP address set earlier</p><p>orangepi@orangepi:~$ '''ip addr show enP4p65s0'''</p><p>3: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000</p><p>link/ether 5e:ac:14:a5:92:b3 brd ff:ff:ff:ff:ff:ff</p><p>inet '''192.168.1.100'''/24 brd 192.168.1.255 scope global noprefixroute enP4p65s0</p><p>valid_lft forever preferred_lft forever</p><p>inet6 241e:3b8:3240:c3a0:e269:8305:dc08:135e/64 scope global dynamic noprefixroute</p><p>valid_lft 259149sec preferred_lft 172749sec</p><p>inet6 fe80::957d:bbbe:4928:3604/64 scope link noprefixroute</p><p>valid_lft forever preferred_lft forever</p></li><li><p>Then you can test the connectivity of the network to check whether the IP address is configured OK, and the '''ping''' command can be interrupted through the shortcut key '''Ctrl+C'''</p><p>orangepi@orangepi:~$ '''ping 192.168.1.47 -I enP4p65s0'''</p><p>PING 192.168.1.47 (192.168.1.47) from 192.168.1.188 enP4p65s0: 56(84) bytes of data.</p><p>64 bytes from 192.168.1.47: icmp_seq=1 ttl=64 time=0.233 ms</p><p>64 bytes from 192.168.1.47: icmp_seq=2 ttl=64 time=0.263 ms</p><p>^C</p><p>--- 192.168.1.47 ping statistics ---</p><p>5 packets transmitted, 5 received, 0% packet loss, time 4042ms</p><p>rtt min/avg/max/mdev = 0.233/0.262/0.275/0.015 ms</p></li></ol>wiringpi
<span id="use-the-nmcli-command-to-set-a-static-ip-address"></span>
==== Use the nmcli command to set a static IP address ====
<ol style="list-style-type: decimal;"><li><p>If you want to set the static IP address of the network port, please insert the network cable into the development board first. '''If you need to set the static IP address of WIFI, please connect the WIFI first''', and then start to set the static IP address</p></li><li><p>Then use the '''nmcli con show''' command to view the name of the network device, as shown below, '''Wired connection 1''' and '''Wired connection 2''' are the names of the Ethernet interfaces</p><p>orangepi@orangepi:~$ '''nmcli con show'''</p><p>NAME UUID TYPE DEVICE</p><p>Wired connection 1 c043c817-1156-3b72-a559-9a8cd642bf70 ethernet enP3p49s0</p><p>Wired connection 2 6f74598a-ccc6-358b-be05-87eaf34df930 ethernet enP4p65s0</p></li><li><p>Then enter the following command, where</p><ol style="list-style-type: lower-alpha;"><li><p>'''&quot;Wired connection 1&quot;''' means to set the static IP address of &gt; the Ethernet port. If you need to set the static IP address of &gt; other network ports, please modify it to the name &gt; corresponding to the corresponding network interface (you can &gt; get it through the '''nmcli con show''' command)</p></li><li><p>'''ipv4.addresses''' is followed by the static IP address to be &gt; set, which can be modified to the value you want to set</p></li><li><p>'''ipv4.gateway''' represents the address of the gateway</p><p>orangepi@orangepi:~$ '''nmcli con mod &quot;Wired connection 1&quot; \'''</p><p>'''ipv4.addresses &quot;192.168.1.110&quot; \'''</p><p>'''ipv4.gateway &quot;192.168.1.1&quot; \'''</p><p>'''ipv4.dns &quot;8.8.8.8&quot; \'''</p><p>'''ipv4.method &quot;manual&quot;'''</p></li></ol></li><li><p>Then restart the linux system</p><p>orangepi@orangepi:~$ '''sudo reboot'''</p></li><li><p>Then re-enter the linux system and use the '''ip addr show''' command to see that the IP address has been set to the desired value</p><p>orangepi@orangepi:~$ '''ip addr show'''</p><p>2: enP3p49s0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP group default qlen 1000</p><p>link/ether 00:e0:4c:68:00:26 brd ff:ff:ff:ff:ff:ff</p><p>inet '''192.168.1.110'''/32 scope global noprefixroute enP3p49s0</p><p>valid_lft forever preferred_lft forever</p><p>inet6 fe80::9005:95ac:b9c0:2beb/64 scope link noprefixroute</p><p>valid_lft forever preferred_lft forever</p></li></ol>DESCRIPTION
<span id="how-to-use-e-key-pcie-wifi6bluetooth-module"><: # This file was automatically generated by SWIG (http:/span>== How to use E-Key PCIe WIFI6+Bluetooth module ==/www.swig.org).
: # First you need to buy a PCIe WIFI6+Bluetooth moduleVersion 4.0.2
{| class="wikitable"|-| ''' S/N'''| '''Model'''| '''Physical picture'''| '''Supported OS'''|-| '''1'''| '''AX200''': #
'''(PCIE+USB''' '''port)''': # Do not make changes to this file unless you know what you are doing--modify
| [[File:# the SWIG interface file instead./images/%20media/image310.p%20ng]]| '''Debian'''
'''Ubuntu'''
'''OpenWRT'''CLASSES
'''OPi OS Arch''':builtins.object
|-| '''2'''| '''AX210''' '''(PCIE+USB''' '''port)''' | [[File:./images/media%20/image311.png]]{w idth=“1.06875in” height=“1.45in”}| '''Debian''':GPIO
'''Ubuntu'''::I2C
'''OpenWRT'''::Serial
'''OPi OS Arch'''::nes
|-
| '''3'''
| '''RTL8852BE'''
'''(PCIE+USB''' '''port:class GPIO(builtins.object)'''
| [[File:./images/%20media/image312.p%20ng]]| '''Debian'''GPIO(pinmode=0)
'''Ubuntu''':|
'''Android12'''
 
'''OPi OS Arch'''
 
'''OPi OS Droid'''
&gt;&gt;&gt;
|}
</ol>
</li></ol>
<span id="pin-gpio-port-test-1"></span>
<ol start="2" style="list-style-type: decimal;"><li><p>Then insert the module into the M.2 E-Key interface of the development board and fix it. The position is shown in the figure below:</p><p>[[File:./images/media/image313.png|296x133px]]</p></li><li><p>Then open the configuration of the WIFI module in the Linux system, the steps are as follows:</p><ol style="list-style-type: lower-alpha;"><li><p>First run '''orangepi-config''', normal users remember to add &gt; '''sudo''' permission</p><p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li><li><p>Then select '''System'''</p><p>[[File:./images/media/image314.png|374x173px]]</p></li><li><p>Then select '''Hardware'''</p><p>[[File:./images/media/image315.png|373x162px]]</p></li><li><p>Then use the arrow keys of the keyboard to navigate to the &gt; position shown in the figure below, and then use the space to &gt; select the '''wifi-pcie''' configuration</p><p>[[File:./images/media/image316.png|298x40px]]</p></li><li><p>Then select '''&lt;Save&gt;''' to save</p><p>[[File:./images/media/image317.png|297x80px]]</p></li><li><p>Then select '''&lt;Back&gt;'''</p><p>[[File:./images/media/image318.png|255x71px]]</p></li><li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the &gt; configuration take effect</p><p>[[File:./images/media/image319.png|256x113px]]</p></li></ol></li><li><p>If everything is normal after restarting the system, use the following command to see that there will be an additional WIFI device node. If you can't see it, please check if there is any problem with the previous configuration</p><p>[orangepi@orangepi ~]$ '''ip addr show'''</p></li><li><p>For the WIFI connection and 40 pin GPIO port test method, please refer to the '''WIFI connection test section''', and will not repeat them here.</p></li><li><p>For the test method of Bluetooth, please refer to the section on '''Bluetooth usage''', so I won’t go into details here.</p></li></ol>===
<span id{| class="ssh-remote-login-development-boardwikitable"></span>== SSH remote login development board == '''Linux systems enable ssh remote login by default and allow the root user to log in to the system. Before logging in with ssh, you first need to ensure that the Ethernet or wifi network is connected, and then use the ip addr command or check the router to obtain the IP address of the development board.''' <span idstyle="sshbackground-remote-login-development-board-under-ubuntucolor:#ffffdc;width:800px;"></span>=== SSH remote login development board under Ubuntu ===|-| # Obtain the IP address of the development board# Then you can remotely log in to the linux system through the ssh command test@test:~$ <big>'''ssh [mailto:root@192.168.1.36 root@192.168.1.]xxx''' (Need to be replaced with the IP address of the development board) root@192.168.1.xx's password: (Enter the password here, the default password wiringOP-Python is orangepi) '''Note that when entering the passwordsame as wiringOP,''' '''you can also determine which GPIO pin to operate by specifying the specific content of the entered password will not be displayed on the screenwPi number, please do not think that because there is any fault, just press Enter after inputting.''' '''If you are prompted no command to refuse check the connectionwPi number in wiringOP-Python, as long as so you are using can only check the image provided by Orange Pi,''' '''please do not suspect that the password orangepi is wrong, but look for other reasonsboard wPi number and physical Correspondence between pins.'''</big>
<ol start="3" style="list-style-type: decimal;">
<li><p>After successfully logging in to the system, the display is as shown in the figure below</p>
<div class="figure">
[[File:./images/media/image320plus5-img308.png|437x262px|953iring_001]]
</div>
|}<ol style="list-style-type: decimal;"><li><p>'''If ssh fails The following takes pin No. 7—the corresponding GPIO is GPIO1_D6—the corresponding wPi number is 2—as an example to log in demonstrate how to set the linux system normally, first check whether the IP address high and low levels of the development board can be pinged. If the ping is ok, you can log in to the linux system through the serial GPIO port or HDMI display and then enter the following command on the development board and try again. Is it possible to connect:'''</p></li></oldiv class="figure">
root@orangepi[[File:~# '''reset_sshplus5-img309.sh'''png]]
</div></li><li><p>The steps to test directly with the command are as follows:</p><ol style="list-style-type: lower-alpha;"><li><p>First set the GPIO port to output mode, where the first &gt; parameter of the '''If it still doesnpinMode'''t workfunction is the serial number of &gt; the wPi corresponding to the pin, try to reset and the second parameter is &gt; the systemGPIO mode</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP-Python# '''python3 -c &quot;import wiringpi; \'''</p><p>'''from wiringpi import GPIO; wiringpi.wiringPiSetup() ; \'''</p> <p>'''wiringpi.pinMode(<span idstyle="ssh-remote-login-development-board-under-windowscolor:#FF0000">2, GPIO.OUTPUT</span>) ; &quot;'''</p>|}</li><li><p>Then set the GPIO port to output a low level. After setting, you &gt; can use a multimeter to measure the voltage value of the pin. &gt; If it is 0v, it means that the low level is set successfully.</p>{| class="wikitable" style== SSH remote login development board under Windows ==="width:800px;" |-|<p>root@orangepi:~/wiringOP-Python# '''python3 -c &quot;import wiringpi; \'''</p><p>'''from wiringpi import GPIO; wiringpi.wiringPiSetup() ;\'''</p><ol p>'''wiringpi.digitalWrite(<span style="list-style-typecolor: decimal#FF0000">2, GPIO.LOW</span>)&quot;"'''</p>|}</li><li><p>First obtain Then set the GPIO port to output a high level. After setting, &gt; you can use a multimeter to measure the IP address voltage value of the development board&gt; pin. If it is 3.3v, it means that the high level is set &gt; successfully.</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP-Python# '''python3 -c &quot;import wiringpi; \'''</p><p>'''from wiringpi import GPIO; wiringpi.wiringPiSetup() ;\'''</p><p>'''wiringpi.digitalWrite(<span style="color:#FF0000">2, GPIO.HIGH</span>)&quot;'''</p>|}</li></ol></li><li><p>Under Windows, you can use MobaXterm The steps to remotely log test in to the development board, first create a new ssh sessioncommand line of python3 are as follows:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>Open '''Session'''First use the python3 command to enter the command line mode of &gt; python3</p></li><li>{| class="wikitable" style="width:800px;" |-|<p>Then select '''SSH'root@orangepi:~# '' in '''Session Settingpython3'''</p>|}</li><li><p>Then enter import the IP address python module of the development board in the &gt; '''Remote host'''wiringpi</p></li><li>{| class="wikitable" style="width:800px;" |-|<p>Then enter the user name '''root''' or '''orangepi''' of the linux &gt; system in &gt;&gt; '''Specify usernameimport wiringpi'''</p></li><li><p>Finally click &gt;&gt;&gt; '''OKfrom wiringpi import GPIO'''</p><div class="figure"> [[File:./images/media/image322.png|575x292px|13]] </div></li></ol>}
</li>
<li><p>Then you will be prompted set the GPIO port to output mode, where the first parameter &gt; of the '''pinMode''' function is the serial number of the wPi &gt; corresponding to enter a password. The default passwords for root the pin, and orangepi users are orangepithe second parameter is the GPIO &gt; mode</p>{| class="wikitable" style="width:800px;" |-|<p>&gt;&gt;&gt; '''Note that when entering the password,wiringpi.wiringPiSetup()''' </p><p>0</p><p>&gt;&gt;&gt; '''the specific content of the entered password will not be displayed on the screen, please do not think that there is any faultwiringpi.pinMode(<span style="color:#FF0000">2, just press Enter after inputtingGPIO.OUTPUT</span>)'''</p>|}</li><li><p>Then set the GPIO port to output low level. After setting, you &gt; can use a multimeter to measure the voltage value of the pin. &gt; If it is 0v, it means that the low level is set successfully.</olp>{| class="wikitable" style="width:800px;" |-|[[File<p>&gt;&gt;&gt; '''wiringpi.digitalWrite(<span style="color:#FF0000">2, GPIO.LOW</imagesspan>)'''</media/image323.pngp>|576x192px]]}</li><ol startli><p>Then set the GPIO port to output a high level. After setting, &gt; you can use a multimeter to measure the voltage value of the &gt; pin. If it is 3.3v, it means that the high level is set &gt; successfully.</p>{| class="4wikitable" style="listwidth:800px;" |-|<p>&gt;&gt;&gt; '''wiringpi.digitalWrite(<span style-type="color: decimal;#FF0000">2, GPIO.HIGH</span>)'''</p>|}</li>After successfully logging </ol></li><li><p>The method of wiringOP-Python setting GPIO high and low levels in python code can refer to the system, '''blink.py''' test program in the examples below. The '''blink.py''' test program will set the display is as shown voltage of all GPIO ports in the figure below40 pins of the development board to change continuously.</lip>{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP-Python# '''cd examples'''</olp[[File<p>root@orangepi:.~/imageswiringOP-Python/mediaexamples# '''ls blink.py'''</image324p><p>'''blink.png|575x353px]]py'''</p><span id="howp>root@orangepi:~/wiringOP-to-use-adb">Python/examples'''# python3 blink.py'''</spanp>== How to use ADB ==|}<span id="how-to-use-network-adb"/li></spanol>=== How to use network adb ===
<ol stylespan id="listpin-stylespi-type: decimal;"><li><p>After the system starts, please confirm that '''adbd''' has been started</p><p>orangepi@orangepi:~$ '''ps -ax | grep &quot;adbd&quot;'''</p><p>808 ? Sl 0:00 /usr/bin/adbd</p><p>3707 ttyFIQ0 S+ 0:00 grep --color=auto adbd</p></li><li><p>Then check the IP address of the development board and write it down</p></li><li><p>Then install the adb tool on the Ubuntu PC</p><p>test@test:~$ '''sudo apt-get update'''</p><p>test@test:~$ '''sudo apt-get install -y adb'''</p></li><li><p>Then use the following command to connect to the network adb</p></li1"></olspan>
test@test:~$ '''adb connect 192.168.1.xx:5555 #Please replace the IP address with the IP address of the development board''' * daemon not running; starting now at tcp:5037 * daemon started successfully connected to 192.168.1.xx:5555 test@test:~$ '''adb devices''' List of devices attached '''192.168.1.xx:5555 device''' <ol start="5" style="list-style-type: decimal;"><li>Then use the following command to log in to the linux system of the development board</li></ol> test@test:~$ '''adb shell''' '''root@orangepi5plus:/# &lt;---''' '''After seeing this prompt, it means that you have successfully logged in to the development board''' <ol start="6" style="list-style-type: decimal;"><li><p>The command to upload files to the development board using adb is as follows</p><p>test@test:~$ '''adb push filename /root'''</p><p>filename: 1 file pushed. 3.7 MB/s (1075091 bytes in 0.277s)</p></li><li><p>The command to restart the development board using adb is as follows</p><p>test@40 pin SPI test:~$ '''adb reboot'''</p></li></ol> '''If there is no adb tool in your Windows system, you can use the adb program in the RKDevTool software (this software is useful''' '''in the''' '''section on how to use RKDevTool to burn the Linux image to the TF card).''' [[File:./images/media/image325.png|576x131px]] '''An example using adb in Windows looks like this:''' [[File:./images/media/image326.png|576x335px]] <span id="adb3.9.2.-use-type-c-data-cable-to-connect-to-adb"></span>=== adb3.9.2. Use type-c data cable to connect to adb ===
<ol style="list-style-type: decimal;">
<li><p>First prepare a good quality Type-C data cableAs can be seen from the figure below, the SPIs available for Orange Pi 5 Plus are SPI0 and SPI4</p><p>[[File:./images/media/image22plus5-img304.png|125x126px]]</p></li><li><p>Then connect the development board The corresponding pins of SPI0 and Ubuntu PC through SPI4 in 40pin are shown in the Type-C data cabletable below. The position SPI4_M1 and SPI4_M2 can only use one of them at the Type-C interface of same time, and they cannot be used at the development board is shown in same time. They are all the figure below:same SPI4, but they are connected to different pins. Please don't think that they are two different sets of SPI buses.</p><div class="figure"/li>
[[File{| class="wikitable" style="width:800px;"|-|| '''SPI0_M2 corresponds to 40pin'''| '''SPI4_M1 corresponds to 40pin'''| '''SPI4_M2 corresponds to 40pin'''|-| '''MOSI'''| '''Pin 19'''| '''Pin 12'''| '''Pin 8'''|-| '''MISO'''| '''Pin 21'''| '''Pin 31'''| '''Pin 10'''|-| '''CLK'''| '''Pin 23'''| '''Pin 35'''| '''Pin 22'''|-| '''CS0'''| '''Pin 24'''| '''Pin 40'''| '''Pin 31'''|-| '''CS1'''| '''Pin 26'''| '''Pin 38'''| '''<span style="color:.#FF0000">none</images/media/image244.jpegspan>'''|-|323x91px'''dtbo configuration'''|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题'''spi0-m2-1.jpg未标题cs0-1]]spidev'''
</div></li><li><p>Then run the following command to set the Type-C interface to '''device''' mode</p><p>orangepi@orangepi:~$ '''sudo set_device.sh'''</p><p>If the '''set_device.sh''' script does not exist in the Linux system, please use the following command directly:</p><p>orangepi@orangepi:~$ '''sudo bash spi0-c &quot;echo device &gt; /sys/kernel/debug/usb/fc000000.usb/mode&quot;'''</p><p>orangepi@orangepi:~$ '''sudo systemctl restart usbdevice'''</p></li><li><p>'''Then please confirm that adbd has been started'''</p><p>orangepi@orangepi:~$ '''ps -ax | grep &quot;adbd&quot;'''</p><p>808 ? Sl 0:00 /usr/bin/adbd</p><p>3707 ttyFIQ0 S+ 0:00 grep --color=auto adbd</p></li><li><p>Then install the adb tool on the Ubuntu PC</p><p>test@test:~$ '''sudo apt-get update'''</p><p>test@test:~$ '''sudo aptm2-get install cs1-y adbspidev'''</p></li><li><p>Then use the following command to check whether the adb device is recognized</p></li></ol>
test@test:~$ '''adb devicesspi0-m2-cs0-cs1-spidev'''
List of devices attached| '''spi4-m1-cs0-spidev'''
'''e0f9f71bc343c305 devicespi4-m1-cs1-spidev'''
<ol start="8" style="list'''spi4-stylem1-type: decimal;"><li>Then use the following command to log in to the linux system of the development board</li></ol>cs0-cs1-spidev'''
test@test:~$ '''adb shell| ''' '''root@orangepi5plus:/# &lt;spi4-m2-cs0-spidev''' '''After seeing this prompt, it means that you have successfully logged in to the development board'''|}</ol><ol start="93" style="list-style-type: decimal;"><li><p>The command to upload files to In the linux system, the SPI in the development board using adb 40 pin is closed by default, and it needs to be opened manually before it can be used. The detailed steps are as follows:</p><ol style="list-style-type: lower-alpha;"><li><p>First run '''orangepi-config''', normal users remember to add &gt; '''sudo''' permission</p>{| class="wikitable" style="width:800px;" |-|<p>testorangepi@testorangepi:~$ '''adb push filename sudo orangepi-config'''</rootp>|}</li><li><p>Then select '''System'''</p><p>filename[[File: 1 file pushedplus5-img234. 3png]]</p></li><li><p>Then select '''Hardware'''</p><p>[[File:plus5-img235.7 MBpng]]</p></s (1075091 bytes li><li><p>Then use the arrow keys on the keyboard to navigate to the &gt; position shown in 0the figure below, and then use the space to &gt; select the SPI configuration you want to open</p><p>[[File:plus5-img312.png]]</p></li><li><p>Then select '''&lt;Save&gt;''' to save</p><p>[[File:plus5-img263.277s)png]]</p></li><li><p>Then select '''&lt;Back&gt;'''</olp><p>[[File:plus5-img264.png]]</p></li><li><p>Then select '''&lt;Reboot&gt;'''If to restart the system to make the &gt; configuration take effect</p><p>[[File:plus5-img239.png]]</p></li></ol></li><li><p>After restarting, enter the system and first check whether there is no adb tool a '''spidevx.x''' device node in your Windows the linux system. If it exists, it means that the SPI has been set up and can be used directly.</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>'''The above is the result displayed after turning on spi0-m2-cs0-cs1-spidev and spi4-m1-cs0-cs1-spidev.'''</p></big>|}</li><li><p>Then you can use the adb program in the RKDevTool software (this software is useful''' spidev_test.py'''program in the section on how examples to use RKDevTool to burn test the Linux image to loopback function of the TF card)SPI.The '''spidev_test.py''' program needs to specify the following two parameters:</p><ol style="list-style-type: lower-alpha;"><li><p>'''--channel''': Specify the channel number of SPI</p></li>[[File<li><p>'''--port''':.specify the port number of SPI</p></imagesli></mediaol></image325li><li><p>Do not short-circuit the MOSI and MISO pins of the SPI, the output of running '''spidev_test.pngpy''' is as follows, you can see that the data of TX and RX are inconsistent</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |576x131px]]-| <big><p>'''An example using adb in Windows looks like this:The x after the --channel and --port parameters needs to be replaced with the channel number of the specific SPI and the port number of the SPI.'''</p></big>|}
[[File{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:.~/imageswiringOP-Python# '''cd examples'''</media/image327.png|576x304px]]p>
<span id="theroot@orangepi:~/wiringOP-method-of-uploading-files-toPython/examples# '''python3 spidev_test.py -the-linuxchannel x -system-of-the-development-board"></span>== The method of uploading files to the Linux system of the development board ==port x'''
<span id="how-to-upload-files-to-the-development-board-linux-system-in-ubuntu-pc"></span>=== How to upload files to the development board Linux system in Ubuntu PC ===spi mode: 0x0
<span id="how-to-upload-files-using-the-scp-command"></span>==== How to upload files using the scp command ====max speed: 500000 Hz (500 KHz)
<ol style="list-style-type: decimal;"><li><p>Use the scp command to upload files from the Ubuntu PC to the Linux system on the development board. The specific commands are as follows<Opening device /p><ol style="list-style-type: lower-alpha;"><li><p>'''file_path''': need to be replaced with the path of the file to &gt; be uploaded<dev/p></li><li><p>'''orangepi''': It is the user name of the Linux system of the &gt; development board, and it can also be replaced with other &gt; ones, such as root</p></li><li><p>'''192spidev4.168.xx.xx''': It is the IP address of the development &gt; board, please modify it according to the actual situation</p></li><li><p>'''/home/orangepi''': The path in the Linux system of the &gt; development board, which can also be modified to other paths</p><p>test@test:~$ '''scp file_path orangepi@192.168.xx.xx:/home/orangepi/'''</p></li></ol></li><li><p>If you want to upload a folder, you need to add the -r parameter</p><p>test@test:~$ '''scp -r dir_path orangepi@192.168.xx.xx:/home/orangepi/'''</p></li><li><p>There are more usages of scp, please use the following command to view the man manual</p></li></ol>1
test@test:~$ TX | FF FF FF FF FF FF '''man scp<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 |......@.......…|
RX | FF FF FF FF FF FF '''<span idstyle="how-to-upload-files-using-filezillacolor:#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 |.............….||}</li></ol><ol start="7" style="list-style-type: decimal;"><li><p>Then use the Dupont wire to short-circuit the MOSI and MISO pins of the SPI, and then run the output of spidev_test.py as follows, you can see that the data sent and received are the same, indicating that the SPI loopback test is normal</p>{| class="wikitable" style= How "background-color:#ffffdc;width:800px;" |-| <big><p>'''The x after the --channel and --port parameters needs to upload files using filezilla ==be replaced with the channel number of the specific SPI and the port number of the SPI.'''</p></big>|}{| class="wikitable" style="width:800px;" |-|<p>root@orangepi:~/wiringOP-Python# '''cd examples'''</p>
<ol style="list-style-type: decimal;"><li><p>First install filezilla in Ubuntu PC</p><p>testroot@testorangepi:~$ '''sudo apt install /wiringOP-y filezilla'''<Python/p></li><li><p>Then use the following command to open filezilla</p><p>test@test:~$ examples# '''filezillapython3 spidev_test.py --channel x --port x'''</p></li><li><p>The interface after filezilla is opened is as follows, at this time, the display under the remote site on the right is empty</p><div class="figure">
[[Filespi mode:./images/media/image328.png|576x453px|截图 2022-12-03 19-04-40]]0x0
</div></li><li><p>The method of connecting the development board is shown in the figure below</p></li></ol>max speed: 500000 Hz (500 KHz)
<div class="figure">Opening device /dev/spidev4.1
[[FileTX | 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 |......@....../images/media/image330.png|575x128px|图片565]]
RX | FF FF FF FF FF FF '''</div><ol start="5" span style="list-style-typecolor: decimal;#FF0000">40 00 00 00 00 95<li/span><p>Then choose to '''save the password''', and then click '''OK'''</p><p>[[File:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D |......@....../images/media/image331.png|249x181px]]|}</pli></liol><li><p>Then choose to '''always trust this host''', and then click '''OK'''</pspan id="pin-i2c-test-1"></li></olspan>
<div class="figure"> [[File:./images/media/image332.png|278x150px|IMG_256]] </div><ol start="7" style="list-style-type: decimal;"><li>After the connection is successful, you can see the directory structure of the development board linux file system on the right side of the filezilla software</li></ol> <div class="figure"> [[File:./images/media/image333.png|533x330px|IMG_256]] </div><ol start="8" style="list-style-type: decimal;"><li>Then select the path to be uploaded to the development board on the right side of the filezilla software, and then select the file to be uploaded on the Ubuntu PC on the left side of the filezilla software, then click the right mouse button, and then click the upload option to start uploading the file to the development board bingo.</li></ol> <div class="figure"> [[File:./images/media/image334.png|529x414px|IMG_256]] </div><ol start="9" style="list-style-type: decimal;"><li><p>After the upload is complete, you can go to the corresponding path in the Linux system of the development board to view the uploaded file</p></li><li><p>The method of uploading a folder is the same as that of uploading a file, so I won’t go into details here</p></li></ol> <span id="the-method-of-uploading-files-to-the-development-board-linux-system-in-windows-pc"></span>=== The method of uploading files to the development board Linux system in Windows PC === <span id="how-to-upload-files-using-filezilla-1"></span>==== How to upload files using filezilla =40 pin I2C test ===
<ol style="list-style-type: decimal;">
<li><p>First download As can be seen from the installation file of the Windows version of the filezilla softwaretable below, the download link available i2c for Orange Pi 5 Plus is as followsi2c2, i2c4, i2c5 and i2c8, a total of four sets of i2c buses.</p><p>[https[File:plus5-img304.png]]</p></filezilla-projectli><li><p>The corresponding pins of the 4 groups of I2C buses in 40pin are shown in the table below.org/downloadI2C2_M0 and I2C2_M4 can only use one of them at the same time, and they cannot be used at the same time.php?type=server '''https://filezilla-projectThey are all the same I2C2, but they are connected to different pins.org/downloadPlease don’t think that they are two different sets of I2C2 buses.php?type=client''']</p></li></ol>
<div {| class="figurewikitable" style="width:800px;"|-| style="text-align: left;"| '''I2C bus'''| style="text-align: left;"| '''SDA corresponds to 40pin'''| style="text-align: left;">| '''SCL corresponds to 40pin'''| style="text-align: left;"| '''dtbo corresponding configuration'''|-[[File| style="text-align:./images/media/image335.pngleft;"| '''I2C2_M0'''| style="text-align: left;"| '''Pin 3'''| style="text-align: left;"| '''Pin 5'''|472x171pxstyle="text-align: left;"|IMG_256]]'''i2c2-m0'''|-</div>| style="text-align: left;"| '''I2C2_M4'''[[File| style="text-align:./images/media/image336.pngleft;"|384x276px]]'''Pin 10'''| style="text-align: left;"| '''Pin 8'''<ol start| style="2text-align: left;" | '''i2c2-m4'''|-| style="listtext-align: left;"| '''I2C4_M3'''| style="text-typealign: decimalleft;">| '''Pin 22'''<li><p>The downloaded installation package is as follows, and then double| style="text-click to install directly</p>align: left;"| '''Pin 32'''<p>| style="text-align: left;"| '''FileZilla_Server_1.5.1_win64i2c4-setup.exem3'''</p></li></ol>|-During the installation process, please select | style="text-align: left;"| '''DeclineI2C5_M3''' on the following installation interface, and then select | style="text-align: left;"| '''Next&gtPin 27'''| style="text-align: left;"| '''Pin 28'''| style="text-align: left;"| '''i2c5-m3'''|-<div class| style="figuretext-align: left;">| '''I2C8_M2'''| style="text-align: left;"| '''Pin 29'''[[File| style="text-align:./images/media/image337.pngleft;"| '''Pin 7'''|355x279pxstyle="text-align: left;"|IMG_256]]'''i2c8-m2'''|}</divol>
<ol start="3" style="list-style-type: decimal;">
<li>The interface after filezilla <p>In the linux system, the I2C bus in the 40 pin is closed by default, and it needs to be opened is manually before it can be used. The detailed steps are as follows, at this time, the display under the remote site on the right is empty:</p><ol style="list-style-type: lower-alpha;"><li><p>First run '''orangepi-config''', normal users remember to add &gt; '''sudo''' permission</olp<div {| class="figurewikitable" style="width:800px;"|-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li><li><p>Then select '''System'''</p><p>[[File:plus5-img234.png]]</imagesp></mediali><li><p>Then select '''Hardware'''</image338p><p>[[File:plus5-img235.png|451x357px|IMG_256]] </divp><ol start="4" style="list-style-type: decimal;"/li><li>The method of connecting <p>Then use the arrow keys on the keyboard to navigate to the development board is &gt; position shown in the figure below, and then use the space to &gt; select the I2C configuration you want to open</p><p>[[File:plus5-img313.png]]</p></li><li><p>Then select '''&lt;Save&gt;''' to save</olp><p>[[File:plus5-img263.png]]</p></li><div class="figure"li><p>Then select '''&lt;Back&gt;'''</p<p>[[File:plus5-img264.png]]</imagesp></mediali><li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the &gt; configuration take effect</image330p><p>[[File:plus5-img239.png|575x128px|图片565]]</p></li></ol></li><li><p>After starting the linux system, first confirm that there is a device node corresponding to i2c under '''/dev'''</divp><ol start{| class="5wikitable" style="list-style-typewidth: decimal800px;"|-|<p>orangepi@orangepi:~$ '''ls /dev/i2c-*'''</p>|}</li><li><p>Then choose connect an i2c device to the i2c pin of the 40 pin connector, here we take the ds1307 RTC module as an example</p><p>[[File:plus5-img335.png]]</p></li><li><p>Then use the '''save the passwordi2cdetect -y'''command, if the address of the connected i2c device can be detected, and then click it means that i2c can be recognized normally.</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''OKsudo i2cdetect -y 2'''#i2c2 command</lip><p>orangepi@orangepi:~$ '''sudo i2cdetect -y 4''' #i2c4 command</olp><p>orangepi@orangepi:~$ '''sudo i2cdetect -y 5''' #i2c5 command</p><div class="figure"p>orangepi@orangepi:~$ '''sudo i2cdetect -y 8''' #i2c8 command</p>|}[[File:</li><li><p>Then you can run the '''ds1307.py''' test program in the '''wiringOP-Python/imagesexamples''' file to read the time of RTC</media/image340.pngp>{|207x146pxclass="wikitable" style="background-color:#ffffdc;width:800px;" |IMG_256]]-| <big><p>'''/dev/i2c-x needs to be replaced with the serial number of the specific i2c device node.'''</divp></big><ol start|}{| class="6wikitable" style="list-style-typewidth: decimal800px;">|-|<lip>Then choose to root@orangepi:~/wiringOP-Python# '''always trust this hostcd examples''', and then click </p><p>root@orangepi:~/wiringOP-Python/examples# '''OKpython3 ds1307.py --device &quot;/dev/i2c-x&quot;'''</lip><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</olp>|}<div class="figure"/li></ol>
[[File:.<span id="pin-uart-test-1"></images/media/image341.png|221x109px|IMG_256]]span>
</div><ol start="7" style="list-style-type: decimal;"><li>After the connection is successful, you can see the directory structure of the development board linux file system on the right side of the filezilla software</li></ol> <div class="figure"> [[File:./images/media/image342.png|449x332px|IMG_256]] </div><ol start="8" style="list-style-type: decimal;"><li>Then select the path to be uploaded to the development board on the right side of the filezilla software, and then select the file to be uploaded on the Windows PC on the left side of the filezilla software, then click the right mouse button, and then click the upload option to start uploading the file to the development board bingo</li></ol> <div class="figure"> [[File:./images/media/image343.png|461x340px|IMG_256]] </div><ol start="9" style="list-style-type: decimal;"><li><p>After the upload is complete, you can go to the corresponding path in the Linux system of the development board to view the uploaded file</p></li><li><p>The method of uploading folders is the same as that of uploading files, so I won’t go into details here.</p></li></ol> <span id="hdmi-test"></span>== HDMI test == <span id="hdmi-test-1"></span>=== HDMI 40 pin UART test ===
<ol style="list-style-type: decimal;">
<li><p>There are two HDMI output interfaces on As can be seen from the development boardtable below, and their locations the uarts available for Orange Pi 5 Plus are shown in the figure below:</p><p>[[File:./images/media/image344.png|333x92px]]</p></li><li><p>By defaultuart1, uart3, uart4, the Linux system configures HDMI_TX1 to support 8K displayuart6, uart7 and HDMI_TX2 supports only 4K display by default (only one HDMI_TX interface can support 8K display at uart8, a time). If you want to set HDMI_TX2 to support 8K display, please follow the steps below:</p><ol style="list-style-type: lower-alpha;"><li><p>First run '''orangepi-config''', normal users remember to add &gt; '''sudo''' permission</p><p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li><li><p>Then select '''System'''total of 6 sets of uart buses</p><p>[[File:./images/media/image314plus5-img304.png|362x167px]]</p></li><li><p>Then select '''Hardware'''</p><p>[[File:./images/media/image315.png|362x157px]]</p></li><li><p>Then use The corresponding pins of the arrow keys 6 groups of the keyboard to navigate to the &gt; position UART buses in 40pin are shown in the figure below, and then use the '''space''' &gt; to select '''hdmi2-8k''' configuration</p><p>[[Filefollowing table:./images/media/image345.png|361x66px]]</p></li><li><p>Then select '''&lt;Save&gt;''' to save</p><p>[[File:./images/media/image346.png|363x105px]]</p></li><li><p>Then select '''&lt;Back&gt;'''</p><p>[[File:./images/media/image347.png|362x110px]]</p></li><li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the &gt; configuration take effect</p><p>[[File:./images/media/image319.png|276x121px]]</p></li></ol></li><li><p>Then use HDMI to HDMI cable to connect Orange Pi development board and HDMI display</p><p>[[File:./images/media/image12.png|199x129px]]</p><p>'''Note, if you want to connect a 4K or 8K display, please make sure that the HDMI cable supports 4K or 8K video display.'''</p></li><li><p>After starting the linux system, if the HDMI display has image output, it means that the HDMI interface is in normal use</p></li></ol>
{| class="wikitable" style="width:800px;"|-| style="text-align: left;"| '''UART bus'''| '''RX` corresponds to 40pin'''Note that although many laptops have an HDMI interface, the HDMI interface of the notebook generally only has the output function, and does not have the function of HDMI in, that is | style="text-align: left;"| '''TX corresponds to say, the HDMI output of the development board cannot be displayed on the screen of the notebook.40pin'''| style="text-align: left;"| '''dtbo corresponding configuration'''|-| style="text-align: left;"| '''When you want to connect the HDMI of the development board to the HDMI port of the laptop, please make sure that your laptop supports the HDMI in function.UART1_M1'''| '''Pin 27'''| style="text-align: left;"| '''Pin 28'''| style="text-align: left;"| 'When the HDMI is not displayed, please check whether the HDMI cable is plugged in tightly. After confirming that there is no problem with the connection, you can change a different screen and try to see if it is displayed.''uart1-m1'''|-<span id| style="hdmitext-inalign: left;"| '''UART3_M1'''| '''Pin 18'''| style="text-testalign: left;"| '''Pin 16'''| style="text-methodalign: left;"></span>| '''uart3-m1'''|-| style="text-align: left;"| '''UART4_M2'''| '''Pin 19'''| style="text-align: left;"| '''Pin 23'''| style= HDMI IN test method "text-align: left;"| '''uart4-m2'''|-| style="text-align: left;"| '''UART6_M1'''| '''Pin 10'''| style="text-align: left;"| '''Pin 8'''| style="text-align: left;"| '''uart6-m1'''|-<ol | style="listtext-align: left;"| '''UART7_M2'''| '''Pin 24'''| style="text-typealign: decimalleft;">| '''Pin 26'''<li><p>The location of the HDMI In interface on the development board is as follows| style="text-align:</p>left;"| '''uart7-m2'''|-<p>[[File| style="text-align:./images/media/image348.pngleft;"| '''UART8_M1'''|351x112px]]</p></li>'''Pin 40'''<li><p>First use the HDMI to HDMI cable shown in the figure below to connect the HDMI output of other devices to the HDMI In interface of the development board</p>| style="text-align: left;"| '''Pin 35'''<p>[[File| style="text-align:./images/media/image12.pngleft;"| '''uart8-m1'''|199x129px]]}</pol></liol start="3" style="list-style-type: decimal;"><li><p>The HDMI In function of the Linux linux system , the UART in the 40 pins is disabled closed by default, and the opening method is it needs to be opened manually before it can be used. The detailed steps are as follows:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First run '''orangepi-configconfi'''g, normal users remember to add &gt; '''sudo''' permission</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314plus5-img234.png|362x167px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315plus5-img235.png|362x157px]]</p></li><li><p>Then use the arrow keys of on the keyboard to navigate to the &gt; position shown in the figure below, and then use the '''space''' &gt; to select the '''hdmirx''' UART configurationyou want to open</p><p>[[File:./images/media/image349plus5-img315.png|359x82px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image346plus5-img263.png|363x105px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image347plus5-img264.png|362x110px]]</p></li><li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the &gt; configuration take effect</p><p>[[File:./images/media/image319plus5-img239.png|276x121px]]</p></li></ol></li><li><p>After entering the linux system, first confirm whether there is a device node corresponding to uart under /dev</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ls /dev/ttyS*'''</p>|}
</li>
<li><p>Restart Then start to test the uart interface, first use the system DuPont line to short the rx and open a terminal on tx pins of the desktop, then run the '''test_hdmiin.sh''' script</p><p>[orangepi@orangepi ~]$ '''test_hdmiin.sh'''uart interface to be tested</p></li><li><p>Then you can see use the input screen of HDMI In (the HDMI In '''serialTest.py''' program in the figure below shows the HDMI output screen of the opi5 development board, and a video is being played at this time). The '''test_hdmiin.shwiringOP-Python/examples''' script will play to test the loopback function of the serial port. As shown below, if you can see the audio input from HDMI In to HDMI_TX1print below, HDMI_TX2 and ES8388 (representing speakers or headphones) of it means the development board by defaultserial port communication is normal.</p><div {| class="figurewikitable" style="background-color:#ffffdc;width:800px;">|-[[File:./images/media/image350.png|576x324px|1]] <big><p>'''/div>dev/ttySX needs to be replaced with the serial number of the specific uart device node.'''</lip></olbig>|}
<span id{| class="wikitable" style="hdmiwidth:800px;" |-|<p>root@orangepi:~/wiringOP-Python/examples# '''python3 serialTest.py -to-vgadevice &quot;/dev/ttySX&quot;'''</p><p>Out: 0: -display&gt; 0</p><p>Out: 1: -test"&gt; 1</p><p>Out: 2: -&gt; 2</p><p>Out: 3: -&gt; 3</p><p>Out: 4:^C</p><p>exit</spanp>=== HDMI to VGA display test ===|}</li></ol>
<ol stylespan id="listhardware-stylewatchdog-type: decimal;"><li><p>First, you need to prepare the following accessories</p><ol style="list-style-type: lower-alpha;test"><li><p>HDMI to VGA Converter</p><p>[[File:./images/media/image351.png|155x104px]]</p></li><li><p>A VGA cable</p><p>[[File:./images/media/image352.png|148x133px]]</p></li><li><p>A monitor or TV that supports VGA interface</p></li></ol></li><li><p>The HDMI to VGA display test is as follows:</p><p>[[File:./images/media/image353.png|575x341px]]</p><p>'''When using HDMI to VGA display, the development board and the Linux system of the development board do not need to make any settings, only the HDMI interface of the development board can display normally. So if there is a problem with the test, please check whether there is a problem with the HDMI to VGA converter, VGA cable and monitor.'''</p></li></olspan>
<span id="hdmi-resolution-setting-method"></span>=== HDMI resolution setting method =Hardware watchdog test ==
<ol style="listThe watchdog_test program is pre-style-type: decimal;"><li><p>First open '''Display''' installed in '''Settings'''</p><p>[[File:./images/media/image354.png|576x370px]]</p></li><li><p>Then you can see the current resolution of the linux system</p><p>[[File:./images/media/image355.png|288x191px]]</p></li><li><p>Click the drop-down box of Resolution to see all resolutions currently supported released by the monitor</p><p>[[File:./images/media/image356.png|353x233px]]</p></li><li><p>Then select the resolution you want to setOrange Pi, and click Apply</p><p>[[File:./images/media/image357.png|351x234px]]</p></li><li><p>After the new resolution is set, select '''Keep the configuration'''</p><p>[[File:./images/media/image358which can be tested directly.png|462x251px]]</p></li></ol>
<span id="how-The method to-use-bluetooth"></span>== How to use Bluetooth ==run the watchdog_test program is as follows:
'''Please note that there <ol style="list-style-type: lower-alpha;"><li><p>The second parameter 10 indicates the counting time of the watchdog. If the dog is no Bluetooth module not fed within this time, the system will restart</p></li><li><p>We can feed the dog by pressing any key on the Orange Pi 5 Plus development boardkeyboard (except ESC). After feeding the dog, and an external PCIe network card with Bluetooth or the program will print a USB network card with Bluetooth is required line of keep alive to use indicate that the Bluetooth function.dog is fed successfully</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo watchdog_test 10'''</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><p>keep alive</p><p>keep alive</p>|}</li></ol>
'''For instructions on using <span id="check-the external PCIe network card, please refer to the section on''' '''how to use the PCIe WIFI6+Bluetooth module.'''-serial-number-of-rk3588-chip"></span>
'''For instructions on using == Check the external USB network card, please refer to the''' '''USB wireless network card test section.'''serial number of RK3588 chip ==
<span id="test-method-The command to view the serial number of-desktop-image-1"></span>=== Test method the RK3588 chip is as follows. The serial number of desktop image ===each chip is different, so the serial number can be used to distinguish multiple development boards.
<ol {| class="wikitable" style="list-style-typewidth: decimal800px;"><li><p>Click on the Bluetooth icon in the upper right corner of the desktop</p><p>[[File:./images/media/image359.png|386x149px]]</p></li>-<li><p>Then select the adapter</p><p>[[File:./images/media/image360.png|375x165px]]</p></li><li><p>If there is a prompt on the following interface, please select '''Yes'''</p><p>[[Fileorangepi@orangepi:./images/media/image361.png|248x85px]]</p></li><li><p>Then set the ~$ '''Visibility Setting''' to '''Always visible''' in the Bluetooth adapter setting interface, and then close it</p><p>[[File:cat_serial./images/media/image362.png|243x229px]]</p></li><li><p>Then open the configuration interface of the Bluetooth device</p><p>[[File:./images/media/image363.png|438x179px]]</p></li><li><p>Click sh'''Search''' to start scanning the surrounding Bluetooth devices</p><p>[[File:./images/media/image364.png|322x217px]]</p></li></ol>
<!-- --><ol start="6" style="list-style-type: decimal;"><li><p>Then select the Bluetooth device you want to connect to, and then click the right mouse button to pop up the operation interface for this Bluetooth device, select '''Pair''' to start pairing, and the demonstration here is to pair with an Android phone</p><p>[[FileSerial :./images/media/image365.png|338x263px]]</p></li><li><p>When pairing, a pairing confirmation box will pop up in the upper right corner of the desktop, just select '''Confirm1404a7682e86830c''' to confirm, and the phone also needs to confirm at this time</p><p>[[File:./images/media/image366.png|417x152px]]</p></li><li><p>After pairing with the mobile phone, you can select the paired Bluetooth device, then right-click and select '''Send a File''' to start sending a picture to the mobile phone</p><p>[[File:./images/media/image367.png|439x259px]]</p></li><li><p>The interface for sending pictures is as follows</p><p>[[File:./images/media/image368.png|437x253px]]</p></li></ol>}
<span id="usbhow-interfaceto-testinstall-docker"></span>== USB interface test ==
'''The USB interface can be connected == How to a USB hub to expand the number of USB interfaces.'''install Docker ==
<span idol style="connectlist-usbstyle-mouse-or-keyboardtype: decimal;"><li><p>The linux image provided by Orange Pi has pre-installed Docker, but the Docker service is not enabled by default</p></li><li><p>Use the '''enable_docker.sh''' script toenable the docker service, and then you can start using the docker command, and the docker service will be automatically started when the system is started next time</p>{| class="wikitable" style="width:800px;" |-test"|<p>orangepi@orangepi:~$ '''enable_docker.sh'''</p>|}</spanli>=== Connect USB mouse or keyboard <li><p>Then you can use the following command to test docker, if you can run hello-world, it means that docker can be used normally</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>
# Insert the keyboard with USB interface into the USB interface of Orange Pi development board
# Connect the Orange Pi development board to the HDMI display
# If the mouse or keyboard can operate normally, it means that the USB interface is working normally (the mouse can only be used in the desktop version of the system)
<span idp style="connect-usb-storage-device-testcolor:#FF0000">'''Hello from Docker!'''</spanp><p style=== Connect USB storage device test ==="color:#FF0000">'''This message shows that your installation appears to be working correctly.'''</p><p>'''.….'''</p>|}</li></ol>
# First insert the U disk or USB mobile hard disk into the USB interface of the Orange Pi development board# Execute the following command, if you can see the output of sdX, it means that the U disk is recognized successfully<span id="how-to-download-and-install-arm64-version-balenaetcher"></span>
orangepi@orangepi:~$ '''cat /proc/partitions | grep &quot;sd*&quot;'''== How to download and install arm64 version balenaEtcher ==
major minor #blocks name 8 0 30044160 '''sda''' 8 1 30043119 '''sda1''' <ol startstyle="3list-style-type: decimal;" ><li><p>The download address of balenaEtcher arm64 version is:</p><ol style="list-style-type: decimallower-alpha;"><li>Use <p>The download address of the mount command to mount the U disk a.deb installation package is as follows, it needs to be installed before it can be used</p>{| class="wikitable" style="width:800px;" |-|'''https://github.com/Itai-Nelken/BalenaEtcher-arm/releases/download/v1.7.9/mntbalena-etcher-electron_1.7.9+5945ab1f_arm64.deb''', and then you can view the files in the U disk|}</li><li><p>The download address of the AppImage version that does not need to be installed is as follows: b. The download address of the AppImage version that does not need to be installed is as follows:</olp>{| class="wikitable" style="width:800px;" |-|orangepi@orangepi:~$ '''sudo mount https:/dev/sda1 github.com/mntItai-Nelken/BalenaEtcher-arm/releases/download/v1.7.9/balenaEtcher-1.7.9+5945ab1f-arm64.AppImage'''|}</li>
orangepi@orangepi:~$ '''ls /mnt/'''<div class="figure">
test[[File:plus5-img336.txtpng|1200px]]
</div></ol></li></ol><ol start="42" style="list-style-type: decimal;"><li>After mounting, you can view the capacity usage <p>How to install and mount point use deb version balenaEtcher:</p><ol style="list-style-type: lower-alpha;"><li><p>The deb version of the U disk through the balenaEtcher installation command is as follows:</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo apt install -y \'''</p><p>'''df -h-fix-broken ./balena-etcher-electron_1.7.9+5945ab1f_arm64.deb''' command</p>|}</li><li><p>After the deb version of balenaEtcher is installed, it can be opened in the Application</olp><div class="figure">
orangepi@orangepi[[File:~$ '''df plus5-h img95.png| grep &quot;sd&quot;'''1200px]]
</devdiv></sda1 29G 208K 29G 1% li><li><p>The interface after balenaEtcher is opened is as follows:</mntp></li>
<span iddiv class="usb-wireless-network-card-testfigure"></span>=== USB wireless network card test ===
The usable USB wireless network cards that '''have been tested''' so far are as follows. For other types of USB wireless network cards, please test them yourself. If they cannot be used, you need to transplant the corresponding USB wireless network card driver[[File:plus5-img337.png]]
</div></ol></li></ol><ol start="3" style="list-style-type: decimal;"><li><p>How to use the AppImage version of balenaEtcher:</p><ol style="list-style-type: lower-alpha;"><li><p>First add permissions to balenaEtcher</p>{| class="wikitable" style="width:800px;"
|-
| S<p>orangepi@orangepi:~/Desktop$ '''chmod +x balenaEtcher-1.7.9+5945ab1f-arm64.AppImage'''</Np>| model}</li>| Physical picture<li><p>Then select the AppImage version balenaEtcher, click the right mouse button, and then click Execute to open balenaEtcher</p>|<p>[[File:plus5-img338.png]]</p></li></ol>| 1| RTL8723BU</li></ol>
Support 2.4G WIFI+BT4.0<span id="the-installation-method-of-the-pagoda-linux-panel"></span>
| [[File:./images/me%20dia/image369.png]]{width =“0.7868055555555555in” height= “0.8291666666666667in”}|-| 2| RTL8811 Support 2.4G +5G WIFIThe installation method of the pagoda linux panel ==
{| [[Fileclass="wikitable" style="background-color:./images/me%20dia/image370.png]]{#ffffdc;width =“0.8555555555555555in” height= “0.8145833333333333in”}:800px;"
|-
| 3| RTL8821CU Support 2.4G +5G WIFI Support BitTorrent 4.2 | [[File:<big>'''Pagoda Linux panel is a server management software that improves operation and maintenance efficiency.It supports more than 100 server management functions such as one -click LAMP/LNMP/cluster/monitoring/website/FTP/imagesdatabase/med%20iaJava (extracted from the official website of the pagoda)'''</image371.jpeg|tb_image_share_1670 833201123]]{width =“0.8777777777777778in” height= “0.8777777777777778in”}big>
|}
 
<span id="rtl8723bu-test"></span>
==== RTL8723BU test ====
<ol style="list-style-type: decimal;">
<li><p>First insert the RTL8723BU wireless network card module into the USB interface The order of compatibility recommendation of the development boardpagoda Linux system is</p></li><li><p>Then the linux system will automatically load the RTL8723BU bluetooth and WIFI{| class="wikitable" style="width:800px;" |-related kernel modules, through the lsmod command, you can see that the following kernel modules have been automatically loaded</p>|<p>orangepi@orangepi:~$ '''lsmodDebian11 > Ubuntu 22.04 > Debian12'''</p><p>Module Size Used by</p>|}<p>rfcomm 57344 16</p><p>rtl8xxxu 106496 0</p><p>rtk_btusb 61440 0</p></li><li><p>Through Then enter the dmesg following command, you can see in the Linux system to start the loading information installation of the RTL8723BU modulepagoda</p><p>orangepi@orangepi:~$ '''dmesg'''</p><p>......</p><p>[ 83.438901] usb 2-1: new high-speed USB device number 2 using ehci-platform</p><p>[ 83.588375] usb 2-1: New USB device found, idVendor{| class=0bda, idProduct"wikitable" style=b720, bcdDevice= 2.00</p><p>[ 83.588403] usb 2-1"width: New USB device strings: Mfr=1, Product=2, SerialNumber=3</p>800px;" <p>[ 83.588422] usb 2|-1: Product: 802.11n WLAN Adapter</p><p>[ 83.588443] usb 2-1: Manufacturer: Realtek</p><p>[ 83.588460] usb 2-1: SerialNumber: 00e04c000001</p><p>[ 83.601974] Bluetooth: hci0: RTL: examining hci_ver=06 hci_rev=000b lmp_ver=06 lmp_subver=8723</p><p>[ 83.603894] Bluetooth: hci0: RTL: rom_version status=0 version=1</p><p>[ 83.603920] Bluetooth: hci0: RTL: loading rtl_bt/rtl8723b_fw.bin</p><p>[ 83.610108] Bluetooth: hci0: RTL: loading rtl_bt/rtl8723b_config.bin</p><p>[ 83.611274] Bluetooth: hci0: RTL: cfg_sz 68, total sz 22564</p><p>[ 83.658494] rtk_btusb: Realtek Bluetooth USB driver ver 3.1.6d45ddf.20220519-142432</p><p>[ 83.658651] usbcore: registered new interface driver rtk_btusb</p><p>[ 83.667124] usb 2-1: This Realtek USB WiFi dongle (0x0bda:0xb720) is untested!</p><p>[ 83.667137] usb 2-1: Please report results to Jes.Sorensen@gmail.com</p><p>[ 83.890140] usb 2-1: Vendor: Realtek</p><p>[ 83.890153] usb 2-1: Product: 802.11n WLAN Adapter</p><p>[ 83.890159] usb 2-1: rtl8723bu_parse_efuse: dumping efuse (0x200 bytes):</p><p>......</p><p>[ 83.890412] usb 2-1: RTL8723BU rev E (SMIC) 1T1R, TX queues 3, WiFi=1, BT=1, GPS=0, HI PA=0</p><p>[ 83.890417] usb 2-1: RTL8723BU MAC: 00:13:ef:f4:58:ae</p><p>[ 83.890421] usb 2-1: rtl8xxxu: Loading firmware rtlwifi/rtl8723bu_nic.bin</p><p>[ 83.895289] usb 2-1: Firmware revision 35.0 (signature 0x5301)</p><p>[ 84.050893] Bluetooth: hci0: RTL: fw version 0x0e2f9f73</p><p>[ 84.266905] Bluetooth: RFCOMM TTY layer initialized</p><p>[ 84.266949] Bluetooth: RFCOMM socket layer initialized</p><p>[ 84.266999] Bluetooth: RFCOMM ver 1.11</p><p>[ 84.884270] usbcore: registered new interface driver rtl8xxxu</p><p>[ 84.912046] rtl8xxxu 2-1:1.2 wlx0013eff458ae: renamed from wlan0</p></li><li><p>Then through the '''sudo ifconfig''' command, you can see the device node of RTL8723BU WIFI. For the connection and test method of WIFI, please refer to the section of '''WIFI connection test''', which will not be repeated here</p>|<p>orangepi@orangepi:~$ '''sudo ifconfig wlx0013eff458aeinstall_bt_panel.sh'''</p><p>wlx0013eff458ae: flags=4099&lt;UP,BROADCAST,MULTICAST&gt; mtu 1500</p><p>ether 00:13:ef:f4:58:ae txqueuelen 1000 (Ethernet)</p>|}<p>RX packets 0 bytes 0 (0.0 B)</p><p>RX errors 0 dropped 0 overruns 0 frame 0</p><p>TX packets 0 bytes 0 (0.0 B)</p><p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</p></li><li><p>Then you can see the USB Bluetooth device through pagoda installation program reminds whether to install the '''hciconfig''' command</pspan class="mark">BT-Panel<p/span>orangepi@orangepi:~$ '''sudo apt update &amp;&amp; sudo apt install bluezto the '''<span class="mark">/p><p>orangepi@orangepi:~$ '''hciconfig'''www</p><pspan>hci0: Type: Primary Bus: '''USB'''folder, and enter Y at this time</p><p>BD Address{| class="wikitable" style="width: 00:13:EF:F4:58:AE ACL MTU: 820:8 SCO MTU: 255:16</p>800px;" <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>You can also see the bluetooth icon on the desktop. At this time, the bluetooth is not turned on, so a red '''x''' will be displayed+----------------------------------------------------------------------</p><p>[[File:./images| Bt-WebPanel FOR CentOS/mediaUbuntu/image372.png|576x157px]]Debian</p></li><li><p>Click '''Turn Bluetooth On''' to turn on Bluetooth+----------------------------------------------------------------------</p><p>[[File| Copyright © 2015-2099 BT-SOFT(http:./images/media/image373www.bt.cn) All rights reserved.png|576x262px]]</p></li><li><p>The display after turning on Bluetooth is as follows+----------------------------------------------------------------------</p><p>[[File| The WebPanel URL will be http:./images/media/image374SERVER_IP:8888 when installed.png|576x164px]]</p></li><li><p>For the test method of Bluetooth, please refer to the section on '''Bluetooth usage''', so I won’t go into details here+----------------------------------------------------------------------</p></li></ol> 
<span id="rtl8811p>Do you want to install Bt-test">Panel to the /www directory now?(y/n): '''</span>==== RTL8811 test ==== <ol style="list-style-typecolor: decimal;#FF0000"><li><p>First insert the RTL8811 wireless network card module into the USB interface of the development boardy</p></li><li><p>Then the linux system will automatically load the kernel module related to RTL8811 WIFI, through the lsmod command, you can see that the following kernel module has been automatically loaded</pspan><p>orangepi@orangepi:~$ '''lsmod'''</p><p>Module Size Used by</p>|}<p>8821cu 1839104 0</p></li><li><p>Through the dmesg command, Then what to do is to wait patiently. When you can see the loading printing information of below the RTL8811 module</p><p>orangepi@orangepi:~$ '''dmesg'''</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 foundterminal output, idVendor=0bda, idProduct=c811, bcdDevice= 2it means that the pagoda has been installed.00</p><p>[ 118The entire installation process takes about 9 minutes.767181] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3There may be some differences according to the difference in network speed</p><p>[ 118.767199] usb 2-1: Product: 802.11ac NIC</p><p>[ 118.767219] usb 2-1File: Manufacturer: Realtek</p><p>[ 118.767235] usb 2plus5-1: SerialNumber: 123456</p><p>[ 119img339.500530png] usbcore: registered new interface driver rtl8821cu</p><p>[ 119.525498] rtl8821cu 2-1:1.0 wlx1cbfced9d260: renamed from wlan0</p></li><li><p>ThenAt this time, you can see the WIFI device node through enter the '''sudo ifconfigpanel address''' command. For displayed above in the browser to open the login interface of the pagoda Linux panel, and then enter the '''WIFI connection and test methodusername''', please refer to the section of WIFI connection test, which will not be repeated here</p><p>orangepi@orangepi:~$ and '''sudo ifconfig wlx1cbfced9d260password'''displayed above in the corresponding position to log in to the pagoda.</p><p>wlx1cbfced9d260[[File: flags=4099&lt;UP,BROADCAST,MULTICAST&gt; mtu 1500</p><p>ether 1c:bf:ce:d9:d2:60 txqueuelen 1000 (Ethernet)</p><p>RX packets 0 bytes 0 (0plus5-img340.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 0png]]</p></li></ol> <span id="usb-camera-test"></span>=== USB camera test === <ol style="list-style-type: decimal;"><li><p>After successfully logging in to the pagoda, the following welcome interface will pop up. First, you need please take the intermediate user notice to read to prepare a USB camera that supports the UVC protocol as shown in the figure below or similarbottom, and then you can choose &quot;I have agreed and read&quot; User Agreement &quot;, and then insert click&quot; Enter the USB camera into panel &quot; You can enter the USB port of the Orange Pi development boardpagoda</p><p>[[File:./images/media/image19plus5-img341.png|277x160px1500px]]</p></li><li><p>Through After entering the v4l2-ctl commandpagoda, you will first prompt that you need to bind the account of the pagoda official website. If you do n’t have an account, you can see that go to the device node information official website of the USB camera is /dev/video0</p><p>orangepi@orangepi:~$ '''v4l2-ctl --list-devicespagoda '''</p><p>Q8 HD Webcam: Q8 HD Webcam ('''usb'''-fc880000.usb-1)https:</p><p>'''/dev/video0'''</p><p>/dev/video1</p><p>/dev/media0</p><p>'''Note that the l in v4l2 is a lowercase letter l, not the number 1www.'''</p><p>'''In addition, the serial number of the video is not necessarily video0, please refer to what you actually seebt.cn)'''</p></li><li><p>In the desktop system, Cheese can be used to directly open the USB camera. The method of opening Cheese is shown in the figure below:register one</p><p>[[File:./images/media/image375plus5-img342.png|474x302px1500px]]</p></li><li><p>The final display interface after Cheese turns on the USB camera is shown in the figure below:. You can intuitively see some status information of the development board Linux system, such as load status, CPU usage, memory usage, and storage space usage</p><p>[[File:./images/media/image376plus5-img343.png|480x282px]]</p></li><li><p>Method Test the SSH terminal login of using fswebcam to test USB camerathe pagoda</p>
<ol style="list-style-type: lower-alpha;">
<li><p>Install fswebcam</p><p>orangepi@orangepi:~$ After opening the SSH terminal of the pagoda, you will first prompt that you need to enter the password of the development board system. At this time, enter '''sudo''' '''apt update'''</p><p>orangepi@orangepi:~$ '''sudo apt-get install -y fswebcam'''</p></li><li><p>After installing fswebcamin the password box (the default password, if you can use have modification, please fill in the following command to &gt; take picturesmodified one).</p><ol style="list-style-type: lower-alpha;"><li><p>[[File:plus5-d option is used to specify the device node of the USB &gt; camera</p></li><li><p>--no-banner is used to remove the watermark of the photoimg344.png]]</p></li><li><p>-r option The display after successful login is used to specify the resolution of shown in the photofigure below</p></li><li><p>-S option is used to set the number of previous frames to &gt; skip</p></li><li><p>./image.jpg is used to set the name and path of the &gt; generated photo</p><p>orangepi@orangepi[[File:~$ '''sudo''' '''fswebcam -d /dev/video0 \'''</p><p>'''--no-banner -r 1280x720 plus5-S 5 ./imageimg345.jpg'''png]]</p></li></ol>
</li>
<li><p>In Software such as Apache, MySQL, and PHP can be installed in the server version software store of the linux system, you pagoda. You can use the scp &gt; command to transfer the taken pictures to the Ubuntu PC for &gt; image viewing after taking picturesalso deploy various applications in one click. Please explore it yourself</p><p>orangepi@orangepi:~$ '''scp image.jpg [mailto[File:test@192plus5-img346.168.1.55:/home/test test@192.168.1.55:/home/testpng|1500px]] (Modify the IP address and path according to the actual situation)'''</p></li><li><p>In the desktop version of the linux system, you can directly &gt; view the captured pictures through the HDMI display d. In the &gt; desktop version of the linux system, you can directly view the &gt; captured pictures through the HDMI displayPagoda command line tool test</p></li></ol></li></oldiv class="figure">
<span id="audio[[File:plus5-test"></span>== Audio Test ==img347.png]]
<span id/div></li><li><p>For more functions of the pagoda, please refer to the following information to explore by yourself</p>{| class="wikitable" style="testingwidth:800px;" |-audio-methods-on-desktop-systems"|<p>manual:[http://docs.bt.cn '''http://docs.bt.cn''']</p><p>Forum address:[https://www.bt.cn/bbs '''https://www.bt.cn/bbs''']</p><p>GitHub Link:'''https://spangithub.com/aaPanel/BaoTa'''</p>=== Testing audio methods on desktop systems ===|}</li></ol>
<ol stylespan id="listset-stylethe-chinese-environment-and-install-chinese-type: decimal;input-method"><li><p>First open the file manager</p><p>[[File:./images/media/image377.png|257x126px]]</p></li><li><p>Then find the following file (if there is no audio file in the system, you can upload an audio file to the system yourself)</p><div class="figure"span>
[[File:./images/media/image379.jpeg|236x186px|图片10]]== Set the Chinese environment and install Chinese input method ==
</div></li>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <libig><p>Then select '''Note that before installing the Chinese input method, please make sure that the Linux system used in the development board is the audiodesktop version system.wav file, right click and select open with vlc to start playing'''</pbig>|} <pspan id="debian-11-system-installation-method">[[File:./images/media/image380.png|241x195px]]</pspan>=== Debian 11 system installation method === </liol style="list-style-type: decimal;"><li><p>How to switch between different audio devices such First set the default '''locale''' as HDMI playback and headphone playbackChinese</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First open Enter the volume control command below to start configured '''locale'''</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo dpkg-reconfigure locales'''</p>|}</li><li><p>Then select '''zh_CN.UTF-8 UTF-8''' in the pop-up interface(through the upper and lower direction keys on the keyboard to move up and down, select it through the space key, and finally move the cursor to '''&lt;OK&gt;''' through the Tab key, and then press Enter key.)</p><p>[[File:./images/media/image381plus5-img348.png|294x161px1500px]]</p></li><li><p>When playing audio, Then set the audio device options that the playback &gt; software can use will be displayed in default '''Playbacklocale''', as shown &gt; in the figure below, where you can set which audio device to &gt; play to'''zh_CN.UTF-8'''</p><p>[[File:./images/media/image382plus5-img349.png|575x303px1500px]]</p></li><li><p>After exiting the interface,'''locale''' will be set. The output displayed by the command line is shown below</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</olp><p>Generation complete.</p>|}
</li></ol>
</li>
<li><p>Then open '''Input Method'''</p>
<p>[[File:plus5-img350.png]]</p></li>
<li><p>Then choose '''OK'''</p>
<p>[[File:plus5-img351.png]]</p></li>
<li><p>Then choose '''Yes'''</p>
<p>[[File:plus5-img352.png]]</p></li>
<li><p>Then choose '''fcitx'''</p>
<p>[[File:plus5-img353.png]]</p></li>
<li><p>Then choose '''OK'''</p>
<p>[[File:plus5-img354.png]]</p></li>
<li><p>'''<span style="color:#FF0000">Then restart the Linux system to make the configuration effective</span>'''</p></li>
<li><p>Then Open '''Fcitx configuration'''</p>
<p>[[File:plus5-img355.png]]</p></li>
<li><p>Then click the “+” of the position shown in the figure below</p>
<p>[[File:plus5-img356.png]]</p></li>
<li><p>Then search '''Google Pinyin''' and click '''OK'''</p>
<p>[[File:plus5-img357.png]]</p></li>
<li><p>Then put '''Google Pinyin''' to the forefront</p>
<p>[[File:plus5-img358.png]]</p>
<p>[[File:plus5-img359.png]]</p></li>
<li><p>Then open the '''Geany''' Editor and test the Chinese input method.</p>
<p>[[File:plus5-img360.png]]</p></li>
<li><p>Chinese input method test is shown below</p>
<p>[[File:plus5-img361.png]]</p></li>
<li><p>You can switch between Chinese and English input methods through '''Ctrl+Space''' shortcut</p></li>
<li><p>If the entire system is required as Chinese, the variables in '''/etc/default/locale''' can be set to '''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>Then '''restart the system''' to see the system display as Chinese</p>
<p>[[File:plus5-img362.png]]</p></li></ol>
<span id="theubuntu-method20.04-ofsystem-usinginstallation-commands-to-play-audiomethod"></span>=== The method of using commands to play audio ===
<span id="headphone-interface-playback-audio-test"></span>==== Headphone interface playback audio test =ubuntu 20.04 system installation method ===
<ol style="list-style-type: decimal;">
<li><p>First insert the earphone into the earphone jack of the development boardopen '''Language Support'''</p><p>[[File:./images/media/image383plus5-img363.png|365x89px]]</p></li><li><p>Then you can use the '''aplay -l''' command to view the sound card devices supported by the linux system. From find the output below, you can see that '''card 3''' is the sound card device of es8388, that is, the sound card device of the headset</pspan class="mark">Chinese (China)<p/span>orangepi@orangepi:~$ '''aplay -l'''option</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 #0File: subdevice #0</p><p>card 1: rockchiphdmi0 [rockchipplus5-hdmi0img364.png], device 0: rockchip-hdmi0 i2s-hifi-0 [rockchip-hdmi0 i2s-hifi-0]</p><p>Subdevices: 0/1</pli><pli>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]Then use the left mouse button to select '''</pspan class="mark">Chinese (China)<p>'''Subdevices: 0/1'''</p><pspan>'''Subdevice #0: subdevice #0'''</p></li><li><p>Then use the '''aplay''' command and hold it down, and then drag it up to play the audio file that comes with the systembeginning. If the earphone can hear the sound, it means that The display after dragging is shown in the hardware can be used normally.figure below:</p><p>orangepi@orangepi[[File:~$ '''aplay plus5-D hw:3,0 /usr/share/sounds/alsa/audioimg365.wav'''</p><p>Playing WAVE 'audio.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereopng]]</p></li></ol>
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note that this step is not very easy to drag, please try a few more times.'''</big>|}</ol><ol start="4" style="list-style-type: decimal;"><li><p>Then select the '''<span idclass="speakermark">Apply System-interfaceWide</span>''' to apply the Chinese settings to the entire system</p><p>[[File:plus5-playbackimg366.png]]</p></li><li><p>Then set the '''Keyboard input method system''' as '''fcitx'''</p><p>[[File:plus5-audio-testimg367.png]]</p></li><li><p>'''<span style="color:#FF0000">Then restart the linux system to make the configuration effective</span>'''</p></li><li><p>After re -entering the system, please choose '''<span class==== Speaker "mark">not to ask me again</span>''' at the interface playback audio below, and then determine whether the standard folder should be updated in Chinese according to your preference</p><p>[[File:plus5-img368.png]]</p></li><li><p>Then you can see that the desktop is displayed as Chinese</p><p>[[File:plus5-img369.png]]</p></li><li><p>Then we can open the '''Geany''' test ====in the Chinese input method. The way to open the way is shown in the figure below</p><p>[[File:plus5-img370.png]]</p></li><li><p>After opening '''Geany''', the default is an English input method. We can switch into Chinese input method through the '''Ctrl+Space''' shortcut keys, and then we can enter Chinese</p><p>[[File:plus5-img371.png]]</p></li></ol>
<ol stylespan id="listubuntu-style22.04-type: decimal;installation-method"><li><p>First, you need to prepare a speaker as shown in the figure below. The specification of the speaker seat on the development board is 2pin 1.25mm pitch</p><p>[[File:./images/media/image30.png|229x158px]]</p></li><li><p>The position of the speaker interface on the development board is as follows. After preparing the speaker, please insert it into the speaker interface of the development board</p><p>[[File:./images/media/image384.png|325x184px]]</p></li><li><p>The speaker and earphone use the same sound card. Before using the speaker, please make sure that the earphone jack is not plugged into the earphone (if the earphone is plugged in, the audio will be played to the earphone). Then use the '''aplay''' command to play the audio file that comes with the system. If the speaker can hear the sound, it means that the hardware can be used normally.</p><p>orangepi@orangepi:~$ '''aplay -D hw:3,0 /usr/share/sounds/alsa/audio.wav'''</p><p>Playing WAVE 'audio.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p></li></olspan>
<span id="hdmi-audio-playback-test"></span>==== HDMI audio playback test =Ubuntu 22.04 installation method ===
<ol style="list-style-type: decimal;">
<li><p>First use the HDMI to HDMI cable to connect the Orange Pi development board to the TV (other HDMI monitors need to ensure that they can play audio)</p></li><li><p>Then check the serial number of the HDMI sound card. From the output below, you can know that the sound card of HDMI_TX1 is '''card 1''', and the sound card of HDMI_TX2 is open '''card 2Language Support'''</p><p>orangepi@orangepi[[File:~$ '''aplay plus5-l'''</p><p>**** List of PLAYBACK Hardware Devices ****</p><p>card 0: rockchipdp0 [rockchip,dp0img363.png], device 0: rockchip,dp0 spdif-hifi-0 [rockchip,dp0 spdif-hifi-0]</p><p>Subdevices: 1/1</pli><pli>Subdevice #0: subdevice #0</p><p>'''card 1: rockchiphdmi0 [rockchip-hdmi0], device 0: rockchip-hdmi0 i2s-hifi-0 [rockchip-hdmi0 i2s-hifi-0]Then find the '''</pspan class="mark">Chinese (China)<p>'''Subdevices: 1/1'''</pspan><p>'''Subdevice #0: subdevice #0'''option</p><p>'''card 2[[File: rockchiphdmi1 [rockchipplus5-hdmi1img372.png], device 0: rockchip-hdmi1 i2s-hifi-0 [rockchip-hdmi1 i2s-hifi-0]'''</p><p>'''Subdevices: 1/1'''</p><p>'''Subdevice #0: subdevice #0'''</p></li><li><p>Then please use the mouse to select '''aplay''' command to play the audio file that comes with the system. If the HDMI monitor or TV can hear the sound, it means that the hardware can be used normally.</p><ol stylespan class="list-style-type: lower-alpha;mark"><li><p>The command to play audio to HDMI_TX1 is as follows:Chinese (China)</pspan><p>orangepi@orangepi:~$ '''aplay -D hw:1and hold it down,0 /usr/share/sounds/alsa/audioand then drag it up to the beginning.wav'''</p></li><li><p>The command to play audio to HDMI_TX2 display after the dragging is as followsshown in the figure below:</p><p>orangepi@orangepi[[File:~$ '''aplay plus5-D hw:2,0 /usr/share/sounds/alsa/audioimg373.wav'''png]]</p></li></ol></li></ol>
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note that this step is not very easy to drag, please try a few more times.'''</big>|}</ol><ol start="4" style="list-style-type: decimal;"><li><p>Then select the '''Apply System-Wide''' to apply the Chinese settings to the entire system</p><p>[[File:plus5-img374.png]]</p></li><li><p>'''<span idstyle="methodcolor:#FF0000">Then restart the linux system to make the configuration effective</span>'''</p></li><li><p>After re-ofentering the system, please choose '''<span class="mark">not to ask me again</span>''' at the interface below, and then determine whether the standard folder should be updated to Chinese according to your preference</p><p>[[File:plus5-usingimg368.png]]</p></li><li><p>Then you can see that the desktop is displayed as Chinese</p><p>[[File:plus5-commandsimg369.png]]</p></li><li><p>Then open the Fcitx5 configuration program</p><p>[[File:plus5-img375.png]]</p></li><li><p>Then choose touse Pinyin input method</p><p>[[File:plus5-testimg376.png]]</p></li><li><p>The interface after selecting is shown below, then click OK</p><p>[[File:plus5-recording"img377.png]]</p></spanli>=== Method of using commands <li><p>Then we can open the '''Geany''' to test recording ===Chinese input method.The way to open is shown in the figure below</p><p>[[File:plus5-img370.png]]</p></li><li><p>After opening '''Geany''', the default is an English input method. We can switch into Chinese input method through the '''Ctrl+Space''' shortcut keys, and then we can enter Chinese</p><p>[[File:plus5-img378.png]]</p></li></ol>
<ol stylespan id="listhow-styleto-remotely-log-in-type: decimal;"><li><p>There is an onboard MIC on the development board, the location is as follows:</p><p>[[File:./images/media/image385.png|339x112px]]</p></li><li><p>Running the '''test_record.sh main''' command will record a piece of audio through the onboard MIC, and then play it to HDMI_TX1 and -the headset.</p><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' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p><p>Playing WAVE '/tmp/test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p></li><li><p>In addition to the onboard MIC, we can also record audio through headphones with MIC function. After inserting the headset with MIC function into the development board, run the '''test_record.sh headset''' command to record a piece of audio through the headset, and then play it to HDMI_TX1 and the headset.</p><p>orangepi@orangepi:~$ '''test_record.sh headset'''</p><p>Start recording: /tmp/test.wav</p><p>Recording WAVE '/tmp/test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p><p>Start playing</p><p>Playing WAVE '/tmp/test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p><p>Playing WAVE '/tmp/test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</p></li-linux-system-desktop-method"></olspan>
<span id="temperature-sensor"></span>== Temperature sensor How to remotely log in to the Linux system desktop method ==
The command {| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Ubuntu Gnome Wayland image does not support NoMachine and VNC described here to remotely log in to view the system temperature sensor is:desktop.'''</big>|}
orangepi@orangepi:~$ '''sensors'''<span id="use-nomachine-remote-login"></span>=== Use NoMachine remote login ===
gpu_thermal{| class="wikitable" style="background-virtualcolor:#ffffdc;width:800px;" |-0| <big>'''Make sure the Ubuntu or Debian system installed on the development board is a <span style="color:#FF0000">desktop version</span>. In addition, NoMachine also provides detailed documents. It is strongly recommended to read this document to be familiar with the use of NoMachine. The document links are shown below:'''
Adapter'''https: Virtual device//knowledgebase.nomachine.com/DT10R00166'''</big>|}
temp1{| class="wikitable" style="background-color: +47#ffffdc;width:800px;" |-| <big>'''NoMachine supports Windows, Mac, Linux, iOS, and Android platforms, so we can remotely log in to control Orange PI development boards through NoMachine on multiple devices. The following demonstrates the Linux system desktop of the Orange PI development board through NoMachine in Windows. For installation methods for other platforms, please refer to the official documentation of NoMachine.2°C'''</big>|}
littlecore_thermal{| class="wikitable" style="background-virtualcolor:#ffffdc;width:800px;" |-0| <big>'''Before operation, please ensure that the Windows computer and the development board are in the same local area network, and can log in to the Ubuntu or Debian system that can log in to the development board normally'''</big>|}
Adapter<ol style="list-style-type: Virtual devicedecimal;"><li><p>First download the NoMachine software Linux '''<span style="color:#FF0000">arm64</span>''' DEB version of the installation package, and then install it in the Linux system of the development board.</p><ol style="list-style-type: lower-alpha;"><li>Since RK3588 is a SOC of the ARMV8 architecture, the system we use is Ubuntu or Debian, so you need to download '''NoMachine for ARM ARMv8 DEB''' installation package here. The download link is shown below:</li>
temp1{| class="wikitable" style="background-color: +47#ffffdc;width:800px;" |-| <big>'''Note that this download link may change, please recognize the deb package of the Armv8/Arm64 version.2°C'''</big>|}
bigcore0_thermal{| class="wikitable" style="width:800px;" |-virtual-0|'''https://downloads.nomachine.com/download/?id=118&amp;distro=ARM'''|}
Adapter[[File: Virtual deviceplus5-img379.png]]</ol><ol start="2" style="list-style-type: lower-alpha;"><li><p>In addition, you can also download the installation package of '''NoMachine''' in the '''official tools'''</p><p>[[File:plus5-img380.png]]</p><p>First Enter the '''<span class="mark">remote login software-Nomachine</span>''' Folder</p><p>[[File:plus5-img381.png]]</p><p>Then download the arm64 version of the deb installation package</p><p>[[File:plus5-img382.png]]</p></li><li><p>Then upload the downloaded '''nomachine_x.x.x_x_arm64.deb''' to the Linux system of the development board</p></li><li><p>Then use the following command to install '''NoMachine''' in the Linux system in the development board</p>
temp1{| class="wikitable" style="width: +47800px;" |-|<p>orangepi@orangepi:~$ '''sudo dpkg -i nomachine_x.x.x_x_arm64_arm64.2°Cdeb'''</p>|}</li></ol></li></ol><ol start="2" style="list-style-type: decimal;"><li>Then download the NoMachine software Windows version of the installation package, the download address is shown below</li>
tcpm_source_psy_6_0022{| class="wikitable" style="background-i2ccolor:#ffffdc;width:800px;" |-6-22| <big>'''Note that this download link may change'''</big>|}
Adapter{| class="wikitable" style="width: rk3x800px;" |-i2c|'''https://downloads.nomachine.com/download/?id=9'''|}
in0[[File: 0plus5-img383.00 V (min png]]</ol><ol start= +0"3" style="list-style-type: decimal;"><li><p>Then install nomachine in Windows. '''Please restart the computer after installation'''</p></li><li><p>Then open '''NoMachine''' in Window</p><p>[[File:plus5-img384.png]]</p></li><li><p>After Nomachine is started, it will automatically scan other devices installed in the local area network. After entering the main interface of Nomachine, you can see that the development board is already in the connected device list, and then click the location shown in the red box below in the figure below. You can start logging in to the Linux system desktop of the development board</p><p>[[File:plus5-img385.00 Vpng]]</p></li><li><p>Then click '''OK'''</p><p>[[File:plus5-img386.png]]</p></li><li><p>Then enter the username and password of the linux system in the corresponding position in the figure below, max = +0and then click '''OK''' to start logging in</p><p>[[File:plus5-img387-1.png]]</p></li><li><p>Then click OK in the next interface</p></li><li><p>Finally, you can see the desktop of the development board Linux system</p><p>[[File:plus5-img388.00 V)png]]</p></li></ol>
curr1: 0.00 A (max <span id= +0.00 A)"use-vnc-remote-login"></span>
npu_thermal-virtual-0=== Use VNC remote login ===
Adapter{| class="wikitable" style="background-color: Virtual device#ffffdc;width:800px;" |-| <big>'''Before operation, please ensure that the Windwos computer and the development board are in the same local area network, and you can log in to the Ubuntu or Debian system of the development board normally.'''
temp1'''<span style="color: +47#FF0000">Ubuntu 20.2°C04 tests many problems with VNC, please do not use this method.</span>'''</big>|}
center_thermal<ol style="list-virtualstyle-0type: decimal;"><li><p>First run the '''set_vnc.sh''' script settings vnc, and '''<span style="color:#FF0000">remember to add Sudo permissions</span>'''</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo set_vnc.sh'''</p><p>You will require a password to access your desktops.</p>
Adapter: Virtual device
temp1<p>Password: +47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'''<span style="color:#FF0000">#Set the VNC password here, 8 -bit characters</span>'''</p><p>Verify: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'''<span style="color:#FF0000">#Set the VNC password here, 8 -bit characters</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/.2°CXauthority does not exist</p>
bigcore1_thermal-virtual-0
Adapter<p>New 'X' desktop is orangepi: Virtual device1</p>
temp1: +47.2°C
soc_thermal-virtual-0<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>
Adapter: Virtual device
temp1: +47.2°C (crit = +115.0°C)<p>Killing Xtightvnc process ID 3047</p>
<span id="pin-expansion-interface-pin-instructions"></span>
== 40 Pin Expansion Interface Pin Instructions ==
<div class="figure"p>New 'X' desktop is orangepi:1</p>
[[File:./images/media/image386.jpeg|575x166px|5725d46c4ff256fbd1d42ed5ba883f9f]]
<p>Starting applications specified in /root/div><ol style="list-style-type: decimal;"><li><.vnc/li><li><p>Please refer to the figure below for the order of the 40 pin expansion interface pins on the Orange Pi 5 Plus development board:xstartup</p><p>[[File:.Log file is /imagesroot/media.vnc/image388orangepi:1.png|567x418px]]log</p>|}</li><li><p>The functions steps of using MobaxTerm software to connect the 40 pin interface pins on the Orange Pi 5 Plus development board Linux system desktop are shown in the table belowbelow:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>The following is the complete pin diagram of 40 pin</p><p>[[File:./images/media/image389.png|575x137px]]</p><p>The following is a color map containing some of the content in the above table:</p><p>[[File:./images/media/image390.png|575x199px]]</p></li><li><p>The table below is the picture of the left half of First click the complete &gt; table abovesession, so you can see it clearly</p><p>[[File:./images/media/image391.png|576x287px]]</p></li><li><p>The table below is the picture of the right half of the complete &gt; table abovethen select VNC, so you can see it clearly</p><p>[[File:./images/media/image392.png|575x263px]]</p><p>'''The pwm then fill in the above table has marked the base IP address and port of the corresponding registerdevelopment board, which is useful when checking which pwmchip in''' '''/sys/class/pwm/''' '''corresponds and finally click OK to which pwm pin in the 40 pin header.'''</p></li></ol></li><li><p>There are a total of '''28''' GPIO ports in the 40 pin interface, and the voltage of all GPIO ports is '''3.3v'''.</p>confirm</li></ol>
<span iddiv class="how-to-install-wiringopfigure"></span>== How to install wiringOP ==
'''Note that wiringOP has been pre[[File:plus5-installed in the linux image released by Orange Piimg389. Unless the code of wiringOP is updated, there is no need to re-download, compile and install, just use it directly.'''png]]
'''The storage path </div></ol><ol start="2" style="list-style-type: lower-alpha;"><li><p>Then enter the password of the compiled wiringOP deb package in orangepipreviously set VNC</p><p>[[File:plus5-build img390.png]]</p></li><li><p>The interface after the login is:'''successfully displayed as shown in the figure below, and then you can remotely operate the desktop of the linux system remotely</p></li>
'''orangepi[[File:plus5-buildimg391.png]]</externalol></cacheli></debsol><span id="some-programming-language-test-supported-by-thelinux-system"></arm64/wiringpi_x.xx.deb'''span>
'''After entering the == Some programming language test supported by thelinux system, you can run the gpio readall command. If you can see the following output, it means that wiringOP has been pre-installed and can be used normally.'''==
<div classspan id="figuredebian-bullseye-system"> [[File:./images/media/image393.png|575x403px|876iring_001]] </divspan>'''wiringOP is currently mainly adapted to the functions of setting GPIO port input and output, setting GPIO port output high and low levels, and setting up and down pull-down resistors. Functions such as hardware PWM are not available.'''=== Debian Bullseye system ===
<ol style="list-style-type: decimal;">
<li><p>Download Debian Bullseye is installed with the gcc compilation tool chain by default, which can compile the C language program directly in the code Linux system of wiringOPthe development board</p><ol style="list-style-type: lower-alpha;"><li><p>orangepi@orangepi:~$ '''sudo apt update'''The version of the gcc is shown below</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo apt install gcc --y gitversion'''</p><p>orangepi@orangepi:~$ '''git clone https://githubgcc (Debian 10.2.com/orangepi1-xunlong/wiringOP6) 10.2.git -b next'''1 20210110</p><p>'''Note that Orange Pi 5 Plus needs to download the code of the wiringOP next branchCopyright (C) 2020 Free Software Foundation, please don't miss the -b next parameterInc.'''</p><p>'''If you have problems downloading This is free software; see the code from GitHub, you can directly use the wiringOP source code that comes with the Linux image, and the storage location for copying conditions. There is:''' '''/usr/src/wiringOP'''NO</p></li><li><p>Compile and install wiringOPwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</p>|}<p/li>orangepi@orangepi:~$ '''cd wiringOP'''</pli><p>orangepi@orangepi:~/wiringOP$ '''sudo hello_world./build cleanc'''program to write c language</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~/wiringOP$ '''sudo vim hello_world./buildc'''</p></li><li><p>Test the output of the gpio readall command as follows#include &lt;stdio.h&gt;</p><div class="figure">
[[File:./images/media/image393.png|575x403px|876iring_001]]
</divp>int main(void)</lip></ol> <span id="pin-interface-gpio-i2c-uart-spi-can-and-pwm-test"p>{</spanp>== 40 pin interface GPIO, I2C, UART, SPI, CAN and PWM test == <span id="pin-gpio-port-test"></span>=== 40 pin GPIO port test === '''The linux system released by Orange Pi has a pre-installed blink_all_gpio program, which will set all 28 GPIO ports in the 40 pins to switch between high and low levels continuously.''' '''After running the blink_all_gpio program, when using a multimeter to measure the level of the GPIO port, you will find that the GPIO pin will switch between 0 and 3.3v continuously. Using this program we can test whether the GPIO port is working properly.''' '''The way to run the blink_all_gpio program is as follows:''' orangepi@orangepi5plus:~$ '''sudo blink_all_gpio #Remember to add sudo permission''' [sudo] password for orangepi: '''#A password is required here''' <ol style="list-style-type: decimal;"><li><p>There are a total of '''28''' GPIO ports in the 40 pins of the development board that can be used. The following uses pin 7—the corresponding GPIO is GPIO1_D6——the corresponding wPi number is 2—as an example to demonstrate how to set the high and low levels of the GPIO portprintf(&quot;Hello World!\n&quot;);</p><div class="figure"> [[File:./images/media/image394.png|575x145px|874iring_001]] </div></li><li><p>First set the GPIO port to output mode, where the third parameter needs to input the serial number of wPi corresponding to the pinreturn 0;</p><p>root@orangepi:~/wiringOP# '''gpio mode 2 out'''}</p>|}</li><li><p>Then set the GPIO port to output a low level. After setting, you can use a multimeter to measure the voltage value of the pin. If it is 0v, it means that the low level is set successfully.</p><p>root@orangepi:~/wiringOP# compile and run '''gpio write 2 0hello_world.c'''</p><p>Use gpio readall to see that the value (V) of pin 7 has changed to 0</p><div {| class="figurewikitable" style="width:800px;">|-[[File:./images/media/image395.png|575x127px|874iring_002]] </div></li><li><p>Then set the GPIO port to output a high level. After setting, you can use a multimeter to measure the voltage value of the pin. If it is 3.3v, it means that the high level is set successfullyorangepi@orangepi:~$ '''gcc -o hello_world hello_world.c'''</p><p>rootorangepi@orangepi:~/wiringOP# $ '''gpio write 2 1./hello_world'''</p><p>Use gpio readall to see that the value (V) of pin 7 has changed to 1Hello World!</p>|}<div class="figure"/li[[File:./images/media/image396.png|575x131px|875iring_001]] </divol></li><li><p>The setting method of other pins is similar, just modify the serial number of wPi to the corresponding serial number of the pinDebian Bullseye Default with Python3</p></li></ol> <span id="how-to-set-the-pull-down-resistance-of-pin-gpio-port"></span>=== How to set the pull-down resistance of pin GPIO port === <ol style="list-style-type: decimallower-alpha;"><li><p>The following takes pin No. 7—the corresponding GPIO specific version of Python is GPIO1_D6—the corresponding wPi number is 2—as an example to demonstrate how to set the pull-up and pull-down resistance of the GPIO portshown below</p><div {| class="figurewikitable" style="width:800px;">|-[[File:./images/media/image396.png|575x131px|875iring_001]] </div></li><li><p>First, you need to set the GPIO port to the input mode, and the third parameter needs to be the serial number of the wPi corresponding to the input pin</p><p>rootorangepi@orangepi:~/wiringOP# $ '''gpio mode 2 inpython3'''</p></li><li><p>After setting to input mode, execute the following command to set the GPIO port to pull-up mode</p><p>root@orangepi:~/wiringOP# '''gpio mode Python 3.9.2 up'''</p></li><li><p>Then enter the following command to read the level of the GPIO port(default, if the level is 1Feb 28 2021, it means that the pull-up mode is set successfully17:03:44)</p><p>root@orangepi:~/wiringOP# '''gpio read [GCC 10.2'''</p><p>'''.1'''20210110] on linux</p></li><li><p>Then execute the following command to set the GPIO port to pull-down mode</p><p>root@orangepi:~/wiringOP# '''gpio mode 2 down'''</p></li><li><p>Then enter the following command to read the level of the GPIO portType &quot;help&quot;, if the level is 0&quot;copyright&quot;, the pull-down mode is set successfully&quot;credits&quot; or &quot;license&quot; for more information.</p><p>root@orangepi:~/wiringOP# '''gpio read 2'''&gt;&gt;&gt;</p><p>'''0'''</p></li></ol>|} <span id{| class="pin-spi-testwikitable"></span>=== 40 pin SPI test === <ol style="listbackground-style-typecolor:#ffffdc;width: decimal800px;">|-| <libig><p>As can be seen from the figure below, the SPIs available for Orange Pi 5 Plus are SPI0 and SPI4'''Use CTRL+D shortcut key to exit Python's interactive mode.'''</p><p/big>[[File:./images/media/image389.png|575x137px]]</p>}</li><li><p>The corresponding pins of SPI0 and SPI4 in 40pin are shown in the table below'''hello_world. SPI4_M1 and SPI4_M2 can only use one of them at the same time, and they cannot be used at the same time. They are all the same SPI4, but they are connected to different pins. Please donpy'''t think that they are two different sets of SPI buses.program in Python language</p></li></ol> {| class="wikitable" style="width:800px;"
|-
|
| <p>orangepi@orangepi:~$ '''SPI0_M2 corresponds to 40pinvim hello_world.py'''</p>| '''SPI4_M1 corresponds to 40pin'<p>print('Hello World!')</p>| }</li><li><p>The results of running '''SPI4_M2 corresponds to 40pinhello_world.py'''are shown below</p>{| class="wikitable" style="width:800px;"
|-
| <p>orangepi@orangepi:~$ '''MOSIpython3 hello_world.py'''</p><p>Hello World!</p>| }</li></ol></li><li><p>Debian Bullseye'''Pin 19'''s compilation tool and operating environment without Java default</p><ol style="list-style-type: lower-alpha;">| '''Pin 12'''<li><p>You can use the following command to install openjdk. The latest version in Debian Bullseye is openjdk-17</p>{| '''Pin''' '''8'''class="wikitable" style="width:800px;"
|-
| <p>orangepi@orangepi:~$ '''MISOsudo apt install -y openjdk-17-jdk'''</p>| '''Pin''' '''21'''}</li>| '''Pin''' '''31'''<li><p>After installation, you can check the version of Java</p>{| '''Pin 10'''class="wikitable" style="width:800px;"
|-
| <p>orangepi@orangepi:~$ '''CLKjava --version'''</p>| '''Pin''' '''23'''}</li>| '<li><p>Edit the ''Pin'hello_world.java'' '''35'''of Java version</p>{| '''Pin''' '''22'''class="wikitable" style="width:800px;"
|-
| <p>orangepi@orangepi:~$ '''CS0vim hello_world.java'''</p><p>public class hello_world</p><p>{</p>::<p>public static void main(String[] args)</p>::<p>{</p>::::<p>System.out.println(&quot;Hello World!&quot;);</p>::<p>}</p><p>}</p>| '''Pin''' '''24'''}</li>| '''Pin'<li><p>Then compile and run '' '''40hello_world.java'''</p>{| '''Pin''' '''31'''class="wikitable" style="width:800px;"
|-
| <p>orangepi@orangepi:~$ '''CS1javac hello_world.java'''</p>| <p>orangepi@orangepi:~$ '''Pin''' '''26java hello_world'''</p><p>Hello World!</p>| '''Pin''' '''38'''}| '''none'''</li></ol>|-</li></ol>| '''dtbo confi guration'''| '''spi 0<span id="ubuntu-m2focal-cs0-spidev'''system"></span>
'''spi 0-m2-cs1-spidev'''=== Ubuntu Focal system ===
<ol style="list-style-type: decimal;"><li><p>Ubuntu Focal has a gcc compilation tool chain by default, which can compile the C language program directly in the Linux system of the development board</p><ol style="list-style-type: lower-alpha;"><li><p>The version of gcc is shown below</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''spi0gcc -m2 -cs0version'''</p><p>gcc (Ubuntu 9.4.0-cs11ubuntu1~20.04.1) 9.4.0</p><p>Copyright (C) 2019 Free Software Foundation, Inc.</p><p>This is free software; see the source for copying conditions. There is NO</p><p>warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</p>|}</li><li><p>The '''hello_world.c''' program that writes c language</p>{| class="wikitable" style="width:800px;" |-spidev|<p>orangepi@orangepi:~$ '''vim hello_world.c'''</p><p>#include &lt;stdio.h&gt;</p>
| '''spi 4-m1-cs0-spidev'''
'''spi 4-m1-cs1-spidev'''<p>int main(void)</p><p>{</p>::<p>printf(&quot;Hello World!\n&quot;);</p>
'''spi4-m1 -cs0-cs1-spidev'''
| '''spi4-m 2-cs0-spidev'''::<p>return 0;</p><p>}</p>
|}
 
<ol start="3" style="list-style-type: decimal;">
<li><p>In the linux system, the SPI in the 40 pin is closed by default, and it needs to be opened manually before it can be used. The detailed steps are as follows:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First run '''orangepi-config''', normal users remember to add &gt; '''sudo''' permission</p>
<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314.png|389x180px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315.png|389x169px]]</p></li>
<li><p>Then use the arrow keys on the keyboard to navigate to the &gt; position shown in the figure below, and then use the '''space''' &gt; to select the SPI configuration you want to open</p>
<p>[[File:./images/media/image397.png|388x132px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image346.png|391x113px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image347.png|404x123px]]</p></li>
<li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the &gt; configuration take effect</p>
<p>[[File:./images/media/image319.png|332x146px]]</p></li></ol>
</li>
<li><p>After restarting, enter the system and first check whether there is a '''spidevx.x''' device node in the linux system. If it exists, it means that the SPI has been set up and can be used directly.</p><p>orangepi@orangepi:~$ '''ls /dev/spidev*'''</p><p>/dev/spidev0.0 /dev/spidev0.1 /dev/spidev4.0 /dev/spidev4.1</p><p>'''The above is the result displayed after turning on spi0-m2-cs0-cs1-spidev and spi4-m1-cs0-cs1-spidev.'''</p></li><li><p>Then do not short-circuit the MOSI and MISO pins of SPI0 or SPI4, the output result of running spidev_test is as follows, you can see that the data of TX and RX are inconsistent</p><p>orangepi@orangepi:~$ '''sudo spidev_test -v -D /dev/spidev4.0'''</p><p>'''or'''</p><p>orangepi@orangepi:~$ '''sudo spidev_test -v -D /dev/spidev0.0'''</p><p>spi mode: 0x0</p><p>bits per word: 8</p><p>max speed: 500000 Hz (500 KHz)</p><p>TX | FF FF FF FF FF FF '''40 00 00 00 00 95''' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D | ......@.…▒..................▒.</p><p>RX | FF FF FF FF FF FF '''FF FF FF FF FF FF''' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | ............................….</p></li><li><p>Then short-circuit the MOSI and MISO pins of SPI0 or SPI4, compile and then run the output of spidev_test as follows. You can see that the sent and received data are the same, indicating that the SPI loopback test is normal.</p><p>orangepi@orangepi:~$ '''sudo spidev_test -v -D /dev/spidev4hello_world.0c'''</p><p>'''or'''</p><p>orangepi@orangepi:~$ '''sudo spidev_test -v -D /dev/spidev0.0'''</p><p>spi mode: 0x0</p><p>bits per word: 8</p><p>max speed: 500000 Hz (500 KHz)</p><p>TX {| FF FF FF FF FF FF '''40 00 00 00 00 95''' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D | ......@.…▒..................▒.</p><p>RX | FF FF FF FF FF FF '''40 00 00 00 00 95''' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D | ......@.…▒..................▒.</p></li></ol> <span idclass="pin-i2c-testwikitable"></span>=== 40 pin I2C test === <ol style="list-style-typewidth: decimal800px;"><li><p>As can be seen from the table below, the available i2c for Orange Pi 5 Plus is i2c2, i2c4, i2c5 and i2c8, a total of four sets of i2c buses.</p><p>[[File:./images/media/image389.png|575x137px]]</p></li><li><p>The corresponding pins of the 4 groups of I2C buses in 40pin are shown in the table below. I2C2_M0 and I2C2_M4 can only use one of them at the same time, and they cannot be used at the same time. They are all the same I2C2, but they are connected to different pins. Please don’t think that they are two different sets of I2C2 buses.</p></li></ol> {| class="wikitable"
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''I2C busgcc -o hello_world hello_world.c'''</p>| style="text-align<p>orangepi@orangepi: left;"| ~$ '''SDA corresponds to 40pin./hello_world'''</p><p>Hello World!</p>| }</li></ol></li><li><p>Ubuntu Focal's default installation with Python3</p><ol style="textlist-alignstyle-type: leftlower-alpha;"| '''SCL corresponds to 40pin'''><li><p>Python3 specific version is shown below</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''dtbo corresponding configuration'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''I2C2_M0python3'''</p>| style="text-align<p>Python 3.8.10 (default, Nov 14 2022, 12:59: left47)</p><p>[GCC 9.4.0] on linux</p><p>Type &quot;help&quot;", &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.</p><p>&gt;&gt;&gt;</p>| '''Pin''' '''3'''} {| styleclass="text-align: left;wikitable"| '''Pin''' '''5'''| style="textbackground-aligncolor:#ffffdc;width: left800px;"| '''i2c2-m0'''
|-
| style="text-align: left;"| <big><p>'''Use CTRL+D shortcut key to exit Python'I2C2_M4s interactive mode.'''</p></big>| style="text-align: left;"| '''Pin''}</li><li><p>The ' '''10hello_world.py'''program that writes python language</p>{| styleclass="text-align: left;wikitable"| '''Pin''' '''8'''| style="text-alignwidth: left800px;"| '''i2c2-m4'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''I2C4_M3vim hello_world.py'''</p>| style="text-align: left;"| '''Pin<p>print('Hello World!')</p>|}</li><li><p>The results of running ' '''22hello_world.py'''are shown below</p>{| styleclass="text-align: left;wikitable"| '''Pin''' '''32'''| style="text-alignwidth: left800px;"| '''i2c4-m3'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''I2C5_M3python3 hello_world.py'''</p><p>Hello World!</p>| }</li></ol></li><li><p>Ubuntu Focal's compilation tools and operating environment without Java default</p><ol style="textlist-style-type: lower-alpha;"><li><p>You can use the following command to install openjdk-align17</p>{| class="wikitable" style="width: left800px;"|-| <p>orangepi@orangepi:~$ '''Pin''' '''27sudo apt install -y openjdk-17-jdk'''</p>|}</li><li><p>After installation, you can check the version of the java</p>{| class="wikitable" style="text-alignwidth: left800px;"|-| <p>orangepi@orangepi:~$ '''Pinjava --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>Edit the '''28hello_world.java'''of Java version</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''i2c5-m3'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''I2C8_M2vim hello_world.java'''</p><p>public class hello_world</p><p>{</p>::<p>public static void main(String[] args)</p>| style="text-align: left;"| '''Pin''' '''29''':<p>{</p>| style="text-align: left:::<p>System.out.println(&quot;"| '''Pin''' '''7'''Hello World!&quot;);</p>| style="text-align: left;"| '''i2c8-m2''':<p>}</p><p>}</p>
|}
 
<ol start="3" style="list-style-type: decimal;">
<li><p>In the linux system, the I2C bus in the 40 pin is closed by default, and it needs to be opened manually to use it. The detailed steps are as follows:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First run '''orangepi-config''', normal users remember to add &gt; '''sudo''' permission</p>
<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314.png|397x184px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315.png|401x174px]]</p></li>
<li><p>Then use the arrow keys on the keyboard to navigate to the &gt; position shown in the figure below, and then use the '''space''' &gt; to select the I2C configuration you want to open</p>
<p>[[File:./images/media/image398.png|406x153px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image346.png|380x109px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image347.png|355x108px]]</p></li>
<li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the &gt; configuration take effect</p>
<p>[[File:./images/media/image319.png|323x142px]]</p></li></ol>
</li>
<li><p>After starting the linux system, first confirm that there are device nodes that need to use I2C under Then compile and run '''/devhello_world.java'''</p><p>orangepi@orangepi{| class="wikitable" style="width:~$ '''ls /dev/i2c800px;" |-*'''</p></li><li><p>Then connect an I2C device to the I2C pin corresponding to the 40 pin interface</p></li><li><p>Then use the '''i2cdetect -y''' command, if the address of the connected i2c device can be detected, it means that i2c can be used normally</p>|<p>orangepi@orangepi:~$ '''sudo i2cdetect -y 2javac hello_world.java''' #i2c2 command</p><p>orangepi@orangepi:~$ '''sudo i2cdetect -y 4java hello_world''' #i2c4 command</p><p>orangepi@orangepi:~$ '''sudo i2cdetect -y 5''' #i2c8 commandHello World!</p>|}<p/li>orangepi@orangepi:~$ '''sudo i2cdetect -y 8''' #i2c8 command</pol></li></ol>
<div classspan id="figureubuntu-jammy-system"></span>
[[File:./images/media/image399.png|336x170px|521iring_001]]=== Ubuntu Jammy system ===
<ol start="1" style="list-style-type: decimal;"><li><p>Ubuntu Jammy is equipped with a gcc compilation tool chain by default, which can directly compile the C language program in the Linux system of the development board</divp><span idol style="pinlist-uartstyle-testtype: lower-alpha;"><li><p>The version of gcc is shown below</spanp>{| 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>The '''hello_world.c''' program that writes c language</p>{| class= 40 pin UART test =="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''vim hello_world.c'''</p><p>#include &lt;stdio.h&gt;</p>  <p>int main(void)</p><p>{</p>::<p>printf(&quot;Hello World!\n&quot;);</p>
<ol style="list-style-type: decimal;">
<li><p>As can be seen from the table below, the uarts available for Orange Pi 5 Plus are uart1, uart3, uart4, uart6, uart7 and uart8, a total of 6 sets of uart buses</p>
<p>[[File:./images/media/image389.png|575x137px]]</p></li>
<li><p>The corresponding pins of the 6 groups of UART buses in 40pin are shown in the following table:</p></li></ol>
::<p>return 0;</p><p>}</p>|}</li><li><p>Then compile and run '''hello_world.c'''</p>{| class="wikitable" style="width:800px;"
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''UARTgcc -o hello_world hello_world.c''' </p><p>orangepi@orangepi:~$ '''bus./hello_world'''</p><p>Hello World!</p>| }</li></ol></li><li><p>Ubuntu jammy is installed with Python3 by default</p><ol style="textlist-style-aligntype: leftlower-alpha;"| '''RX corresponds to 40pin'''><li><p>python3 specific version is shown below</p>{| styleclass="text-align: left;wikitable"| '''TX corresponds to 40pin'''| style="text-alignwidth: left800px;"| '''dtbo corresponding configuration'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''UART1_M1python3'''</p>| style="text-align: left;"| <p>Python '''Pin 273.10.4'''(main, Apr 2 2022, 09:04:19) [GCC 11.2.0] on linux</p><p>Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.</p><p>&gt;&gt;&gt;</p>| style}{| class="text-align: left;wikitable"| '''Pin 28'''| style="textbackground-aligncolor: left#ffffdc;width:800px;"| '''uart1-m1'''
|-
| style="text-align: left;"| <big><p>'''Use CTRL+D shortcut key to exit Python'UART3_M1s interactive mode.'''</p></big>| style="text-align: left;"| }</li><li><p>The '''Pin 18hello_world.py'''program that writes python language</p>{| styleclass="text-align: left;wikitable"| '''Pin 16'''| style="text-alignwidth: left800px;"| '''uart3-m1'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''vim hello_world.py''UART4_M2'</p><p>print('Hello World!')</p>| style="text-align: left;"| }</li><li><p>The results of running '''Pin 19hello_world.py'''are shown below</p>{| styleclass="text-align: left;wikitable"| '''Pin 23'''| style="text-alignwidth: left800px;"| '''uart4-m2'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''UART6_M1python3 hello_world.py'''</p><p>Hello World!</p>| }</li></ol></li><li><p>Ubuntu Jammy defaults to compile tools and operating environments that are not installed in Java</p><ol style="textlist-style-aligntype: leftlower-alpha;"| '''Pin 10'''><li><p>You can use the following command to install openjdk-18</p>{| styleclass="text-align: left;wikitable"| '''Pin 8'''| style="text-alignwidth: left800px;"| '''uart6-m1'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''UART7_M2sudo apt install -y openjdk-18-jdk'''</p>| style="text-align: left;"| '''Pin 24'''}</li><li><p>After installation, you can check the version of the java</p>{| styleclass="text-align: left;wikitable"| '''Pin 26'''| style="text-alignwidth: left800px;"| '''uart7-m2'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''UART8_M1java --version'''</p>| style="text<p>openjdk 18-ea 2022-03-align: left;"| '''Pin 40'''22</p>| style="text<p>OpenJDK Runtime Environment (build 18-ea+36-Ubuntu-align: left;"| '''Pin 35'''1)</p>| style="text<p>OpenJDK 64-Bit Server VM (build 18-align: left;"| '''uart8ea+36-Ubuntu-m1'''1, mixed mode, sharing)</p>
|}
 
<ol start="3" style="list-style-type: decimal;">
<li><p>In the linux system, the UART in the 40 pin is closed by default, and it needs to be opened manually to use it. The detailed steps are as follows:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First run '''orangepi-config''', normal users remember to add &gt; '''sudo''' permission</p>
<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314.png|403x186px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315.png|413x179px]]</p></li>
<li><p>Then use the arrow keys on the keyboard to navigate to the &gt; position shown in the figure below, and then use the space to &gt; select the UART configuration you want to open</p>
<p>[[File:./images/media/image400.png|408x144px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image346.png|405x117px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image347.png|401x122px]]</p></li>
<li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the &gt; configuration take effect</p>
<p>[[File:./images/media/image319.png|320x141px]]</p></li></ol>
</li>
<li><p>After entering Edit the linux system, first confirm whether there is a device node corresponding to uart under /dev</p><p>orangepi@orangepi:~$ '''ls /dev/ttyS*hello_world.java'''</p></li><li><p>Then start to test the uart interface, first use the DuPont line to short the rx and tx pins of the uart interface to be testedJava version</p></li><li><p>Use the '''gpio serial''' command to test the loopback function of the serial port as shown below. If you can see the following print, it means that the serial port communication is normal (ttySX needs to be replaced with the node name corresponding to uart, please do not copy it)</p><p>orangepi@orangepi:~$ '''sudo gpio serial /dev/ttySX'''</p><p>[sudo] password for orangepi: #enter password here</p><p>Out: 0: -&gt; 0</p><p>Out: 1: -&gt; 1</p><p>Out: 2: -&gt; 2</p><p>Out: 3: -&gt; 3</p><p>Out: 4: -&gt; 4</p><p>Out: 5: -&gt; 5^C</p></li></ol> <span id{| class="pwm-test-methodwikitable"></span>=== PWM test method === <ol style="list-style-typewidth: decimal800px;"><li><p>As can be seen from the table below, the available PWM for Orange Pi 5 Plus includes six channels of PWM: pwm0, pwm1, pwm11, pwm12, pwm13 and pwm14</p><p>[[File:./images/media/image389.png|575x137px]]</p></li><li><p>The corresponding pins of PWM in 40pin are shown in the table below. Only one of PWM0_M0 and PWM0_M2, PWM1_M0 and PWM1_M2, PWM14_M0 and PWM14_M2 can be used at the same time, and they cannot be used at the same time. They are all the same PWM, but they are connected to different pins. Please don’t think that they are two different PWM bus.</p></li></ol> {| class="wikitable"
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''PWM总线vim hello_world.java'''</p>| style="text-align<p>public class hello_world</p><p>{</p>::<p>public static void main(String[] args)</p>::<p>{</p>:::: left<p>System.out.println(&quot;Hello World!&quot;);"</p>::<p>}</p><p>}</p>| }</li><li><p>Then compile and run '''Corresponding to 40pinhello_world.java'''</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''dtbo corresponding configuration'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''PWM0_M0javac hello_world.java'''</p>| style="text-align<p>orangepi@orangepi: left;"| ~$ '''Pin 5java hello_world'''</p><p>Hello World!</p>| }</li></ol></li></ol> <span id="qt-installation-method"></span> == QT installation method == <ol style="textlist-style-aligntype: leftdecimal;"><li><p>You can install QT5 and QT Creator with the following scripts</p>{| '''pwm0-m0'''class="wikitable" style="width:800px;"
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''PWM0_M2install_qt.sh'''</p>| }</li><li><p>After installation, it will automatically print the QT version number</p><ol style="textlist-alignstyle-type: leftlower-alpha;"| ><li><p>Ubuntu20.04's own QT version is '''Pin 225.12.8'''</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''pwm0-m2'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''PWM1_M0install_qt.sh'''</p>| <p>......</p><p>QMake version 3.1</p><p>Using Qt version '''<span style="text-aligncolor: left;#FF0000">5.12.8</span>''' in /usr/lib/aarch64-linux-gnu</p>| }</li><li><p>Ubuntu22.04's own QT version is ''Pin '5.15.3'''</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''pwm1-m0'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''PWM1_M2install_qt.sh'''</p><p>......</p><p>QMake version 3.1</p>| <p>Using Qt version '''<span style="text-aligncolor: left;#FF0000">5.15.3</span>''' in /usr/lib/aarch64-linux-gnu</p>| }</li><li><p>The QT version comes with Debian11 is '''Pin 325.15.2'''</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''pwm1-m2'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''PWM11_M0install_qt.sh'''</p><p>......</p><p>QMake version 3.1</p>| <p>Using Qt version '''<span style="text-aligncolor: left;#FF0000">5.15.2</span>''' in /usr/lib/aarch64-linux-gnu</p>| }</li><li><p>The QT version that comes with Debian12 is '''Pin 125.15.8'''</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''pwm11-m0'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''PWM12_M0install_qt.sh'''</p>| <p>......</p><p>QMake version 3.1</p><p>Using Qt version '''<span style="text-aligncolor: left;#FF0000">5.15.8</span>''' in /usr/lib/aarch64-linux-gnu</p>| }</li></ol></li><li><p>Then you can see the lax icon of QT Creator in '''Pin 14Applications'''</p><p>[[File:plus5-img392.png]]</p><p>You can also use the following command to open QT Creator</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''pwm12-m0'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''PWM13_M0qtcreator'''</p>| style} {| class="text-align: left;wikitable"| '''Pin 16'''| style="textbackground-aligncolor:#ffffdc;width: left800px;"| '''pwm13-m0'''
|-
| <big><p>'''During the startup process of QT and QT applications, if the error below is prompted, please ignore it directly. This error will not affect the operation of the application.'''</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>The interface after the QT Creator is opened is shown below</p><p>[[File:plus5-img393.png]]</p></li><li><p>The version of QT Creator is shown below</p><ol style="textlist-style-aligntype: leftlower-alpha;"| ><li><p>The default version of QT Creator in '''Ubuntu20.04''' is shown below</p><p>[[File:plus5-img394.png]]</p></li><li><p>The default version of QT Creator in '''Ubuntu22.04''' is shown below</p><p>[[File:plus5-img395.png]]</p></li><li><p>The default version of QT Creator in '''Debian11''' is shown below</p><p>[[File:plus5-img396.png]]</p></li><li><p>The default version of QT Creator in '''PWM14_M0Debian12'''is as follows</p><p>[[File:plus5-img396-1.png]]</p></li></ol>| </li><li><p>Then set the QT</p><ol style="textlist-alignstyle-type: leftlower-alpha;"| ><li><p>First open '''Help'''-&gt;'''About Plugins...'''</p><p>[[File:plus5-img397.png]]</p></li><li><p>Then remove the hook of '''Pin 33ClangCodeModel'''</p>| <p>[[File:plus5-img398.png]]</p></li><li><p>'''<span style="text-aligncolor: left;#FF0000"| >After setting, you need to restart Qt Creator</span>'''pwm14</p></li><li><p>Then make sure the GCC compiler used by QT Creator, if the default is Clang, please modify it to GCC</p>{| class="wikitable" style="background-m0'''color:#ffffdc;width:800px;"
|-
| style="text-align: left;"| '''PWM14_M2'''| style="text-align: left;"| '''Pin 7'''| style="text-align: left;"| <big>'''pwm14-m0Debian12 please skip this step.'''</big>
|}
 <ol start="3" style="list-style-type: decimal;"><li><p>In the linux system, the PWM in the 40 pin is turned off by default, and it needs to be turned on manually before it can be used. The detailed steps are as follows:</p><ol style="list-style-type: lower-alpha;"><li><p>First run '''orangepi-config''', normal users remember to add &gt; '''sudo''' permission</p><p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li><li><p>Then select '''System'''</p><p>[[File:./images/media/image314plus5-img399.png|416x192px]]</p></li><li><p>Then select '''Hardware'''</p><p>[[File:./images/media/image315.png|457x198px]]</p></li><li><p>Then use the arrow keys on the keyboard to navigate to the &gt; position shown in the figure below, and then use the space to &gt; select the PWM configuration you want to open</p><p>[[File:./images/media/image401.png|279x222px]]</p></li><li><p>Then select '''&lt;Save&gt;''' to save</p><p>[[File:./images/media/image346.png|368x106px]]</p></li><li><p>Then select '''&lt;Back&gt;'''</p><p>[[File:./images/media/image347.png|370x112px]]</p></li><li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the &gt; configuration take effect</p><p>[[File:./images/media/image319plus5-img400.png|303x133px]]</p></li></ol>
</li>
<li><p>After opening a pwm, there will be Then you can open an extra pwmchipX in '''example code</sysp><p>[[File:plus5-img401.png]]</classp></pwm/''' (X is a specific number)li><li><p>After clicking the example code, you will automatically open the corresponding description document. You can carefully look at the instructions for example, after opening pwm14, check the pwmchipX under '''use</sysp><p>[[File:plus5-img402.png]]</class/pwm/''' two became threep></pli><li><p>orangepi@orangepi:~$ Then click '''ls /sys/class/pwm/Configure Project'''</p><p>pwmchip0 pwmchip1 pwmchip2[[File:plus5-img403.png]]</p></li><li><p>Which pwmchip above corresponds to pwm14? Let’s check Then click the sample code under the output of green triangle compilation and run in the ls /sys/class/pwm/ -l command first, as shown below:lower left corner</p><div class="figure"p> [[File:./images/media/image402plus5-img404.png|576x77px|985iring_001]] </divp></li><li><p>Then it can be known from the table below that the base address of the pwm14 register is febf0020After waiting for a while, and then look at the output of interface shown in the '''ls /sys/class/pwm/ -l''' commandfigure below will pop up. At this time, you it means that QT can see that pwmchip2 is linked to febf0020.pwm, so pwm14 corresponds to pwmchip as pwmchip2compile and run normally</p><p>[[File:./images/media/image403plus5-img405.png|575x287px]]</p></li><li><p>Then use the following command to make pwm14 output a 50Hz square wave (please switch to the root user first, and then execute the following command)Reference information</p></li></ol>{| class="wikitable" style="width:800px;" |-|root@orangepi:~# '''echo 0 &gt; https:/sys/class/pwm/pwmchip2wiki.qt.io/exportInstall_Qt_5_on_Ubuntu'''
root@orangepi:~# '''echo 20000000 &gt; /sys/classhttps:/pwm/pwmchip2download.qt.io/pwm0archive/periodqtcreator'''
root@orangepi:~# '''echo 1000000 &gt; /sys/classhttps:/pwm/pwmchip2download.qt.io/pwm0archive/duty_cycleqt'''|}</li></ol>
root@orangepi:~# '''echo 1 &gt; <span id="ros-installation-method"></sys/class/pwm/pwmchip2/pwm0/enable'''span>
[[File:./images/media/image404.png|575x346px]]== ROS installation method ==
<ol startspan id="8" style="listubuntu-20.04-method-of-installing-ros-style1-type: decimal;noetic"><li/span>The test === Ubuntu 20.04 method of pwm14 demonstrated above is similar to other pwm test methods.</li></ol>installing ROS 1 Noetic ===
<span id="can-test-method"></span>=== CAN test method ===# The current active version of ROS 1 is shown below. The recommended version is '''Noetic Ninjemys'''
<span id="how::[[File:plus5-to-open-can"></span>==== How to open CAN ====img406.png]]
<ol style="list-style-type: decimal;"><li><p>As can be seen from the table below, the available CAN bus for Orange Pi 5 Plus is CAN0 and CAN1, a total of two CAN buses</p><p>[[File:./images/media/image405.png|574x137px]]</p></li><li><p>In the linux system, the CAN in the 40 pin is closed by default, and it needs to be opened manually before it can be used. The detailed steps are as follows:</p><ol style="list-style-type: lower-alpha;"><li><p>First run '''orangepi-config''', normal users remember to add &gt; '''sudo''' permission</p><p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li><li><p>Then select '''System'''</p><p>[[File:./images/media/image314.png|374x173px]]</p></li><li><p>Then select '''Hardware'''</p><p>[[File:./images/media/image315.png|370x160px]]</p></li><li><p>Then use the arrow keys on the keyboard to navigate to the &gt; position shown in the figure below, and then use the space to &gt; select the CAN configuration you want to open ('''can0plus5-m0''' and &gt; '''cam1-m0''' are optional for OPi 5 Plus)</p><p>[[File:./images/media/image406.png|370x61px]]</p></li><li><p>Then select '''&lt;Save&gt;''' to save</p><p>[[File:./images/media/image346img407.png|332x96px]]</p></li><li><p>Then select '''&lt;Back&gt;'''</p><p>[[File:./images/media/image347.png|341x103px]]</p></li><li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the &gt; configuration take effect</p><p>[[File:./images/media/image319.png|283x125px]]</p></li></ol></li><li><p>After entering the Linux system, use the '''sudo ifconfig -a''' command, if you can see the CAN device node, it means that the CAN has been opened correctly</p><p>orangepi@orangepi:~$ '''sudo ifconfig -a'''</p><p>can0: flags=128&lt;NOARP&gt; mtu 16</p><p>unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)</p><p>RX packets 0 bytes 0 (0.0 B)</p><p>RX errors 0 dropped 0 overruns 0 frame 0</p><p>TX packets 0 bytes 0 (0.0 B)</p><p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</p><p>device interrupt 94</p><p>can1: flags=128&lt;NOARP&gt; mtu 16</p><p>unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)</p><p>RX packets 0 bytes 0 (0.0 B)</p><p>RX errors 0 dropped 0 overruns 0 frame 0</p><p>TX packets 0 bytes 0 (0.0 B)</p><p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</p><p>device interrupt 95</p></li><li><p>The corresponding pins of CAN0 and CAN1 are</p></li></ol>
::{| class="wikitable" style="width:800px;"
|-
|
'''http://docs.ros.org''' '''https://wiki.ros.org/Distributions'''| } <ol start="2" style="textlist-style-aligntype: leftdecimal;"| ><li><p>ROS 1 '''Noetic Ninjemys'CAN0'''official installation document links are shown below:</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''CAN1'''
|-
| '''TX pinhttp://wiki.ros.org/noetic/Installation/Ubuntu'''| }</li><li><p>Ubuntu 20.04 is recommended in the official installation document of ROS '''Noetic Ninjemys''', so please make sure that the system used in the development board is '''<span style="text-aligncolor: left;#FF0000"| '''Corresponding to pin 5 of 40pin>Ubuntu20.04 desktop version system</span>'''</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''Corresponding to pin 18 of 40pin'''
|-
| '''RX pinhttp://wiki.ros.org/noetic/Installation'''| }<p>[[File:plus5-img408.png]]</p></li><li><p>Then install Ros1 with the following script</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''Corresponding to pin 3 of 40pin'''-| style="text-align<p>orangepi@orangepi5plus: left;"| ~$ '''Corresponding to pin 16 of 40pininstall_ros.sh ros1'''</p>
|}
 
<span id="use-the-canalyst-ii-analyzer-to-test-sending-and-receiving-messages"></span>
==== Use the CANalyst-II analyzer to test sending and receiving messages ====
 
<ol style="list-style-type: decimal;">
<li><p>The CANalyst-II analyzer used in the test is shown in the figure below</p>
<p>[[File:./images/media/image407.png|165x134px]]</p></li>
<li><p>CANalyst-II analyzer data download link</p>
<p>[https://www.zhcxgd.com/3.html '''https://www.zhcxgd.com/3.html''']</p></li>
<li><p>First install the software USBCANToolSetup</p>
<p>[[File:./images/media/image408.png|553x94px]]</p></li>
<li><p>The shortcut after installation of USBCANToolSetup is</p>
<p>[[File:./images/media/image409.png|59x80px]]</p></li>
<li><p>In addition, you need to install the USB driver</p>
<p>[[File:./images/media/image410.png|553x112px]]</p></li>
<li><p>The end of the USB interface of the CANalyst-II analyzer needs to be connected to the USB interface of the computer</p>
<p>[[File:./images/media/image411.png|137x121px]]</p></li>
<li><p>To test the CAN function, you need to prepare a CAN transceiver as shown in the figure below. The main function of the CAN transceiver is to convert the TTL signal of the CAN controller into the differential signal of the CAN bus</p>
<ol style="list-style-type: lower-alpha;">
<li><p>The 3.3V pin of the CAN transceiver needs to be connected to the &gt; 3.3V pin in the 40 pins of the development board</p></li>
<li><p>The GND pin of the CAN transceiver needs to be connected to the &gt; GND pin in the 40 pin of the development board</p></li>
<li><p>The CAN TX pin of the CAN transceiver needs to be connected to &gt; the TX pin of the CAN bus in the 40 pin of the development &gt; board</p></li>
<li><p>The CAN RX pin of the CAN transceiver needs to be connected to &gt; the RX pin of the CAN bus in the 40 pin of the development &gt; board</p></li>
<li><p>The CANL pin of the CAN transceiver needs to be connected to the &gt; H interface of the analyzer</p></li>
<li><p>The CANL pin of the CAN transceiver needs to be connected to the &gt; L interface of the analyzer</p>
<p>[[File:./images/media/image412.png|243x78px]]</p></li></ol>
</li>
<li><p>Then Before using the ROS tool, you can open the USB-CAN software</p><p>[[File:./images/media/image413.png|553x267px]]</p></li><li><p>Then click to start the device</p><p>[[File:./images/media/image414.png|553x238px]]</p></li><li><p>Then click OK</p><p>[[File:./images/media/image415.png|279x110px]]</p></li><li><p>Set the baud rate need to 1000k bps</p><p>[[File:./images/media/image416.png|322x268px]]</p></li><li><p>After successful openinginitialize ROSDEP first, the USB-CAN software will display the serial number and other information</p><p>[[File:./images/media/image417.png|553x262px]]</p></li><li><p>Development board receives CAN message test</p><ol style="list-style-type: lower-alpha;"><li><p>a. First set the baud rate of the CAN bus to '''1000kbps''' in &gt; the Linux then install some system of the development board</p><p>orangepi@orangepi:~$ '''sudo ip link set can0 down'''</p><p>orangepi@orangepi:~$ '''sudo ip link set can0 type can bitrate 1000000'''</p><p>orangepi@orangepi:~$ '''sudo ip link set can0 up'''</p></li><li><p>Then run the '''candump can0''' command to prepare to receive &gt; messages</p><p>orangepi@orangepi:~$ '''sudo candump can0'''</p></li><li><p>Then send a message to the development board in the USB-CAN &gt; software</p><p>[[File:./images/media/image418.png|553x188px]]</p></li><li><p>If the message sent by the analyzer can be received in the &gt; development board, it means that the CAN bus can be used &gt; normally</p><p>orangepi@orangepi5plus:~$ '''sudo candump can0'''</p><p>'''can0 001 [8] 01 02 03 04 05 06 07 08'''</p></li></ol></li><li><p>Development board sends CAN message test</p><ol style="list-style-type: lower-alpha;"><li><p>a. First set the CAN baud rate to '''1000kbps''' dependencies and core components in some ROS when compiling the Linux &gt; system</p><p>orangepi@orangepi:~$ '''sudo ip link set can0 down'''</p><p>orangepi@orangepi:~$ '''sudo ip link set can0 type can bitrate 1000000'''</p><p>orangepi@orangepi:~$ '''sudo ip link set can0 up'''</p></li><li><p>Execute the '''cansend''' command on the development board and &gt; send a message</p><p>orangepi@orangepi:~$ '''sudo cansend can0 123#1122334455667788'''source code</p></li><li><p>If the USB-CAN software can receive the message from the &gt; development board, the communication is successful</p><div class="figure">
[[File{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''<span style="color:#FF0000">Note that the following commands need to ensure that the development board can access GitHub normally, otherwise it will report an error due to network problems.</images/media/image420.jpeg|483x377px|未标题-5]]span>'''
</div></li></ol>
</li></ol>
<span id="how-'''install_ros.sh script will try to-install-modify/etc/hosts and-use-wiringop-python"></span>== How run the following commands automatically. However, this method cannot guarantee that you can access github normally. If install_ros.sh has prompting the following errors after the ros1 is installed, please think other methods to allow the linux system of the development board to install access github normally, and use wiringOP-Python ==then manually run the following manually command.'''
'''wiringOP-Python is the Python language version of wiringOP, which is used to operate the hardware resources of the development board, such as GPIO, I2C, SPI and UART, in the Python program.'''
'''In addition, please note that all the following commands are operated under the''' '''root''' '''userhttps://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml'''
<span id="how-to-install-wiringop-python"><'''Hit https:/span>=== How to install wiringOP-Python ===/raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml'''
'''<ol span style="list-style-typecolor: decimal;#FF0000"><li><p>First install the dependency package</p><p>root@orangepiERROR:~# '''sudo apt-get update'''</p><p>root@orangepierror loading sources list:~# '''sudo apt-get -y install git swig python3-dev python3-setuptools'''</pspan></li><li><p>Then use the following command to download the source code of wiringOP-Python</p><p>'''Note that the following''' '''git clone --recursive''' '''command will automatically download the source code of wiringOP, because wiringOP-Python depends on wiringOP. Please make sure that the download process does not report errors due to network problems.'''</p><p>'''If you have problems downloading the code from GitHub, you can directly use the wiringOP-Python source code that comes with the Linux''' '''image, and the storage location is:''' '''/usr/src/wiringOP-Python.'''</p><p>root@orangepi:~# '''git clone --recursive https://github.com/orangepi-xunlong/wiringOP-Python -b next'''</p><p>Cloning into 'wiringOP-Python'...</p><p>remote: Enumerating objects: 602, done.</p><p>remote: Counting objects: 100% (40/40), done.</p><p>remote: Compressing objects: 100% (28/28), done.</p><p>remote: Total 602 (delta 20), reused 26 (delta 12), pack-reused 562</p><p>Receiving objects: 100% (602/602), 309.30 KiB | 1.23 MiB/s, done.</p><p>Resolving deltas: 100% (349/349), done.</p><p>Submodule 'wiringOP' (https://github.com/orangepi-xunlong/wiringOP.git) registered for path 'wiringOP'</p><p>Cloning into '/root/test/wiringOP-Python/wiringOP'...</p><p>remote: Enumerating objects: 654, done.</p><p>remote: Counting objects: 100% (273/273), done.</p><p>remote: Compressing objects: 100% (33/33), done.</p><p>remote: Total 654 (delta 244), reused 245 (delta 238), pack-reused 381</p><p>Receiving objects: 100% (654/654), 360.54 KiB | 1.73 MiB/s, done.</p><p>Resolving deltas: 100% (424/424), done.</p><p>Submodule path 'wiringOP': checked out '85f1331cd8fda668115461ec1c06cb342057eb03'</p></li><li><p>Then use the following command to compile wiringOP-Python and install it into the Linux system of the development board</p><p>root@orangepi:~# '''cd wiringOP-Python'''</p><p>root@orangepi:~/wiringOP-Python# '''python3 generate-bindings.py &gt; bindings.i'''</p><p>root@orangepi:~/wiringOP-Python# '''sudo python3 setup.py install'''</p></li><li><p>Then enter the following command, if there is help information output, it means that wiringOP-Python is installed successfully, press the '''q''' key to exit the help information interface</p></li></ol>
root@orangepi:~/wiringOP-Python# :'''python3 -c &quot;import wiringpi; help(wiringpi)&quot;<span style="color:#FF0000">The read operation timed out</span>'''</big>|}
Help on module wiringpi:
NAME{| class="wikitable" style="width:800px;" |-|orangepi@orangepi:~$ '''source /opt/ros/noetic/setup.bash'''
wiringpiorangepi@orangepi:~$ '''sudo rosdep init'''
DESCRIPTIONWrote /etc/ros/rosdep/sources.list.d/20-default.list
# This file was automatically generated by SWIG (httpRecommended://www.swig.org).please run
# Version 4.0.2
#::rosdep update
# Do not make changes to this file unless you know what you are doing--modifyorangepi@orangepi:~$ '''rosdep update'''
# the SWIG interface file insteadreading in sources list data from /etc/ros/rosdep/sources.list.d
<ol start="5" style="list-style-typeHit https: decimal;"><li><p>The steps to test whether wiringOP-Python is successfully installed under the python command line are as follows:</p><ol style="list-style-type: lower-alpha;"><li>First use the python3 command to enter the command line mode of &gt; python3</li><raw.githubusercontent.com/ros/rosdistro/ol><master/li><rosdep/ol>osx-homebrew.yaml
root@orangepiHit https:~# '''python3'''//raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
<ol start="2" style="list-style-typeHit https: lower-alpha;"><li>Then import the python module of wiringpi</li></ol>raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
&gt;&gt;&gt; '''import wiringpi;'''Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
<ol start="3" style="list-style-typeHit https: lower-alpha;"><li>Finally, enter the following command to view the help information of &gt; wiringOP-Python, and press the q key to exit the help information &gt; interface</li></ol>raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
&gt;&gt;&gt; '''help(wiringpi)'''Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Help on module wiringpi:Skip end-of-life distro &quot;ardent&quot;
NAMESkip end-of-life distro &quot;bouncy&quot;
wiringpiSkip end-of-life distro &quot;crystal&quot;
DESCRIPTIONSkip end-of-life distro &quot;dashing&quot;
# This file was automatically generated by SWIG (http://www.swig.org).Skip end-of-life distro &quot;eloquent&quot;
# Version 4.0.2Add distro &quot;foxy&quot;
#Add distro &quot;galactic&quot;
# Do not make changes to this file unless you know what you are doingSkip end-of-modifylife distro &quot;groovy&quot;
# the SWIG interface file instead.Add distro &quot;humble&quot;
CLASSESSkip end-of-life distro &quot;hydro&quot;
builtins.objectSkip end-of-life distro &quot;indigo&quot;
GPIOSkip end-of-life distro &quot;jade&quot;
I2CSkip end-of-life distro &quot;kinetic&quot;
SerialSkip end-of-life distro &quot;lunar&quot;
nesAdd distro &quot;melodic&quot;
class GPIO(builtins.object)Add distro &quot;noetic&quot;
| GPIO(pinmode=0)Add distro &quot;rolling&quot;
updated cache in /home/orangepi/.ros/rosdep/sources.cache
|}
</ol>
<ol start="6" style="list-style-type: decimal;">
<li><p>Then open a command line window on the '''desktop''', and then use the '''test_ros.sh''' script to start a small turtle routine to test whether the ROS can be used normally</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>orangepi@orangepi:~$ '''test_ros.sh'''</p>
|}
</li>
<li><p>After running the '''test_ros.sh''' script, a small turtle shown in the figure below will pop up</p>
<div class="figure">
&gt;&gt;&gt;[[File:plus5-img409.png]]
<span id="pin-gpio-port-test-1"/div></spanli>=== 40 pin GPIO port test ===<li><p>Then please keep the terminal window just open at the top</p></li>
'''wiringOP-Python is the same as wiringOP, you can also determine which GPIO pin to operate by specifying the wPi number, because there is no command to check the wPi number in wiringOP-Python, so you can only check the board wPi number and physical Correspondence between pins.'''<div class="figure">
<div class="figure">[[File:plus5-img410.png]]
</div></ol><ol start="9" style="list-style-type: decimal;"><li><p>At this time, press the direction button on the keyboard to control the small turtles up, down, left and right</p><p>[[File:plus5-img411.png]]</imagesp></mediali></image393.png|415x291px|876iring_001]]ol>
</div><ol stylespan id="listubuntu20.04-the-method-of-installing-styleros-type: decimal;2-galactic"><li><p>The following takes pin No. 7—the corresponding GPIO is GPIO1_D6—the corresponding wPi number is 2—as an example to demonstrate how to set the high and low levels of the GPIO port</p><div class="figure"span>
[[File:=== Ubuntu20./images/media/image394.png|419x106px|874iring_001]]04 The method of installing ROS 2 Galactic ===
</div></li><li><p>The steps to test directly with the command are as follows:</p><ol style="list-style-type: lower-alphadecimal;"><li><p>First set the GPIO port to output mode, where the first &gt; parameter The current active version of the ROS 2 is shown below. The recommended version is '''pinModeGalactic Geochelone''' function is the serial number of &gt; the wPi corresponding to the pin, and the second parameter is &gt; the GPIO mode</p><p>root@orangepi[[File:~/wiringOPplus5-Python# '''python3 -c &quot;import wiringpi; \'''img412.png]]</p><p>'''from wiringpi import GPIO; wiringpi[[File:plus5-img413.wiringPiSetup() ; \'''png]]</p> {| class="wikitable" style="width:800px;" |-|<p>'''wiringpi[http://docs.pinMode(2, GPIOros.OUTPUT) ; &quot;org/ '''<http:/p></li><li><p>Then set the GPIO port to output a low leveldocs. After setting, you &gt; can use a multimeter to measure the voltage value of the pinros. &gt; If it is 0v, it means that the low level is set successfully.</p><p>root@orangepi:~/wiringOP-Python# '''python3 -c &quot;import wiringpi; \org''']</p><p>'''from wiringpi import GPIO; wiringpihttp://docs.ros.wiringPiSetup() ;\'''<org/en/galactic/p><p>'''wiringpiReleases.digitalWrite(2, GPIO.LOW)&quot;html'''</p>|}</li><li><p>Then set the GPIO port to output a high level. After setting, &gt; you can use a multimeter to measure the voltage value of the &gt; pin. If it is 3.3v, it means that the high level is set &gt; successfully.</p><p>root@orangepi:~/wiringOP-Python# ROS 2 '''Galactic Geochelone'python3 -c &quot;import wiringpi; \'''s official installation document link is shown below:</p> {| class="wikitable" style="width:800px;" |-|<p>'''from wiringpi import GPIO; wiringpidocs.ros.org/en/galactic/Installation.wiringPiSetup() ;\html'''</p><p>'''wiringpihttp://docs.digitalWrite(2, GPIOros.org/en/galactic/Installation/Ubuntu-Install-Debians.HIGH)&quot;html'''</p></li></ol>|}
</li>
<li><p>The steps to test in the command line of python3 are as follows:</p><ol style="list-style-type: lower-alpha;"><li><p>First use the python3 command to enter the command line mode of &gt; python3</p><p>root@orangepi:~# ROS 2 '''Galactic Geochelone'python3'''</p></li><li><p>Then import s official installation document is recommended to use Ubuntu 20.04, so please make sure that the system used in the python module of wiringpi</p><p>&gt;&gt;&gt; '''import wiringpidevelopment board is '''</pspan style="color:#FF0000"><p>&gt;&gt;&gt; '''from wiringpi import GPIO'''Ubuntu20.04 desktop version system</p></li><li><pspan>Then set the GPIO port to output mode, where the first parameter &gt; of the '''pinMode''' function is the serial number of the wPi &gt; corresponding . There are several ways to install ROS 2. The following demonstrates install the pin, and the second parameter is the GPIO &gt; mode</p><p>&gt;&gt;&gt; Ros 2 '''wiringpi.wiringPiSetup()Galactic Geochelone'''</p><p>0</p><p>&gt;&gt;&gt; by '''wiringpi.pinMode(2, GPIO.OUTPUT)Debian packages'''</p></li><li><p>Then set the GPIO port to output low level. After setting, you &gt; You can use a multimeter to measure the voltage value of the pin. &gt; If it is 0v, it means that the low level is set successfully.</p><p>&gt;&gt;&gt; install ROS2 with '''wiringpiinstall_ros.digitalWrite(2, GPIO.LOW)sh'''script</p></li><li><p>Then set the GPIO port to output a high level. After setting, &gt{| class="wikitable" style="width:800px; you can use a multimeter to measure the voltage value of the &gt; pin. If it is 3.3v, it means that the high level is set &gt; successfully.</p>" |-|<p>&gt;&gt;&gt; orangepi@orangepi:~$ '''wiringpi.digitalWrite(2, GPIOinstall_ros.HIGH)sh ros2'''</p></li></ol>|}
</li>
<li><p>The method of wiringOP-Python setting GPIO high and low levels in python code can refer to the '''blinkinstall_ros.pysh''' test program in script will automatically run the examples below. The '''blink.pyros2 -h''' test program will set command after ros2 is installed. If you can see the voltage of all GPIO ports in the 40 pins of the development board to change continuously.printing below, it means that ros2 installation is complete</p>{| class="wikitable" style="width:800px;" |-|<p>root@orangepiusage:~/wiringOPros2 [-h] Call `ros2 &lt;command&gt; -Python# '''cd examples'''h` for more detailed usage. ...</p>  <p>root@orangepi:~/wiringOPros2 is an extensible command-Python/examples# '''ls blinkline tool for ROS 2.py'''</p>  <p>'''blink.py'''optional arguments:</p>:<p>root@orangepi:~/wiringOP-Python/examples'''# python3 blink.py'''h, --help show this help message and exit</p></li></ol> 
<span id="pinp>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-spicommands</p>:<p>node Various node related sub-testcommands</p>:<p>param Various param related sub-1"commands</p>:<p>pkg Various package related sub-commands</spanp>=== 40 pin SPI test ===:<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>
<ol style="list-style-type: decimal;">
<li><p>As can be seen from the figure below, the SPIs available for Orange Pi 5 Plus are SPI0 and SPI4</p>
<p>[[File:./images/media/image389.png|575x137px]]</p></li>
<li><p>The corresponding pins of SPI0 and SPI4 in 40pin are shown in the table below. SPI4_M1 and SPI4_M2 can only use one of them at the same time, and they cannot be used at the same time. They are all the same SPI4, but they are connected to different pins. Please don't think that they are two different sets of SPI buses.</p></li></ol>
:<p>Call `ros2 &lt;command&gt; -h` for more detailed usage.</p>|}</li><li><p>Then you can use the '''test_ros.sh''' script to test whether the ROS 2 is successfully installed. If you can see the printing below, it means that the ROS 2 can run normally</p>{| class="wikitable" style="width:800px;"
|-
|
| <p>orangepi@orangepi5plus:~$ '''SPI0_M2 corresponds to 40pintest_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: 'SPI4_M1 corresponds to 40pinHello 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>| '''SPI4_M2 corresponds }</li><li><p>Run the following command to 40pin'''open rviz2</p>{| class="wikitable" style="width:800px;"
|-
| <p>orangepi@orangepi:~$ '''MOSIsource /opt/ros/galactic/setup.bash'''</p>| <p>orangepi@orangepi:~$ '''Pin 19ros2 run rviz2 rviz2'''</p>| '''Pin 12'''}<div class="figure"> [[File:plus5-img414.png]] </div></li><li><p>How to use ROS, please refer to the document of ROS 2</p>{| '''Pin 8'''class="wikitable" style="width:800px;"
|-
| '''MISOhttp://docs.ros.org/en/galactic/Tutorials.html'''| '''Pin 21'''}</li></ol> <span id="ubuntu22.04-to-install-ros-2-humble"></span> === Ubuntu22.04 to install ROS 2 Humble === <ol style="list-style-type: decimal;">| <li><p>install ROS2 with '''Pin 31install_ros.sh'''script</p>{| '''Pin 10'''class="wikitable" style="width:800px;"
|-
| <p>orangepi@orangepi:~$ '''CLKinstall_ros.sh ros2'''</p>| }</li><li><p>'''Pin 23install_ros.sh'''| script will automatically run the '''Pin 35ros2 -h'''command after ROS2 is installed. If you can see the following printing, it means that ROS2 installation is complete.</p>{| '''Pin 22'''class="wikitable" style="width:800px;"
|-
| '''CS0'''| '''Pin 24'''| '''Pin 40'''| '''Pin 31'''|-| '''CS1'''| '''Pin 26'''| '''Pin 38'''| '''none'''|-| '''dtbo confi guration'''| '''spi 0-m2<p>usage: ros2 [-cs0h] Call `ros2 &lt;command&gt; -spidev'''h` for more detailed usage. ...</p>
'''spi 0-m2-cs1-spidev'''
'''spi0<p>ros2 is an extensible command-m2 -cs0-cs1-spidev'''line tool for ROS 2.</p>
| '''spi 4-m1-cs0-spidev'''
'''spi 4<p>optional arguments:</p>:<p>-m1h, -cs1-spidev'''help show this help message and exit</p>
'''spi4-m1 -cs0-cs1-spidev'''
| '''spi4<p>Commands:</p>:<p>action Various action related sub-m 2commands</p>:<p>bag Various rosbag related sub-cs0commands</p>:<p>component Various component related sub-spidev'''commands</p>:<p>daemon Various daemon related sub-commands</p>:<p>doctor Check ROS setup and other potential issues</p>:<p>interface Show information about ROS interfaces</p>:<p>launch Run a launch file</p>:<p>lifecycle Various lifecycle related sub-commands</p>:<p>multicast Various multicast related sub-commands</p>:<p>node Various node related sub-commands</p>:<p>param Various param related sub-commands</p>:<p>pkg Various package related sub-commands</p>:<p>run Run a package specific executable</p>:<p>security Various security related sub-commands</p>:<p>service Various service related sub-commands</p>:<p>topic Various topic related sub-commands</p>:<p>wtf Use `wtf` as alias to `doctor`</p>  :<p>Call `ros2 &lt;command&gt; -h` for more detailed usage.</p>
|}
 
<ol start="3" style="list-style-type: decimal;">
<li><p>In the linux system, the SPI in the 40 pin is closed by default, and it needs to be opened manually before it can be used. The detailed steps are as follows:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First run '''orangepi-config''', normal users remember to add &gt; '''sudo''' permission</p>
<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314.png|413x191px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315.png|419x182px]]</p></li>
<li><p>Then use the arrow keys on the keyboard to navigate to the &gt; position shown in the figure below, and then use the space to &gt; select the SPI configuration you want to open</p>
<p>[[File:./images/media/image397.png|415x141px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image346.png|415x120px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image347.png|414x126px]]</p></li>
<li><p>g. Then select '''&lt;Reboot&gt;''' to restart the system to make the &gt; configuration take effect</p>
<p>[[File:./images/media/image319.png|293x129px]]</p></li></ol>
</li>
<li><p>After restarting, enter Then you can use the system and first check whether there is a '''spidevxtest_ros.xsh''' device node in script to test whether the linux systemROS 2 is successfully installed. If it existsyou can see the printing below, it means that the SPI has been set up and ROS 2 can be used directly.run normally</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepiorangepi5plus:~$ '''ls /dev/spidev*test_ros.sh'''</p><p>/dev/spidev0.0 /dev/spidev0.1 /dev/spidev4.0 /dev/spidev4[INFO] [1671174101.200091527] [talker]: Publishing: 'Hello World: 1'</p><p>'''The above is the result displayed after turning on spi0-m2-cs0-cs1-spidev and spi4-m1-cs0-cs1-spidev[INFO] [1671174101.'''235661048] [listener]: I heard: [Hello World: 1]</p></li><li><p>Then you can use the '''spidev_test[INFO] [1671174102.py199572327] [talker]: Publishing: 'Hello World: 2'' program in the examples to test the loopback function of the SPI. The '''spidev_test.py''' program needs to specify the following two parameters:</p><ol style="list-style-type: lower-alpha;"><li><p>'''--channel'''[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: Specify the channel number of SPI2]</p></li><li><p>[INFO] [1671174103.199580322] [talker]: Publishing: 'Hello World: 3''--port''': specify the port number of SPI</p></lip>[INFO] [1671174103.204019965] [listener]: I heard: [Hello World: 3]</olp>|}
</li>
<li><p>Do not short-circuit Run the MOSI and MISO pins of the SPI, the output of running '''spidev_test.py''' is as follows, you can see that the data of TX and RX are inconsistentfollowing command to open rviz2</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''The x after the --channel and --port parameters needs to be replaced with the channel number of the specific SPI and the port number of the SPIsource /opt/ros/humble/setup.bash'''</p><p>rootorangepi@orangepi:~/wiringOP-Python# $ '''cd examplesros2 run rviz2 rviz2'''</p>|}</li></oldiv class="figure">
root@orangepi[[File:~/wiringOPplus5-Python/examples# '''python3 spidev_testimg415.py --channel x --port x'''png]]
spi mode</div></li><li><p>Reference document</p>{| class="wikitable" style="width: 0x0800px;" |-|<p>'''http://docs.ros.org/en/humble/index.html'''</p><p>'''http://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html'''</p>|}</li></ol>
max speed: 500000 Hz (500 KHz)<span id="the-method-of-installing-the-kernel-header-file"></span>
Opening device /dev/spidev4.1== The method of installing the kernel header file ==
TX | FF FF FF FF FF FF <ol style="list-style-type: decimal;"><li><p>The linux image released by OPI defaults to the DEB package of the kernel header file. The location is '''40 00 00 00 00 95/opt/''' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D </p>{| class="wikitable" style="width:800px;" |-|......<p>orangepi@orangepi5plus:~$ '''ls /opt/linux-headers*'''</p><p>/opt/linux-headers-legacy-rockchip-rk3588_x.x.x_arm64.deb</p>|}</li><li><p>Use the following command to install the deb package of the kernel header file</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''The name of the kernel file deb package needs to be replaced with the actual name, please don't copy it....…'''</p></big>|}
RX {| FF FF FF FF FF FF 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>After installation, you can see the folder where the kernel header file is located under the'''FF FF FF FF FF FF/usr/src''' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF </p>{|class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''ls /usr/src'''</p><p>linux-headers-5.10.110-rockchip-rk3588</p>|}</li><li><p>Then you can write a Hello kernel module to test the kernel header file</p><ol style="list-style-type: lower-alpha;"><li><p>First write the code of the Hello kernel module, as shown below:</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''vim hello.c'''</p><p>#include &lt;linux/init.h&gt;</p><p>#include &lt;linux/module.........….|h&gt;</p>
<ol start="7" style="list-style-type: decimal;">
<li><p>Then use the Dupont wire to short-circuit the MOSI and MISO pins of the SPI, and then run the output of spidev_test.py as follows, you can see that the data sent and received are the same, indicating that the SPI loopback test is normal</p>
<p>'''The x after the --channel and --port parameters needs to be replaced with the channel number of the specific SPI and the port number of the SPI.'''</p>
<p>root@orangepi:~/wiringOP-Python# '''cd examples'''</p></li></ol>
root@orangepi:~<p>static int hello_init(void)</wiringOP-Pythonp><p>{</examples# '''python3 spidev_test.py p>::<p>printk(&quot;Hello Orange Pi --channel x --port x'''init\n&quot;);</p>
spi mode: 0x0
max speed: 500000 Hz :<p>return 0;</p><p>}</p><p>static void hello_exit(void)</p><p>{</p>::<p>printk(500 KHz&quot;Hello Orange Pi -- exit\n&quot;);</p>
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 |......@.......…|::<p>return;</p><p>}</p>
RX | FF FF FF FF FF FF '''40 00 00 00 00 95''' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D |......@.......…|
<span id="pin-i2c-test-1"p>module_init(hello_init);</spanp>=== 40 pin I2C test ===<p>module_exit(hello_exit);</p>
<ol style="list-style-type: decimal;">
<li><p>As can be seen from the table below, the available i2c for Orange Pi 5 Plus is i2c2, i2c4, i2c5 and i2c8, a total of four sets of i2c buses.</p>
<p>[[File:./images/media/image389.png|575x137px]]</p></li>
<li><p>4组I2C总线在40pin中对应的引脚如下表所示。I2C2_M0和I2C2_M4同一时间只The corresponding pins of the 4 groups of I2C buses in 40pin are shown in the table below. I2C2_M0 and I2C2_M4 can only use one of them at the same time, and they cannot be used at the same time. They are all the same I2C2, but they are connected to different pins. Please don’t think that they are two different sets of I2C2 buses.</p></li></ol>
<p>MODULE_LICENSE(&quot;GPL&quot;);</p>|}</li><li><p>Then write a makefile file that compiles the Hello kernel module, as shown below:</p>{| class="wikitable" style="width:800px;"
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''I2C busvim Makefile'''</p>| style<p>ifneq ($(KERNELRELEASE),)</p><p>obj-m:=hello.o</p><p>else</p><p>KDIR :=/lib/modules/$(shell uname -r)/build</p><p>PWD :="text$(shell pwd)</p><p>all:</p>:<p>make -alignC $(KDIR) M=$(PWD) modules</p><p>clean:</p>: left;"<p>rm -f *.ko *.o *.mod.o *.mod *.symvers *.cmd *.mod.c *.order</p><p>endif</p>| '''SDA corresponds }</li><li><p>Then use the make command to 40pin'''compile the Hello kernel module, and the output of the compilation process is shown below:</p>{| styleclass="text-align: left;wikitable"| '''SCL corresponds to 40pin'''| style="textbackground-aligncolor:#ffffdc;width: left800px;"| '''dtbo corresponding configuration'''
|-
| style="text-align: left;"| <big><p>'''I2C2_M0If you compile the code you copy here, if you have any problems, go to the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html '''| style="text-align: left;"| official tool'''Pin 3] to download the source code and upload it to the Linux system of the development board for testing'''</p></big> <p>[[File:plus5-img416.png| stylecenter]]</p>|} {| class="text-align: left;wikitable"| '''Pin 5'''| style="text-alignwidth: left800px;"| '''i2c2-m0'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''I2C2_M4make'''</p>| style<p>make -C /lib/modules/5.10.110-rockchip-rk3588/build M="text-align/home/orangepi modules</p><p>make[1]: left;"| 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 'Pin /usr/src/linux-headers-5.10.110-rockchip-rk3588'''</p>| style="text-align: left;"| }</li><li><p>After compiling, the '''Pin 8hello.ko'''kernel module will be generated</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''i2c2-m4'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''I2C4_M3ls *.ko'''</p><p>hello.ko</p>| style="text-align: left;"| }</li><li><p>Use the '''Pin 22insmod'''| style="text-align: left;"| command to insert the '''Pin 32hello.ko'''kernel module into the kernel</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''i2c4-m3'''
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''I2C5_M3sudo insmod hello.ko'''</p>| style="text-align: left;"| }</li><li><p>Then use the '''Pin 27demsg'''| style="text-align: left;"| command to view the output of the '''Pin 28hello.ko'''kernel module. If you can see the output instructions below, the hello.ko kernel module is loaded correctly</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''i2c5-m3'''
|-
| style="text-align<p>orangepi@orangepi: left;"| '''I2C8_M2~$ '''dmesg | style="text-align: leftgrep &quot;Hello&quot;"| '''Pin 29'''</p>| style="text-align: left;"| '''Pin 7<p>[ 2871.893988] '''| style="textHello Orange Pi -align: left;"| '''i2c8-m2init'''</p>
|}
 
<ol start="3" style="list-style-type: decimal;">
<li><p>In the linux system, the I2C bus in the 40 pin is closed by default, and it needs to be opened manually before it can be used. The detailed steps are as follows:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First run '''orangepi-config''', normal users remember to add &gt; '''sudo''' permission</p>
<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314.png|382x176px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315.png|385x167px]]</p></li>
<li><p>Then use the arrow keys on the keyboard to navigate to the &gt; position shown in the figure below, and then use the space to &gt; select the I2C configuration you want to open</p>
<p>[[File:./images/media/image398.png|381x144px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image346.png|347x100px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image347.png|325x98px]]</p></li>
<li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the &gt; configuration take effect</p>
<p>[[File:./images/media/image319.png|254x112px]]</p></li></ol>
</li>
<li><p>After starting Use the linux system, first confirm that there is a device node corresponding to i2c under '''/devrmmod'''</p><p>orangepi@orangepi:~$ command to uninstall the '''ls /dev/i2c-*hello.ko'''</p></li><li><p>Then connect an i2c device to the i2c pin of the 40 pin connector, here we take the ds1307 RTC kernel module as an example</p><p>[[File{| class="wikitable" style="width:./images/media/image421.png800px;" |124x106px]]</p></li><li><p>Then use the '''i2cdetect -y''' command, if the address of the connected i2c device can be detected, it means that i2c can be recognized normally.</p><p>orangepi@orangepi:~$ '''sudo i2cdetect -y 2''' #i2c2 command</p>|<p>orangepi@orangepi:~$ '''sudo i2cdetect -y 4rmmod hello''' #i2c4 command</p><p>orangepi@orangepi:~$ '''sudo i2cdetect -y 5dmesg | grep &quot;Hello&quot;''' #i2c5 command</p><p>orangepi@orangepi:~$ '''sudo i2cdetect [ 2871.893988] Hello Orange Pi -y 8''' #i2c8 command</p></li><li><p>Then you can run the '''ds1307.py''' test program in the '''wiringOP-Python/examples''' file to read the time of RTCinit</p><p>'''/dev/i2c-x needs to be replaced with the serial number of the specific i2c device node[ 3173.800892] '''</p><p>root@orangepi:~/wiringOPHello Orange Pi -Python# '''cd examples'''</p><p>root@orangepi:~/wiringOP-Python/examples# '''python3 ds1307.py --device &quot;/dev/i2c-x&quot;exit'''</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</pli><p>^C</pol><p>exit</p></li></ol>
<span id="pinhow-uartto-testuse-10.1-inch-mipi-lcd-screen"></span> ==How to use 10.1 inch MIPI LCD screen == 40 pin UART test  <span id="inch-mipi-screen-assembly-method"></span>=== 10.1 -inch MIPI screen assembly method ===
<ol style="list-style-type: decimal;">
<li><p>As can be seen from First prepare the table below, the uarts available for Orange Pi 5 Plus are uart1, uart3, uart4, uart6, uart7 required accessories</p><ol style="list-style-type: lower-alpha;"><li><p>10.1 -inch MIPI LCD display+touch screen (this screen and uart8, a total of 6 sets of uart busesOPI5/OPI5B universal)</p><p>[[File:plus5-img417.png]]</p></li><li><p>Screen divert plate+31pin to 40pin line</p><div class="figure"> [[File:plus5-img418.png]] </div></li><li><p>30pin mipi line</p><div class="figure"> [[File:plus5-img419.png]] </imagesdiv></mediali><li><p>12pin touch screen row line</image389p><p>[[File:plus5-img420.png|575x137px]]</p></li></ol></li><li><p>The corresponding pins According to the figure below, the 12PIN touch screen row, 31PIN to 40PIN ducts, and 30pin MIPI cables get on the screen dial board. Pay attention to <span style="color:#FF0000">line of the 6 groups of UART buses in 40pin are shown in touch screen the following tableblue insulation face under</span>. If you get an error, it will cause no display or unable to touch</p><p>[[File:plus5-img421.png]]</p></li><li><p>Place the connected rotor connected to the puzzle on the MIPI LCD screen according to the figure below, and connect the MIPI LCD screen and the rotary board through 31PIN to 40Pin row</olp></li>
[[File:plus5-img422.png]]</ol><ol start="4" style="list-style-type: decimal;"><li><p>Then connect the touch screen and the rotor board through the 12PIN touch screen line, pay attention to the orientation of the insulating surface.</p><p>[[File:plus5-img423.png]]</p></li><li><p>Finally connect to the LCD interface of the development board through the 30PIN MIPI duct</p><p>[[File:plus5-img424.png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
| style="text-align: left;"| '''UART bus'''| <big><p>'''RX` corresponds to 40pinNote that the touch interface below is not used for the LCD MIPI screen. It is currently a spare interface and cannot be used'''</p></big>| style="text-align: left;"| '''TX corresponds to 40pin'''| style="text-align<p>[[File: left;"| '''dtbo corresponding configuration'''|plus5-img425.png| style="text-align: left;"| '''UART1_M1'''| '''Pin 27'''| style="text-align: left;"| '''Pin 28'''| style="text-align: left;"| '''uart1-m1'''|-| style="text-align: left;"| '''UART3_M1'''| '''Pin 18'''| style="text-align: left;"| '''Pin 16'''| style="text-align: left;"| '''uart3-m1'''|-| style="text-align: left;"| '''UART4_M2'''| '''Pin 19'''| style="text-align: left;"| '''Pin 23'''| style="text-align: left;"| '''uart4-m2'''|-| style="text-align: left;"| '''UART6_M1'''| '''Pin 10'''| style="text-align: left;"| '''Pin 8'''| style="text-align: left;"| '''uart6-m1'''|-| style="text-align: left;"| '''UART7_M2'''| '''Pin 24'''| style="text-align: left;"| '''Pin 26'''| style="text-align: left;"| '''uart7-m2'''|-| style="text-align: left;"| '''UART8_M1'''| '''Pin 40'''| style="text-align: left;"| '''Pin 35'''| style="text-align: left;"| '''uart8-m1'''center]]</p>
|}
</li></ol>
<ol startspan id="3open-the-10.1--inch-mipi-lcd-screen-configuration" ></span> === Open the 10.1 -inch MIPI LCD screen configuration === <ol style="list-style-type: decimal;"><li><p>In the linux system, The Linux image defaults to the UART in configuration of the 40 pins is closed mipi lcd screen by default. If you need to use the mipi lcd screen, and you need to open it needs to be opened manually before it can be used. </p></li><li><p>The position of the development board MIPI LCD screen interface is shown below:</p><p>[[File:plus5-img426.png]]</p></li><li><p>The detailed steps of opening the MIPI LCD configuration are as follows:shown below:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First run '''orangepithe orangePi-confi'''g, normal config. Ordinary users remember to add &gt; '''sudo''' permissionSudo permissions</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li><li><p>Then select choose '''System'''</p><p>[[File:./images/media/image314plus5-img234.png|404x186px]]</p></li><li><p>Then select choos '''Hardware'''</p><p>[[File:./images/media/image315plus5-img235.png|403x175px]]</p></li><li><p>Then use the arrow keys on the keyboard orientation to navigate to the &gt; position shown in the figure below'''opi5plus-lcd''', and then use the '''space''' &gt; to select the UART configuration you want to open</p><p>[[File:./images/media/image400plus5-img427.png|350x124px]]</p></li><li><p>Then select '''&lt;Save&gt;''' to save</p><p>[[File:./images/media/image346plus5-img428.png|334x96px]]</p></li><li><p>Then select sele '''&lt;Back&gt;'''</p><p>[[File:./images/media/image347plus5-img429.png|336x102px]]</p></li><li><p>Then select the '''&lt;Reboot&gt;''' to restart the system to make the &gt; configuration take effecteffective</p><p>[[File:./images/media/image319plus5-img430.png|235x103px]]</p></li></ol>
</li>
<li><p>After entering starting, you can see the display of the linux system, first confirm whether there LCD screen as shown below (the default is a device node corresponding to uart under /devvertical screen):</p><p/li>orangepi@orangepi [[File:~$ '''ls /dev/ttyS*'''plus5-img431.png]]</p></liol><li><p>Then start to test span id="the uart interface, first use the DuPont line to short the rx and tx pins -server-version-of -the uart interface to be tested-image-rotation-display-direction-method"></pspan=== The server version of the image rotation display direction method === </liol style="list-style-type: decimal;"><li><p>Then use the Add '''serialTest.py<span class="mark">extrargs = fbcon = rotate: The direction to rotate</span>''' program is in '''wiringOP-Python/examplesboot/orangepiEnv.txt''' to test . This configuration can set the direction of the loopback function LINUX system of the serial port. As shown belowserver version, if you can see the print belowAmong them, it means the serial port communication is normal.</p><p>'''/dev/ttySX needs to be replaced with the serial number of the specific uart device node.fbcon=rotate:'''The following numbers can be set to be set to</p><p>root@orangepi:~/wiringOPol style="list-Python/examples# '''python3 serialTest.py style-type: lower-device &quotalpha;/dev/ttySX&quot;'''"></pli><p>Out: 0: -&gt; 0Normal screen (default vertical screen)</p></li><li><p>Out: 1: -&gt; 1Turn 90 degrees clock</p></li><li><p>Out: 2: -&gt; 2Flip 180 degrees</p></li><li><p>Out: 3: -&gt; 3Turn to 270 degrees clock</p>{| class="wikitable" style="width:800px;" |-|<p>Outorangepi@orangepi: 4:^C~$ '''sudo vim /boot/orangepiEnv.txt'''</p><p>exitoverlays=opi5plus-lcd</p><p>'''<span style="color:#FF0000">extraargs=cma=128M fbcon=rotate:3</lispan>'''</olp>|}
<span id{| class="wikitable" style="hardwarebackground-watchdogcolor:#ffffdc;width:800px;" |-test"| <big><p>'''Note that if/span>boot/orangepienv.txt is configured in the default default exiArgs = CMA =128M, fbcon = Hardware watchdog test rotate: 3 The configuration can be added to the extensraargs =cma =128m (need to be separated by spaces).'''</p></big>|}</li></ol></li><li><p>Then '''<span style="color:#FF0000">restart</span>''' the Linux system to see that the direction of the LCD screen display has been rotated</p></li></ol>
The watchdog_test program is pre<span id="the-installed in the linux system released by Orange Pi, which can be tested directly.desktop-image-rotation-display-and-touch-direction-method"></span>
=== The desktop image rotation display and touch direction method to run the watchdog_test program is as follows:===
<ol style="list-style-type: decimal;">
<li><p>First open '''Display''' settings in the Linux system</p>
<p>[[File:plus5-img432.png]]</p></li>
<li><p>Then select the direction you want to rotate in the '''Rotation'''</p>
<ol style="list-style-type: lower-alpha;">
<li><p>The second parameter 10 indicates '''None''': Not rotate</p></li><li><p>'''Left''': Rotate 90 degrees to the counting time of the watchdog. If the dog left</p></li><li><p>'''Inverted''': Flipting up and down is not fed within this time, the system will restartequivalent to rotating 180 &gt; degrees</p></li><li><p>We can feed the dog by pressing any key on the keyboard (except ESC). After feeding the dog, the program will print a line of keep alive '''Right''': Rotate 90 degrees to indicate that the dog is fed successfullyright</p><p>orangepi@orangepi[[File:~$ plus5-img433.png]]</p></li></ol></li><li><p>Then click '''sudo watchdog_test 10Apply'''</p><p>open success[[File:plus5-img434.png]]</p></li><li><p>options is 33152,identity is sunxi-wdtThen click '''Keep this configuration'''</p><p>put_usr return,if 0,success[[File:0plus5-img435.png]]</p></li><li><p>The old reset At this time , the screen display has been rotated, and then the '''Display''' program is: 16turned off</p></li><li><p>return ENOTTYThe above steps will only select the display direction, and it will not rotate the direction of touch. Use set_lcd_rotate.sh script to rotate the direction of touch. After this script is set,if -1it will be automatically restarted,success:0and then you can test whether the touch can be used normally</p><ol style="list-style-type: lower-alpha;"><li><p>return ENOTTY,if -1,success'''None''':0Not rotate</p>{| class="wikitable" style="width:800px;" |-|<p>put_user return,if 0,successorangepi@orangepi:0~$ '''set_lcd_rotate.sh none'''</p>|}</li><li><p>put_usr return,if 0,success'''Left''':0Rotate 90 degrees to the left</p>{| class="wikitable" style="width:800px;" |-|<p>keep aliveorangepi@orangepi:~$ '''set_lcd_rotate.sh left'''</p>|}</li><li><p>keep alive'''Inverted''': Flipting up and down, equivalent to rotating 180 &gt; degrees</p>{| class="wikitable" style="width:800px;" |-|<p>keep aliveorangepi@orangepi:~$ '''set_lcd_rotate.sh inverted'''</p>|}</li><li><p>'''Right''': Rotate 90 degrees to the right</olp>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''set_lcd_rotate.sh right'''</p>|}
<span id{| class="wikitable" style="checkbackground-thecolor:#ffffdc;width:800px;" |-serial-number-of-rk3588-chip"| <big></spanp>== Check the serial number of RK3588 chip == The command to view the serial number of the RK3588 chip is as follows'''set_lcd_rotate. sh The serial number of each chip is different, so the serial number can be used to distinguish multiple development boards.script mainly does four things:'''</p>
orangepi@orangepi:~$ '''cat_serial.sh'''
Serial <ol style="list-style-type: decimal;"><li><p>'''1404a7682e86830cRotate the direction of Framebuffer displayed'''</p></li><li><p>'''The direction of rotating touch'''</p></li><li><p>'''Close the boot LOGO'''</p></li><li><p>'''Restart the system'''</p></li></ol>
<span id="how-to-install-docker"></span>
== How to install Docker ==
<ol style="list-style-type: decimal;"><li><p>'''The linux image provided by Orange Pi has pre-installed Docker, but direction of the Docker service rotation touch is not enabled achieved by defaultadding </pspan class="mark">Option Tr</lispan><li><p>Use the '''enable_dockeransformationMatrix&quot;&quot;x x x x x x x x x&quot;in /usr/share/X11/xorg.conf.d/40-libinput.conf.sh''' script to enable the docker serviceAmong them, and then you can start using the docker command, and the docker service will be automatically started when the system &quot;x x x x x x x x x&quot; is started next time</p><p>orangepi@orangepi:~$ '''enable_dockerdifferent in different directions.sh'''</p></libig>|}</li><p>Then you can use the following command to test docker, if you can run hello-world, it means that docker can be used normally</pol><p/li>orangepi@orangepi:~$ '''docker run hello-world'''</pol><p>Unable to find image 'hello!-- --world:latest' locally</p><p>latestol start="7" style="list-style-type: Pulling from library/hello-world</pdecimal;"><pli>256ab8fe8778: Pull complete</p><p>Digest: sha256:7f0a9f93b4aa3022c3a4c147a449ef11e0941a1fd0bf4a8e6c9408b2600777c5Touch rotation reference materials</p><p>Status{| class="wikitable" style="width: Downloaded newer image for hello800px;" |-world:latest</p><p>|'''Hello from Docker!'''<https://p><p>'''This message shows that your installation appears to be working correctlywiki.ubuntu.com/X/InputCoordinateTransformation'''|}</p><pli>'''.….'''</pol> </lispan id="instructions-for-opening-the-logo-use-instructions"></olspan>
<span id="how-to-download-and-install-arm64-version-balenaetcher"></span>== How to download and install arm64 version balenaEtcher Instructions for opening the logo use instructions ==
<ol style="list-style-type: decimal;">
<li><p>The download address default LOGO default is displayed in the desktop version of balenaEtcher arm64 version is:the system</p><ol style="list-style-type: lower-alpha;"/li><li><p>The download address of Set the a'''bootlogo''' variable to '''false''' in '''/boot/orangepiEnv.deb installation package is as &gt; follows, it needs txt''' to turn off the switch to be installed before it can be usedthe LOGO</p>{| class="wikitable" style="width:800px;" |-|<p>[httpsorangepi@orangepi:~$ '''sudo vim /boot/githuborangepiEnv.comtxt'''</Itai-Nelkenp><p>verbosity=1</BalenaEtcher-armp><p>'''<span style="color:#FF0000">bootlogo=false</releasesspan>'''</downloadp>|}</v1.7.9/balena-etcher-electron_1.7.9+5945ab1f_arm64.deb li><li><p>Set the '''bootlogo''' variable to '''true''' in '''https:/boot/githuborangepiEnv.comtxt''' to turn the opening and the logo</Itaip>{| class="wikitable" style="width:800px;" |-Nelken|<p>orangepi@orangepi:~$ '''sudo vim /BalenaEtcher-armboot/releasesorangepiEnv.txt'''</downloadp><p>verbosity=1</v1.7.9p><p>'''<span style="color:#FF0000">bootlogo=true</balena-etcher-electron_1.7.9+5945ab1f_arm64.debspan>''']</p>|}</li><li><p>The download address position of the AppImage version that does not need &gt; to be installed is as follows: b. The download address of LOGO picture in the &gt; AppImage version that does not need to be installed Linux system is as &gt; follows:</p>{| class="wikitable" style="width:800px;" |-|<p>[https://github.com'''/Itai-Nelkenusr/BalenaEtcher-armshare/releasesplymouth/downloadthemes/v1.7.9orangepi/balenaEtcher-1.7.9+5945ab1f-arm64watermark.AppImage png'''https:</p>|}</github.com/Itaili><li><p>After replacing the start -Nelkenup logo picture, you need to run the command to take effect</BalenaEtcherp>{| class="wikitable" style="width:800px;" |-arm/releases/download/v1.7.9/balenaEtcher|<p>orangepi@orangepi:~$ '''sudo update-1.7.9+5945ab1finitramfs -arm64.AppImageu''']</p></li></ol>|}
</li></ol>
<div classspan id="figuretest-methods-for-ov13850-and-ov13855-mipi-camera"></span> == Test methods for OV13850 and OV13855 MIPI camera ==
[[File:At present, the development board supports two MIPI cameras, OV13850 and OV13855./images/media/image422.png|527x211px|IMG_256]]The specific pictures are shown below:
</div>
<ol start="2" style="list-style-type: decimal;">
<li><p>How to install and use deb version balenaEtcher:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>The deb version of balenaEtcher installation command is as &gt; follows:OV13850 camera at 13 million MIPI interface</p><p>orangepi@orangepi[[File:~$ '''sudo apt install plus5-y \'''img23.png]]</p></li><li><p>'''--fix-broken .13 million MIPI interface OV13855 camera</balenap><p>[[File:plus5-etcher-electron_1img24.7.9+5945ab1f_arm64.deb'''png]]</p></li><li><p>After The rotary board used by OV13850 and OV13855 cameras is the same as the FPC cable, but the two cameras are different from the position on the deb version rotary board. The FPC lines are shown in the figure below. Please note that the FPC line is directed. It is marked that the '''TO MB''' must be inserted into the camera interface of balenaEtcher the development board. It is installed, it can marked that the end of '''TO CAMERA''' needs to be &gt; opened in inserted on the Applicationcamera transfer board.</p><div class="figure"/li>
[[File:./images/media/image149plus5-img436.png|507x249px|IMG_256]]</ol>There are a total of 3 cameras on the camera to connect to the board, which can only be used one at the same time, as shown in the figure below, among which:
<ol style="list-style-type: lower-alpha;"><li><p>'''No. 1 connect with OV13850 camera'''</divp></li><li><p>The '''No. 2 interface after balenaEtcher is opened is as follows:OV13855 camera'''</p></li><li></olp>The No. 3 interface is not used, just ignore it.</lip></olli>
[[File:plus5-img437-1.png]]<div class="figure"/ol>Orange Pi 5 Plus development board has a total of 1 camera interface, which is shown below:
[[File:./images/media/image423plus5-img438.png|429x263px|IMG_256]]
</div><ol start="3" style="list-style-type: decimal;"><li><p>How to use the AppImage version The method of balenaEtcher:</p><ol style="list-style-type: lower-alpha;"><li><p>First add permissions to balenaEtcher</p><p>orangepi@orangepi:~/Desktop$ '''chmod +x balenaEtcher-1.7.9+5945ab1f-arm64.AppImage'''</p></li><li><p>Then select the AppImage version balenaEtcher, click camera inserted in the right &gt; mouse button, and then click Execute to open balenaEtcher</p><p>[[File:./images/media/image424.png|145x118px]]</p></li></ol></li></ol>development board interface is shown below:
<span id="the[[File:plus5-installation-method-of-the-pagoda-linux-panel"></span>== The installation method of the pagoda linux panel ==img439.png]]
'''Pagoda Linux panel is a server management software that improves operation and maintenance efficiency. It supports more than 100 server management functions such as one -click LAMP/LNMP/cluster/monitoring/website/FTP/database/Java (extracted from After connecting the''' '''official website of camera to the pagoda)'''development board, we can use the following method to test the camera:
<ol style="list-style-type: decimal;">
<li><p>The order of compatibility recommendation of the pagoda Linux system is</p>
<p>'''Debian11''' '''&gt; Ubuntu 22.04'''</p></li>
<li><p>Then enter the following command in the Linux system to start the installation of the pagoda</p>
<p>orangepi@orangepi:~$ '''sudo install_bt_panel.sh'''</p></li>
<li><p>Then the pagoda installation program reminds whether to install the '''<span class="mark">BT-Panel</span>''' to the'''<span class="mark">/www</span>''' folder, and enter Y at this time</p>
<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>
<p>Do you want to install Bt-Panel to the /www directory now?(y/n): '''y'''</p></li>
<li><p>Then what to do is to wait patiently. When you see the printing information below the terminal output, it means that the pagoda has been installed. The entire installation process takes about 9 minutes. There may be some differences according to the difference in network speed</p>
<p>[[File:./images/media/image425.png|363x237px]]</p></li>
<li><p>At this time, enter the '''panel address''' displayed above in the browser to open the login interface of the pagoda Linux panel, and then enter the '''username''' and '''password''' displayed above in the corresponding position to log in to the pagoda.</p>
<p>[[File:./images/media/image426.png|576x241px]]</p></li>
<li><p>After successfully logging in to the pagoda, the following welcome interface will pop up. First, please take the intermediate user notice to read to the bottom, and then you can choose &quot;I have agreed and read&quot; User Agreement &quot;, and then click&quot; Enter the panel &quot; You can enter the pagoda</p>
<p>[[File:./images/media/image427.png|576x213px]]</p></li>
<li><p>After entering the pagoda, you will first prompt that you need to bind the account of the pagoda official website. If you do n’t have an account, you can go to the official website of the pagoda '''(https://www.bt.cn)''' to register one</p>
<p>[[File:./images/media/image428.png|576x218px]]</p></li>
<li><p>The final display interface is shown in the figure below. You can intuitively see some status information of the development board Linux system, such as load status, CPU usage, memory usage, and storage space usage</p>
<p>[[File:./images/media/image429.png|574x283px]]</p></li>
<li><p>Test the SSH terminal login of the pagoda</p>
<ol style="list-style-type: lower-alpha;">
<li><p>After opening First run the SSH terminal of '''orangepi-config'''. Ordinary users remember to add '''sudo''' permissions</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li><li><p>Then select '''System'''</p><p>[[File:plus5-img234.png]]</p></li><li><p>Then choose '''Hardware'''</p><p>[[File:plus5-img235.png]]</p></li><li><p>Then use the keyboard to locate the position shown in the pagodafigure below, and then use the camera you will first &gt; prompt that you need want to enter open in the password of the development &gt; board systemspace. At this timeAmong them, '''opi5plus-ov13850''' means using an OV13850 camera, enter '''orangepiopi5plus-ov13855''' in indicates the password use of OV13855 camera.</p><p>[[File:plus5-img440.png]]</p></li><li><p>Then choose '''&gtlt; box (the default password, if you have modification, please Save&gt; fill in the modified one).'''</p><p>[[File:plus5-img441.png]]</imagesp></mediali><li><p>Then choose '''&lt;Back&gt;'''</image430p><p>[[File:plus5-img442.png|475x330px]]</p></li><li><p>The display after successful login is shown in Then select the'''&lt;Reboot&gt;''' restart system to make the figure belowconfiguration effective</p><p>[[File:./images/media/image431plus5-img239.png|575x206px]]</p></li><li><p>Then open a terminal in the desktop system and run the script below</olp>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''test_camera.sh'''</p>|}
</li>
<li><p>Software such as Apache, MySQL, and PHP Then you can be installed in see the software store preview of the pagoda. You can also deploy various applications in one click. Please explore it yourself</p><p>[[File:./images/media/image432.png|575x279px]]</p></li><li><p>Pagoda command line tool testcamera</p>
<div class="figure">
[[File:./images/media/image433plus5-img443.png|388x343px|815iring_001]]
</div></li><li><p>For more functions of the pagoda, please refer to the following information to explore by yourself</p><p>manual:'''http://docs.bt.cn'''</p><p>Forum address:'''https://www.bt.cn/bbs'''</p><p>GitHub Link:'''https://github.com/aaPanel/BaoTa'''</p></li></ol>
<span id="sectiontest-33method-for-infrared-receiving"></span>== ==
<ol start="13" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li><ol styleTest method for infrared receiving =="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li></li><li></li><li></li></ol>
<span id="set-There is an infrared receiver on the-chinese-environment-and-install-chinese-input-method"></span>== Set development board, which is connected to the Chinese environment and install Chinese input method == '''Note that before installing the Chinese input method, please make sure that the Linux system used in the development board is the desktop version system。PWM15_IR_M1''' <span id="debian-11-system-installation-pin. The method"></span>=== Debian 11 system installation method ===of checking the key value received by infrared is shown below:
<ol style="list-style-type: decimal;">
<li><p>First set run the default '''localeevtest''' as Chinese</p><ol style="list-style-type: lower-alpha;"><li><p>Enter the command below to start configured '''locale'''</p><p>orangepi@orangepi:~$ '''sudo dpkg-reconfigure locales'''</p></li><li><p>Then select '''zh_CN.UTF-8 UTF-8''' in the pop-up interface &gt; (through the upper command line, and lower direction keys on then select the keyboard device serial number corresponding to &gt; move up and down, select it through the space key, and finally &gt; move the cursor to '''&lt;OK&gt;febf0030.pwm''' through the Tab key, and then &gt; press Enter key.)</p><p>[[File{| class="wikitable" style="width:./images/media/image434.png800px;" |575x296px]]</p></li><li><p>Then set the default '''locale''' as '''zh_CN.UTF-8'''</p><p>[[File:./images/media/image435.png|575x160px]]</p></li><li><p>After exiting the interface,'''locale''' will be set. The output &gt; displayed by the command line is shown below</p><p>orangepi@orangepi:~$ '''sudo''' '''dpkg-reconfigure localesevtest'''</p><p>Generating locales (this might take a while)...<No device specified, trying to scan all of /dev/p><p>en_US.UTF-8... done<input/p><p>zh_CN.UTF-8... doneevent*</p><p>Generation completeNot running as root, no devices may be available.</p></li></ol></li><li><p>Then open '''Input Method'''</p><p>[[FileAvailable devices:./images/media/image436.png|575x361px]]</p></li><li><p>Then choose '''OK'''</p><pspan style="color:#FF0000">[[File:./imagesdev/mediainput/image437event0: febf0030.png|295x212px]]</p>pwm</li><li><pspan>Then choose '''Yes'''</p><p>[[File:./imagesdev/mediainput/image438.png|303x192px]]event1: rk805 pwrkey</p></li><li><p>Then choose '''fcitx'''</p><p>[[File:.dev/imagesinput/media/image439.png|307x220px]]</p></li><li><p>Then choose '''OK'''event2: rockchip,dp0 rockchip,dp0</p><p>[[File:./imagesdev/mediainput/image440.png|305x216px]]event3: rockchip-hdmi0 rockchip-hdmi0</p></li><li><p>'''Then restart the Linux system to make the configuration effective'''</p><dev/li><li><p>Then Open '''Fcitx configuration'''<input/p><p>[[Fileevent4:./images/media/image441.png|575x376px]]rockchip-hdmi1 rockchip-hdmi1</p></li><li><p>Then click the “+” of the position shown in the figure below</p><p>[[File:.dev/imagesinput/media/image442.png|280x187px]]</p></li><li><p>Then search '''Google Pinyin''' and click '''OK'''event5: headset-keys</p><p>[[File:./imagesdev/mediainput/image443.png|291x196px]]event6: rockchip,es8388 Headset</p></li><li><p>Then put '''Google Pinyin''' to the forefront</p><p>[[File:./imagesdev/mediainput/image444.png|299x202px]]event7: adc-keys</p><p>[[File:./imagesdev/mediainput/image445.png|300x202px]]</p></li><li><p>Then open the '''Geany''' Editor and test the Chinese input method.event8: SONiX USB Keyboard</p><p>[[File:./images/media/image446.png|349x212px]]</p><dev/li><li><p>Chinese input method test is shown below</p><p>[[Fileevent9:./images/media/image447.png|575x325px]]SONiX USB Keyboard Consumer Control</p></li><li><p>You can switch between Chinese and English input methods through '''Ctrl+Space''' shortcut</p><dev/li><li><p>If the entire system is required as Chinese, the variables in'''input/etc/default/locale''' can be set to '''zh_CN.UTF-8'''event10: SONiX USB Keyboard System Control</p><p>orangepi@orangepi:~$ '''sudo vim /etcdev/defaultinput/locale'''event11: PixArt USB Optical Mouse</p><p># File generated by updateSelect the device event number [0-locale</p><p>LC_MESSAGES='''zh_CN.UTF-811]: '''</p><p>LANGspan style='''zh_CN.UTF-8'''</p"color:#FF0000"><p>LANGUAGE='''zh_CN0 #Select the serial number corresponding to Febf0030.UTF-8'''pwm here</p></li><li><pspan>Then '''restart the system''' to see the system display as Chinese</p></li></ol>
<span id="section-34"></span>
== [[File:./images/media/image448.png|576x356px]] ==
<span id="section-35"p>Input driver version is 1.0.1</spanp>=== ===<p>Input device ID: bus 0x19 vendor 0x524b product 0x6 version 0x100</p><p>Input device name: &quot;febf0030.pwm&quot;</p><p>Supported events:</p>:<p>Event type 0 (EV_SYN)</p>:<ol start="17" style="list-style-p>Event type1 (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>:: decimal;"<p>Event code 114 (KEY_VOLUMEDOWN)</p>::<p>Event code 115 (KEY_VOLUMEUP)</p>::<p>Event code 116 (KEY_POWER)</p>::<lip>Event code 139 (KEY_MENU)<ol style="list-style-type/p>:: lower-alpha;"<p>Event code 143 (KEY_WAKEUP)</p>::<lip>Event code 158 (KEY_BACK)</lip>::<lip>Event code 217 (KEY_SEARCH)</lip>::<lip>Event code 388 (KEY_TEXT)</lip><lip>Properties:</lip><p>Testing ... (interrupt to exit)</olp>|}
</li>
<li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></lip>Then need to prepare an infrared remote control shown in the figure below</olp>
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''<span idstyle="ubuntu-20.04-system-installation-methodcolor:#FF0000">Note: The Linux system provided by the Orange School only supports the remote control provided by the Orange School. The remote control of the TV or air conditioner cannot be used.</span>'''</p></big>|}<div class=== ubuntu 20.04 system installation method ==="figure">
<ol style="list-style-type: decimal;"><li><p>First open '''Language Support'''</p><p>[[File:./images/media/image449.png|575x351px]]</p></li><li><p>Then find the '''<span class="mark">Chinese (China)</span>''' option</p><p>[[File:./images/media/image450.png|318x311px]]</p></li><li><p>Then use the left mouse button to select '''<span class="mark">Chinese (China)</span>''' and hold it down, and then drag it up to the beginning. The display after dragging is shown in the figure below:</p><p>[[File:./images/media/image451plus5-img444.png|324x320px]]</p></li></ol>
'''Note that this step is not very easy to drag, please try a few more times。''' <ol start="4" style="list-style-type: decimal;"/div></li><li><p>Then select press the button on the infrared receiver on the '''<span class="mark">Apply System-Wide</span>''' development board to apply press the button on the remote control. The position of the Chinese settings to infrared receiver on the development board is as shown in the entire systemfigure below:</p><p>[[File:./images/media/image452plus5-img445.png|321x316px]]</p></li><li><p>Then set the you can see that '''Keyboard input method system''' as '''fcitxevtest'''will print the received key value</p>{| class="wikitable" style="width:800px;" |-|<p>[[File:./images/media/image453.png|327x320px]]....</p>:<p>Event code 217 (KEY_SEARCH)</lip>:<lip>Event code 388 (KEY_TEXT)</p>'''Then restart the linux system to make the configuration effective'''</p>Properties:</lip><lip>Testing ... (interrupt to exit)</p><p>After re -entering the systemEvent: time 1684152321.834907, type 1 (EV_KEY), code 2 (KEY_1), please choose '''value 1<span class="mark"/p>not to ask me again</spanp>''' at the interface belowEvent: time 1684152321.834907, and then determine whether the standard folder should be updated in Chinese according to your preference-------------- SYN_REPORT ------------</p><p>[[FileEvent:time 1684152322.017512, type 1 (EV_KEY), code 2 (KEY_1), value 0</images/media/image454p><p>Event: time 1684152324.png|303x247px]]630961, -------------- SYN_REPORT ------------</p><p>Event: time 1684152326.482359, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 1</lip><li><p>Then you can see that the desktop is displayed as ChineseEvent: time 1684152326.482359, -------------- SYN_REPORT ------------</p><p>[[FileEvent:time 1684152326.667633, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 0</images/media/image455.png|575x383px]]p></p>Event: time 1684152328.427632, -------------- SYN_REPORT ------------</lip><li><p>Then we can open the '''Geany''' test in the Chinese input methodEvent: time 1684152330. The way to open the way is shown in the figure below761986, type 1 (EV_KEY), code 116 (KEY_POWER), value 1</p><p>[[FileEvent:time 1684152330.761986, -------------- SYN_REPORT ------------</images/media/image456.png|576x292px]]p></p>Event: time 1684152330.944243, type 1 (EV_KEY), code 116 (KEY_POWER), value 0</lip><li><p>After opening '''Geany''', the default is an English input methodEvent: time 1684152330. We can switch into Chinese input method through the '''Ctrl+Space''' shortcut keys944243, and then we can enter Chinese-------------- SYN_REPORT ------------</p>|}</li></ol>
<span id="sectionthe-36method-to-use-rtc"></span>=== [[File:./images/media/image457.png|575x308px]] ===
<ol start="11" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="ubuntu-22.04-installation-method"></span>=== Ubuntu 22.04 installation The method =to use RTC ==
<ol style="list-style-type: decimal;">
<li><p>First open '''Language Support'''</p><p>[[File:./images/media/image449.png|575x351px]]</p></li><li><p>Then find A RTC battery interface is reserved on the '''<span class="mark">Chinese (China)</span>''' option</p><p>[[File:./images/media/image458.png|249x242px]]</p></li><li><p>Then please use the mouse to select '''<span class="mark">Chinese (China)</span>''' and hold it downdevelopment board, and then drag it up to the beginning. The display after the dragging which is shown in the figure below:below:</p><p>[[File:./images/media/image459.png|267x262px]]</p></li></ol> '''Note that this step is not very easy to drag, please try a few more times。''' <ol start="4" style="listplus5-style-type: decimal;"><li><p>Then select the '''Apply System-Wide''' to apply the Chinese settings to the entire system</p><p>[[File:./images/media/image460img28.png|287x282px]]</p></li><li><p>'''Then restart the linux system The RTC battery that needs to make the configuration effective'''</p></li><li><p>After re-entering the system, please choose '''<span class="mark">not to ask me again</span>''' at the interface below, and then determine whether the standard folder should be updated to Chinese according to your preference</p><p>[[File:./images/media/image454.png|303x247px]]</p></li><li><p>Then you can see that the desktop purchased is displayed as Chinese</p><p>[[File:shown below./images/media/image455.png|575x383px]]</p></li><li><p>Then open the Fcitx5 configuration program</p><p>[[File:./images/media/image461.png|575x349px]]</p></li><li><p>Then choose to use Pinyin input method</p><p>[[File:./images/media/image462.png|338x267px]]</p></li><li><p>The interface after selecting is shown below2pin, then click OK1.25mm spacing</p><p>[[File:./images/media/image463plus5-img27.png|366x290px]]</p></li><li><p>Then we can open the '''Geany''' to test Chinese input method.The way to open is shown in the figure below</p><p>[[File:./images/media/image456.png|576x292px]]</p></li><li><p>After opening '''Geany''', the default is an English input method. We can switch into Chinese input method through the '''Ctrl+Space''' shortcut keys, and then we can enter Chinese</p><p>[[File:./images/media/image464.png|434x308px]]</p></li></ol> <span id="how-to-remotely-log-in-to-the-linux-system-desktop-method"></span>== How to remotely log in to the Linux system desktop method == '''Ubuntu Gnome Wayland''' '''image''' '''does not support nomachine and VNC described here to remotely log in to the desktop。''' <span id="use-nomachine-remote-login"></span>=== Use NoMachine remote login === '''Make sure the Ubuntu or Debian system installed RTC chip used on the development board is a''' '''<span class="mark">desktop version</span>Hym8563TS. In addition, nomachine also provides detailed documents. It is strongly recommended to read this document to be familiar with This chip has the use of nomachine. The document links are shown below:''' '''https://knowledgebase.nomachine.com/DT10R00166''' '''Nomachine supports Windows, Mac, Linux, iOS, and Android platforms, so we can remotely log in to control Orange PI development boards through Nomachine on multiple devices. The following demonstrates the Linux system desktop of the Orange PI development board through Nomachine in Windows. For installation methods for other platforms, please refer to the official documentation of Nomachine。''' '''Before operation, please ensure that the Windows computer and the development board are in the same local area network, and can log in to the Ubuntu or Debian system that can log in to the development board normally''' <ol style="list-style-type: decimal;"><li><p>First download the NoMachine software Linux '''arm64''' DEB version of the installation package, and then install it in the Linux system of the development board.characteristics:</p>
<ol style="list-style-type: lower-alpha;">
<li>Since RK3588 is a SOC of <p>Wide work voltage range:1.0~5.5v</p></li><li><p>Low dormant current:Typical value 0.25μA(VDD =3.0V, TA =25°C)</p></li></ol></li><li><p>After connecting the RTC battery on the ARMV8 architecturedevelopment board, use the following method to test whether the RTC has been working normally:</p><ol style="list-style-type: lower-alpha;"><li><p>First turn on the system we , then record the current time of the &gt; system</p></li><li><p>Then use is Ubuntu or Debianthe Poweroff command to turn off the system normally</p></li><li><p>Then unplug the power supply to ensure that the development &gt; board does not access the network cable and wireless WiFi, so and &gt; wait a few minutes</p></li><li><p>Then start the system again. If you need to download '''NoMachine see the time walk forward &gt; for ARM ARMv8 DEB''' installation package here. The download a few minutes after entering the system, it means that the &gt; link is shown below:RTC module and the battery work normally</p></li></ol></li><li><p>See the command of the RTC information through the ProcFS interface of the Linux system</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''cat /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><p>alrm_date : 2023-05-23</p><p>alarm_IRQ : no</p><p>alrm_pending : no</p><p>update IRQ enabled : no</p><p>periodic IRQ enabled : no</p><p>periodic IRQ frequency : 1</p><p>max user IRQ frequency : 64</p><p>24hr : yes</p>|}</li></ol> <span id="how-to-use-the-cooling-pwm-fan"></span>
'''Note that this download link may change, please recognize == How to use the deb package of the Armv8/Arm64 version.'''cooling PWM fan ==
<ol style="list-style-type: decimal;"><li><p>The development board is used for interfaces that connect the heat sink fan. The interface specifications are '''2pin 1.25mm''' spacing, '''<span class="mark">5V voltage driver</span>''', and the position of the fan interface is shown in the figure below:</p><p>[[File:plus5-img19.png]]</p></li><li><p>The fan on the development board can adjust the speed and switch through PWM, and the PWM pins used are '''PWM3_IR_M1'''</p></li><li><p>The Linux system uses the [https://downloadsgithub.nomachinecom/orangepi-xunlong/linux-orangepi/blob/orange-pi-5.com10-rk3588/drivers/hwmon/downloadpwm-fan.c '''pwm-fan'''] driver to control the fan by default. The DTS configuration used is shown below:</?idp>{| class="wikitable" style=118&amp"width:800px;distro=ARM" |-|<p>'''orange-pi-5.10-rk3588/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts'''</p>
[[File:./images/media/image465.png|575x227px]]
::<ol start="2" style="list-style-typep>fan: lowerpwm-alpha;"fan {</p><li>::::<p>In addition, you can also download the installation package of compatible = &quot;pwm-fan&gtquot;; '''NoMachine''' in the '''official tools'''</p>::::<p>[[File:./images/media/image466.png|70x86px]]#cooling-cells = &lt;2&gt;;</p>::::<p>First Enter the '''<span classpwms ="mark">remote login software-Nomachine</span>''' Folder&lt;&amp;pwm3 0 50000 0&gt;;</p>::::<p>[[File:./images/media/image467.png|256x46px]]cooling-levels = &lt;0 50 100 150 200 255&gt;;</p>::::<p>Then download the arm64 version of the deb installation packagerockchip,temp-trips = &lt;</p>::::::<p>[[File:./images/media/image468.png|180x109px]]50000 1</p></li>::::::<lip>55000 2</p>Then upload the downloaded '''nomachine_x.x.x_x_arm64.deb''' to the &gt; Linux system of the development board::::::</p>60000 3</lip><li>::::::<p>Then use the following command to install '''NoMachine''' in the Linux &gt; system in the development board65000 4</p>::::::<p>orangepi@orangepi:~$ '''sudo dpkg -i nomachine_x.x.x_x_arm64_arm64.deb'''70000 5</p>::::</lip>&gt;;</olp>
<!-- -->
<ol start="2" style="list-style-type: decimal;">
<li>Then download the NoMachine software Windows version of the installation package, the download address is shown below</li></ol>
::::<p>status = &quot;okay&quot;;</p>::<p>};</p>|}<p>Among it:</p><ol style="list-style-type: lower-alpha;"><li><p>'''Note that this download link may changepwms = &lt;&amp;pwm3 0 50000 0&gt;''':The PWM of the control fan is PWM3.</p></li><li><p>'''cooling-levels = &lt;0 50 100 150 200 255&gt;''':It is used to configure the gear of the speed (PWM duty cycle). The number and size of the gear can be defined by itself. Here are 6 gears. The range of the speed is 0-255.</p></li><li><p>'''rockchip,temp-trips''':It is used to configure the corresponding relationship between the CPU temperature and the fan speed gear. It can be adjusted according to actual needs. The above configuration 50 degrees corresponding gear 1, 70 degrees to the corresponding gear 5.</p>
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''https://downloadsIt is normal to find that the fan does not turn after turning, because the temperature of the CPU after booting is generally lower than 50 degrees.nomachineOnly when the temperature of the CPU reaches 50 degrees, the fan will start to turn.com/download/?id=9'''</p>
[[File:./images/media/image469.png|575x163px]]
<ol start="3" style="list-style-type: decimal;"><li><p>Then install nomachine in Windows. '''Please restart Use the computer after installation'''</p></li><li><p>Then open '''NoMachine''' in Window</p><p>[[File:./images/media/image470.png|76x66px]]</p></li><li><p>After Nomachine is started, it will automatically scan other devices installed in the local area network. After entering the main interface of Nomachinefollowing commands to make all CPUs run, and then you can see that the development board is already in the connected device list, and then click the location shown in the red box below in the figure below. You can fan will start logging in to the Linux system desktop of the development board</p><p>[[File:./images/media/image471.png|321x92px]]</p></li><li><p>Then click '''OKworking:'''</p><p>[[File:./images/media/image472.png|269x184px]]</p></libig><li><p>Then enter the username and password of the linux system in the corresponding position in the figure below, and then click orangepi@orangepi:~$ '''OKfor i in $(seq 0 $(( $(nproc --all) - 1)) ); do (taskset -c $i yes &gt; /dev/null &amp;); done''' to start logging in</p><p>[[File:./images/media/image473.png|303x204px]]</p></li>}<li><p>Then click OK in the next interface</p></li><li><p>Finally, you can see the desktop of the development board Linux system</pol><p>[[File:./images/media/image474.png|411x246px]]</p></li></ol>
<span id="usethe-vncmethod-remoteof-loginshutting-down-and-restarting-the-development-board"></span>=== Use VNC remote login ===
'''Before operation, please ensure that the Windwos computer and the development board are in the same local area network, and you can log in == How to use the Ubuntu or Debian ZFS file system of the development board normally.'''==
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Ubuntu 20The latest version of Ubuntu20.04 tests many problems with VNC, please do not Ubuntu22.04, Debian11 and Debian12 desktop version systems have pre-installed zfs, you can use this methodit directly.'''
<ol style="list-style-type: decimal;"><li><p>First run the '''set_vncThe pre-installed zfs version in Ubuntu20.sh''' script settings vnc, 04 and Ubuntu22.04 desktop systems is 2.1.6.'''remember to add Sudo permissions'''</p><p>orangepi@orangepi:~$ '''sudo set_vncThe pre-installed zfs version in Debian11 and Debian12 desktop systems is 2.1.11.sh'''</p><p>You will require a password to access your desktops.</p><p>Password: '''#Set After the VNC password heresystem starts, 8 please first confirm whether the zfs kernel module has been loaded. If you can see zfs-bit characters'''</p><p>Verify: '''#Set related content using the VNC password herelsmod command, 8 it means that the system has pre-bit charactersinstalled zfs.'''</p><p>Would you like to enter a view-only password (y/n)? orangepi@orangepi:~$ '''nlsmod | grep "zfs"'''</pbig><p>xauth: file /root/.Xauthority does not exist</p><p>New 'X' desktop is orangepi:zfs &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2801664 &nbsp;&nbsp;&nbsp; 0 zunicode &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 327680 &nbsp;&nbsp;&nbsp; 1</p>&nbsp; zfs<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:zzstd &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 471040 &nbsp;&nbsp;&nbsp; 1.log</p>&nbsp; zfs<p>Killing Xtightvnc process ID 3047</p><p>New 'X' desktop is orangepi:zlua &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 139264 &nbsp;&nbsp;&nbsp; 1</p>&nbsp; zfs<p>Starting applications specified in /root/.vnc/xstartup</p><p>Log file is /root/.vnc/orangepi:zcommon &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 69632 &nbsp;&nbsp;&nbsp; 1.log</p></li>&nbsp; zfs<li><p>The steps of using MobaxTerm software to connect the development board Linux system desktop are shown below:</p><ol style="list-style-type: lower-alphaznvpair &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 61440 &nbsp;&nbsp;"><li>First click the session, then select VNC, then fill in the IP &gtnbsp; address and port of the development board, and finally click 2 &gtnbsp; OK to confirm</li></ol></li></ol>zfs,zcommon
<div class="figure">zavl &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16384 &nbsp;&nbsp;&nbsp; 1 &nbsp; zfs
[[File:./images/media/image475.png|490x349px|图片1208]]icp &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 221184 &nbsp;&nbsp;&nbsp; 1 &nbsp; zfs
</div><ol start="2" style="list-style-type: lower-alphaspl &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 77824 &nbsp;&nbsp;"><li><p>Then enter the password of the previously set VNC</p><p>[[File:./images/media/image476.png|221x105px]]</p></li><li><p>The interface after the login is successfully displayed as shown in &gtnbsp; the figure below, and then you can remotely operate the desktop of 6 &gtnbsp; the linux system remotely</p></li></ol>zfs,icp,zzstd,znvpair,zcommon,zavl|}
[[File=== How to install ZFS ==={| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Before installing zfs, please ensure that the Linux image used is the latest version. In addition, if zfs is already installed in the system, there is no need to install it again.'''</images/media/image477big>|}Before installing zfs, you need to install the kernel header file first. '''For the method of installing the kernel header file''', please refer to the instructions in the section on the method of installing the kernel header file.png|405x293px]]
<span id="section-37"></span>== ==In Ubuntu20.04, Ubuntu22.04 and Debian11 systems, zfs cannot be installed directly through apt, because the default apt source zfs version is lower than 2.1.6, and there is a problem of incompatibility with rk linux5.10 kernel. This problem is fixed in zfs version 2.1.6 and later.
<span id="sectionTo solve this problem, we provide a zfs deb package that can be installed normally, which can be downloaded from the '''official tool''' of the development board. Open the '''official tool''', and then enter the '''zfs-38"></span>=== ===related deb package folders used by Ubuntu and Debian systems'''. You can see three types of deb packages: Ubuntu20.04, Ubuntu22.04 and Debian11. Please download the required version.
<ol start="10" style="list-style-type: decimal;"><lip><ol style="list-style-type[[File: lower5plus-alpha;"><li></li><li></li><li></li><li></li></ol></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>3.png]]</olp>
<span id="After downloading the zfs deb packages of the corresponding version, please upload them to the Linux system of the development board. For the upload method, please refer to the description in [[Orange Pi 5 Plus#The method of uploading files to the Linux system of the development board|'''the section-39"></span>=== ===of the method of uploading files to the Linux system of the development board''']].
<ol startAfter the upload is complete, use the '''cd''' command in the command line of the development board linux system to enter the deb package directory, and then use the following command to install the zfs deb package.{| class="3wikitable" style="list-style-typewidth: decimal800px;"><li></li><li><ol style="list-style-type: lower|-alpha;"><li></li>|<li><orangepi@orangepi:~$ '''sudo apt install ./li>*.deb'''<li></li></ol></li></ol>|}
<span id="someAfter the installation is complete, use the following command to see the zfs-programming-language-test-supported-by-thelinux-system"></span>== Some programming language test supported by thelinux system ==related kernel modules:
<span id{| class="debianwikitable" style="width:800px;" |-|orangepi@orangepi:~$ '''ls /lib/modules/5.10.110-bullseyerockchip-system"><rk3588/updates/dkms/span>icp.ko spl.ko zavl.ko zcommon.ko zfs.ko zlua.ko znvpair.ko zunicode.ko zzstd.ko'''=== Debian Bullseye system ===|}
<ol style="list-style-type: decimal;"><li><p>Debian Bullseye is installed with the gcc compilation tool chain by default, which can compile the C language program directly in Then restart the Linux system of to see that the development board</p>zfs kernel module will be automatically loaded: <ol {| class="wikitable" style="listbackground-style-typecolor:#ffffdc;width: lower-alpha800px;"><li><p>The version of the gcc is shown below</p>|-| <p>orangepi@orangepi:~$ '''gcc --versionlsmod | grep "zfs"'''</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 softwarezfs &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2801664 &nbsp;&nbsp; see the source for copying conditions. There is NO</p><p>warranty&nbsp; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</p></li> 0<li><p>'''hello_world.c''' program to write c language</p><p>orangepi@orangepi:~$ '''vim''' '''hello_world.c'''</p><p>#include zunicode &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 327680 &nbsp;&nbsp;&ltnbsp;stdio.h 1 &gtnbsp;</p>zfs<p>int main(void)</p><p>{</p><p>printf(zzstd &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 471040 &quotnbsp;Hello World!\n&quotnbsp;)&nbsp;</p><p>return 0 1 &nbsp;</p>zfs<p>}</p></li><li><p>Then compile and run '''hello_world.c'''</p>zlua &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 139264 &nbsp;&nbsp;&nbsp; 1 &nbsp; zfs<p>orangepi@orangepi:~$ '''gcc -o hello_world hello_world.c'''</p><p>orangepi@orangepi:~$ '''./hello_world'''</p>zcommon &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 69632 &nbsp;&nbsp;&nbsp; 1 &nbsp; zfs<p>Hello World!</p></li></ol></li><li><p>Debian Bullseye Default with Python3</p><ol style="list-style-type: lower-alphaznvpair &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 61440 &nbsp;&nbsp;&nbsp;"><li><p>The specific version of Python is shown below</p><p>orangepi@orangepi:~$ '''python3'''</p><p>'''Python 3.9. 2''' (default&nbsp; zfs, Feb 28 2021, 17:03:44)</p>zcommon <p>[GCC 10.2.zavl &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16384 &nbsp;&nbsp;&nbsp; 1 20210110] on linux</p>&nbsp; zfs <p>Type icp &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quotnbsp;help&quotnbsp;, &quotnbsp;copyright&quotnbsp;, &quotnbsp;credits&quotnbsp; or &quotnbsp;license 221184 &quotnbsp; for more information.</p><p>&gtnbsp;&gtnbsp;1 &gtnbsp;</p>zfs<p>'''Use CTRL+D shortcut key to exit Python's interactive mode。'''</p></li><li><p>'''hello_world.py''' program in Python language</p>spl &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 77824 &nbsp;&nbsp;&nbsp; 6 &nbsp; zfs,icp,zzstd,znvpair,zcommon,zavl<p>orangepi@orangepi:~$ '''vim''' '''hello_world.py'''</p>|}<p>print('Hello World!')</p></li><li><p>The results In Debian12, the default version of running '''hello_worldzfs is 2.1.11, so we can install zfs directly through the following command.py''' are shown below</p><p>orangepi@orangepi:~$ '''python3 hello_worldAgain, please make sure that the system has installed the deb package of the kernel header file before installation.py'''</p><p>Hello World!</p></li></ol></li><li><p>Debian Bullseye's compilation tool and operating environment without Java default</p><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;"><li><p>You can use the following command to install openjdk. The latest &gt; version in Debian Bullseye is openjdk|-17</p><p>|orangepi@orangepi:~$ '''sudo''' '''apt install''' '''-y''' '''openjdkzfsutils-17-jdk'''</p></li><li><p>After installation, you can check the version of Java</p><p>orangepi@orangepi:~$ '''java linux zfs--version'''</p></li><li><p>Edit the '''hello_world.java''' of Java version</p><p>orangepi@orangepi:~$ '''vim''' '''hello_world.javadkms'''</p><p>public class hello_world</p><p>{</p><p>public static void main(String[] args)</p><p>{</p><p>System.out.println(&quot;Hello World!&quot;);</p><p>}</p><p>|}</p></li><li><p>Then compile and run '''hello_world.java'''</p><p>orangepi@orangepi:~$ '''javac hello_world.java'''</p><p>orangepi@orangepi:~$ '''java hello_world'''</p><p>Hello World!</p></li></ol></li></ol>
<span id="ubuntu-focal-system"></span>== Methods of creating ZFS pools == Ubuntu Focal system ={| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''ZFS is based on storage pools, we can add multiple physical storage devices to the pool, and then allocate storage space from this pool.'''
'''The following content is demonstrated based on the development board connected to an NVMe SSD and a USB flash drive.'''<ol style="list-style-type: decimal;"/big><li><p>Ubuntu Focal has a gcc compilation tool chain by default|} 1) First, which we can compile use the C language program directly in the Linux system of '''lsblk''' command to view all storage devices on the development board. The current development board is connected to an NVMe SSD and a U disk. The output is as follows: <p>[[File:5plus-4.png]]</p><ol 2) Then enter the following command to create a ZFS pool, including two storage devices, NVMe SSD and U disk {| class="wikitable" style="list-style-typewidth: lower-alpha800px;"><li><p>The version of gcc is shown below</p>|-|<p>orangepi@orangepi:~$ '''gcc sudo zpool create --versionf pool1 /dev/nvme0n1 /dev/sda'''</p><p>gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0</p>|} <p>Copyright (C3) 2019 Free Software Foundation, Inc.</p><p>This is free software; see Then use 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>The '''hello_world.czpool list''' program command to see that writes c language</p><p>orangepi@orangepi:~$ the system has created a ZFS pool named '''vimpool1''' '''hello_world.c'''</p>, and the size of the ZFS pool pool1 is the size of the NVME SSD plus the size of the U disk <p>#include &lt;stdio[[File:5plus-5.h&gt;</p><p>int main(void)png]]</p><p>{</p><p>printf(&quot;Hello World!\n&quot;4);</p><p>return 0;</p><p>}</p></li><li><p>Then compile and run execute '''hello_world.cdf -h'''</p><p>orangepi@orangepi:~$ to see that '''gcc -o hello_world hello_world.cpool1'''</p><p>orangepi@orangepi:~$ is mounted to the '''./hello_worldpool1'''</p>directory<p>Hello World!</p></li></ol></li><li><p>Ubuntu Focal's default installation with Python3</p><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;"><li><p>Python3 specific version is shown below</p>|-|<p>orangepi@orangepi:~$ '''python3df -h'''</pbr><p>Python 3.8.10 (default, Nov 14 2022, 12:59:47)</p><p>[GCC 9.4.0] Filesystem &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Size &nbsp;&nbsp;&nbsp; Used Avail Use% Mounted on linux</pbr><p>Type tmpfs &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quotnbsp;help&quotnbsp;, &quotnbsp;copyright&quotnbsp;, &quotnbsp;credits&quotnbsp; or &quotnbsp;license&quotnbsp; for more information 1.</p><p>6G &gtnbsp;&gtnbsp;&gtnbsp;18M 1.6G 2% /run </pbr><p>'''Use CTRL+D shortcut key to exit Python's interactive mode。'''</p><dev/li><li><p>The '''hello_worldmmcblk0p2 &nbsp;&nbsp;&nbsp; 29G &nbsp;&nbsp;&nbsp; 6.py''' program that writes python language0G 22G 22% / </pbr><p>orangepi@orangepi:~$ '''vim''' '''hello_worldtmpfs &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7.7G &nbsp;&nbsp;&nbsp; 46M 7.py'''<7G 1% /p><p>print('Hello World!')<dev/p>shm </libr><li><p>The results of running '''hello_worldtmpfs &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5.0M &nbsp;&nbsp;&nbsp; 4.py''' are shown below</p><p>orangepi@orangepi:~$ '''python3 hello_world0K 5.py'''<0M 1% /p><p>Hello World!<run/p></li>lock </olbr></li><li><p>Ubuntu Focal's compilation tools and operating environment without Java default</p><ol style="list-style-type: lower-alphatmpfs &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7.7G &nbsp;&nbsp;&nbsp;"><li><p>You can use the following command to install openjdk-17</p><p>orangepi@orangepi:~$ '''sudo''' '''apt install''' '''-y''' '''openjdk-17-jdk'''<944K 7.7G 1% /p>tmp </libr><li><p>After installation, you can check the version of the java</p><p>orangepi@orangepi:~$ '''java --version'''<dev/p><p>openjdk 17.0.2 2022-01-18<mmcblk0p1 &nbsp;&nbsp;&nbsp; 1022M &nbsp;&nbsp;&nbsp; 115M 908M 12% /p><p>OpenJDK Runtime Environment (build 17.0.2+8-Ubuntu-120.04)boot </pbr><p>OpenJDK 64-Bit Server VM (build 17.0.2+8-Ubuntu-120.04, mixed mode, sharing)</p><dev/li><li><p>Edit the '''hello_worldzram1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 188M &nbsp;&nbsp;&nbsp; 4.java''' of Java version</p><p>orangepi@orangepi:~$ '''vim''' '''hello_world.java'''<5M 169M 3% /p><p>public class hello_world<var/p><p>{log </pbr><p>public static void main(String[] args)</p><p>{</p><p>System.outtmpfs &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.println(6G &quotnbsp;Hello World!&quotnbsp;)&nbsp;< 80K 1.6G 1% /p><p>}<run/p><p>}<user/p>1000 </libr><li><p>Then compile and run '''hello_worldpool1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 489G &nbsp;&nbsp;&nbsp; 9.java'''<3M 489G 1% /p><p>orangepi@orangepi:~$ '''javac hello_world.javapool1'''</pbr><p>orangepi@orangepi:~$ '''java hello_world'''</p>|}<p>Hello World!</p></li></ol></li></ol>5) Use the following command to see that the file system type of pool1 is zfs
<span id{| class="ubuntuwikitable" style="width:800px;" |-jammy-system"></span>=== Ubuntu Jammy system ===|orangepi@orangepi:~$ '''mount | grep pool1'''
<ol startpool1 on /pool1 type '''zfs''' (rw,xattr,noacl)|}6) Then we can test copying a file to the ZFS pool {| class="4wikitable" style="list-style-typewidth: decimal800px;"><li><p>Ubuntu Jammy is equipped with a gcc compilation tool chain by default, which can directly compile the C language program in the Linux system of the development board</p><ol style="list|-style-type: lower-alpha;"><li><p>The version of gcc is shown below</p>|<p>orangepi@orangepi:~$ '''gcc --version'''</p><p>gcc (Ubuntu 11.2.0sudo cp -19ubuntu1) '''11.2.0'''<v /p><p>Copyright (C) 2021 Free Software Foundation, Inc.<usr/p><p>This is free software; see the source for copying conditions. There is NO<local/p><p>warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSEtest.<mp4 /p><pool1/li><li><p>The '''hello_world.c''' program that writes c language</p><p>orangepi@orangepi:~$ '''vim''' '''hello_world.c'''</p><p>#include &lt;stdio.h&gt;</p><p>int main(void)</p><p>{</p><p>printf(&quot;Hello World!\n&quot;);</p><p>return 0;</p><p>}<usr/p><local/li><li><p>Then compile and run '''hello_worldtest.cmp4'-> ''</p><p>orangepi@orangepi:~$ '''gcc -o hello_world hello_worldpool1/test.c''mp4'</p><p>orangepi@orangepi:~$ '''./hello_world'''</p>|}<p>Hello World!</p></li></ol></li>=== Test the data deduplication function of ZFS ===<li><p>Ubuntu jammy 1) The data deduplication function of ZFS is installed with Python3 disabled by default</p>, we need to execute the following command to enable it <ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;"><li><p>python3 specific version is shown below</p>|-|<p>orangepi@orangepi:~$ '''python3sudo zfs set dedup=on pool1'''</p><p>Python '''3.10.4''' (main, Apr |}2 2022, 09:04:19) [GCC 11.2.0] on linux</p><p>Type &quot;help&quot;Then do a simple test, &quot;copyright&quot;first enter pool1, &quot;credits&quot; or &quot;license&quot; for more information.</p><p>&gt;&gt;&gt;</p><p>'''Use CTRL+D shortcut key and then execute the following command to exit Python's interactive mode。'''</p></li><li><p>The '''hello_world.py''' program that writes python language</p><p>orangepi@orangepi:~$ '''vim''' '''hello_world.py'''</p><p>print('Hello World!')</p></li><li><p>The results generate a random file with a size of running '''hello_world.py''' are shown below</p>1G<p>orangepi@orangepi:~$ '''python3 hello_world.py'''</p><p>Hello World!</p></li></ol></li><li><p>Ubuntu Jammy defaults to compile tools and operating environments that are not installed in Java</p><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;"><li><p>You can use the following command to install openjdk|-18</p><p>|orangepi@orangepi:~$ '''sudocd /pool1/ ''' '''apt install''' '''-y''' '''openjdk-18-jdk'''</p></li><li><p>After installation, you can check the version of the java</pbr><p>orangepiroot@orangepi:~/pool1$ '''java --version'''<sudo dd if=/p><p>openjdk 18-ea 2022-03-22<dev/p><p>OpenJDK Runtime Environment (build 18-ea+36-Ubuntu-1)</p><p>OpenJDK 64-Bit Server VM (build 18-ea+36-Ubuntu-1, mixed mode, sharing)</p></li><li><p>Edit the '''hello_world.java''' urandom of Java version</p><p>orangepi@orangepi:~$ '''vim''' '''hello_world=test.java1g bs=1M count=1024'''</pbr>1024+0 records in <p>public class hello_world</pbr>1024+0 records out <p>{</pbr><p>public static void main1073741824 bytes (String[] args)</p><p>{</p><p>System1.out1 GB, 1.println(&quot;Hello World!&quot;0 GiB);<copied, 5.04367 s, 213 MB/p><p>}s </pbr><p>|}</p></li><li><p>3) Then compile and run '''hello_world.java'''</p><p>orangepi@orangepi:~$ '''javac hello_world.java'''</p><p>orangepi@orangepi:~$ '''java hello_world'''</p><p>Hello World!</p></li></ol></li></ol>use the following command to copy 1000 random files of size 1G
<span id{| class="wikitable" style="qtwidth:800px;" |-installation-method">|root@orangepi:/pool1$ '''for ((i=0; i</span>1000; i++)); do sudo cp test.1g $i.test.1g; done'''|}== QT installation method ==4) Then use '''du -lh''' to see that there are currently 1002G of data in the pool, but in fact the size of the ZFS pool is only '''504GB''' (the total capacity of SSD+U disk), which cannot hold such a large amount of data
<ol style{| class="list-style-type: decimal;wikitable"><li><p>You can install QT5 and QT Creator with the following scripts</p><p>orangepi@orangepi:~$ '''install_qt.sh'''</p></li><li><p>After installation, it will automatically print the QT version number</p><ol style="list-style-typewidth: lower-alpha800px;"><li><p>Ubuntu20.04's own QT version is '''5.12.8'''</p><p>orangepi@orangepi:~$ '''install_qt.sh'''</p><p>......</p><p>QMake version 3.1</p><p>Using Qt version '''5.12.8''' in /usr/lib/aarch64|-linux-gnu</p></li><li><p>Ubuntu22.04's own QT version is '''5.15.3'''</p>|<p>orangepi@orangepi:~$ '''install_qt.sh'''</p><p>......</p><p>QMake version 3.1</p><p>Using Qt version '''5.15.3''' in /usr/lib/aarch64-linux-gnu</p></li><li><p>The QT version comes with Debian11 is '''5.15.2'''</p><p>orangepiroot@orangepi:~$ '''install_qt.sh'''</p><p>......</p><p>QMake version 3.1</p><p>Using Qt version '''5.15.2''' in /usr/lib/aarch64-linux-gnu</p></li></ol></li><li><p>Then you can see the lax icon of QT Creator in '''Applications'''</p><p>[[File:./images/media/image479.png|576x270px]]</p><p>You can also use the following command to open QT Creator</p><p>orangepi@orangepi:~pool1$ '''qtcreator'''</p><p>'''During the startup process of QT and QT applications, if the error below is prompted, please ignore it directly. This error will not affect the operation of the application.。'''</p><p>'''libGL error: failed to create dri screen'''</p><p>'''libGL error: failed to load driver: rockchip'''</p><p>'''libGL error: failed to create dri screen'''</p><p>'''libGL error: failed to load driver: rockchip'''</p></li><li><p>The interface after the QT Creator is opened is shown below</p><p>[[File:./images/media/image480.png|576x306px]]</p></li><li><p>The version of QT Creator is shown below</p><ol style="list-style-type: lower-alpha;"><li><p>The default version of QT Creator in '''Ubuntu20.04''' is shown &gt; below</p><p>[[File:./images/media/image481.png|576x308px]]</p></li><li><p>The default version of QT Creator in '''Ubuntu22.04''' is shown &gt; below</p><p>[[File:./images/media/image482.png|575x307px]]</p></li><li><p>The default version of QT Creator in '''Debian11''' is shown below</p><p>[[File:./images/media/image483.png|575x309px]]</p></li></ol></li><li><p>Then set the QT</p><ol style="list-style-type: lower-alpha;"><li><p>First open '''Help'''du -&gt;'''About Plugins...'''</p><p>[[File:./images/media/image484.png|573x164px]]</p></li><li><p>Then remove the hook of '''ClangCodeModel'''</p><p>[[File:./images/media/image485.png|575x359px]]</p></li><li><p>'''After setting, you need to restart Qt Creator'''</p></li><li><p>Then make sure that the GCC compiler used by QT Creator, if the &gt; default is CLANG, please modify it to GCC</p><p>[[File:./images/media/image486.png|576x315px]]</p><p>[[File:./images/media/image487.png|575x307px]]</p></li></ol></li><li><p>Then you can open an example code</p><p>[[File:./images/media/image488.png|575x312px]]</p></li><li><p>After clicking the example code, you will automatically open the corresponding description document. You can carefully look at the instructions for the use</p><p>[[File:./images/media/image489.png|576x218px]]</p></li><li><p>Then click '''Configure Project'''</p><p>[[File:./images/media/image490.png|575x304px]]</p></li><li><p>Then click the sample code under the green triangle compilation and run in the lower left corner</p><p>[[File:./images/media/image491.png|575x312px]]</p></li><li><p>After waiting for a while, the interface shown in the figure below will pop up. At this time, it means that QT can compile and run normally</p><p>[[File:./images/media/image492.png|576x308px]]</p></li><li><p>Reference information</p><p>lh'''https://wiki.qt.io/Install_Qt_5_on_Ubuntu'''</p><p>'''https://download.qt.io/archive/qtcreator'''</p><p>'''https://download.qt.io/archive/qt'''</p></li></ol>
<span id="section-40"></span>1002G== ==|}5) Then use the '''zpool list''' command to see that only 1.01G is actually occupied, because these 1001 files are all duplicates, indicating that the data deduplication function is effective.
<span id="sectionp>[[File:5plus-41">6.png]]</spanp>=== ===
<ol start="4" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol></li><li><ol styleTest the data compression function of ZFS =="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li></ol></li></ol>
<span id="section-42"><1) Because the stored data is different, the disk space saved by compression will also be different, so we choose to compress relatively large plain text files for compression testing, and execute the following commands to pack the '''/span>=== ===var/log/''' and '''/etc/''' directories into a tarball
<ol start{| class="7wikitable" style="list-style-typewidth: decimal800px;"><li><ol style="list-style|-type: lower-alpha;"><li></li><li></li><li></li></ol></li>|<li><ol style="list-style-typeorangepi@orangepi: lower-alpha;"><li></li><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li></ol><~$ '''cd /li><pool1/ol>'''
<span id="sectionroot@orangepi:/pool1$ '''sudo tar -43"><cf text.tar /var/log/span>/etc/'''=== ===|}2) Then the file size that can be seen through the '''ls -lh''' command and the space occupied in the ZFS pool are both '''27M'''
<ol start="10" style="list-style-type: decimal;"><lip><ol style="list-style-type[[File: lower5plus-alpha;"><li></li><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li></ol></li>7.png]]</olp>
<span id="section-44"></span>== ==3) Then we enable compression in the ZFS pool pool1
<ol start{| class="13wikitable" style="list-style-typewidth: decimal800px;"><li></li><li><ol style="list-style|-type: lower-alpha;"><li></li><li></li>|<li></li></ol></li><li></li><li></li><li><ol style="list-style-typeroot@orangepi: lower-alpha;"><li></li><li></li><li></li></ol></li><li><ol stylepool1$ '''sudo zfs set compression="list-style-type: lower-alpha;">lz4 pool1'''<li></li>|}<li><4) Then execute the following command again to package the '''/li><li><var/li><li><log/li></ol></li><li></li><li></li><li></li><li></li><li></li><li><''' and '''/li><etc/ol>''' directories into a tar package
<span id{| class="roswikitable" style="width:800px;" |-installation|root@orangepi:/pool1$ '''sudo tar -method"><cf text.tar /var/log/ /etc/span>'''== ROS installation method ==|}5) At this time, you can see that the size of the '''text.tar''' file is still 27M, but it only occupies 9.47M in the ZFS pool, indicating that the file is compressed
<span id="ubuntup>[[File:5plus-208.04-method-of-installing-ros-1-noetic">png]]</spanp>=== Ubuntu 20.04 method of installing ROS 1 Noetic ===
# == The current active version method of ROS 1 is shown below. The recommended version is '''Noetic Ninjemys'''shutting down and restarting the development board ==
[[File<ol style="list-style-type:decimal;"><li><p>In the process of running the Linux system, if the Type-C power supply is directly out of power, it may cause the file system to lose certain data or damage. Therefore, please use the '''poweroff''' command to turn off the linux system of the development board before power off. Then Unplug the power supply.</imagesp>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo poweroff'''</mediap>|}</image493li><li><p>In addition, the development board is equipped with a switch button, and you can also '''short press''' the switch button on the development board to turn off.png|345x235px]]</p><p>[[File:./images/media/image494plus5-img446.png|576x210px]]</p></li>
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''http://docsNote that the Linux desktop system will pop up the confirmation box shown in the figure below after pressing the buttons.rosYou need to click the Shut Down option to shut down.org'''</big>
'''https[[File:plus5-img447.png|center]]|}</ol><ol start="3" style="list-style-type: decimal;"><li><p>After shutting down, press the switch button on the development board to turn on.</wikip><p>[[File:plus5-img446.rospng]]</p></li><li><p>Restart the command of the Linux system.org</Distributionsp>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''sudo''' '''reboot'''</p>|}</li></ol>
<ol startspan id="2" style="listubuntu22.04-gnome-stylewayland-type: decimal;"><li><p>ROS 1 '''Noetic Ninjemys'''' official installation document links are shown below:</p><p>'''http://wiki.ros.org/noetic/Installation/Ubuntu'''</p></li><li><p>Ubuntu 20.04 is recommended in the official installation document of ROS '''Noetic Ninjemys''', so please make sure that the system used in the development board is '''Ubuntu20.04 desktop version -system'''</p><p>'''http://wiki.ros.org/noetic/Installation'''</p><p>[[File:./images/media/image495.png|312x176px]]</p></li><li><p>Then install Ros1 with the following script</p><p>orangepi@orangepi5plus:~$ '''install_ros.sh''' '''ros1'''</p></li><li><p>Before using the ROS tool, you need to initialize ROSDEP first, and then install some system dependencies and core components in some ROS when compiling the source code</p></li-instructions"></olspan>
= '''Note that the following commands need to ensure that the development board can access GitHub normally, otherwise it will report an error due to network problems。Ubuntu22.04 Gnome Wayland Desktop system instructions'''=
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''install_rosubuntu22.sh''' '''script will try to modify/etc/hosts''' '''and run the following commands automatically. However04 gnome image default pre -installed PanFork Mesa user space library, this method cannot guarantee that you can access github normally. If''' '''install_ros.sh''' '''has prompting the following errors after the''' '''ros1''' '''is pre -installed, please think other methods to allow the linux system of the development board to access''' '''github''' '''normally, Kodi player and then manually run the following manually command。Chromium browser support hard solution video.'''
'''https://rawIt should be noted that this image needs to be used under Wayland.githubusercontentIf you need to use X11, select the XFCE type image.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml'''</big>|}
'''Hit https://raw.githubusercontent<span id="ubuntu22.com/ros/rosdistro/master/rosdep04-gnome-desktop-system-adaptation-situation"></basespan>== Ubuntu22.yaml'''04 GNOME desktop system adaptation situation ==
'''ERROR{| class="wikitable" style="width: error loading sources list800px;"|-| style="text-align:left;"| ''' '''The read operation timed outFunction''' orangepi@orangepi| style="text-align:~$ left;"| '''source /opt/ros/noetic/setupUbuntu22.bash04 Gnome Wayland'''|-orangepi@orangepi| style="text-align:~$ 'left;"| ''sudo rosdep init'HDMI TX1video''' Wrote /etc/ros/rosdep/sources.list.d/20| style="text-default.list Recommendedalign: please run rosdep update orangepi@orangepi:~$ left;"| '''rosdep updateOK'''|-reading in sources list data from /etc/ros/rosdep/sources.list.d Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx| style="text-homebrew.yaml Hit httpsalign://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yamlleft;"| '''HDMI TX1 Audio''' Hit https| style="text-align://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yamlleft;"| '''OK'''|-Hit https| style="text-align://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yamlleft;"| '''HDMI TX2 video''' Hit https| style="text-align://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yamlleft;"| '''OK'''|-Query rosdistro index https| style="text-align://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yamlleft;"| '''HDMI TX2 Audio''' Skip end| style="text-of-life distro &quot;ardent&quot; Skip end-of-life distro &quot;bouncy&quotalign: left;"| '''OK''' Skip end|-of-life distro &quot;crystal&quot; Skip end| style="text-of-life distro &quot;dashing&quotalign: left;"| '''HDMI RX video''' Skip end| style="text-of-life distro &quot;eloquent&quotalign: left;"| '''OK'''|-Add distro &quot;foxy&quot| style="text-align: left;"| '''HDMI RX Audio''' Add distro &quot;galactic&quot| style="text-align: left;"| '''OK'''|-Skip end| style="text-of-life distro &quot;groovy&quotalign: left;"| '''USB2.0X2''' Add distro &quot;humble&quot; Skip end-of-life distro &quot;hydro&quot| style="text-align: left;"| '''OK''' Skip end-of|-life distro &quot;indigo&quot; Skip end| style="text-of-life distro &quot;jade&quotalign: left;"| '''USB3.0X2''' Skip end| style="text-of-life distro &quot;kinetic&quotalign: left;"| '''OK'''|-Skip end-of| style="text-life distro &quot;lunar&quotalign: left;"| '''2.5G PCIe network port X2''' Add distro &quot| style="text-align: left;melodic&quot;"| '''OK'''Add distro &quot;noetic&quot;|- Add distro &quot;rolling&quot; updated cache in /home/orangepi/.ros/rosdep/sources.cache <ol start| style="6text-align: left;" | '''2.5G PCIe network port light'''| style="list-styletext-typealign: decimalleft;"><li><p>Then open a command line window on the | '''desktopOK''', and then use the |-| style="text-align: left;"| '''test_ros.shDebug serial port''' script to start a small turtle routine to test whether the ROS can be used normally</p><p>orangepi@orangepi:~$ | style="text-align: left;"| '''test_ros.shOK'''</p></li><li><p>After running the ''|-| style="text-align: left;"| '''test_ros.shRTC chip''' script, a small turtle shown in the figure below will pop up</p><div class| style="figuretext-align: left;"> [[File:./images/media/image496.png|575x275px'''OK'''|-| style="text-align: left;"|图片4]]'''FAN Fan interface'''| style="text-align: left;"| '''OK'''</div></li>|-<li><p>Then please keep the terminal window just open at the top</p></li></ol> <div class| style="figuretext-align: left;"> [[File:./images/media/image497.png|576x275px|图片5]] </div><ol start="9" '''eMMC Extension ports'''| style="list-styletext-typealign: decimalleft;">| '''OK'''<li><p>At this time, press the direction button on the keyboard to control the small turtles up, down, left and right</p>|-<p>[[File| style="text-align:./images/media/image498.pngleft;"|575x296px]]</p></li></ol>'''AP6275P-WIFI''' <span id| style="ubuntu20.04text-thealign: left;"| '''OK'''|-method| style="text-of-installing-ros-2align: left;"| '''AP6275P-galactic"></span>BT'''| style=== Ubuntu20.04 The method of installing ROS 2 Galactic ==="text-align: left;"| '''OK'''|-<ol | style="list-styletext-typealign: decimalleft;">| '''AX200-WIFI'''<li><p>The current active version of ROS 2 is shown below. The recommended version is | style="text-align: left;"| '''Galactic GeocheloneOK'''</p><p>[[File:./images/media/image499.png|576x271px]]</p>-| style="text-align: left;"| '''AX200-BT'''<p>[[File:./images/media/image500.png|575x265px]]</p><p>style="text-align: left;"| '''http://docs.ros.orgOK'''</p><p>|-| style="text-align: left;"| '''http://docs.ros.org/en/galactic/Releases.htmlAX210-WIFI'''</p></li><li><p>ROS 2 | style="text-align: left;"| '''Galactic GeocheloneOK''''s official installation document link is shown below:</p><p>|-| style="text-align: left;"| '''docs.ros.org/en/galactic/Installation.htmlAX210-BT'''</p><p>''| style="text-align: left;"| '''http://docs.ros.org/en/galactic/Installation/Ubuntu-Install-Debians.htmlOK'''</p></li><li><p>ROS 2 |-| style="text-align: left;"| '''Galactic GeocheloneRTL8852BE-WIFI'''| style="text-align: left;"| 's official installation document is recommended to use Ubuntu 20.04, so please make sure that the system used in the development board is ''OK'Ubuntu20.04 desktop version system''|-| style="text-align: left;"| '. There are several ways to install ROS 2. The following demonstrates install the Ros 2 ''RTL8852BE-BT'Galactic Geochelone''| style="text-align: left;"| ' by ''OK'Debian packages'''</p></li><li><p>You can install ROS2 with |-| style="text-align: left;"| '''install_ros.shMaskROM button''' script</p><p>orangepi@orangepi| style="text-align:~$ 'left;"| ''install_ros.sh ros2'OK'''</p></li><li><p>'''install_ros.sh''' script will automatically run the '''ros2 |-h| style="text-align: left;"| ''' command after ros2 is installedType-C to USB3. If you can see the printing below, it means that ros2 installation is complete</p>0'''<p>usage: ros2 [| style="text-h] Call `ros2 &lt;command&gtalign: left; "| '''OK'''|-h` for more detailed usage. ...</p><p>ros2 is an extensible command| style="text-line tool for ROS 2.</p><p>optional argumentsalign:</p>left;"| '''Type-C ADB Function'''<p>| style="text-h, align: left;"| '''OK'''|-| style="text-help show this help message and exit</p><p>Commandsalign:</p><p>action Various action related subleft;"| '''Type-commands</p>C DP video'''<p>bag Various rosbag related sub| style="text-commands</p>align: left;"| '''OK'''<p>component Various component related sub|-commands</p><p>daemon Various daemon related sub| style="text-commands</p>align: left;"| '''Type-C DP Audio'''<p>doctor Check ROS setup and other potential issues</p><p>interface Show information about ROS interfaces</p>| style="text-align: left;"| '''OK'''<p>launch Run a launch file</p><p>lifecycle Various lifecycle related sub|-commands</p><p>multicast Various multicast related sub| style="text-commands</p>align: left;"| '''Switch button'''<p>node Various node related sub| style="text-commands</p><p>param Various param related subalign: left;"| '''OK'''|-commands</p><p>pkg Various package related sub| style="text-commands</p><p>run Run a package specific executable</p>align: left;"| '''Infrared function'''<p>security Various security related sub| style="text-commands</p><p>service Various service related subalign: left;"| '''OK'''|-commands</p><p>topic Various topic related sub| style="text-commands</p><p>wtf Use `wtf` as alias to `doctor`</p><p>Call `ros2 &lt;command&gt; -h` for more detailed usage.</p></li><li><p>Then you can use the align: left;"| '''test_ros.shThree -color LED light''' script to test whether the ROS 2 is successfully installed. If you can see the printing below, it means that the ROS 2 can run normally</p><p>orangepi@orangepi5plus| style="text-align:~$ left;"| '''test_ros.shOK'''</p><p>[INFO] [1671174101.200091527] [talker]: Publishing|-| style="text-align: left;"| '''MIC on board''Hello World: 1'</p><p>[INFO] [1671174101.235661048] [listener]: I heard: [Hello World: 1]</p><p>[INFO] [1671174102.199572327] [talker]: Publishing| style="text-align: left;"| '''OK''Hello World: 2'</p><p>[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: 2]</p>|-<p>[INFO] [1671174103.199580322] [talker]: Publishing| style="text-align: left;"| '''Headphones play''Hello World: 3'</p><p>[INFO] [1671174103.204019965] [listener]| style="text-align: I heard: [Hello World: 3]</p></li>left;"| '''OK'''<li><p>Run the following command to open rviz2</p>|-<p>orangepi@orangepi| style="text-align:~$ left;"| '''source /opt/ros/galactic/setup.bashHeadset recording'''''</p><p>orangepi@orangepi| style="text-align:~$ left;"| '''ros2 run rviz2 rviz2OK'''</p><div class|-| style="figuretext-align: left;">| '''SPK trumpet''' [[File| style="text-align:./images/media/image501.pngleft;"|576x324px'''OK'''|1]]-| style="text-align: left;"| '''40PIN GPIO'''</div></li><li><p>How to use ROS, please refer to the document of ROS 2</p><p>| style="text-align: left;"| ''''http://docs.ros.org/en/galactic/Tutorials.htmlOK'''</p></li></ol>|-<span id| style="ubuntu22.04text-to-install-ros-2-humblealign: left;"></span>| '''40PIN I2C'''| style="text-align: left;"| '''OK'''|-| style== Ubuntu22.04 to install ROS 2 Humble ="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 CAN'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''40PIN PWM'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''TF card startup'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''SPI+NVMe startup'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''OV13850 Camera'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''OV13855 Camera'''| 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;"| '''REBOOT Command restart'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Poweroff Command shutdown'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''MIPI LCD show'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''MIPI LCD touch'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Watch Dog Test'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Chromium Hard solution video'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''MPV Hard solution video'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Kodi Hard solution video'''| style="text-align: left;"| '''OK'''|} <span id="confirm-that-the-current-window-system-used-by-the-system-is-wayland"></span>== Confirm that the current window system used by the system is Wayland ==
<ol style="list-style-type: decimal;">
<li><p>install ROS2 with '''install_ros.sh''' script</p><p>orangepi@orangepi:~$ '''install_ros.sh ros2'''</p></li><li><p>'''install_ros.sh''' script will automatically run The system used by the '''ros2 -h''' command after ROS2 system default is installed. If you can see Wayland, and the following printing, it means that ROS2 installation confirmation method is complete.shown below:</p><p>usageol style="list-style-type: ros2 [lower-h] Call `ros2 &ltalpha;command&gt; -h` for more detailed usage. ...</p"><p>ros2 is an extensible command-line tool for ROS 2.</pli><p>optional arguments:First open the settings</p><p>-h, --help show this help message and exit</p><p>Commands[[File:</p><p>action Various action related subplus5-commandsimg448.png]]</p><p>bag Various rosbag related sub-commands</pli><pli>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 Then select about ROS interfaces</p><p>launch Run , if the '''Wayland''' description settings displayed by '''Windowing System''' in a launch filecolumn are correct</p><p>lifecycle Various lifecycle related sub[[File:plus5-commandsimg449.png]]</p><p>multicast Various multicast related sub-commands</pli><p>node Various node related sub-commands</p><p>param Various param related sub-commands</p><p>pkg Various package related sub-commands</pol><p>run Run a package specific executable</p><p>security Various security related sub-commands</p><p>service Various service related sub-commands</p><p>topic Various topic related sub-commands</p><p>wtf Use `wtf` as alias to `doctor`</p><p>Call `ros2 &lt;command&gt; -h` for more detailed usage.</p></li><li><p>Then you can use When the '''test_ros.shLog Out''' script to test whether the ROS 2 is successfully installed. If you can see out of the printing belowsystem, it means that ROS 2 can run normally</p><p>orangepi@orangepi5plus:~$ '''test_ros.sh'''will enter the login interface below</p><p>[INFO] [1671174101File:plus5-img450.200091527png|258x108px] [talker]: Publishing: 'Hello World: 1'</p><p>[INFO] [1671174101.235661048] [listener]: I heard: [Hello World: 1]</pli><p>[INFO] [1671174102.199572327] [talker]: Publishing: 'Hello World: 2'</pli><p>[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: 2]Please click the location shown below before logging in to the system again</p><p>[INFO] [1671174103.199580322] [talker]File: Publishing: 'Hello World: 3'</p><p>[INFO] [1671174103plus5-img451.204019965png] [listener]: I heard: [Hello World: 3]</p></li><li><p>Run Then select '''Ubuntu on Wayland''' and enter the following command to open rviz2password login system</p><p>orangepi@orangepi[[File:~$ '''source /opt/ros/humble/setupplus5-img452.bash'''png]]</p><p/li>orangepi@orangepi:~$ '''ros2 run rviz2 rviz2'''</pol> <div classspan id="figureswitch-the-method-of-default-audio-equipment"></span>
[[File:./images/media/image502.png|576x324px|Screenshot from 2023-05-20 17-42-58]]== Switch the method of default audio equipment ==
</divol style="list-style-type: decimal;"><li><p>Open the settings first</lip><lip>[[File:plus5-img448.png]]</p>Reference document</pli><li><p>Then select '''Sound''', and then select the audio device you want to use in '''http://docs.ros.org/en/humble/index.htmlOutput Device'''</p><p>'''http[[File://docs.ros.org/en/humble/Installation/Ubuntu-Installplus5-Debiansimg453.html'''png]]</p></li></ol>
<span id="thegpu-test-method-of-installing-the-kernel-header-file"></span>== The GPU test method of installing the kernel header file ==
<ol style="list-style-type: decimal;">
<li><p>The linux image released by OPI defaults to Open a terminal on the DEB package of desktop, and then enter the kernel header file. The location is'''/opt/glmark2'''</p><p>orangepi@orangepi5plus:~$ '''ls /opt/linux-headers*'''</p><p>/opt/linux-headers-legacy-rockchip-rk3588_x.x.x_arm64.deb</p></li><li><p>Use the following command to install the deb package of the kernel header file</p><p>'''The name of the kernel file deb package needs to be replaced with the actual name, please don’t copy it。'''</p><p>orangepi@orangepi:~$ '''sudo''' '''dpkg''' '''-i''' '''/opt/linux-headers-legacy-rockchip-rk3588_1.x.x_arm64.deb'''</p></li><li><p>After installation, If you can see the folder where the kernel header file is located under the'''/usr/srcPanfros'''</p><p>orangepi@orangepi:~$ after '''ls /usr/srcGL_VERDOR'''</p><p>linux-headers-5.10, This shows that it is used in GPU.110-rockchip-rk3588</p></li><li><p>Then you can write a Hello kernel module to test the kernel header file</p><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;"><li><p>First write the code of the Hello kernel module, as shown &gt; below:</p><p>orangepi@orangepi:~$ '''vim''' '''hello.c'''</p><p>#include &lt;linux/init.h&gt;</p><p>#include &lt;linux/module.h&gt;</p><p>static int hello_init(void)</p><p>{</p><p>printk(&quot;Hello Orange Pi |-- init\n&quot;);</p><p>return 0;</p><p>}</p><p>static void hello_exit(void)</p><p>{</p><p>printk(&quot;Hello Orange Pi -- exit\n&quot;);</p><p>return;</p><p>}</p><p>module_init(hello_init);</p><p>module_exit(hello_exit);</p><p>MODULE_LICENSE(&quot;GPL&quot;);</p></li><li><p>Then write a makefile file that compiles the Hello kernel &gt; module, as shown below:</p>|<p>orangepi@orangepi:~$ '''vim''' '''Makefileglmark2'''</p><p>ifneq ($(KERNELRELEASE),)</p>|}<p>obj-m:=hello.o</p><p>else</p><p>KDIR [[File:=/lib/modules/$(shell uname plus5-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 *img454.ko *.o *.mod.o *.mod *.symvers *.cmd *.mod.c *.order</p><p>endifpng]]</p></li><li><p>Then use the make command to compile the Hello kernel module, &gt; and the output of the compilation process glmark2 running score test is shown below:</p><p>'''If you compile the code you copy here, if you have any problemsgenerally more than 1, go to the''' '''official tool''' '''to download the source code and upload it to the Linux system of the development board for testing'''000 points</p><p>[[File:./images/media/image503plus5-img455.png|253x41px]]</p><p>orangepi@orangepi:~$ '''make'''</p><p>make -C /lib/modules/5.10.110-rockchip-rk3588/build M=/home/orangepi modules</p><p>make[1]: Entering directory '/usr/src/linux-headers-5.10.110-rockchip-rk3588'</p><p>CC [M] /home/orangepi/hello.o</p><p>MODPOST /home/orangepi/Module.symvers</p><p>CC [M] /home/orangepi/hello.mod.o</p><p>LD [M] /home/orangepi/hello.ko</p><p>make[1]: Leaving directory '/usr/src/linux-headers-5.10.110-rockchip-rk3588'</p></li><li><p>After compiling, the '''hello.ko''' kernel module will be &gt; generated</p><p>orangepi@orangepi:~$ Run '''ls *gpu_load.kosh'''</p><p>hello.ko</p></li><li><p>Use the '''insmod''' command to insert the '''hello.ko''' kernel &gt; module into the kernel</p><p>orangepi@orangepi:~$ '''sudo''' '''insmod hello.ko'''</p></li><li><p>Then use the '''demsg''' command script to view the output current load of the &gt; '''hello.ko''' kernel module. If you can see the output &gt; instructions below, the hello.ko kernel module is loaded &gt; correctlyGPU</p><p>orangepi@orangepi{| class="wikitable" style="width:~$ '''dmesg | grep &quot800px;Hello&quot;'''</p>" <p>[ 2871.893988] '''Hello Orange Pi -|- init'''</p></li><li><p>Use the '''rmmod''' command to uninstall the '''hello.ko''' kernel &gt; module</p>|<p>orangepi@orangepi:~$ '''sudo''' '''rmmod hellogpu_load.sh'''</p><p>orangepi@orangepi:~$ '''dmesg | grep &quot;Hello&quot;'''</p>}<p>[ 2871[File:plus5-img456.893988png] Hello Orange Pi -- init</p><p>[ 3173.800892] '''Hello Orange Pi -- exit'''</p></li></ol> </lispan id="chromium-browser-hard-solution-to-play-video-test-method"></olspan>
<span id="how-to-use-10.1-inch-mipi-lcd-screen"></span>== How Chromium browser hard solution to use 10.1 inch MIPI LCD screen == <span id="inch-mipi-screen-assembly-play video test method"></span>=== 10.1 -inch MIPI screen assembly method ===
<ol style="list-style-type: decimal;">
<li><p>First prepare open the required accessorieschromium browser</p><ol style="list-style-typep>[[File: lowerplus5-alpha;"img457.png]]</p></li><li><p>10.1 -inch MIPI LCD display+touch screen (this screen Then enter '''chrome://gpu''' in the Chromium browser to view the support of GPU and &gt; OPI5/OPI5B universal)video decoding</p><p>[[File:plus5-img458.png]]</p></li><li><p>Then you can open a video website to play a video file, or enter the following path name player to play a test video file in the browser.</p>{| class="wikitable" style="width:800px;" |-|<p>'''/imagesusr/medialocal/image504test.png|338x252px]]mp4'''</p>|}</li><li><p>Screen divert plate+31pin When playing the video, you can run the '''vpu_debug.sh''' script in the terminal. If there is a print output in the lower right corner of the figure below, it means that there is a hardware to 40pin linedecode the video.</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~$ '''vpu_debug.sh'''</p>|}
<div class="figure">
[[File:./images/media/image505plus5-img459.png|230x199px|DD9A8F44-0D8F-4f06-9473-B539DEED850C]]
</div></li><li><p>30pin mipi line</p><div class="figure"ol>
[[File:./images/media/image506.png|443x41px|C2164119<span id="kodi-hard-solution-to-6EC3play-49aevideo-9A95test-BE323F51FAE1]]method"></span>
</div></li><li><p>12pin touch screen row line</p><p>[[File:./images/media/image507.png|344x50px]]</p></li></ol></li><li><p>According == Kodi hard solution to the figure below, the 12PIN touch screen row, 31PIN to 40PIN ducts, and 30pin MIPI cables get on the screen dial board. Pay attention to line of the touch screen the blue insulation face under . If you get an error, it will cause no display or unable to touch</p><p>[[File:./images/media/image508.png|574x142px]]</p></li><li><p>Place the connected rotor connected to the puzzle on the MIPI LCD screen according to the figure below, and connect the MIPI LCD screen and the rotary board through 31PIN to 40Pin row</p></li></ol>play video test method ==
[[File:./images/media/image509.png{|382x563px]] <ol startclass="4wikitable" style="listbackground-style-typecolor:#ffffdc;width: decimal800px;"><li><p>Then connect the touch screen and the rotor board through the 12PIN touch screen line, pay attention to the orientation of the insulating surface.</p><p>[[File:./images/media/image510.png|253x161px]]</p></li><li><p>Finally connect to the LCD interface of the development board through the 30PIN MIPI duct</p>-<p>[[File:./images/media/image511.png|405x225px]]</p><pbig>'''Note that there will be problems with the touch interface below is not used for Kodi display directly on the LCD MIPI screenWayland desktop. Please open Kodi strictly according to the following method. It is currently a spare interface and cannot be used'''</pbig><p>[[File:./images/media/image512.png|334x70px]]</p></li></ol> <span id="open-the-10.1--inch-mipi-lcd-screen-configuration"></span>=== Open the 10.1 -inch MIPI LCD screen configuration ===}
<ol style="list-style-type: decimal;">
<li><p>The Linux image defaults to First log in the system</p><p>[[File:plus5-img460.png]] [[File:plus5-img461.png]]</p></li><li><p>When the configuration of login system will enter the mipi lcd screen by defaultlogin interface below</p><p>[[File:plus5-img450. If you need to use png]]</p></li><li><p>Then click the location shown in the mipi lcd screenfigure below</p><p>[[File:plus5-img451.png]]</p></li><li><p>Then select '''Kodi Wayland''', you need to open it manually。then enter the password login system</p><p>[[File:plus5-img462.png]]</p></li><li><p>The position of the development board MIPI LCD screen interface after Kodi is opened is displayed as shown below:below</p><div class="figure"> [[File:plus5-img463.png]] </div></li><li><p>Then click Settings</p><p>[[File:plus5-img464.png]]</p></li><li><p>Then select '''Player'''</p><p>[[File:plus5-img465.png]]</imagesp></mediali><li><p>Then select '''Videos''', and then click '''Standard''' in the lower left corner</image513p><p>[[File:plus5-img466.png|428x77px]]</p></li><li><p>After clicking twice, it will be switched to the '''Expert''' mode. The steps of opening specific display is shown in the figure below</p><p>[[File:plus5-img467.png]]</p></li><li><p>Then open the '''Allow using DRM PRIME decoder''' in the P'''rocessing''' settings</p><p>[[File:plus5-img468.png]]</p></li><li><p>Then let's introduce a system's own test video test. You can also upload the MIPI LCD configuration are shown below:video you want to play to the system, and then import and play</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First run enter the orangePimain interface, then select '''Movies'''</p><p>[[File:plus5-configimg469. Ordinary users remember to add &gt; Sudo permissionspng]]</p></li><li><p>orangepi@orangepi:~$ Then choose '''sudoAdd videos...''' </p><p>[[File:plus5-img470.png]]</p></li><li><p>Then choose '''orangepi-configBrowse'''</p><p>[[File:plus5-img471.png]]</p></li><li><p>Then choose '''SystemRoot filesystem'''</p><p>[[File:plus5-img472.png]]</imagesp></mediali><li><p>Then choose '''usr'''</image314p><p>[[File:plus5-img473.png|379x175px]]</p></li><li><p>Then choos choose '''Hardwarelocal'''</p><p>[[File:./images/media/image315plus5-img474.png|379x164px]]</p></li><li><p>Then use the keyboard orientation to position the &gt; choose '''opi5plus-lcdOK''', and then use the </p><p>[[File:plus5-img475.png]]</p></li><li><p>Then choose '''spaceOK''' to select</p><p>[[File:plus5-img476.png]]</imagesp></mediali><li><p>Then choose OK</image514p><p>[[File:plus5-img477.png|349x57px]]</p></li><li><p>Then select &lt;Save&gt;enter the Local folder</p><p>[[File:./images/media/image515plus5-img478.png|263x123px]]</p></li><li><p>Then sele you can play '''&lt;Back&gt;test.mp4'''test video</p><p>[[File:./images/media/image516plus5-img479.png|264x116px]]</p></li></ol></li><li><p>Then select When playing the video, you can run the '''&lt;Reboot&gt;vpu_debug.sh'''restart system script under the command line (via SSH or serial port). If there is a print output below, it means that there is a hardware to make decode the &gtvideo</p>{| class="wikitable" style="width:800px; configuration effective" |-|<p>orangepi@orangepi:~$ '''vpu_debug.sh'''</p><p>[1830.938378] rk_vcodec: fdc48100.rkvdec-core:1 session 3573:2 time: 2728 us</p><p>[File1830.938461] rk_vcodec:fdc38100.rkvdec-core:0 session 3573:2 time: 2617 us</imagesp><p>[ 1830.941179] rk_vcodec: fdc48100.rkvdec-core:1 session 3573:2 time: 2661 us</mediap><p>[ 1830.941777] rk_vcodec: fdc38100.rkvdec-core:0 session 3573:2 time: 2708 us</image517p><p>[ 1830.png|226x105px944727]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</lip><p>[ 1831.199650] rk_vcodec: fdc38100.rkvdec-core:0 session 3573:2 time: 2703 us</olp>|}
</li>
<li><p>After starting, you can see the display Play '''test.mp4''' video file CPU occupation rates of the LCD screen as shown below (the default is vertical screen):about '''20%~ 30%'''.</p><p>[[File:plus5-img480.png]]</p></li></ol>
[[File:<span id="ubuntu22.04-gnome-to-install-ros-2-humble"></images/media/image518.png|169x244px]]span>
<span id="the-server-version-of-the-image-rotation-display-direction-method"></span>=== The server version of the image rotation display direction method =Ubuntu22.04 Gnome to install ROS 2 Humble ==
<ol style="list-style-type: decimal;">
<li><p>Add '''<span class="mark">extrargs = fbcon = rotate: The direction to rotate</span>''' is in '''/boot/orangepiEnv.txtYou can install ROS2 with '''install_ros. This configuration can set the direction of the LINUX system of the server version,Among them, sh'''fbcon=rotate:''' The following numbers can be set to be set toscript</p><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;"><li><p>0: Normal screen (default vertical screen)</p></li>|-<li><p>1: Turn 90 degrees clock</p></li><li><p>2: Flip 180 degrees</p></li><li><p>3: Turn to 270 degrees clock</p>|<p>orangepi@orangepi:~$ '''sudo vim''' '''/boot/orangepiEnvinstall_ros.txt'''</p><p>overlays=opi5plus-lcd</p><p>'''extraargs=cma=128M''' '''fbcon=rotate:3sh ros2'''</p><p>'''Note that if/boot/orangepienv.txt is configured in the default default exiArgs = CMA = 128M, fbcon = rotate: 3 The configuration can be added to the extensraargs = cma = 128m (need to be separated by spaces)。'''</p></li></ol>|}
</li>
<li><p>Then install'''<span class="mark">restart</span>_ros.sh''' script will automatically run the Linux system to '''ros2 -h''' command after ros2 is installed. If you can see that the direction of the LCD screen display has been rotatedprinting below</p>{| class="wikitable" style="width:800px;" |-|</lip>usage: ros2 [-h] Call `ros2 &lt;command&gt; -h` for more detailed usage. ...</olp>
<span id="the-desktop-image-rotation-display-and-touch-direction-method"></span>
=== The desktop image rotation display and touch direction method ===
<ol style="list-style-type: decimal;"><li><p>First open '''Display''' settings in the Linux system</p><p>[[File:./images/media/image521.png|339x234px]]</p></li><li><p>Then select the direction you want to rotate in the '''Rotation'''</p><ol style="list-style-type: lower-alpha;"><li><p>'''None''': Not rotate</p></li><li><p>'''Left''': Rotate 90 degrees to the left</p></li><li><p>'''Inverted''': Flipting up and down ros2 is equivalent to rotating 180 &gt; degrees</p></li><li><p>'''Right''': Rotate 90 degrees to the right</p><p>[[File:./images/media/image522.png|330x208px]]</p></li></ol></li><li><p>Then click '''Apply'''</p><p>[[File:./images/media/image523.png|330x207px]]</p></li><li><p>Then click '''Keep this configuration'''</p><p>[[File:./images/media/image524.png|458x258px]]</p></li><li><p>At this time, the screen display has been rotated, and then the '''Display''' program is turned off</p></li><li><p>The above steps will only select the display direction, and it will not rotate the direction of touch. Use set_lcd_rotate.sh script to rotate the direction of touch. After this script is set, it will be automatically restarted, and then you can test whether the touch can be used normally</p><ol style="list-stylean extensible command-type: lower-alpha;"><li><p>'''None''': Not rotate</p><p>orangepi@orangepi:~$ '''set_lcd_rotateline tool for ROS 2.sh none'''</p></li><li><p>'''Left''': Rotate 90 degrees to the left</p><p>orangepi@orangepi:~$ '''set_lcd_rotate.sh left'''</p></li><li><p>'''Inverted''': Flipting up and down, equivalent to rotating 180 &gt; degrees</p><p>orangepi@orangepi:~$ '''set_lcd_rotate.sh inverted'''</p></li><li><p>'''Right''': Rotate 90 degrees to the right</p><p>orangepi@orangepi:~$ '''set_lcd_rotate.sh right'''</p><p>'''set_lcd_rotate.sh The script mainly does four things:'''</p></li></ol></li></ol>
<!-- -->
<ol style="list-style-type: decimal;">
<li><p>'''Rotate the direction of Framebuffer displayed'''</p></li>
<li><p>'''The direction of rotating touch'''</p></li>
<li><p>'''Close the boot LOGO'''</p></li>
<li><p>'''Restart the system'''</p>
<p>'''The direction of the rotation touch is achieved by adding''' '''<span class="mark">Option</span>''' '''<span class="mark">Tr</span>ansformationMatrix&quot;&quot;x x x x x x x x x&quot;in''' '''/usr/share/X11/xorg.conf.d/40-libinput.conf.''' '''Among them, &quot;x x x x x x x x x&quot; is different in different directions。'''</p></li></ol>
<!-- --p><ol start="7" style="list-style-typeoptional arguments: decimal;"><li><p>Touch rotation reference materials</p>:<p>'''https://wiki.ubuntu.com/X/InputCoordinateTransformation'''-h, --help show this help message and exit</p></li></ol>
<span id="instructions-for-opening-the-logo-use-instructions"></span>
== Instructions for opening the logo use instructions ==
<ol style="list-style-typep>Commands: decimal;"</p>:<lip>action Various action related sub-commands</p>The default LOGO default is displayed in the desktop version of the system:</p>bag Various rosbag related sub-commands</lip><li>:<p>Set the '''bootlogo''' variable to '''false''' in '''/boot/orangepiEnv.txt''' to turn off the switch to the LOGOcomponent Various component related sub-commands</p>:<p>orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt'''daemon Various daemon related sub-commands</p>:<p>verbosity=1doctor Check ROS setup and other potential issues</p>:<p>'''bootlogo=false'''interface Show information about ROS interfaces</p>:<p>launch Run a launch file</lip><li>:<p>Set the '''bootlogo''' variable to '''true''' in'''/boot/orangepiEnv.txt''' to turn the opening and the logolifecycle Various lifecycle related sub-commands</p>:<p>orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt'''multicast Various multicast related sub-commands</p>:<p>verbosity=1node Various node related sub-commands</p>:<p>'''bootlogo=true'''param Various param related sub-commands</p></li><li>:<p>The position of the LOGO picture in the Linux system ispkg Various package related sub-commands</p>:<p>'''/usr/share/plymouth/themes/orangepi/watermark.png'''run Run a package specific executable</p></li><li>:<p>After replacing the start security Various security related sub-up logo picture, you need to run the command to take effectcommands</p>:<p>orangepi@orangepi:~$ '''sudo updateservice Various service related sub-initramfs -u'''commands</p>:</lip>topic Various topic related sub-commands</olp:<span id="test-methods-for-ov13850-and-ov13855-mipi-camera"p>wtf Use `wtf` as alias to `doctor`</spanp>== Test methods for OV13850 and OV13855 MIPI camera ==
At present, the development board supports two MIPI cameras, OV13850 and OV13855. The specific pictures are shown below:
:<p>Call `ros2 &lt;command&gt; -h` for more detailed usage.</p>|}</li><li><p>Then you can use the '''test_ros.sh''' script to test whether the ROS 2 is successfully installed. If you can see the printing below, it means that the ROS 2 can run normally<ol /p>{| class="wikitable" style="list-style-typewidth: lower-alpha800px;"|-|<p>orangepi@orangepi5plus:~$ '''test_ros.sh'''</p><lip>[INFO] [1671174101.200091527] [talker]: Publishing: 'Hello World: 1'</p><p>OV13850 camera at 13 million MIPI interface[INFO] [1671174101.235661048] [listener]: I heard: [Hello World: 1]</p><p>[INFO] [File1671174102.199572327] [talker]: Publishing:'Hello World: 2'</p><p>[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: 2]</imagesp><p>[INFO] [1671174103.199580322] [talker]: Publishing: 'Hello World: 3'</media/image24p><p>[INFO] [1671174103.png|268x151px204019965] [listener]: I heard: [Hello World: 3]</p>|}</li><li><p>13 million MIPI interface OV13855 cameraRun the following command to open rviz2</p>{| class="wikitable" style="width:800px;" |-|<p>[[Fileorangepi@orangepi:.~$ '''source /opt/imagesros/mediahumble/image25setup.png|253x150px]]bash'''</p><p>The rotary board used by OV13850 and OV13855 cameras is the same as the FPC cable, but the two cameras are different from the position on the rotary board. The FPC lines are shown in the figure below. Please note that the FPC line is directed. It is marked that the orangepi@orangepi:~$ '''TO MBros2 run rviz2 rviz2''' must be inserted into the camera interface of the development board. It is marked that the end of '''TO CAMERA''' needs to be inserted on the camera transfer board。</p></li></ol> [[File:./images/media/image525.png|373x78px]]} There are a total of 3 cameras on the camera to connect to the board, which can only be used one at the same time, as shown in the <div class="figure below, among which:">
<ol style="list-style-type[[File: lowerplus5-alpha;"><li><p>'''No. 1 connect with OV13850 camera'''</p></li><li><p>'''No. 2 interface OV13855 camera'''</p></li><li><p>The No. 3 interface is not used, just ignore itimg481.</p></li></ol>png]]
[[File</div></li><li><p>Reference document</p>{| class="wikitable" style="width:800px;" |-|<p>'''http://docs.ros.org/en/humble/index.html'''</p><p>'''http://docs.ros.org/en/imageshumble/mediaInstallation/image526Ubuntu-Install-Debians.pnghtml'''</p>|288x172px]]}</li></ol>
Orange Pi 5 Plus development board has a total <span id="set-the-chinese-environment-and-the-method-of 1 camera interface, which is shown below:-installing-the-chinese-input-method"></span>
[[File:./images/media/image527.png|408x95px]]== Set the Chinese environment and the method of installing the Chinese input method ==
<ol style="list-style-type: decimal;"><li><p>Open the settings first</p><p>[[File:plus5-img448.png]]</p></li><li><p>Then find the '''Region &amp; Language''' option, and then click '''Manage Installed Languages''' options</p><p>[[File:plus5-img482.png]]</p></li><li><p>Then use the left mouse button to select '''<span class="mark">Chinese (China)</span>''' and hold it down, and then drag it up to the beginning. The method of display after the camera inserted dragging is shown in the development board figure below:</p><p>[[File:plus5-img483.png]]</p></li><li><p>Then select the '''Apply System-Wide''' to apply the Chinese settings to the entire system</p><p>[[File:plus5-img484.png]]</p></li><li><p>'''<span style="color:#FF0000">Then restart the linux system to make the configuration effective</span>'''</p></li><li><p>After re -entering the system, please choose not to '''<span class="mark">ask me again</span>''' at the interface below, and then determine whether the standard folder should be updated to Chinese according to your preference</p><p>[[File:plus5-img485.png]]</p></li><li><p>Then you can see that the desktop is shown below:displayed as Chinese</p><div class="figure">
[[File:./images/media/image528plus5-img486.png|332x154px]]
After connecting the camera to the development board, we can use the following method to test the camera: <ol style="list-style-type: lower-alpha;"><li><p>First run the '''orangepi-config'''. Ordinary users remember to add '''sudo''' permissions</p><p>orangepi@orangepi:~$ '''sudo''' '''orangepi-config'''</p></li><li><p>Then select '''System'''</p><p>[[File:./images/media/image314.png|399x184px]]</p></li><li><p>Then choose '''Hardware'''</p><p>[[File:./images/media/image315.png|403x175px]]</pdiv></li><li><p>Then use the keyboard to locate the position shown in the figure below, and then use the camera you want to open in the space. Among them, '''opi5plus-ov13850''' means using an OV13850 camera, '''opi5plus-ov13855''' indicates the use of OV13855 camera。</p><p>[[File:./images/media/image529.png|400x37px]]</p></li><li><p>Then choose '''&lt;Save&gt;'''Fcitx5 configuration program</p><p>[[File:./images/media/image530plus5-img487.png|338x109px576x326px]]</p></li><li><p>Then choose '''&lt;Back&gt;'''</p><p>[[File:./images/media/image531.png|338x86px]]</p></li><li><p>Then select the'''&lt;Reboot&gt;''' restart system to make the configuration effective</p><p>[[File:./images/media/image319.png|316x139px]]</p></li><li><p>Then open a terminal in the desktop system and run the script below</p><p>orangepi@orangepi:~$ '''test_camera.sh'''</p></li><li><p>Then you can see the preview of the camerause Pinyin input method</p>
<div class="figure">
[[File:./images/media/image532plus5-img488.png|576x324px|1]]
</div></li><li><p>The interface after selecting is shown below, then click OK</p><p>[[File:plus5-img489.png]]</p></li><li><p>Then we can open the Chinese input method of '''Geany''' test, and the way to open is shown in the figure below</p><p>[[File:plus5-img490.png]]</p></li><li><p>After opening '''Geany''', the default is an English input method. We can switch into Chinese input method through the '''Ctrl+Space''' shortcut keys, and then we can enter Chinese</p><p>[[File:plus5-img491.png]]</p></li></ol>
<span id="testorange-methodpi-foros-infraredarch-receivingsystem-use-instructions"></span>== Test method for infrared receiving ==
There is an infrared receiver on the development board, which is connected to the= '''PWM15_IR_M1Orange Pi OS Arch system use instructions''' pin. The method of checking the key value received by infrared is shown below:=
<ol stylespan id="listorange-stylepi-type: decimal;"><li><p>First run the '''evtest''' command in the command line, and then select the device serial number corresponding to the '''febf0030.pwm'''</p><p>orangepi@orangepi:~$ '''evtest'''</p><p>No device specified, trying to scan all of /dev/input/event*</p><p>Not running as root, no devices may be available.</p><p>Available devices:</p><p>'''/dev/input/event0: febf0030.pwm'''</p><p>/dev/input/event1: rk805 pwrkey</p><p>/dev/input/event2: rockchip,dp0 rockchip,dp0</p><p>/dev/input/event3: rockchipos-hdmi0 rockchiparch-hdmi0</p><p>/dev/input/event4: rockchip-hdmi1 rockchipsystem-hdmi1</p><p>/dev/input/event5: headsetadaptation-keys</p><p>/dev/input/event6: rockchip,es8388 Headset</p><p>/dev/input/event7: adc-keys</p><p>/dev/input/event8: SONiX USB Keyboard</p><p>/dev/input/event9: SONiX USB Keyboard Consumer Control</p><p>/dev/input/event10: SONiX USB Keyboard System Control</p><p>/dev/input/event11: PixArt USB Optical Mouse</p><p>Select the device event number [0-11]: '''0 #Select the serial number corresponding to''' '''<span class="marksituation">Febf0030.pwm</span>''' '''here'''</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: &quot;febf0030.pwm&quot;</p><p>Supported events:</p><p>Event type 0 (EV_SYN)</p><p>Event type 1 (EV_KEY)</p><p>Event code 2 (KEY_1)</p><p>Event code 3 (KEY_2)</p><p>Event code 4 (KEY_3)</p><p>Event code 5 (KEY_4)</p><p>Event code 6 (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:</p><p>Testing ... (interrupt to exit)</p></li><li><p>Then need to prepare an infrared remote control shown in the figure below</p><p>'''Note: The Linux == Orange Pi OS Arch system provided by the Orange School only supports the remote control provided by the Orange School. The remote control of the TV or air conditioner cannot be used。'''</p><div classadaptation situation =="figure">
[[File:./images/media/image533.jpeg{|199x183px|IMG_256]] </div></li><li><p>Then press the button on the infrared receiver on the development board to press the button on the remote control. The position of the infrared receiver on the development board is as shown in the figure below:</p><p>[[File:./images/media/image534.png|346x92px]]</p></li><li><p>Then you can see that '''evtest''' will print the received key value</p><p>......</p><p>Event code 217 (KEY_SEARCH)</p><p>Event code 388 (KEY_TEXT)</p><p>Properties:</p><p>Testing ... (interrupt to exit)</p><p>Event: time 1684152321.834907, type 1 (EV_KEY), code 2 (KEY_1), value 1</p><p>Event: time 1684152321.834907, -------------- SYN_REPORT ------------</p><p>Event: time 1684152322.017512, type 1 (EV_KEY), code 2 (KEY_1), value 0</p><p>Event: time 1684152324.630961, -------------- SYN_REPORT ------------</p><p>Event: time 1684152326.482359, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 1</p><p>Event: time 1684152326.482359, -------------- SYN_REPORT ------------</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> <span idclass="the-method-to-use-rtcwikitable"></span>== The method to use RTC == <ol style="list-style-typewidth: decimal800px;"><li><p>A RTC battery interface is reserved on the development board, which is shown below:</p><p>[[File:./images/media/image29.png|344x126px]]</p></li><li><p>The RTC battery that needs to be purchased is shown below. The interface is 2pin, 1.25mm spacing</p>-<p>[[File:./images/media/image28.png|152x81px]]</p></li><li><p>The RTC chip used on the development board is Hym8563TS. This chip has the following characteristics:</p><ol style="listtext-style-typealign: lower-alphaleft;">| '''Function'''<li><p>Wide work voltage range:1.0~5.5v</p></li><li><p>Low dormant current:Typical value 0.25μA(VDD =3.0V, TA =25°C)</p></li></ol></li><li><p>After connecting the RTC battery on the development board, use the following method to test whether the RTC has been working normally:</p><ol style="list-style-type: lower-alpha;"><li><p>First turn on the system, then record the current time of the &gt; system</p></li><li><p>Then use the Poweroff command to turn off the system normally</p></li><li><p>Then unplug the power supply to ensure that the development &gt; board does not access the network cable and wireless WiFi, and &gt; wait a few minutes</p></li><li><p>Then start the system again. If you see the time walk forward &gt; for a few minutes after entering the system, it means that the &gt; RTC module and the battery work normally</p></li></ol></li><li><p>See the command of the RTC information through the ProcFS interface of the Linux system</p><p>orangepi@orangepi:~$ | '''cat /proc/driver/rtcOPi OS Arch Gnome'''</p><p>rtc_time : 06:07:40</p><p>rtc_date : 2023-05-22</p><p>alrm_time : 03:36:00</p><p>alrm_date : 2023-05-23</p><p>alarm_IRQ : no</p><p>alrm_pending : no</p><p>update IRQ enabled : no</p><p>periodic IRQ enabled : no</p><p>periodic IRQ frequency : 1</p><p>max user IRQ frequency : 64</p><p>24hr : yes</p></li></ol> <span id="how-to-use-the-cooling-pwm-fan"></span>== How to use the cooling PWM fan == <ol | style="listtext-style-typealign: decimalleft;"><li><p>The development board is used for interfaces that connect the heat sink fan. The interface specifications are '''2pin 1.25mm''' spacing, | '''OPi OS Arch Xfce(<span classstyle="markcolor:#FF0000">5V voltage driverTo be released</span>''', and the position of the fan interface is shown in the figure below:</p><p>[[File|-| style="text-align:./images/media/image20.pngleft;"|410x171px]]</p></li><li><p>The fan on the development board can adjust the speed and switch through PWM, and the PWM pins used are '''PWM3_IR_M1HDMI TX1 video'''</p></li><li><p>The Linux system uses the | '''pwm-fanOK''' driver to control the fan by default. The DTS configuration used is shown below:</p><p>'''orange-pi-5.10-rk3588/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts'''</p><p>fan: pwm-fan {</p><p>compatible = &quot;pwm-fan&quot;;</p><p>#cooling-cells = &lt;2&gt;;</p><p>pwms = &lt;&amp;pwm3 0 50000 0&gt;;</p><p>cooling-levels = &lt;0 50 100 150 200 255&gt;;</p><p>rockchip,temp-trips = &lt;</p><p>50000 1</p><p>55000 2</p><p>60000 3</p><p>65000 4</p><p>70000 5</p><p>&gt;;</p><p>status = &quot;okay&quot;;</p><p>};</p><p>Among it:</p><ol | style="listtext-style-typealign: lower-alphaleft;"><li><p>'| ''pwms = &lt;&amp;pwm3'OK'' '''0 50000 0&gt;''':The PWM of the control fan &gt; is PWM3。</p></li><li><p>'''cooling|-levels | style= &lt;0 50 100 150 200 255&gt;''':It is used to &gt; configure the gear of the speed (PWM duty cycle). The number &gt; and size of the gear can be defined by itself. Here are 6 &gt; gears. The range of the speed is 0"text-255。</p></li><li><p>'''rockchip,temp-trips''':It is used to configure the &gtalign: left; corresponding relationship between the CPU temperature and the &gt; fan speed gear. It can be adjusted according to actual needs. &gt; The above configuration 50 degrees corresponding gear 1, 70 &gt; degrees to the corresponding gear 5。</p><p>"| '''It is normal to find that the fan does not turn after turning, because the temperature of the CPU after booting is generally lower than 50 degrees. Only when the temperature of the CPU reaches 50 degrees, the fan will start to turn。HDMI TX1 Audio'''</p><p>| '''Use the following commands to make all CPUs run, and then you can see that the fan will start working:OK'''</p><p>orangepi@orangepi| style="text-align:~$ left;"| '''for i in $(seq 0 $(( $(nproc --all) - 1)) ); do (taskset -c $i yes &gt; /dev/null &amp;); doneOK'''</p></li></ol></li></ol> <span id="the-method-of-shutting-down-and-restarting-the|-development-board"></span>== The method of shutting down and restarting the development board == <ol | style="listtext-style-typealign: decimalleft;"><li><p>In the process of running the Linux system, if the Type-C power supply is directly out of power, it may cause the file system to lose certain data or damage. Therefore, please use the | '''poweroffHDMI TX2 video''' command to turn off the linux system of the development board before power off. Then Unplug the power supply。</p><p>orangepi@orangepi:~$ | '''sudo poweroffOK'''</p></li><li><p>In addition, the development board is equipped with a switch button, and you can also '''short press''' the switch button on the development board to turn off。</p><p>[[File| style="text-align:./images/media/image535.pngleft;"|444x98px]]</p></li></ol> '''Note that the Linux desktop system will pop up the confirmation box shown in the figure below after pressing the buttons. You need to click the''' '''Shut Down''' '''option to shut down.OK'''|-[[File:./images/media/image536.png|256x240px]] <ol start="3" style="listtext-style-typealign: decimalleft;"><li><p>After shutting down, press the switch button on the development board to turn on。</p><p>[[File:./images/media/image535.png|444x98px]]</p></li><li><p>Restart the command of the Linux system.</p><p>orangepi@orangepi:~$ '''sudoHDMI TX2 Audio''' | '''rebootOK'''</p></li></ol> <span id| style="ubuntu22.04text-gnome-wayland-desktop-system-instructionsalign: left;"></span>= Ubuntu22.04 Gnome Wayland Desktop system instructions = '''ubuntu22.04 gnome image default pre -installed PanFork Mesa user space library, pre -installed Kodi player and Chromium browser support hard solution video.''' | '''It should be noted that this image needs to be used under Wayland. If you need to use X11, select the XFCE type image.OK''' <span id="ubuntu22.04-gnome-desktop-system-adaptation-situation"></span>== Ubuntu22.04 GNOME desktop system adaptation situation == {| class="wikitable"
|-
| style="text-align: left;"| '''Function'''| style="text-align: left;"| '''Ubuntu22.04 Gnome Wayland'''|-| style="text-align: left;"| '''HDMI TX1video'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX1 Audio'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX2 RX video'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX2 Audio'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI RX video'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''HDMI RX Audio'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''USB2.0X2'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''USB3.0X2'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''2.5G PCIe network port X2'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''2.5G PCIe network port lightportlight'''| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Debug serial port'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''RTC chip'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''FAN Fan interface'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''eMMC Extension ports'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''AP6275P-WIFI'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''AP6275P-BT'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''AX200-WIFI'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''AX200-BT'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''AX210-WIFI'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''AX210-BT'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''RTL8852BE-WIFI'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''RTL8852BE-BT'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''MaskROM button'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Type-C to USB3.0'''
| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C ADB Function'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Type-C DP video'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Type-C DP Audio'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Switch button'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Infrared function'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Three -color LED light'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Board MIC on board'''| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Headphones play'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Headset recording'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''SPK trumpet'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''40PIN GPIO'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''40PIN I2C'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''40PIN SPI'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''40PIN UART'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''40PIN CAN'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''40PIN PWM'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''TF card startup'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''SPI+NVMe startupNVME start up'''| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''OV13850 Camera'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''OV13855 Camera'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''GPU'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''VPU'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''NPU'''
| '''<span style="color:#FF0000">NO</span>'''| style="text-align: left;"| '''OK<span style="color:#FF0000">NO</span>'''
|-
| style="text-align: left;"| '''REBOOT Command restart'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Poweroff Command shutdown'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''MIPI LCD show'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''MIPI LCD touch'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Watch Dog Test'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Chromium Hard solution video'''
| '''<span style="color:#FF0000">NO</span>'''| style="text-align: left;"| '''OK<span style="color:#FF0000">NO</span>'''
|-
| style="text-align: left;"| '''MPV Hard solution video'''
| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Kodi Hard solution video'''
| style="text-align: left;"| '''OK'''
|}
<span id="confirmhow-thatto-use-the-currentm.2-windowe-system-used-by-thekey-systempcie-iswifi6bluetooth-waylandmodule"></span> == Confirm that How to use the current window system used by the system is Wayland M.2 E-Key PCIE WIFI6+Bluetooth module == # First of all, you need to buy a PCIE WIFI6+Bluetooth module
<ol style::{| class="list-style-type: decimal;wikitable"><li><p>The system used by the system default is Wayland, and the confirmation method is shown below:</p><ol style="list-style-typewidth: lower-alpha800px;"><li><p>First open the settings</p>|-<p>[[File:./images/media/image537.png|243x181px]]</p></li>'''Serial number'''<li><p>Then select about, if the | '''Waylandmodel''' description settings &gt; displayed by | '''Windowing SystemPhysical picture''' in a column are correct</p><p>[[File:./images/media/image538.png|362x303px]]</p></li></ol></li><li><p>When the '''Log OutSupportive OS''' is out of the system, it will enter the login interface below</p><p>[[File:./images/media/image539.png|258x108px]]</p></li>-<li><p>Please click the location shown below before logging in to the system again</p><p>[[File:./images/media/image540.png|259x108px]]</p></li><li><p>Then select '''Ubuntu on Wayland1''' and enter the password login system</p><p>[[File:./images/media/image541.png|218x312px]]</p></li></ol>'''AX200'''
<span id="switch-the-method-of-default-audio-equipment"></span>== Switch the method of default audio equipment =='''(PCIE+USB Port)'''
<ol style="list-style-type: decimal;"><li><p>Open the settings first</p><p>| [[File:./images/media/image537plus5-img230.png|221x164px]]</p></li><li><p>Then select | '''SoundDebian''', and then select the audio device you want to use in '''Output Device'''</p><p>[[File:./images/media/image542.png|375x314px]]</p></li></ol>
<span id="gpu-test-method"></span>== GPU test method =='''Ubuntu'''
<ol style="list-style-type: decimal;"><li><p>Open a terminal on the desktop, and then enter the '''glmark2OpenWRT''' command. If you can see the '''Panfros''' after '''GL_VERDOR''', This shows that it is used in GPU.</p><p>orangepi@orangepi:~$ '''glmark2'''</p><p>[[File:./images/media/image543.png|381x258px]]</p></li><li><p>glmark2 running score test is generally more than 1,000 points</p><p>[[File:./images/media/image544.png|331x222px]]</p></li><li><p>Run '''gpu_load.sh''' script to view the current load of the GPU</p><p>orangepi@orangepi:~$ '''gpu_load.sh'''</p><p>[[File:./images/media/image545.png|529x281px]]</p></li></ol>
'''<span idstyle="chromium-browser-hard-solution-to-play-video-test-methodcolor:#FF0000">OPi OS Arch</span>== Chromium browser hard solution to play video test method =='''
<ol style="list|-style-type: decimal;"><li><p>First open the chromium browser</p><p>[[File:./images/media/image546.png|576x324px]]</p></li><li><p>Then enter '''chrome://gpu2''' in the Chromium browser to view the support of GPU and video decoding</p><p>[[File:./images/media/image547.png|337x197px]]</p></li><li><p>Then you can open a video website to play a video file, or enter the following path name player to play a test video file in the browser.</p><p>'''/usr/local/test.mp4AX210'''</p></li><li><p>When playing the video, you can run the '''vpu_debug.sh''' script in the terminal. If there is a print output in the lower right corner of the figure below, it means that there is a hardware to decode the video.</p><p>orangepi@orangepi:~$ '''vpu_debug.sh'''</p><div class="figure">
[[File:./images/media/image548.png|576x324px|Screenshot from 2023-05-22 15-01-46]]'''(PCIE+USB Port)'''
</div></li></ol>| [[File:plus5-img231.png]]| '''Debian'''
<span id="kodi-hard-solution-to-play-video-test-method"></span>== Kodi hard solution to play video test method =='''Ubuntu'''
'''Note that there will be problems with the Kodi display directly on the Wayland desktop. Please open Kodi strictly according to the following method。OpenWRT'''
'''<ol span style="list-style-typecolor: decimal;#FF0000"><li><p>First log in the system</p><p>[[File:./images/media/image549.png|231x153px]] [[File:./images/media/image550.png|266x118px]]</p></li><li><p>When the login system will enter the login interface below</p><p>[[File:./images/media/image539.png|258x108px]]</p></li><li><p>Then click the location shown in the figure below</p><p>[[File:./images/media/image540.png|259x108px]]</p>OPi OS Arch</li><li><pspan>Then select '''Kodi Wayland''', then enter the password login system</p><p>[[File:./images/media/image551.png|262x273px]]</p></li><li><p>The interface after Kodi is opened is displayed as shown below</p><div class="figure">
[[File:./images/media/image552.png|461x259px-|Screenshot from 2023-03-03 14-31-20]]'''3'''| '''RTL8852BE'''
</div></li><li><p>Then click Settings</p><p>[[File:./images/media/image553.png|343x149px]]</p></li><li><p>Then select '''Player'''</p><p>[[File:./images/media/image554.png|474x268px]]</p></li><li><p>Then select '''Videos''', and then click '''Standard''' in the lower left corner</p><p>[[File:./images/media/image555.png|477x268px]]</p></li><li><p>After clicking twice, it will be switched to the '''Expert''' mode. The specific display is shown in the figure below</p><p>[[File:./images/media/image556.png|441x249px]]</p></li><li><p>Then open the '''Allow using DRM PRIME decoder''' in the P'''rocessing''' settings</p><p>[[File:./images/media/image557.png|442x250px]]</p></li><li><p>Then let's introduce a system's own test video test. You can also upload the video you want to play to the system, and then import and play</p><ol style="list-style-type: lower-alpha;"><li><p>First enter the main interface, then select '''Movies'''</p><p>[[File:./images/media/image558.png|424x239px]]</p></li><li><p>Then choose '''Add videos...'''</p><p>[[File:./images/media/image559.png|429x242px]]</p></li><li><p>Then choose '''Browse'''</p><p>[[File:./images/media/image560.png|428x270px]]</p></li><li><p>Then choose '''Root filesystem'''</p><p>[[File:./images/media/image561.png|414x169px]]</p></li><li><p>Then choose '''usr'''</p><p>[[File:./images/media/image562.png|416x273px]]</p></li><li><p>Then choose '''local'''</p><p>[[File:./images/media/image563.png|417x274px]]</p></li><li><p>Then choose '''OK'''</p><p>[[File:./images/media/image564.png|425x278px]]</p></li><li><p>Then choose '''OK'''</p><p>[[File:./images/media/image565.png|431x273px]]</p></li><li><p>Then choose OK</p><p>[[File:./images/media/image566.png|454x260px]]</p></li><li><p>Then enter the Local folder</p><p>[[File:./images/media/image567.png|456x258px]]</p></li><li><p>Then you can play '''test.mp4''' test video</p><p>[[File:./images/media/image568.png|462x262px]]</p></li></ol></li><li><p>When playing the video, you can run the '''vpu_debug.sh''' script under the command line (via SSH or serial port(PCIE+USB Port). If there is a print output below, it means that there is a hardware to decode the video</p><p>orangepi@orangepi:~$ '''vpu_debug.sh'''</p><p>[ 1830.938378] rk_vcodec: fdc48100.rkvdec-core:1 session 3573:2 time: 2728 us</p><p>[ 1830.938461] rk_vcodec: fdc38100.rkvdec-core:0 session 3573:2 time: 2617 us</p><p>[ 1830.941179] rk_vcodec: fdc48100.rkvdec-core:1 session 3573:2 time: 2661 us</p><p>[ 1830.941777] rk_vcodec: fdc38100.rkvdec-core:0 session 3573:2 time: 2708 us</p><p>[ 1830.944727] rk_vcodec: fdc48100.rkvdec-core:1 session 3573:2 time: 3444 us</p><p>[ 1830.945211] rk_vcodec: fdc38100.rkvdec-core:0 session 3573:2 time: 3331 us</p><p>[ 1830.970563] rk_vcodec: fdc48100.rkvdec-core:1 session 3573:2 time: 2547 us</p><p>[ 1831.199650] rk_vcodec: fdc38100.rkvdec-core:0 session 3573:2 time: 2703 us</p></li><li><p>Play '''test.mp4''' video file CPU occupation rates of about '''20%~ 30%'''。</p></li></ol>
<span id="section-45"></span>=== | [[File:./images/media/image569plus5-img232.png|577x126px]] ===| '''Debian'''
<ol start="3" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li></ol></li><li></li></ol>'''Ubuntu'''
<span id="section-46"></span>=== ==='''Android12'''
'''<ol start="8" style="list-style-type: decimal;"><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li></ol></li><li></li><li></li><li></li><li><ol span style="list-style-typecolor: lower-alpha;#FF0000"><li></li><li></li><li></li><li></li></ol></li>OPi OS Arch</olspan>'''
<!-- --><ol start="5" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li></ol>'''OPi OS Droid'''
<!-- --><ol start="14" style="list-style-type: decimal;"><li></li></ol>|}
<span id::{| class="wikitable" style="sectionbackground-47color:#ffffdc;width:800px;"|-| <big>'''Pay attention to RTL8852BE, please do not buy the module shown in the figure below, there will be problems after testing.'''</spanbig>== ==
<ol start="6" style="list[[File:plus5-styleimg232-type: decimal;"><li></li><li></li><li></li><li></li>10.png|center]]<li></li></ol>|}
<span idol start="section2" style="list-48style-type: decimal;"><li><p>Then insert the WiFi module into the M.2 E-Key interface of the development board and fix it</p><p>[[File:plus5-img233.png]]</p></li><li><p>If everything is normal after the system starts, use the following command to see the WIFI device nodea</spanp>{| class="wikitable" style= =="width:800px;" |-|[orangepi@orangepi ~]$ '''ip a'''
<ol style="list-style-type: lower-alpha;"><li></li><li></li></ol>......
<!-- --><ol start="4" style="list-style-type: lower-alpha;"><li></li><li></li><li></li>wlan0: </olBROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdisc noqueue state UP group default qlen 1000
<!-- --><ol start="10" style="list-style-type: lower-alpha;"><li><link/li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol>ether 38:7a:0e:e3:80:05 brd ff:ff:ff:ff:ff:ff
<span id="section-49"><:inet 192.168.1.237/span>== ==24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0
<ol start="5" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li></ol>:valid_lft 42938sec preferred_lft 42938sec
<span id="section-50"><:inet6 fe80::a098:5942:16e:e817/span>== ==64 scope link noprefixroute
<ol start="6" style="list-style-type: decimal;"><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li>valid_lft forever preferred_lft forever<li></li></ol>|}
</li>
<li><p>The steps connected to the wifi are shown below:</p><ol style="list-style-type: lower-alpha;"><li><p>First click the area in the upper right corner of the desktop</p><p>[[File:plus5-img492.png]]</p></li><li><p>Then choose Wi-Fi</p><p>[[File:plus5-img493.png]]</p></li><li><p>Then select the WIFI you want to connect</p><p>[[File:plus5-img494.png]]</p></li><li><p>Then enter the password of the wifi, and click '''Connect'''</p><p>[[File:plus5-img495.png]]</p></li><li><p>Then enter the following interface to see the wifi connection</p><p>[[File:plus5-img496.png]]</p></li></ol>
</li>
<li><p>Example of Bluetooth use:</p><ol style="list-style-type: lower-alpha;"><li><p>First click the area in the upper right corner of the desktop</p><p>[[File:plus5-img492.png]]</p></li><li><p>Then open the settings</p><p>[[File:plus5-img497.png]]</p></li><li><p>Then select Bluetooth in the settings, and make sure that the switch button in the upper right corner of the Bluetooth is opened</p><p>[[File:plus5-img498.png]]</p></li><li><p>Then choose the Bluetooth device you want to configure the right, such as pairing with Android phones</p><p>[[File:plus5-img499.png]]</p></li><li><p>Then click '''Confirm''', the mobile phone also needs to confirm the pairing</p><p>[[File:plus5-img500.png]]</p></li><li><p>The display of the Bluetooth and Android phone is shown below:</p><p>[[File:plus5-img501.png]]</p></li><li><p>Then click the paired Bluetooth device to pop up the operating interface shown in the figure below</p><p>[[File:plus5-img502.png]]</p></li><li><p>Click '''Send Files...''' you can send a file to the phone</p></li> [[File:plus5-img503.png]]</ol><ol style="list-style-type: lower-roman;"><li><p>The schematic diagram of the Bluetooth sent pictures to the phone is shown below:</p><div class="figure">
<span id="section[[File:plus5-51"></span>== ==img504.png]]
<ol start="4" style="list-style-type: decimal;"><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><lidiv></li></ol>
</li></ol>
<span id="how-to-use-10.1-inch-mipi-lcd-screen-1"></span>
<span id="section-52"></span>== How to use 10.1 inch MIPI LCD screen ==
<ol startspan id="5" style="listinch-mipi-screen-assembly-stylemethod-type: decimal;1"><li></lispan><li></li><li></li><li></li></ol>=== 10.1 -inch MIPI screen assembly method ===
<span idol style="sectionlist-53style-type: decimal;"><li><p>First prepare the required accessories</spanp><ol style= "list-style-type: lower-alpha;"><li><p>10.1 -inch MIPI LCD display+touch screen (common to OPI5/OPI5B)</p><p>[[File:plus5-img417.png]]</p></li><li><p>Screen divert+31pin to 40pin exhaust</p><div class="figure">
<span id="section[[File:plus5-54"></span>== ==img418.png]]
</div></li>
<li><p>30pin mipi line</p>
<div class="figure">
[[File:plus5-----img419.png]]
</div></li>
<li><p>12pin touch screen line</p>
<p>[[File:plus5-img420.png]]</p></li></ol>
</li>
<li><p>According to the figure below, the 12PIN touch screen row, 31PIN to 40Pin line, and 30Pin MIPI cables get on the screen dial board. Pay attention to '''<span style="color:#FF0000">the blue insulation of the touch screen row line face to down</span>'''. If an error is connected, it will cause no display or unable to touch..</p>
<p>[[File:plus5-img421.png]]</p></li>
<li><p>Place the connected rotor connected to the puzzle on the MIPI LCD screen according to the figure below, and connect the MIPI LCD screen and the rotary board through 31PIN to 40Pin row</p></li>
[[File:plus5-img422.png]]</ol><ol start="4" style="list-style-type: decimal;"><li><p>Then connect the touch screen and the rotor board through the 12PIN touch screen line, pay attention to the orientation of the insulating surface</p><p>[[File:plus5-img423.png]]</p></li><li><p>Finally connect to the LCD interface of the development board through the 30PIN MIPI duct.</p><p>[[File:plus5-img424.png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''Note that the touch interface below is not used for the LCD MIPI screen. It is currently a spare interface and cannot be used.'''</p></big>
<span id="sectionp>[[File:plus5-55"img425.png|center]]</p>|}</spanli></ol>== ==
<span id="sectionhow-56to-open-10.1--inch-mipi-lcd-screen-configuration"></span>== ==
<span id="section== How to open 10.1 -57"></span>=inch MIPI LCD screen configuration = ==
<span idol style="sectionlist-58style-type: decimal;"><li><p>The position of the interface of the MIPI LCD screen on the development board is shown in the figure below</p><p>[[File:plus5-img426.png]]</p></li><li><p>OPi OS Arch image default is not to open the mipi lcd screen configuration. If you need to use the mipi lcd screen, you need to open it manually. The method of opening the mipi lcd configuration is shown below:</spanp><ol style="list-style-type: lower-alpha;"><li><p>First add the following configuration in'''/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-opi5plus-lcd.dtbo #The configuration that needs to be added</span>'''</p>|}</li><li><p>'''<span style="color:#FF0000">Then restart the OPi OS Arch system</span>'''</p></li></ol></li><li><p>After restarting, you can see the display of the LCD screen as shown below (default vertical screen):</p></li>
[[File:plus5-img505.png]]</ol><span id="sectionmethod-of-rotating-display-and-touch-59direction"></span>== ==
<span id="ubuntu22.04-gnome-to-install-ros-2-humble"></span>== Ubuntu22.04 Gnome to install ROS 2 Humble Method of rotating display and touch direction ===
<ol style="list-style-type: decimal;">
<li><p>You can install ROS2 with '''install_ros.sh''' scriptFirst click the area in the upper right corner of the desktop</p><p>orangepi@orangepi[[File:~$ '''install_rosplus5-img492.sh ros2'''png]]</p></li><li><p>install'''_ros.sh''' script will automatically run Then open the '''ros2 -h''' command after ros2 is installed. If you can see the printing belowsettings</p><p>usage[[File: ros2 [plus5-himg497.png]] Call `ros2 &lt;command&gt; -h` for more detailed usage. ...</p><p>ros2 is an extensible command-line tool for ROS 2.</pli><pli>optional arguments:</p><p>-h, --help show this help message and exitThen choose '''Displays'''</p><p>Commands[[File:</p><p>action Various action related subplus5-commandsimg506.png]]</p><p>bag Various rosbag related sub-commands</pli><pli>component Various component related sub-commands</p><p>daemon Various daemon related sub-commandsThen select the direction you want to rotate in the '''Orientation''' of '''Displays'''</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[[File:plus5-commandsimg507.png]]</p><p>multicast Various multicast related sub-commands</pli><pli>node Various node related sub-commands</p><p>param Various param related sub-commandsThen choose '''Apply'''</p><p>pkg Various package related sub[[File:plus5-commands</p><p>run Run a package specific executable</p><p>security Various security related sub-commands</p><p>service Various service related sub-commands</p><p>topic Various topic related sub-commands</p><p>wtf Use `wtf` as alias to `doctor`</p><p>Call `ros2 &lt;command&gt; -h` for more detailed usageimg508.png]]</p></li><li><p>Then you can use see that the screen has been rotated. At this time, you need to choose '''test_ros.shKeep Changes''' script to test whether determine the ROS 2 is successfully installed. If you can see the printing below, it means that the ROS 2 can run normally</p><p>orangepi@orangepi5plus:~$ '''test_ros.sh'''rotation</p><p>[INFO] [1671174101File:plus5-img509.200091527png] [talker]: Publishing: 'Hello World: 1'</p><p>[INFO] [1671174101.235661048] [listener]: I heard: [Hello World: 1]</pli><pli>[INFO] [1671174102.199572327] [talker]: Publishing: 'Hello World: 2'</p><p>[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: 2]The display of the LCD screen after 90 degrees is shown below:</p><p>[INFO] [1671174103.199580322] [talker]File: Publishing: 'Hello World: 3'</p><p>[INFO] [1671174103plus5-img510.204019965png] [listener]: I heard: [Hello World: 3]</p></li><li><p>Run the following command to open rviz2</p><p>orangepi@orangepi:~$ '''source /opt/ros/humble/setupThe touch function of the OPi OS Arch system LCD screen will rotate with the rotation of the display direction without other settings.bash'''</p><p/li>orangepi@orangepi:~$ '''ros2 run rviz2 rviz2'''</pol> <div classspan id="figureov13850-and-ov13855-mipi-test-methods-for-testing"></span>== OV13850 and OV13855 MIPI test methods for testing == At present, the development board supports two MIPI cameras, OV13850 and OV13855. The specific pictures are shown below:
<ol style="list-style-type: lower-alpha;"><li><p>OV13850 camera of 13 million MIPI interface</p><p>[[File:plus5-img23.png]]</imagesp></mediali><li><p>13 million MIPI interface OV13855 camera</image570p><p>[[File:plus5-img24.png|576x324px|Screenshot from 2023-05-22 15-17-44]]</p></li></ol><p>The rotary board used by OV13850 and OV13855 cameras is the same as the FPC cable, but the two cameras are different from the position on the rotary board. The FPC lines are shown in the figure below. Please note that the FPC line is directed. It is marked that the '''TO MB''' must be inserted into the camera interface of the development board. It is marked that the end of '''TO CAMERA''' needs to be inserted on the camera transfer board</p>
</div></li><li><p>Reference document</p><p>'''http[[File://docs.ros.org/en/humble/index.html'''</p><p>'''http://docs.ros.org/en/humble/Installation/Ubuntu-Installplus5-Debiansimg436.html'''</p></li></ol>png]]
<span id="set-the-chinese-environment-and-There are a total of 3 cameras on the-method-of-installing-camera to connect to the-chinese-input-method"></span>== Set board, which can only be used at the Chinese environment and same time, as shown in the method figure below, of installing the Chinese input method ==which:
<ol style="list-style-type: decimallower-alpha;"><li><p>Open the settings first</p><p>[[File:./images/media/image537.png|243x181px]]</p></li><li><p>Then find the '''Region &amp; Language''' option, and then click '''Manage Installed Languages''' options</p><p>[[File:No./images/media/image571.png|576x352px]]</p></li><li><p>Then use  1 interface is connected to the left mouse button to select OV13850 camera'''<span class="mark">Chinese (China)</span>''' and hold it down, and then drag it up to the beginning. The display after the dragging is shown in the figure below:</p><p>[[File:./images/media/image572.png|575x428px]]</p></li><li><p>Then select the '''Apply System-Wide''' to apply the Chinese settings to the entire system</p><p>[[File:No./images/media/image573.png|576x427px]]</p></li><li><p>'''Then restart the linux system to make the configuration effective 2 interface connected OV13855 camera'''</p></li><li><p>After re -entering the system, please choose No. 3 interface is not to '''<span class="mark">ask me again</span>''' at the interface belowused, and then determine whether the standard folder should be updated to Chinese according to your preference</p><p>[[File:just ignore it./images/media/image574.png|340x276px]]</p></li><li><p>Then you can see that the desktop is displayed as Chinese</p><div class="figure">
[[File:./images/media/image575plus5-img437.png|576x324px|截图 2023-03-08 09-34-07]]</ol>Orange Pi 5 Plus development board has a total of 1 camera interface, which is shown below:
</div></li><li><p>Then open the Fcitx5 configuration program</p><p>[[File:./images/media/image576plus5-img438.png|576x326px]]</p></li><li><p>Then choose to use Pinyin input method</p><div class="figure">
[[File:./images/media/image577.jpeg|576x429px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-6.jpg未标题-6]]The method of the camera inserted on the development board interface is shown below:
</div></li><li><p>The interface after selecting is shown below, then click OK</p><p>[[File:./images/media/image578.png|504x373px]]</p></li><li><p>Then we can open the Chinese input method of '''Geany''' test, and the way to open is shown in the figure below</p><p>[[File:./images/media/image579.png|575x325px]]</p></li><li><p>After opening '''Geany''', the default is an English input method. We can switch into Chinese input method through the '''Ctrl+Space''' shortcut keys, and then we can enter Chinese</p><p>[[File:./images/media/image580plus5-img439.png|576x364px]]</p></li></ol>
<span id="orange-pi-os-arch-system-After connecting the camera to the development board, we can use-instructions"></span>= Orange Pi OS Arch system use instructions =the following method to test the next camera:
<span idol style="orange-pi-os-archlist-systemstyle-adaptationtype: lower-situationalpha;"><li><p>First add the following configuration in '''/boot/extlinux/extlinux.conf'''</spanp>{| class="wikitable" style= "width:800px;" |-|<p>[orangepi@orangepi ~]$ '''sudo vim /boot/extlinux/extlinux.conf'''</p><p>LABEL Orange Pi OS Arch system adaptation situation </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-opi5plus-ov13850.dtbo</span>'''</p>|}<p>The red font demonstrates the configuration of the camera interface '''ov13850'''. The other configurations are shown in the table below, and the corresponding DTBO configuration can be added behind '''<span style="color:#FF0000">FDTOVERLAYS</span>'''.</p></li>
{| class="wikitable" style="width:800px;"
|-
| style="text-align: left;"| '''Function'''| '''OPi OS Arch GnomeCamera'''| style="text-align: left;"| '''OPi OS Arch Xfce(To be released)Dtbo configuration'''
|-
| style="text-align: left;"| '''HDMI TX1 video'''| '''OKconnect ov13850'''| style="text-align: left;"| '''OK/dtbs/rockchip/overlay/rk3588-opi5plus-ov13850.dtbo'''
|-
| style="text-align: left;"| '''HDMI TX1 Audioconnect ov13855'''| style="text-align: left;"| '''OK/dtbs/rockchip/overlay/rk3588-opi5plus-ov13855.dtbo'''| }</ol><ol start="2" style="textlist-style-aligntype: leftlower-alpha;"| ><li><p>'''OK<span style="color:#FF0000">Then restart the OPi OS Arch system</span>'''</p></li><li><p>Then open a terminal in the desktop system and run the script below</p>{| class="wikitable" style="width:800px;"
|-
| <p>orangepi@orangepi:~$ '''test_camera.sh'''</p>|}</li><li><p>Then you can see the preview of the camera</p><div class="figure"> [[File:plus5-img511.png]] </div></li></ol> <span id="set-the-chinese-environment-and-the-method-of-installing-the-chinese-input-method-1"></span> == Set the Chinese environment and the method of installing the Chinese input method == <ol style="textlist-alignstyle-type: leftdecimal;"| ><li><p>First click the area in the upper right corner of the desktop</p><p>[[File:plus5-img492.png]]</p></li><li><p>Then open the settings</p><p>[[File:plus5-img512.png]]</p></li><li><p>Then find the '''HDMI TX2 videoRegion &amp; Language'''option</p><p>[[File:plus5-img513.png]]</p></li>| <li><p>Then choose '''OKLanguage'''</p>| style="text<p>[[File:plus5-img514.png]]</p></li><li><p>Then select Chinese</p><p>[[File:plus5-alignimg515.png]]</p></li><li><p>then click '''Select'''</p><p>[[File: left;"| plus5-img516.png]]</p></li><li><p>Then click '''OKLogout...'''log in to the system, and then log in to the system</p>|<p>[[File:plus5-img517.png]]</p></li>| style<li><p>Then you can see that the desktop is displayed as Chinese</p><div class="textfigure"> [[File:plus5-align: left;"| img518.png]] </div></li><li><p>Then install '''HDMI TX2 Audiofcitx-im'''| and '''OKfcitx-configtool'''</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| style<p>[orangepi@orangepi ~]$ '''sudo pacman -S fcitx-im fcitx-configtool'''</p><p>:: There are 3 members in the group fcitx-im:</p><p>:: Software warehouse Community</p>:<p>1) fcitx 2) fcitx-qt5 3) fcitx-qt6</p>  <p>Enter a selection (default ="textall selected): '''1'''</p>|}</li><li><p>Then open the Fcitx configuration program</p><p>[[File:plus5-alignimg519.png]]</p><p>[[File: left;"| plus5-img520.png]]</p></li><li><p>Then add '''HDMI RX video<span class="mark">Google Pinyin</span>'''input method</p><p>[[File:plus5-img521.png]]</p><p>[[File:plus5-img522.png]]</p></li>| <li><p>Then we can open a terminal test in the Chinese input method. After opening the terminal, if the English input method is still in English, we can switch to the Chinese input method through the '''OKCtrl+Space'''shortcut keys, and then you can enter Chinese</p><div class="figure"> [[File:plus5-img523.png]] </div></li></ol> <span id="hdmi-in-test-method-1"></span> == HDMI IN test method == <ol start="1" style="list-style-type: decimal;"><li><p>The position of the development board HDMI In interface is shown below:</p><p>[[File:plus5-img265.png]]</p></li><li><p>First use the HDMI to HDMI line shown below to output the HDMI output of other devices to the HDMI In interface of the development board</p><p>[[File:plus5-img11.png]]</p></li><li><p>The OPi OS Arch system HDMI in function is closed by default, and the opening method is shown below:</p>| <ol style="textlist-style-aligntype: leftlower-alpha;"| ><li><p>First add the following configuration in '''OK/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="text-aligncolor: left;#FF0000">FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-hdmirx.dtbo #The configuration that needs to be added</span>'''</p>| }</li><li><p>'''HDMI RX Audio<span style="color:#FF0000">Then restart the OPi OS Arch system</span>'''</p></li></ol>| </li><li><p>After restarting into the system, open a terminal on the desktop, and then run the '''OKtest_hdmiin.sh'''script</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| <p>[orangepi@orangepi ~]$ '''test_hdmiin.sh'''</p>|}</li><li><p>Then you can see the input screen of the HDMI in (the HDMI in in the figure below shows the screen of the OPI5 development board HDMI output, and it is playing a video at this time). '''test_hdmiin.sh''' script defaults to the audio entered by HDMI in to the HDMI_TX1, HDMI_TX2 and ES8388 (representing speakers or headphones) of the development board.</p><p>[[File:plus5-img524.png]]</p></li><li><p>In addition to testing HDMI IN using '''test_hdmiin.sh''', we can also use '''Qt V4L2 test Utility''' to test HDMI in video ('''<span style="textcolor:#FF0000">this method cannot test audio at present</span>'''). The detailed steps are shown below:</p><ol style="list-style-aligntype: leftlower-alpha;"| ><li><p>Enter the application list first</p><p>[[File:plus5-img525.png]]</p></li><li><p>Then find '''USB2.0X2Qt V4L2 test Utility'''and open it</p><p>[[File:plus5-img526.png]]</p></li>| <li><p>Then make sure '''OKQt V4L2 test Utility'''recognizes the HDMI In device</p><p>[[File:plus5-img527.png]]</p></li><li><p>Then click the location shown in the figure below to see the video entered by HDMI In</p><p>[[File:plus5-img528.png]]</p></li><li><p>The video window entered by HDMI In is shown below:</p><div class="figure"> [[File:plus5-img529.png]] </div></li></ol></li></ol> <span id="how-to-install-wiringop-1"></span> == How to install wiringOP == {| class="wikitable" style="textbackground-aligncolor:#ffffdc;width: left800px;"| '''OK'''
|-
| style="text<big>'''Note that Wiringop has been pre -installed in the OPI OS Arch image released by Orange PI. Unless Wiringop's code is updated, it is not necessary to re -align: left;"| download and compile and install it,just use it directly.''' '''USB3After entering the system, you can run the gpio readall command.0X2If you can see the output below, it means that wiringOP is pre -installed and can be used normally'''</big> [[File:plus5-img530.png]]| <big>'''OKwiringOP is currently adapted to set the GPIO port input output, set the GPIO port output high and low level, and set the function of pulling and down resistance. It is impossible to use functions like hardware PWM.'''</big>| } <ol style="textlist-alignstyle-type: leftdecimal;"><li><p>Download the code of wiringOP</p>{| '''OK'''class="wikitable" style="width:800px;"
|-
| style="text-align: left;"| <p>[orangepi@orangepi ~]$ '''2.5G PCIe network port X2sudo pacman -Syy git'''</p>| <p>[orangepi@orangepi ~]$ '''OKgit clone https://github.com/orangepi-xunlong/wiringOP.git -b next'''</p>|} {| class="wikitable" style="textbackground-aligncolor:#ffffdc;width: left800px;"| '''OK'''
|-
| style="text<big><p>'''Note that Orange Pi 5 Plus needs to download the code of the wiringOP next branch, please don't miss the parameter of -align: left;"| b next.'''</p><p>'''2If you have a problem with the download code from github, you can download the source code compression package of wiringOp.tar.gz in the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.5G PCIe network portlighthtml '''| official tools of the Orange Pi 5 Plus data download page'''OK]'''</p></big> <p>[[File:plus5-img531.png|center]]</p>| }</li><li><p>Compile and install wiringOP</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text<p>[orangepi@orangepi ~]$ '''sudo pacman -align: left;"| Syy make gcc'''</p><p>[orangepi@orangepi ~]$ '''cd wiringOP'''</p><p>[orangepi@orangepi wiringOP]$ '''Debug serial portsudo ./build clean'''</p>| <p>[orangepi@orangepi wiringOP]$ '''OKsudo ./build'''</p>|}</li><li><p>Test the output of the GPIO Readall command as follows</p><p>[[File:plus5-img530.png]]</p></li></ol> <span id="pin-interface-gpio-i2c-uart-spi-can-and-pwm-test-1"></span> == 40 PIN interface GPIO, I2C, UART, SPI, CAN and PWM test == {| class="wikitable" style="textbackground-aligncolor:#ffffdc;width: left800px;"| '''OK'''
|-
| style="text-align: left;"| <big>'''Note that if you need to set FDT Overlays to open multiple configurations at the same time, please use a space to write in a line like the red font configuration below.'''</big> [orangepi@orangepi ~]$ '''RTC chipsudo vim /boot/extlinux/extlinux.conf'''| LABEL Orange Pi LINUX /Image FDT /dtbs/rockchip/rk3588s-orangepi-5.dtb '''OK<span style="color:#FF0000">FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-i2c1-m2.dtbo /dtbs/rockchip/overlay/rk3588-uart0-m2.dtbo</span>'''| } <span id="pin-gpio-port-test-2"></span>=== 40 PIN GPIO port test === <ol style="textlist-style-aligntype: leftdecimal;"><li><p>A total of 28 GPIO ports can be used in the development board 40 PIN. Below is No. 7 pins -corresponding to GPIO1_D6 -corresponding WPI serial number 2 -as an example to demonstrate how to set the high and low level of the GPIO port</p><p>[[File:plus5-img532.png]]</p></li><li><p>First set the GPIO port as the output mode. The third parameter needs to enter the serial number of the wpi corresponding to the pins</p>{| '''OK'''class="wikitable" style="width:800px;"
|-
| <p>[orangepi@orangepi ~]$ '''gpio mode <span style="text-aligncolor: left;#FF0000"| '''FAN Fan interface>2</span> out'''</p>| '''OK'''}</li><li><p>Then set the GPIO port output low level. After setting, you can use the value of the voltage of the pins with a multimeter. If it is 0V, it means that the low -power flat is set</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| <p>[orangepi@orangepi ~]$ '''gpio write 2 <span style="text-aligncolor: left;#FF0000"| '''eMMC Extension ports>0</span>'''</p>| '''OK'''}</li><li><p>Then set the GPIO port output high level. After setting, you can use the value of the voltage of the pins with a multimeter. If it is 3.3V, it means that the high -power flat is set to be successful</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| <p>[orangepi@orangepi ~]$ '''gpio write 2 <span style="text-aligncolor: left;#FF0000"| >1</span>'''AP6275P</p>|}</li> <li><p>The setting method of other pins is similar. Just modify the serial number of the wpi serial number as the corresponding serial number.</p></li></ol> <span id="pin-gpio-port--to--plattering-resistance-setting-method"></span> === 40 PIN GPIO Port -WIFI'''to -Plattering resistance setting method ===| '''OK'''| <ol style="textlist-alignstyle-type: leftdecimal;"><li><p>Below the No. 7 pin — corresponding to GPIO1_D6 -corresponding WPI serial number 2 -to demonstrate how to set up and down pull -down resistance of the GPIO port</p><p>[[File:plus5-img532.png]]</p></li><li><p>First of all, you need to set the GPIO port as the input mode. The third parameter needs to enter the serial number of the wpi corresponding to the pins</p>{| '''OK'''class="wikitable" style="width:800px;"
|-
| <p>[orangepi@orangepi ~]$ '''gpio mode <span style="text-aligncolor: left;#FF0000"| '''AP6275P-BT>2</span> in'''</p>| '''OK'''}</li><li><p>After the setting is set to input mode, execute the following command to set the GPIO port as the pull -down mode</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| <p>[orangepi@orangepi ~]$ '''gpio mode <span style="text-aligncolor: left;#FF0000"| '''AX200-WIFI>2</span> up'''</p>| '''OK'''}</li><li><p>Then enter the following command to read the level of the GPIO port. If the level is 1, it means that the drawing mode is successful</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| <p>[orangepi@orangepi ~]$ '''gpio read <span style="text-aligncolor: left;#FF0000"| '''AX200-BT>2</span>'''</p>| <p>'''OK1'''</p>|}</li><li><p>Then execute the following command to set the GPIO port as the drop-down mode</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| <p>[orangepi@orangepi ~]$ '''gpio mode <span style="text-aligncolor: left;#FF0000"| '''AX210-WIFI>2</span> down'''</p>| '''OK'''}</li><li><p>Then enter the command below to read the level of the GPIO port. If the level is 0, it means that the drop -down mode is set successfully</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| <p>[orangepi@orangepi ~]$ '''gpio read <span style="text-aligncolor: left;#FF0000"| '''AX210-BT>2</span>'''</p>| <p>'''OK0'''</p>| }</li></ol> <span id="pin-spi-test-2"></span> === 40 PIN SPI test === <ol style="textlist-alignstyle-type: leftdecimal;"><li><p>As can be seen from the figure below, the SPI available for Orange Pi 5 Plus is SPI0 and SPI4</p><p>[[File:plus5-img304.png]]</p></li><li><p>The corresponding pins corresponding to SPI0 and SPI4 are shown in the table below. SPI4_M1 and SPI4_M2 can only be used at the same time, and they cannot be used at the same time. They are the same SPI4, but they are just getting different pins. Please don't think that they are two different SPI bus.</p></li> {| '''OK'''class="wikitable" style="width:800px;"
|-
| style="text-align: left;"| '''RTL8852BE-WIFISPI0_M2 to 40pin'''| '''OKSPI4_M1 to 40pin'''| style="text-align: left;"| '''OKSPI4_M2 to 40pin'''
|-
| style="text-align: left;"'''MOSI'''| '''RTL8852BE-BTNo. 19 pins'''| '''OKNo. 12 pins'''| style="text-align: left;"| '''OKNo. 8 pins'''
|-
| style="text-align: left;"'''MISO'''| '''MaskROM buttonNo. 21 pins'''| '''OKNo. 31 pins'''| style="text-align: left;"| '''OKNo. 10 pins'''
|-
| style="text-align: left;"'''CLK'''| '''Type-C to USB3No.0 23 pins'''| '''OKNo. 35 pins'''| style="text-align: left;"| '''OKNo. 22 pins'''
|-
| style="text-align: left;"'''CS0'''| '''Type-C DP videoNo. 24 pins'''| '''OKNo. 40 pins'''| style="text-align: left;"| '''OKNo. 31 pins'''
|-
| style="text-align: left;"'''CS1'''| '''Type-C DP AudioNo. 26 pins'''| '''OKNo. 38 pins'''| style="text-align: left;"| '''OK<span style="color:#FF0000">None</span>'''|}</ol><ol start="3" style="list-style-type: decimal;"><li><p>In the Linux system, the SPI in 40 PIN is closed by default, and it needs to be opened manually to use. The detailed steps are shown below:</p><ol style="list-style-type: lower-alpha;"><li><p>First add the following configuration to the '''/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="text-aligncolor: left;#FF0000">FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-spi0-m2-cs0-cs1-spidev.dtbo</span>'''</p>| }<p>The red font demonstrated the configuration of opening the '''Switch button<span class="mark">SPI0-M2 and using the CS0 and CS1 pin</span>'''| . The other configurations are shown in the table below, and the corresponding dtbo configuration can be added to '''OK<span style="color:#FF0000">FDTOVERLAYS</span>'''</p></li> {| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align: left;"| '''Infrared function'''| '''OKSPI bus'''| style="text-align: left;"| '''OKdtbo configuration'''
|-
| style="text-align: left;"| '''Three SPI0_M2-color LED light'''| '''OKcs0'''| style="text-align: left;"| '''OK/dtbs/rockchip/overlay/rk3588-spi0-m2-cs0-spidev.dtbo'''
|-
| style="text-align: left;"| '''Board MIC'''| '''OKSPI0_M2-cs1'''| style="text-align: left;"| '''OK/dtbs/rockchip/overlay/rk3588-spi0-m2-cs1-spidev.dtbo'''
|-
| style="text-align: left;"| '''Headphones play'''| '''OKSPI0_M2-cs0-cs1'''| style="text-align: left;"| '''OK/dtbs/rockchip/overlay/rk3588-spi0-m2-cs0-cs1-spidev.dtbo'''
|-
| style="text-align: left;"| '''Headset recording'''| '''OKSPI4_M1-cs0'''| style="text-align: left;"| '''OK/dtbs/rockchip/overlay/rk3588-spi4-m1-cs0-spidev.dtbo'''
|-
| style="text-align: left;"| '''SPK trumpet'''| '''OKSPI4_M1-cs1'''| style="text-align: left;"| '''OK/dtbs/rockchip/overlay/rk3588-spi4-m1-cs1-spidev.dtbo'''
|-
| style="text-align: left;"| '''40PIN GPIO'''| '''OKSPI4_M1-cs0-cs1'''| style="text-align: left;"| '''OK/dtbs/rockchip/overlay/rk3588-spi4-m1-cs0-cs1-spidev.dtbo'''
|-
| style="text-align: left;"| '''40PIN I2CSPI4_M2-cs0'''| style="text-align: left;"| '''OK/dtbs/rockchip/overlay/rk3588-spi4-m2-cs0-spidev.dtbo'''| }</ol><ol start="2" style="textlist-style-type: lower-alpha;"><li>'''<span style="color:#FF0000">Then restart the OPi OS Arch system</span>'''</li></ol></li></ol> <ol start="4" style="list-style-aligntype: leftdecimal;"| ><li><p>After the restart, enter the system first to check whether there is a '''OKspidevx.x'''device node in the Linux system. If it exists, it means that the SPI has been set and can be used directly</p>{| class="wikitable" style="width:800px;"
|-
| style="text-align: left;"| <p>[orangepi@orangepi ~]$ '''40PIN SPIls /dev/spidev*'''</p><p>/dev/spidev0.0 /dev/spidev0.1 /dev/spidev4.0 /dev/spidev4.1</p>| '''OK'''}{| class="wikitable" style="textbackground-aligncolor:#ffffdc;width: left800px;"| '''OK'''
|-
| style="text-align: left;"| <big><p>'''40PIN UARTThe above is the result displayed after opening the spi0-m2-cs0-cs1-spidev and spi4-m1-cs0-cs1-spidev'''</p></big>| '''OK'''}</li><li><p>Then do not connect the SPI0 or SPI4 MOSI and MISO pins, and run the output result of the spidev_teest as shown below. You can see that the data of TX and RX are inconsistent</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text<p>[orangepi@orangepi ~]$ '''sudo spidev_test -v -align: left;"| D /dev/spidev4.0'''</p><p>'''40PIN CANOr'''</p>| <p>[orangepi@orangepi ~]$ '''OKsudo 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="text-aligncolor: left;#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 '''OK<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>Then the output of spidev_test, which is then connected to SPI0 or SPI4 MOSI and MISO, is as follows. You can see that the sending and receiving data can be seen, indicating that the SPI loop test is normal</p>{| class="wikitable" style="width:800px;"
|-
| style="text<p>[orangepi@orangepi ~]$ '''sudo spidev_test -v -align: left;"| D /dev/spidev4.0'''</p><p>'''40PIN PWMOr'''</p>| <p>[orangepi@orangepi ~]$ '''OKsudo 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="text-aligncolor: left;#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 '''OK<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-test-2"></span> === 40 pin I2C test === <ol style="list-style-type: decimal;"><li><p>From the table below, the I2C available for Orange Pi 5 Plus is I2C2, I2C4, I2C5, and I2C8. There are four groups of I2C bus</p><p>[[File:plus5-img304.png]]</p></li><li><p>The corresponding pins corresponding to the 4 group I2C bus are shown below. I2C2_M0 and I2C2_M4 can only be used at the same time, and they cannot be used at the same time. They are the same I2C2, but they only receive different pins. Please don't think that they are two different I2C2 bus</p></li> {| class="wikitable" style="width:800px;"
|-
| style="text-align: left;"| '''TF card startupI2C bus'''| style="text-align: left;"| '''OKSDA to 40pin'''| style="text-align: left;"| '''OKSCL to 40pin'''
|-
| style="text-align: left;"| '''SPI+NVME start upI2C2_M0'''| style="text-align: left;"| '''OKNo. 3 pin'''| style="text-align: left;"| '''OKNo. 5 pin'''
|-
| style="text-align: left;"| '''OV13850 CameraI2C2_M4'''| style="text-align: left;"| '''OKNo. 10 pin'''| style="text-align: left;"| '''OKNo. 8 pin'''
|-
| style="text-align: left;"| '''OV13855 CameraI2C4_M3'''| style="text-align: left;"| '''OKNo. 22 pin'''| style="text-align: left;"| '''OKNo. 32 pin'''
|-
| style="text-align: left;"| '''GPUI2C5_M3'''| style="text-align: left;"| '''OKNo. 27 pin'''| style="text-align: left;"| '''OKNo. 28 pin'''
|-
| style="text-align: left;"| '''VPUI2C8_M2'''| style="text-align: left;"| '''OKNo. 29 pin'''| style="text-align: left;"| '''OKNo. 7 pin'''|}</ol><ol start="3" style="list-style-type: decimal;"><li><p>In the Linux system, the I2C bus in 40 PIN is closed by default, and it needs to be opened manually to use. The detailed steps are shown below:</p><ol style="list-style-type: lower-alpha;"><li><p>First add the following configuration in '''/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="text-aligncolor: left;#FF0000">FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-i2c2-m0.dtbo</span>'''</p>| }<p>The red font on the above demonstrates the configuration of the '''NPUi2c2-m0'''| . The other configurations are shown in the table below, and the corresponding dtbo configuration can be added behind '''NO<span style="color:#FF0000">FDTOVERLAYS</span>'''</p></li> {| class="wikitable" style="text-alignwidth: left800px;"| '''NO'''
|-
| style="text-align: left;"| '''REBOOT Command restart'''| '''OKI2C bus'''| style="text-align: left;"| '''OKdtbo configuration'''
|-
| style="text-align: left;"| '''Poweroff Command shutdown'''| '''OKI2C2_M0'''| style="text-align: left;"| '''OK/dtbs/rockchip/overlay/rk3588-i2c2-m0.dtbo'''
|-
| style="text-align: left;"| '''MIPI LCD show'''| '''OKI2C2_M4'''| style="text-align: left;"| '''OK/dtbs/rockchip/overlay/rk3588-i2c2-m4.dtbo'''
|-
| style="text-align: left;"| '''MIPI LCD touch'''| '''OKI2C4_M3'''| style="text-align: left;"| '''OK/dtbs/rockchip/overlay/rk3588-i2c4-m3.dtbo'''
|-
| style="text-align: left;"| '''Watch Dog TestI2C5_M3'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-i2c5-m3.dtbo'''|-| style="text-align: left;"| '''OKI2C8_M2'''| style="text-align: left;"| '''OK/dtbs/rockchip/overlay/rk3588-i2c8-m2.dtbo'''|}</ol><ol start="2" style="list-style-type: lower-alpha;"><li>Then restart the '''<span style="color:#FF0000">OPi OS Arch</span>''' system</li></ol></li></ol><!-- --><ol start="4" style="list-style-type: decimal;"><li><p>After starting the linux system, first confirm that there is a device node that needs to be used under the '''/dev'''</p>{| class="wikitable" style="width:800px;"
|-
| style="text-align<p>orangepi@orangepi: left;"| ~$ '''Chromium Hard solution videols /dev/i2c-*'''</p>| }</li><li><p>Then connect a I2C device on the I2C pin corresponding to the 40 PIN interface</p></li><li><p>Then use the '''NOi2cdetect -y'''command to detect the address of the connected i2c device, which means that the i2c can be used normally</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''NO'''
|-
| style="text<p>[orangepi@orangepi ~]$ '''sudo pacman -S i2c-align: left;"| tools'''MPV Hard solution video#First of all, I2C tools</p><p>[orangepi@orangepi ~]$ '''sudo i2cdetect -y 2''' #i2c2 test command</p>| <p>[orangepi@orangepi ~]$ '''OKsudo i2cdetect -y 4'''#i2c4 test command</p>| style="text<p>[orangepi@orangepi ~]$ '''sudo i2cdetect -align: left;"| y 5'''OK#i2c5 test command</p><p>[orangepi@orangepi ~]$ '''sudo i2cdetect -y 8'''#i2c8 test command</p>
|}
</li></ol>
<span id="howpins-touart-use-the-m.2-e-key-pcie-wifi6bluetooth-moduletest"></span>== How to use the M.2 E-Key PCIE WIFI6+Bluetooth module ==
# First of all, you need to buy a PCIE WIFI6+Bluetooth module=== 40 Pin's UART test ===
<ol style="list-style-type: decimal;"><li><p>As can be seen from the table below, the UART available for Orange Pi 5 Plus is UART1, UART3, UART4, UART6, UART7, and UART8. There are 6 sets of UART bus</p><p>[[File:plus5-img304.png]]</p></li><li><p>In the Linux system, the UART in 40 pin is closed by default, and it needs to be opened manually to use. The detailed steps are shown below:</p><ol style="list-style-type: lower-alpha;"><li><p>First add the following configuration to the '''/boot/extlinux/extlinux.conf'''</p>{| class="wikitable" style="width:800px;"
|-
| '''S erial num ber'''| <p>[orangepi@orangepi ~]$ '''modelsudo vim /boot/extlinux/extlinux.conf'''</p>| '''Physical picture'''<p>LABEL Orange Pi</p>| '''Supportive OS'''<p>LINUX /Image</p>|<p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p>| '''1<p>'''| '''AX200''' '''(PCIE+USB Port)''' | [[File<span style="color:.#FF0000">FDTOVERLAYS /dtbs/imagesrockchip/%20mediaoverlay/image310rk3588-uart1-m1.p%20ng]]| '''Debiandtbo</span>'''</p>|}<p>The red font demonstrates the configuration of the '''Ubuntuuart1-m1''' . The other configurations are shown in the table below, and the corresponding dtbo configuration can be added behind '''OpenWRT''' '''OPi OS Arch<span style="color:#FF0000">FDTOVERLAYS</span>'''</p></li>
{| class="wikitable" style="width:800px;"
|-
| style="text-align: left;"| '''2UART bus'''| style="text-align: left;"| '''AX210dtbo configuration'''|-| style="text-align: left;"| '''(PCIE+USB Port)UART1_M1'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-uart1-m1.dtbo'''|-| style="text-align: left;"| '''UART3_M1'''| [[Filestyle="text-align:left;"| '''/dtbs/rockchip/overlay/rk3588-uart3-m1.dtbo'''|-| style="text-align: left;"| '''UART4_M2'''| style="text-align: left;"| '''/imagesdtbs/media%20rockchip/image311overlay/rk3588-uart4-m2.png]]{w idthdtbo'''|-| style="text-align: left;"| '''UART6_M1'''| style=“1"text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-uart6-m1.06875in” heightdtbo'''|-| style=“1.45in”}"text-align: left;"| '''UART7_M2'''| style="text-align: left;"| '''Debian/dtbs/rockchip/overlay/rk3588-uart7-m2.dtbo'''|-| style="text-align: left;"| '''UbuntuUART8_M1''' | style="text-align: left;"| '''OpenWRT/dtbs/rockchip/overlay/rk3588-uart8-m1.dtbo'''|}</ol><ol start="2" style="list-style-type: lower-alpha;"><li>'''OPi <span style="color:#FF0000">Then restart the OPI OS Archsystem</span>'''</li></ol></li></ol><!-- --><ol start="3" style="list-style-type: decimal;"><li><p>After entering the Linux system, first confirm whether there is a device node corresponding to UART under the '''/dev'''</p>{| class="wikitable" style="width:800px;"
|-
| '''3'''| <p>[orangepi@orangepi ~]$ '''RTL8852BE''' ''ls /dev/ttyS*'(PCIE+USB Port)''' | [[File:./images/%20media</image312.p%20ng]]| '''Debian''' '''Ubuntu''' '''Android12''' '''OPi OS Arch''' '''OPi OS Droid'''>
|}
</li>
<li><p>Then start testing the UART interface, and first use the RX and TX pins of the UART interface to be tested by DuPont</p></li>
<ol start{| class="2wikitable" style="listwidth:800px;"|-| style="text-typealign: decimalleft;">| '''UART bus'''<li><p>Then insert the WiFi module into the M.2 E| style="text-Key interface of the development board and fix it</p>align: left;"| '''RX to 40pin'''<p>[[File| style="text-align:./images/media/image313.pngleft;"|403x181px]]</p></li>'''TX to 40pin'''<li><p>Then open the configuration of the WIFI module in the OPi OS Arch system, and the steps are shown below:</p>|-<ol | style="listtext-align: left;"| '''UART1_M1'''| style="text-typealign: lower-alphaleft;"><li><p>First add a line configuration to the &gt; | '''/boot/extlinux/extlinuxNo.conf 27 pin'''.</p><p>[orangepi@orangepi ~]$ | style="text-align: left;"| '''sudo vim /boot/extlinux/extlinuxNo.conf 28 pin'''</p><p>LABEL Orange Pi</p>|-<p>LINUX /Image</p>| style="text-align: left;"| '''UART3_M1'''<p>FDT /dtbs/rockchip/rk3588| style="text-orangepi-5-plus.dtb</p><p>align: left;"| '''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-wifi-pcieNo.dtbo 18 pin''' | style="text-align: left;"| '''#What needs to be addedNo. 16 pin'''</p></li><li><p>|-| style="text-align: left;"| '''Then restart the OPi OS Arch systemUART4_M2'''</p></li></ol></li><li><p>If everything is normal after restarting the system, you can see the WiFi device node with the following command| style="text-align: left;"| '''No. If you can 19 pin'''t see it, please check if there is a problem with the previous configuration.</p><p>[orangepi@orangepi ~]$ | style="text-align: left;"| '''ip addr show wlan0No. 23 pin'''</p><p>......</p>|-<p>4| style="text-align: left;"| '''wlan0UART6_M1'''| style="text-align: &ltleft;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc noqueue state UP group default qlen 1000</p>"| '''No. 10 pin'''<p>link/ether 38| style="text-align:7a:0e:e3:80:05 brd ff:ff:ff:ff:ff:ff</p><p>inet 192left;"| '''No.168.1.237/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0</p> 8 pin'''<p>valid_lft 42938sec preferred_lft 42938sec</p>|-<p>inet6 fe80| style="text-align::a098:5942:16e:e817/64 scope link noprefixroute</p>left;"| '''UART7_M2'''<p>valid_lft forever preferred_lft forever</p></li><li><p>The steps connected to the wifi are shown below:</p><ol | style="listtext-align: left;"| '''No. 24 pin'''| style="text-typealign: lower-alphaleft;">| '''No. 26 pin'''<li><p>First click the area in the upper right corner of the desktop</p>|-<p>[[File| style="text-align:./images/media/image581.pngleft;"|252x160px]]</p></li>'''UART8_M1'''<li><p>Then choose Wi| style="text-Fi</p><p>[[Filealign:left;"| '''No./images/media/image582.png 40 pin'''|337x215px]]</p></li><li><p>Then select the WIFI you want to connect</p><p>[[Filestyle="text-align:./images/media/image583.pngleft;"|466x249px]]</p></li><li><p>Then enter the password of the wifi, and click '''ConnectNo. 35 pin'''</p><p>[[File:./images/media/image584.png|284x188px]]</p></li><li><p>Then enter the following interface to see the wifi connection</p>}<p>[[File:./images/media/image585.png|544x383px]]</p></li></ol></li><li><p>Example of Bluetooth use:</p><ol start="5" style="list-style-type: lower-alphadecimal;"><li><p>First click Use the area in '''gpio serial''' command to test the upper right corner loop function of the desktop</p><p>[[File:serial port as shown below./images/media/image581.png|272x173px]]</p></li><li><p>Then open If you can see the settings</p><p>[[File:./images/media/image586.png|288x238px]]</p></li><li><p>Then select Bluetooth in the settingsprinted below, and make sure it means that the &gt; switch button in the upper right corner of the Bluetooth serial port communication is &gt; openednormal (TTYSX needs to be replaced with a node name corresponding to UART, please do not copy it)</p><p>[[File{| class="wikitable" style="width:./images/media/image587.png800px;" |457x301px]]</p></li>-<li><p>Then choose the Bluetooth device you want to configure the &gt; right, such as pairing with Android phones</p>|<p>[[File:./images/media/image588.png|451x296pxorangepi@orangepi ~]]</p></li><li><p>Then click $ '''Confirmsudo gpio serial /dev/ttySX''', the mobile phone also needs to confirm &gt; the pairing</p><p>[[File:./images/media/image589.png|221x142pxsudo]]</p></li><li><p>The display of the Bluetooth and Android phone is shown below:</p><p>[[Filepassword for orangepi:./images/media/image590.png|451x296px]]</p></li><li><p>Then click #Enter the paired Bluetooth device to pop up the operating &gt; interface shown in the figure belowpassword here</p><p>[[File:./images/media/image591.png|480x315px]]</p></li><li><p>Click '''Send Files...'''you can send a file to the phone</p></li></ol></li></ol>
[[File:./images/media/image592.png|525x297px]]
<ol style="listp>Out: 0: -&gt; 0</p><p>Out: 1: -style&gt; 1</p><p>Out: 2: -type&gt; 2</p><p>Out: 3: lower-roman&gt;"3</p><lip>Out: 4: -&gt; 4</p><p>The schematic diagram of the Bluetooth sent pictures to the phone is Out: 5: -&gt; shown below:5^C</p>|}<div class="figure"/li></ol>
[[File:./images/media/image593.png|576x324px|Screenshot from 2023<span id="pwm-04test-21 04method-17-07]]1"></span>
</div></li></ol>=== PWM test method ===
<span idol style="howlist-tostyle-usetype: decimal;"><li><p>From the table below, the PWMs available for Orange Pi 5 Plus include PWM0, PWM1, PWM11, PWM12, PWM13, and PWM14 a total of six PWM</p><p>[[File:plus5-10img304.1-inch-mipi-lcd-screen-1"png]]</p></spanli>== How to use 10<li><p>The corresponding pins of PWM in 40pin are shown below. PWM0_M0 and PWM0_M2, PWM1_M0 and PWM1_M2, PWM14_M0 and PWM14_M2 can only be used at the same time. They cannot be used at the same time. They are the same PWM, but they only get different pins.1 inch MIPI LCD screen ==Please think that they are two different PWM bus</p></li>
<span id{| class="wikitable" style="width:800px;" |-| style="text-align: left;"| '''PWM bus'''| style="text-align: left;"| '''Corresponding 40pin'''|-| style="text-align: left;"| '''PWM0_M0'''| style="text-align: left;"| '''No. 5 pin'''|-| style="text-align: left;"| '''PWM0_M2'''| style="text-align: left;"| '''No. 22 pin'''|-| style="text-align: left;"| '''PWM1_M0'''| style="text-align: left;"| '''No. 3 pin'''|-| style="text-align: left;"| '''PWM1_M2'''| style="inchtext-align: left;"| '''No. 32 pin'''|-mipi| style="text-screenalign: left;"| '''PWM11_M0'''| style="text-assemblyalign: left;"| '''No. 12 pin'''|-method| style="text-1align: left;"></span>| '''PWM12_M0'''| style="text-align: left;"| '''No. 14 pin'''|-| style="text-align: left;"| '''PWM13_M0'''| style= 10"text-align: left;"| '''No.1  16 pin'''|-inch MIPI screen assembly method | style="text-align: left;"| '''PWM14_M0'''| style="text-align: left;"| '''No. 33 pin'''|-| style="text-align: left;"| '''PWM14_M2'''| style="text-align: left;"| '''No. 7 pin'''|}</ol><ol start="3" style="list-style-type: decimal;"><li><p>First prepare In the required accessoriesLinux system, the PWM in 40 PIN is closed by default, and it needs to be opened manually to use. The detailed steps are shown below:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>10.1 -inch MIPI LCD display+touch screen (common First add the following configuration to OPI5the '''/boot/extlinux/OPI5B)extlinux.conf'''</p>{| class="wikitable" style="width:800px;" |-|<p>[[File:.orangepi@orangepi ~]$ '''sudo vim /imagesboot/mediaextlinux/image504extlinux.png|308x237px]]conf'''</p><p>LABEL Orange Pi</lip><p>LINUX /Image</p><lip>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p><p>Screen divert+31pin to 40pin exhaust'''<span style="color:#FF0000">FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-pwm0-m0.dtbo</span>'''</p>|}<p>The red font demonstrates the configuration of the '''pwm0-m0'''. The other configurations are shown in the table below, and the corresponding dtbo configuration can be added behind '''<div classspan style="figurecolor:#FF0000">FDTOVERLAYS</span>'''</p></li>
[[File{| class="wikitable" style="width:800px;"|-| style="text-align: left;"| '''PWM bus'''| style="text-align: left;"| '''Dtbo configuration'''|-| 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;"| '''/imagesdtbs/mediarockchip/image505overlay/rk3588-pwm14-m0.pngdtbo'''|-|160x139pxstyle="text-align: left;"|DD9A8F44'''PWM14_M2'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-pwm14-m2.dtbo'''|}</ol><ol start="2" style="list-style-type: lower-alpha;"><li>Then '''<span style="color:#FF0000">restart the OPi OS Arch system</span>'''</li></ol></li></ol><!-0D8F-4f06-9473-B539DEED850C]><ol start="4" style="list-style-type: decimal;"><li><p>After opening a pwm,In the '''/sys/class/pwm'''/, there will be an additional pwmchipX (x is a specific number). For example, after opening PWM14,viewing '''/sys/class/pwm/''' down Pwmchipx will change from two to three.</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''ls /sys/class/pwm/'''</p> <p>pwmchip0 pwmchip1 pwmchip2</divp>|}</li><li><p>30pin mipi lineWhich pwmchip corresponds to pwm14 above? Let's first check out the output of '''ls /sys/class/pwm/ -l''' command, as shown below:</p>
<div class="figure">
[[File:./images/media/image506plus5-img533.png|421x39px|C2164119-6EC3-49ae-9A95-BE323F51FAE1]]
</div></li>
<li><p>12pin touch screen line</p><p>[[File:./images/media/image507.png|300x44px]]</p></li></ol></li><li><p>According to Then from the figure table below, the 12PIN touch screen row, 31PIN to 40Pin linebase address of the PWM14 register is FEBF0020, and 30Pin MIPI cables get on then look at the output of the screen dial board. Pay attention to '''the blue insulation of the touch screen row line face to downls /sys/class/pwm/ -l'''command. If an error You can see that the link in PWMCHIP2 is connectedto Febf0020.PWM, it will cause no display or unable so the PWM14 corresponds to touch..PWMCHIP2</p><p>[[File:./images/media/image508plus5-img318.png|574x142px]]</p></li><li><p>Place Then use the connected rotor connected following command to allow the puzzle on the MIPI LCD screen according PWM14 to output a 50Hz square wave (please switch to the figure belowroot user first, and connect the MIPI LCD screen and then execute the rotary board through 31PIN to 40Pin rowfollowing command)</p></li></ol>
{| class="wikitable" style="width:800px;" |-|[[File:.root@orangepi ~]# '''echo 0 &gt; /sys/class/imagespwm/mediapwmchip2/image509.png|382x563px]]export'''
<ol start="4" style="list-style-type: decimal;"><li><p>Then connect the touch screen and the rotor board through the 12PIN touch screen line, pay attention to the orientation of the insulating surface</p><p>[[File:./images/media/image510.png|246x156pxroot@orangepi ~]]<# '''echo 20000000 &gt; /p><sys/li><li><p>Finally connect to the LCD interface of the development board through the 30PIN MIPI duct.<class/p><p>[[File:.pwm/imagespwmchip2/media/image511.png|363x202px]]<pwm0/p><p>'''Note that the touch interface below is not used for the LCD MIPI screen. It is currently a spare interface and cannot be used.period'''</p><p>[[File:./images/media/image512.png|334x70px]]</p></li></ol>
<span id="how-to-open-10.1--inch-mipi-lcd-screen-configuration"><[root@orangepi ~]# '''echo 1000000 &gt; /span>=== How to open 10.1 -inch MIPI LCD screen configuration ===sys/class/pwm/pwmchip2/pwm0/duty_cycle'''
<ol style="list-style-type: decimal;"><li><p>The position of the interface of the MIPI LCD screen on the development board is shown in the figure below</p><p>[[File:./images/media/image513.png|575x103px]]</p></li><li><p>OPi OS Arch image default is not to open the mipi lcd screen configuration. If you need to use the mipi lcd screen, you need to open it manually. The method of opening the mipi lcd configuration is shown below:</p><ol style="list-style-type: lower-alpha;"><li><p>First add the following configuration &gt; in'''/boot/extlinux/extlinux.conf'''</p><p>[orangepiroot@orangepi ~]$ # '''sudo''' '''vim echo 1 &gt; /bootsys/extlinuxclass/extlinux.conf'''<pwm/p><p>LABEL Orange Pi<pwmchip2/p><p>LINUX /Image</p><p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p><p>'''FDTOVERLAYS''' '''/dtbs/rockchip/overlaypwm0/rk3588-opi5plus-lcd.dtboenable''' '''#The configuration that needs to be added'''</p></li><li><p>'''Then restart the OPi OS Arch system'''</p></li></ol></li><li><p>After restarting, you can see the display of the LCD screen as shown below (default vertical screen):</p></li></ol>|}
[[File:plus5-img319.png]]</imagesol><ol start="8" style="list-style-type: decimal;"><li>The other pwm testing methods in the pwm14 demonstration above are similar.</mediali></image594.png|162x242px]]ol>
<span id="methodcans-oftest-rotating-display-and-touch-directionmethod"></span>=== Method of rotating display and touch direction ===
<ol style="list-style-type: decimal;"><li><p>First click the area in the upper right corner of the desktop</p><p>[[File:./images/media/image581.png|193x123px]]</p></li><li><p>Then open the settings</p><p>[[File:./images/media/image586.png|193x159px]]</p></li><li><p>Then choose == CAN'''Displays'''</p><p>[[File:./images/media/image595.png|424x279px]]</p></li><li><p>Then select the direction you want to rotate in the '''Orientation''' of '''Displays'''</p><p>[[File:./images/media/image596.png|426x282px]]</p></li><li><p>Then choose '''Apply'''</p><p>[[File:./images/media/image597.png|425x282px]]</p></li><li><p>Then you can see that the screen has been rotated. At this time, you need to choose '''Keep Changes''' to determine the rotation</p><p>[[File:./images/media/image598.png|259x130px]]</p></li><li><p>The display of the LCD screen after 90 degrees is shown below:</p><p>[[File:./images/media/image599.png|359x229px]]</p></li><li><p>'''The touch function of the OPi OS Arch system LCD screen will rotate with the rotation of the display direction without other settings.'''</p></li></ol>s test method ===
<span id="ov13850how-andto-ov13855open-mipia-test-methods-for-testingcan"></span>== OV13850 and OV13855 MIPI test methods for testing == At present, the development board supports two MIPI cameras, OV13850 and OV13855. The specific pictures are shown below:How to open a can ====
<ol style="list-style-type: decimal;">
<li><p>As can be seen from the table below, the Canal bus available for Orange Pi 5 Plus is CAN0 and CAN1</p>
<p>[[File:plus5-img320.png]]</p></li>
<li><p>In the Linux system, the Can in 40 PIN is closed by default and needs to be opened manually to use. The detailed steps are shown below:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>OV13850 camera of 13 million MIPI interface</p><p>[[File:./images/media/image24.png|215x121px]]</p></li><li><p>13 million MIPI interface OV13855 camera</p><p>[[File:./images/media/image25.png|189x112px]]</p><p>The rotary board used by OV13850 and OV13855 cameras is First add the same as the FPC cable, but the two cameras are different from the position on the rotary board. The FPC lines are shown in the figure below. Please note that the FPC line is directed. It is marked that following configuration to the '''TO MB''' must be inserted into the camera interface of the development board/boot/extlinux/extlinux. It is marked that the end of conf'''TO CAMERA''' needs to be inserted on the camera transfer board。</p></li></ol> [[File:./images/media/image525.png{|370x77px]] There are a total of 3 cameras on the camera to connect to the board, which can only be used at the same time, as shown in the figure below, of which: <ol class="wikitable" style="list-style-typewidth: lower-alpha800px;"><li><p>'''No. 1 interface is connected to the OV13850 camera'''</p></li><li><p>'''No. 2 interface connected OV13855 camera'''</p></li><li><p>No. 3 interface is not used, just ignore it.</p></li></ol> [[File:./images/media/image526.png|288x172px]] Orange Pi 5 Plus development board has a total of 1 camera interface, which is shown below: [[File:./images/media/image527.png|367x85px]] The method of the camera inserted on the development board interface is shown below:- [[File:./images/media/image528.png|332x154px]] After connecting the camera to the development board, we can use the following method to test the next camera: <ol style="list-style-type: lower-alpha;"><li><p>First add the following configuration in &gt; '''/boot/extlinux/extlinux.conf'''</p><p>[orangepi@orangepi ~]$ '''sudo''' '''vim /boot/extlinux/extlinux.conf'''</p>
<p>LABEL Orange Pi</p>
<p>LINUX /Image</p>
<p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p>
<p>'''<span style="color:#FF0000">FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-opi5pluscan0-ov13850m0.dtbo</span>'''</p>|}<p>The red font demonstrates the configuration of the camera interface '''ov13850can0-m0'''. The other configurations are shown in the table below, and the corresponding DTBO dtbo configuration can be added behind to '''<span style="color:#FF0000">FDTOVERLAYS</span>'''</p></li></ol>
{| class="wikitable" style="width:800px;"
|-
| style="text-align: left;"| '''CameraCAN bus'''
| style="text-align: left;"| '''Dtbo configuration'''
|-
| style="text-align: left;"| '''connect ov13850can0-m0'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-opi5pluscan0-ov13850m0.dtbo'''
|-
| style="text-align: left;"| '''connect ov13855can1-m0'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-opi5pluscan1-ov13855m0.dtbo'''
|}
</ol>
<ol start="2" style="list-style-type: lower-alpha;">
<li><p>Then '''Then <span style="color:#FF0000">restart the OPi OPI OS Arch system</span>'''</pli></ol></li></ol><!-- --><ol start="3" style="list-style-type: decimal;"><li><p>Then open After entering the Linux system, using the '''sudo ifconfig -a terminal in ''' command If you can see the desktop system and run CAN device node, it means that the script belowCAN has been opened correctly</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi ~]$ '''sudo pacman -Syy net-tools'''</p><p>[orangepi@orangepi:~]$ '''test_camera.shsudo ifconfig -a'''</p><p>can0: flags=128&lt;NOARP&gt; mtu 16</p>::<p>unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)</p>::<p>RX packets 0 bytes 0 (0.0 B)</lip>::<p>RX errors 0 dropped 0 overruns 0 frame 0</p>::<lip>TX packets 0 bytes 0 (0.0 B)</p>Then you can see the preview of the camera::<p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</p>::<div class="figure"p>device interrupt 94</p>
[[File:./images/media/image600.png|576x324px|Screenshot from 2023-04-20 17-16-08]]
<p>can1: flags=128&lt;NOARP&gt; mtu 16</divp>::<p>unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)</p>::<p>RX packets 0 bytes 0 (0.0 B)</p>::<p>RX errors 0 dropped 0 overruns 0 frame 0</p>::<p>TX packets 0 bytes 0 (0.0 B)</p>::<p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</p>::<p>device interrupt 95</p>|}</li><li><p>The pins corresponding to the Can0 and Can1 are</olp></li>
<span id{| class="wikitable" style="setwidth:800px;"|-the|| style="text-chinesealign: left;"| '''CAN0'''| style="text-environmentalign: left;"| '''CAN1'''|-and| '''TX Pin'''| style="text-thealign: left;"| '''Corresponding to No. 5 pin in 40pin'''| style="text-methodalign: left;"| '''Corresponding to No. 18 pin in 40pin'''|-of| '''RX Pin'''| style="text-installing-the-chinese-input-methodalign: left;"| '''Corresponding to No. 3 pin in 40pin'''| style="text-1align: left;">| '''Corresponding to No. 16 pin in 40pin'''|}</spanol><ol start="5" style= Set "list-style-type: decimal;"><li>Use Canalyst-II analyzer to test CAN receiving messages, please refer to the Chinese environment and content of the method one-section of installing [[Orange Pi 5 Plus#Use the Chinese input method ==CANalyst-II analyzer to test sending and receiving messages|'''the Canalyst-II analyzer to test receive and send message''']]</li></ol>
<ol stylespan id="listlinux-stylesdkorangepi-type: decimal;build-instructions"><li><p>First click the area in the upper right corner of the desktop</p><p>[[File:./images/media/image581.png|217x138px]]</p></li><li><p>Then open the settings</p><p>[[File:./images/media/image601.png|259x196px]]</p></li><li><p>Then find the '''Region &amp; Language''' option</p><p>[[File:./images/media/image602.png|394x260px]]</p></li><li><p>Then choose '''Language'''</p><p>[[File:./images/media/image603.png|401x264px]]</p></li><li><p>Then select Chinese</p><p>[[File:./images/media/image604.png|443x290px]]</p></li><li><p>then click '''Select'''</p><p>[[File:./images/media/image605.png|443x292px]]</p></li><li><p>Then click '''Logout...''' log in to the system, and then log in to the system</p><p>[[File:./images/media/image606.png|395x260px]]</p></li><li><p>Then you can see that the desktop is displayed as Chinese</p><div class="figure"span>
[[File:./images/media/image607.png|498x280px|截图 2023= '''Linux SDK——orangepi-04-20 20-20-06]]build instructions''' =
</div></li><li><p>Then install '''fcitx-im''' and '''fcitx-configtool'''</p><p>[orangepi@orangepi ~]$ '''sudo pacman -S fcitx-im fcitx-configtool'''</p><p>:: There are 3 members in the group fcitx-im:</p><p>:: Software warehouse Community</p><p>1) fcitx 2) fcitx-qt5 3) fcitx-qt6</p><p>Enter a selection (default = all selected): '''1'''</p></li><li><p>Then open the Fcitx configuration program</p><p>[[File:./images/media/image608.png|395x223px]]</p><p>[[File:./images/media/image609.png|396x223px]]</p></li><li><p>Then add '''<span classid="markcompilation-system-requirements">Google Pinyin</span>''' input method</p><p>[[File:./images/media/image610.png|248x228px]]</p><p>[[File:./images/media/image611.png|372x252px]]</p></li><li><p>Then we can open a terminal test in the Chinese input method. After opening the terminal, if the English input method is still in English, we can switch to the Chinese input method through the '''Ctrl+Space''' shortcut keys, and then you can enter Chinese</p><div class="figure">= Compilation system requirements ==
[[File{| class="wikitable" style="background-color:#ffffdc;width:./images/media/image612.png800px;" |459x258px-|截图 2023<big>'''We can cross-compile the Linux image of the development board on the x64 computer, or compile the Linux image of the development board on the Ubuntu22.04-20 20-38-24]]system of the development board, please choose one according to your preference.'''
'''If you use orangepi-build to compile the Linux image in the Ubuntu22.04 system of the development board, please do a good job of cooling (especially when the SSD starts). If the heat dissipation is not done well, it is prone to the error of file system runaway.'''</div></li></olbig>|}
<span id="hdmicompile-inwith-testthe-methodubuntu22.04-1system-of-the-development-board"></span>== HDMI IN test method = Compile with the Ubuntu22.04 system of the development board ===
<ol start="6" style="list-style-type: decimal;"><li><p>The position of Linux SDK, namely '''orangepi-build''', supports running on the development board HDMI In interface is shown below:'''</pspan style="color:#FF0000"><p>[[File:./images/media/image348Ubuntu 22.png|351x112px]]04</pspan></li><li><p>First use ''' of the HDMI to HDMI line shown below to output the HDMI output of development board (other devices to systems have not been tested), so before downloading orangepi-build, please first ensure that the HDMI In interface of Ubuntu version installed on the development board</p><p>[[File:is Ubuntu 22./images/media/image1204.png|199x129px]]</p></li><li><p>The OPi OS Arch system HDMI in function command to check the Ubuntu version installed on the development board is closed by default, and as follows. If the opening method is shown below:</p>Release field does not display '''<ol span style="list-style-typecolor: lower-alpha;#FF0000">22.04<li/span><p>First add the following configuration in &gt; '''/boot/extlinux/extlinux, it means that the current Ubuntu version does not meet the requirements. Please replace the system before performing the following operations.conf'''</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepi@orangepi :~]$ '''sudo''' '''vim /boot/extlinux/extlinux.conflsb_release -a'''</p><p>LABEL Orange PiNo LSB modules are available.</p><p>LINUX /ImageDistributor ID: Ubuntu</p><p>FDT /dtbs/rockchip/rk3588-orangepi-5-plusDescription: Ubuntu 22.04.dtb1 LTS</p><p>Release: '''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-hdmirx.dtbo''' '''<span style="color:#The configuration that needs to be added'''</pFF0000">22.04</lispan><li><p>'''Then restart the OPi OS Arch system'''</p></lip>Codename: jammy</olp>|}
</li>
<li><p>After restarting into the system, open a terminal on the desktop, and then run the '''test_hdmiin.sh''' script</p><p>[orangepi@orangepi ~]$ '''test_hdmiin.sh'''</p></lispan style="color:#FF0000"><li><p>Then you can see Since the input screen of source codes such as the HDMI in (the HDMI in in the figure below shows the screen of the OPI5 development board HDMI outputkernel and U-boot are stored on GitHub, and it is playing a video at this time). '''test_hdmiin.sh''' script defaults to the audio entered by HDMI in very important to the HDMI_TX1, HDMI_TX2 and ES8388 (representing speakers or headphones) of ensure that the development board.</p><p>[[File:./images/media/image613.png|576x326px]]</p></li><li><p>In addition to testing HDMI IN using '''test_hdmiin.sh''', we can also use '''Qt V4L2 test Utility''' to test HDMI in video ('''this method cannot test audio at present'''). The detailed steps are shown below:</p><ol style="list-style-type: lower-alpha;"><li><p>Enter download codes from GitHub normally when compiling the application list first</p><p>[[File:./images/media/image614image.png|356x200px]]</p></li><li><pspan>Then find '''Qt V4L2 test Utility''' and open it</p><p>[[File:./images/media/image615.png|367x205px]]</p></li><li><p>Then make sure '''Qt V4L2 test Utility''' recognizes the HDMI In &gt; device</p><p>[[File:./images/media/image616.png|508x185px]]</p></li><li><p>Then click the location shown in the figure below to see the &gt; video entered by HDMI In</p><p>[[File:./images/media/image617.png|508x359px]]</p></li><li><p>The video window entered by HDMI In is shown below:</p><div class="figure"ol>
[[File:./images/media/image618.png|572x322px|Screenshot from 2023<span id="compile-05with-22 18x64-12ubuntu22.04-56]]computer"></span>
</div></li></ol></li></ol>=== Compile with x64 Ubuntu22.04 computer ===
<ol style="list-style-type: decimal;"><li><p>The Linux SDK, '''orangepi-build''', supports running on computers with '''<span idstyle="howcolor:#FF0000">Ubuntu 22.04</span>''' installed, so before downloading orangepi-build, please make sure that the Ubuntu version installed on your computer is Ubuntu 22.04. The command tocheck the Ubuntu version installed on the computer is as follows. If the Release field does not display '''<span style="color:#FF0000">22.04</span>''', it means that the current Ubuntu version does not meet the requirements. Please replace the system before performing the following operations.</p>{| class="wikitable" style="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>If the computer is installed with Windows system and there is no computer with Ubuntu 22.04 installed, you can consider using '''VirtualBox''' or '''VMware''' to installan Ubuntu 22.04 virtual machine in the Windows system. But please be careful not to compile orangepi-build on the WSL virtual machine, because orangepi-wiringopbuild has not been tested in the WSL virtual machine, so it cannot be guaranteed that orangepi-1build can be used normally in WSL.</p></li><li><p>The download address of the installation image of Ubuntu 22.04 '''<span style="color:#FF0000">amd64</span>''' version is:</p>{| class="wikitable" style= How "width:800px;" |-|<p>'''https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/22.04/ubuntu-22.04-desktop-amd64.iso'''</p><p>or</p><p>'''https://repo.huaweicloud.com/ubuntu-releases/22.04/ubuntu-22.04.1-desktop-amd64.iso'''</p>|}</li><li><p>After installing Ubuntu 22.04 on the computer or virtual machine, please set the software source of Ubuntu 22.04 to Tsinghua source, otherwise it is easy to make mistakes due to install wiringOP =network reasons when installing the software later</p><ol style="list-style-type: lower-alpha;"><li>For the method of replacing Tsinghua source, please refer to the instructions on this web page</li>
{| class="wikitable" style="width:800px;" |-|'''https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/'''|}</ol><ol start="2" style="list-style-type: lower-alpha;"><li><p>Note that Wiringop has been pre the Ubuntu version needs to be switched to 22.04</p><p>[[File:plus5-installed in img534.png]]</p></li><li><p>The content of the OPI OS Arch''' <span class="mark">/etc/apt/sources.list</span>''' file that needs to be replaced is</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''imagesudo mv /etc/apt/sources.list /etc/apt/sources.list.bak''' </p><p>test@test:~$ '''released by Orange PIsudo vim /etc/apt/sources. Unless Wiringoplist's code ''</p><p># By default, the source image is updatedcommented to improve the speed of apt update, you can uncomment it is not yourself if necessary to re </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-download and compile and install it,just use it directlysrc https://mirrors.tuna.tsinghua.edu.'''cn/ubuntu/ jammy-security main restricted universe multiverse</p>
'''After entering the system, you can run the gpio readall command. If you can see the output below, it means that wiringOP is pre -installed and can be used normally'''
[[File<p># Pre-release software source, not recommended to enable</p><p># deb https://mirrors.tuna.tsinghua.edu.cn/imagesubuntu/mediajammy-proposed main restricted universe multiverse</image619p><p># deb-src https://mirrors.pngtuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse</p>|}</li><li><p>After the replacement, you need to update the package information and make sure there is no error</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''sudo apt update'''</p>|434x308px]]}</li><li><p>'''wiringOP is currently adapted to set <span style="color:#FF0000">In addition, since the GPIO port input output, set source codes such as the GPIO port output high kernel and low levelU-boot are stored on GitHub, and set the function of pulling and down resistance. It it is impossible very important to use functions like hardware PWMensure that the computer can download codes from GitHub normally when compiling the image.</span>'''</p></li></ol></li></ol><span id="get-the-source-code-of-linux-sdk"></span>
<ol style="list-style-type: decimal;"><li><p>Download the code of wiringOP</p><p>[orangepi@orangepi ~]$ '''sudo pacman -Syy git'''</p><p>[orangepi@orangepi ~]$ '''git clone https://github.com/orangepi-xunlong/wiringOP.git -b next'''</p><p>'''Note that Orange Pi 5 Plus needs to download the code of the wiringOP next branch, please don't miss the parameter of -b next。'''</p><p>'''If you have a problem with the download code from github, you can download = Get the source code compression package of wiringOp.tar.gz in the''' '''official tools of the Orange Pi 5 Plus data download page'''</p><p>[[File:./images/media/image620.png|356x88px]]</p></li><li><p>Compile and install wiringOP</p><p>[orangepi@orangepi ~]$ '''sudo pacman -Syy make gcc'''</p><p>[orangepi@orangepi ~]$ '''cd wiringOP'''</p><p>[orangepi@orangepi wiringOP]$ '''sudo ./build clean'''</p><p>[orangepi@orangepi wiringOP]$ '''sudo ./build'''</p></li><li><p>Test the output of the GPIO Readall command as follows</p><p>[[File:./images/media/image619.png|568x403px]]</p></li></ol>linux sdk ==
<span id="pindownload-interfaceorangepi-gpiobuild-i2cfrom-uart-spi-can-and-pwm-test-1github"></span>== 40 PIN interface GPIO, I2C, UART, SPI, CAN and PWM test = Download orangepi-build from github ===
'''Note that if you need # The linux sdk actually refers to set FDT Overlays to open the code of orangepi-build. orangepi-build is modified based on the armbian build system. Using orangepi-build, multiple configurations at versions of linux images can be compiled. First download the same timecode of orangepi-build, please use a space to write in a line like the red font configuration below.command is as follows:::{| class="wikitable" style="width:800px;" |-|test@test:~$ '''sudo apt-get update'''
[orangepitest@orangepi test:~]$ '''sudo vim /boot/extlinux/extlinux.confapt-get install -y git'''
LABEL test@test:~$ '''git clone https://github.com/orangepi-xunlong/orangepi-build.git -b next'''|}::{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Note that the Orange Pi5 Plus development board needs to download the source code of the next branch of orangepi-build. The above git clone command needs to specify the branch of the orangepi-build source code as next.'''</big><div class="figure">
LINUX /Image[[File:plus5-img535.png|700px|center]]
FDT </dtbs/rockchip/rk3588sdiv>|}::{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Downloading the orangepi-build code through the git clone command does not require entering the user name and password of the github account (the same is true for downloading other codes in this manual), if the Ubuntu PC prompts the user to enter the github account after entering the git clone command The name and password are usually entered incorrectly in the address of the orangepi-5build warehouse behind the git clone.dtbPlease check the spelling of the command carefully, instead of thinking that we forgot to provide the username and password of the github account.'''</big>|}
'''FDTOVERLAYS''' '''/dtbs/rockchip/overlay/rk3588<ol start="2" style="list-style-i2c1type: decimal;"><li>The u-m2.dtbo''' '''/dtbsboot and linux kernel versions currently used by the development board are as follows</rockchip/overlay/rk3588-uart0-m2.dtbo'''li>
<span id{| class="wikitable" style="pinwidth:800px;" |-gpio| style="text-portalign: left;"| '''branch'''| style="text-testalign: left;"| '''u-boot version'''| style="text-2align: left;"></span>| '''linux kernel version'''|-| style="text-align: left;"| '''legacy'''| style="text-align: left;"| '''u-boot 2017.09'''| style= 40 PIN GPIO port test ="text-align: left;"| '''linux5.10'''|}{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''The branch mentioned here is not the same thing as the branch of the orangepi-build source code, please do not confuse it. This branch is mainly used to distinguish different kernel source code versions.'''
'''Currently, the linux5.10 bsp kernel provided by RK is defined as the legacy branch. If the mainline kernel is supported in the future, a current branch will be added.'''</big>|}</ol ><ol start="3" style="list-style-type: decimal;"><li><p>A total of 28 GPIO ports can be used in the development board 40 PIN. Below is No. 7 pins orangepi-corresponding to GPIO1_D6 -corresponding WPI serial number 2 -as an example to demonstrate how to set build will contain the high following files and low level of the GPIO portfolders after downloading</p><ol style="list-style-type: lower-alpha;"><li><p>[[File'''build.sh''':./images/media/image621.png|576x147px]]Compile the startup script</p></li><li><p>First set '''external''': Contains the GPIO port as configuration files needed to compile the output mode. The third parameter needs to enter image, specific scripts, and the serial number source code of the wpi corresponding to the pinssome programs, etc.</p></li><li><p>[orangepi@orangepi ~]$ '''gpio mode''' LICENSE''': GPL 2license file</p></li><li><p>''' README.md'''out''': orangepi-build documentation</p></li><li><p>Then set the GPIO port output low level. After setting, you can use the value of the voltage of the pins with a multimeter. If it is 0V, it means that the low -power flat is set'''scripts''': General script for compiling linux images</p>{| class="wikitable" style="width:800px;" |-|<p>[orangepitest@test:~/orangepi ~]-build$ '''gpio write 2ls''' </p><p>'''0build.sh external LICENSE README.md scripts'''</p></li>|}{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <libig><p>Then set '''If you downloaded the GPIO port output high level. After settingcode of orangepi-build from github, after downloading, you can may find that orangepi-build does not contain the source code of u-boot and linux kernel, nor does u-boot and linux kernel need to use cross-compilation tools Chain, this is normal, because these things are stored in other separate github warehouses or some servers (the value of addresses will be detailed below). orangepi-build will specify the voltage address of u-boot, linux kernel and cross-compilation toolchain in the pins with a multimeterscript and configuration file. If When running orangepi-build, when it is 3.3Vfinds that there are no such things locally, it means that will automatically go to the high -power flat is set corresponding place to be successfuldownload them.'''</p></big>|}<p/li>[orangepi@orangepi ~]$ '''gpio write 2''' '''1'''</pol></li></ol> <span id="download-the-cross-compilation-toolchain"></span>
<!-- === Download the cross--># The setting method of other pins is similar. Just modify the serial number of the wpi serial number as the corresponding serial number.compilation toolchain ===
<span id{| class="wikitable" style="pinbackground-gpiocolor:#ffffdc;width:800px;" |-port| <big>'''The cross-compilation toolchain will only be downloaded when the orangepi-tobuild compilation image is used on an x64 computer. Compiling the linux image of the development board in the Ubuntu22.04 of the development board will not download the cross-compilation toolchain. At this time, orangepi-plattering-resistance-setting-method">build/toolchains will be an empty folder.'''</spanbig>=== 40 PIN GPIO Port -to -Plattering resistance setting method ===|}
<ol style="list-style-type: decimal;">
<li><p>Below When orangepi-build runs for the first time, it will automatically download the No. 7 pin — corresponding to GPIO1_D6 -corresponding WPI serial number 2 cross-to demonstrate how to set up compilation toolchain and down pull -down resistance of put it in the GPIO port</p><p>[[File:./images/media/image621toolchains folder.png|576x147px]]</p></li><li><p>First of all, you need to set the GPIO port as Every time after running the input modebuild. The third parameter needs to enter the serial number sh script of the wpi corresponding to the pins</p><p>[orangepi@orangepi ~]$ '''gpio mode''' '''2''' '''in'''</p></li><li><p>After the setting is set to input mode-build, execute the following command to set the GPIO port as it will check whether the pull cross-down mode</p><p>[orangepi@orangepi ~]$ '''gpio mode''' '''2''' '''up'''</p></li><li><p>Then enter the following command to read the level of the GPIO port. If compilation toolchain in toolchains exists , if it does not exist, the level is 1download will be restarted, if it means that the drawing mode is successful</p><p>[orangepi@orangepi ~]$ '''gpio read''' '''2'''</p><p>'''1'''</p></li><li><p>Then execute the following command to set the GPIO port as the drop-down mode</p><p>[orangepi@orangepi ~]$ '''gpio mode''' '''2''' '''down'''</p></li><li><p>Then enter the command below to read the level of the GPIO port. If the level is 0exists, it means that will be used directly, and the drop -down mode is set successfully</p><p>[orangepi@orangepi ~]$ '''gpio read''' '''2'''download will not be repeated.</p><p>'''0'''</p></li></oldiv class="figure">
<span id="pin[[File:plus5-spi-test-2"></span>=== 40 PIN SPI test ===img536.png|1500px]]
<ol style="list-style-type: decimal;"><li><p>As can be seen from the figure below, the SPI available for Orange Pi 5 Plus is SPI0 and SPI4</p><p>[[File:./images/media/image389.png|575x137px]]</pdiv></li><li><p>The corresponding pins corresponding to SPI0 and SPI4 are shown image URL of the cross-compilation toolchain in China is the table below. SPI4_M1 and SPI4_M2 can only be used at the same time, and they cannot be used at the same time. They are the same SPI4, but they are just getting different pins. Please don't think that they are two different SPI bus。open source software image site of Tsinghua University</p></li></ol> {| class="wikitable" style="width:800px;"
|-
|
| '''SPI0_M2 to 40pinhttps://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain/'''| }</li><li><p>After '''SPI4_M1 to 40pintoolchains'''is downloaded, it will contain multiple versions of cross-compilation toolchains, and the development board will only use two of them</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''SPI4_M2 to 40pin'''
|-
| <p>test@test:~/orangepi-build$ '''MOSIls toolchains/'''</p><p>gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu</p>| '''No<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. 19 pins'''01-x86_64_arm-linux-gnueabi</p>| '''No<p>gcc-linaro-5.5.0-2017. 12 pins'''10-x86_64_arm-linux-gnueabihf</p>| style="text<p>gcc-linaro-7.4.1-align: left;"| '''No2019. 8 pins'''02-x86_64_aarch64-linux-gnu</p>|<p>gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabi</p>| '''MISO'''<p>gcc-linaro-aarch64-none-elf-4.8-2013.11_linux</p>| '''No<p>gcc-linaro-arm-linux-gnueabihf-4.8-2014. 21 pins'''04_linux</p>| '''No<p>gcc-linaro-arm-none-eabi-4.8-2014. 31 pins'''04_linux</p>| }</li><li><p>The cross-compilation toolchain used to compile the linux kernel source code is</p><ol style="textlist-style-aligntype: leftlower-alpha;"| '''No. 10 pins'''|->| '''CLK'''| '''No<li><p>linux5. 23 pins'''| '''No. 35 pins'''10</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''No. 22 pins'''
|-
| '''CS0'''| <p>'''Nogcc-arm-11.2-2022. 24 pins02-x86_64-aarch64-none-linux-gnu'''</p>| '''No}</li></ol></li><li><p>The cross-compilation tool chain used to compile the u-boot source code is</p><ol style="list-style-type: lower-alpha;"><li><p>v2017. 40 pins'''09</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''No. 31 pins'''
|-
| '''CS1'''| <p>'''Nogcc-linaro-7. 26 pins'''| '''No4.1-2019. 38 pins'''| style="text02-x86_64_aarch64-linux-align: left;"| '''Nonegnu'''</p>
|}
</li></ol>
</li></ol>
<ol startspan id="3orangepi-build-complete-directory-structure-description" ></span> === orangepi-build complete directory structure description === <ol style="list-style-type: decimal;"><li><p>In The orangepi-build repository does not contain the source code of the Linux systemlinux kernel, the SPI in 40 PIN is closed by defaultu-boot, and it needs to be opened manually to usecross-compilation toolchain after downloading. The detailed steps are shown below:source code of the linux kernel and u-boot is stored in an independent git repository</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First add the following configuration to the &gt; '''/boot/extlinux/extlinux.conf'''</p><p>[orangepi@orangepi ~]$ '''sudo''' '''vim /boot/extlinux/extlinux.conf'''</p><p>LABEL Orange Pi</p><p>LINUX /Image</p><p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p><p>'''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-spi0-m2-cs0-cs1-spidev.dtbo'''</p><p>The red font demonstrated the configuration of opening the '''<span class="mark">SPI0-M2 and using the CS0 and CS1 pin</span>'''. The other configurations are shown in the table below, and git warehouse where the corresponding dtbo configuration can be added to '''FDTOVERLAYS'''linux kernel source code is stored is as follows:</p></li></ol></li></ol> {| class="wikitable" style="width:800px;"
|-
| style="text-align: left;"| <p>'''SPI bushttps://github.com/orangepi-xunlong/linux-orangepi/tree/orange-pi-5.10-rk3588'''</p>| }</li><li><p>The git warehouse where the u-boot source code is stored is as follows:</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''dtbo configuration'''
|-
| style="text<p>'''https://github.com/orangepi-xunlong/u-boot-orangepi/tree/v2017.09-rk3588'''</p>|}</li></ol></li><li><p>When orangepi-build runs for the first time, it will download the cross-compilation toolchain, u-boot and linux kernel source code. After successfully compiling a linux image, the files and folders that can be seen in orangepi-alignbuild are:</p><p>a. '''build.sh''': compile startup script</p><p>b. '''external''': Contains the configuration files needed to compile the image, scripts with specific functions, and the source code of some programs. The rootfs compressed package cached during the image compilation process is also stored in external</p><p>c. '''kerne'''l: left;"| stores the source code of the linux kernel. The folder named '''SPI0_M2orange-cs0pi-5.10-rk3588'''stores the kernel source code of the legacy branch of the RK3588/RK3588S series development boards. Please do not manually modify the name of the folder of the kernel source code. If it is modified, the kernel source code will be re-downloaded when the compilation system is running</p>| style="text-align<p>d. '''LICENSE''': left;"| GPL 2 license file</p><p>e. '''README.md''': orangepi-build documentation</dtbsp><p>f. '''output''': Store compiled deb packages such as u-boot and linux, compilation logs, and compiled images and other files</rockchipp><p>g. '''scripts''': general scripts for compiling linux images</overlayp><p>h. '''toolchains''': store cross-compilation toolchain</p><p>i. '''u-boot''': Store the source code of u-boot. The folder named '''v2017.09-rk3588''' stores the u-spi0boot source code of the legacy branch of the RK3588/RK3588S series development boards. Please do not name the folder name of the u-m2boot source code Manual modification, if modified, the u-cs0boot source code will be re-spidevdownloaded when the compilation system is running</p><p>j.dtbo'''userpatches''': Store configuration files needed to compile scripts</p>{| class="wikitable" style="width:800px;"
|-
| style="text<p>test@test:~/orangepi-align: left;"| build$ '''SPI0_M2-cs1ls'''</p>| style="text<p>'''build.sh &nbsp;&nbsp;&nbsp;&nbsp; external &nbsp;&nbsp;&nbsp;&nbsp; kernel &nbsp;&nbsp;&nbsp;&nbsp; LICENSE &nbsp;&nbsp;&nbsp;&nbsp; output &nbsp;&nbsp;&nbsp;&nbsp; README.md &nbsp;&nbsp;&nbsp;&nbsp; scripts &nbsp;&nbsp;&nbsp;&nbsp; toolchains &nbsp;&nbsp;&nbsp;&nbsp; u-align: leftboot &nbsp;&nbsp;&nbsp;&nbsp;"| userpatches'''</dtbsp>|}</rockchipli></overlayol> <span id="compile-u-boot"></rk3588span> == Compile u-spi0boot == <ol style="list-m2style-cs1-spidevtype: decimal;"><li><p>Run the build.dtbo'''sh script, remember to add sudo permission</p>{| class="wikitable" style="width:800px;"
|-
| style="text-align: left;"| '''SPI0_M2-cs0-cs1'''| style="text-align<p>test@test: left;"| '''~/dtbs/rockchip/overlay/rk3588orangepi-spi0-m2-cs0-cs1-spidev.dtbobuild$ '''|-| style="text-align: left;"| '''SPI4_M1-cs0'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-spi4-m1-cs0-spidevsudo .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-spidevbuild.dtbo'''|-| style="text-align: left;"| '''SPI4_M2-cs0sh'''| style="text-align: left;"| '''/dtbs/rockchip</overlay/rk3588-spi4-m2-cs0-spidev.dtbo'''p>
|}
</li>
<li><p>Select '''<span class="mark">U-boot package</span>''', then press Enter</p>
<div class="figure">
<ol start="2" style="list-style-type[[File: lowerplus5-alpha;"><li>Then '''restart the OPi OS Arch system'''</li></ol>img537.png]]
<!-- --><ol start="4" style="list-style-type: decimal;"><li><p>After the restart, enter the system first to check whether there is a '''spidevx.x''' device node in the Linux system. If it exists, it means that the SPI has been set and can be used directly</p><p>[orangepi@orangepi ~]$ '''ls /dev/spidev*'''</p><p>/dev/spidev0.0 /dev/spidev0.1 /dev/spidev4.0 /dev/spidev4.1</p><p>'''The above is the result displayed after opening the spi0-m2-cs0-cs1-spidev and spi4-m1-cs0-cs1-spidev'''</pdiv></li><li><p>Then do not connect the SPI0 or SPI4 MOSI and MISO pins, and run select the output result model of the spidev_teest as shown below. You can see that the data of TX and RX are inconsistentdevelopment board</p><p>[orangepi@orangepi ~]$ '''sudo spidev_test -v -D /dev/spidev4.0'''</p><p>'''Or'''</p><p>[orangepi@orangepi ~]$ '''sudo spidev_test -v -D /dev/spidev0.0'''</p><p>spi mode: 0x0</p><p>bits per word: 8</p><p>max speed: 500000 Hz (500 KHz)</p><p>TX | FF FF FF FF FF FF '''40 00 00 00 00 95''' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D | ......@.…▒..................▒.</p><p>RX | FF FF FF FF FF FF '''FF FF FF FF FF FF''' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | ............................….</p></li><li><p>Then the output of spidev_test, which is then connected to SPI0 or SPI4 MOSI and MISO, is as follows. You can see that the sending and receiving data can be seen, indicating that the SPI loop test is normal</p><p>[orangepi@orangepi ~]$ '''sudo spidev_test -v -D /dev/spidev4.0'''</p><p>'''Or'''</p><p>[orangepi@orangepi ~]$ '''sudo spidev_test -v -D /dev/spidev0.0'''</p><p>spi mode: 0x0</p><p>bits per word: 8</p><p>max speed: 500000 Hz (500 KHz)</p><p>TX | FF FF FF FF FF FF '''40 00 00 00 00 95''' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D | ......@.…▒..................▒.</p><p>RX | FF FF FF FF FF FF '''40 00 00 00 00 95''' FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D | ......@.…▒..................▒.</p></li></oldiv class="figure">
<span id="pin[[File:plus5-i2c-test-2"></span>=== 40 pin I2C test ===img538.png]]
<ol style="list-style-type: decimal;"/div></li><li><p>From the table belowThen it will start to compile u-boot, the I2C available for Orange Pi 5 Plus and some information prompted during compilation is I2C2, I2C4, I2C5, and I2C8. There are four groups of I2C busexplained as follows</p><p>[[Fileol style="list-style-type:./images/media/image389.png|575x137px]]</p></lilower-alpha;"><li><p>The corresponding pins corresponding to the 4 group I2C bus are shown below. I2C2_M0 and I2C2_M4 can only be used at the same time, and they cannot be used at the same time. They are the same I2C2, but they only receive different pins. Please don't think that they are two different I2C2 busu-boot source code version</p></li></ol> {| class="wikitable" style="width:800px;"
|-
| style="text<p>[ o.k. ] Compiling u-align: left;"| boot [ '''I2C busv2017.09''']</p>| style}</li><li><p>The version of the cross-compilation toolchain</p>{| class="text-align: left;wikitable"| '''SDA to 40pin'''| style="text-alignwidth: left800px;"| '''SCL to 40pin'''
|-
| style="text-align: left;"| <p>[ o.k. ] Compiler version [ '''I2C2_M0aarch64-linux-gnu-gcc 7.4.1''']</p>| style}</li><li><p>Path to the generated u-boot deb package</p>{| class="text-align: left;wikitable"| '''No. 3 pin'''| style="text-alignwidth: left800px;"| '''No. 5 pin'''
|-
| style="text-align: left;"| <p>[ o.k. ] Target directory [ '''I2C2_M4orangepi-build/output/debs/u-boot''']</p>|}</li><li><p>The package name of the generated u-boot deb package</p>{| styleclass="text-align: left;wikitable"| '''No. 10 pin'''| style="text-alignwidth: left800px;"| '''No. 8 pin'''
|-
| style="text-align: left;"| <p>[ o.k. ] File name [ '''I2C4_M3linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb''']</p>| style}</li><li><p>Compilation time</p>{| class="text-align: left;wikitable"| '''No. 22 pin'''| style="text-alignwidth: left800px;"| '''No. 32 pin'''
|-
| style="text-align: left;"| <p>[ o.k. ] Runtime [ '''I2C5_M31 min''']</p>|}</li><li><p>Repeat the command to compile u-boot, use the following command to start compiling u-boot directly without selecting through the graphical interface</p>{| styleclass="text-align: left;wikitable"| '''No. 27 pin'''| style="text-alignwidth: left800px;"| '''No. 28 pin'''
|-
| style="text-align: left;"| '''I2C8_M2'''| style="text-align: left;"| <p>[ o.k. ] Repeat Build Options [ '''Nosudo ./build. 29 pin'''| stylesh BOARD=orangepi5plus BRANCH=legacy BUILD_OPT="textu-align: left;"| '''No. 7 pinboot KERNEL_CONFIGURE=no''']</p>
|}
 
<ol start="3" style="list-style-type: decimal;">
<li><p>In the Linux system, the I2C bus in 40 PIN is closed by default, and it needs to be opened manually to use. The detailed steps are shown below:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First add the following configuration in &gt; '''/boot/extlinux/extlinux.conf'''.</p>
<p>[orangepi@orangepi ~]$ '''sudo''' '''vim /boot/extlinux/extlinux.conf'''</p>
<p>LABEL Orange Pi</p>
<p>LINUX /Image</p>
<p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p>
<p>'''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-i2c2-m0.dtbo'''</p>
<p>The red font on the above demonstrates the configuration of the '''i2c2-m0'''. The other configurations are shown in the table below, and the corresponding dtbo configuration can be added behind '''FDTOVERLAYS'''</p></li></ol>
</li></ol>
</li><li><p>View the u-boot deb package generated by compilation</p>{| class="wikitable" style="width:800px;"
|-
| style="text<p>test@test:~/orangepi-align: left;"| build$ '''I2C busls output/debs/u-boot/'''</p><p>linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb</p>| }</li><li><p>The files contained in the generated u-boot deb package are as follows</p><ol style="textlist-alignstyle-type: leftlower-alpha;"><li><p>Use the following command to decompress the deb package</p>{| '''dtbo configuration'''class="wikitable" style="width:800px;"
|-
| style="text<p>test@test:~/orangepi-build$ '''cd output/debs/u-alignboot'''</p><p>test@test: left;"| ~/orangepi_build/output/debs/u-boot$ $ '''I2C2_M0sudo dpkg -x'''\</p>| style="text<p>'''linux-u-boot-legacy-align: leftorangepi5plus_1.0.0_arm64.deb . (Note that there is a &quot;.&quot;"| at the end of the command)'''</dtbsp><p>test@test:~/rockchiporangepi_build/overlayoutput/rk3588debs/u-i2c2boot$ '''ls'''</p><p>linux-u-boot-m0legacy-orangepi5plus_1.dtbo0.0_arm64.deb '''usr'''</p>|}</li><li><p>The decompressed file is as follows</p>{| class="wikitable" style="width:800px;"
|-
| style="text-align: left;"| '''I2C2_M4'''| style="text-align<p>test@test: left;"| '''~/dtbsorangepi-build/rockchipoutput/overlaydebs/rk3588-i2c2-m4.dtbo'''|-| style="textu-align: left;"| boot$ '''I2C4_M3tree usr'''</p>| style="text-align: left;"| '''<p>usr</dtbsp><p>└── lib</rockchip/overlay/rk3588p>:<p>├── linux-u-boot-i2c4legacy-m3orangepi5plus_1.0.dtbo'''0_arm64</p>|-:<p>│   ├── idbloader.img</p>| style="text-align: left;"| '''I2C5_M3'''<p>│   ├── rkspi_loader.img</p>| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588-i2c5<p>│   └── u-m3boot.dtbo'''itb</p>|:<p>└── u-boot</p>| style="text-align: left;"| '''I2C8_M2''':<p>├── LICENSE</p>| style="text-align: left;"| ''':<p>├── orangepi_5_plus_defconfig</dtbs/rockchipp>::<p>└── platform_install.sh</overlay/rk3588-i2c8-m2.dtbo'''|}p>
<ol start="2" style="list-style-type: lower-alpha;">
<li>Then restart the '''OPi OS Arch''' system</li></ol>
<!-- --><ol start="4" style="list-style-type: decimal;"><li><p>After starting the linux system, first confirm that there is a device node that needs to be used under the'''/dev'''</p><p>orangepi@orangepi:~$ '''ls /dev/i2c-*'''</p></li><li><p>Then connect a I2C device on the I2C pin corresponding to the 40 PIN interface</p></li><li><p>Then use the '''i2cdetect -y''' command to detect the address of the connected i2c device, which means that the i2c can be used normally</p><p>[orangepi@orangepi ~]$ '''sudo pacman -S i2c-tools''' #First of all, I2C tools</p><p>[orangepi@orangepi ~]$ '''sudo i2cdetect -y 2''' #i2c2 test command</p><p>[orangepi@orangepi ~]$ '''sudo i2cdetect -y 4''' #i2c4 test command</p><p>[orangepi@orangepi ~]$ '''sudo i2cdetect -y 5''' #i2c5 test command</p><p>[orangepi@orangepi ~]$ '''sudo i2cdetect -y 8''' #i2c8 test command</p></li></ol> <span id="pins-uart-test"></span>=== 40 Pin's UART test === <ol style="list-style-type: decimal;"><li><p>As can be seen from the table below, the UART available for Orange Pi 5 Plus is UART1, UART3, UART4, UART6, UART73 directories, and UART8. There are 6 sets of UART busfiles</p><p>[[File:./images/media/image389.png|575x137px]]</p></li><li><p>In the Linux system, the UART in 40 pin is closed by default, and it needs to be opened manually to use. The detailed steps are shown below:</p><ol style="list-style-type: lower-alpha;"><li><p>First add the following configuration to &gt; the'''/boot/extlinux/extlinux.conf'''</p><p>[orangepi@orangepi ~]$ '''sudo''' '''vim /boot/extlinux/extlinux.conf'''</p><p>LABEL Orange Pi</p><p>LINUX /Image</p><p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p><p>'''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-uart1-m1.dtbo'''</p><p>The red font demonstrates the configuration of the '''uart1-m1'''. The other configurations are shown in the table below, and the corresponding dtbo configuration can be added behind '''FDTOVERLAYS'''</p></li></ol>}
</li></ol>
</li><li><p>When the orangepi-bulid compilation system compiles the u-boot source code, it will first synchronize the u-boot source code with the u-boot source code of the github server, so if you want to modify the u-boot source code, you first need to turn off the download and update function of the source code '''(need This function can only be turned off after u-boot has been fully compiled, otherwise it will prompt that the source code of u-boot cannot be found. If the source code compressed package is downloaded from Google Drive, there is no such problem because the source code of u-boot cached)''', otherwise the changes made will be restored, the method is as follows:</p><p>Set the IGNORE_UPDATES variable in <span class="mark">userpatches/config-default.conf</span> to &quot;yes&quot;</p>{| class="wikitable" style="width:800px;"
|-
| <p>test@test:~/orangepi-build$ '''vim userpatches/config-default.conf'''</p><p>IGNORE_UPDATES=&quot;'''<span style="text-aligncolor: left;#FF0000"| '''UART bus>yes</span>'''&quot;</p>| }</li><li><p>When debugging u-boot code, you can use the following method to update u-boot in the linux image for testing</p><ol style="textlist-style-aligntype: leftlower-alpha;"><li><p>Upload the compiled u-boot deb package to the linux system of the development board</p>{| '''dtbo configuration'''class="wikitable" style="width:800px;"
|-
| style="text<p>test@test:~/orangepi-align: left;"| build$ '''UART1_M1cd output/debs/u-boot'''</p>| style="text<p>test@test:~/orangepi_build/output/debs/u-align: left;"| boot$ '''scp \'''</dtbs/rockchip/overlay/rk3588p><p>'''linux-u-boot-uart1legacy-m1orangepi5plus_1.0.0_arm64.deb [mailto:root@192.168.1.dtboxxx:/root root@192.168.1.xxx:/root]'''</p>|}</li><li><p>Then log in to the development board and uninstall the deb package of u-boot installed</p>{| class="wikitable" style="width:800px;"
|-
| style="text-align<p>root@orangepi: left;"| ~# '''UART3_M1apt purge -y linux-u-boot-orangepi5plus-legacy'''</p>|}</li><li><p>Install the new u-boot deb package just uploaded</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''/dtbs/rockchip/overlay/rk3588-uart3-m1.dtbo'''
|-
| style="text-align<p>root@orangepi: left;"| ~# '''UART4_M2dpkg -i'''| style="text-align: left;"| '''/dtbs/rockchip/overlay/rk3588linux-u-boot-uart4legacy-m2orangepi5plus_1.0.0_arm64.dtbodeb'''</p>|}</li><li><p>Then run the nand-sata-install script</p>{| class="wikitable" style="width:800px;"
|-
| style="text-align<p>root@orangepi: left;"| ~# '''UART6_M1nand-sata-install'''</p>| style}</li><li><p>Then select '''<span class="textmark">5 Install/Update the bootloader on SD/eMM</span>''' to update the u-align: left;boot in the TF card or '''<span class="mark"| >7 Install/Update the bootloader on SPI Flash</span>'''to update the u-boot in the SPI Flash</p><p>[[File:plus5-img539.png]]</p></li><li><p>After pressing the Enter key, a Warning will pop up first</p><p>[[File:plus5-img540.png]]</p></dtbsli><li><p>Press the Enter key again to start updating u-boot, and the following information will be displayed after the update is completed</rockchipp><p>[[File:plus5-img541.png]]</overlayp></rk3588li><li><p>Then you can restart the development board to test whether the modification of u-boot takes effect</p></li></ol></li><li><p>Other useful information</p><ol style="list-style-type: lower-uart6alpha;"><li><p>u-m1boot 2017.dtbo'''09 source code, the defconfig configuration file used by the development board is</p></li>{| class="wikitable" style="width:800px;"
|-
| style="text[https://github.com/orangepi-xunlong/u-boot-orangepi/blob/v2017.09-align: left;"| rk3588/configs/orangepi_5_plus_defconfig '''UART7_M2orangepi-build/u-boot/v2017.09-rk3588/configs/orangepi_5_plus_defconfig''']| }<li><p>u-boot 2017.09 source code, the dts file used by the development board is</p></li>{| class="wikitable" style="text-alignwidth: left800px;"| '''/dtbs/rockchip/overlay/rk3588-uart7-m2.dtbo'''
|-
| style="text[https://github.com/orangepi-xunlong/u-boot-orangepi/blob/v2017.09-rk3588/arch/arm/dts/rk3588-align: left;"| orangepi-5-plus.dts '''UART8_M1'''| style="textorangepi-build/u-boot/v2017.09-align: left;"| '''rk3588/dtbsarch/rockchiparm/overlaydts/rk3588-uart8orangepi-5-m1plus.dtbodts''']
|}
</ol>
</li></ol>
<ol startspan id="2_Toc31297" styleclass="list-style-type: lower-alpha;anchor"><li>Then '''restart the OPI OS Arch system'''</li></olspan>
<!-- --><ol start="3" style="list-style-type: decimal;"><li><p>After entering Compile the Linux system, first confirm whether there is a device node corresponding to UART under the'''/dev'''</p><p>[orangepi@orangepi ~]$ '''ls /dev/ttyS*'''</p></li><li><p>Then start testing the UART interface, and first use the RX and TX pins of the UART interface to be tested by DuPont</p></li></ol>linux kernel ==
<ol style="list-style-type: decimal;"><li><p>Run the build.sh script, remember to add sudo permission</p>{| class="wikitable" style="width:800px;"
|-
| style="text-align: left;"| '''UART bus'''| style="text-align<p>test@test: left;"| '''RX to 40pin'''| style="text~/orangepi-align: left;"| build$ '''TX to 40pin'''|-| style="text-align: left;"| '''UART1_M1'''| style="text-align: left;"| '''Nosudo . 27 pin'''| style="text-align: left;"| '''No. 28 pin'''|-| style="text-align: left;"| '''UART3_M1'''| style="text-align: left;"| '''No. 18 pin'''| style="text-align: left;"| '''No. 16 pin'''|-| style="text-align: left;"| '''UART4_M2'''| style="text-align: left;"| '''No. 19 pin'''| style="text-align: left;"| '''No. 23 pin'''|-| style="text-align: left;"| '''UART6_M1'''| style="text-align: left;"| '''No. 10 pin'''| style="text-align: left;"| '''No. 8 pin'''|-| style="text-align: left;"| '''UART7_M2'''| style="text-align: left;"| '''No. 24 pin'''| style="text-align: left;"| '''No. 26 pin'''|-| style="text-align: left;"| '''UART8_M1'''| style="text-align: left;"| '''No. 40 pin'''| style="text-align: left;"| '''No/build. 35 pinsh'''</p>
|}
</li>
<li><p>Select '''<span class="mark">Kernel package</span>''', then press Enter</p>
<div class="figure">
<ol start="5" style="list-style[[File:plus5-type: decimal;"><li><p>Use the '''gpio serial''' command to test the loop function of the serial port as shown belowimg542. If you can see the printed below, it means that the serial port communication is normal (TTYSX needs to be replaced with a node name corresponding to UART, please do not copy it)</p><p>[orangepi@orangepi ~png]$ '''sudo gpio serial /dev/ttySX'''</p><p>[sudo] password for orangepi: #Enter the password here</p><p>Out: 0: -&gt; 0</p><p>Out: 1: -&gt; 1</p><pdiv>Out: 2: -&gt; 2</pli><p>Out: 3: -&gt; 3</pli><p>Out: 4: -&gt; 4Then select the model of the development board</p><p>Out: 5: -&gt; 5^C</p></li></oldiv class="figure">
<span id="pwm[[File:plus5-test-method-1"></span>=== PWM test method ===img538.png]]
<ol style="list-style-type: decimal;"/div></li><li><p>From Then it will prompt whether to display the table belowkernel configuration interface. If you do not need to modify the kernel configuration, select the PWMs available for Orange Pi 5 Plus include PWM0first one. If you need to modify the kernel configuration, PWM1, PWM11, PWM12, PWM13, and PWM14 a total of six PWMselect the second one.</p><p>[[File:./images/media/image389plus5-img543.png|575x137px]]</p></li><li><p>The corresponding pins of PWM If you choose to display the kernel configuration menu (the second option) in 40pin are shown belowstep 4), the kernel configuration interface opened by '''<span class="mark">make menuconfig</span>''' will pop up. PWM0_M0 At this time, you can directly modify the kernel configuration, save and PWM0_M2exit after modification. Yes, PWM1_M0 and PWM1_M2after exiting, PWM14_M0 and PWM14_M2 can only be used at the same time. They cannot kernel source code will be used at the same timecompiled</p><p>[[File:plus5-img544. They are the same PWM, but they only get different pins. Please think that they are two different PWM buspng]]</p></li></ol>
<!-- --><ol style="list-style-type: lower-alpha;"><li><p>If you do not need to modify the configuration options of the kernel, when running the build.sh script, pass in '''<span class="mark">KERNEL_CONFIGURE=no</span>''' to temporarily block the pop-up kernel configuration interface</p>{| class="wikitable" style="width:800px;"
|-
| style<p>test@test:~/orangepi-build$ '''sudo ./build.sh KERNEL_CONFIGURE=no'''</p>|}</li><li><p>You can also set '''<span class="mark">KERNEL_CONFIGURE=no</span>''' in the '''<span class="textmark">orangepi-align: left;"| build/userpatches/config-default.conf</span>''' configuration file, which can permanently disable this function</p></li><li><p>If the following error is displayed when compiling the kernel, it is because the terminal interface of the Ubuntu PC is too small to display the '''PWM bus<span class="mark">make menuconfig</span>'''interface. Please maximize the terminal of the Ubuntu PC and run the build.sh script again</p>| <p>[[File:plus5-img545.png]]</p></li></ol> <!-- --><ol start="6" style="list-style-type: decimal;"><li><p>Part of the information prompted when compiling the kernel source code is as follows</p><ol style="textlist-style-aligntype: leftlower-alpha;"><li><p>The version of the linux kernel source code</p>{| '''Corresponding 40pin'''class="wikitable" style="width:800px;"
|-
| style="text-align: left;"| <p>[ o.k. ] Compiling current kernel [ '''PWM0_M05.10.110''']</p>|}</li><li><p>The version of the cross-compilation toolchain used</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''No. 5 pin'''
|-
| style="text-align: left;"| <p>[ o.k. ] Compiler version [ '''PWM0_M2aarch64-none-linux-gnu-gcc 11.2.1''']</p>| }</li><li><p>The configuration file used by the kernel by default and the path where it is stored</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''No. 22 pin'''
|-
| style="text-align: left;"| <p>[ o.k. ] Using kernel config file [ '''PWM1_M0config/kernel/linux-rockchip-rk3588-legacy.config''']</p>| }</li><li><p>The path of the deb package related to the kernel generated by compiling</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''No. 3 pin'''
|-
| style="text-align: left;"| <p>[ o.k. ] Target directory [ '''PWM1_M2orangepi-build/output/debs/''']</p>|}</li><li><p>The package name of the compiled kernel image deb package</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''No. 32 pin'''
|-
| style="text-align: left;"| <p>[ o.k. ] File name [ '''PWM11_M0linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb''']</p>| }</li><li><p>The time used for compilation</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''No. 12 pin'''
|-
| style="text-align: left;"| <p>[ o.k. ] Runtime [ '''PWM12_M05 min''']</p>|}</li><li><p>Finally, the compilation command to repeatedly compile the kernel selected last time will be displayed. Use the following command to start compiling the kernel source code directly without selecting through the graphical interface</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''No. 14 pin'''
|-
| <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>View the deb package related to the kernel generated by compilation</p><ol style="textlist-alignstyle-type: leftlower-alpha;"| ><li><p>'''PWM13_M0linux-dtb-legacy-rockchip-rk3588_1.0.0_arm64.deb'''Contains dtb files used by the kernel</p></li>| style="text<li><p>'''linux-headers-legacy-rockchip-align: left;"| rk3588_1.0.0_arm64.deb''' Include kernel headers</p></li><li><p>'''Nolinux-image-legacy-rockchip-rk3588_1. 16 pin0.0_arm64.deb'''Contains kernel images and kernel modules</p>{| class="wikitable" style="width:800px;"
|-
| style="text<p>test@test:~/orangepi-align: left;"| build$ '''PWM14_M0ls 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></ol></li><li><p>The files contained in the generated linux-image deb package are as follows</p><ol style="textlist-style-aligntype: leftlower-alpha;"><li><p>Use the following command to decompress the deb package</p></li>{| '''No. 33 pin'''class="wikitable" style="width:800px;"
|-
| style="text<p>test@test:~/orangepi-alignbuild$ '''cd output/debs'''</p> test@test:~/orangepi_build/output/debs$ '''mkdir test''' test@test: left;"| ~/orangepi_build/output/debs$ '''PWM14_M2cp \'''| style="text'''linux-alignimage-legacy-rockchip-rk3588_1.0.0_arm64.deb test/''' test@test: left;"| ~/orangepi_build/output/debs$ '''cd test''' test@test:~/orangepi_build/output/debs/test$ '''dpkg -x \''' '''Nolinux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb . 7 pin'''|}
<ol start="3" style="list-style-typetest@test: decimal;"><li><p>In the Linux system, the PWM in 40 PIN is closed by default, and it needs to be opened manually to use. The detailed steps are shown below:<~/p><ol style="list-style-type: lower-alpha;"><li><p>First add the following configuration to &gt; the'''orangepi_build/bootoutput/extlinuxdebs/extlinux.conf'''</p><p>[orangepi@orangepi ~]test$ '''sudols''' '''vim /boot/extlinux/extlinux.conf'''</p><p>LABEL Orange Pi</p><p>LINUX /Image</p><p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p><p>'''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-pwm0-m0.dtbo'''</p><p>The red font demonstrates the configuration of the '''pwm0-m0'''. The other configurations are shown in the table below, and the corresponding dtbo configuration can be added behind '''FDTOVERLAYS'''</p></li></ol></li></ol>
'''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>The decompressed file is as follows</p>{| class="wikitable" style="width:800px;"
|-
| style="text<p>test@test:~/orangepi-align: left;"| build/output/debs/test$ '''PWM''' '''bustree -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>| style="text<p>├── linux-image-legacy-rockchip-alignrk3588_1.0.0_arm64.deb</p><p>└── usr</p>:<p>├── lib</p>: left;"<p>└── share</p>| '''Dtbo configuration'''}</li></ol></li></ol>|<!-- -->| <ol start="9" style="textlist-style-aligntype: leftdecimal;"| ><li><p>The orangepi-bulid compilation system will first synchronize the linux kernel source code with the linux kernel source code of the github server when compiling the linux kernel source code, so if you want to modify the linux kernel source code, you first need to turn off the update function of the source code '''PWM0_M0(you need to compile it once This function can only be turned off after the linux kernel source code, otherwise it will prompt that the source code of the linux kernel cannot be found. If the source code compressed package downloaded from Google Drive, there is no such problem, because the source code of linux has been cached)''', otherwise the The changes made will be reverted as follows:</p>| style<p>Set the IGNORE_UPDATES variable in '''<span class="text-align: left;mark"| '''>userpatches/dtbs/rockchip/overlay/rk3588-pwm0config-m0default.dtboconf</span>'''to &quot;yes&quot;</p>{|-| styleclass="text-align: left;wikitable"| '''PWM0_M2'''| style="text-alignwidth: left800px;"| '''/dtbs/rockchip/overlay/rk3588-pwm0-m2.dtbo'''
|-
| style="text<p>test@test:~/orangepi-align: left;"| build$ '''PWM1_M0vim userpatches/config-default.conf'''</p>| <p>IGNORE_UPDATES=&quot;'''<span style="text-aligncolor: left;#FF0000"| >yes</span>'''&quot;</dtbsp>|}</rockchipli><li><p>If the kernel has been modified, the following method can be used to update the kernel and kernel modules of the development board linux system</overlay/rk3588p><ol style="list-style-pwm1type: lower-m0.dtbo'''alpha;"><li><p>Upload the deb package of the compiled linux kernel to the linux system of the development board</p>{| class="wikitable" style="width:800px;"
|-
| style="text<p>test@test:~/orangepi-align: left;"| build$ '''PWM1_M2cd output/debs'''</p>| style="text<p>test@test:~/orangepi-align: left;"| build/output/debs$ '''scp \'''</dtbs/p><p>'''linux-image-legacy-rockchip/overlay/rk3588-pwm1-m2rk3588_1.0.0_arm64.deb root@192.168.1.dtboxxx:/root'''</p>|}</li><li><p>Then log in to the development board and uninstall the deb package of the installed linux kernel</p>{| class="wikitable" style="width:800px;"
|-
| style="text-align<p>root@orangepi: left;"| ~# '''PWM11_M0apt purge -y linux-image-legacy-rockchip-rk3588'''</p>| }</li><li><p>Install the deb package of the new linux kernel just uploaded</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''/dtbs/rockchip/overlay/rk3588-pwm11-m0.dtbo'''
|-
| style="text-align<p>root@orangepi: left;"| ~# '''PWM12_M0dpkg -i linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb'''</p>|}</li><li><p>Then restart the development board, and then check whether the kernel-related modifications have taken effect</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''/dtbs/rockchip/overlay/rk3588-pwm12-m0.dtbo'''
|-
| style="text-align<p>root@orangepi: left;"| ~# '''PWM13_M0reboot'''</p>| }</li></ol></li></ol> <!-- --><ol start="10" style="textlist-style-aligntype: leftdecimal;"| '''><li><p>Other useful information</dtbsp><ol style="list-style-type: lower-alpha;"><li><p>The storage location of the kernel configuration file is as follows, please do not go to the kernel source code to find the kernel configuration file used by the development board</rockchipp></overlay/rk3588-pwm13-m0.dtbo'''li>{| class="wikitable" style="width:800px;"
|-
| style="text[https://github.com/orangepi-xunlong/orangepi-build/blob/next/external/config/kernel/linux-rockchip-rk3588-align: left;"| legacy.config '''PWM14_M0orangepi-build/external/config/kernel/linux-rockchip-rk3588-legacy.config''']|}<li><p>The location of the dts file used by the development board is</p></li>{| class="wikitable" style="text-alignwidth: left800px;"| '''/dtbs/rockchip/overlay/rk3588-pwm14-m0.dtbo'''
|-
| style="text[https://github.com/orangepi-xunlong/linux-orangepi/blob/orange-pi-5.10-rk3588/arch/arm64/boot/dts/rockchip/rk3588-orangepi-align: left;"| 5-plus.dts '''PWM14_M2'''| style="textorangepi-build/kernel/orange-pi-5.10-align: left;"| '''rk3588/arch/arm64/boot/dtbsdts/rockchip/overlay/rk3588-pwm14orangepi-5-m2plus.dtbodts''']
|}
</ol>
</li></ol>
<ol stylespan id="list-style-type: lower-alpha;_Toc25559" class="anchor"><li>Then '''restart the OPi OS Arch system'''</li></olspan>
<!-- -->== Compile rootfs == <ol start="4" style="list-style-type: decimal;"><li><p>After opening a pwmRun the build.sh script,In the'''/sysremember to add sudo permission</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~/pwmorangepi-build$ '''sudo ./, there will be an additional pwmchipX (x is a specific number)build. For example, after opening PWM14,viewingsh'''</sys/class/pwm/'''down Pwmchipx will change from two to three.p>|}</pli><li><p>[orangepi@orangepi ~]$ Select '''ls /sys/<span class="mark">Rootfs and all deb packages</pwm/span>''', then press Enter</p></li> <pdiv class="figure">pwmchip0 pwmchip1 pwmchip2 [[File:plus5-img546.png]] </pdiv></liol><ol start="3" style="list-style-type: decimal;"><li><p>Which pwmchip corresponds to pwm14 above? Let's first check out Then select the output model of '''ls /sys/class/pwm/ -l''' command, as shown below:the development board</p>
<div class="figure">
[[File:./images/media/image622plus5-img538.png|575x78px|1010iring_001]]
</div></li>
<li><p>Then from select the table below, the base address type of the PWM14 register is FEBF0020, and then look at the output of the rootfs (mainly maintain '''ls /sys/<span class/pwm/ -l''' command. You can see that the link in PWMCHIP2 is connected to Febf0020.PWM, so the PWM14 corresponds to PWMCHIP2</p><p="mark">[[File:./imagesbullseye/mediafocal/image403.png|575x287px]]jammy</pspan></li><li><p>Then use the following command to allow the PWM14 to output a 50Hz square wave (please switch to the root user first, and then execute the following command''' at present)</p></li></oldiv class="figure">
[root@orangepi ~[File:plus5-img547.png]]# '''echo''' '''0''' '''&gt; /sys/class/pwm/pwmchip2/export'''
[root@orangepi ~]# </div></li><li><p>Then select the type of image</p><ol style="list-style-type: lower-alpha;"><li><p>'''echoImage with console interface (server)''' Indicates the image of the server version, which is relatively small</p></li><li><p>'''20000000''' Image with desktop environment'''&gt; /sysIndicates a mirror image with a desktop, which is relatively large</p><div class/pwm/pwmchip2/pwm0/period'''="figure">
[root@orangepi ~[File:plus5-img548.png]]# '''echo''' '''1000000''' '''&gt; /sys/class/pwm/pwmchip2/pwm0/duty_cycle'''
[root@orangepi ~]# '''echo 1 &gt; </sysdiv></classli></pwmol></pwmchip2/pwm0/enableli><li><p>If you are compiling the image of the server version, you can also choose to compile the Standard version or the Minimal version. The pre-installed software of the Minimal version will be much less than that of the Standard version '''(please do not choose the Minimal version if there is no special requirement, because many things are not pre-installed by default. Some functions may not be available)'''</p><div class="figure">
[[File:./images/media/image404plus5-img549.png|575x346px]]
<ol start="8" style="list-style-type: decimal;"/div></li><li>The other pwm testing methods in <p>If you are compiling the image of the desktop version, you need to select the pwm14 demonstration above are similar。type of desktop environment. Currently, Ubuntu Jammy mainly maintains XFCE and Gnome desktops, Ubuntu Focal only maintains XFCE desktops, and Debian Bullseye mainly maintains XFCE and KDE desktops</lip></oldiv class="figure">
<span id="cans[[File:plus5-test-method"></span>=== CAN's test method ===img550.png]]
<span id="how-to-open-a-can"></spandiv>==== How to open a can ==== <ol style="listp>[[File:plus5-style-type: decimal;"img551.png]]</p><li><p>As You can then select additional packages that need to be seen from installed. Please press the table below, the Canal bus available for Orange Pi 5 Plus is CAN0 and CAN1Enter key to skip directly here.</p><p>[[File:./images/media/image405plus5-img552.png|574x137px]]</p></li><li><p>In the Linux systemThen it will start to compile rootfs, and some of the Can in 40 PIN is closed by default and needs to be opened manually to use. The detailed steps information prompted during compilation are shown below:as follows</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First add the following configuration to &gt; the'''/boot/extlinux/extlinux.conf'''</p><p>[orangepi@orangepi ~]$ '''sudo''' '''vim /boot/extlinux/extlinux.conf'''</p><p>LABEL Orange Pi</p><p>LINUX /Image</p><p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p><p>'''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-can0-m0.dtbo'''</p><p>The red font demonstrates the configuration type of the '''can0-m0'''. The other configurations are shown in the table below, and the corresponding dtbo configuration can be added to '''FDTOVERLAYS'''rootfs</p></li></ol></li></ol> {| class="wikitable" style="width:800px;"
|-
| style="text-align: left;"| <p>[ o.k. ] local not found [ Creating new rootfs cache for '''CAN busjammy''']</p>|}</li><li><p>The storage path of the compiled rootfs compressed package</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''Dtbo configuration'''
|-
| style="text-align: left;"| <p>[ o.k. ] Target directory [ '''can0-m0external/cache/rootfs''']</p>|}</li><li><p>The name of the rootfs compressed package generated by compilation</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''/dtbs/rockchip/overlay/rk3588-can0-m0.dtbo'''
|-
| style="text-align: left;"| '''can1-m0'''| style="text-align: left;"| <p>[ o.k. ] File name [ '''/dtbs/rockchip/overlay/rk3588jammy-can1xfce-m0arm64.f930ff6ebbac1a72108a2e100762b18f.tar.dtbolz4''']</p>
|}
 <ol start="2" style="list-style-type: lower-alpha;"><li>Then '''restart the OPI OS Arch system'''</li></ol> <!-- --><ol start="3" style="list-style-type: decimal;"><li><p>After entering the Linux system, using the '''sudo''' '''ifconfig -a''' command If you can see the CAN device node, it means that the CAN has been opened correctly</p><p>[orangepi@orangepi ~]$ '''sudo pacman -Syy net-tools'''</p><p>[orangepi@orangepi ~]$ '''sudo''' '''ifconfig -a'''</p><p>can0: flags=128&lt;NOARP&gt; mtu 16</p><p>unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)</p><p>RX packets 0 bytes 0 (0.0 B)</p><p>RX errors 0 dropped 0 overruns 0 frame 0</p><p>TX packets 0 bytes 0 (0.0 B)</p><p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</p><p>device interrupt 94</p><p>can1: flags=128&lt;NOARP&gt; mtu 16</p><p>unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)</p><p>RX packets 0 bytes 0 (0.0 B)</p><p>RX errors 0 dropped 0 overruns 0 frame 0</p><p>TX packets 0 bytes 0 (0.0 B)</p><p>TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</p><p>device interrupt 95</p></li><li><p>The pins corresponding to the Can0 and Can1 aretime used for compilation</p></li></ol> {| class="wikitable" style="width:800px;"
|-
|
<p>[ o.k. ] Runtime [ '''13 min''' ]</p>| }</li></ol></li><li><p>View the rootfs compressed package generated by compilation</p><ol style="textlist-alignstyle-type: leftlower-alpha;"| ><li><p>'''CAN0jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4'''is the rootfs compressed package, the meaning of each field of the name is</p>| <ol style="textlist-alignstyle-type: leftnone;"| ><li><p>a) '''jammy''' indicates the type of linux distribution of rootfs</p></li><li><p>b) '''xfce''' means rootfs is the type of desktop version, if it is '''cli''', it means the type of server version</p></li><li><p>c) '''arm64''' represents the architecture type of rootfs</p></li><li><p>d) '''f930ff6ebbac1a72108a2e100762b18f'''is the MD5 hash value generated by the package names of all software packages installed by rootfs. As long as the list of software packages installed by rootfs is not modified, this value will not change. The compilation script will use this MD5 hash value to generate Determine whether rootfs needs to be recompiled</p></li></ol></li><li><p>''CAN1'jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.list''' lists the package names of all packages installed by rootfs</p>{| class="wikitable" style="width:800px;"
|-
| '''TX Pin'''| style="text<p>test@test:~/orangepi-align: left;"| build$ '''Corresponding to No. 5 pin in 40pinls external/cache/rootfs/'''</p>| style="text-align: left;"| <p>'''Corresponding to Nojammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar. 18 pin in 40pinlz4'''</p>|<p>jammy-| '''RX Pin'''| style="textxfce-align: left;"| '''Corresponding to Noarm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4. 3 pin in 40pin'''current</p>| style="text<p>jammy-xfce-align: left;"| '''Corresponding to Noarm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4. 16 pin in 40pin'''list</p>
|}
</li></ol>
</li>
<li><p>If the required rootfs already exists under '''<span class="mark">external/cache/rootfs</span>''', then compiling rootfs again will directly skip the compilation process and will not restart the compilation. When compiling the image, it will also go to '''<span class="mark">external/cache/rootfs</span>''' to find out whether it has If there is rootfs available in the cache, use it directly, which can save a lot of download and compilation time.</p></li></ol>
<ol startspan id="5" style="listcompile-stylelinux-type: decimal;image"><li>Use Canalyst-II analyzer to test CAN receiving messages, please refer to the content of the one-section of '''the Canalyst-II analyzer to test receive and send message'''</li></olspan>
<span id="section-60"></span>== Compile linux image ==
<ol start="6" style="list-style-type: decimal;"><li><p>Run the build.sh script, remember to add sudo permission</lip>{| class="wikitable" style="width:800px;" |-|<lip>test@test:~/orangepi-build$ '''sudo ./build.sh'''</lip>|}</li></li><lip>Select '''</lispan class="mark">Full OS image for flashing<li/span>''', then press Enter</lip></olli>
<span iddiv class="section-61figure"></span>== ==
<ol start="13" style="list[[File:plus5-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol>img553.png]]
<span id/div></ol><ol start="section3" style="list-62style-type: decimal;"><li><p>Then select the model of the development board</spanp><div class= ="figure">
<span id="section[[File:plus5-63"></span>== ==img538.png]]
</div></li>
<li><p>Then select the type of rootfs (mainly maintain '''bullseye/focal/jammy''' at present)</p>
<div class="figure">
[[File:plus5-----img547.png]]
</div></li>
<li><p>Then select the type of image</p>
<ol style="list-style-type: lower-alpha;">
<li><p>'''Image with console interface (server)''' Indicates the image of the server version, which is relatively small</p></li>
<li><p>'''Image with desktop environment''' Indicates a image with a desktop, which is relatively large</p>
<div class="figure">
[[File:plus5-----img548.png]]
<span id="section-64"/div></spanli>== == </ol start="7" style="list-style-type: decimal;"></li></li><p>If you are compiling the image of the server version, you can also choose to compile the Standard version or the Minimal version. The pre-installed software of the Minimal version will be much less than that of the Standard version '''(please do not choose the Minimal version if there is no special requirement, because many things are not pre-installed by default. Some functions may not be available)'''</olp><div class="figure">
[[File:plus5-img549.png]]
-----</div></li><li><p>If you are compiling the image of the desktop version, you need to select the type of desktop environment. Currently, Ubuntu Jammy mainly maintains XFCE and Gnome desktops, Ubuntu Focal only maintains XFCE desktops, and Debian Bullseye mainly maintains XFCE and KDE desktops</p><div class="figure">
[[File:plus5-img550.png]]
</div><p>[[File:plus5-img551.png]]</p><p>You can then select additional packages that need to be installed. Please press the Enter key to skip directly here.</p><p>[[File:plus5-img552.png]]</p></li><li><p>Then it will start to compile the linux image. The general process of compilation is as follows</p><p>a. Initialize the compilation environment of Ubuntu PC and install the software packages required for the compilation process</p><p>b. Download the source code of u-boot and linux kernel (if cached, only update the code)</p><p>c. Compile u-boot source code and generate u-boot deb package</p><p>d. Compile the linux source code and generate linux-related deb packages</p><p>e. Make the deb package of linux firmware</p><p>f. Make the deb package of the orangepi-config tool</p><p>g. Create a deb package supported by the board</p><p>h. If you are compiling the desktop image, you will also create desktop-related deb packages</p><p>i. Check whether the rootfs has been cached, if not, recreate the rootfs, if it has been cached, directly decompress and use</p><p>j. Install the previously generated deb package into rootfs</p><p>k. Make some specific settings for different development boards and different types of images, such as pre-installing additional software packages, modifying system configuration, etc.</p><p>l. Then make an image file and format the partition, the default type is ext4</p><p>m. Then copy the configured rootfs to the mirrored partition</p><p>n. Then update initramfs</p><p>o. Finally, write the bin file of u-boot into the image through the dd command</p></li><li><p>After compiling the image, the following information will be prompted</p><ol style="list-style-type: lower-alpha;"><li><p>The storage path of the compiled image</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>Compilation time</p></li>{| class="wikitable" style="width:800px;" |-|'''[ o.k. ] Runtime [ 19 min ]'''|}</ol>
<ol start="8" style="list-style-type: decimal;"><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><lip>Repeat the command to compile the image, and use the following command to start compiling the image directly without selecting through the graphical interface</lip><li><ol style{| class="list-style-type: lower-alpha;wikitable"><li></li><li></li><li></li><li></li><li></li></ol></li><li><ol style="list-style-typewidth: lower-alpha800px;"><li></li><li></li>|-<li></li>|<lip><[ o.k. ] Repeat Build Options '''[ sudo ./li><li>build.sh BOARD=orangepi5plus BRANCH=legacy BUILD_OPT=image RELEASE=bullseye BUILD_MINIMAL=no BUILD_DESKTOP=no KERNEL_CONFIGURE=yes ]'''</lip><li></li><li></li><li></li>|}<li></li></ol>
</li></ol>
<span id="sectionlinux-65development-manual"></span>== ==
<span id="section-66"></span>=== =='''Linux Development Manual''' =
<ol startspan id="6" style="listthe-method-of-compiling-the-kernel-source-code-separately-in-the-linux-stylesystem-type: decimal;"><li><ol style="listof-stylethe-type: lowerdevelopment-alpha;board"><li></lispan><li></li><li></li><li></li></ol></li><li></li><li></li><li></li><li></li></ol>== The method of compiling the kernel source code separately in the linux system of the development board ==
<span idol style="sectionlist-67style-type: decimal;"><li><p>First download the Linux kernel source code of the development board</spanp>{| class="wikitable" style="width:800px;" |-|<p>'''orangepi@orangepi:~$ git clone --depth= ===1 -b orange-pi-5.10-rk3588 https://github.com/orangepi-xunlong/linux-orangepi'''</p>|}
<ol start{| class="4wikitable" style="list-stylebackground-typecolor: decimal#ffffdc;"><li></li><li><ol style="list-style-typewidth: lower-alpha800px;"><li></li><li></li></ol>|-</li>| <li></libig>'''If you have problems downloading the code from github, you can go to the official tool of the development board to download the compressed kernel source code package, then upload it to the linux system of the development board, and then decompress it.'''</olbig>
<span id="section[[File:plus5-68"></span>=== ===img554.png]] [[File:plus5-img555.png]]
<ol start="9" style="list-style-typebig>'''The command to decompress the compressed kernel source code package is: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>'''</olbig>
<span id="sectionorangepi@orangepi:~$ '''tar zxf orange-69"></span>== ==pi-5.10-rk3588.tar.gz'''
<ol start="3" style="listorangepi@orangepi:~$ '''mv orange-stylepi-type: lower5.10-rk3588 linux-alpha;"><li></li><li></li></ol>orangepi'''
<!-- --big><ol start="4" style="list-style-type'''After decompression, please execute the following command to synchronize the source code with github to ensure that the source code is in the latest state: lower-alpha;"><li></li><li></li><li></li>'''</olbig>
<!-- --><ol start="5" style="list-style-typeorangepi@orangepi: lower~$ '''cd linux-alpha;"><li></li></ol>orangepi'''
orangepi@orangepi:~/linux-orangepi$ '''git pull'''
|}
</li></ol>
<ol start="2" style="list-style-type: decimal;">
<li><p>Then configure the default kernel configuration</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>orangepi@orangepi:~$ '''cd linux-orangepi'''</p>
<p>orangepi@orangepi:~/linux-orangepi$ '''make rockchip_linux_defconfig'''</p>
|}
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''The path of <span class="mark">rockchip_linux_defconfig</span> in the kernel source code is arch/arm64/configs/'''</big>
|}
</li></ol>
<ol start="3" style="list-style-type: decimal;"><li><p>Then compile the kernel source code</p>{| class="wikitable" style="width:800px;" |-|<p>orangepi@orangepi:~/linux-orangepi$ '''make -j10'''</p>|}</li><li><p>Then install the kernel module</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>'''The installation path of the kernel module is:/lib/modules'''
'''After executing the sudo make modules_install command, you can see that there will be an additional kernel module folder under /lib/modules/:'''</big>
-----orangepi@orangepi5plus:~$ '''ls /lib/modules'''
'''<span style="color:#FF0000">5.10.110+</span>''' 5.10.110-rockchip-rk3588|}</li></ol> <ol start="65" style="list-style-type: lower-alphadecimal;"><li></li><lip>Then install the kernel image and uInitrd</lip>{| class="wikitable" style="width:800px;" |-|<lip><orangepi@orangepi:~/li>linux-orangepi$ '''sudo make install'''</olp>|}
<span id{| class="wikitable" style="sectionbackground-70color:#ffffdc;width:800px;"|-| <big><'''The installation path of the kernel image and uInitrd is:/boot/span>== =='''
<ol start="13" style="list-style-type: decimal;"><li></li><li></li><li><'''After executing the sudo make install command, you can see that there will be one more kernel file under /li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li><boot/li>:'''</olbig>
<span id="sectionorangepi@orangepi5plus:~/orange-pi-5.10-71"><rk3588$ '''ls /boot/span>== ==vmlinuz*'''
'''<ol start="12" span style="list-style-typecolor: decimal;#FF0000">/boot/vmlinuz-5.10.110+</span>''' /boot/vmlinuz-5.10.110-rockchip-rk3588<libr /><br /li><libig>'''The file /boot/Image is actually loaded when the system starts, and Image is a copy of the vmlinuz file'''</libig>|}</li></ol> <ol start="6" style="list-style-type: lower-alphadecimal;"><li><p>Then install the dtb file into '''/liboot/dtb'''</p>{| class="wikitable" style="width:800px;" |-|<lip><orangepi@orangepi:~/linux-orangepi$ '''sudo make dtbs_install INSTALL_DTBS_PATH=/boot/dtb/li>'''</olp>|}
</li>
<li></li><lip>Then restart the Linux system and the newly compiled kernel will be loaded</lip><li><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;"><li></li>|-<li></li>|<lip>orangepi@orangepi:~$ '''uname -r'''</lip><lip>'''5.10.110+'''</lip><li></li></ol>|}
</li></ol>
<span id="sectionopenwrt-72system-instructions"></span>== ==
<ol start="4" style'''OpenWRT system instructions''' ="list-style-type: decimal;"><li></li><li></li><li></li></ol>
<span id="sectionopenwrt-73version"></span>== OpenWRT version ==
<span id{| class="sectionwikitable" style="width:800px;"|-74| style="></span>text-align: left;"| '''OpenWRT version'''| style="text-align: left;"| '''kernel version'''|-| style="text-align: left;"| '''v22.03.4'''| style= ==="text-align: left;"| '''Linux5.10.110'''|}
<ol startspan id="5" style="list-styleopenwrt-type: decimal;adaptation"><li></li><li></li><li></li><li></li></olspan>
<!-- --><ol start="2" style="list-style-type: decimal;"><li></li></ol>OpenWRT Adaptation ==
<span id{| class="sectionwikitable" style="width:800px;"|-| style="text-align: left;"| '''Function'''| 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-75align: left;"></span>| '''USB Type-C 3.0'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''3pin debugging serial port'''| style= "text-align: left;"| '''OK'''|-| style="text-align: left;"| '''TF card start'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''SPIFlash+NVMe SSD Boot'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''SPIFlash boots the complete system'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''2.5G PCIe network port X2'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Network port status light'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''led light'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''FAN fan interface'''| 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 extension interface'''| style="text-align: left;"| '''OK'''|}
<ol startspan id="7" style="listthe-first-start-to-styleexpand-type: decimal;rootfs"><li></li><li></li><li></li><li></li><li></li><li></li></olspan>
<span id="section-76"></span>=== =The first start to expand rootfs ==
<ol start="7" style="list-style-type: decimal;"><li><p>When the OpenWRT system is started for the first time, the '''resize-rootfs.sh''' script will be executed to expand the rootfs, and it will automatically restart after the expansion is completed</p></li><li><p>After logging in to the system, you can use the '''df -h''' command to view the size of rootfs. If it is consistent with the actual capacity of the storage device (TF card, eMMC or NVME SSD), it means that the automatic expansion is running correctly</p>{| class="wikitable" 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>
<span id="how-to-log-in-to-the-system"></span>
-----== How to log in to the system ==
<span id="login-via-serial-port"></span>
=== Login via serial port ===
<ol style="list-style----type: decimal;"><li><p>First, to use the debugging serial port, please refer to the chapter on how to use the debugging serial port</p></li><li><p>The OpenWrt system will automatically log in as the '''root''' user by default, and the display interface is as follows</p><div class="figure">
<ol start="9" style="list-style-type: decimal;"><li><ol style="list-style-type[[File: lowerplus5-alpha;"><li></li></ol></li></ol>img556.png]]
</div></li></ol>
<span id="log-in-to-the-system-via-ssh"></span>=== Log in to the system via SSH ===
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''Please note that in the OpenWrt system of Orange Pi 5 Plus, the network port near the typeC power interface is configured as a WAN port by default, and the network port near the HDMI port is configured as a LAN port by default.'''</big>
|}
<ol style="list-style-type: decimal;"><li><p>First connect the LAN port of the board to the network port of the computer with a network cable, so that the network port of the computer can obtain an IP address through DHCP</p></li><li><p>The LAN port IP of the default board is set to '''<span class="mark">192.168.2.1</span>''', so the computer can obtain the IP address starting with '''<span class="mark">192.168.2</span>''' at this time</p></li><li><p>If the computer is installed with an Ubuntu system, you can execute the following command to log in to the system through SSH. By default, you can log in directly without a password</p>{| class="wikitable" style="width:800px;" |-|<p>test@ubuntu:~$ '''ssh root@192.168.2.1'''</p>|}</li><li><p>After successfully logging in to the system, the display is as shown in the figure below</p><p>[[File:plus5--img557.png]]</p></li><li><p>If the computer is installed with Windows system, you can log in by referring to the method introduced in the section of SSH remote login to the development board under Windows.</p></li></ol>
<ol startspan id="2" style="listlog-in-to-the-styleluci-type: lowermanagement-alpha;interface"><li></li></olspan>
<!-- --><ol start="10" style="list-style-type: decimal;"><li></li><li></li><li></li></ol>= Log in to the LuCI management interface ===
<span id{| class="wikitable" style="sectionbackground-77color:#ffffdc;width:800px;"|-| <big>'''Please note that the OpenWRT system configures the network port near the Type-C power port as a WAN port by default, and the network port near the HDMI port as a LAN port by default.'''</spanbig>=== ===
<ol start="7" style="list[[File:plus5-styleimg558-type: decimal;"><li></li>1.png|center]]<li></li></ol>|}
# First connect the LAN port of the board to the network port of the computer with a network cable, so that the network port of the computer can obtain an IP address through DHCP
# The LAN port IP of the default board is set to '''192.168.2.1''', so the computer can obtain the IP address starting with '''192.168.2''' at this time
# Enter the IP address '''192.168.2.1''' in the browser on the computer to log in to the LuCI interface
-----<div class="figure">
::[[File:plus5-img559.png|1500px]]
</div><ol start="4" style="list-style-type: decimal;"><li><p>'''<span style="color:#FF0000">The OpenWrt system does not set a password by default</span>''', so just click the '''<span class="mark">login</span>''' button. After successful login, the interface is displayed as shown in the figure below</p><p>[[File:plus5---img560.png]]</p></li></ol>
<ol startspan id="9" style="listlog-in-to-the-terminal-stylethrough-type: decimal;"><li><ol style="listthe-styleluci-type: lowermanagement-alpha;interface"><li></li></ol></li></olspan>
=== Log in to the terminal through the LuCI management interface ===
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Please note that the OpenWRT system configures the network port near the Type---C power port as a WAN port by default, and the network port near the HDMI port as a LAN port by default.'''</big>
[[File:plus5-img558-1.png|center]]
|}
-----# First connect the LAN port of the board to the network port of the computer with a network cable, so that the network port of the computer can obtain an IP address through DHCP# The LAN port IP of the default board is set to '''192.168.2.1''', so the computer can obtain the IP address starting with '''192.168.2''' at this time# Enter the IP address '''192.168.2.1''' in the browser on the computer to log in to the LuCI interface
<ol startdiv class="2figure" style="list-style-type: lower-alpha;"><li></li></ol>
<!::[[File:plus5-- --><ol start="10" style="list-style-type: decimal;"><li></li><li></li><li></li></ol>img559.png|1500px]]
<span id/div><ol start="section4" style="list-style-78type: decimal;"><li>Select &quot;'''Terminal'''&quot; in the &quot;'''Service'''&quot; column of the navigation bar and click to enter</spanli>=== ===
[[File:plus5-img561.png]]</ol><ol start="65" style="list-style-type: decimal;"><li><p>At this time, the terminal interface is as shown in the figure below</lip><lip><ol style="list-style-type[[File: lowerplus5-alpha;"img562.png]]</p></li><li><p>Enter the user name root to log in</lip><p>[[File:plus5-img563.png]]</olp></li></ol>
<span id="use-ip-address-port-number-to-log-in-to-the-terminal"></span>
-----=== Use IP address + port number to log in to the terminal ===
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''Please note that the OpenWRT system configures the network port near the Type-C power port as a WAN port by default, and the network port near the HDMI port as a LAN port by default.'''</big>
[[File:plus5-img558----1.png|center]]|}
<ol start="# First connect the LAN port of the board to the network port of the computer with a network cable, so that the network port of the computer can obtain an IP address through DHCP# The LAN port IP of the default board is set to '''192.168.2" style="list-style-type.1''', so the computer can obtain the IP address starting with '''192.168.2''' at this time# Then enter '''192.168.2.1: lower-alpha;"><li></li></ol>7681''' in the browser to log in to the OpenWRT terminal
<!-- --><ol startdiv class="8figure" style="list-style-type: decimal;"><li></li><li></li></ol>
::[[File:plus5-img564.png]]
</div><span id="how-to-modify-the-ip-address-of-the-lan-port-through-the-command-line"></span>
== How to modify the IP address of the LAN port through the command line ==
-----# In the OpenWrt system, a command line tool uci is provided, which can easily modify, add, delete and read the content in the configuration file. For details, please refer to the official document# First use the following command to obtain the network configuration, the corresponding configuration file is '''/etc/config/network''', you can see that the value of '''network.lan.ipaddr''' is '''192.168.2.1'''
<ol start::{| class="10wikitable" style="list-style-typewidth: decimal800px;"><li></li></ol>|-|root@OpenWrt:~# '''uci show network'''
<span id="section-79"></span>=== ===...
<ol startnetwork.lan="9" style="list-style-type: decimal;"><li></li><li></li></ol>interface
network.lan.device='br-lan'
-----network.lan.proto='static'
'''<span style="color:#FF0000">network.lan.ipaddr='192.168.2.1'</span>'''
-----network.lan.netmask='255.255.255.0'
<ol startnetwork.lan.ip6assign="11" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></li></ol></li></ol>'60'
.…
|}
<ol start="3" style="list-style-type: decimal;"><li>Then enter the following command to modify the item '''network.lan.ipaddr'''</li>{| class="wikitable" style="width:800px;" |-|root@OpenWrt:~# '''uci set network.lan.ipaddr='192.168.100.1''''|}</ol><ol start="4" style="list-style-type: decimal;"><li>Then enter the following command to complete the submission, that is, write to the configuration file</li>{| class="wikitable" style="width:800px;" |-|root@OpenWrt:~# '''uci commit'''|}
If the IP address in red font is consistent with the one to be set, it means that the modification is successful
{| class="wikitable" style="width:800px;"
|-
|
root@OpenWrt:~# '''cat /etc/config/network'''
-----'''...'''
<ol style="list-style-type: lower-alpha;"><li></li></ol>config interface 'lan'
<!-- --><ol start="12" style="list-style::option device 'br-type: decimal;"><li></li><li></li><li></li><li></li><li></li></ol>lan'
<span id="section-80"></span>=== ===::option proto 'static'
<span id="section-81"></span>==== ====::option netmask '255.255.255.0'
<ol start="6" style="list-style-type: decimal;"><li></li><li><ol style="list-style-type: lower-alpha;"><li></li></ol></li></ol>option ip6assign '60'
::'''<span style="color:#FF0000">option ipaddr '192.168.100.1'</span>'''
-----...|} -----</ol><ol start="25" style="list-style-type: lower-alphadecimal;"><li>Restart the network through ubus, please refer to the official document for the usage instructions of ubus</li>{| class="wikitable" style="width:800px;" |-|root@OpenWrt:~# '''ubus call network restart'''|}</ol> <!-- --><ol start="86" style="list-style-type: decimal;"><li><p>At this point, enter the command and you can see that the IP of the LAN port is '''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:'''<span style="color:#FF0000">192.168.100.1</span>''' 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</lip>::<lip>collisions:0 txqueuelen:1000</p>::<p>RX bytes:0 (0.0 B) TX bytes:370 (370.0 B)</p>|}</li></ol>
<span id="how-to-modify-the-root-password"></span>
-----== How to modify the root password ==
<span id="modify-via-command-line"></span>
=== Modify via command line ===
-----# First enter passwd root on the command line of the system, and the following prompt message will appear. At this time, you can enter the password you want to set, and press the Enter key to confirm
<ol start::{| class="10wikitable" style="list-style-typewidth: decimal800px;"><li></li><|-|root@OpenWrt:/ol># '''passwd root'''
<span id="linux-sdkorangepi-build-instructions"></span>'''Enter new UNIX password:'''= Linux SDK——orangepi-build instructions =|}
<span idol start="compilation2" style="list-systemstyle-requirementstype: decimal;"><li>Then you will be prompted to re-enter the password. At this time, enter the password again to confirm and press Enter</spanli>== Compilation system requirements ==
{| class="wikitable" style="width:800px;" |-|'''We can cross-compile the Linux image of the development board on the x64 computer, or compile the Linux image of the development board on the Ubuntu22.04 system of the development board, please choose one according to your preference.Retype password:'''|}</ol><ol start="3" style="list-style-type: decimal;"><li>The display of successful modification is as follows</li>
{| class="wikitable" style="width:800px;" |-|'''passwd: password for root changed by root'''If you use orangepi|}</ol><span id="modify-through-build to compile the Linux image in -luci-management-interface"></span>=== Modify through the Ubuntu22.04 system of the development board, please do a good job of cooling (especially when the SSD starts). If the heat dissipation is not done well, it is prone to the error of file system runaway.'''LuCI management interface ===
<span idol style="compilelist-withstyle-type: decimal;"><li><p>First refer to the login LuCI management interface to enter the OpenWRT management interface</p></li><li><p>Then follow thesteps below to change the password</p><ol style="list-style-ubuntu22.04type: lower-alpha;"><li><p>Find the &quot;'''System'''&quot; option in the navigation bar and click</p></li><li><p>In the column options below the system, select &quot;'''Management Rights'''&quot; and click</p><p>[[File:plus5-of-img565.png]]</p></li><li><p>Select the &quot;'''Router Password'''&quot; option on theTab page</p><p>[[File:plus5-development-board"img566.png]]</p></li></ol></li><li><p>Modify and save the router password</spanp>=== Compile with <p>a. Enter the password you set in the &quot;'''Password'''&quot; and &quot;'''Confirm Password'''&quot; dialog boxes (if you are not sure whether the password is entered correctly, you can click the &quot;*&quot; icon behind the dialog box to display the Ubuntu22input characters)</p><p>b.04 system of Click &quot;'''Save'''&quot; to save the development board ===newly modified password</p><p>[[File:plus5-img567.png]]</p></li>
<ol {| class="wikitable" style="listbackground-style-typecolor:#ffffdc;width: decimal800px;">|-| <libig><p>The Linux SDK, namely '''orangepi-build''', supports running on Note: In the '''Ubuntu 22.04''' of the development board (other systems have not been tested)&quot;Password&quot; and &quot;Confirm Password&quot; dialog boxes, so before downloading orangepi-build, please first ensure that the Ubuntu version installed on the development board is Ubuntu 22passwords entered twice must be consistent.04. The command to check the Ubuntu version installed on the development board is as follows. If the Release field does not display '''22.04''', it means that the current Ubuntu version does not meet the requirements. Please replace the system before performing the following operations.</pbig><p>orangepi@orangepi:~$ '''lsb_release -a'''</p>|}<p>No LSB modules are available.</pol><p>Distributor IDol start="4" style="list-style-type: Ubuntu</pdecimal;"><pli>Description: Ubuntu 22.04.1 LTS</p><p>Release: After the password is changed successfully, a pop-up box will pop up saying &quot;'''22.04The system password has been changed successfully'''&quot;. At this time, a password is required to log in to OpenWRT</p><p>Codename[[File: jammy</p></li><li><p>'''Since the source codes such as the kernel and Uplus5-boot are stored on GitHub, it is very important to ensure that the development board can download codes from GitHub normally when compiling the imageimg568.'''png]]</p></li></ol>
<span id="compileusb-withinterface-x64test-ubuntu22.04-computer1"></span>=== Compile with x64 Ubuntu22.04 computer ===
<ol style="list-style-type: decimal;"><li><p>The Linux SDK, '''orangepi-build''', supports running on computers with '''Ubuntu 22.04''' installed, so before downloading orangepi-build, please make sure that the Ubuntu version installed on your computer is Ubuntu 22.04. The command to check the Ubuntu version installed on the computer is as follows. If the Release field does not display '''22.04''', it means that the current Ubuntu version does not meet the requirements. Please replace the system before performing the following operations.</p><p>= USB interface test@test:~$ '''lsb_release -a'''</p><p>No LSB modules are available.</p><p>Distributor ID: Ubuntu</p><p>Description: Ubuntu 22.04 LTS</p><p>Release: '''22.04'''</p><p>Codename: jammy</p></li><li><p>If the computer is installed with Windows system and there is no computer with Ubuntu 22.04 installed, you can consider using '''VirtualBox''' or '''VMware''' to install an Ubuntu 22.04 virtual machine in the Windows system. But please be careful not to compile orangepi-build on the WSL virtual machine, because orangepi-build has not been tested in the WSL virtual machine, so it cannot be guaranteed that orangepi-build can be used normally in WSL.</p></li><li><p>The download address of the installation image of Ubuntu 22.04 '''amd64''' version is:</p><p>'''https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/22.04/ubuntu-22.04-desktop-amd64.iso'''</p><p>or</p><p>'''https://repo.huaweicloud.com/ubuntu-releases/22.04/ubuntu-22.04.1-desktop-amd64.iso'''</p></li><li><p>After installing Ubuntu 22.04 on the computer or virtual machine, please set the software source of Ubuntu 22.04 to Tsinghua source, otherwise it is easy to make mistakes due to network reasons when installing the software later</p><ol style="list-style-type: lower-alpha;"><li>For the method of replacing Tsinghua source, please refer to the &gt; instructions on this web page</li></ol></li></ol>=
'''https:<span id="mount-the-usb-storage-device-under-the-command-line"><//mirrors.tuna.tsinghua.edu.cn/help/ubuntu/'''span>=== Mount the USB storage device under the command line ===
<ol start="2" style="list-style-type: lower-alpha;"><li><p>Note that # First insert the U disk into the Ubuntu version needs to be switched to 22.04</p><p>[[File:./images/media/image625.png|576x241px]]</p></li><li><p>The content USB interface of the '''<span class="mark">/etc/apt/sources.lis</span>'''t file that &gt; needs to be replaced is</p><p>test@test:~$ '''sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak'''</p>Orange Pi development board<p>test@test:~$ '''sudo vim /etc/apt/sources.list'''</p><p># By default, Execute the source image is commented to improve the speed of apt updatefollowing command, if you can uncomment it yourself if necessary</p><p>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse</p><p># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse</p><p>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse</p><p># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse</p><p>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse</p><p># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse</p><p>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse</p><p># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse</p><p># Pre-release software source, not recommended to enable</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>After see the replacementoutput of sdX, you need to update it means that the package information &gt; and make sure there is no error</p><p>test@test:~$ '''sudo apt update'''</p></li><li><p>'''In addition, since the source codes such as the kernel and U-boot &gt; are stored on GitHub, it disk is very important to ensure that the &gt; computer can download codes from GitHub normally when compiling &gt; the image.'''</p></li></ol>recognized successfully
::{| class="wikitable" style="width:800px;"|-|root@OpenWrt:~# '''cat /proc/partitions | grep &quot;sd*&quot;'''<br><span idstyle="getmargin-theright: 50px;">major</span><span style="margin-sourceright: 50px;">minor </span><span style="margin-coderight: 55px;">#blocks</span><span style="margin-ofright: 50px;">name</span><br><span style="margin-linuxright: 70px;margin-sdkleft: 20px;">8</span><span style="margin-right: 70px;">0</span><span style= Get the source code of linux sdk ="margin-right: 40px;">15126528 </span><span style="margin-right: 50px;color:#FF0000">'''sda'''</span><br>|}
<span idol start="3" style="downloadlist-orangepistyle-build-from-githubtype: decimal;"><li>Use the mount command to mount the U disk to <span class="mark">'''/mnt'''</span>=== Download orangepi-build from github ===, and then you can view the files in the U disk</li>
{| class="wikitable" style="width:800px;" |-|root@OpenWrt:~# The linux sdk actually refers to the code of orangepi-build. orangepi-build is modified based on the armbian build system. Using orangepi-build, multiple versions of linux images can be compiled. First download the code of orangepi-build, the command is as follows:'''mount /dev/sda /mnt/'''
testroot@testOpenWrt:~$ # '''sudo apt-get updatels /mnt/'''
test@test.txt|}</ol><ol start="4" style="list-style-type:~$ '''sudo apt-get install decimal;"><li>After mounting, you can view the capacity usage and mount point of the U disk through the <span class="mark">df -y git'''h</span> command</li>
test{| class="wikitable" style="width:800px;" |-|root@testOpenWrt:~$ '''git clone''' '''https://github.com/orangepi-xunlong/orangepi-build.git''' # '''df -b nexth | grep &quot;sd&quot;'''
'''Note that the Orange Pi 5 Plus development board needs to download the source code of the''' '''next''' '''branch of orangepi<span style="margin-right: 20px;">/dev/sda</span><span style="margin-right: 20px;">14.4G</span><span style="margin-right: 20px;">187.2M</span><span style="margin-buildright: 20px;">14. The above git clone command needs to specify 2G</span><span style="margin-right: 50px;">1% /mnt</span><br>|}</ol><span id="mount-the branch of -usb-storage-device-on-the orangepi-build source code as next.'''luci-management-interface"></span>
<div class="figure">== Mount the USB storage device on the LuCI management interface ===
<ol style="list-style-type: decimal;"><li><p>First connect the U disk (or other storage device) to the development board via USB2.0</p></li><li><p>Then follow the login LuCI management interface to enter the LuCI management interface</p></li><li><p>Then in the LuCI management interface, click &quot;System -&gt; Mount Point&quot; to enter the configuration interface of the mount point</p><p>[[File:plus5-img569.png]]</imagesp></mediali><li><p>Then follow the steps below to add a mount point</image626p><ol style="list-style-type: lower-alpha;"><li><p>Find &quot;'''Mount Point'''&quot; at the bottom of the mount point '''global setting interface'''</p></li><li><p>Under the mount point, select the &quot;Add&quot; button and click Enter</p></li> [[File:plus5-img570.png|576x298px|图片6]]</ol><ol start="3" style="list-style-type: lower-alpha;"><li><p>Then the following pop-up interface will pop up</p><p>[[File:plus5-img571.png]]</p></li><li><p>Then you can start to mount the storage device</divp><p>a) Check &quot;'''Enabled'''Downloading &quot;</p><p>b) Select the orangepi-build code through actual connected device /dev/sda in the git clone command does not require entering UUID column of general settings (choose according to your own device)</p><p>c) Select &quot;'''Custom'''&quot; in the user name mount point column, and password of fill in the github account (target directory to be mounted. Here, take the same is true for downloading other codes in this manual'''<span class="mark">/mnt</span>''' directory as an example, and press '''Enter''' to confirm</p><p>d), if Then click the Ubuntu PC prompts &quot;'''Save'''&quot; button in the user lower right corner</p></li> [[File:plus5-img572.png]]</ol></ol><ol start="5" style="list-style-type: decimal;"><li>Then you will return to enter the github account after entering the git clone command The name mount point global settings page, click &quot;'''Save and password are usually entered incorrectly Apply'''&quot; in the address lower left corner of the orangepipage to make the mount point take effect</li> [[File:plus5-build warehouse behind the git cloneimg573. Please check the spelling of the command carefullypng]]</ol><ol start="6" style="list-style-type: decimal;"><li>After saving, instead of thinking that we forgot to provide you can see the username and password of the github account.&quot;'''mounted file system'''&quot;, the storage device has been mounted successfully</li> [[File:plus5-img574.png]]</ol><span id="how-to-use-e-key-pcie-wireless-network-card"></span> == How to use E-Key PCIe wireless network card ==
<ol start="2" style="list-style-type: decimal;"><li># The u-boot and linux kernel versions PCIe wireless network card models currently used by compatible with the development board OpenWRT image are as follows</li></ol>follows:
::{| class="wikitable" style="width:800px;"
|-
| style="text-align: left;"| '''branchserial number'''| style="text-align: left;"| '''u-bootmodel''' | '''versionPhysical picture'''| style="text-align: left;"| '''linux kernel versionSupported OS'''
|-
| style="text-align: left;"'''1'''| '''legacyAX200'''| style="text-align: left;"| '''u-boot 2017.09(PCIE+USB接口)''' | style="text[[File:plus5-align: left;"img230.png]]| '''linux5.10Debian'''|}'''Ubuntu'''
'''The branch mentioned here is not the same thing as the branch of the orangepi-build source code, please do not confuse it. This branch is mainly used to distinguish different kernel source code versions.<span style="color:#FF0000">OpenWRT</span>'''
'''Currently, the linux5.10 bsp kernel provided by RK is defined as the legacy branch. If the mainline kernel is supported in the future, a current branch will be added.OPi OS Arch'''
<ol start="3" style="list|-style-type: decimal;"><li><p>orangepi-build will contain the following files and folders after downloading</p><ol style="list-style-type: lower-alpha;"><li><p>| '''build.sh''': Compile the startup script</p></li><li><p>'''external''': Contains the configuration files needed to compile &gt; the image, specific scripts, and the source code of some &gt; programs, etc.</p></li><li><p>'''LICENSE''': GPL 2 license file</p></li><li><p>'''README.md''': orangepi-build documentation</p></li><li><p>| '''scriptsAX210''': General script for compiling linux images</p><p>test@test:~/orangepi-build$ '''ls'''</p><p>'''build.sh external LICENSE''' '''README.md''' '''scripts'''</p><p>'''If you downloaded the code of orangepi-build from github, after downloading, you may find that orangepi-build does not contain the source code of u-boot and linux kernel, nor does u-boot and linux kernel need to use cross-compilation tools Chain, this is normal, because these things are stored in other separate github warehouses or some servers (the addresses will be detailed below). orangepi-build will specify the address of u-boot, linux kernel and cross-compilation toolchain in the script and configuration file. When running orangepi-build, when it finds that there are no such things locally, it will automatically go to the corresponding place to download them.'''</p></li></ol></li></ol>
<span id="download-the-cross-compilation-toolchain"></span>=== Download the cross-compilation toolchain ==='''(PCIE+USB接口)'''
| [[File:plus5-img231.png]]| '''The cross-compilation toolchain will only be downloaded when the orangepi-build compilation image is used on an x64 computer. Compiling the linux image of the development board in the Ubuntu22.04 of the development board will not download the cross-compilation toolchain. At this time, orangepi-build/toolchains will be an empty folder.Debian'''
<ol style="list-style-type: decimal;"><li><p>When orangepi-build runs for the first time, it will automatically download the cross-compilation toolchain and put it in the toolchains folder. Every time after running the build.sh script of orangepi-build, it will check whether the cross-compilation toolchain in toolchains exists , if it does not exist, the download will be restarted, if it exists, it will be used directly, and the download will not be repeated.</p><div class="figure">'''Ubuntu'''
[[File'''<span style="color:.#FF0000">OpenWRT</images/media/image627.png|575x278px|选区_396]]span>'''
</div></li><li><p>The image URL of the cross-compilation toolchain in China is the open source software image site of Tsinghua University</p><p>'''https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain/OPi OS Arch'''</p></li><li><p>After |-| '''toolchains3''' is downloaded, it will contain multiple versions of cross-compilation toolchains, and the development board will only use two of them</p><p>test@test:~/orangepi-build$ | '''ls toolchains/RTL8852BE'''</p><p>gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu</p><p>gcc-arm-11.2-2022.02-x86_64-arm-none-linux-gnueabihf</p><p>gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu</p><p>gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf</p><p>gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi</p><p>gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf</p><p>gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu</p><p>gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabi</p><p>gcc-linaro-aarch64-none-elf-4.8-2013.11_linux</p><p>gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux</p><p>gcc-linaro-arm-none-eabi-4.8-2014.04_linux</p></li><li><p>The cross-compilation toolchain used to compile the linux kernel source code is</p><ol style="list-style-type: lower-alpha;"><li><p>linux5.10</p><p>'''gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu(PCIE+USB接口)'''</p></li></ol></li><li><p>The cross-compilation tool chain used to compile the u-boot source code is</p><ol style="list-style-type| [[File: lowerplus5-alpha;"><li><p>v2017img232.09</p>png]]<p>| '''gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnuDebian'''</p></li></ol></li></ol>
<span id="orangepi-build-complete-directory-structure-description"></span>=== orangepi-build complete directory structure description ==='''Ubuntu'''
<ol style="list-style-type: decimal;"><li><p>The orangepi-build repository does not contain the source code of the linux kernel, u-boot, and cross-compilation toolchain after downloading. The source code of the linux kernel and u-boot is stored in an independent git repository</p><ol style="list-style-type: lower-alpha;"><li><p>The git warehouse where the linux kernel source code is stored &gt; is as follows:</p><p>'''https://github.com/orangepi-xunlong/linux-orangepi/tree/orange-pi-5.10-rk3588'''</p></li><li><p>The git warehouse where the u-boot source code is stored is as &gt; follows:</p><p>'''https://github.com/orangepi-xunlong/u-boot-orangepi/tree/v2017.09-rk3588'''</p></li></ol></li><li><p>When orangepi-build runs for the first time, it will download the cross-compilation toolchain, u-boot and linux kernel source code. After successfully compiling a linux image, the files and folders that can be seen in orangepi-build are:</p><ol span style="list-style-typecolor: lower-alpha;#FF0000"><li>Not Supported OpenWRT</li><lispan></li><li></li><li></li><li></li><li></li><li></li><li></li><li><p>a.'''build.sh''': compile startup script</p><p>b.'''external''': Contains the configuration files needed to compile the image, scripts with specific functions, and the source code of some programs. The rootfs compressed package cached during the image compilation process is also stored in external</p><p>c.'''kerne'''l: stores the source code of the linux kernel. The folder named '''orange-pi-5.10-rk3588''' stores the kernel source code of the legacy branch of the RK3588/RK3588S series development boards. Please do not manually modify the name of the folder of the kernel source code. If it is modified, the kernel source code will be re-downloaded when the compilation system is running</p><p>d.'''LICENSE''': GPL 2 license file</p><p>e.'''README.md''': orangepi-build documentation</p><p>f.'''output''': Store compiled deb packages such as u-boot and linux, compilation logs, and compiled images and other files</p><p>g.'''scripts''': general scripts for compiling linux images</p><p>h'''.toolchains''': store cross-compilation toolchain</p><p>i.'''u-boot''': Store the source code of u-boot. The folder named '''v2017.09-rk3588''' stores the u-boot source code of the legacy branch of the RK3588/RK3588S series development boards. Please do not name the folder name of the u-boot source code Manual modification, if modified, the u-boot source code will be re-downloaded when the compilation system is running</p><p>j.'''userpatches''': Store configuration files needed to compile scripts</p><p>test@test:~/orangepi-build$ '''ls'''</p><p>'''build.sh external kernel LICENSE output''' '''README.md''' '''scripts toolchains u-boot userpatches'''</p></li></ol></li></ol>
<span id="compile-u-boot"></span>== Compile u-boot =='''Android12'''
<ol style="list-style-type: decimal;"><li><p>Run the build.sh script, remember to add sudo permission</p><p>test@test:~/orangepi-build$ '''sudo ./build.shOPi OS Arch'''</p></li><li><p>Select '''<span class="mark">U-boot package</span>''', then press Enter</p><div class="figure">
[[File:./images/media/image628.png|576x132px|选区_238]]'''OPi OS Droid'''
</div></li><li><p>Then select the model of the development board</p><div class="figure">|}
[[File:.<span id="how-to-create-wifi-hotspot"></images/media/image629.png|576x289px|6]]span>=== How to create WIFI hotspot ===
</div></li><li><p>Then it will start to compile u-boot, and some information prompted during compilation is explained as follows</p><ol style{| class="list-style-type: lower-alpha;wikitable"><li><p>u-boot source code version</p><p>[ o.k. ] Compiling u-boot [ '''v2017.09''' ]</p></li><li><p>The version of the cross-compilation toolchain</p><p>[ o.k. ] Compiler version [ '''aarch64-linux-gnu-gcc 7.4.1''' ]</p></li><li><p>Path to the generated u-boot deb package</p><p>[ o.k. ] Target directory [ '''orangepi-build/output/debs/u-boot''' ]</p></li><li><p>The package name of the generated u-boot deb package</p><p>[ o.k. ] File name [ '''linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb''' ]</p></li><li><p>Compilation time</p><p>[ o.k. ] Runtime [ '''1''' '''min''' ]</p></li><li><p>Repeat the command to compile u-boot, use the following command &gt; to start compiling u-boot directly without selecting through &gt; the graphical interface</p><p>[ o.k. ] Repeat Build Options [ '''sudo ./build.sh BOARD=orangepi5plus''' '''BRANCH=legacy BUILD_OPT=u-boot KERNEL_CONFIGURE=no''' ]</p></li></ol></li><li><p>View the u-boot deb package generated by compilation</p><p>test@test:~/orangepi-build$ '''ls output/debs/u-boot/'''</p><p>linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb</p></li><li><p>The files contained in the generated u-boot deb package are as follows</p><ol style="listbackground-style-typecolor:#ffffdc;width: lower-alpha800px;"><li><p>Use the following command to decompress the deb package</p><p>test@test:~/orangepi-build$ '''cd''' '''output/debs/u|-boot'''</p><p>test@test:~/orangepi_build/output/debs/u-boot$ $ '''sudo''' '''dpkg -x''' \</p>| <pbig>'''linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb .''' '''(Note that there is a &quot;.&quot; at the end of the command)'''</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>The decompressed file is as follows</p><p>test@test:~/orangepi-build/output/debs/u-boot$ '''tree usr'''</p><p>usr</p><p>└── lib</p><p>├── linux-u-boot-legacy-orangepi5plus_1.0.0_arm64</p><p>│   ├── idbloader.img</p><p>│   ├── rkspi_loader.img</p><p>│   └── u-boot.itb</p><p>└── u-boot</p><p>├── LICENSE</p><p>├── orangepi_5_plus_defconfig</p><p>└── platform_install.sh</p><p>3 directories, 6 files</p></li></ol></li><li><p>When the orangepi-bulid compilation system compiles the u-boot source code, it will first synchronize the u-boot source code with the u-boot source code of the github server, so if you want to modify the u-boot source code, you first need to turn off the download AX200 and update function of the source code '''(need This function can AX210 currently only be turned off after u-boot has been fully compiled, otherwise it will prompt that support hotspots in the source code of u-boot cannot be found2.4G frequency band. If In the source code compressed package is downloaded from''' '''Google Drive5G frequency band mode, there is no such problem because the source code of u-boot cached)''', otherwise the changes made will be restored, an error that the method is as follows:</p><p>Set the IGNORE_UPDATES variable in <span class="mark">userpatches/config-default.conf</span> to &quot;yes&quot;</p><p>test@test:~/orangepi-build$ '''vim userpatches/config-default.conf'''</p><p>IGNORE_UPDATES=&quot;'''yes'''&quot;</p></li><li><p>When debugging u-boot code, you can use the following method to update u-boot in the linux image for testing</p><ol style="list-style-type: lower-alpha;"><li><p>Upload the compiled u-boot deb package to the linux system modified configuration of &gt; the development board</p><p>test@test:~/orangepi-build$ '''cd''' '''output/debs/u-boot'''</p><p>test@test:~/orangepi_build/output/debs/u-boot$ '''scp''' '''\'''</p><p>'''linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb''' '''root@192.168.1.xxx:/root'''</p></li><li><p>Then log in to the development board and uninstall the deb &gt; package of u-boot installed</p><p>root@orangepi:~# '''apt''' '''purge''' '''-y linux-u-boot-orangepi5plus-legacy'''</p></li><li><p>Install the new u-boot deb package just uploaded</p><p>root@orangepi:~# '''dpkg -i''' '''linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb'''</p></li><li><p>Then run the nand-sata-install script</p><p>root@orangepi:~# '''nand-sata-install'''</p></li><li><p>Then select '''<span class="mark">5 Install/Update the bootloader on SD/eMM</span>''' to update the u-boot in the TF wireless network card or '''<span class="mark">7 Install/Update the bootloader on SPI Flash</span>''' to update the u-boot in the SPI Flash</p><p>[[File:./images/media/image630.png|317x154px]]</p></li><li><p>After pressing the Enter key, a Warning will pop up first</p><p>[[File:./images/media/image631.png|314x170px]]</p></li><li><p>Press the Enter key again to start updating u-boot, and the &gt; following information will cannot be displayed after the update is &gt; completed</p><p>[[File:./images/media/image632applied.png|223x125px]]</p></li><li><p>Then you can restart the development board to test whether the &gt; modification of u-boot takes effect</p></li></ol></li><li><p>Other useful information</p><ol style="list-style-type: lower-alpha;"><li><p>u-boot 2017.09 source code, the defconfig configuration file &gt; used by the development board is</p><p>'''orangepi-build/u-boot/v2017.09-rk3588/configs/orangepi_5_plus_defconfig'''</p></libig><li><p>u-boot 2017.09 source code, the dts file used by the development &gt; board is</p><p>'''orangepi-build/u-boot/v2017.09-rk3588/arch/arm/dts/rk3588-orangepi-5-plus.dts'''</p></li></ol></li></ol> <span id="compile-the-linux-kernel"></span>== Compile the linux kernel ==|}
<ol style="list-style-type: decimal;">
<li><p>Run First insert the buildPCIe wireless network card into the M.sh script2 E-KEY port of the development board, remember and then connect the Type-C power supply to add sudo permissionpower up the development board.</p><p>test@test[[File:~plus5-img575.png]]</orangepip></li><li><p>After the system startup is complete, click '''<span class="mark">Network -build$ &gt; Wireless</span>'''sudo to enter the wireless WiFi configuration interface.</p><p>[[File:plus5-img576.png]]</p></li><li><p>The default wireless configuration of the OpenWRT system is '''Master''' mode. Here, for the convenience of the next operation, we will remove the default wireless connection.</p><p>[[File:plus5-img577.png]]</p></li><li><p>Then click '''<span class="mark">Save</span>''' in the lower right corner of the page to make the configuration take effect.</p><p>[[File:plus5-img578.png]]</p></li><li><p>Then click the '''<span class="mark">Add</span>''' button on the right.</p><p>[[File:plus5-img579.png]]</p></li><li><p>In the pop-up tab page '''<span class="mark">Device Configuration</span>''', we set the parameters as shown in the figure below.</p><p>[[File:plus5-img580.png]]</p></li><li><p>Then in '''<span class="mark">Interface Configuration -&gt; General Settings</span>''', set the mode to '''<span class="mark">Access Point AP</span>''', set the '''<span class="mark">ESSID</span>''' (wireless network name) to '''<span class="mark">OpenWrt</buildspan>''', and specify the network as '''<span class="mark">lan</span>'''</p><p>[[File:plus5-img581.shpng]]</p></li><li><p>Then in '''<span class="mark">Interface Configuration -&gt; Wireless Security</span>''', select ''' WPA2-PSK''' as the encryption algorithm; set the key (wireless password) to '''password'''</p><p>[[File:plus5-img582.png]]</p></li><li><p>Select After the above settings are completed, click '''<span class="mark">Kernel packageSave</span>'''in the lower right corner of the page, and then press Enterexit the tab page</p><div p>[[File:plus5-img583.png]]</p></li><li><p>Then click '''<span class="mark">Save and Apply</span>''' in the lower right corner of the page and wait for the configuration to be applied.</p><p>[[File:plus5-img584.png]]</p></li><li><p>The display interface of successfully creating a hotspot is shown in the figure"below</p><p>[[File:plus5-img585.png]]</p></li><li><p>Then use the mobile phone or computer to search for the WiFi corresponding to the SSID to connect. After the connection is successful, as shown in the figure below</p><p>[[File:plus5-img586.png]]</p></li></ol>
[[File:.<span id="how-to-connect-to-wifi-hotspot"></images/media/image633.png|575x116px|选区_240]]span>
</div></li><li><p>Then select the model of the development board</p><div class="figure">== How to connect to WIFI hotspot ===
<ol style="list-style-type: decimal;"><li><p>Insert the PCIe wireless network card into the M.2 E-KEY port of the development board, and then connect the Type-C power supply to power the development board.</p><p>[[File:plus5-img575.png]]</p></imagesli><li><p>After the system startup is complete, click '''<span class="mark">Network -&gt; Wireless</mediaspan>''' to enter the configuration wireless WiFi interface.</image629p><p>[[File:plus5-img576.png|576x289px|6]]</p></li><li><p>The default wireless configuration of the OpenWRT system is '''Master''' mode. Here, for the convenience of the next operation, we will remove the default wireless connection.</p><p>[[File:plus5-img577.png]]</p></li><li><p>Then click '''<span class="mark">Save</span>''' in the lower right corner of the page to make the configuration take effect.</p><p>[[File:plus5-img578.png]]</p></li><li><p>Then click the '''<span class="mark">Scan</span>''' button to scan the surrounding WiFi hotspots.</p><p>[[File:plus5-img587.png]]</p></li><li><p>Then the following window will pop up to display the available WiFi hotspots. At this time, click the '''<span class="mark">Join Network</span>''' button on the right side of the WiFi hotspot you want to connect to connect to the WiFi hotspot.</p><p>[[File:plus5-img588.png]]</p></li><li><p>Then an interface for connecting to a WiFi hotspot will pop up. We enter the password of the hotspot as shown in the figure below, and then click the '''<span class="mark">Submit</span>''' button.</p><p>[[File:plus5-img589.png]]</p></li><li><p>Then the following interface will pop up, click the '''<span class="mark">Save</span>''' button in the lower right corner.</p><p>[[File:plus5-img590.png]]</p></li><li><p>Finally, you will return to the main interface of wireless configuration, click '''<span class="mark">Save and Apply</span>''' and wait for the configuration to be applied.</p><p>[[File:plus5-img591.png]]</p></li><li><p>After successfully connecting to the WiFi hotspot, the interface is displayed as shown in the figure below.</p><p>[[File:plus5-img592.png]]</p></li></ol>
</div></li><li><p>Then it will prompt whether to display the kernel configuration interface. If you do not need to modify the kernel configuration, select the first one. If you need to modify the kernel configuration, select the second one.</p><p>[[File:./images/media/image634.png|576x87px]]</p></li><li><p>If you choose to display the kernel configuration menu (the second option) in step 4), the kernel configuration interface opened by '''<span classid="markinstalling-packages-via-the-command-line">make menuconfig</span>''' will pop up. At this time, you can directly modify the kernel configuration, save and exit after modification. Yes, after exiting, the kernel source code will be compiled</p><p>[[File:./images/media/image635.png|575x400px]]</p></li></ol>
<!-- --><ol style="list-style-type: lower-alpha;"><li><p>If you do not need to modify the configuration options of the &gt; kernel, when running the build.sh script, pass in &gt; '''<span class="mark">KERNEL_CONFIGURE=no</span>''' to temporarily block the pop-up &gt; kernel configuration interface</p><p>test@test:~/orangepi-build$ '''sudo ./build.sh''' '''KERNEL_CONFIGURE=no'''</p></li><li><p>You can also set '''<span class="mark">KERNEL_CONFIGURE=no</span>''' in Installing packages via the &gt; '''<span classcommand line ="mark">orangepi-build/userpatches/config-default.conf</span>''' &gt; configuration file, which can permanently disable this function</p></li><li><p>If the following error is displayed when compiling the kernel, it is &gt; because the terminal interface of the Ubuntu PC is too small to &gt; display the '''<span class="mark">make menuconfig</span>''' interface. Please &gt; maximize the terminal of the Ubuntu PC and run the build.sh script &gt; again</p><p>[[File:./images/media/image636.png|574x234px]]</p></li></ol>
<!-- --><ol startspan id="6" style="listinstall-stylevia-type: decimal;"><li><p>Part of the information prompted when compiling the kernel source code is as follows</p><ol style="listopkg-stylein-type: lowerthe-alpha;terminal"><li><p>The version of the linux kernel source code</pspan><p>[ o.k. ] Compiling current kernel [ '''5.10.110''' ]</p></li><li><p>The version of the cross-compilation toolchain used</p><p>[ o.k. ] Compiler version [ '''aarch64-none-linux-gnu-gcc 11.2.1''' ]</p></li><li><p>The configuration file used by the kernel by default and the &gt; path where it is stored</p><p>[ o.k. ] Using kernel config file [ '''config/kernel/linux-rockchip-rk3588-legacy.config''' ]</p></li><li><p>The path of the deb package related to the kernel generated by &gt; compiling</p><p>[ o.k. ] Target directory [ '''orangepi-build/output/debs/''' ]</p></li><li><p>The package name of the compiled kernel image deb package</p><p>[ o.k. ] File name [ '''linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb''' ]</p></li><li><p>The time used for compilation</p><p>[ o.k. ] Runtime [ '''5''' '''min''' ]</p></li><li><p>Finally, the compilation command to repeatedly compile the &gt; kernel selected last time will be displayed. Use the following &gt; command to start compiling the kernel source code directly &gt; without selecting through the graphical interface</p><p>[ o.k. ] Repeat Build Options [ '''sudo ./build.sh BOARD=orangepi5plus''' '''BRANCH=legacy BUILD_OPT=kernel KERNEL_CONFIGUREInstall via opkg in the terminal =no''' ]</p></li></ol></li><li><p>View the deb package related to the kernel generated by compilation</p><ol style="list-style-type: lower-alpha;"><li><p>'''linux-dtb-legacy-rockchip-rk3588_1.0.0_arm64.deb''' Contains &gt; dtb files used by the kernel</p></li><li><p>'''linux-headers-legacy-rockchip-rk3588_1.0.0_arm64.deb''' Include &gt; kernel headers</p></li><li><p>'''linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb''' Contains &gt; kernel images and kernel modules</p><p>test@test:~/orangepi-build$ '''ls output/debs/linux-*'''</p><p>output/debs/linux-dtb-legacy-rockchip-rk3588_1.0.0_arm64.deb output/debs/linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb</p><p>output/debs/linux-headers-legacy-rockchip-rk3588_1.0.0_arm64.deb</p></li></ol></li><li><p>The files contained in the generated linux-image deb package are as follows</p><ol style="list-style-type: lower-alpha;"><li><p>Use the following command to decompress the deb package</p><p>test@test:~/orangepi-build$ '''cd''' '''output/debs'''</p></li></ol></li></ol>
test# Update the list of available packages::{| class="wikitable" style="width:800px;" |-|root@testOpenWrt:~/orangepi_build/output/debs$ # '''mkdir testopkg update'''|}
test<ol start="2" style="list-style-type: decimal;"><li>Get the software list</li>{| class="wikitable" style="width:800px;" |-|root@OpenWrt:/# '''opkg list'''|}</ol><ol start="3" style="list-style-type: decimal;"><li>Install the specified package</li>{| class="wikitable" style="width:800px;" |-|root@testOpenWrt:~/orangepi_build# '''opkg install &lt;package name&gt;'''|}</ol><ol start="4" style="list-style-type: decimal;"><li>Check the installed software</outputli>{| class="wikitable" style="width:800px;" |-|root@OpenWrt:/debs$ # '''cpopkg list-installed''' |}</ol><ol start="5" style="list-style-type: decimal;"><li>Uninstall the software</li>{| class="wikitable" style="width:800px;" |-|root@OpenWrt:/# '''\opkg remove &lt;package name&gt;'''|}</ol><span id="openwrt-management-interface-installation-software-package"></span>
'''linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb test/'''== OpenWRT management interface installation software package ==
test@test{| class="wikitable" style="background-color:~/orangepi_build/output/debs$ #ffffdc;width:800px;" |-| <big>'''cd testIf you need to add new software packages, you can install them through the OpenWRT management interface.'''</big>|}
test@test:~/orangepi_build/output<span id="view-the-list-of-available-software-packages-in-the-system"></debs/test$ '''dpkg -x''' '''\'''span>=== View the list of available software packages in the system ===
<ol style="list-style-type: decimal;"><li><p>First enter the package management page</p><p>a. Find the &quot;'''System'''linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb &quot; option in the navigation bar and click to enter</p><p>b.In the vertical column options below the system, select &quot;'''software package'''&quot; and click to enter</p></li>
test@test[[File:~plus5-img593.png]]</orangepi_buildol><ol start="2" style="list-style-type: decimal;"><li><p>Then the main page of the software package will appear, as shown in the figure below, to obtain the list of available software</outputp><p>a. In the &quot;'''Operation'''&quot; option of the software package, click &quot;'''Update List'''&quot; to get the list of available software packages</debs/test$ p><p>b. On the Tab page, click &quot;'''lsAvailable'''&quot; to view the currently available software packages</p><p>c. View the number of currently available packages</p><p>[[File:plus5-img594.png]]</p></li></ol>
'''boot etc lib''' linux<span id="example-imageof-legacyinstalling-rockchipsoftware-rk3588_1.0.0_arm64.deb '''usr'''packages"></span>
<ol start="2" style="list-style-type: lower-alpha;"><li><p>The decompressed file is as follows</p><p>test@test:~/orangepi-build/output/debs/test$ '''tree -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>= Example of installing software packages ===
<!-- --><ol start="9" style="list-style-type: decimal;"><li><p>The orangepi-bulid compilation system will first synchronize the linux kernel source code with the linux kernel source code of the github server when compiling the linux kernel source code, so if you want to modify the linux kernel source code, you first need to turn off Take the update function of the source code '''(you need to compile it once This function can only be turned off after the linux kernel source code, otherwise it will prompt that the source code of the linux kernel cannot be found. If the source code compressed installation package downloaded from''' '''Google Drive, there is no such problem, because the source code of linux has been cached)''', otherwise the The changes made will be reverted as follows:</p><p>Set the IGNORE_UPDATES variable in '''<span class="mark">userpatches/config-default.conf</span>''' to &quot;yes&quot;</p><p>test@test:~/orangepiluci-build$ '''vim userpatches/configapp-default.confacl'''</p><p>IGNORE_UPDATES=&quot;'''yes'''&quot;</p></li><li><p>If the kernel has been modified, the following method can be used to update the kernel and kernel modules of the development board linux system" as an example</p>
<ol style="list-style-type: lower-alpha;">
<li><p>Upload In the deb OpenWRT software package of management interface, click the compiled linux kernel to the linux &gt; system of the development boardfilter dialog box and enter "'''luci-app-acl'''"</p></li><li><p>test@test:~/orangepi-build$ In the list of software packages, you can see the version, package size and description information of the "'''cdluci-app-acl''' " software package, and then click the '''output/debs&quot;Install&quot;'''button</p><p>test@test[[File:~/orangepiplus5-buildimg595.png]]</outputp></debs$ li><li><p>Then the following pop-up window will appear, click '''scp''' '''\&quot;Install&quot;'''</p><p>'''linux[[File:plus5-image-legacy-rockchip-rk3588_1img596.0.0_arm64.deb root@192.168.1.xxx:/root'''png]]</p></li><li><p>Then log in wait for the installation to the development board and uninstall the deb &gt; package of the installed linux kernelcomplete</p><p>root@orangepi[[File:~# '''apt purge plus5-y''' '''linux-image-legacy-rockchip-rk3588'''img597.png]]</p></li><li><p>Install The display after the deb package of the new linux kernel just uploadedinstallation is complete is as follows</p><p>root@orangepi[[File:~# '''dpkg -i linuxplus5-image-legacy-rockchip-rk3588_1.0.0_arm64img598.deb'''png]]</p></li></ol></li><li><p>Check whether the software package is installed successfully</p><p>Then restart a. In the development boardOpenWRT software package management interface, click the filter dialog box and enter "'''luci-app-acl'''"</p><p>b. Select and then check whether the click '''&quot;Available&gtquot; kernel-related modifications have taken effect''' on the Tab page</p><p>root@orangepi:~# c. The "'''luci-app-acl'''" package will be displayed in the package list, and the update status will be '''reboot&quot;installed&quot;'''</p></lip>[[File:plus5-img599.png]]</olp></li></ol>
<!-- --><ol start="10" style="list-style-type: decimal;"><li><p>Other useful information</p><ol stylespan id="list-styleremove-type: lowerpackage-alpha;example"><li><p>The storage location of the kernel configuration file is as &gt; follows, please do not go to the kernel source code to find &gt; the kernel configuration file used by the development board</p><p>'''orangepi-build/external/config/kernel/linux-rockchip-rk3588-legacy.config'''</p></li><li><p>The location of the dts file used by the development board is</p><p>'''orangepi-build/kernel/orange-pi-5.10-rk3588/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts'''</p></li></ol></li></olspan>
<span id="compile-rootfs"></span>== Compile rootfs Remove package example ===
<ol style="list-style-type: decimal;">
<li><p>Run Take the build.sh scriptremoval of the package "'''luci-app-acl'''" as an example</p><ol style="list-style-type: lower-alpha;"><li><p>In the OpenWRT software package management interface, remember click the filter dialog box and enter "'''luci-app-acl'''"</p></li><li><p>Select '''&quot;Installed&quot;''' on the Tab page to display the list of installed software packages</p></li><li><p>Click '''&quot;Remove&quot;''' on the right to add sudo permissionremove the corresponding software package</p><p>test@test[[File:~plus5-img600.png]]</orangepip></li><li><p>Then the following pop-build$ up window will be displayed, click '''sudo &quot;Remove&quot;'''</p><p>[[File:plus5-img601.png]]</p></buildli><li><p>After the removal is successful, the display interface is as follows</p><p>[[File:plus5-img602.sh'''png]]</p></li></ol></li><li><p>Check whether the software package is removed successfully</p><p>Select a. In the OpenWRT software package management interface, click the filter dialog box and enter "'''luci-app-acl'''"<span class="mark"/p><p>Rootfs b. Select and all deb packagesclick '''&quot;Installed&quot;''' on the Tab page</spanp><p>c. The "'''luci-app-acl'''" package will not be displayed in the package list, then press Enterand the "'''luci-app-acl'''" package has been removed successfully</p><p>[[File:plus5-img603.png]]</p></li></ol>
<div classspan id="figureusing-samba-network-shares"></span>
[[File:./images/media/image637.png|576x119px|选区_241]]== Using Samba Network Shares ==
</div><ol start{| class="3wikitable" style="listbackground-style-typecolor:#ffffdc;width: decimal800px;">|-| <libig><p>Then select '''There are mainly two software options for OpenWRT LAN file sharing, Samba and NFS. The compatibility of the Samba system is better, while the model performance of the development boardNFS is superior. For users who need to use Windows devices, it is recommended to choose Samba.'''</pbig><div class="figure">|}
[[File:./images/media/image629.png|576x289px|6]] </div></li><li><p>Then select the type of rootfs (mainly maintain '''<span classol style="marklist-style-type: decimal;">bullseye/focal/jammy</span>''' at present)</p><div class="figure"> [[File:./images/media/image638.png|575x180px|7]] </div></li><li><p>Then select Enter the type management page of imagethe Samba network share</p>
<ol style="list-style-type: lower-alpha;">
<li><p>Find the '''Image with console interface (server)&quot;Service&quot;''' Indicates option in the navigation bar and click to enter</p></li><li><p>In the image of vertical column options below the service, select '''&quot;network sharing&gtquot; the server version, which is relatively small''' and click to enter</p><p>[[File:plus5-img604.png]]</p></li></ol></li><li><p>Select the interface that the Samba service needs to monitor</p><ol style="list-style-type: lower-alpha;"><li><p>Select '''Image with desktop environment&quot;General Settings&quot;''' Indicates a mirror image with in the navigation bar of network sharing and click to enter</p></li><li><p>The interface is specified according to actual needs. If you want to access through the &quot;wan port&gtquot; a desktop, which is relatively largeset it to '''&quot;wan&quot;'''</p><div class="figure"p> [[File:./images/media/image639plus5-img605.png|576x75px|选区_245]] </divp></li></ol>
</li>
<li><p>If you are compiling Set the image shared directory of the server versionnetwork share</p><p>a. In the '''&quot;Shared Directory&quot;''' of the '''&quot;General Settings&quot;''' of the network share, you can also choose to compile click '''&quot;Add&quot;''' the Standard version or the Minimal versionshared directory address</p><p>b. The pre-installed software of Enter the Minimal version will be much less than that name of the Standard version shared folder as '''(please do not &quot;mmt&quot;''' under the name</p><p>c. Under the path of the shared directory, choose to set the Minimal version if there is no special requirement, because many things are not pre-installed by defaultshared directory location '''&quot;/mnt&quot;'''</p><p>d. Check '''&quot;Browseable&quot;''' and &quot;Run anonymous user&quot;</p><p>e. Some functions may not be available)Click '''&quot;Save and Apply&quot;''' to save the configuration</p>
<div class="figure">
[[File:./images/media/image640plus5-img606.png|576x78px|选区_397]]
</div></li>
<li><p>If you are compiling window10 starts network discovery and sharing</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''Note: To access Samba under the image of the desktop versionWindows 10 system, you need to select confirm whether Windows 10 has enabled network discovery and sharing for sharing. If it is not enabled, perform the type of desktop environmentfollowing settings first. Currently, Ubuntu Jammy mainly maintains XFCE and Gnome desktops, Ubuntu Focal only maintains XFCE desktops, and Debian Bullseye mainly maintains XFCE and KDE desktops'''</p></big>|}<div class="figure"/li>
[[File:./images/media/image641.png|575x99px|Selection_001]] </div><p>[[File:./images/media/image642.png|576x74px]]</p><p>You can then select additional packages that need to be installed. Please press the Enter key to skip directly here.</p><p>[[File:./images/media/image643.png|575x264px]]</p></li><li><p>Then it will start to compile rootfs, and some of the information prompted during compilation are as follows</p!-- -->
<ol style="list-style-type: lower-alpha;">
<li><p>The type of rootfs<Enable Samba v1/p><p>[ o.k. ] local not found [ Creating new rootfs cache for '''jammy''']v2 access</p></li><li><p>The storage path of a) Enter the compiled rootfs compressed package</p><p>[ o.k. ] Target directory [ '''external/cache/rootfs''' ]</p></li><li><p>The name of the rootfs compressed package generated by &gtquot;Control Panel&quot; compilationof Windows 10</p><p>[ o.k. ] File name [ '''jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4''' ]</p></li><li><p>The time used for compilation</p><p>[ o.k. ] Runtime [ '''13''' '''min''' ]</p></li></ol></li><li><p>View the rootfs compressed package generated by compilation</p><ol style="list-style-type: lower-alphab) Click &quot;"><li><p>'''jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4''' is Programs&gtquot; on the rootfs compressed package, the meaning left navigation bar of each field of &gt; the name iscontrol panel</p><ol style="list-style-type: lower-alpha;"><li><p>'''jammy''' indicates the type of linux distribution of rootfsc) Select &quot;Turn Windows features on or off&quot; in Programs and Features</p></li><li><p>'''xfce''' means rootfs is the type of desktop version, if it d) Check &gtquot; is '''cli''', it means the type of server version</p></li><li><p>'''arm64''' represents the architecture type of rootfs</p></li><li><p>'''f930ff6ebbac1a72108a2e100762b18f''' is the MD5 hash value generated by the package names of all software packages installed by rootfsSMB 1. As long as the list of software packages installed by rootfs is not modified, this value will not change. The compilation script will use this MD5 hash value to generate Determine whether rootfs needs to be recompiled</p></li><0/ol></li><li><p>'''jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.list''' CIFS file sharing support&gtquot; lists in the package names pop-up box of all packages installed by rootfsenabling or disabling Windows functions</p><p>test@test:~/orangepi-build$ '''ls external/cache/rootfs/'''</p><p>'''jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4'''</p><p>jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.current</p><p>jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.list</p></li></ol></li><li><p>If the required rootfs already exists under '''<span class="mark">external/cache/rootfs</span>''', then compiling rootfs again will directly skip the compilation process and will not restart the compilation. When compiling the image, it will also go e) Click &quot;OK&quot; to '''<span class="mark">external/cache/rootfs</span>''' to find out whether it has If there is rootfs available in configure the cache, use it directly, which can save a lot of download and compilation time.application</p></li></ol>
[[File:plus5-img607.png]]</ol><span idol start="compile2" style="list-style-linuxtype: lower-imagealpha;"><li><p>Turn on the network discovery of Windows 10</spanp>== Compile linux image ==<p>a) Enter the &quot;Control Panel&quot; of Windows 10</p><p>b) Select &quot;Network and Internet&quot; in the Control Panel</p><p>c) Then open &quot;Network and Sharing Center&quot;</p><p>d) Click | &quot;Advanced Sharing Settings&quot;</p><p>e) Turn on '''&quot;Enable Network Discovery&quot;''' and '''&quot;Enable File and Printer Sharing&quot;'''</p><p>f) Click &quot;Save Changes&quot; to save the Windows 10 network discovery configuration</p></li>
[[File:plus5-img608.png]]</ol ></ol><ol start="5" style="list-style-type: decimal;"><li><p>Run After the build.sh scriptsetting is completed, remember enter \\OpenWrt in the address bar of the resource manager to add sudo permission</p><p>test@test:~/orangepi-build$ '''sudo ./build.sh'''</p></li><li><p>Select '''<span class="mark">Full OS image for flashing</span>'''access the shared directory, the user name is root, then press Enter</p>and the password is the password set by the development board host</li></ol>
[[File:plus5-img609.png]]<div class/ol><span id="figurezerotier-instructions"></span>
[[File:./images/media/image644.png|576x128px|选区_242]]== Zerotier Instructions ==
</div><ol start{| class="3wikitable" style="listbackground-style-typecolor:#ffffdc;width: decimal800px;">|-| <libig><p>Then select '''The OpenWRT system has pre-installed the zerotier client. After creating a virtual LAN on the zerotier official website, the model of client can directly join it through the development boardNetwork ID. The specific operation is as shown below.'''</pbig><div class="figure">|}
<ol style="list-style-type: decimal;"><li><p>Log in to zerotier official website [https://my.zerotier.com/network '''https://my.zerotier.com/network'''], register and log in and click Network-&gt;Create A Network to create a virtual local area network</p><p>[[File:plus5-img610.png|1500px]]</p><p>[[File:plus5-img611.png|1500px]]</p></li><li><p>Click to enter the network console page, you can set the privacy option to public, so that the added network nodes do not need to be verified</p><p>[[File:plus5-img612.png]]</imagesp></mediali><li><p>The following automatically assigns the address Here you can choose the network segment yourself, here is 172.27.*.*</image629p><p>[[File:plus5-img613.png|576x289px|6]]</p></li><li><p>Enter the following command in the OpenWRT terminal to join the virtual LAN created above, '''<span style="color:#FF0000">where 8286ac0e47d53bb5 is the Network ID of the virtual LAN created above</span>'''</p></li>
</div><{| class="wikitable" style="width:800px;" |-|root@OpenWrt:/li><li><p>Then select the type of rootfs (mainly maintain # '''bullseye/focal/jammyzerotier-one -d''' at present)</p><div class="figure">#Start the zerotier client
[[Fileroot@OpenWrt:./images# '''zerotier-cli join 8286ac0e47d53bb5''' #join the network|}</mediaol><ol start="5" style="list-style-type: decimal;"><li>Enter ifconfig in the terminal and you can see that there is already a new '''ztks54inm2''' device with an IP address of '''172.27.214.213'''</image638.png|575x180px|7]]li>
</div></li><li><p>Then select the type of image</p><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;"><li><p>'''Image with console interface (server)''' Indicates the image of &gt; the server version, which is relatively small</p><|-|root@OpenWrt:/li><li><p># '''Image with desktop environmentifconfig''' Indicates a image with a &gt; desktop, which is relatively large</p><div class="figure">
[[File'''ztks54inm2''' Link encap:./images/media/image639.png|576x75px|选区_245]]Ethernet HWaddr F6:4E:DE:BF:D8:52
</div></li></ol></li><li><p>If you are compiling the image of the server version, you can also choose to compile the Standard version or the Minimal version. The pre-installed software of the Minimal version will be much less than that of the Standard version ::inet addr:'''(please do not choose the Minimal version if there is no special requirement, because many things are not pre-installed by default172. Some functions may not be available)27.214.213'''</p><div class="figure">Bcast:172.27.255.255 Mask:255.255.0.0
[[File:.:inet6 addr: fe80::e82f:d0ff:fe5a:867e/images/media/image640.png|569x77px|选区_397]]64 Scope:Link
</div></li><li><p>If you are compiling the image of the desktop version, you need to select the type of desktop environment. Currently, Ubuntu Jammy mainly maintains XFCE and Gnome desktops, Ubuntu Focal only maintains XFCE desktops, and Debian Bullseye mainly maintains XFCE and KDE desktops</p><div class="figure">::UP BROADCAST RUNNING MULTICAST MTU:2800 Metric:1
[[File:./images/media/image641.png|575x99px|Selection_001]]:RX packets:18 errors:0 dropped:0 overruns:0 frame:0
</div><p>[[File:./images/media/image642.png|576x74px]]</p><p>You can then select additional packages that need to be installed. Please press the Enter key to skip directly here.</p><p>[[File:./images/media/image643.png|575x264px]]</p></li><li><p>Then it will start to compile the linux image. The general process of compilation is as follows</p><ol style="list-style-typeTX packets: lower-alpha;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li><p>a. Initialize the compilation environment of Ubuntu PC and install the software packages required for the compilation process</p><p>b. Download the source code of u-boot and linux kernel (if cached, only update the code)</p><p>c. Compile u-boot source code and generate u-boot deb package</p><p>d. Compile the linux source code and generate linux-related deb packages</p><p>e. Make the deb package of linux firmware</p><p>f. Make the deb package of the orangepi-config tool</p><p>g. Create a deb package supported by the board</p><p>h. If you are compiling the desktop image, you will also create desktop-related deb packages</p><p>i. Check whether the rootfs has been cached, if not, recreate the rootfs, if it has been cached, directly decompress and use</p><p>j. Install the previously generated deb package into rootfs</p><p>k. Make some specific settings for different development boards and different types of images, such as pre-installing additional software packages, modifying system configuration, etc.</p><p>l. Then make an image file and format the partition, the default type is ext4</p><p>m. Then copy the configured rootfs to the mirrored partition</p><p>n. Then update initramfs</p><p>o. Finally, write the bin file of u-boot into the image through the dd command</p></li></ol></li><li><p>After compiling the image, the following information will be prompted</p><ol style="list-style-type48 errors: lower-alpha;"><li><p>The storage path of the compiled image</p><p>[ o.k. ] Done building [ '''output/images/orangepi5plus_1.0.0_debian_bullseye_linux5.10.110_xfce_desktop/orangepi5plus_1.dropped:0 overruns:0 carrier:0.0_debian_bullseye_linux5.10.110_xfce_desktop.img''' ]</p></li><li><p>Compilation time</p></li></ol></li></ol>
'''[ o.k. ] Runtime [''' '''19 min ]'''::collisions:0 txqueuelen:1000
RX bytes:1720 (1.6 KiB) TX byte81 (8.2 KiB)|}</ol ><ol start="6" style="list-style-type: lower-alphadecimal;"><li><p>Repeat Install the command to compile the imagezerotier client on another device (Ubuntu18.04 is used as an example here), and use execute the following &gt; command to start compiling install, and restart the image directly without selecting &gt; through computer after the graphical interfaceinstallation is complete</pli><p>[ o.k. ] Repeat Build Options [ {| class="wikitable" style="width:800px;" |-|test@ubuntu:~$ '''sudo curl -s https://install./buildzerotier.sh BOARD=orangepi5pluscom | sudo bash''' '''BRANCH|}</ol><ol start=legacy''' '''BUILD_OPT"7" style=image RELEASE=bullseye''' '''BUILD_MINIMAL=no BUILD_DESKTOP=no KERNEL_CONFIGURE=yes''' ]</p"list-style-type: decimal;"></li>After restarting, join the virtual LAN according to the Network ID, and you can also see that the ip address assigned by zerotier has been obtained. At this time, the Ubuntu PC and OrangePi R1 Plus LTS are in the same LAN, and the two can communicate freely</olli>
<span id{| class="linuxwikitable" style="width:800px;" |-development|test@ubuntu:~$ '''sudo zerotier-manual"></span>= Linux Development Manual =cli join 8286ac0e47d53bb5'''
<span id="the-method-of-compiling-the-kernel-source-code-separately-in-the-linux-system-of-the-development-board"></span>== The method of compiling the kernel source code separately in the linux system of the development board ==test@ubuntu:~$ '''ifconfig'''
<ol style="list-style-type: decimal;"><li><p>First download the Linux kernel source code of the development board</p><p>'''orangepi@orangepi:~$ git clone --depth=1 -b orange-pi-5.10-rk3588 https://github.com/orangepi-xunlong/linux-orangepiztks54inm2'''</p></li></ol>: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt; mtu 2800
::inet '''If you have problems downloading the code from github, you can go to the official tool of the development board to download the compressed kernel source code package, then upload it to the linux system of the development board, and then decompress it172.27.47.214'''netmask 255.255.0.0 broadcast 172.27.255.255
[[File:./images/media/image645.png|223x86px]] [[File:./images/media/image646.png|305x87px]]inet6 fe80::5ce1:85ff:fe2b:6918 prefixlen 64 scopeid 0x20&lt;link&gt;
'''The command to decompress the compressed kernel source code package is:''':ether f6:fd:87:68:12:cf txqueuelen 1000 (ethernet)
orangepi@orangepi:~$ '''tar zxf orange-pi-5.10-rk3588.tar:RX packets 0 bytes 0 (0.gz'''0 B)
orangepi@orangepi:~$ '''mv''' '''orange-pi-5.10-rk3588''' '''linux-orangepi''':RX errors 0 dropped 0 overruns 0 frame 0
'''After decompression, please execute the following command to synchronize the source code with github to ensure that the source code is in the latest state:''':TX packets 46 bytes 10006 (10.0 KB)
orangepi@orangepi:~$ '''cd''' '''linux:TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0|}</ol><ol start="8" style="list-orangepi'''style-type: decimal;"><li>Test whether the two terminals can communicate</li>
orangepi{| class="wikitable" style="width:800px;" |-|root@orangepiOpenWrt:~/linux-orangepi$ # '''git pullping 172.27.47.214 -I ztks54inm2'''
<ol start="2" style="list-style-typePING 172.27.47.214 (172.27.47.214): decimal;"><li><p>Then configure the default kernel configuration</p><p>orangepi@orangepi:~$ '''cd linux-orangepi'''</p><p>orangepi@orangepi:~/linux-orangepi$ '''make rockchip_linux_defconfig'''</p></li></ol>56 data bytes
'''The path of''' '''<span class64 bytes from 172.27.47.214: seq="mark">rockchip_linux_defconfig</span>''' '''in the kernel source code is''' '''arch/arm64/configs/'''0 ttl=64 time=1.209 ms
<ol start64 bytes from 172.27.47.214: seq="3" style1 ttl="list-style-type: decimal;"><li><p>Then compile the kernel source code</p><p>orangepi@orangepi:~/linux-orangepi$ '''make -j10'''</p></li><li><p>Then install the kernel module</p><p>orangepi@orangepi:~/linux-orangepi$ '''sudo make modules_install'''</p></li></ol>64 time=1.136 ms
'''The installation path of the kernel module is:/lib/modules'''64 bytes from 172.27.47.214: seq=2 ttl=64 time=1.203 ms
'''After executing the sudo make modules_install command, you can see that there will be an additional kernel module folder under /lib/modules/64 bytes from 172.27.47.214:'''seq=3 ttl=64 time=1.235 ms
orangepi@orangepi5plus:~$ '''ls /lib/modules'''^C
'''5--- 172.1027.110+''' 547.10.110214 ping statistics --rockchip-rk3588
<ol start="5" style="list-style-type: decimal;"><li><p>Then install the kernel image and uInitrd</p><p>orangepi@orangepi:~/linux-orangepi$ '''sudo make install'''</p></li></ol>4 packets transmitted, 4 packets received, 0% packet loss
'''The installation path round-trip min/avg/max = 1.136/1.195/1.235 ms|}</ol><ol start="9" style="list-style-type: decimal;"><li>other common commands of the kernel image and uInitrd is:/bootzerotier</'''li>
{| class="wikitable" style="width:800px;" |-|root@OpenWrt:/# '''After executing the sudo make install command, you can see that there will be zerotier-one more kernel file under /boot/:-d'''#Start the zerotier client
orangepiroot@orangepi5plusOpenWrt:~/orange-pi-5.10-rk3588$ # '''ls /boot/vmlinuz*zerotier-cli status'''#Get address and service status
'''root@OpenWrt:/boot/vmlinuz-5.10.110+# ''' /boot/vmlinuz-5.10.110zerotier-rockchip-rk3588<br /><br />cli join # Network ID'''The file /boot/Image is actually loaded when the system starts, and Image is a copy of #join the vmlinuz file'''network
<ol start="6" style="list-style-typeroot@OpenWrt: decimal;"><li><p>Then install the dtb file into '''/boot/dtb# '''</p><p>orangepi@orangepi:~/linuxzerotier-orangepi$ '''sudo make dtbs_install INSTALL_DTBS_PATH=/boot/dtb/cli leave # Network ID'''</p></li><li><p>Then restart #leave the Linux system and the newly compiled kernel will be loaded</p><p>orangepi@orangepi:~$ '''uname -r'''</p><p>'''5.10.110+'''</p></li></ol>network
<span id="openwrtroot@OpenWrt:/# '''zerotier-system-instructions"></span>= OpenWRT system instructions =cli listnetworks''' #list networks
<span id="openwrt-version"></span>== OpenWRT version =OPENWRT_DEVICE_REVISION=&quot;v0&quot;
{| classOPENWRT_RELEASE="wikitable"|-| style="text-align: left&quot;"| '''OpenWRT''' '''version'''| style="text-align: left;"| '''kernel version'''|-| style="text-align: left;"| '''v22OpenWrt 22.03.4'''| style="textr20123-align: left38ccc47687&quot;"| '''Linux5.10.110'''
|}
</ol>
<span id="compilation-method-of-openwrt-source-code"></span>
<span id="openwrt-adaptation"></span>== '''Compilation method of OpenWRT Adaptation =source code''' =
<span id="download-openwrt-source-code"></span>== Download OpenWRT source code == # First execute the following command to download the openwrt-22.03 branch code ::{| class="wikitable" style="width:800px;"
|-
| style="texttest@test:~$ '''sudo apt update''' test@test:~$ '''sudo apt install -aligny git''' test@test: left;"| ~$ '''Functiongit clone https://github.com/orangepi-xunlong/openwrt.git -b openwrt-22.03'''| } <ol start="2" style="textlist-style-aligntype: leftdecimal;"><li>After the OpenWRT code is downloaded, the following files and folders will be included</li> {| '''OpenWRT'''class="wikitable" style="width:800px;"
|-
| test@test:~/openwrt$ '''ls''' BSDmakefile &nbsp;&nbsp;&nbsp; Config.in &nbsp;&nbsp;&nbsp; include &nbsp;&nbsp;&nbsp; Makefile &nbsp;&nbsp;&nbsp; README.md &nbsp;&nbsp;&nbsp; scripts &nbsp;&nbsp;&nbsp; toolchain Config &nbsp;&nbsp;&nbsp; feeds.conf.default &nbsp;&nbsp;&nbsp; LICENSE &nbsp;&nbsp;&nbsp; package &nbsp;&nbsp;&nbsp; rules.mk &nbsp;&nbsp;&nbsp; target &nbsp;&nbsp;&nbsp; tools|}</ol><span id="compile-openwrt-source-code"></span> == Compile OpenWRT source code == <ol style="textlist-alignstyle-type: leftdecimal;"| '''USB2><li><p>First install the following dependent packages (currently only tested on Ubuntu 20.0x2'''04 to compile the following dependent packages, if you compile on other versions of the system, please install the dependent packages by yourself according to the error message)</p>| <ol style="textlist-style-aligntype: leftlower-alpha;"><li>Method 1: The command to install dependent packages using a &gt; script is as follows:</li> {| '''OK'''class="wikitable" style="width:800px;"
|-
| style="text-aligntest@test: left;"| ~/openwrt$ '''USB3sudo .0x2/install_dep.sh'''| }</ol> <ol start="2" style="textlist-alignstyle-type: leftlower-alpha;"><li>Method 2: Install the dependency package directly using the following command</li> {| '''OK'''class="wikitable" style="width:800px;"
|-
| style="text-align: left;"| '''USB Type-C 3.0'''| style="text-aligntest@test: left;"| ~/openwrt$ '''OKsudo apt update'''|-| style="text-aligntest@test: left;"| ''~/openwrt$ '3pin debugging serial port'''| style="textsudo apt install -align: left;"| '''OKy ack antlr3 asciidoc autoconf \'''|-| style="text-align: left;"| '''TF card start'''| style="textautomake autopoint binutils bison build-align: left;"| '''OKessential \'''|-| style="text-align: left;"| '''SPIFlash+NVMe SSD Boot'''| style="textbzip2 ccache cmake cpio curl device-align: left;"| '''OK'''|-| style="text-align: left;"| '''SPIFlash boots the complete system'''| style="texttree-align: left;"| '''OKcompiler fastjar \'''|-| style="text-align: left;"| '''2.5G PCIe network port X2'''| style="textflex gawk gettext gcc-align: left;"| '''OK'''|-| style="text-align: left;"| '''Network port status light'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''led light'''| style="textmultilib g++-align: left;"| '''OKmultilib git gperf haveged \'''|-| style="text-align: left;"| '''FAN fan interface'''| style="texthelp2man intltool libc6-align: left;"| '''OK'''|dev-| style="texti386 libelf-align: left;"| '''AX200dev libglib2.0-WIFI'dev \''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''AX200-WIFI'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''eMMC extension interface'''| style="text-align: left;"| '''OK'''|}
<span id="the'''libgmp3-firstdev libltdl-startdev libmpc-todev libmpfr-expand-rootfs"></span>== The first start to expand rootfs ==dev \'''
<ol style="list-style-type: decimal;"><li><p>When the OpenWRT system is started for the first time, the '''resizelibncurses5-rootfs.sh''' script will be executed to expand the rootfs, and it will automatically restart after the expansion is completed</p></li><li><p>After logging in to the system, you can use the '''df dev \libncursesw5-dev libreadline-h''' command to view the size of rootfs. If it is consistent with the actual capacity of the storage device (TF card, eMMC or NVME SSD), it means that the automatic expansion is running correctly</p><p>root@OpenWrt:~# df dev libssl-h</p><p>Filesystem Size Used Available Use% Mounted on</p><p>'''/dev/root 14.8G 14.7G 91.6M 99% /\'''</p><p>tmpfs 495.5M 6.1M 489.4M 1% /tmp</p><p>tmpfs 512.0K 0 512.0K 0% /dev</p><p>/dev/root 14.8G 14.7G 91.6M 99% /opt/docker</p></li></ol>
<span id="how'''libtool lrzsz mkisofs msmtp nano ninja-tobuild p7zip p7zip-log-in-to-the-system"></span>== How to log in to the system ==full \'''
<span id="login'''patch pkgconf python2.7 python3 python3-via-serial-port"></span>=== Login via serial port ===pyelftools \'''
<ol style="list-style-type: decimal;"><li><p>First, to use the debugging serial port, please refer to the chapter on how to use the debugging serial port</p></li><li><p>The OpenWrt system will automatically log in as the '''rootlibpython3-dev qemu-utils rsync scons squashfs-tools \''' user by default, and the display interface is as follows</p><div class="figure">
[[File:./images/media/image647.png|576x290px|9D229F96'''subversion swig texinfo uglifyjs upx-887B-4c6b-8E6E-681C9994DFA0]]ucl unzip \'''
'''vim wget xmlto xxd zlib1g-dev'''|}</divol></li></ol><ol start="2" style="list-style-type: decimal;"><li>Then execute '''./scripts/feeds update -a''' and '''./scripts/feeds install -a''' to download dependent packages</li>
<span id{| class="logwikitable" style="width:800px;" |-in|test@test:~/openwrt$ '''./scripts/feeds update -to-the-system-via-ssh"></span>=== Log in to the system via SSH ===a'''
test@test:~/openwrt$ '''Please note that in the OpenWrt system of Orange Pi 5 Plus, the network port near the typeC power interface is configured as a WAN port by default, and the network port near the HDMI port is configured as ./scripts/feeds install -a LAN port by default.'''|}</ol><ol start="3" style="list-style-type: decimal;"><li><p>First connect the LAN port of the board Then choose to use the network port configuration file of the computer with a network cable, so that the network port of the computer can obtain an IP address through DHCPOrangePi 5 Plus</p></liol style="list-style-type: lower-alpha;"><li>Compile the image that supports TF card, eMMC, and NVMe startup, &gt; and select the following configuration<p/li>The LAN port IP of the default board is set to '''<span {| class="markwikitable">192.168.2.1<style="width:800px;" |-|test@test:~/span>openwrt$ ''', so the computer can obtain the IP address starting with cp configs/orangepi-5-plus-rk3588_defconfig .config'''|}</ol><span classol start="2" style="marklist-style-type: lower-alpha;">192.168.2<li>Compile the image that supports SPIFlash startup, and select the &gt; following configuration</spanli>{| class="wikitable" style="width:800px;" |-|test@test:~/openwrt$ ''' at this timecp configs/orangepi-5-plus-rk3588-spi_defconfig .config'''|}</pol></li></ol><liol start="4" style="list-style-type: decimal;"><pli>If the computer is installed with an Ubuntu system, you can Then execute the following command to log in to make the system through SSH. By default, you can log in directly without a passwordconfiguration take effect</pli><p>{| class="wikitable" style="width:800px;" |-|test@ubuntutest:~/openwrt$ '''ssh root@192.168.2.1make defconfig'''|}</pol></liol start="5" style="list-style-type: decimal;"><li><p>After successfully logging in Execute the following command to start compiling the system, the display is as shown in the figure belowopenwrt source code</pli><p>[[File{| class="wikitable" style="width:800px;" |-|test@test:.~/images/media/image648.pngopenwrt$ '''make V=s'''|553x330px]]}</pol></liol start="6" style="list-style-type: decimal;"><li><p>If After the computer compilation is installed with Windows systemcomplete, you can log in by referring to the method introduced in path where the section of SSH remote login to the development board under Windows.</p>image is generated is:</li></ol>
<span id{| class="logwikitable" style="width:800px;" |-in|test@test:~/openwrt$ '''tree -to-the-luci-management-interface"><L 1 bin/targets/rockchip/armv8/span>=== Log in to the LuCI management interface ==='''
'''Please note that the OpenWRT system configures the network port near the Type-C power port as a WAN port by default, and the network port near the HDMI port as a LAN port by default.'''bin/targets/rockchip/armv8/
[[File:├── config./images/media/image649.png|357x139px]]buildinfo
# First connect the LAN port of the board to the network port of the computer with a network cable, so that the network port of the computer can obtain an IP address through DHCP# The LAN port IP of the default board is set to '''192├── feeds.168.2.1''', so the computer can obtain the IP address starting with '''192.168.2''' at this time# Enter the IP address '''192.168.2.1''' in the browser on the computer to log in to the LuCI interfacebuildinfo
<div class="figure">├── openwrt-rockchip-armv8-xunlong_orangepi-5-plus-ext4-sysupgrade.img.gz
[[File:./images/media/image650.png|552x135px|2023├── openwrt-rockchip-04armv8-21 14xunlong_orangepi-415-42 的屏幕截图]]plus.manifest
</div><ol start="4" style="list├── openwrt-stylerockchip-type: decimal;"><li><p>'''The OpenWrt system does not set a password by default''', so just click the '''<span class="mark">login</span>''' button. After successful login, the interface is displayed as shown in the figure below</p><p>[[File:armv8-xunlong_orangepi-5-plus-squashfs-sysupgrade./images/media/image651img.png|552x295px]]</p></li></ol>gz
<span id="log-in-to-the-terminal-through-the-luci-management-interface"></span>=== Log in to the terminal through the LuCI management interface ===├── packages
'''Please note that the OpenWRT system configures the network port near the Type-C power port as a WAN port by default, and the network port near the HDMI port as a LAN port by default├── profiles.'''json
[[File:./images/media/image649.png|357x139px]]├── sha256sums
# First connect the LAN port of the board to the network port of the computer with a network cable, so that the network port of the computer can obtain an IP address through DHCP# The LAN port IP of the default board is set to '''192└── version.168.2.1''', so the computer can obtain the IP address starting with '''192.168.2''' at this time# Enter the IP address '''192.168.2.1''' in the browser on the computer to log in to the LuCI interfacebuildinfo
<div class="figure">
[[File:.1 directory, 9 files|}</images/media/image650.png|552x135px|2023ol><span id="instructions-for-using-04the-21 14android-4112-42 的屏幕截图]]system"></span>
</div><ol start="4" style="list-style-type: decimal;"><li>Select &quot;'''Terminal'''&quot; in Instructions for using the &quot;Android 12 system'''Service'''&quot; column of the navigation bar and click to enter</li></ol>=
[[File:.<span id="supported-android-versions"></images/media/image652.png|576x227px]]span>== Supported Android versions ==
<ol start{| class="5wikitable" style="listwidth:800px;"|-| style="text-typealign: decimalleft;">| '''Android version'''<li><p>At this time, the terminal interface is as shown in the figure below</p><p>[[File| style="text-align:./images/media/image653.pngleft;"|576x407px]]</p></li>'''kernel version'''<li><p>Enter the user name root to log in</p>|-<p>[[File| style="text-align:./images/media/image654.pngleft;"|575x334px]]</p></li></ol>'''Android 12''' <span id| style="usetext-ipalign: left;"| '''Linux5.10'''|-address| style="text-portalign: left;"| '''Android 12 Box'''| style="text-number-to-log-in-to-the-terminalalign: left;"></span>| '''Linux5.10'''=== Use IP address + port number to log in to the terminal ===|}
'''Please note that the OpenWRT system configures the network port near the Type<span id="android-C power port as a WAN port by default, and the network port near the HDMI port as a LAN port by default.'''function-adaptation"></span>== Android function adaptation ==
[[File{| class="wikitable" style="width:./images/media/image649.png800px;"|357x139px]]- # First connect the LAN port of the board to the network port of the computer with a network cable, so that the network port of the computer can obtain an IP address through DHCP# The LAN port IP of the default board is set to | style="text-align: left;"| '''192.168.2.1Function''', so the computer can obtain the IP address starting with | style="text-align: left;"| '''192.168.2Android 12''' at this time# Then enter | style="text-align: left;"| '''192.168.2.1:7681Android12 Box''' in the browser to log in to the OpenWRT terminal|-<div class| style="figuretext-align: left;"> [[File:./images/media/image655.png|553x296px|2023'''HDMI TX1 Display -04-21 14-54-26 的屏幕截图]]1080p''' </div><span id| style="howtext-to-modify-the-ip-address-of-the-lan-port-through-the-command-linealign: left;"></span>| '''OK'''| style== How to modify the IP address of the LAN port through the command line == # In the OpenWrt system, a command line tool uci is provided, which can easily modify, add, delete and read the content in the configuration file. For details, please refer to the official document# First use the following command to obtain the network configuration, the corresponding configuration file is "text-align: left;"| '''/etc/config/networkOK''', you can see that the value of '''network.lan.ipaddr|-| style="text-align: left;"| ''' is '''192.168.2.1HDMI TX1 Display - 4K 120HZ''' root@OpenWrt| style="text-align:~# left;"| '''uci show networkOK''' ... network.lan| style=interface"text-align: left;"| '''OK'''|-network.lan.device| style="text-align: left;"| ''br'HDMI TX1 Display -lan8K 60HZ''network.lan.proto| style="text-align: left;"| 'static' 'OK''network.lan.ipaddr'| style="text-align: left;"| ''192.168.2.1'OK'''|-network.lan.netmask| style="text-align: left;"| '''HDMI TX1 Audio'255.255.255.0' network.lan.ip6assign='60.… <ol start="3" | style="listtext-style-typealign: decimalleft;"><li>Then enter the following command to modify the item | '''network.lan.ipaddrOK'''</li></ol> root@OpenWrt| style="text-align:~# left;"| '''OK''uci set network.lan.ipaddr'|-| style="text-align: left;"| ''192.168.100.1'HDMI TX2 Display - 1080p''' <ol start="4" | style="listtext-style-typealign: decimalleft;"><li>Then enter the following command to complete the submission, that is, write to the configuration file</li></ol> root@OpenWrt:~# | '''uci commitOK''' If the IP address in red font is consistent with the one to be set, it means that the modification is successful root@OpenWrt| style="text-align:~# left;"| '''cat /etc/config/networkOK'''|-| style="text-align: left;"| '''...HDMI TX2 Display - 4K 120HZ''' config interface 'lan' option device | style="text-align: left;"| 'br-lanoption proto 'staticOKoption netmask '255.255.255.0option ip6assign | style="text-align: left;"| '60'''option ipaddr '192.168.100.1'OK'''|-... <ol start="5" | style="listtext-style-typealign: decimalleft;"><li>Restart the network through ubus, please refer to the official document for the usage instructions of ubus</li></ol> root@OpenWrt:~# '''ubus call network restart| '''HDMI TX2 Display - 8K 60HZ''' <ol start="6" | style="list-styletext-typealign: decimalleft;"><li><p>At this point, enter the command and you can see that the IP of the LAN port is | '''OK''192.168.100.1'''</p><p>root@OpenWrt| style="text-align:~# left;"| '''ifconfig br-lanOK'''</p><p>br|-| style="text-lan Link encap:Ethernet HWaddr FE:55:13:A3:EF:E7</p><p>inet addralign:left;"| ''''192.168.100.1HDMI TX2 Audio''' Bcast:192.168.100.255 Mask:255.255.255.0</p><p>inet6 addr| style="text-align: fd60:c4cd:1033::1/60 Scope:Global</p>left;"| '''OK'''<p>UP BROADCAST MULTICAST MTU| style="text-align:1500 Metric:1</p>left;"| '''OK'''<p>RX packets:0 errors:0 dropped:0 overruns:0 frame:0</p>|-<p>TX packets| style="text-align:3 errorsleft;"| '''HDMI RX display'''| style="text-align:0 dropped:0 overruns:0 carrier:0</p>left;"| '''OK'''<p>collisions| style="text-align:0 txqueuelen:1000</p><p>RX bytes:0 (0.0 B) TX bytes:370 (370.0 B)</p></li></ol>left;"| '''OK'''|-<span id| style="howtext-to-modify-the-root-passwordalign: left;"></span>| '''HDMI RX Audio'''| style== How to modify the root password =="text-align: left;"| '''OK''' <span id| style="modifytext-via-command-linealign: left;"></span>| '''OK'''|-| style=== Modify via command line === # First enter passwd root on the command line of the system, and the following prompt message will appear. At this time, you can enter the password you want to set, and press the Enter key to confirm root@OpenWrt"text-align:/# left;"| '''passwd rootUSB2.0X2''' | style="text-align: left;"| '''Enter new UNIX password:OK''' <ol start="2" | style="listtext-style-typealign: decimalleft;">| '''OK'''<li>Then you will be prompted to re|-enter the password. At this time, enter the password again to confirm and press Enter</li></ol> | style="text-align: left;"| '''Retype password:2.5G PCIe network port X2''' <ol start="3" | style="list-styletext-typealign: decimalleft;"><li>The display of successful modification is as follows</li></ol> | '''passwd: password for root changed by rootOK''' <span id| style="modifytext-through-thealign: left;"| '''OK'''|-luci-management-interface"></span>| style=== Modify through the LuCI management interface ==="text-align: left;"| '''2.5G PCIe network port light''' <ol | style="list-styletext-typealign: decimalleft;"><li><p>First refer to the login LuCI management interface to enter the OpenWRT management interface</p></li>| '''OK'''<li><p>Then follow the steps below to change the password</p><ol | style="listtext-style-typealign: lower-alphaleft;">| '''OK'''|-<li><p>Find the &quot| style="text-align: left;"| '''SystemDebug serial port'''&quot; option in the navigation bar and click</p></li><li><p>In the column options below the system, select &quot| style="text-align: left;"| '''Management &gt; RightsOK'''&quot; and click</p><p>[[File| style="text-align:./images/media/image656.pngleft;"|552x256px]]</p></li><li><p>Select the &quot;'''Router PasswordOK'''&quot; option on the Tab page</p><p>[[File|-| style="text-align:./images/media/image657.pngleft;"| '''RTC'''|552x211px]]</p></li></ol></li><li><p>Modify and save the router password</p><ol style="list-styletext-typealign: lower-alphaleft;">| '''OK'''<li><p>a. Enter the password you set in the &quot| style="text-align: left;"| '''PasswordOK'''&quot; and &quot|-| style="text-align: left;"| '''Confirm PasswordFAN interface'''&quot; dialog boxes (if you are not sure whether the password is entered correctly, you can click the &quot;*&quot; icon behind the dialog box to display the input characters)</p><p>b. Click &quot| style="text-align: left;"| '''SaveOK'''&quot; to save the newly modified password</p><p>[[File| style="text-align:./images/media/image658.pngleft;"|553x230px]]</p></li></ol></li></ol> '''Note: In the &quot;Password&quot; and &quot;Confirm Password&quot; dialog boxes, the passwords entered twice must be consistent.'OK'''|-<ol start="4" | style="listtext-style-typealign: decimalleft;"><li><p>After the password is changed successfully, a pop-up box will pop up saying &quot;| '''The system password has been changed successfullyeMMC extension interface'''&quot;. At this time, a password is required to log in to OpenWRT</p><p>[[File:./images/media/image659.png|563x222px]]</p></li></ol> <span id| style="usbtext-interface-test-1align: left;"></span>| '''OK'''== USB interface test == <span id| style="mounttext-thealign: left;"| '''OK'''|-usb| style="text-storage-device-under-the-command-linealign: left;"></span>=== Mount the USB storage device under the command line === # First insert the U disk into the USB interface of the Orange Pi development board# Execute the following command, if you can see the output of sdX, it means that the U disk is recognized successfully root@OpenWrt:~# | ''''cat /proc/partitions | grep &quot;sd*&quot;AP6275P-WIFI''' major minor #blocks name 8 0 15126528 | style="text-align: left;"| '''sdaOK''' <ol start="3" | style="listtext-style-typealign: decimalleft;"><li>Use the mount command to mount the U disk to <span class| '''OK'''|-| style="marktext-align: left;">/mnt</span>, and then you can view the files in the U disk</li></ol> root@OpenWrt:~# | ''''mount /dev/sda /mnt/AP6275P-BT''' root@OpenWrt| style="text-align:~# left;"| '''ls /mnt/OK''' test.txt <ol start| style="4text-align: left;" | '''OK'''|-| style="listtext-style-typealign: decimalleft;"><li>After mounting, you can view the capacity usage and mount point of the U disk through the | '''AX200-WIFI'''| style="text-align: left;"| '''<span classstyle="markcolor:#FF0000">df -hNO</span> command</li'''| style="text-align: left;"| '''<span style="color:#FF0000">NO</olspanroot@OpenWrt:~# '''df |-h | grep &quot;sd&quotstyle="text-align: left;"| '''AX200-BT''' /dev/sda 14.4G 187.2M 14.2G 1% /mnt <span id| style="mounttext-the-usb-storage-device-on-the-luci-management-interfacealign: left;"| '''<span style="color:#FF0000">NO</span>'''| style=== Mount the USB storage device on the LuCI management interface === "text-align: left;"| '''<ol span style="list-style-typecolor: decimal;#FF0000">NO<li><p>First connect the U disk (or other storage device) to the development board via USB2.0</p></li/span>'''<li><p>Then follow the login LuCI management interface to enter the LuCI management interface</p></li>|-<li><p>Then in the LuCI management interface, click &quot| style="text-align: left;System "| '''AX210-&gt; Mount Point&quot; to enter the configuration interface of the mount point</p>WIFI'''<p>[[File| style="text-align:./images/media/image660.pngleft;"|553x256px]]'''</pspan style="color:#FF0000">NO</lispan>'''| style="text-align: left;"| '''<li><p>Then follow the steps below to add a mount point</p><ol span style="list-style-typecolor: lower-alpha;#FF0000"><li>NO<p/span>Find &quot;'''Mount Point'|-| style="text-align: left;"| ''&quot; at the bottom of the mount point &gt; 'AX210-BT'''global setting interface| style="text-align: left;"| '''</pspan style="color:#FF0000">NO</lispan>'''<li><p>Under the mount point, select the &quot| style="text-align: left;Add&quot; button and click Enter"| '''</pspan style="color:#FF0000">NO</li></olspan>'''</li></ol>|- [[File:./images/media/image661.png|553x163px]]style="text-align: left;"| '''RTL8852BE-WIFI''' <ol start="3" | style="list-styletext-typealign: lower-alphaleft;">| '''OK'''<li><p>Then the following pop| style="text-up interface will pop up</p><p>[[Filealign:./images/media/image662.pngleft;"| '''OK'''|553x288px]]</p></li>-<li><p>Then you can start to mount the storage device</p></li><li></li><li></li><li></li><li><p>a) Check &quot| style="text-align: left;"| '''EnabledRTL8852BE-BT'''&quot;</p><p>b) Select the actual connected device /dev/sda in the UUID column of general settings (choose according to your own device)</p><p>c) Select &quot| style="text-align: left;"| '''CustomOK'''&quot; in the mount point column, and fill in the target directory to be mounted. Here, take the '''<span class| style="marktext-align: left;">/mnt</span>| ''' directory as an example, and press OK'''Enter''' to confirm</p><p>d) Then click the &quot;|-| style="text-align: left;"| '''SaveRecovery button'''&quot; button in the lower right corner</p></li></ol> [[File| style="text-align:./images/media/image663.pngleft;"|553x214px]]'''OK''' <ol start="5" | style="listtext-style-typealign: decimalleft;"><li>Then you will return to the mount point global settings page, click &quot;| '''Save and ApplyOK'''&quot; in the lower left corner of the page to make the mount point take effect</li></ol> [[File:./images/media/image664.png|535x325px]] <ol start="6" -| style="list-styletext-typealign: decimalleft;"><li>After saving, you can see the &quot;| '''Type-C interface USB3.0 function'mounted file system'''&quot;, the storage device has been mounted successfully</li></ol> [[File:./images/media/image665.png|553x201px]] <span idstyle="howtext-to-use-e-key-pcie-wireless-network-cardalign: left;"></span>| '''OK'''| style== How to use E"text-Key PCIe wireless network card ==align: left;"| '''OK'''|-# The PCIe wireless network card models currently compatible with the OpenWRT image are as follows: {| classstyle="wikitabletext-align: left;"| '''Type-C interface ADB function'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C interface DP display function'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C interface DP audio playback'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''USB3.0 Hub'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''switch button'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''serial numberinfrared function'''| style="text-align: left;"| '''modelOK'''| '''Physical picture'''style="text-align: left;"| '''Supported OSOK'''
|-
| style="text-align: left;"| '''led light'''| style="text-align: left;"| '''1OK'''| style="text-align: left;"| '''AX200OK'''|-| style="text-align: left;"| '''(PCIE+ USB接口)Onboard MIC'''| style="text-align: left;"| '''OK'''| ! [[./images/med%20ia/image310.pngstyle="text-align: left;"| '''OK'''|./images/med%20ia/image310.png]]-| style="text-align: left;"| '''Debianheadphone playback'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''UbuntuOK'''|-| style="text-align: left;"| '''OpenWRTheadphone recording'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OPi OS ArchOK'''|-| style="text-align: left;"| '''SPK Horn'''| 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;"| '''240PIN I2C'''| style="text-align: left;"| '''AX210''' '''(PCIE+ USB接口)OK''' | [[Filestyle="text-align:.%20/images/media/i%20mage311.png]]{wi dth=“1.06875in” h eight=“1.45in”}left;"| '''Debian''' '''Ubuntu''' '''OpenWRT'OK'' '''OPi OS Arch''' 
|-
| style="text-align: left;"| '''340PIN SPI'''| style="text-align: left;"| '''R TL8852BEOK''' | style="text-align: left;"| '''(PCIE+ USB接口)OK'''|-| ! [[./images/med%20ia/image312.png|./images/med%20ia/image312.png]]style="text-align: left;"| '''Debian40PIN UART''' | style="text-align: left;"| '''UbuntuOK''' | style="text-align: left;"| '''Not Supported OpenWRTOK'''|-| style="text-align: left;"| '''Android1240PIN PWM''' | style="text-align: left;"| '''OPi OS ArchOK''' | style="text-align: left;"| '''OPi OS DroidOK'''|-|} <span idstyle="howtext-to-create-wifi-hotspotalign: left;"></span>=== How to create WIFI hotspot === | '''Note that AX200 and AX210 currently only support hotspots in the 2.4G frequency band. In the 5G frequency band mode, there will be an error that the modified configuration of the wireless network TF card cannot be applied.start''' <ol | style="listtext-align: left;"| '''OK'''| style="text-typealign: decimalleft;">| '''OK'''<li><p>First insert the PCIe wireless network card into the M.2 E|-KEY port of the development board, and then connect the Type| style="text-C power supply to power up the development board.</p><p>[[Filealign:./images/media/image666.pngleft;"|347x149px]]</p></li><li><p>After the system startup is complete, click '''<span classSPI Flash+NVME solid state boot'''| style="mark">Network text-&gtalign: left; Wireless</span>"| '''OK''' to enter the wireless WiFi configuration interface.</p><p>[[File| style="text-align:./images/media/image667.pngleft;"|553x155px]]</p></li><li><p>The default wireless configuration of the OpenWRT system is '''MasterOK''' mode. Here, for the convenience of the next operation, we will remove the default wireless connection.</p><p>[[File|-| style="text-align:./images/media/image668.pngleft;"|517x162px]]</p></li><li><p>Then click '''<span classOV13850 camera'''| style="marktext-align: left;">Save</span>| '''OK''' in the lower right corner of the page to make the configuration take effect.</p><p>[[File| style="text-align:./images/media/image669.pngleft;"|553x179px]]</p></li><li><p>Then click the '''<span class="mark">Add</span>OK''' button on the right.</p><p>[[File:./images/media/image670.png|553x138px]]</p></li>-<li><p>In the pop| style="text-up tab page align: left;"| '''<span classOV13855 camera'''| style="marktext-align: left;">Device Configuration</span>| '''OK''', we set the parameters as shown in the figure below.</p><p>[[File| style="text-align:./images/media/image671.pngleft;"|552x268px]]</p></li><li><p>Then in '''<span classOK'''|-| style="mark">Interface Configuration text-&gtalign: left; General Settings</span>"| ''', set the mode to GPU'''<span class| style="marktext-align: left;">Access Point AP</span>| ''', set the OK'''<span class| style="marktext-align: left;">ESSID</span>| ''' (wireless network name) to OK'''<span class|-| style="marktext-align: left;">OpenWrt</span>| ''', and specify the network as VPU'''<span class| style="marktext-align: left;">lan</span>| '''</p><p>[[File:./images/media/image672.png|553x234px]]</p></li><li><p>Then in OK'''<span class| style="mark">Interface Configuration text-&gtalign: left; Wireless Security</span>"| ''', select OK''' WPA2|-PSK''' as the encryption algorithm| style="text-align: left; set the key (wireless password) to "| '''passwordNPU'''</p><p>[[File| style="text-align:./images/media/image673.pngleft;"|534x224px]]</p></li><li><p>After the above settings are completed, click '''<span class="mark">Save</span>OK''' in the lower right corner of the page, and then exit the tab page</p><p>[[File| style="text-align:./images/media/image674.pngleft;"|553x303px]]</p></li><li><p>Then click '''<span class="mark">Save and Apply</span>OK''' in the lower right corner of the page and wait for the configuration to be applied.</p><p>[[File:./images/media/image675.png|553x216px]]</p></li>-<li><p>The display interface of successfully creating a hotspot is shown in the figure below</p><p>[[File| style="text-align:./images/media/image676.pngleft;"|515x266px]]</p></li><li><p>Then use the mobile phone or computer to search for the WiFi corresponding to the SSID to connect. After the connection is successful, as shown in the figure below</p>'''MIPI LCD display'''<p>[[File:./images/media/image677.png|247x156px]]</p></li></ol> <span idstyle="howtext-to-connect-to-wifi-hotspotalign: left;"></span>| '''OK'''=== How to connect to WIFI hotspot === <ol | style="listtext-style-typealign: decimalleft;">| '''OK'''<li><p>Insert the PCIe wireless network card into the M.2 E|-KEY port of the development board, and then connect the Type| style="text-C power supply to power the development board.</p><p>[[Filealign:./images/media/image666.pngleft;"|347x149px]]</p></li><li><p>After the system startup is complete, click '''<span classMIPI LCD Touch'''| style="mark">Network text-&gtalign: left; Wireless</span>"| '''OK''' to enter the configuration wireless WiFi interface.</p><p>[[File| style="text-align:./images/media/image667.pngleft;"|553x155px]]</p></li><li><p>The default wireless configuration of the OpenWRT system is '''MasterOK''' mode. Here, for the convenience of the next operation, we will remove the default wireless connection.</p><p>[[File|-| style="text-align:./images/media/image668.pngleft;"|520x162px]]</p></li><li><p>Then click '''<span class="mark">Save</span>MIPI LCD backlight''' in the lower right corner of the page to make the configuration take effect.</p><p>[[File| style="text-align:./images/media/image669.pngleft;"|520x179px]]</p></li><li><p>Then click the '''<span class="mark">Scan</span>OK''' button to scan the surrounding WiFi hotspots.</p><p>[[File| style="text-align:./images/media/image678.pngleft;"|541x225px]]</p></li><li><p>Then the following window will pop up to display the available WiFi hotspots. At this time, click the '''<span class="mark">Join Network</span>OK''' button on the right side of the WiFi hotspot you want to connect to connect to the WiFi hotspot.</p><p>[[File|-| style="text-align:./images/media/image679.pngleft;"|553x89px]]</p></li><li><p>Then an interface for connecting to a WiFi hotspot will pop up. We enter the password of the hotspot as shown in the figure below, and then click the '''<span class="mark">Submit</span>HDMI CEC function''' button.</p><p>[[File| style="text-align:./images/media/image680.pngleft;"|552x135px]]</p></li><li><p>Then the following interface will pop up, click the '''<span classstyle="markcolor:#FF0000">SaveNO</span>''' button in the lower right corner.</p><p>[[File| style="text-align:./images/media/image681.pngleft;"|553x237px]]</p></li><li><p>Finally, you will return to the main interface of wireless configuration, click '''<span class="mark">Save and Apply</span>OK''' and wait for the configuration to be applied.</p><p>[[File:./images/media/image682.png|544x252px]]</p></li><li><p>After successfully connecting to the WiFi hotspot, the interface is displayed as shown in the figure below.</p><p>[[File:./images/media/image683.png|547x232px]]</p></li></ol>} <span id="installinghow-packagesto-viause-the-commandusb-wireless-network-linecard"></span>== Installing packages via the command line ==
<span id="install-via-opkg-in-the-terminal"></span>=== Install via opkg in How to use the terminal =USB wireless network card ==
# Update Currently, the list of available packagesUSB wireless network card models compatible with the Android image are as follows:
root@OpenWrt:/# :{| class="wikitable" style="width:800px;"|-| style="text-align: left;"| '''Chip model'''| style="text-align: left;"| '''Function'''| style="text-align: left;"| '''VID&amp;PID'''| style="text-align: left;"| '''Adaptation'''|-| style="text-align: left;"| '''RTL8723BU'''| style="text-align: left;"| '''2.4G WIFI+BT4.0'''| style="text-align: left;"| '''0bda:b720'''| style="text-align: left;"| '''Support WIFI and Bluetooth function, does not support hotspot'''|-| style="text-align: left;"| '''RTL8811CU'''opkg| style="text-align: left;"| ''' 2.4G +5G WIFI'''| style="text-align: left;"| '''0bda:c811'''| style="text-align: left;"| '''updateSupport WIFI function and open hotspot'''|}
<ol start="2" style="list-style-type: decimal;">
<li>Get <p>The pictures of the software above two USB wireless network cards are as follows:</p><ol style="list-style-type: lower-alpha;"></li><p>The picture of the RTL8723BU USB wireless network card module is as follows:</olp><div class="figure">
root@OpenWrt[[File:/# '''opkg''' '''list'''plus5-img614.png]]
</div></li><li><p>The picture of the RTL8811CU USB wireless network card module is as follows:</p><p>[[File:plus5-img615.png]]</p></li></ol start="3" style="list-style-type: decimal;"></li><li><p>The test methods of the above two types of USB wireless network cards are the same. First, the USB network card needs to be inserted into the USB interface of the development board.</p></li><li><p>Then, for the connection and test method of WIFI, please refer to the section of WIFI connection test method</p></li><li>Install <p>For the Bluetooth test, please refer to the content of the specified packageBluetooth test method</p></li></ol>
root@OpenWrt:<span id="m.2-how-to-use-e-key-pcie-wifi6bluetooth-module"></# '''opkg''' '''install &lt;package name&gt;'''span>
<ol start="4" style="listM.2 How to use E-style-type: decimal;"><li>Check the installed software</li></ol>Key PCIe WIFI6+Bluetooth module ==
root@OpenWrt:/# '''opkg''' '''list-installed'''The PCIe wireless network card models currently compatible with Android 12 are as follows:
<ol start::{| class="5wikitable" style="list-style-typewidth: decimal800px;"><li>Uninstall the software</li></ol>|-| '''serial number'''| '''model'''| '''Physical picture'''|-| '''1'''| '''RTL8852BE'''
root@OpenWrt:/# '''opkg''' '''remove''' '''&lt;package name&gt;(PCIE+USB interface)'''
<span id="openwrt| [[File:plus5-management-interface-installation-software-package"></span>img616.png]]== OpenWRT management interface installation software package ==|}
::{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''If you need Pay attention to add new software packagesRTL8852BE, you can install them through please do not buy the OpenWRT management interfacemodule shown in the figure below, there will be problems after testing.'''</big>
<span id="view[[File:plus5-theimg616-list-of-available-software-packages-in-the-system"></span>2.png|center]]=== View the list of available software packages in the system ===|}
<ol start="2" style="list-style-type: decimal;"><li><p>First enter insert the PCIe wireless network card into the M.2 E-KEY interface of the package management pagedevelopment board and fix it</p><ol style="list-style-typep>[[File: lowerplus5-alpha;"img617.png]]</p></li><li><p>a. Find Then connect the power supply of the &quot;'''System'''&quot; option in Type-C interface to the navigation bar development board, and click to enterpower on</p></li><li><p>b. In the vertical column options below After the systemstarts, select &quot;'''software package'''&quot; please refer to the section of WIFI connection test method for WIFI connection and click to entertest method</p></li><li><p>For the Bluetooth test, please refer to the content of the Bluetooth test method</olp></li></ol>
[[File:.<span id="wifi-connection-test-method"></images/media/image684.png|552x227px]]span>
<ol start="2" style="list-style-type: decimal;"><li><p>Then the main page of the software package will appear, as shown in the figure below, to obtain the list of available software</p><ol styleWIFI connection test method =="list-style-type: lower-alpha;"><li></li><li><p>a. In the &quot;'''Operation'''&quot; option of the software package, click &quot;'''Update List'''&quot; to get the list of available software packages</p><p>b. On the Tab page, click &quot;'''Available'''&quot; to view the currently available software packages</p><p>c. View the number of currently available packages</p><p>[[File:./images/media/image685.png|553x232px]]</p></li></ol></li></ol>
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''<span idstyle="example-of-installing-software-packagescolor:#FF0000">First of all, please note that there is no WIFI module on the Orange Pi 5 Plus development board, and an external PCIe network card or USB network card is required to use the WIFI function.</span>=== Example of installing software packages ==='''
<ol style="list-style-type: decimal;"><li><p>Take the installation package “'''luci-app-acl'''” as an example</p><ol style="list-style-type: lower-alpha;"><li><p>In For instructions on using the OpenWRT software package management interfaceexternal PCIe network card, click please refer to the &gt; filter dialog box and enter”'''luci-app-acl'''”</p></li><li><p>In the list of software packages, you can see the version, &gt; package size and description information of the &gt; “'''luci-app-acl'''”software package, and then click the &gt; '''&quot;Install&quot;''' button</p><p>[[File:./images/media/image686.png|552x259px]]</p></li><li><p>Then the following pop-up window will appear, click &gt; '''&quot;Install&quot;'''</p><p>[[File:./images/media/image687.png|348x430px]]</p></li><li><p>Then wait for the installation section on how to complete</p><p>[[File:./images/media/image688.png|576x96px]]</p></li><li><p>The display after use the installation is complete is as follows</p><p>[[File:./images/media/image689M.png|506x289px]]</p></li></ol></li><li><p>Check whether the software package is installed successfully</p><ol style="list2 E-style-type: lower-alpha;"><li></li><li><p>a. In the OpenWRT software package management interface, click the filter dialog box and enter”'''luci-app-acl'''”</p><p>bKey PCIe WIFI6+Bluetooth module. Select and click '''&quot;Available&quot;''' on the Tab page</p><p>c. The “'''luci-app-acl'''” package will be displayed in the package list, and the update status will be '''&quot;installed&quot;'''</p><p>[[File:./images/media/image690.png|576x196px]]</p></li></ol></li></ol>
<span id="remove-package-example">'''For instructions on using the external USB network card, please refer to the section on how to use the USB wireless network card.'''</spanbig>=== Remove package example ===|}
<ol style="list-style-type: decimal;"><li><p>Take the removal of the package”'''luci-app-acl'''” as an example</p><ol style="list-style-type: lower-alpha;"><li><p>In the OpenWRT software package management interface, # First click the &gt; filter dialog box and enter”'''luci-app-acl'''”</p></li><li><p>Select '''&quot;Installed&quot;''' on the Tab page to display the list of &gt; installed software packages</p></li><li><p>Click '''&quot;Remove&quot;''' on the right to remove the corresponding &gt; software package</p><p>[[File:./images/media/image691.png|461x164px]]</p></li><li><p>Then the following pop-up window will be displayed, click &gt; '''&quot;Remove&quot;'''</p><p>[[File:./images/media/image692.png|415x129px]]</p></li><li><p>After the removal is successful, the display interface is as &gt; follows</p><p>[[File:./images/media/image693.png|414x88px]]</p></li></ol></li><li><p>Check whether the software package is removed successfully</p><ol style="list-style-type: lower-alpha;"><li></li><li><p>a. In the OpenWRT software package management interface, click the filter dialog box and enter “'''luci-app-acl'''”</p><p>b. Select and click '''&quot;Installed&quot;''' on the Tab page</p><p>c. The “'''luci-app-acl'''”package will not be displayed in the package list, and the '''luci-app-aclSetting'''” package has been removed successfully</p><p>[[File:./images/media/image694.png|493x187px]]</p></li></ol></li></ol>
<span id="using::[[File:plus5-samba-network-shares"></span>== Using Samba Network Shares ==img618.png]]
<ol start="2" style="list-style-type: decimal;"><li>Then select '''There are mainly two software options for OpenWRT LAN file sharing, Samba and NFS. The compatibility of the Samba system is better, while the performance of NFS is superior. For users who need to use Windows devices, it is recommended to choose Samba.Network &amp; internet'''</li>
<ol style="list-style-type: decimal;"><li><p>Enter the management page of the Samba network share</p><ol style="list-style-type: lower-alpha;"><li><p>Find the '''&quot;Service&quot;''' option in the navigation bar and click &gt; to enter</p></li><li><p>In the vertical column options below the service, select &gt; '''&quot;network sharing&quot;''' and click to enter</p><p>[[File:./images/media/image695plus5-img619.png|553x205px]]</p></li></ol></li><li><p>Select the interface that the Samba service needs to monitor</p><ol stylestart="list-style-type: lower-alpha;3"><li><p>Select '''&quot;General Settings&quot;''' in the navigation bar of network &gt; sharing and click to enter</p></li><li><p>The interface is specified according to actual needs. If you &gt; want to access through the &quot;wan port&quot;, set it to '''&quot;wan&quot;'''</p><p>[[File:./images/media/image696.png|500x222px]]</p></li></ol></li><li><p>Set the shared directory of the network share</p><ol style="list-style-type: lower-alphadecimal;"><li></li><li></li><li></li><li><p>a. In the '''&quot;Shared Directory&quot;''' of the ''Then select '&quot;General Settings&quot;''Internet' of the network share, click '''&quot;Add&quot;''' the shared directory address</p><p>b. Enter the name of the shared folder as '''&quot;mmt&quot;''' under the name</p><p>c. Under the path of the shared directory, choose to set the shared directory location '''&quot;/mnt&quot;'''</p><p>d. Check '''&quot;Browseable&quot;''' and &quot;Run anonymous user&quot;</p><p>e. Click '''&quot;Save and Apply&quot;''' to save the configuration</p><div class="figure"li>
[[File:./images/media/image697plus5-img620.png|575x217px|4]]</ol><ol start="4" style="list-style-type: decimal;"><li>Then turn on the '''Wi-Fi''' switch</li>
[[File:plus5-img621.png]]</divol><ol start="5" style="list-style-type: decimal;"></li><p>After turning on '''Wi-Fi''', if everything is normal, you can scan to nearby Wi-Fi hotspots</olp><p>[[File:plus5-img622.png]]</p></li><li><p>window10 starts network discovery Then select the Wi-Fi you want to connect to, and sharingthe password input interface shown in the figure below will pop up</p><p>'''Note[[File: To access Samba under plus5-img623.png]]</p></li><li><p>Then use the keyboard to enter the Windows 10 systempassword corresponding to Wi-Fi, you need and then use the mouse to click the Enter button in the virtual keyboard to start connecting to confirm whether Windows 10 has enabled network discovery and sharing for sharingWi-Fi</p><p>[[File:plus5-img624. If it png]]</p></li><li><p>The display after successful Wi-Fi connection is not enabled, perform shown in the following settings firstfigure below:</p><p>[[File:plus5-img625.'''png]]</p></li></ol> <span id="how-to-use-wi-fi-hotspot"></span>
<!== How to use Wi-- --><ol styleFi hotspot ="list-style-type: lower-alpha;"><li><p>Enable Samba v1/v2 access</p><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li><p>a) Enter the &quot;Control Panel&quot; of Windows 10</p><p>b) Click &quot;Programs&quot; on the left navigation bar of the control panel</p><p>c) Select &quot;Turn Windows features on or off&quot; in Programs and Features</p><p>d) Check &quot;SMB 1.0/CIFS file sharing support&quot; in the pop-up box of enabling or disabling Windows functions</p><p>e) Click &quot;OK&quot; to configure the application</p></li></ol></li></ol>
<ol style="list-style-type: decimal;"><li><p>First, please make sure that the Ethernet port is connected to the network cable and can access the Internet normally</p></li><li><p>Then select '''Settings'''</p><p>[[File:plus5-img618.png]]</p></li><li><p>Then select '''Network &amp; internet'''</p><p>[[File:plus5-img619.png]]</p></li><li><p>Then select '''Hotspot &amp; tethering'''</p><p>[[File:plus5-img626.png]]</imagesp></mediali><li><p>Then select '''Wi-Fi hotspot'''</image698p><p>[[File:plus5-img627.png|575x316px]]</p></li><li><p>Then turn on the '''Wi-Fi hotspot''', you can also see the name and password of the generated hotspot in the figure below, remember them, and use them when connecting to the hotspot '''(if you need to modify the name and password of the hotspot, you need to turn off the Wi-Fi first -Fi hotspot before modification)'''</p><p>[[File:plus5-img628.png]]</p></li><li><p>At this point, you can take out your mobile phone. If everything is normal, you can find the WIFI hotspot with the same name ('''here AndroidAP_6953''') displayed under the '''Hotspot name''' in the above picture in the WI-FI list searched by the mobile phone. Then you can click '''AndroidAP_6953''' to connect to the hotspot, and the password can be seen under the '''Hotspot password''' in the above picture</p></li>
<ol start="2" style="list-style-type[[File: lowerplus5-alpha;">img629.png]]<li><p>Turn on the network discovery of Windows 10</pol><ol start="8" style="list-style-type: lower-alphadecimal;"><li></li><li></li><li></li><li></li><li><p>a) Enter After the connection is successful, it will be displayed as shown in the figure below (the &quot;Control Panel&quot; interface of Windows 10</p><p>b) Select &quot;Network and Internet&quot; in different mobile phones will be different, the specific interface is subject to the Control Panel</p><p>cdisplay of your mobile phone) Then . At this point, you can open &quot;Network and Sharing Center&quot;</p><p>d) Click | &quot;Advanced Sharing Settings&quot;</p><p>e) Turn a webpage on your mobile phone to see if you can access the Internet. If you can open the webpage normally, it means that the '''&quot;Enable Network Discovery&quot;WI-FI Hotspot''' and '''&quot;Enable File and Printer Sharing&quot;'''</p><p>f) Click &quot;Save Changes&quot; to save of the Windows 10 network discovery configuration</p>development board can be used normally.</li></ol></li></ol>
[[File:./images/media/image699plus5-img630.png|575x323px]]</ol><span id="bluetooth-test-method"></span>
<ol start="5" style="list-style-type: decimal;"><li>After the setting is completed, enter \\OpenWrt in the address bar of the resource manager to access the shared directory, the user name is root, and the password is the password set by the development board host</li></ol>Bluetooth test method ==
[[File{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''<span style="color:#FF0000">Please note that there is no Bluetooth module on the Orange Pi 5 Plus development board, and an external PCIe network card with Bluetooth or a USB network card with Bluetooth is required to use the Bluetooth function.</images/media/image700.png|575x323px]]span>'''
<span id="zerotier'''For instructions on using the external PCIe network card, please refer to the section on how to use the M.2 E-instructions"></span>== Zerotier Instructions ==Key PCIe WIFI6+Bluetooth module.'''
'''The OpenWRT system has pre-installed the zerotier client. After creating a virtual LAN For instructions on using the zerotier official websiteexternal USB network card, please refer to the client can directly join it through section on how to use the Network ID. The specific operation is as shown belowUSB wireless network card.'''</big>|}
<ol style="list-style-type: decimal;">
<li><p>Log in First click to zerotier official website enter the '''https://my.zerotier.com/networkSetting''', register and log in and click Network-&gt;Create A Network to create a virtual local area network</p><p>[[File:plus5-img618.png]]</imagesp></mediali><li><p>Then select '''Connected devices'''</image701p><p>[[File:plus5-img631.png|575x118px]]</p></li><li><p>Then click '''<span class="mark">Pair new device</span>''' to turn on Bluetooth and start scanning the surrounding Bluetooth devices</p><p>[[File:plus5-img632.png]]</imagesp></mediali><li><p>The searched Bluetooth devices will be displayed under '''Available devices'''</image702p><p>[[File:plus5-img633.png|574x166px]]</p></li><li><p>Click Then click the Bluetooth device you want to enter connect to start pairing. When the network console pagefollowing interface pops up, you can set please use the privacy option mouse to public, so that select the added network nodes do not need to be verified'''Pair''' option</p><p>[[File:./images/media/image703plus5-img634.png|353x257px]]</p></li><li><p>The test here is the configuration process of the development board and the Bluetooth of the Android mobile phone. At this time, the following automatically assigns confirmation interface will pop up on the address Here you can choose mobile phone. After clicking the pairing button on the network segment yourselfmobile phone, here is 172.27.*.*the pairing process will start</p><p>[[File:plus5-img635.png]]</imagesp></mediali><li><p>After the pairing is completed, you can see the paired Bluetooth device as shown in the figure below</image704p><p>[[File:plus5-img636.png|374x233px]]</p></li><li><p>Enter At this time, you can use the Bluetooth of your mobile phone to send a picture to the development board. After sending, you can see the following command confirmation interface in the OpenWRT terminal to join Android system of the virtual LAN created abovedevelopment board, and then click '''where 8286ac0e47d53bb5 is the Network ID of the virtual LAN created aboveAccept'''to start receiving the picture sent by the mobile phone.</p><p>[[File:plus5-img637.png]]</lip></olliroot@OpenWrt:/# <li><p>You can open the '''zerotier-one -dDownload''' #Start directory in the zerotier clientfile manager to view the pictures received by the Android system Bluetooth of the development board</p><p>[[File:plus5-img638.png]]</p></li></ol>
root@OpenWrt:<span id="test-method-of-hdmi-in"></# '''zerotier-cli join 8286ac0e47d53bb5''' #join the networkspan>
<ol start="5" style="list-style-type: decimal;"><li>Enter ifconfig in the terminal and you can see that there is already a new '''ztks54inm2''' device with an IP address Test method of '''172.27.214.213'''</li></ol>HDMI In ==
root@OpenWrt<ol style="list-style-type:decimal;"><li><p>The location of the HDMI In interface on the development board is as follows:</# '''ifconfig'''p><p>[[File:plus5-img265.png]]</p></li><li><p>Then use the HDMI to HDMI cable shown in the figure below to connect the HDMI output of other devices to the HDMI In interface of the development board</p><p>[[File:plus5-img11.png]]</p></li><li><p>Make sure that the HDMI output of the device connected to the HDMI In interface is normal, and then open the HDMI In test APP</p><p>[[File:plus5-img639.png]]</p></li><li><p>Then you can see the video input of HDMI In, and the audio input of HDMI In will also be output from the HDMI TX interface or headphone interface of the development board. The figure below shows the desktop of the Linux system of the OPi5 development board input through HDMI In.</p><p>[[File:plus5-img640.png]]</p></li></ol>
'''ztks54inm2''' Link encap:Ethernet HWaddr F6:4E:DE:BF:D8:52<span id="how-to-use-10.9.10.1-inch-mipi-screen"></span>== How to use 10.9.10.1 inch MIPI screen ==
inet addr{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''172.27.214.213Please make sure that the Android image used is the image of the following two versions:''' Bcast:172.27.255.255 Mask:255.255.0.0
inet6 addr: fe80::e82f:d0ff:fe5a:867e/64 Scope:Link'''OrangePi5Plus_RK3588_Android12_lcd_v1.x.x.img'''
UP BROADCAST RUNNING MULTICAST MTU:2800 Metric:1'''OrangePi5Plus_RK3588_Android12_spi-nvme_lcd_v1.x.x.img'''</big>|}
RX packets<ol style="list-style-type:18 errorsdecimal;"><li><p>The screen needs to be assembled first, please refer to the assembly method of the 10.1-inch MIPI screen</p></li><li><p>The interface position of the LCD on the development board is shown in the figure below:</p><p>[[File:0 droppedplus5-img641.png]]</p>{| class="wikitable" style="background-color:0 overruns#ffffdc;width:0 frame:0800px;" |-| <big><p>'''Note that the touch interface below is not for the LCD MIPI screen. It is currently a spare interface and cannot be used.'''</p></big>
TX packets<p>[[File:48 errorsplus5-img425.png|center]]</p>|}</li><li><p>Connect the assembled screen to the LCD interface, connect the Type-C power supply to the board, and power on. After the system starts, you can see the screen display as shown in the figure below</p><p>[[File:0 dropped:0 overruns:0 carrier:0plus5-img642.png]]</p></li></ol>
collisions:0 txqueuelen:1000<span id="ov13850-and-ov13855-mipi-camera-test-method"></span>
RX bytes:1720 (1.6 KiB) TX byte81 (8.2 KiB)== OV13850 and OV13855 MIPI camera test method ==
<ol start="6" style="list-style-type: decimal;"><li>Install Currently the zerotier client on another device (Ubuntu18.04 is used as an example here)development board supports two MIPI cameras, execute the following command to installOV13850 and OV13855, and restart the computer after the installation is complete</li></ol>specific pictures are as follows:
test@ubuntu<ol style="list-style-type:~$ '''curl lower-s httpsalpha;"><li><p>OV13850 camera with 13 million MIPI interface</p><p>[[File:plus5-img23.png]]</p></li><li><p>OV13855 camera with 13 million MIPI interface</installp><p>[[File:plus5-img24.zerotierpng]]</p></li></ol><p>The adapter boards and FPC cables used by the OV13850 and OV13855 cameras are the same, but the positions of the two cameras connected to the adapter boards are different.com | sudo bashThe FPC cable is shown in the figure below. Please note that the FPC cable has a direction. The end marked '''TO MB''' needs to be inserted into the camera interface of the development board, and the end marked '''TO CAMERA''' needs to be inserted into the camera adapter board.</p>
<ol start="7" style="list[[File:plus5-style-type: decimal;"><li>After restarting, join the virtual LAN according to the Network ID, and you can also see that the ip address assigned by zerotier has been obtainedimg436. At this time, the Ubuntu PC and OrangePi R1 Plus LTS are in the same LAN, and the two can communicate freely</li></ol>png]]
test@ubuntuThere are a total of 3 camera interfaces on the camera adapter board, and only one can be used at a time, as shown in the figure below, of which:~$ '''sudo zerotier-cli join 8286ac0e47d53bb5'''
test@ubuntu<ol style="list-style-type:~$ lower-alpha;"><li><p>'''ifconfigNo.1 port is connected to OV13850 camera'''</p></li><li><p>'''No.2 interface is connected to OV13855 camera'''</p></li><li><p>No.3 interface is not used, just ignore it</p></li>
'''ztks54inm2''': flags<div class=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt; mtu 2800"figure">
inet '''172[[File:plus5-img643.27.47.214''' netmask 255.255.0.0 broadcast 172.27.255.255png]]
inet6 fe80</div></ol>The location of the camera interface on the Orange Pi 5 Plus development board is shown in the figure below::5ce1:85ff:fe2b:6918 prefixlen 64 scopeid 0x20&lt;link&gt;
ether f6[[File:fd:87:68:12:cf txqueuelen 1000 (ethernet)plus5-img644.png]]
RX packets 0 bytes 0 (0.0 B)The method of inserting the camera into the CAM interface of the development board is as follows:
RX errors 0 dropped 0 overruns 0 frame 0[[File:plus5-img439.png]]
TX packets 46 bytes 10006 (10.0 KB)After connecting the camera to the development board, we can use the following method to test the camera:
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0<ol style="list-style-type: lower-alpha;"><li><p>Open the camera APP on the desktop</p><p>[[File:plus5-img645.png]]</p></li><li><p>Then you can see the preview screen of the camera</p><div class="figure">
<ol start="8" style="list[[File:plus5-style-type: decimal;"><li>Test whether the two terminals can communicate</li></ol>img646.png]]
root@OpenWrt</div><p>Press and hold the mouse in the area shown in the red box in the picture below of the camera APP and then drag to the right to call up the switching interface for taking pictures and recording</p><p>[[File:plus5-img647.png]]</# p><p>The switching interface of taking pictures and recording is as follows, click Video to switch to '''ping 172.27.47.214 -I ztks54inm2video'''recording mode</p> PING 172.27.47.214 (172.27.47.214): 56 data bytes<div class="figure">
64 bytes from 172.27.47.214[[File: seq=0 ttl=64 time=1plus5-img648.209 mspng]]
64 bytes from 172.27.47</div><p>Click the position shown in the figure below to enter the camera setting interface</p><p>[[File:plus5-img649.214: seqpng]]</p><p>The setting interface of the camera is as follows:</p><div class=1 ttl=64 time=1.136 ms"figure">
64 bytes from 172.27.47.214[[File: seq=2 ttl=64 time=1plus5-img650.203 mspng]]
64 bytes from 172.27.47.214: seq=3 ttl=64 time=1.235 ms</div></li></ol>
^C<span id="pin-interface-gpio-uart-spi-and-pwm-test"></span>
--- 172.27.47.214 ping statistics ---== 40pin interface GPIO, UART, SPI and PWM test ==
4 packets transmitted, 4 packets received, 0% packet loss<span id="pin-gpio-port-test-3"></span>=== 40pin GPIO port test ===
round<ol style="list-style-type: decimal;"><li><p>First click on the wiringOP icon to open the wiringOP APP</p><p>[[File:plus5-img651.png]]</p></li><li><p>The main interface of wiringOP APP is displayed as shown in the figure below, and then click the '''GPIO_TEST''' button to open the GPIO test interface</p><p>[[File:plus5-img652.png]]</p></li><li><p>The GPIO test interface is shown in the figure below. The two rows of '''CheckBox''' buttons on the left are in one-to-one correspondence with the 26pin pins. When the '''CheckBox''' button is checked, the corresponding GPIO pin will be set to '''OUT''' mode, and the pin level will be set to high level; when the checkbox is unchecked, the GPIO pin level will be set to low level; When the '''GPIO READALL''' button is pressed, information such as the wPi number, GPIO mode, and pin level can be obtained.</p><p>[[File:plus5-img653.png]]</p></li><li><p>Then click the '''GPIO READALL''' button, the output information is as shown in the figure below:</p><p>[[File:plus5-img654.png]]</p></li><li><p>There are a total of 28 GPIO ports in the 40pins of the development board that can be used. The following uses pin 11—the corresponding GPIO is GPIO1_A4—the corresponding wPi serial number is 5—as an example to demonstrate how to set the high and low levels of the GPIO port. First click the '''CheckBox''' button corresponding to pin 11. When the button is selected, pin 11 will be set to high level. After setting, you can use a multimeter to measure the voltage value of the pin. If it is '''3.3v''', it means setting high level success</p><p>[[File:plus5-img655.png]]</p></li><li><p>Then click the '''GPIO READALL''' button, you can see that the current pin 7 mode is '''OUT''', and the pin level is high</p><p>[[File:plus5-trip minimg656.png]]</avgp></max = 1li><li><p>Click the '''CheckBox''' button in the figure below again to cancel the check status. Pin 11 will be set to low level. After setting, you can use a multimeter to measure the voltage value of the pin. If it is '''0v''', it means that the low level is set successfully.136</1p><p>[[File:plus5-img657.195png]]</1p></li><li><p>Then click the '''GPIO READALL''' button, you can see that the current mode of pin 11 is OUT, and the pin level is low</p><p>[[File:plus5-img658.235 mspng]]</p></li></ol>
<ol startspan id="9" style="listpin-uart-styletest-type: decimal;2"><li>other common commands of zerotier</li></olspan>=== 40pin UART test ===
root@OpenWrt<ol style="list-style-type:/# decimal;"><li><p>'''UART3''' and '''UART8'''zerotierare enabled by default in Android. The position of the 40pin is shown in the figure below, and the corresponding device nodes are /dev/ttyS3 and /dev/ttyS8 respectively</p><p>[[File:plus5-one img659.png]]</p></li><li><p>First click on the wiringOP icon to open the wiringOP APP</p><p>[[File:plus5-dimg651.png]]</p></li><li><p>The main interface of wiringOP APP is displayed as shown in the figure below, and then click the ''' #Start UART_TEST''' button to open the UART test interface</p><p>[[File:plus5-img660.png]]</p></li><li><p>The serial port test interface of the zerotier clientAPP is shown in the figure below</p></li>
root@OpenWrt[[File:plus5-img661.png]]</ol><ol start="5" style="list-style-type: decimal;"><li>Take the test of '''UART3''' as an example below, select the '''/dev/ttyS3''' node in the selection box, enter the baud rate you want to set in the edit box, and then click the '''OPEN''' button to open the '''/dev/# ttyS3''' node. After opening successfully, click the '''OPEN''' button becomes unselectable, and the '''zerotier-cli statusCLOSE''' #Get address button and service status'''SEND''' button become selectable</li>
root@OpenWrt[[File:plus5-img662.png]]</ol><ol start="6" style="list-style-type: decimal;"><li><p>Then use Dupont wire to short the RXD and TXD pins of uart3</p><p>[[File:plus5-img663.png]]</p></# li><li><p>Then you can enter a character in the send edit box below, and click the '''zerotier-cli join # Network IDSEND''' #join the networkbutton to start sending</p></li>
root@OpenWrt[[File:plus5-img664.png]]</# '''zerotierol><ol start="8" style="list-cli leave # Network ID''' #leave style-type: decimal;"><li>If everything is normal, the networkreceived string will be displayed in the receiving box</li>
root@OpenWrt[[File:plus5-img665.png]]</# '''zerotierol><span id="pin-spi-test-cli listnetworks''' #list networks3"></span>
OPENWRT_DEVICE_REVISION=&quot;v0&quot;== 40pin SPI test ===
OPENWRT_RELEASE<ol style=&quot"list-style-type: decimal;OpenWrt 22"><li><p>From the table below, the available SPIs for Orange Pi 5 Plus are SPI0 and SPI4</p><p>[[File:plus5-img304.png]]</p></li><li><p>The Android system opens the SPI0 configuration by default.03Here is a demonstration to test the SPI0 interface through the w25q64 module.4 r20123First, connect the w25q64 device to the SPI0 interface.</p><p>[[File:plus5-38ccc47687&quot;img666.png]]</p></li><li><p>Then click the wiringOP icon to open the wiringOP APP</p><p>[[File:plus5-img651.png]]</p></li><li><p>The main interface of wiringOP APP is displayed as shown in the figure below, click the '''SPI_TEST''' button to open the SPI test interface</p><p>[[File:plus5-img667.png]]</p></li><li><p>Then click the '''OPEN''' button to initialize the SPI</p></li>
[[File:plus5-img668.png]]</ol><span idol start="compilation6" style="list-methodstyle-type: decimal;"><li><p>Then fill in the bytes that need to be sent, such as reading the ID information ofw25q64, fill in the address 0x9f in data[0], and then click the '''TRANSFER''' button</p><p>[[File:plus5-openwrt-source-code"img669.png|575x252px]]</p></spanli>= Compilation method of OpenWRT source code =<li><p>Finally, the APP will display the read ID information</p></li>
[[File:plus5-img670.png]]</ol><span idol start="8" style="download-openwrtlist-sourcestyle-codetype: decimal;"><li><p>The MANUFACTURER ID of the w25q64 module is EFh, and the Device ID is 4017h, corresponding to the value read above (h stands for hexadecimal)</spanp>== Download OpenWRT source code ==<p>[[File:plus5-img671.png]]</p></li></ol>
# First execute the following command to download the openwrt<span id="pin-22.03 branch codepwm-test"></span>
=== 40pin PWM test@test:~$ '''sudo apt update'''===
<ol style="list-style-type: decimal;"><li><p>Android enables '''PWM10''' and '''PWM14''' by default, and the corresponding pins are located at 40pin as shown in the figure below:</p><p>[[File:plus5-img672.png]]</p></li><li><p>First click on the wiringOP icon to open the wiringOP APP</p><p>[[File:plus5-img651.png]]</p></li><li><p>Then click the '''PWM_TEST''' button on the main interface of wiringOP to enter the PWM test@interface</p><p>[[File:plus5-img673.png]]</p></li><li><p>The base address corresponding to PWM10 is '''febe0020''', and the base address corresponding to PWM14 is '''febf0020'''. Here, '''fd8b0020.pwm''' is displayed on the right of pwmchip0. At this time, you need to click the drop-down option to select other pwmchips until '''febe0020''' or '''febf0020''' is displayed on the right.</p><p>[[File:plus5-img674.png]]</p></li><li><p>When the drop-down option menu selects '''pwmchip2''', the corresponding base address of '''PWM10''' is '''febe0020''' on the right</p><p>[[File:plus5-img675.png]]</p></li><li><p>When the drop-down option menu selects '''pwmchip4''', the corresponding base address of '''PWM14''' is '''febe0020''' on the right</p><p>[[File:plus5-img676.png]]</p></li><li><p>Take the testof PWM10 as an example, we need to select '''pwmchip2'''</p><p>[[File:~$ plus5-img675.png]]</p></li><li><p>Then confirm the PWM period, the default configuration is '''sudo apt install50000ns''' , converted to PWM frequency is '''-y20KHz''' , you can modify it yourself, click the open button to export '''gitPWM10'''</p><p>[[File:plus5-img677.png]]</p></li><li><p>Then drag the drag bar below to change the PWM duty cycle, and then check Enable to output the PWM waveform</p></li>
test@test[[File:~$ '''git clone''' '''https://githubplus5-img678.compng]]</orangepiol><ol start="10" style="list-style-xunlongtype: decimal;"><li>Then use an oscilloscope to measure the 31st pin in the 40pin of the development board, and you can see the following waveform</openwrt.git''' '''-b openwrt-22.03'''li>
[[File:plus5-img679.png]]</ol start><span id="2" style="listhow-to-use-styleadb-type: decimal;1"><li>After the OpenWRT code is downloaded, the following files and folders will be included</li></olspan>
test@test:~/openwrt$ '''ls'''== How to use ADB ==
BSDmakefile Config.in include Makefile README.md scripts toolchain Config feeds.conf.default LICENSE package rules.mk target tools <span id="compileuse-openwrtthe-sourcedata-codecable-to-connect-to-adb-debugging"></span>== Compile OpenWRT source code = Use the data cable to connect to adb debugging ===
<ol style="list-style-type: decimal;">
<li><p>First install the following dependent packages (currently only tested on Ubuntu 20.04 to compile the following dependent packages, if you compile on other versions of the system, please install the dependent packages by yourself according to the error message)prepare a good quality Type-C data cable</p><ol style="list-style-typep>[[File: lowerplus5-alpha;"img21.png]]</p></li><li>Method 1: <p>Then connect the development board and Ubuntu PC through the Type-C data cable. The command to install dependent packages using a &gt; script position of the Type-C interface of the development board is as followsshown in the figure below:</li></olp></li></oldiv class="figure">
test@test[[File:~/openwrt$ '''sudo plus5-img52./install_dep.sh'''png]]
<ol start/div></li><li><p>Then install the adb tool on the Ubuntu PC</p>{| class="2wikitable" style="listwidth:800px;" |-style-type|<p>test@test:~$ '''sudo apt update'''</p><p>test@test: lower~$ '''sudo apt -alpha;"y install adb'''</p>|}</li><li>Method 2: Install <p>You can view the dependency package directly using identified ADB devices through the following command</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''adb devices'''</p><p>List of devices attached</p><p>S63QCF54CJ device</p><p>test@test:~$ '''lsusb'''</p><p>Bus 003 Device 006: ID 2207:0006</p>|}</li><li><p>Then you can log in to the android system through the adb shell on the Ubuntu PC</olp></li>
{| class="wikitable" style="width:800px;" |-|test@test:~/openwrt$ '''sudo apt updateadb shell'''
test@testconsole:~/openwrt$ '''sudo apt install |}</ol><ol start="6" style="list-style-y ack antlr3 asciidoc autoconf''' '''\'''type: decimal;"><li>Execute the following command to remount the Android system</li>
'''automake autopoint binutils bison build{| class="wikitable" style="width:800px;" |-essential''' |test@test:~$ '''\adb root'''
test@test:~$ '''bzip2 ccache cmake cpio curl device-tree-compiler fastjar''' '''\adb remount'''|}</ol><ol start="7" style="list-style-type: decimal;"><li>Then you can transfer files to the Android system</li>
'''flex gawk gettext gcc{| class="wikitable" style="width:800px;" |-multilib g++-multilib git gperf haveged|test@test:~$ ''' adb push example.txt /system/'''\'''|}</ol>'''help2man intltool libc6<span id="use-devnetwork-i386 libelfconnection-dev libglib2.0adb-dev''' '''\'''debugging"></span>
'''libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev''' '''\'''=== Use network connection adb debugging ===
'''libncurses5{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-dev''' | <big>'''\libncursesw5Using the network adb does not require a data cable of the Typc-dev libreadline-dev libssl-dev''' '''\C interface to connect the computer and the development board, but to communicate through the network, so first of all, please ensure that the wired or wireless network of the development board has been connected, and then obtain the IP address of the development board, and then to use.'''</big>|}
<ol style="list-style-type: decimal;"><li><p>Make sure that the '''service.adb.tcp.port'''libtool lrzsz mkisofs msmtp nano ninjaof the Android system is set to port number 5555</p>{| class="wikitable" style="width:800px;" |-build p7zip p7zip-full|<p>console:/ # '''getprop | grep &quot;adb.tcp&quot;'''</p><p>[service.adb.tcp.port]: ['''5555''' ]</p>|}</li><li><p>If '''\service.adb.tcp.port'''is not set, you can use the following command to set the port number of network adb</p></li>
{| class="wikitable" style="width:800px;" |-|console:/ # '''patch pkgconf python2setprop service.adb.tcp.7 python3 python3-pyelftools \port 5555'''
console:/ # '''libpython3stop adbd''' console:/ # '''start adbd'''|}</ol><ol start="3" style="list-style-type: decimal;"><li><p>Install adb tool on Ubuntu PC</p>{| class="wikitable" style="width:800px;" |-dev qemu|<p>test@test:~$ '''sudo apt update'''</p><p>test@test:~$ '''sudo apt install -utils rsync scons squashfsy adb'''</p>|}</li><li><p>Then connect network adb on Ubuntu PC</p>{| class="wikitable" style="width:800px;" |-tools|<p>test@test:~$ '''adb connect 192.168.1.xxx''' '''\(The IP address needs to be changed to the IP address of the development board)'''</p><p>* daemon not running; starting now at tcp:5037</p><p>* daemon started successfully</p><p>connected to 192.168.1.xxx:5555</p>
'''subversion swig texinfo uglifyjs upx-ucl unzip \'''
<p>test@test:~$ '''vim wget xmlto xxd zlib1g-devadb devices'''</p><p>List of devices attached</p><p>192.168.1.xxx:5555 device</p>|}</li><li><p>Then you can log in to the android system through the adb shell on the Ubuntu PC</p></li>
<ol start{| class="2wikitable" style="list-style-typewidth: decimal800px;"><li>Then execute '''./scripts/feeds update |-a''|test@test:~$ ' and '''./scripts/feeds install -aadb shell''' to download dependent packages</li></ol>
test@testconsole:~/openwrt$ '''.#|}</scriptsol><span id="g-usb-remote-control-tested-by-android-box"></feeds update -a'''span>
test@test:~/openwrt$ '''== 2./scripts/feeds install -a'''4G USB remote control tested by Android Box ==
<ol start="3" style="list-style-type: decimal;"><li><p>Then choose to use A 2.4G USB remote control that has been tested so far is shown in the configuration file of OrangePi 5 Plusfigure below</p>
<ol style="list-style-type: lower-alpha;">
<li>Compile the image that supports TF card, eMMC, and NVMe startup, &gt; and select the following configuration<p>Contains a remote control</p><p>[[File:plus5-img680.png]]</p></li><li><p>A USB wireless receiver</p><p>[[File:plus5-img681.png]]</p></li></ol></li><li><p>The Android Box system does not require any configuration, it can be used after plugging it in</p></li></ol>
test@test:~/openwrt$ '''cp configs/orangepi<span id="how-to-use-the-infrared-remote-5control-plusof-rk3588_defconfig''' '''.config''' <ol start="2" style="listthe-styleandroid-type: lowerbox-alpha;system"><li/span>Compile == How to use the image that supports SPIFlash startup, and select infrared remote control of the &gt; following configuration</li></ol>Android Box system ==
test@test<ol style="list-style-type:~decimal;"><li><p>The development board comes with an infrared receiver, and its location is shown in the figure below:</openwrt$ '''cp configs/orangepi-5-plusp><p>[[File:plus5-rk3588-spi_defconfig img682.config'''png]]</p></li><li><p>Before testing infrared reception, we need to prepare an infrared remote control</p><div class="figure">
<ol start="4" style="list[[File:plus5-style-type: decimal;"><li>Then execute the following command to make the configuration take effect</li></ol>img683.png]]
test@test</div>{| class="wikitable" style="background-color:~/openwrt$ #ffffdc;width:800px;" |-| <big><p>'''make''' '''defconfig<span style="color:#FF0000">Note: The Android system provided by Orange Pi only supports the remote control provided by Orange Pi by default, and the remote control of TV or air conditioner cannot be used.</span>'''</p></big>|}</li><li><p>The Android Box system has been adapted to this remote control, and it can be used directly without other settings.</p></li></ol>
<ol startspan id="5" style="listhow-to-use-hdmi-cec-function-in-android-stylebox-type: decimal;system"><li>Execute the following command to start compiling the openwrt source code</li></olspan>
test@test:~/openwrt$ '''make V=s'''= How to use HDMI CEC function in Android Box system ==
<ol start{| class="6wikitable" style="listbackground-style-typecolor:#ffffdc;width: decimal800px;">|-| <libig>After '''HDMI CEC allows users to control all connected devices through HDMI with only one remote control. Based on this function, we can control the compilation is complete, development board with the path where remote control of the image is generated is:</li></ol>TV.'''
test@test:~/openwrt$ '''tree -L 1 bin/targets/rockchip/armv8<span style="color:#FF0000">Before testing this function, please make sure your TV supports HDMI CEC.</span>'''</big>|}
bin<ol style="list-style-type: decimal;"><li><p>First connect the development board to the TV through the HDMI cable, then power on and start</targetsp></rockchipli><li><p>Then turn on the HDMI CEC function in the TV settings. Different TVs may have different ways to turn it on. Here we take Xiaomi TV as an example. Press the menu button on the remote control, then select CEC remote control and press the confirmation button</armv8p><p>[[File:plus5-img684.png]]</p></li><li><p>Then select '''&quot;On&quot;''' to open the HDMI CEC remote control</p><p>[[File:plus5-img685.png]]</p></li><li><p>At this point, you can control the Android Box system of the development board through the remote control of the TV</p></li></ol>
├── config.buildinfo<span id="how-to-compile-android-12-source-code"></span>
├── feeds.buildinfo= '''How to compile Android 12 source code''' =
├── openwrt<span id="download-rockchipandroid-armv812-xunlong_orangepisource-5-plus-ext4-sysupgrade.img.gzcode"></span>== Download Android 12 source code ==
├── openwrt<ol style="list-rockchipstyle-armv8type: decimal;"><li><p>First download the Android 12 source code sub-xunlong_orangepivolume compressed package from Google network disk</p><p>[[File:plus5-5img686.png]]</p></li><li><p>After downloading the sub-volume compression package of the Android 12 source code, please check whether the MD5 checksum is correct, if not, please download the source code again</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''md5sum -plusc Android_12.tar.gz.md5sum'''</p><p style="color:#FF0000">'''Android_12.tar.gz00: confirm'''</p><p style="color:#FF0000">'''Android_12.tar.gz01: confirm'''</p><p style="color:#FF0000">'''Android_12.tar.gz02: confirm'''</p><p style="color:#FF0000">'''Android_12.tar.gz03: confirm'''</p><p style="color:#FF0000">'''Android_12.tar.gz04: confirm'''</p><p style="color:#FF0000">'''Android_12.tar.gz05: confirm'''</p><p style="color:#FF0000">'''Android_12.tar.gz06: confirm'''</p><p style="color:#FF0000">'''Android_12.tar.manifestgz07: confirm'''</p>|}</li><li><p>Then you need to merge multiple compressed files into one, and then decompress</p></li>
├── openwrt{| class="wikitable" style="width:800px;" |-rockchip-armv8-xunlong_orangepi-5-plus-squashfs-sysupgrade|test@test:~$ '''cat Android_12.tar.gz0* &gt; Android_12.imgtar.gz'''
├── packagestest@test:~$ '''tar -xvf Android_12.tar.gz'''|}</ol><span id="compile-the-source-code-of-android-12"></span>
├── profiles.json== Compile the source code of Android 12 ==
├── sha256sums<ol style="list-style-type: decimal;"><li><p>First install the software packages required to compile the Android12 source code</p>{| class="wikitable" style="width:800px;" |-|<p>test@test:~$ '''sudo apt-get update'''</p>└── version.buildinfo<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>1 directory<li><p>There is a build.sh compilation script in the source code, 9 filesand the compilation parameters are as follows</p><span idol style="instructionslist-style-type: lower-foralpha;"><li><p>-using'''U''': compile uboot</p></li><li><p>-the'''K''': compile kernel</p></li><li><p>-'''A''': compile android</p></li><li><p>-12'''u''': package and generate update.img and update_spi_nvme.img</p></li><li><p>-system"'''o''': Compile the OTA package</p></li><li><p>-'''d''': specify kernel dts</p></spanli>= Instructions for using the Android 12 system =</ol></li><span idli><p>Compile uboot, kernel, android and package them into update.img</p><ol style="supportedlist-style-androidtype: lower-versionsalpha;"><li><p>The command to compile and support HDMI 8K display image (LCD &gt; off by default) is as follows:</spanp>== Supported Android versions == {| class="wikitable" style="width:800px;"
|-
| style="text-align<p>test@test: left;"| ~$ '''Androidcd Android_12''' </p><p>test@test:~/ Android_12$ '''versionsource build/envsetup.sh'''</p>| style="text<p>test@test:~/ Android_12$ '''lunch rk3588_s-alignuserdebug'''</p><p>test@test: left;"| ~/ Android_12$ '''kernel version./build.sh -AUKu'''</p>|}</li><li><p>The command to compile and support LCD display image is as &gt; follows:</p>{| class="wikitable" style="width:800px;"
|-
| style<p>test@test:~$ '''cd Android_12'''</p><p>test@test:~/ Android_12$ '''export DUAL_LCD="text-aligntrue'''</p><p>test@test: left;"| ~/ Android_12$ '''Android 12source build/envsetup.sh'''</p>| style="text<p>test@test:~/ Android_12$ '''lunch rk3588_s-alignuserdebug'''</p><p>test@test: left;"| ~/ Android_12$ '''Linux5.10/build.sh -AUKu'''</p>|}</li><li><p>The command to compile the image of the Box version is as &gt; follows:</p>{| class="wikitable" style="width:800px;"
|-
| style<p>test@test:~$ '''cd Android_12'''</p><p>test@test:~/ Android_12$ '''export BOARD="text-alignorangepi5plus'''</p><p>test@test: left;"| ~/ Android_12$ '''Android 12 Boxsource build/envsetup.sh'''</p>| style="text<p>test@test:~/ Android_12$ '''lunch rk3588_box-alignuserdebug'''</p><p>test@test: left;"| ~/ Android_12$ '''Linux5.10/build.sh -AUKu'''</p>
|}
 <span id="android-function-adaptation"/li></spanol>== Android function adaptation ==</li><li><p>After the compilation is complete, the following information will be printed</p>{| class="wikitable" style="width:800px;"
|-
| style="text-align: left;"<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>The final image file will be placed in the '''Function'''| style="textrockdev/Image-align: left;"| rk3588_s'''Android 12directory. Among them, '''| style="text-align: left;"| update.img'''Android12 Boxis the boot image that supports TF card and eMMC, and '''|-| style="text-align: left;"| '''HDMI TX1 Display - 1080pupdate_spi_nvme.img'''is the boot image of NVME SSD</p>{| styleclass="text-align: left;wikitable"| '''OK'''| style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align<p>test@test: left;"| ~/Android_12$ '''HDMI TX1 Display cd rockdev/Image- 4K 120HZrk3588s_s'''</p>| style="text<p>test@test:~/Android_12/rockdev/Image-align: left;"rk3588s_s $ '''ls update*'''</p><p>update.img update_spi_nvme.img</p>| }</li><li><p>If you compile the image of the Box version, the final generated image file will be placed in the '''OKrockdev/Image-rk3588_box'''directory</p>{| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text<p>test@test:~/Android_12$ '''cd rockdev/Image-alignrk3588_box'''</p><p>test@test: left;"| ~/Android_12/rockdev/Image-rk3588_box$ '''HDMI TX1 Display - 8K 60HZls update*'''</p><p>update.img update_spi_nvme.img</p>| style}</li></ol> <span id="textinstructions-for-using-the-orange-pi-os-droid-align: left;system"| ></span> = '''OKInstructions for using the Orange Pi OS Droid system'''= <span id="function-adaptation-of-opi-os-droid-system"></span>== Function adaptation of OPi OS Droid system == {| class="wikitable" style="text-alignwidth: left800px;"| '''OK'''
|-
| style="text-align: left;"| '''HDMI TX1 AudioFunction'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OKOPi OS Droid function adaptation'''
|-
| style="text-align: left;"| '''HDMI TX2 Display - 1080p'''| style="text-align: left;"| '''OKTX1 display'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''HDMI TX2 Display - 4K 120HZ'''| style="text-align: left;"| '''OKTX1 Audio'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''HDMI TX2 Display - 8K 60HZ'''| style="text-align: left;"| '''OKdisplay'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''HDMI TX2 Audio'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''HDMI RX display'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''HDMI RX Audio'''
| 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 network port X2'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''2.5G PCIe network port light'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Debug serial port'''
| 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 interface'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''eMMC extension interface'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''AP6275P-WIFI'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''AP6275P-BT'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''AX200-WIFI'''
| style="text-align: left;"| '''NO'''| <span style="text-aligncolor: left;#FF0000"| '''>NO</span>'''
|-
| style="text-align: left;"| '''AX200-BT'''
| style="text-align: left;"| '''NO'''| <span style="text-aligncolor: left;#FF0000"| '''>NO</span>'''
|-
| style="text-align: left;"| '''AX210-WIFI'''
| style="text-align: left;"| '''NO'''| <span style="text-aligncolor: left;#FF0000"| '''>NO</span>'''
|-
| style="text-align: left;"| '''AX210-BT'''
| style="text-align: left;"| '''NO'''| <span style="text-aligncolor: left;#FF0000"| '''>NO</span>'''
|-
| style="text-align: left;"| '''RTL8852BE-WIFI'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''RTL8852BE-BT'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Recovery button'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Type-C interface USB3.0 function'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Type-C interface ADB function'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Type-C interface DP display function'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Type-C interface DP audio playback'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''USB3.0 Hub'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''switch button'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''infrared function'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''led light'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''Onboard MIC'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''headphone playback'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''headphone recording'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''SPK Horn'''
| 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 card start'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''SPI Flash+NVME solid state boot'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''OV13850 camera'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''OV13855 camera'''
| 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 display'''| style="text-align: left;"| '''OK'''| <span style="text-aligncolor: left;#FF0000"| '''OK>NO</span>'''
|-
| style="text-align: left;"| '''MIPI LCD Touch'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''MIPI LCD backlight'''| style="text-align: left;"| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI CEC function'''| style="text-align: left;"| '''NO'''| <span style="text-aligncolor: left;#FF0000"| '''OK>NO</span>'''
|}
<span id="howtest-to-use-themethod-usbof-wirelesshdmi-networkin-card1"></span> == How Test method of HDMI In == <ol style="list-style-type: decimal;"><li><p>The location of the HDMI In interface on the development board is as follows:</p><p>[[File:plus5-img265.png]]</p></li><li><p>Then use the HDMI to HDMI cable shown in the figure below to use connect the HDMI output of other devices to the HDMI In interface of the development board</p><p>[[File:plus5-img11.png]]</p></li><li><p>Make sure that the HDMI output of the device connected to the HDMI In interface is normal, and then open the HDMI In test APP</p><p>[[File:plus5-img687.png]]</p></li><li><p>Then the window shown in the figure below will appear. At this time, the video input of HDMI In cannot be seen. You need to click the position marked in the red box in the figure below to enlarge it to full screen</p><p>[[File:plus5-img688.png]]</p></li><li><p>Then you can see the video input of HDMI In, and the audio input of HDMI In will also be output from the HDMI TX interface or headphone interface of the development board. The figure below shows the desktop of the Linux system of the USB wireless network card OPi5 development board input through HDMI In.</p><p>[[File:plus5-img689.png]]</p></li></ol> <span id="appendix"></span> ='''Appendix''' =
# Currently, the USB wireless network card models compatible with the Android image are as follows:<span id="user-manual-update-history"></span>== User Manual Update History ==
{| class="wikitable"
|-
| style="text-align: left;"| '''Chip modelversion'''| style="text-align: left;"| '''FunctionDate'''| style="text-align: left;"| '''VID&amp;PID'''| style="text-align: left;"| '''AdaptationUpdated Notes'''
|-
| style="text-align: left;"| '''RTL8723BU'''| style="text-align: left;"| '''2.4G WIFI+BT4v1.0'''| style="text2023-align: left;"| '''0bda:b720'''05-22| style="text-align: left;"| '''Support WIFI and Bluetooth function, does not support hotspot'''initial version
|-
| style="text-align: left;"| '''RTL8811CU'''v1.1| style="text2023-align: left;"| '''2.4G +5G WIFI'''| style="text05-align: left;"| '''0bda:c811'''24| style="text-align: left;"| '''Support WIFI function and open hotspot'''|}1. How to use the infrared remote control of the Android Box system
<ol start="2" style="list-style-type: decimal;"><li><p>The pictures of . Instructions for using the above two USB wireless network cards are as follows:</p><ol style="list-style-type: lower-alpha;"><li><p>The picture of the RTL8723BU USB wireless network card module is &gt; as follows:</p><div class="figure">Orange Pi OS Droid system
[[File:./images/media/image705|-| v1.png2|175x103px|C89CEA9A2023-B32205-42d2-B476-2392A50E6FC4]]26| 1. Ubuntu/Debian: HDMI IN test method
</div></li><li><p>The picture of the RTL8811CU USB wireless network card module is &gt; as follows:</p><p>[[File:2./images/media/image706.png|124x107px]]</p></li></ol></li><li><p>The test methods of Delete the above two types of USB wireless network cards are the same. First, the USB network card needs to be inserted into instructions for using the RTL8821CU USB interface of the development board.</p></li><li><p>Then, for the connection and test method of WIFImodule, please refer to the section of WIFI connection test method</p></li><li><p>For the Bluetooth test, please refer to the content of the Bluetooth test method</p></li></ol>this module is not recommended
<span id="m|-| v1.23| 2023-how05-to-use-e-key-pcie-wifi6bluetooth-module"></span>29| == M1.2 How Update the method of using RKDevTool to use E-Key PCIe WIFI6burn the image to spiflash+Bluetooth module ==ssd
# The PCIe wireless network card models currently compatible with Android 12 are as follows:2. Use RKDevTool to clear SPIFlash
{| class="wikitable"
|-
| '''serial number'''
| '''model'''
| '''Physical picture'''
|-
| '''1'''v1.4| 2023-05-31| '''RTL8852BE'''1. Update the usage method of M.2 E-Key PCIe WIFI6+Bluetooth module
'''(PCIE+USB interface)'''2. Ubuntu/Debian: How to use the ZFS file system
| [[File:3.Ubuntu/i%20mages/media/image7%2007.png]]|}Debian: Turn off the green light and blue light by default when booting
<ol start="2" style="list-style-type: decimal;"><li><p>First insert the PCIe wireless network card into the M4.2 E-KEY interface of Add the development board and fix it</p><p>[[File:./images/media/image708.png|263x178px]]</p></li><li><p>Then connect the power supply of the Type-C interface to the development board, and power on</p></li><li><p>After instructions for using the Debian12 system starts, please refer to the section of WIFI connection test method for WIFI connection and test method</p></li><li><p>For the Bluetooth test, please refer to the content of the Bluetooth test method</p></li></ol>(scattered in multiple sections)
<span id="wifi-connection-test-method"></span>== WIFI connection test method ==5. Instructions for using the 5v pin in the 40pin interface of the development board to supply power
'''First |-| v1.5| 2023-06-07| 1. Add the picture of all, please note that there is no WIFI eMMC module on the Orange Pi 5 Plus development board, and an external PCIe network card or USB network card is required to use the WIFI function.'''
'''For instructions on using the external PCIe network card, please refer to 2. Correct the section on how to use picture of the M.2 E-Key PCIe WIFI6+Bluetooth module.'''cooling fan interface
'''For instructions on using the external USB network card, please refer 3. Add a method to check the section on how to use the USB wireless network card.'''temperature of nvme ssd
# First click to enter the '''Setting'''|}
[[File:.<span id="image-update-history"></images/media/image709.png|553x182px]]span>
<ol start="2" style="list-style-type: decimal;"><li>Then select '''Network &amp; internet'''</li></ol>Image update history ==
[[File:./images/media/image710.png{|553x154px]]class="wikitable"|-| '''Date'''
<ol start="3" style="list-style-type: decimal;"><li>Then select | '''InternetUpdated Notes'''</li></ol>|-| 2023-05-19| Orangepi5plus_1.0.0_debian_bullseye_server_linux5.10.110.7z
[[File:Orangepi5plus_1./images/media/image7110.png|553x103px]]0_debian_bullseye_desktop_xfce_linux5.10.110.7z
<ol start="4" style="listOrangepi5plus_1.0.0_debian_bullseye_desktop_kde-style-type: decimal;"><li>Then turn on the '''Wi-Fi''' switch</li></ol>plasma_linux5.10.110.7z
[[File:Orangepi5plus_1./images/media/image7120.png|553x65px]]0_ubuntu_focal_server_linux5.10.110.7z
<ol start="5" style="list-style-type: decimal;"><li><p>After turning on '''Wi-Fi''', if everything is normal, you can scan to nearby Wi-Fi hotspots</p><p>[[File:Orangepi5plus_1./images/media/image7130.png|549x172px]]</p></li><li><p>Then select the Wi-Fi you want to connect to, and the password input interface shown in the figure below will pop up</p><p>[[File:0_ubuntu_focal_desktop_xfce_linux5./images/media/image71410.png|553x237px]]</p></li><li><p>Then use the keyboard to enter the password corresponding to Wi-Fi, and then use the mouse to click the Enter button in the virtual keyboard to start connecting to Wi-Fi</p><p>[[File:110./images/media/image715.png|553x232px]]</p></li><li><p>The display after successful Wi-Fi connection is shown in the figure below:</p><p>[[File:./images/media/image716.png|553x93px]]</p></li></ol>7z
<span id="how-to-use-wi-fi-hotspot"></span>== How to use Wi-Fi hotspot ==Orangepi5plus_1.0.0_ubuntu_jammy_server_linux5.10.110.7z
<ol style="list-style-type: decimal;"><li><p>First, please make sure that the Ethernet port is connected to the network cable and can access the Internet normally</p></li><li><p>Then select '''Settings'''</p><p>[[File:Orangepi5plus_1./images/media/image7090.png|553x182px]]</p></li><li><p>Then select '''Network &amp;''' '''internet'''</p><p>[[File:0_ubuntu_jammy_desktop_xfce_linux5./images/media/image71010.png|553x154px]]</p></li><li><p>Then select '''Hotspot''' '''&amp; tethering'''</p><p>[[File:110./images/media/image717.png|575x195px]]</p></li><li><p>Then select '''Wi-Fi hotspot'''</p><p>[[File:./images/media/image718.png|575x96px]]</p></li><li><p>Then turn on the '''Wi-Fi hotspot''', you can also see the name and password of the generated hotspot in the figure below, remember them, and use them when connecting to the hotspot '''(if you need to modify the name and password of the hotspot, you need to turn off the Wi-Fi first -Fi hotspot before modification)'''</p><p>[[File:./images/media/image719.png|575x187px]]</p></li><li><p>At this point, you can take out your mobile phone. If everything is normal, you can find the WIFI hotspot with the same name ('''here AndroidAP_6953''') displayed under the '''Hotspot name''' in the above picture in the WI-FI list searched by the mobile phone. Then you can click '''AndroidAP_6953''' to connect to the hotspot, and the password can be seen under the '''Hotspot password''' in the above picture</p></li></ol>7z
[[File:Orangepi5plus_1./images/media/image7200.png|342x260px]]0_ubuntu_jammy_desktop_gnome_linux5.10.110.7z
<ol start="8" style="listOpios-styledroid-type: decimal;"><li>After the connection is successful, it will be displayed as shown in the figure below (the interface of different mobile phones will be different, the specific interface is subject to the display of your mobile phone)aarch64-opi5plus-23.05-linux5. At this point, you can open a webpage on your mobile phone to see if you can access the Internet10. If you can open the webpage normally, it means that the '''WI-FI Hotspot''' of the development board can be used normally110.tar.</li></ol>gz
[[File:Opios-droid-aarch64-opi5plus-23./images/media/image72105-linux5.png|347x175px]]10.110-spi-nvme.tar.gz
<span id="bluetooth-test-method"></span>== Bluetooth test method ==OrangePi5Plus_RK3588_Android12_v1.0.0.tar.gz
'''Please note that there is no Bluetooth module on the Orange Pi 5 Plus development board, and an external PCIe network card with Bluetooth or a USB network card with Bluetooth is required to use the Bluetooth functionOrangePi5Plus_RK3588_Android12_lcd_v1.'''0.0.tar.gz
'''For instructions on using the external PCIe network card, please refer to the section on how to use the MOrangePi5Plus-RK3588_Android12-box_v1.2 E-Key PCIe WIFI6+Bluetooth module0.0.tar.'''gz
'''For instructions on using the external USB network card, please refer to the section on how to use the USB wireless network cardOrangePi5Plus_RK3588_Android12_spi-nvme_v1.'''0.0.tar.gz
<ol style="listOrangePi5Plus_RK3588_Android12_spi-style-type: decimal;"><li><p>First click to enter the '''Setting'''</p><p>[[File:./images/media/image709.png|553x182px]]</p></li><li><p>Then select '''Connected devices'''</p><p>[[File:./images/media/image722.png|575x146px]]</p></li><li><p>Then click '''<span class="mark">Pair new device</span>''' to turn on Bluetooth and start scanning the surrounding Bluetooth devices</p><p>[[File:./images/media/image723.png|575x144px]]</p></li><li><p>The searched Bluetooth devices will be displayed under '''Available devices'''</p><p>[[File:./images/media/image724.png|575x200px]]</p></li><li><p>Then click the Bluetooth device you want to connect to start pairing. When the following interface pops up, please use the mouse to select the '''Pair''' option</p><p>[[File:./images/media/image725.png|575x155px]]</p></li><li><p>The test here is the configuration process of the development board and the Bluetooth of the Android mobile phone. At this time, the following confirmation interface will pop up on the mobile phone. After clicking the pairing button on the mobile phone, the pairing process will start</p><p>[[File:./images/media/image726.png|308x232px]]</p></li><li><p>After the pairing is completed, you can see the paired Bluetooth device as shown in the figure below</p><p>[[File:./images/media/image727.png|575x170px]]</p></li><li><p>At this time, you can use the Bluetooth of your mobile phone to send a picture to the development board. After sending, you can see the following confirmation interface in the Android system of the development board, and then click '''Accept''' to start receiving the picture sent by the mobile phone.</p><p>[[File:nvme_lcd_v1./images/media/image7280.png|575x250px]]</p></li><li><p>You can open the '''Download''' directory in the file manager to view the pictures received by the Android system Bluetooth of the development board</p><p>[[File:0./images/media/image729tar.png|575x86px]]</p></li></ol>gz
<span id="testOrangePi5Plus-methodRK3588_Android12-ofbox_spi-hdmi-in"></span>== Test method of HDMI In ==nvme_v1.0.0.tar.gz
<ol style="listopenwrt-styleaarch64-type: decimal;"><li><p>The location of the HDMI In interface on the development board is as follows:</p><p>[[File:opi5plus-23./images/media/image34805-linux5.png|351x112px]]</p></li><li><p>Then use the HDMI to HDMI cable shown in the figure below to connect the HDMI output of other devices to the HDMI In interface of the development board</p><p>[[File:10./images/media/image12.png|199x129px]]</p></li><li><p>Make sure that the HDMI output of the device connected to the HDMI In interface is normal, and then open the HDMI In test APP</p><p>[[File:./images/media/image730.png|532x167px]]</p></li><li><p>Then you can see the video input of HDMI In, and the audio input of HDMI In will also be output from the HDMI TX interface or headphone interface of the development board. The figure below shows the desktop of the Linux system of the OPi5 development board input through HDMI In.</p><p>[[File:110-ext4./images/media/image731img.png|533x301px]]</p></li></ol>gz
<span id="how-to-use-10.9.10.1-inch-mipi-screen"></span>== How to use 10.9.10.1 inch MIPI screen ==* initial version
'''Please make sure that the Android image used is the image of the following two versions:'''|-| 2023-05-22| Opios-arch-aarch64-gnome-opi5plus-23.05-linux5.10.110.img.xz
'''OrangePi5Plus_RK3588_Android12_lcd_v1openwrt-rockchip -armv8-xunlong_orangepi-5-plus-spi-squashfs-sysupgrade.x.x.img'''bin
'''OrangePi5Plus_RK3588_Android12_spi-nvme_lcd_v1.x.x.img'''* initial version
<ol style="list|-style| 2023-type: decimal;"><li><p>The screen needs to be assembled first, please refer to the assembly method of the 10.105-inch MIPI screen</p></li><li><p>The interface position of the LCD on the development board is shown in the figure below:</p>24<p>[[File:./images/media/image732.png|317x80px]]</p><p>'''Note that the touch interface below is not for the LCD MIPI screen. It is currently a spare interface and cannot be usedOrangepi5plus_1.'''</p><p>[[File:0./images/media/image512.png|334x70px]]</p></li><li><p>Connect the assembled screen to the LCD interface, connect the Type2_debian_bullseye_desktop_kde-C power supply to the board, and power onplasma_linux5. After the system starts, you can see the screen display as shown in the figure below</p><p>[[File:./images/media/image73310.png|517x345px]]</p></li></ol>110
<span id="ov13850-and-ov13855-mipi-camera-test-method"></span>== OV13850 and OV13855 MIPI camera test method ==* Fix the problem that desktop audio cannot be used
Currently * Update the development board chromium browser to chromium-browser_110.0, which supports two MIPI camerasvideo playback in h264, OV13850 h265, vp8, vp9 and OV13855, the specific pictures are as follows:av1 formats
<ol style="list|-style| 2023-type: lower05-alpha;">26<li><p>OV13850 camera with 13 million MIPI interface</p>| <p>[[File:Opios-arch-aarch64-gnome-opi5plus-23.05.1-linux5.10.110./images/media/image24img.png|268x151px]]</p></li>xz<li><p>OV13855 camera with 13 million MIPI interface</p><p>[[File* Taskbar:./images/media/image25.png|253x150px]]</p><p>The adapter boards remove calendar and FPC cables used by the OV13850 and OV13855 cameras are the same, but the positions of the two cameras connected to the adapter boards are different. The FPC cable is shown in the figure below. Please note that the FPC cable has a direction. The end marked '''TO MB''' needs to be inserted into the camera interface of the development boardmusic, add shortcuts for command line terminal and the end marked '''TO CAMERA''' needs to be inserted into the camera adapter board.</p></li></ol>browser
[[File:./images/media/image525.png|475x99px]]* Support to open the command line terminal through the shortcut key of CTRL+ALT+T
There are a total of 3 camera interfaces on the camera adapter board, and only one can be used at a time, as shown in the figure below, of which:OrangePi5Plus_RK3588_Android12_v1.0.1.tar.gz
<ol style="list-style-type: lower-alpha;"><li><p>'''NoOrangePi5Plus_RK3588_Android12_v1.1 port is connected to OV13850 camera'''</p></li><li><p>'''No0.2 interface is connected to OV13855 camera'''</p></li><li><p>No1_lcd. 3 interface is not used, just ignore it</p></li></ol>tar.gz
<div class="figure">OrangePi5Plus_RK3588_Android12_v1.0.1_spi-nvme.tar.gz
[[File:OrangePi5Plus_RK3588_Android12_v1./images/media/image7340.png|333x199px|图片3]]1_lcd_spi-nvme.tar.gz
</div>The location of the camera interface on the Orange Pi 5 Plus development board is shown in the figure below:* pre-install google play store
[[File:Orangepi5plus_1./images/media/image7350.png|388x65px]]4_debian_bullseye_desktop_kde-plasma_linux5.10.110.7z
The method of inserting * Support CTRL+ALT+T shortcut to open the camera into the CAM interface of the development board is as follows:command line terminal
[[File:./images/media/image528.png|285x132px]]* Added shortcuts for konsole terminal and chromium browser in the taskbar
After connecting * Optimize the camera to display name of the development board, we can use the following method to test the camera:audio device
<ol style="list-style-type: lower-alpha;"><li><p>Open the camera APP on the desktop</p><p>[[File:* Optimize test_hdmiin./images/media/image736.png|491x279px]]</p></li><li><p>Then you can see the preview screen of the camera</p><div class="figure">sh test script
[[File:./images/media/image737.png|379x213px|Screenshot_20230317-073757]]* Fix the problem that spiflash+nvme ssd cannot start
</div><p>Press and hold the mouse in the area shown in the red box in the picture below of the camera APP and then drag to the right to call up the switching interface for taking pictures and recording</p><p>[[File:Orangepi5plus_1./images/media/image7380.png|391x222px]]</p><p>The switching interface of taking pictures and recording is as follows, click Video to switch to '''video''' recording mode</p><div class="figure">4_debian_bullseye_desktop_xfce_linux5.10.110.7z
[[File:./images/media/image739.png|386x217px|Screenshot_20230317-074419]]* Support CTRL+ALT+T shortcut to open the command line terminal
</div><p>Click * Optimize the position shown in the figure below to enter the camera setting interface</p><p>[[File:./images/media/image740.png|390x221px]]</p><p>The setting interface display name of the camera is as follows:</p><div class="figure">audio device
[[File:* Optimize test_hdmiin./images/media/image741.png|429x241px|Screenshot_20230317-075325]]sh test script
</div></li></ol>* Update the chromium browser to chromium-browser_110.0, which supports video playback in h264, h265, vp8, vp9 and av1 formats
<span id="pin-interface-gpio-uart-spi-and-pwm-test"></span>== 26pin interface GPIO, UART, SPI and PWM test ==* Fix the problem that spiflash+nvme ssd cannot start
Orangepi5plus_1.0.4_ubuntu_focal_desktop_xfce_linux5.10.110.7z<span id="pin-gpio-port-test-3"br />Orangepi5plus_1.0.4_ubuntu_jammy_desktop_xfce_linux5.10.110.7z<br /span>=== 40pin GPIO port test ===Orangepi5plus_1.0.4_ubuntu_jammy_desktop_gnome_linux5.10.110.7z
<ol style="list-style-type: decimal;"><li><p>First click on the wiringOP icon * Support CTRL+ALT+T shortcut to open the wiringOP APP</p><p>[[File:./images/media/image742.png|552x183px]]</p></li><li><p>The main interface of wiringOP APP is displayed as shown in the figure below, and then click the '''GPIO_TEST''' button to open the GPIO test interface</p><p>[[File:./images/media/image743.png|553x131px]]</p></li><li><p>The GPIO test interface is shown in the figure below. The two rows of '''CheckBox''' buttons on the left are in one-to-one correspondence with the 26pin pins. When the '''CheckBox''' button is checked, the corresponding GPIO pin will be set to '''OUT''' mode, and the pin level will be set to high level; when the checkbox is unchecked, the GPIO pin level will be set to low level; When the '''GPIO READALL''' button is pressed, information such as the wPi number, GPIO mode, and pin level can be obtained.</p><p>[[File:./images/media/image744.png|553x288px]]</p></li><li><p>Then click the '''GPIO READALL''' button, the output information is as shown in the figure below:</p><p>[[File:./images/media/image745.png|553x310px]]</p></li><li><p>There are a total of 28 GPIO ports in the 40pins of the development board that can be used. The following uses pin 11—the corresponding GPIO is GPIO1_A4—the corresponding wPi serial number is 5—as an example to demonstrate how to set the high and low levels of the GPIO port. First click the '''CheckBox''' button corresponding to pin 11. When the button is selected, pin 11 will be set to high level. After setting, you can use a multimeter to measure the voltage value of the pin. If it is '''3.3v''', it means setting high level success</p><p>[[File:./images/media/image746.png|204x392px]]</p></li><li><p>Then click the '''GPIO READALL''' button, you can see that the current pin 7 mode is '''OUT''', and the pin level is high</p><p>[[File:./images/media/image747.png|552x259px]]</p></li><li><p>Click the '''CheckBox''' button in the figure below again to cancel the check status. Pin 11 will be set to low level. After setting, you can use a multimeter to measure the voltage value of the pin. If it is '''0v''', it means that the low level is set successfully.</p><p>[[File:./images/media/image748.png|205x394px]]</p></li><li><p>Then click the '''GPIO READALL''' button, you can see that the current mode of pin 11 is OUT, and the pin level is low</p><p>[[File:./images/media/image749.png|552x258px]]</p></li></ol>command line terminal
<span id="pin-uart-test-2"></span>=== 40pin UART test ===* Optimize the display name of the audio device
<ol style="list-style-type: decimal;"><li><p>'''UART3''' and '''UART8''' are enabled by default in Android* Optimize test_hdmiin. The position of the 40pin is shown in the figure below, and the corresponding device nodes are /dev/ttyS3 and /dev/ttyS8 respectively</p><p>[[File:./images/media/image750.png|508x139px]]</p></li><li><p>First click on the wiringOP icon to open the wiringOP APP</p><p>[[File:./images/media/image742.png|552x183px]]</p></li><li><p>The main interface of wiringOP APP is displayed as shown in the figure below, and then click the '''UART_TEST''' button to open the UART test interface</p><p>[[File:./images/media/image751.png|552x123px]]</p></li><li><p>The serial port sh test interface of the APP is shown in the figure below</p></li></ol>script
[[File:./images/media/image752.png|552x310px]]* Fix the problem that spiflash+nvme ssd cannot start
Orangepi5plus_1.0.4_debian_bullseye_server_linux5.10.110.7z<ol start="5" style="list-style-type: decimal;"br /><li>Take the test of '''UART3''' as an example below, select the '''/dev/ttyS3''' node in the selection box, enter the baud rate you want to set in the edit box, and then click the '''OPEN''' button to open the '''/dev/ttyS3''' nodeOrangepi5plus_1.0.4_ubuntu_focal_server_linux5.10.110. After opening successfully, click the OPEN button becomes unselectable, and the '''CLOSE''' button and '''SEND''' button become selectable7z<br /li></ol>Orangepi5plus_1.0.4_ubuntu_jammy_server_linux5.10.110.7z
[[File:./images/media/image753.png|552x154px]]* Fix the problem that spiflash+nvme ssd cannot start
<ol start="6" style="list|-style| 2023-type: decimal;">05-29<li><p>Then use Dupont wire to short the RXD and TXD pins of uart3</p>| <p>[[File:Opios-droid-aarch64-opi5plus-23./images/media/image75405.png|455x121px]]</p></li><li><p>Then you can enter a character in the send edit box below, and click the '''SEND''' button to start sending</p></li></ol>1-linux5.10.110-en.tar.gz
[[File:Opios-droid-aarch64-opi5plus-23./images/media/image75505.png|553x155px]]1-linux5.10.110-en-spi-nvme.tar.gz
<ol start="8" style="list* Pre-style-type: decimal;"><li>If everything is normal, the received string will be displayed installed google play store (en in the receiving box</li></ol>above image name means English version, you need to go to Google network disk to download)
[[File:|-| 2023-06-01| Orangepi5plus_1./images/media/image7560.png|553x290px]]6_ubuntu_jammy_desktop_xfce_linux5.10.110.7z
<span id="pin-spi-test-3"></span>=== 26pin SPI test ===* Fix the problem that the zfs file system cannot be installed
<ol style="list* Add rk3588-styleopi5plus-type: decimal;"><li><p>From the table below, the available SPIs for Orange Pi 5 Plus are SPI0 and SPI4</p><p>[[File:./images/media/image389.png|575x137px]]</p></li><li><p>The Android system opens the SPI0 configuration by default. Here is a demonstration to test the SPI0 interface through the w25q64 moduledisable-leds. Firstdtbo, connect the w25q64 device used to the SPI0 interface.</p><p>[[File:./images/media/image757.png|195x164px]]</p></li><li><p>Then click the wiringOP icon to open the wiringOP APP</p><p>[[File:./images/media/image742.png|552x183px]]</p></li><li><p>The main interface of wiringOP APP is displayed as shown in the figure below, click the '''SPI_TEST''' button to open the SPI test interface</p><p>[[File:./images/media/image758.png|552x123px]]</p></li><li><p>Then click the '''OPEN''' button to initialize the SPI</p></li></ol>turn off blue and green lights
[[File:* Update the chromium browser to chromium-browser_110./images/media/image759.png|552x155px]]0, which supports video playback in h264, h265, vp8, vp9 and av1 formats
<ol start="6" style="list-style-type: decimal;"><li><p>Then fill in the bytes that need to be sent, such as reading the ID information of w25q64, fill in the address 0x9f in data[Orangepi5plus_1.0], and then click the '''TRANSFER''' button</p><p>[[File:./images/media/image7606_debian_bullseye_desktop_xfce_linux5.10.110.png|575x252px]]</p></li><li><p>Finally, the APP will display the read ID information</p></li></ol>7z
[[File:Orangepi5plus_1./images/media/image7610.png|552x206px]]6_debian_bullseye_desktop_kde-plasma_linux5.10.110.7z
<ol start="8" style="list-style-type: decimal;"><li><p>The MANUFACTURER ID of the w25q64 module is EFh, and the Device ID is 4017h, corresponding to the value read above (h stands for hexadecimal)</p><p>[[File:./images/media/image762.png|374x126px]]</p></li></ol>* Update mpp package
<span id="pin-pwm-test"></span>=== 26pin PWM test ===* Fix the problem that the zfs file system cannot be installed
<ol style="list* Add rk3588-styleopi5plus-type: decimal;"><li><p>Android enables '''PWM10''' and '''PWM14''' by default, and the corresponding pins are located at 40pin as shown in the figure below:</p><p>[[File:./images/media/image763.png|431x130px]]</p></li><li><p>First click on the wiringOP icon to open the wiringOP APP</p><p>[[File:./images/media/image742.png|552x183px]]</p></li><li><p>Then click the '''PWM_TEST''' button on the main interface of wiringOP to enter the PWM test interface</p><p>[[File:./images/media/image764.png|553x125px]]</p></li><li><p>The base address corresponding to PWM10 is '''febe0020''', and the base address corresponding to PWM14 is '''febf0020'''. Here, '''fd8b0020.pwm''' is displayed on the right of pwmchip0. At this time, you need to click the drop-down option to select other pwmchips until '''febe0020''' or '''febf0020''' is displayed on the right.</p><p>[[File:./images/media/image765.png|553x111px]]</p></li><li><p>When the drop-down option menu selects '''pwmchip2''', the corresponding base address of '''PWM10''' is '''febe0020''' on the right</p><p>[[File:./images/media/image766.png|553x102px]]</p></li><li><p>When the dropdisable-down option menu selects '''pwmchip4''', the corresponding base address of '''PWM14''' is '''febe0020''' on the right</p><p>[[File:./images/media/image767.png|553x102px]]</p></li><li><p>Take the test of PWM10 as an example, we need to select '''pwmchip2'''</p><p>[[File:./images/media/image766leds.png|553x102px]]</p></li><li><p>Then confirm the PWM period, the default configuration is '''50000ns''', converted to PWM frequency is '''20KHz''', you can modify it yourself, click the open button to export '''PWM10'''</p><p>[[File:./images/media/image768.png|552x101px]]</p></li><li><p>Then drag the drag bar below to change the PWM duty cycledtbo, and then check Enable to output the PWM waveform</p></li></ol> [[File:./images/media/image769.png|575x116px]] <ol start="10" style="list-style-type: decimal;"><li>Then use an oscilloscope used to measure the 31st pin in the 40pin of the development board, turn off blue and you can see the following waveform</li></ol> [[File:./images/media/image770.png|460x276px]] <span id="how-to-use-adb-1"></span>== How to use ADB ==green lights
<span id="use-the-data-cable-to-connect-to-adb-debugging"></span>=== Use the data cable to connect to adb debugging === <ol style="list-style-type: decimal;"><li><p>First prepare a good quality Type-C data cable</p><p>[[File:Orangepi5plus_1./images/media/image220.png|122x97px]]</p></li><li><p>Then connect the development board and Ubuntu PC through the Type-C data cable6_ubuntu_focal_desktop_xfce_linux5. The position of the Type-C interface of the development board is shown in the figure below:</p><div class="figure">10.110.7z
[[File:Orangepi5plus_1./images/media/image630.jpeg|319x90px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-26_ubuntu_jammy_desktop_gnome_linux5.jpg未标题-2]]10.110.7z
</div></li><li><p>Then install the adb tool on the Ubuntu PC</p><p>test@test:~$ '''sudo apt update'''</p><p>test@test:~$ '''sudo apt''' '''-y''' '''install adb'''</p></li><li><p>You can view the identified ADB devices through the following command</p><p>test@test:~$ '''adb devices'''</p><p>List of devices attached</p><p>S63QCF54CJ device</p><p>test@test:~$ '''lsusb'''</p><p>Bus 003 Device 006: ID 2207:0006</p></li><li><p>Then you can log in to the android system through the adb shell on the Ubuntu PC</p></li></ol>Orangepi5plus_1.0.6_ubuntu_focal_server_linux5.10.110.7z
test@test:~$ '''adb shell'''Orangepi5plus_1.0.6_debian_bullseye_server_linux5.10.110.7z
console:/ $Orangepi5plus_1.0.6_ubuntu_jammy_server_linux5.10.110.7z
<ol start="6" style="list* Add rk3588-styleopi5plus-type: decimal;"><li>Execute the following command disable-leds.dtbo, used to remount the Android system</li></ol>turn off blue and green lights
test@test:~$ '''adb root'''* Fix the problem that the zfs file system cannot be installed
test@test:~$ '''adb remount'''Orangepi5plus_1.0.6_debian_bookworm_server_linux5.10.110
<ol start="7" style="list-style-type: decimal;"><li>Then you can transfer files to the Android system</li></ol>Orangepi5plus_1.0.6_debian_bookworm_desktop_xfce_linux5.10.110
test@test:~$ '''adb push example.txt /system/''' <span id="use-network-connection-adb-debugging"></span>=== Use network connection adb debugging === '''Using the network adb does not require a data cable of the Typc-C interface to connect the computer and the development board, but to communicate through the network, so first of all, please ensure that the wired or wireless network of the development board has been connected, and then obtain the IP address of the development board, and then to use.''' <ol style="list-style-type: decimal;"><li><p>Make sure that the '''service.adb.tcp.port''' of the Android system is set to port number 5555</p><p>console:/ # '''getprop | grep &quot;adb.tcp&quot;'''</p><p>[service.adb.tcp.port]: ['''5555''']</p></li><li><p>If '''service.adb.tcp.port''' is not set, you can use the following command to set the port number of network adb</p></li></ol> console:/ # '''setprop service.adb.tcp.port 5555''' console:/ # '''stop adbd''' console:/ # '''start adbd''' <ol start="3" style="list-style-type: decimal;"><li><p>Install adb tool on Ubuntu PC</p><p>test@test:~$ '''sudo apt update'''</p><p>test@test:~$ '''sudo apt install''' '''-y''' '''adb'''</p></li><li><p>Then connect network adb on Ubuntu PC</p><p>test@test:~$ '''adb connect 192.168.1.xxx''' '''(The IP address needs to be changed to the IP address of the development board)'''</p><p>* daemon not running; starting now at tcp:5037</p><p>* daemon started successfully</p><p>connected to 192.168.1.xxx:5555</p><p>test@test:~$ '''adb devices'''</p><p>List of devices attached</p><p>192.168.1.xxx:5555 device</p></li><li><p>Then you can log in to the android system through the adb shell on the Ubuntu PC</p></li></ol> test@test:~$ '''adb shell''' console:/ # <span id="g-usb-remote-control-tested-by-android-box"></span>== 2.4G USB remote control tested by Android Box == <ol style="list-style-type: decimal;"><li><p>A 2.4G USB remote control that has been tested so far is shown in the figure below</p><ol style="list-style-type: lower-alpha;"><li><p>Contains a remote control</p><p>[[File:./images/media/image771.png|199x149px]]</p></li><li><p>A USB wireless receiver</p><p>[[File:./images/media/image772.png|110x119px]]</p></li></ol></li><li><p>The Android Box system does not require any configuration, it can be used after plugging it in</p></li></ol> <span id="how-to-use-the-infrared-remote-control-of-the-android-box-system"></span>== How to use the infrared remote control of the Android Box system == <ol style="list-style-type: decimal;"><li><p>The development board comes with an infrared receiver, and its location is shown in the figure below:</p><p>[[File:./images/media/image773.png|435x124px]]</p></li><li><p>Before testing infrared reception, we need to prepare an infrared remote control</p><div class="figure"> [[File:./images/media/image774.png|141x127px|6FBFE2FA-31A4-4a26-AC63-9A3E4E359FFF]] </div><p>'''Note: The Android system provided by Orange Pi only supports the remote control provided by Orange Pi by default, and the remote control of TV or air conditioner cannot be used.'''</p></li><li><p>The Android Box system has been adapted to this remote control, and it can be used directly without other settings.</p></li></ol> <span id="how-to-use-hdmi-cec-function-in-android-box-system"></span>== How to use HDMI CEC function in Android Box system == '''HDMI CEC allows users to control all connected devices through HDMI with only one remote control. Based on this function, we can control the development board with the remote control of the TV.''' '''Before testing this function, please make sure your TV supports HDMI CEC.''' <ol style="list-style-type: decimal;"><li><p>First connect the development board to the TV through the HDMI cable, then power on and start</p></li><li><p>Then turn on the HDMI CEC function in the TV settings. Different TVs may have different ways to turn it on. Here we take Xiaomi TV as an example. Press the menu button on the remote control, then select CEC remote control and press the confirmation button</p><p>[[File:./images/media/image775.png|575x323px]]</p></li><li><p>Then select '''&quot;On&quot;''' to open the HDMI CEC remote control</p><p>[[File:./images/media/image776.png|576x257px]]</p></li><li><p>At this point, you can control the Android Box system of the development board through the remote control of the TV</p></li></ol> <span id="how-to-compile-android-12-source-code"></span>= How to compile Android 12 source code = <span id="download-android-12-source-code"></span>== Download Android 12 source code == <ol style="list-style-type: decimal;"><li><p>First download the Android 12 source code sub-volume compressed package from Google network disk</p><p>[[File:./images/media/image777.png|575x138px]]</p></li><li><p>After downloading the sub-volume compression package of the Android 12 source code, please check whether the MD5 checksum is correct, if not, please download the source code again</p><p>test@test:~$ '''md5sum -c Android_12.tar.gz.md5sum'''</p><p>'''Android_12.tar.gz00:''' '''confirm'''</p><p>'''Android_12.tar.gz01:''' '''confirm'''</p><p>'''Android_12.tar.gz02:''' '''confirm'''</p><p>'''Android_12.tar.gz03:''' '''confirm'''</p><p>'''Android_12.tar.gz04:''' '''confirm'''</p><p>'''Android_12.tar.gz05:''' '''confirm'''</p><p>'''Android_12.tar.gz06:''' '''confirm'''</p><p>'''Android_12.tar.gz07:''' '''confirm'''</p></li><li><p>Then you need to merge multiple compressed files into one, and then decompress</p></li></ol> test@test:~$ '''cat Android_12.tar.gz0* &gt; Android_12.tar.gz''' test@test:~$ '''tar''' '''-xvf Android_12.tar.gz''' <span id="compile-the-source-code-of-android-12"></span>== Compile the source code of Android 12 == <ol style="list-style-type: decimal;"><li><p>First install the software packages required to compile the Android12 source code</p><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>There is a build.sh compilation script in the source code, and the compilation parameters are as follows</p><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li><p>a.-'''U''': compile uboot</p><p>b.-'''K''': compile kernel</p><p>c.-'''A''': compile android</p><p>d.-'''u''': package and generate update.img and update_spi_nvme.img</p><p>e.-'''o''': Compile the OTA package</p><p>f.-'''d''': specify kernel dts</p></li></ol></li><li><p>Compile uboot, kernel, android and package them into update.img</p><ol style="list-style-type: lower-alpha;"><li><p>The command to compile and support HDMI 8K display image (LCD &gt; off by default) is as follows:</p><p>test@test:~$ '''cd''' '''Android_12'''</p><p>test@test:~/ Android_12$ '''source build/envsetup.sh'''</p><p>test@test:~/ Android_12$ '''lunch rk3588_s-userdebug'''</p><p>test@test:~/ Android_12$ '''./build.sh -AUKu'''</p></li><li><p>The command to compile and support LCD display image is as &gt; follows:</p><p>test@test:~$ '''cd''' '''Android_12'''</p><p>test@test:~/ Android_12$ '''export DUAL_LCD=true'''</p><p>test@test:~/ Android_12$ '''source build/envsetup.sh'''</p><p>test@test:~/ Android_12$ '''lunch rk3588_s-userdebug'''</p><p>test@test:~/ Android_12$ '''./build.sh -AUKu'''</p></li><li><p>The command to compile the image of the Box version is as &gt; follows:</p><p>test@test:~$ '''cd''' '''Android_12'''</p><p>test@test:~/ Android_12$ '''export BOARD=orangepi5plus'''</p><p>test@test:~/ Android_12$ '''source build/envsetup.sh'''</p><p>test@test:~/ Android_12$ '''lunch rk3588_box-userdebug'''</p><p>test@test:~/ Android_12$ '''./build.sh -AUKu'''</p></li></ol></li><li><p>After the compilation is complete, the following information will be printed</p><p>********rkImageMaker ver 2.1********</p><p>Generating new image, please wait...</p><p>Writing head info...</p><p>Writing boot file...</p><p>Writing firmware...</p><p>Generating MD5 data...</p><p>MD5 data generated successfully!</p><p>New image generated successfully!</p><p>Making update.img OK.</p><p>Make update image ok!</p></li><li><p>The final image file will be placed in the '''rockdev/Image-rk3588_s''' directory. Among them, '''update.img''' is the boot image that supports TF card and eMMC, and '''update_spi_nvme.img''' is the boot image of NVME SSD</p><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>If you compile the image of the Box version, the final generated image file will be placed in the '''rockdev/Image-rk3588_box''' directory</p><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> <span id="instructions-for-using-the-orange-pi-os-droid-system"></span>= Instructions for using the Orange Pi OS Droid system = <span id="function-adaptation-of-opi-os-droid-system"></span>== Function adaptation of OPi OS Droid system == {| class="wikitable"|-| style="text-align: left;"| '''Function'''| style="text-align: left;"| '''OPi OS Droid function adaptation'''|-| style="text-align: left;"| '''HDMI TX1 display'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX1 Audio'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX2 display'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX2 Audio'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI RX display'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI RX Audio'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''USB2.0X2'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''2.5G PCIe network port X2'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''2.5G PCIe network port light'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Debug serial port'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''RTC'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''FAN interface'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''eMMC extension interface'''| 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;"| '''NO'''|-| style="text-align: left;"| '''AX200-BT'''| style="text-align: left;"| '''NO'''|-| style="text-align: left;"| '''AX210-WIFI'''| style="text-align: left;"| '''NO'''|-| style="text-align: left;"| '''AX210-BT'''| style="text-align: left;"| '''NO'''|-| 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 button'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C interface USB3.0 function'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C interface ADB function'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C interface DP display function'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Type-C interface DP audio playback'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''USB3.0 Hub'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''switch button'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''infrared function'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''led light'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Onboard MIC'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''headphone playback'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''headphone recording'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''SPK Horn'''| 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 card start'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''SPI Flash+NVME solid state boot'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''OV13850 camera'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''OV13855 camera'''| 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;"| '''NO'''|-| style="text-align: left;"| '''HDMI CEC'''| style="text-align: left;"| '''NO'''|} <span id="test-method-of-hdmi-in-1"></span>== Test method of HDMI In == <ol style="list-style-type: decimal;"><li><p>The location of the HDMI In interface on the development board is as follows:</p><p>[[File:./images/media/image348.png|282x90px]]</p></li><li><p>Then use the HDMI to HDMI cable shown in the figure below to connect the HDMI output of other devices to the HDMI In interface of the development board</p><p>[[File:./images/media/image12.png|136x88px]]</p></li><li><p>Make sure that the HDMI output of the device connected to the HDMI In interface is normal, and then open the HDMI In test APP</p><p>[[File:./images/media/image778.png|395x222px]]</p></li><li><p>Then the window shown in the figure below will appear. At this time, the video input of HDMI In cannot be seen. You need to click the position marked in the red box in the figure below to enlarge it to full screen</p><p>[[File:./images/media/image779.png|384x229px]]</p></li><li><p>Then you can see the video input of HDMI In, and the audio input of HDMI In will also be output from the HDMI TX interface or headphone interface of the development board. The figure below shows the desktop of the Linux system of the OPi5 development board input through HDMI In.</p><p>[[File:./images/media/image780.png|400x238px]]</p></li></ol> <span id="appendix"></span>= Appendix = <span id="user-manual-update-history"></span>== User Manual Update History == {| class="wikitable"|-| * *vers ion** | * *Date** | '''Updated Notes'''|-| v1.0| 202 3-05-22| initial version|-| v1.1| 202 3-05-24| 1. How to use the infrared remote control of the Android Box system 2. Instructions for using the Orange Pi OS Droid system |-| v1.2| 202 3-05-26| 1. Ubuntu/Debian: HDMI IN test method 2. Delete the instructions for using the RTL8821CU USB WIFI module, this module is not recommended |-| v1.3| 202 3-05-29| 1. Update the method of using RKDevTool to burn the image to spiflash+ssd 2. Use RKDevTool to clear SPIFlash |} <span id="image-update-history"></span>== Image update history == {| class="wikitable"|-| * *Date** | '''Updated Notes'''|-| 202 3-05-19| Orangepi5plus_1.0.0_debian_bullseye_server_linux5.10.110 Oran gepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110 Orangepi5p lus_1.0.0_debian_bullseye_desktop_kde-plasma_linux5.10.110 Orangepi5plus_1.0.0_ubuntu_focal_server_linux5.10.110 O rangepi5plus_1.0.0_ubuntu_focal_desktop_xfce_linux5.10.110 Orangepi5plus_1.0.0_ubuntu_jammy_server_linux5.10.110 O rangepi5plus_1.0.0_ubuntu_jammy_desktop_xfce_linux5.10.110 Or angepi5plus_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 * initial version |-| 202 3-05-22| Op ios-arch-aarch64-gnome-opi5plus-23.05-linux5.10.110.img.xz openwrt-rockchip -armv8-xunlong_orangepi-5-plus-spi-squashfs-sysupgrade.bin * initial version |-| 202 3-05-24| Orangepi5p lus_1.0.2_debian_bullseye_desktop_kde-plasma_linux5.10.110 * Fix the problem that desktop audio cannot be used * Update the chromium browser to chromium-browser_110.0, which supports video playback in h264, h265, vp8, vp9 and av1 formats |-| 202 3-05-26| Opio s-arch-aarch64-gnome-opi5plus-23.05.1-linux5.10.110.img.xz * Taskbar: remove calendar and music, add shortcuts for command line terminal and browser * Support to open the command line terminal through the shortcut key of CTRL+ALT+T OrangePi5Plus_RK3588_Android12_v1.0.1.tar.gz OrangePi5Plus_RK3588_Android12_v1.0.1_lcd.tar.gz OrangePi5Plus_RK3588_Android12_v1.0.1_spi-nvme.tar.gz OrangePi5Plus_RK3588_Android12_v1.0.1_lcd_spi-nvme.tar.gz * pre-install google play store Orangepi5p lus_1.0.4_debian_bullseye_desktop_kde-plasma_linux5.10.110 * Support CTRL+ALT+T shortcut to open the command line terminal * Added shortcuts for konsole terminal and chromium browser in the taskbar * Optimize the display name of the audio device * Optimize test_hdmiin.sh test script * Fix the problem that spiflash+nvme ssd cannot start Oran gepi5plus_1.0.4_debian_bullseye_desktop_xfce_linux5.10.110 * Support CTRL+ALT+T shortcut to open the command line terminal * Optimize the display name of the audio device * Optimize test_hdmiin.sh test script * Update the chromium browser to chromium-browser_110.0, which supports video playback in h264, h265, vp8, vp9 and av1 formats * Fix the problem that spiflash+nvme ssd cannot start Or angepi5plus_1.0.4_ubuntu_focal_desktop_xfce_linux5.10.110<br />Or angepi5plus_1.0.4_ubuntu_jammy_desktop_xfce_linux5.10.110<br />Or angepi5plus_1.0.4_ubuntu_jammy_desktop_gnome_linux5.10.110 * Support CTRL+ALT+T shortcut to open the command line terminal * Optimize the display name of the audio device * Optimize test_hdmiin.sh test script * Fix the problem that spiflash+nvme ssd cannot start Orangepi5plus_1.0.4_debian_bullseye_server_linux5.10.110<br />Orangepi5plus_1.0.4_ubuntu_focal_server_linux5.10.110<br />Orangepi5plus_1.0.4_ubuntu_jammy_server_linux5.10.110 * Fix the problem that spiflash+nvme ssd cannot start |} <span id="section-82"></span>= = <span id="section-83"></span>== == <span id="section-84"></span>=== === <ol start="3" style="list-style-type: decimal;"><li></li><li></li></ol> <span id="section-85"></span>=== === <ol start="5" style="list-style-type: decimal;"><li></li><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li></ol></li></ol> <span id="section-86"></span>== == <span id="section-87"></span>=== === <ol start="4" style="list-style-type: decimal;"><li></li><li></li></ol>  -----  ----- <ol start="6" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li></ol></li></ol> <span id="section-88"></span>=== === <ol start="6" style="list-style-type: decimal;"><li></li><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li></ol></li></ol> <span id="section-89"></span>=== === <ol start="3" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol></li></ol> <span id="section-90"></span>== == <ol start="11" style="list-style-type: decimal;"><li></li><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li><li></li></ol></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li></ol> <span id="section-91"></span>== == <ol start="11" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li></ol> <!-- --><ol start="4" style="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol> <!-- --><ol start="16" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li></ol></li></ol> <!-- --><ol start="20" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li></ol> <span id="section-92"></span>== == <ol start="11" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li></ol></li><li></li></ol></li><li></li></ol> <span id="section-93"></span>== == <ol start="10" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol> <!-- --><ol style="list-style-type: lower-alpha;"><li></li></ol></li></ol> <span id="section-94"></span>= = <span id="section-95"></span>== == <ol start="8" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-96"></span>= = <span id="section-97"></span>== ==  -----  ----- <span id="section-98"></span>== ==  -----  ----- <span id="section-99"></span>== == <ol start="3" style="list-style-type: decimal;"><li></li><li></li></ol> <span id="section-100"></span>== == <span id="section-101"></span>=== === <ol start="3" style="list-style-type: decimal;"><li></li><li></li></ol> <span id="section-102"></span>=== === <ol start="6" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-103"></span>=== === <ol start="5" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li></ol> <span id="section-104"></span>=== === <ol start="7" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-105"></span>=== === <ol start="4" style="list-style-type: decimal;"><li></li><li></li><li></li></ol> <span id="section-106"></span>== == <ol start="7" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-107"></span>== == <span id="section-108"></span>=== === <ol start="4" style="list-style-type: decimal;"><li></li><li></li><li></li></ol> <span id="section-109"></span>=== === <ol start="5" style="list-style-type: decimal;"><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li></li></ol> <span id="section-110"></span>== == <span id="section-111"></span>=== === <ol start="5" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li></ol> <span id="section-112"></span>=== === <ol start="7" style="list-style-type: decimal;"><li></li><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li></ol></li></ol></li><li></li><li></li></ol> <span id="section-113"></span>== == <ol start="6" style="list-style-type: decimal;"><li></li></ol>  -----  ----- <span id="section-114"></span>=== === <ol start="13" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-115"></span>=== === <ol start="11" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-116"></span>== == <span id="section-117"></span>=== === <ol start="6" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-118"></span>== == <span id="section-119"></span>=== === <ol start="3" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol></li></ol> <span id="section-120"></span>=== === <ol start="3" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol></li></ol> <span id="section-121"></span>=== === <ol start="3" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol></li></ol> <span id="section-122"></span>== == <ol start="6" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li></ol></li><li></li></ol> <!-- --><ol start="3" style="list-style-type: lower-alpha;"><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li><li></li></ol></li></ol> <!-- --><ol start="10" style="list-style-type: decimal;"><li></li></ol> <span id="section-123"></span>== == <ol start="10" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-124"></span>= = <span id="section-125"></span>== == <ol start="3" style="list-style-type: decimal;"><li></li><li></li></ol> <span id="section-126"></span>== == <ol start="7" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li></li><li></li><li></li></ol> <span id="section-127"></span>= = <span id="section-128"></span>== ==  -----  ----- <span id="section-129"></span>== ==  -----  ----- <span id="section-130"></span>== == <ol start="2" style="list-style-type: decimal;"><li></li></ol>  -----  ----- <ol start="7" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li></li><li></li><li></li></ol> <span id="section-131"></span>== == <ol start="6" style="list-style-type: decimal;"><li></li></ol>  -----  ----- <ol start="7" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li></ol> <span id="section-132"></span>== == <ol start="9" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-133"></span>== == <ol start="9" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-134"></span>== == <ol start="10" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-135"></span>== == <ol start="5" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li></ol> <span id="section-136"></span>== == <ol start="4" style="list-style-type: decimal;"><li></li><li></li><li></li></ol> <span id="section-137"></span>== == <ol start="3" style="list-style-type: lower-alpha;"><li></li><li></li></ol> <!-- --><ol start="4" style="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol> <!-- --><ol start="3" style="list-style-type: lower-alpha;"><li></li><li></li></ol> <span id="section-138"></span>== == <span id="section-139"></span>=== === <ol start="9" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-140"></span>=== === <ol start="9" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-141"></span>=== === <ol start="9" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-142"></span>=== === <ol start="11" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-143"></span>== == <span id="section-144"></span>=== === <ol start="9" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-145"></span>=== === <ol start="6" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-146"></span>== == <ol start="3" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li></li></ol> <span id="section-147"></span>== == <ol start="5" style="list-style-type: decimal;"><li></li><li></li><li></li></ol> <span id="section-148"></span>== == <ol start="5" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li></ol> <span id="section-149"></span>= = <span id="section-150"></span>== == <ol start="4" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li></li><li></li></ol> <span id="section-151"></span>== == <ol start="7" style="list-style-type: decimal;"><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li><li></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol></li><li></li><li></li><li></li></ol> <span id="section-152"></span>= = <span id="section-153"></span>== ==  -----  ----- <span id="section-154"></span>== == <ol start="6" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-155"></span>= = <span id="section-156"></span>== == {| class="wikitable"|-||||-||||-||| # #  |-||| # #  |-||| # #
|}
 
<span id="section-157"></span>
== ==
 
 
-----
 
 
-----