Open main menu

Wiki-Orange Pi β

Changes

Orange Pi 5 Plus

34,140 bytes removed, 15:13, 5 June 2023
no edit summary
'''Orange Pi 5''' '''Plus'''
'''User Manual'''
[[File:./images/media/image2.png|576x446px]]
'''目录'''
[[\l|1. Basic Features of Orange Pi 5 Plus [1](#basic-features-of-orange-pi-5-plus)]]
[[\l|1.1. What is Orange Pi 5 Plus [1](#what-is-orange-pi-5-plus)]]
[[\l|1.2. Purpose of Orange Pi 5 Plus [1](#purpose-of-orange-pi-5-plus)]]
[[\l|1.3. Hardware Specifications of Orange Pi 5 Plus [2](#hardware-specifications-of-orange-pi-5-plus)]]
[[\l|1.4. Top view and bottom view of Orange Pi 5 Plus [4](#_Toc6696)]]
[[\l|1.5. nterface details of Orange Pi 5 Plus [5](#nterface-details-of-orange-pi-5-plus)]]
[[\l|2. Introduction to the use of the development board [6](#introduction-to-the-use-of-the-development-board)]]
[[\l|2.1. Prepare the required accessories [6](#prepare-the-required-accessories)]]
[[\l|2.2. Download the image of the development board and related materials [14](#download-the-image-of-the-development-board-and-related-materials)]]
[[\l|2.3. Method of burning Linux image to TF card based on Windows PC [15](#method-of-burning-linux-image-to-tf-card-based-on-windows-pc)]]
[[\l|2.3.1. How to use balenaEtcher to burn Linux image [16](#how-to-use-balenaetcher-to-burn-linux-image)]]
[[\l|2.3.2. How to use RKDevTool to burn Linux image to TF card [21](#how-to-use-rkdevtool-to-burn-linux-image-to-tf-card)]]
[[\l|2.3.3. How to use Win32Diskimager to burn Linux image [29](#how-to-use-win32diskimager-to-burn-linux-image)]]
[[\l|2.4. Method of burning Linux image to TF card based on Ubuntu PC [32](#method-of-burning-linux-image-to-tf-card-based-on-ubuntu-pc)]]
[[\l|2.5. How to burn Linux image to eMMC [37](#_Toc20691)]]
[[\l|2.5.1. How to use RKDevTool to burn Linux image into eMMC [37](#how-to-use-rkdevtool-to-burn-linux-image-into-emmc)]]
[[\l|2.5.2. Using the dd command to burn the Linux image into eMMC [46](#using-the-dd-command-to-burn-the-linux-image-into-emmc)]]
[[\l|2.6. How to burn Linux image to SPIFlash+NVMe SSD [48](#how-to-burn-linux-image-to-spiflashnvme-ssd)]]
[[\l|2.6.1. The method of using the dd command to burn [48](#the-method-of-using-the-dd-command-to-burn)]]
[[\l|2.6.2. How to use balenaEtcher software to program [52](#how-to-use-balenaetcher-software-to-program)]]
[[\l|2.6.3. Using RKDevTool to burn [68](#using-rkdevtool-to-burn)]]
[[\l|2.7. How to burn OpenWRT image to SPI FLASH [77](#how-to-burn-openwrt-image-to-spi-flash)]]
[[\l|2.7.1. The method of using the dd command to burn [77](#the-method-of-using-the-dd-command-to-burn-1)]]
[[\l|2.7.2. Using RKDevTool to burn [78](#using-rkdevtool-to-burn-1)]]
[[\l|2.8. How to burn Android image to TF card [86](#how-to-burn-android-image-to-tf-card)]]
[[\l|2.9. How to burn Android image into eMMC [89](#how-to-burn-android-image-into-emmc)]]
[[\l|2.9.1. How to burn Android image into eMMC via Type-C cable [90](#how-to-burn-android-image-into-emmc-via-type-c-cable)]]
[[\l|2.9.2. How to burn Android 12 image into eMMC via TF card [95](#_Toc7343)]]
[[\l|2.10. How to burn Android image to SPIFlash+NVMe SSD [99](#how-to-burn-android-image-to-spiflashnvme-ssd)]]
[[\l|2.11. How to burn Orange Pi OS (Droid) image to TF card [104](#how-to-burn-orange-pi-os-droid-image-to-tf-card)]]
[[\l|2.12. How to burn Orange Pi OS (Droid) image into eMMC [107](#how-to-burn-orange-pi-os-droid-image-into-emmc)]]
[[\l|2.12.1. Burn Orange Pi OS (Droid) image toeMMC [107](#burn-orange-pi-os-droid-image-toemmc)]]
[[\l|2.12.2. Burn Orange Pi OS (Droid) image to eMMC via TF card [112](#burn-orange-pi-os-droid-image-to-emmc-via-tf-card)]]
[[\l|2.13. Burn Orange Pi OS (Droid) image to SPIFlash+NVMe SSD [117](#burn-orange-pi-os-droid-image-to-spiflashnvme-ssd)]]
[[\l|2.14. How to use RKDevTool to clear SPIFlash [122](#how-to-use-rkdevtool-to-clear-spiflash)]]
[[\l|2.15. Start the Orange Pi development board [129](#start-the-orange-pi-development-board)]]
[[\l|2.16. How to use the debugging serial port [130](#how-to-use-the-debugging-serial-port)]]
[[\l|2.16.1. Connection instruction of debugging serial port [130](#connection-instruction-of-debugging-serial-port)]]
[[\l|2.16.2. How to use the debugging serial port on the Ubuntu platform [132](#how-to-use-the-debugging-serial-port-on-the-ubuntu-platform)]]
[[\l|2.16.3. How to use the debugging serial port on Windows platform [135](#how-to-use-the-debugging-serial-port-on-windows-platform)]]
[[\l|3. Ubuntu/Debian Server and Xfce desktop system instructions [138](#ubuntudebian-server-and-xfce-desktop-system-instructions)]]
[[\l|3.1. Supported Ubuntu/Debian image types and kernel versions [138](#supported-ubuntudebian-image-types-and-kernel-versions)]]
[[\l|3.2. Linux system adaptation [139](#linux-system-adaptation)]]
[[\l|3.3. The format of linux commands in this manual [140](#the-format-of-linux-commands-in-this-manual)]]
[[\l|3.4. Linux system login instructions [142](#linux-system-login-instructions)]]
[[\l|3.4.1. Linux system default login account and password [142](#linux-system-default-login-account-and-password)]]
[[\l|3.4.2. How to set automatic terminal login in linux system [142](#how-to-set-automatic-terminal-login-in-linux-system)]]
[[\l|3.4.3. Instructions for automatic login of Linux desktop version system [143](#instructions-for-automatic-login-of-linux-desktop-version-system)]]
[[\l|3.4.4. The setting method of root user automatic login in Linux desktop version system [145](#the-setting-method-of-root-user-automatic-login-in-linux-desktop-version-system)]]
[[\l|3.4.5. The method of disabling the desktop in the Linux desktop version system [145](#the-method-of-disabling-the-desktop-in-the-linux-desktop-version-system)]]
[[\l|3.5. Onboard LED Light Test Instructions [146](#onboard-led-light-test-instructions)]]
[[\l|3.6. Network connection test [147](#network-connection-test)]]
[[\l|3.6.1. 2.5G Ethernet port test [147](#g-ethernet-port-test)]]
[[\l|3.6.2. WIFI connection test [149](#wifi-connection-test)]]
[[\l|3.6.3. How to set a static IP address [157](#how-to-set-a-static-ip-address)]]
[[\l|3.7. How to use E-Key PCIe WIFI6+Bluetooth module [165](#how-to-use-e-key-pcie-wifi6bluetooth-module)]]
[[\l|3.8. SSH remote login development board [167](#ssh-remote-login-development-board)]]
[[\l|3.8.1. SSH remote login development board under Ubuntu [167](#ssh-remote-login-development-board-under-ubuntu)]]
[[\l|3.8.2. SSH remote login development board under Windows [169](#ssh-remote-login-development-board-under-windows)]]
[[\l|3.9. How to use ADB [170](#how-to-use-adb)]]
[[\l|3.9.1. How to use network adb [170](#how-to-use-network-adb)]]
[[\l|3.9.2. adb3.9.2. Use type-c data cable to connect to adb [172](#adb3.9.2.-use-type-c-data-cable-to-connect-to-adb)]]
[[\l|3.10. The method of uploading files to the Linux system of the development board [175](#the-method-of-uploading-files-to-the-linux-system-of-the-development-board)]]
[[\l|3.10.1. How to upload files to the development board Linux system in Ubuntu PC [175](#how-to-upload-files-to-the-development-board-linux-system-in-ubuntu-pc)]]
[[\l|3.10.2. The method of uploading files to the development board Linux system in Windows PC [178](#the-method-of-uploading-files-to-the-development-board-linux-system-in-windows-pc)]]
[[\l|3.11. HDMI test [183](#hdmi-test)]]
[[\l|3.11.1. HDMI test [183](#hdmi-test-1)]]
[[\l|3.11.2. HDMI IN test method [185](#hdmi-in-test-method)]]
[[\l|3.11.3. HDMI to VGA display test [188](#hdmi-to-vga-display-test)]]
[[\l|3.11.4. HDMI resolution setting method [189](#hdmi-resolution-setting-method)]]
[[\l|3.12. How to use Bluetooth [192](#how-to-use-bluetooth)]]
[[\l|3.12.1. Test method of desktop image [192](#test-method-of-desktop-image-1)]]
[[\l|3.13. USB interface test [195](#usb-interface-test)]]
[[\l|3.13.1. Connect USB mouse or keyboard to test [195](#connect-usb-mouse-or-keyboard-to-test)]]
[[\l|3.13.2. Connect USB storage device test [195](#connect-usb-storage-device-test)]]
[[\l|3.13.3. USB wireless network card test [196](#usb-wireless-network-card-test)]]
[[\l|3.13.4. USB camera test [201](#usb-camera-test)]]
[[\l|3.14. Audio Test [203](#audio-test)]]
[[\l|3.14.1. Testing audio methods on desktop systems [203](#testing-audio-methods-on-desktop-systems)]]
[[\l|3.14.2. The method of using commands to play audio [205](#the-method-of-using-commands-to-play-audio)]]
[[\l|3.14.3. Method of using commands to test recording [208](#method-of-using-commands-to-test-recording)]]
[[\l|3.15. Temperature sensor [208](#temperature-sensor)]]
[[\l|3.16. 40 Pin Expansion Interface Pin Instructions [210](#pin-expansion-interface-pin-instructions)]]
[[\l|3.17. How to install wiringOP [212](#how-to-install-wiringop)]]
[[\l|3.18. 40 pin interface GPIO, I2C, UART, SPI, CAN and PWM test [214](#pin-interface-gpio-i2c-uart-spi-can-and-pwm-test)]]
[[\l|3.18.1. 40 pin GPIO port test [214](#pin-gpio-port-test)]]
[[\l|3.18.2. How to set the pull-down resistance of pin GPIO port [216](#how-to-set-the-pull-down-resistance-of-pin-gpio-port)]]
[[\l|3.18.3. 40 pin SPI test [217](#pin-spi-test)]]
[[\l|3.18.4. 40 pin I2C test [220](#_Toc18432)]]
[[\l|3.18.5. 40 pin UART test [223](#pin-uart-test)]]
[[\l|3.18.6. PWM test method [225](#pwm-test-method)]]
[[\l|3.18.7. CAN test method [230](#can-test-method)]]
[[\l|3.19. How to install and use wiringOP-Python [237](#how-to-install-and-use-wiringop-python)]]
[[\l|3.19.1. How to install wiringOP-Python [237](#how-to-install-wiringop-python)]]
[[\l|3.19.2. 40 pin GPIO port test [240](#pin-gpio-port-test-1)]]
[[\l|3.19.3. 40 pin SPI test [242](#pin-spi-test-1)]]
[[\l|3.19.4. 40 pin I2C test [246](#pin-i2c-test-1)]]
[[\l|3.19.5. 40 pin UART test [249](#pin-uart-test-1)]]
[[\l|3.20. Hardware watchdog test [251](#hardware-watchdog-test)]]
[[\l|3.21. Check the serial number of RK3588 chip [252](#check-the-serial-number-of-rk3588-chip)]]
[[\l|3.22. How to install Docker [252](#how-to-install-docker)]]
[[\l|3.23. How to download and install arm64 version balenaEtcher [253](#how-to-download-and-install-arm64-version-balenaetcher)]]
[[\l|3.24. The installation method of the pagoda linux panel [255](#the-installation-method-of-the-pagoda-linux-panel)]]
[[\l|3.25. Set the Chinese environment and install Chinese input method [261](#set-the-chinese-environment-and-install-chinese-input-method)]]
[[\l|3.25.1. Debian 11 system installation method [261](#debian-11-system-installation-method)]]
[[\l|3.25.2. ubuntu 20.04 system installation method [267](#ubuntu-20.04-system-installation-method)]]
[[\l|3.25.3. Ubuntu 22.04 installation method [271](#ubuntu-22.04-installation-method)]]
[[\l|3.26. How to remotely log in to the Linux system desktop method [277](#how-to-remotely-log-in-to-the-linux-system-desktop-method)]]
[[\l|3.26.1. Use NoMachine remote login [277](#use-nomachine-remote-login)]]
[[\l|3.26.2. Use VNC remote login [281](#use-vnc-remote-login)]]
[[\l|3.27. Some programming language test supported by thelinux system [283](#some-programming-language-test-supported-by-thelinux-system)]]
[[\l|3.27.1. Debian Bullseye system [283](#debian-bullseye-system)]]
[[\l|3.27.2. Ubuntu Focal system [285](#ubuntu-focal-system)]]
[[\l|3.27.3. Ubuntu Jammy system [286](#ubuntu-jammy-system)]]
[[\l|3.28. QT installation method [288](#qt-installation-method)]]
[[\l|3.29. ROS installation method [296](#ros-installation-method)]]
[[\l|3.29.1. Ubuntu 20.04 method of installing ROS 1 Noetic [296](#ubuntu-20.04-method-of-installing-ros-1-noetic)]]
[[\l|3.29.2. Ubuntu20.04 The method of installing ROS 2 Galactic [300](#ubuntu20.04-the-method-of-installing-ros-2-galactic)]]
[[\l|3.29.3. Ubuntu22.04 to install ROS 2 Humble [303](#ubuntu22.04-to-install-ros-2-humble)]]
[[\l|3.30. The method of installing the kernel header file [305](#the-method-of-installing-the-kernel-header-file)]]
[[\l|3.31. How to use 10.1 inch MIPI LCD screen [308](#how-to-use-10.1-inch-mipi-lcd-screen)]]
[[\l|3.31.1. 10.1 -inch MIPI screen assembly method [308](#inch-mipi-screen-assembly-method)]]
[[\l|3.31.2. Open the 10.1 -inch MIPI LCD screen configuration [310](#open-the-10.1–inch-mipi-lcd-screen-configuration)]]
[[\l|3.31.3. The server version of the image rotation display direction method [312](#the-server-version-of-the-image-rotation-display-direction-method)]]
[[\l|3.31.4. The desktop image rotation display and touch direction method [313](#the-desktop-image-rotation-display-and-touch-direction-method)]]
[[\l|3.32. Instructions for opening the logo use instructions [315](#instructions-for-opening-the-logo-use-instructions)]]
[[\l|3.33. Test methods for OV13850 and OV13855 MIPI camera [316](#test-methods-for-ov13850-and-ov13855-mipi-camera)]]
[[\l|3.34. Test method for infrared receiving [320](#test-method-for-infrared-receiving)]]
[[\l|3.35. The method to use RTC [323](#the-method-to-use-rtc)]]
[[\l|3.36. How to use the cooling PWM fan [324](#how-to-use-the-cooling-pwm-fan)]]
[[\l|3.37. The method of shutting down and restarting the development board [326](#the-method-of-shutting-down-and-restarting-the-development-board)]]
[[\l|4. Ubuntu22.04 Gnome Wayland Desktop system instructions [327](#ubuntu22.04-gnome-wayland-desktop-system-instructions)]]
[[\l|4.1. Ubuntu22.04 GNOME desktop system adaptation situation [328](#ubuntu22.04-gnome-desktop-system-adaptation-situation)]]
[[\l|4.2. Confirm that the current window system used by the system is Wayland [330](#confirm-that-the-current-window-system-used-by-the-system-is-wayland)]]
[[\l|4.3. Switch the method of default audio equipment [331](#switch-the-method-of-default-audio-equipment)]]
[[\l|4.4. GPU test method [332](#gpu-test-method)]]
[[\l|4.5. Chromium browser hard solution to play video test method [334](#chromium-browser-hard-solution-to-play-video-test-method)]]
[[\l|4.6. Kodi hard solution to play video test method [336](#kodi-hard-solution-to-play-video-test-method)]]
[[\l|4.7. Ubuntu22.04 Gnome to install ROS 2 Humble [344](#_Toc26708)]]
[[\l|4.8. Set the Chinese environment and the method of installing the Chinese input method [346](#set-the-chinese-environment-and-the-method-of-installing-the-chinese-input-method)]]
[[\l|5. Orange Pi OS Arch system use instructions [353](#orange-pi-os-arch-system-use-instructions)]]
[[\l|5.1. Orange Pi OS Arch system adaptation situation [353](#orange-pi-os-arch-system-adaptation-situation)]]
[[\l|5.2. How to use the M.2 E-Key PCIE WIFI6+Bluetooth module [355](#how-to-use-the-m.2-e-key-pcie-wifi6bluetooth-module)]]
[[\l|5.3. How to use 10.1 inch MIPI LCD screen [362](#how-to-use-10.1-inch-mipi-lcd-screen-1)]]
[[\l|5.3.1. 10.1 -inch MIPI screen assembly method [362](#inch-mipi-screen-assembly-method-1)]]
[[\l|5.3.2. How to open 10.1 -inch MIPI LCD screen configuration [365](#how-to-open-10.1–inch-mipi-lcd-screen-configuration)]]
[[\l|5.3.3. Method of rotating display and touch direction [366](#method-of-rotating-display-and-touch-direction)]]
[[\l|5.4. OV13850 and OV13855 MIPI test methods for testing [369](#ov13850-and-ov13855-mipi-test-methods-for-testing)]]
[[\l|5.5. Set the Chinese environment and the method of installing the Chinese input method [371](#set-the-chinese-environment-and-the-method-of-installing-the-chinese-input-method-1)]]
[[\l|5.6. HDMI IN test method [377](#hdmi-in-test-method-1)]]
[[\l|5.7. How to install wiringOP [380](#how-to-install-wiringop-1)]]
[[\l|5.8. 40 PIN interface GPIO, I2C, UART, SPI, CAN and PWM test [382](#pin-interface-gpio-i2c-uart-spi-can-and-pwm-test-1)]]
[[\l|5.8.1. 40 PIN GPIO port test [383](#pin-gpio-port-test-2)]]
[[\l|5.8.2. 40 PIN GPIO Port -to -Plattering resistance setting method [383](#pin-gpio-port–to–plattering-resistance-setting-method)]]
[[\l|5.8.3. 40 PIN SPI test [384](#pin-spi-test-2)]]
[[\l|5.8.4. 40 pin I2C test [387](#pin-i2c-test-2)]]
[[\l|5.8.5. 40 Pin's UART test [388](#pins-uart-test)]]
[[\l|5.8.6. PWM test method [390](#pwm-test-method-1)]]
[[\l|5.8.7. CAN's test method [393](#cans-test-method)]]
[[\l|6. Linux SDK——orangepi-build instructions [396](#linux-sdkorangepi-build-instructions)]]
[[\l|6.1. Compilation system requirements [396](#compilation-system-requirements)]]
[[\l|6.1.1. Compile with the Ubuntu22.04 system of the development board [396](#compile-with-the-ubuntu22.04-system-of-the-development-board)]]
[[\l|6.1.2. Compile with x64 Ubuntu22.04 computer [396](#compile-with-x64-ubuntu22.04-computer)]]
[[\l|6.2. Get the source code of linux sdk [399](#get-the-source-code-of-linux-sdk)]]
[[\l|6.2.1. Download orangepi-build from github [399](#download-orangepi-build-from-github)]]
[[\l|6.2.2. Download the cross-compilation toolchain [401](#download-the-cross-compilation-toolchain)]]
[[\l|6.2.3. orangepi-build complete directory structure description [402](#orangepi-build-complete-directory-structure-description)]]
[[\l|6.3. Compile u-boot [403](#compile-u-boot)]]
[[\l|6.4. Compile the linux kernel [407](#_Toc31297)]]
[[\l|6.5. Compile rootfs [413](#_Toc25559)]]
[[\l|6.6. Compile linux image [416](#compile-linux-image)]]
[[\l|7. Linux Development Manual [420](#linux-development-manual)]]
[[\l|7.1. The method of compiling the kernel source code separately in the linux system of the development board [420](#the-method-of-compiling-the-kernel-source-code-separately-in-the-linux-system-of-the-development-board)]]
[[\l|8. OpenWRT system instructions [422](#openwrt-system-instructions)]]
[[\l|8.1. OpenWRT version [422](#openwrt-version)]]
[[\l|8.2. OpenWRT Adaptation [423](#openwrt-adaptation)]]
[[\l|8.3. The first start to expand rootfs [423](#the-first-start-to-expand-rootfs)]]
[[\l|8.4. How to log in to the system [424](#how-to-log-in-to-the-system)]]
[[\l|8.4.1. Login via serial port [424](#login-via-serial-port)]]
[[\l|8.4.2. Log in to the system via SSH [424](#log-in-to-the-system-via-ssh)]]
[[\l|8.4.3. Log in to the LuCI management interface [425](#log-in-to-the-luci-management-interface)]]
[[\l|8.4.4. Log in to the terminal through the LuCI management interface [426](#log-in-to-the-terminal-through-the-luci-management-interface)]]
[[\l|8.4.5. Use IP address + port number to log in to the terminal [429](#use-ip-address-port-number-to-log-in-to-the-terminal)]]
[[\l|8.5. How to modify the IP address of the LAN port through the command line [430](#how-to-modify-the-ip-address-of-the-lan-port-through-the-command-line)]]
[[\l|8.6. How to modify the root password [431](#how-to-modify-the-root-password)]]
[[\l|8.6.1. Modify via command line [431](#modify-via-command-line)]]
[[\l|8.6.2. Modify through the LuCI management interface [432](#modify-through-the-luci-management-interface)]]
[[\l|8.7. USB interface test [433](#usb-interface-test-1)]]
[[\l|8.7.1. Mount the USB storage device under the command line [433](#mount-the-usb-storage-device-under-the-command-line)]]
[[\l|8.7.2. Mount the USB storage device on the LuCI management interface [434](#mount-the-usb-storage-device-on-the-luci-management-interface)]]
[[\l|8.8. How to use E-Key PCIe wireless network card [438](#how-to-use-e-key-pcie-wireless-network-card)]]
[[\l|8.8.1. How to create WIFI hotspot [438](#how-to-create-wifi-hotspot)]]
[[\l|8.8.2. How to connect to WIFI hotspot [443](#how-to-connect-to-wifi-hotspot)]]
[[\l|8.9. Installing packages via the command line [447](#installing-packages-via-the-command-line)]]
[[\l|8.9.1. Install via opkg in the terminal [447](#install-via-opkg-in-the-terminal)]]
[[\l|8.10. OpenWRT management interface installation software package [447](#openwrt-management-interface-installation-software-package)]]
[[\l|8.10.1. View the list of available software packages in the system [448](#view-the-list-of-available-software-packages-in-the-system)]]
[[\l|8.10.2. Example of installing software packages [449](#example-of-installing-software-packages)]]
[[\l|8.10.3. Remove package example [451](#remove-package-example)]]
[[\l|8.11. Using Samba Network Shares [453](#using-samba-network-shares)]]
[[\l|8.12. Zerotier Instructions [457](#zerotier-instructions)]]
[[\l|9. Compilation method of OpenWRT source code [460](#compilation-method-of-openwrt-source-code)]]
[[\l|9.1. Download OpenWRT source code [460](#download-openwrt-source-code)]]
[[\l|9.2. Compile OpenWRT source code [460](#compile-openwrt-source-code)]]
[[\l|10. Instructions for using the Android 12 system [462](#instructions-for-using-the-android-12-system)]]
[[\l|10.1. Supported Android versions [462](#supported-android-versions)]]
[[\l|10.2. Android function adaptation [462](#android-function-adaptation)]]
[[\l|10.3. How to use the USB wireless network card [464](#how-to-use-the-usb-wireless-network-card)]]
[[\l|10.4. M.2 How to use E-Key PCIe WIFI6+Bluetooth module [465](#m.2-how-to-use-e-key-pcie-wifi6bluetooth-module)]]
[[\l|10.5. WIFI connection test method [466](#wifi-connection-test-method)]]
[[\l|10.6. How to use Wi-Fi hotspot [468](#how-to-use-wi-fi-hotspot)]]
[[\l|10.7. Bluetooth test method [471](#bluetooth-test-method)]]
[[\l|10.8. Test method of HDMI In [474](#test-method-of-hdmi-in)]]
[[\l|10.9. How to use 10.9.10.1 inch MIPI screen [476](#how-to-use-10.9.10.1-inch-mipi-screen)]]
[[\l|10.10. OV13850 and OV13855 MIPI camera test method [477](#ov13850-and-ov13855-mipi-camera-test-method)]]
[[\l|10.11. 26pin interface GPIO, UART, SPI and PWM test [481](#pin-interface-gpio-uart-spi-and-pwm-test)]]
[[\l|10.11.1. 40pin GPIO port test [481](#pin-gpio-port-test-3)]]
[[\l|10.11.2. 40pin UART test [485](#pin-uart-test-2)]]
[[\l|10.11.3. 26pin SPI test [488](#pin-spi-test-3)]]
[[\l|10.11.4. 26pin PWM test [490](#pin-pwm-test)]]
[[\l|10.12. How to use ADB [493](#how-to-use-adb-1)]]
[[\l|10.12.1. Use the data cable to connect to adb debugging [493](#use-the-data-cable-to-connect-to-adb-debugging)]]
[[\l|10.12.2. Use network connection adb debugging [494](#use-network-connection-adb-debugging)]]
[[\l|10.13. 2.4G USB remote control tested by Android Box [495](#g-usb-remote-control-tested-by-android-box)]]
[[\l|10.14. How to use the infrared remote control of the Android Box system [496](#how-to-use-the-infrared-remote-control-of-the-android-box-system)]]
[[\l|10.15. How to use HDMI CEC function in Android Box system [497](#how-to-use-hdmi-cec-function-in-android-box-system)]]
[[\l|11. How to compile Android 12 source code [499](#how-to-compile-android-12-source-code)]]
[[\l|11.1. Download Android 12 source code [499](#download-android-12-source-code)]]
[[\l|11.2. Compile the source code of Android 12 [499](#compile-the-source-code-of-android-12)]]
[[\l|12. Instructions for using the Orange Pi OS Droid system [502](#instructions-for-using-the-orange-pi-os-droid-system)]]
[[\l|12.1. Function adaptation of OPi OS Droid system [502](#function-adaptation-of-opi-os-droid-system)]]
[[\l|12.2. Test method of HDMI In [503](#test-method-of-hdmi-in-1)]]
[[\l|13. Appendix [505](#appendix)]]
[[\l|13.1. User Manual Update History [505](#user-manual-update-history)]]
[[\l|13.2. Image update history [506](#image-update-history)]]
<span id="basic-features-of-orange-pi-5-plus"></span>
'''Of course, there are more functions. Relying on a strong ecosystem and a variety of expansion accessories, OPi 5 Plus can 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.'''
 
<span id="section"></span>
= =
 
<span id="section-1"></span>
== ==
 
<span id="section-2"></span>
== ==
 
*
*
*
*
<span id="hardware-specifications-of-orange-pi-5-plus"></span>
| 86.5g
|-
| ! [[./images/media%20/image3.png|橙子LOGO-透明 (6)]]{w idth=“0.269444 44444444443in” hei ght=“0.3152777 7777777777in”}
'''rangePi™''' '''is a registered trademark of Shenzhen Xunlong Software Co., Ltd.'''
|
|}
 
<span id="section-3"></span>
== ==
 
<span id="section-4"></span>
== ==
 
 
-----
 
 
-----
<span id="top-view-and-bottom-view-of-orange-pi-5-plus"></span>
<div class="figure">
[[File:media/image4.jpeg|486x342px|Orange-Pi-5-PLUS-1]]
</div>
<div class="figure">
[[File:./images/media/image5.jpeg|495x329px|Orange-Pi-5-PLUS-2]]
</div>
<span id="section-5"></span>
 
== ==
 
<span id="nterface-details-of-orange-pi-5-plus"></span>
== nterface details of Orange Pi 5 Plus ==
[[File:./images/media/image6.png|600x553px]][[File:./images/media/image7.jpeg|576x483px|未标题-1]]
<span id="section-6"></span>== == <span id="section-7"></span>
== ==
# TF card, a class 10 or above high-speed SanDisk card with a minimum capacity of 16GB (32GB or above is recommended)
[[File:./images/media/image9image8.png|124x96px]]
<ol start="2" style="list-style-type: decimal;">
<li>TF card reader, used to burn the image into the TF card</li></ol>
[[File:./images/media/image10image9.png|139x106px]]
<ol start="3" style="list-style-type: decimal;">
<li>Display with HDMI interface</li></ol>
[[File:./images/media/image11image10.png|313x205px]]
<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></ol>
[[File:./images/media/image12image11.png|199x129px]]
'''\Note, if you want to connect a 4K or 8K display, please make sure that the HDMI cable supports 4K or 8K video display.'''
<div class="figure">
[[File:./images/media/image13image12.jpeg|243x166px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image14image13.jpeg|245x166px|98F5D70E2C9B3673E8ECE4B8ABDDFD80]]
</div>
<div class="figure">
[[File:./images/media/image15image14.jpeg|223x203px|IMG_7546]]
</div>
<li>Power adapter, Orange Pi 5 Plus is recommended to use 5V/4A Type-C power supply for power supply</li></ol>
[[File:./images/media/image16image15.png|274x194px]]
'''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.'''
<div class="figure">
[[File:./images/media/image17image16.jpeg|269x240px|01]]
</div>
<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/image18image17.png|311x264px]]
<ol start="10" style="list-style-type: decimal;">
<li>USB camera</li></ol>
[[File:./images/media/image19image18.png|331x191px]]
<ol start="11" style="list-style-type: decimal;">
'''The fan on the development board can adjust the speed and switch through PWM.'''
[[File:./images/media/image20image19.png|410x171px]]
<ol start="12" style="list-style-type: decimal;">
<li>Network cable, used to connect the development board to the Internet</li></ol>
[[File:./images/media/image21image20.png|143x112px]]
<ol start="13" style="list-style-type: decimal;">
<li>The data cable of the Type-C interface, used for burning images, using ADB and other functions</li></ol>
[[File:./images/media/image22image21.png|143x113px]]
<ol start="14" style="list-style-type: decimal;">
<li>Infrared remote control</li></ol>
[[File:./images/media/image23image22.png|170x173px]]
'''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.'''
<ol start="15" style="list-style-type: decimal;">
<li><p>OV13850 camera with 13 million MIPI interface (common with OPi5/OPi5B)</p>
<p>[[File:./images/media/image24image23.png|268x151px]]</p></li>
<li><p>OV13855 camera with 13 million MIPI interface (common with OPi5/OPi5B)</p>
<p>[[File:./images/media/image25image24.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/image26image25.png|358x104px]]
</blockquote>
<ol start="18" style="list-style-type: decimal;">
'''The position where the eMMC module is inserted on the development board is shown in the figure below:'''
[[File:./images/media/image27image26.png|317x144px]]
<ol start="19" style="list-style-type: decimal;">
<li><p>RTC battery, the interface is 2pin, 1.25mm pitch</p>
<p>[[File:./images/media/image28image27.png|250x134px]]</p></li></ol>
'''The location of the RTC battery interface on the development board is shown in the figure below:'''
[[File:./images/media/image29image28.png|344x126px]]
<ol start="20" style="list-style-type: decimal;">
<li>Horn, the interface is 2pin, 1.25mm pitch</li></ol>
[[File:./images/media/image30image29.png|200x138px]]
'''The interface position of the speaker on the development board is shown in the figure below:'''
[[File:./images/media/image31image30.png|312x158px]]
<ol start="21" style="list-style-type: decimal;">
<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 development board and computer</p></li></ol>
[[File:./images/media/image32image31.png|217x89px|G7U7JZX(V`L$`A6864]38$P]] [[File:./images/media/image33image32.png|305x110px]]
<ol start="23" style="list-style-type: decimal;">
| style="text-align: left;"| For burning Android and Linux images
|}
 
<span id="section-8"></span>
= =
 
<span id="section-9"></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>
<li></li>
<li></li>
<li></li>
<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="download-the-image-of-the-development-board-and-related-materials"></span>
'''http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-plus.html'''
[[File:./images/media/image38image33.png|361x300px]]
<ol start="2" style="list-style-type: decimal;">
<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>
# 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.
'''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:./images/media/image39image34.png|277x88px]]
<ol start="4" style="list-style-type: decimal;">
<li>Then download the burning software of Linux image——'''balenaEtcher,''' the download address is:</li></ol>
[https://www.balena.io/etcher/ '''https://www.balena.io/etcher/''']
<ol start="5" style="list-style-type: decimal;">
<li><p>After entering the balenaEtcher download page, click the green download button to jump to the place where the software is downloaded</li></ol> <span id="section-10"></span>== == <ol start="3" style="list-style-type: decimal;"><li></li><li></li><li><ol style="list-style-type: lower-alpha;"p><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-11"></span>== == <span id="section-12"></span>=== === <ol start="6" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li><p>[[File:./images/media/image42image35.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/image43image36.png|576x213px]]
<ol start="127" style="list-style-type: decimal;">
<li>If the downloaded version 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 is shown in the figure below:</li></ol>
[[File:./images/media/image44image37.png|483x304px]]
'''When opening balenaEtcher, if the following error is prompted:'''
[[File:./images/media/image45image38.png|261x205px]]
'''Please select balenaEtcher, right-click, and select Run as administrator.'''
<div class="figure">
[[File:./images/media/image46image39.png|300x104px|图形用户界面, 文本, 应用程序 描述已自动生成]]
</div>
<ol start="138" style="list-style-type: decimal;">
<li>The specific steps to use balenaEtcher to burn the Linux image are as follows</li></ol>
<div class="figure">
[[File:./images/media/image47image40.png|501x281px|03]]
</div>
<ol start="149" 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.</li></ol>
[[File:./images/media/image48image41.png|506x317px]]
<ol start="1510" 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. As shown in the figure below, a green progress bar indicates that the image has been burnt, and balenaEtcher is verifying the burnt image.</li></ol>
[[File:./images/media/image49image42.png|519x325px]]
<ol start="1611" 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/image50image43.png|523x324px]]
<span id="how-to-use-rkdevtool-to-burn-linux-image-to-tf-card"></span>
# First, you need to prepare a data cable with a good quality Type-C interface
[[File:./images/media/image22image21.png|193x196px]]
<ol start="2" style="list-style-type: decimal;">
<li><p>Then insert the TF card into the card slot of the development board</p></li></ol>
[[File:./images/media/image53image44.png|300x87px]]
<ol start="4" style="list-style-type: decimal;">
</li></ol>
[[File:./images/media/image54image45.png|382x97px]]
<ol start="2" style="list-style-type: lower-alpha;">
<li>Then download all the files below</li></ol>
[[File:./images/media/image55image46.png|392x145px]]
'''Note that the''' '''&quot;MiniLoader-things needed 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 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:./images/media/image39image34.png|301x95px]]
<ol start="6" style="list-style-type: decimal;">
<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></ol>
[[File:./images/media/image57image47.png|575x169px]]
<ol start="7" style="list-style-type: decimal;">
</li></ol>
[[File:./images/media/image58image48.png|300x157px]]
<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>
[[File:./images/media/image59image49.png|429x223px]]
<ol start="8" style="list-style-type: decimal;">
<li>Then decompress '''RKDevTool_Release_v2.96.zipRKDevTool_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/image60image50.png|575x170px]]
<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></ol>
[[File:./images/media/image61image51.png|402x189px]]
<ol start="10" style="list-style-type: decimal;">
<div class="figure">
[[File:./images/media/image63image52.jpeg|400x113px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-2.jpg未标题-2]]
</div>
<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:./images/media/image64image53.png|382x93px]]
<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. The location of the Type-C power interface is as follows:</li></ol>
[[File:./images/media/image65image54.png|404x123px]]
<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>
[[File:./images/media/image66image55.png|457x215px]]
<ol start="6" style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image68image56.png|455x216px|图片1]]
</div>
<li>Then click the right mouse button and the selection interface shown in the figure below will pop up</li></ol>
[[File:./images/media/image70image57.png|453x213px]]
<ol start="8" style="list-style-type: lower-alpha;">
<li>Then select the '''import configuration''' option</li></ol>
[[File:./images/media/image72image58.png|458x215px]]
<ol style="list-style-type: lower-roman;">
<li>Then select the '''rk3588_linux_tfcard.cfg''' configuration file in the '''MiniLoader''' folder downloaded earlier, and click '''Open'''</li></ol>
[[File:./images/media/image74image59.png|483x227px]]
<ol start="10" style="list-style-type: lower-alpha;">
<li>Then click '''OK'''</li></ol>
[[File:./images/media/image76image60.png|483x227px]]
<ol start="11" style="list-style-type: lower-alpha;">
<li>Then click the position shown in the figure below</li></ol>
[[File:./images/media/image78image61.png|486x228px]]
<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/image80image62.png|492x231px]]
<ol start="13" style="list-style-type: lower-alpha;">
<li>Then click the position shown in the figure below</li></ol>
[[File:./images/media/image82image63.png|493x232px]]
<ol start="14" style="list-style-type: lower-alpha;">
'''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.'''
[[File:./images/media/image84image64.png|499x234px]]
<ol start="15" style="list-style-type: lower-alpha;">
<li>Then please check the '''option to force writing by address'''</li></ol>
[[File:./images/media/image86image65.png|489x230px]]
<ol start="16" style="list-style-type: lower-alpha;">
<li>Then click the execute button to start burning the linux image to the tf card of the development board</li></ol>
[[File:./images/media/image88image66.png|492x231px]]
<ol start="17" style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image91image67.png|492x231px|%O4~FPPAT$0RH{3S~CGJ@@Q(1)]]
</div>
<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.</li></ol>
 
<span id="section-13"></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></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="how-to-use-win32diskimager-to-burn-linux-image"></span>
</li></ol>
[https://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip '''https://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip''']
<ol start="2" style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image96image68.png|209x228px|选区_199]]
</div>
<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></ol>
[[File:./images/media/image97image69.png|304x147px]]
<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></ol>
<blockquote>[[File:./images/media/image98image70.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 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:./images/media/image39image34.png|309x98px]]
<ol start="5" style="list-style-type: decimal;">
<li>The download page of Win32Diskimager is</li></ol>
[http://sourceforge.net/projects/win32diskimager/files/Archive/ '''http://sourceforge.net/projects/win32diskimager/files/Archive/''']
<ol start="2" style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image99image71.png|297x206px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\a8fda8737c5b0b3b38fbb75ef68acfc.pnga8fda8737c5b0b3b38fbb75ef68acfc]]
</div>
<li><p>After the image writing is completed, click the &quot;'''Exit'''&quot; button &gt; to exit, and then you</p>
<p>can pull out the TF card and insert it into the development board to start</p></li></ol>
 
<span id="section-14"></span>
=== ===
 
<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: lower-alpha;">
<li></li>
<li><ol style="list-style-type: lower-alpha;">
<li></li>
<li></li>
<li></li></ol>
</li>
<li></li></ol>
</li></ol>
<span id="method-of-burning-linux-image-to-tf-card-based-on-ubuntu-pc"></span>
# Download the balenaEtcher software, the download address is
[https://www.balena.io/etcher/ '''https://www.balena.io/etcher/''']
<ol start="4" style="list-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>
[[File:./images/media/image42image35.png|575x276px]]
<ol start="5" style="list-style-type: decimal;">
<li>Then choose to download the Linux version of the software</li></ol>
[[File:./images/media/image101image72.png|575x218px]]
<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 '''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.'''
<div class="figure">
[[File:./images/media/image102image73.png|275x87px|e6986fc9c8fc078e8cb6a9c39b76fb8]]
</div>
test@test:~$ '''7z x orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.7z'''
test@test:~$ '''ls''' '''orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.*'''
orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.7z orangepi5plus_1.0.0_debian_bullseye_desktop_xfce_linux5.10.110.sha # checksum file
If you download the OpenWRT image, the compressed package ends with gz, and the decompression command is as follows:
test@test:~$ '''gunzip''' '''openwrt-aarch64-opi5plus-23.05-linux-5.10.110-ext4.img.gz'''
test@test:~$ '''ls openwrt-aarch64-opi5plus-23.05-linux-5.10.110-ext4.img'''
<li>Then double-click '''balenaEtcher-1.14.3-x64.AppImage''' on the graphical interface of Ubuntu PC to open balenaEtcher (no installation required), and the interface after balenaEtcher is opened is shown in the figure below</li></ol>
[[File:./images/media/image103image74.png|423x251px]]
<ol start="9" style="list-style-type: decimal;">
<div class="figure">
[[File:./images/media/image47image40.png|501x281px|03]]
</div>
<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</li></ol>
[[File:./images/media/image104image75.png|576x247px]]
<ol start="1712" 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</li></ol>
[[File:./images/media/image105image76.png|576x252px]]
<ol start="1813" style="list-style-type: decimal;"><li><p>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 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></olp<span id="section-15"></spanp>== [[File:./images/media/image106image77.png|576x340px]] == <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><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol></li><li></li></ol> <!-- --><ol start="19" style="list-style-type: decimal;"><li></li><lip></li></ol>
<span id="how-to-burn-linux-image-to-emmc"></span>
# 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:
[[File:./images/media/image108image78.png|307x141px]]
<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></ol>
[[File:./images/media/image22image21.png|150x152px]]
<ol start="3" style="list-style-type: decimal;">
<div class="figure">
[[File:./images/media/image109image79.png|408x99px|c40e71d1a66216e12b3b4297138f749]]
</div>
<div class="figure">
[[File:./images/media/image110image80.png|337x138px|2feec28318eaa60c0514000158b889a]]
</div>
'''Note that the''' '''&quot;MiniLoader-things needed to burn the Linux image&quot;''' '''folder is hereinafter referred to as the MiniLoader folder.'''
<ol start="4" style="list-style-type: decimal;">
<div class="figure">
[[File:./images/media/image102image73.png|340x108px|e6986fc9c8fc078e8cb6a9c39b76fb8]]
</div>
<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></ol>
[[File:./images/media/image57image47.png|496x146px]]
<ol start="6" style="list-style-type: decimal;">
</li></ol>
[[File:./images/media/image58image48.png|284x149px]]
<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>
[[File:./images/media/image59image49.png|296x154px]]
<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></ol>
[[File:./images/media/image60image50.png|484x143px]]
<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></ol>
[[File:./images/media/image61image51.png|442x208px]]
<ol start="9" style="list-style-type: decimal;">
<div class="figure">
[[File:./images/media/image63image52.jpeg|403x114px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-2.jpg未标题-2]]
</div>
<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:./images/media/image64image53.png|418x94px]]
<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></ol>
[[File:./images/media/image65image54.png|407x124px]]
<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>
[[File:./images/media/image66image55.png|457x215px]]
<ol start="6" style="list-style-type: lower-alpha;">
<li>Then place the mouse cursor in the area below</li></ol>
[[File:./images/media/image95image81.png|458x215px]]
<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/image70image57.png|460x216px]]
<ol start="8" style="list-style-type: lower-alpha;">
<li>Then select the '''import configuration''' option</li></ol>
[[File:./images/media/image72image58.png|458x215px]]
<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></ol>
[[File:./images/media/image111image82.png|466x219px]]
<ol start="10" style="list-style-type: lower-alpha;">
<li>Then click '''OK'''</li></ol>
[[File:./images/media/image113image83.png|468x220px]]
<ol start="11" style="list-style-type: lower-alpha;">
<li>Then click the position shown in the figure below</li></ol>
[[File:./images/media/image115image84.png|462x217px]]
<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/image117image85.png|463x217px]]
<ol start="13" style="list-style-type: lower-alpha;">
<li>Then click the position shown in the figure below</li></ol>
[[File:./images/media/image118image86.png|459x216px]]
<ol start="14" style="list-style-type: lower-alpha;">
'''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.'''
[[File:./images/media/image84image64.png|499x234px]]
<ol start="15" style="list-style-type: lower-alpha;">
<li>Then please check the option to '''force writing by address'''</li></ol>
[[File:./images/media/image120image87.png|501x235px]]
<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></ol>
[[File:./images/media/image122image88.png|502x236px]]
<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></ol>
[[File:./images/media/image124image89.png|500x235px]]
<ol start="18" style="list-style-type: lower-alpha;">
<li>After burning the linux image into the eMMC, the linux system will &gt; start automatically.</li></ol>
 
<span id="section-16"></span>
== ==
 
<span id="section-17"></span>
=== ===
 
<ol start="10" style="list-style-type: decimal;">
<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></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="using-the-dd-command-to-burn-the-linux-image-into-emmc"></span>
# 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:
[[File:./images/media/image108image78.png|312x143px]]
<ol start="2" 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></ol>
orangepi@orangepi:~/Desktop$ '''sudo dd bs=1M if=/dev/zero of=/dev/mmcblk1''' '''count=1000 status=progress'''
orangepi@orangepi:~/Desktop$ '''sudo sync'''
</li></ol>
'''sudo dd bs=1M if=Orangepi5plus_x.x.x_debian_bullseye_desktop_xfce_linux5.10.110.img of=/dev/mmcblk1''' '''status=progress'''
'''sudo''' '''sync'''
'''Note, if you upload a''' '''.7z or .xz''' '''linux image compressed file, please remember to decompress it before using the dd command to burn.'''
'''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.'''
<ol start="8" 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>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>
'''Note that all the following operations are performed on a Windows computer.'''
 
<span id="section-18"></span>
=== ===
 
<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: 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>
<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="the-method-of-using-the-dd-command-to-burn"></span>
# 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.
[[File:./images/media/image26image25.png|306x89px]]
<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></ol>
[[File:./images/media/image126image90.png|274x110px]]
<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>
[[File:./images/media/image127image91.png|416x115px]]
<ol start="4" style="list-style-type: decimal;">
<div class="figure">
[[File:./images/media/image146image92.png|355x174px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image147image93.png|356x179px|IMG_256]]
</div>
<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></ol>
[[File:./images/media/image148image94.png|406x199px]]
'''There is no nand-sata-install script in OPi OS Arch system, please use the following command to mirror u-boot to SPI Flash:'''
<li>Then upload the linux image file (Debian, Ubuntu or OpenWRT image downloaded from the official website) to the TF card. For the method 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.</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.'''
<div class="figure">
[[File:./images/media/image102image73.png|284x90px|e6986fc9c8fc078e8cb6a9c39b76fb8]]
</div>
.…
<ol start="489" style="list-style-type: decimal;">
<li>Then we can use the dd command to clear the NVMe SSD (optional)</li></ol>
orangepi@orangepi5plus:~/Desktop$ '''sudo sync'''
<ol start="4910" style="list-style-type: decimal;">
<li><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;">
'''sudo''' '''sync'''
'''Note, if you upload a''' '''.7z or .xz or .gz''' '''linux image compressed file, please remember to decompress it before using the dd command to burn.'''
'''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.'''
<ol start="5011" 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 the linux image of the development board to the NVMe SSD, 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, then the linux system in SPIFlash+NVMe SSD will be started.</li></ol>
# 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.
[[File:./images/media/image26image25.png|375x108px]]
<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></ol>
[[File:./images/media/image126image90.png|349x140px]]
<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>
[[File:./images/media/image127image91.png|395x109px]]
<ol start="4" style="list-style-type: decimal;">
<div class="figure">
[[File:./images/media/image149image95.png|506x249px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image150image96.png|406x207px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image151image97.png|406x205px|IMG_256]]
</div>
<li>Then enter the '''/usr/lib/linux-u-boot-legacy-orangepi5plus_1.x.x_arm64''' directory, select '''rkspi_loader.img''', and click '''Open'''to open</li></ol>
[[File:./images/media/image152image98.png|575x162px]]
<ol start="3" style="list-style-type: lower-alpha;">
<li>The interface after opening '''rkspi_loader.img''' is as follows:</li></ol>
[[File:./images/media/image153image99.png|379x181px]]
<ol start="4" style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image154image100.png|379x171px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image155image101.png|385x155px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image156image102.png|389x264px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image157image103.png|394x268px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image158image104.png|396x269px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image159image105.png|393x269px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image160image106.png|397x272px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image161image107.png|395x225px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image162image108.png|386x204px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image163image109.png|386x261px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image164image110.png|381x191px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image154image100.png|379x171px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image155image101.png|385x155px|IMG_256]]
</div>
<li>Then select the device name of the NVMe SSD '''/dev/nvme0n1''', and click '''Select'''</li></ol>
[[File:./images/media/image165image111.png|386x264px]]
<ol start="7" style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image166image112.png|389x264px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image167image113.png|392x268px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image168image114.png|390x267px|IMG_256]]
</div>
<li>The display of the burning process is as follows:</li></ol>
[[File:./images/media/image169image115.png|393x212px]]
<div class="figure">
[[File:./images/media/image170image116.png|395x205px|IMG_256]]
</div>
<li>After the burning is completed, the display is as follows:</li></ol>
[[File:./images/media/image171image117.png|398x227px]]
<ol start="12" style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image172image118.png|590x317px|IMG_256]]
</div>
<li>Then enter the password orangepi of the linux system, and then click '''Authenticate'''</li></ol>
[[File:./images/media/image173image119.png|356x173px]]
<ol start="3" style="list-style-type: lower-alpha;">
<li>Then click '''Fix'''</li></ol>
[[File:./images/media/image174image120.png|375x276px]]
<ol start="4" style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image175image121.png|452x187px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image176image122.png|451x187px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image177image123.png|448x345px|IMG_256]]
</div>
<li>Then drag the capacity to the maximum at the position shown in the figure below</li></ol>
[[File:./images/media/image178image124.png|339x210px]]
<ol start="8" style="list-style-type: lower-alpha;">
<li>and click '''Resize/Move'''</li></ol>
[[File:./images/media/image179image125.png|339x212px]]
<ol style="list-style-type: lower-roman;">
<li>Then click the green one in the picture below'''√'''</li></ol>
[[File:./images/media/image180image126.png|425x166px]]
<ol start="10" style="list-style-type: lower-alpha;">
<li>Click again '''Apply'''</li></ol>
[[File:./images/media/image181image127.png|378x276px]]
<ol start="11" style="list-style-type: lower-alpha;">
<li>Then click '''Close''' to close</li></ol>
[[File:./images/media/image182image128.png|383x234px]]
<ol start="13" style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image183image129.png|575x361px|图片1]]
</div>
'''c.''' '''After  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="using-rkdevtool-to-burn"></span>
=== Using RKDevTool to burn ===
<ol start="12" style="list-style-type: decimal;"><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>
[[File:./images/media/image26image25.png|261x75px]]
<ol start="132" 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></ol>
[[File:./images/media/image126image90.png|259x104px]]
<ol start="143" 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/image127image91.png|340x94px]]
<ol start="154" style="list-style-type: decimal;">
<li>Then you need to prepare a data cable with good quality Type-C interface</li></ol>
[[File:./images/media/image22image21.png|123x124px]]
<ol start="165" 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 Orange Pi data download page</p>
<ol style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image109image79.png|371x90px|c40e71d1a66216e12b3b4297138f749]]
</div>
<div class="figure">
[[File:./images/media/image110image80.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.'''
<ol start="176" 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 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>
<div class="figure">
[[File:./images/media/image102image73.png|340x108px|e6986fc9c8fc078e8cb6a9c39b76fb8]]
</div>
<ol start="187" 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></ol>
[[File:./images/media/image57image47.png|429x126px]]
<ol start="198" 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></ol>
[[File:./images/media/image58image48.png|300x157px]]
<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>
[[File:./images/media/image59image49.png|324x168px]]
<ol start="209" 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/image60image50.png|455x135px]]
<ol start="2110" 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;</li></ol>
[[File:./images/media/image61image51.png|436x205px]]
<ol start="2211" style="list-style-type: decimal;">
<li><p>Then start burning the Linux image to the SSD</p>
<ol style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image63image52.jpeg|446x126px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-2.jpg未标题-2]]
</div>
<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:./images/media/image64image53.png|424x103px]]
<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. The location of the Type-C power interface is as follows:</li></ol>
[[File:./images/media/image65image54.png|439x134px]]
<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>
[[File:./images/media/image66image55.png|457x215px]]
<ol start="6" style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image185image130.jpeg|452x212px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-4.jpg未标题-4]]
</div>
<li>Then place the mouse cursor in the area below</li></ol>
[[File:./images/media/image70image57.png|453x213px]]
<ol start="8" style="list-style-type: lower-alpha;">
<li>Then select the '''Import configuration''' option</li></ol>
[[File:./images/media/image72image58.png|458x215px]]
<ol style="list-style-type: lower-roman;">
<li>Then enter the MiniLoader folder downloaded earlier, then select the '''rk3588_linux_pcie.cfg''' configuration file, and click '''Open'''</li></ol>
[[File:./images/media/image186image131.png|462x217px]]
<ol start="10" style="list-style-type: lower-alpha;">
<li>Then click '''OK'''</li></ol>
[[File:./images/media/image187image132.png|468x220px]]
<ol start="11" style="list-style-type: lower-alpha;">
<li>Then click the location shown in the figure below</li></ol>
[[File:./images/media/image188image133.png|480x225px]]
<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/image80image62.png|484x227px]]
<ol start="13" style="list-style-type: lower-alpha;">
<li>Then click the position shown in the figure below</li></ol>
[[File:./images/media/image189image134.png|486x228px]]
<ol start="14" style="list-style-type: lower-alpha;">
<li>Then enter the '''MiniLoader''' folder downloaded earlier, select '''rkspi_loader.img,''' and click '''Open'''</li></ol>
[[File:./images/media/image190image135.png|501x235px]]
<ol start="15" style="list-style-type: lower-alpha;">
<li>Then click the location shown in the figure below</li></ol>
[[File:./images/media/image191image136.png|501x235px]]
<ol start="16" style="list-style-type: lower-alpha;">
'''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.'''
[[File:./images/media/image84image64.png|499x234px]]
<ol start="17" style="list-style-type: lower-alpha;">
<li>Then please check the option to '''force write by address'''</li></ol>
[[File:./images/media/image192image137.png|487x229px]]
<ol start="18" style="list-style-type: lower-alpha;">
<li>Click the Execute button again to start burning the u-boot+linux image to SPIFlash+SSD</li></ol>
[[File:./images/media/image193image138.png|489x230px]]
<ol start="19" style="list-style-type: lower-alpha;">
<li>The display log after burning the image is shown in the figure below</li></ol>
[[File:./images/media/image194image139.png|490x230px]]
<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>
 
<span id="section-19"></span>
=== ===
 
<ol start="23" 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></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></ol>
</li></ol>
<span id="how-to-burn-openwrt-image-to-spi-flash"></span>
'''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.'''
 
<span id="section-20"></span>
=== ===
 
<ol style="list-style-type: decimal;">
<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></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="the-method-of-using-the-dd-command-to-burn-1"></span>
<div class="figure">
[[File:./images/media/image203image140.png|329x112px|25566f72fb1f4567c78af07e73b5134]]
</div>
=== Using RKDevTool to burn ===
<ol start="10" 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/image127image91.png|389x107px]]
<ol start="112" style="list-style-type: decimal;">
<li>Then you need to prepare a data cable with good quality Type-C interface</li></ol>
[[File:./images/media/image22image21.png|152x154px]]
<ol start="123" 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 Orange Pi data download page</p>
<ol style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image102image73.png|340x108px|e6986fc9c8fc078e8cb6a9c39b76fb8]]
</div>
<div class="figure">
[[File:./images/media/image110image80.png|401x165px|2feec28318eaa60c0514000158b889a]]
</div>
'''Note that the''' &quot;MiniLoader-things needed to burn the Linux image&quot; '''folder is hereinafter referred to as the MiniLoader folder.'''
<ol start="134" 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 '''16MB.''' After 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></ol>
<div class="figure">
[[File:./images/media/image203image140.png|329x112px|25566f72fb1f4567c78af07e73b5134]]
</div>
<ol start="145" style="list-style-type: decimal;">
<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></ol>
[[File:./images/media/image57image47.png|472x139px]]
<ol start="156" 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></ol>
[[File:./images/media/image58image48.png|276x145px]]
<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>
[[File:./images/media/image59image49.png|292x151px]]
<ol start="167" 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/image60image50.png|467x138px]]
<ol start="178" 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/image61image51.png|402x189px]]
<ol start="189" style="list-style-type: decimal;">
<li><p>Then start burning the OpenWRT image into SPI FLASH</p>
<ol style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image63image52.jpeg|424x120px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-2.jpg未标题-2]]
</div>
<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:./images/media/image64image53.png|444x100px]]
<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></ol>
[[File:./images/media/image65image54.png|402x123px]]
<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>
[[File:./images/media/image66image55.png|457x215px]]
<ol start="6" style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image185image130.jpeg|452x212px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-4.jpg未标题-4]]
</div>
<li>Then click the right mouse button and the selection interface shown in the figure below will pop up</li></ol>
[[File:./images/media/image70image57.png|453x213px]]
<ol start="8" style="list-style-type: lower-alpha;">
<li>Then select the '''Import configuration''' option</li></ol>
[[File:./images/media/image72image58.png|458x215px]]
<ol style="list-style-type: lower-roman;">
<li>Then select the '''rk3588_linux_spiflash.cfg''' configuration file in the MiniLoader folder downloaded earlier, and click '''Open'''</li></ol>
[[File:./images/media/image204image141.png|465x218px]]
<ol start="10" style="list-style-type: lower-alpha;">
<li>Then click '''OK'''</li></ol>
[[File:./images/media/image205image142.png|466x219px]]
<ol start="11" style="list-style-type: lower-alpha;">
<li>Then click the location shown in the figure below</li></ol>
[[File:./images/media/image206image143.png|467x219px]]
<ol start="12" style="list-style-type: lower-alpha;">
<li>Then select '''MiniLoaderAll.bin''' in the '''MiniLoader''' folder downloaded earlier, and click '''Open'''</li></ol>
[[File:./images/media/image207image144.png|469x220px]]
<ol start="13" style="list-style-type: lower-alpha;">
<li>Then click the location shown in the figure below</li></ol>
[[File:./images/media/image208image145.png|452x212px]]
<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 '''Open'''</p>
<p>'''Before burning the image, it is recommended to rename the OpenWRT 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.'''</p></li></ol>
[[File:./images/media/image84image64.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/image209image146.png|463x217px]]
<ol start="16" style="list-style-type: lower-alpha;">
<li>Click the '''Execute''' button again to start burning the OpenWRT image into SPIFlash</li></ol>
[[File:./images/media/image210image147.png|463x218px]]
<ol start="17" style="list-style-type: lower-alpha;">
<li>The display log after burning the OpenWRT image is shown in the figure below</li></ol>
[[File:./images/media/image211image148.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"></span>
== ==
 
<span id="section-22"></span>
=== ===
 
<ol start="19" style="list-style-type: decimal;">
<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></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="section-23"></span>
=== ===
 
<ol start="6" style="list-style-type: decimal;">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li></ol>
 
<span id="section-24"></span>
=== ===
 
<ol start="28" style="list-style-type: decimal;">
<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></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="how-to-burn-android-image-to-tf-card"></span>
</li></ol>
[[File:./images/media/image212image149.png|240x98px]]
<ol start="2" style="list-style-type: lower-alpha;">
c) The image with box is a image dedicated to the TV box
[[File:./images/media/image213image150.png|255x97px]]
<ol start="5" style="list-style-type: decimal;">
<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/image214image151.png|575x138px]]
<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. '''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/image215image152.png|267x228px]]
<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 SD Card Formatter mentioned above to format the TF card</li></ol>
[[File:./images/media/image216image153.png|247x212px]]
<ol start="9" style="list-style-type: decimal;">
c. Finally click the &quot;'''Start Create'''&quot; button to start burning the Android image to the TF card
[[File:./images/media/image217image154.png|346x292px]]
<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></ol>
[[File:./images/media/image218image155.png|304x258px]]
<span id="how-to-burn-android-image-into-emmc"></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:
[[File:./images/media/image108image78.png|307x141px]]
<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:./images/media/image22image21.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.'''</p></li></ol>
<div class="figure">
[[File:./images/media/image219image156.png|240x98px|4db492fa03e0cf83396c36286128350]]
</div>
<li><p>The image with box is a image dedicated to the TV box</p></li></ol>
[[File:./images/media/image213image150.png|255x97px]]
<ol start="5" style="list-style-type: decimal;">
<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></ol>
[[File:./images/media/image57image47.png|575x169px]]
<ol start="7" style="list-style-type: decimal;">
</li></ol>
[[File:./images/media/image58image48.png|300x157px]]
<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;, then click &quot;OK&quot;</li></ol>
[[File:./images/media/image59image49.png|315x164px]]
<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></ol>
[[File:./images/media/image60image50.png|454x134px]]
<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></ol>
[[File:./images/media/image61image51.png|442x208px]]
<ol start="10" style="list-style-type: decimal;">
<div class="figure">
[[File:./images/media/image63image52.jpeg|439x124px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-2.jpg未标题-2]]
</div>
<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:./images/media/image64image53.png|456x103px]]
<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</li></ol>
[[File:./images/media/image65image54.png|441x135px]]
<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>
[[File:./images/media/image66image55.png|457x215px]]
<ol start="6" style="list-style-type: lower-alpha;">
<li>Then click the &quot;'''Upgrade Firmware'''&quot; column of the burning tool</li></ol>
[[File:./images/media/image220image157.png|442x208px]]
<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></ol>
[[File:./images/media/image222image158.png|444x209px]]
<ol start="8" style="list-style-type: lower-alpha;">
<li><p>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 is completed, the Android system will start automatically.</lip></olp> [[File:./images/media/image224image159.png|449x211px]]</p></li></ol>
<span id="how-to-burn-android-12-image-into-emmc-via-tf-card"></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:
[[File:./images/media/image108image78.png|392x180px]]
<ol start="2" style="list-style-type: decimal;">
<div class="figure">
[[File:./images/media/image219image156.png|240x98px|4db492fa03e0cf83396c36286128350]]
</div>
</li></ol>
[[File:./images/media/image213image150.png|255x97px]]
<ol start="6" style="list-style-type: decimal;">
<li></li></ol>
[[File:./images/media/image214image151.png|429x103px]]
<ol start="9" 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. '''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/image215image152.png|267x228px]]
<ol start="10" 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></ol>
[[File:./images/media/image216image153.png|247x212px]]
<ol start="11" style="list-style-type: decimal;">
</li></ol>
[[File:./images/media/image227image160.png|290x246px]]
<ol start="12" style="list-style-type: decimal;">
<li></li></ol>
[[File:./images/media/image228image161.png|285x243px]]
<ol start="14" style="list-style-type: decimal;">
<li></li></ol>
[[File:./images/media/image229image162.png|430x247px]]
<ol start="17" 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.</li></olp> <span id="section-25"p></span>=== [[File:./images/media/image230image163.png|576x389px]] === <ol start="18" style="list-style-type: decimal;"><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></li><li></li><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><lip></li></ol>
<span id="how-to-burn-android-image-to-spiflashnvme-ssd"></span>
# 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.
[[File:./images/media/image26image25.png|361x104px]]
<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</li></ol>
[[File:./images/media/image126image90.png|355x143px]]
<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>
[[File:./images/media/image127image91.png|415x114px]]
<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></ol>
[[File:./images/media/image22image21.png|150x152px]]
<ol start="5" style="list-style-type: decimal;">
</li></ol>
[[File:./images/media/image231image164.png|234x91px]]
<ol start="2" style="list-style-type: lower-alpha;">
</li></ol>
[[File:./images/media/image232image165.png|241x70px]]
<ol start="7" style="list-style-type: decimal;">
<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></ol>
[[File:./images/media/image57image47.png|575x169px]] 8) After opening DriverInstall.exe, the steps to install the Rockchip driver are as follows
a8) After opening DriverInstall.exe, the steps to install the Rockchip driver are as followsa. Click the &quot;'''Driver Install'''&quot; button
[[File:./images/media/image58image48.png|300x157px]]
a. 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
[[File:./images/media/image59image49.png|429x223px]]
<blockquote>9)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
</blockquote>
[[File:./images/media/image60image50.png|421x124px]]
<ol start="11" 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;</li></ol>
[[File:./images/media/image61image51.png|442x208px]]
<ol start="12" style="list-style-type: decimal;">
<li><p>Then start burning the Android image to SPIFlash+NVMe SSD</p>
<ol style="list-style-type: lower-roman;">
<li></li></ol>
 
<!-- -->
<ol style="list-style-type: 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>
<div class="figure">
[[File:./images/media/image63image52.jpeg|418x118px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-2.jpg未标题-2]]
</div>
<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>
[[File:./images/media/image64image53.png|443x100px]]
<ol start="4" style="list-style-type: lower-alpha;">
<li>Then connect the power supply of the Type-C interface to the &gt; development board, and power on, and then release the MaskROM &gt; button</li></ol>
[[File:./images/media/image65image54.png|449x137px]]
<ol start="5" style="list-style-type: lower-alpha;">
<li>If the previous steps are successful, the development board will &gt; enter the '''MASKROM''' mode at this time, and the interface of the &gt; burning tool will prompt &quot;'''Found a MASKROM device'''&quot;</li></ol>
[[File:./images/media/image66image55.png|457x215px]]
<ol start="6" style="list-style-type: lower-alpha;">
<li>Then click the &quot;Upgrade Firmware&quot; column of the burning tool</li></ol>
[[File:./images/media/image220image157.png|442x208px]]
<ol start="7" style="list-style-type: lower-alpha;">
<li>Then click the &quot;Firmware&quot; button to select the Android image to be &gt; burned</li></ol>
[[File:./images/media/image222image158.png|447x210px]]
<ol start="8" style="list-style-type: lower-alpha;">
<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></ol>
[[File:./images/media/image233image166.png|450x210px]]
<span id="how-to-burn-orange-pi-os-droid-image-to-tf-card"></span>
# 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
# Then use the card reader to insert the TF card into the computer
# 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.'''
# Then download the Orange Pi OS (Droid) image from the O'''range Pi data 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 image below
[[File:./images/media/image235image167.png|286x49px]]
<ol start="5" style="list-style-type: decimal;">
<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/image214image151.png|486x117px]]
<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. '''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/image215image152.png|248x212px]]
<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 '''SD Card Formatter''' mentioned above to format the TF card</li></ol>
[[File:./images/media/image216image153.png|261x224px]]
<ol start="9" style="list-style-type: decimal;">
</li></ol>
[[File:./images/media/image217image154.png|279x236px]]
<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></ol>
[[File:./images/media/image218image155.png|304x258px]]
<span id="how-to-burn-orange-pi-os-droid-image-into-emmc"></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:
[[File:./images/media/image108image78.png|324x149px]]
<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></ol>
[[File:./images/media/image22image21.png|127x129px]]
<ol start="3" style="list-style-type: decimal;">
<li><p>Then download the Orange Pi OS (Droid) image from the '''Orange Pi download page'''</p></li></ol>
[[File:./images/media/image235image167.png|286x49px]]
<ol start="5" style="list-style-type: decimal;">
<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/image57image47.png|575x169px]]
<ol start="7" style="list-style-type: decimal;">
</li></ol>
[[File:./images/media/image58image48.png|300x157px]]
<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>
[[File:./images/media/image59image49.png|318x165px]]
<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></ol>
[[File:./images/media/image60image50.png|575x170px]]
<ol start="9" 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;</li></ol>
[[File:./images/media/image61image51.png|442x208px]]
<ol start="10" style="list-style-type: decimal;">
<div class="figure">
[[File:./images/media/image63image52.jpeg|468x132px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-2.jpg未标题-2]]
</div>
<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:./images/media/image64image53.png|479x108px]]
<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</li></ol>
[[File:./images/media/image65image54.png|457x140px]]
<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>
[[File:./images/media/image66image55.png|457x215px]]
<ol start="6" style="list-style-type: lower-alpha;">
<li>Then click the &quot;'''Upgrade Firmware'''&quot; column of the burning tool</li></ol>
[[File:./images/media/image220image157.png|461x217px]]
<ol start="7" style="list-style-type: lower-alpha;">
<li>Then click the &quot;'''Firmware'''&quot; button to select the path of the Orange Pi OS (Droid) image that needs to be burned</li></ol>
[[File:./images/media/image222image158.png|453x213px]]
<ol start="8" style="list-style-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.</li></ol>
[[File:./images/media/image236image168.png|456x214px]]
<span id="burn-orange-pi-os-droid-image-to-emmc-via-tf-card"></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:
[[File:./images/media/image108image78.png|342x157px]]
<ol start="2" style="list-style-type: decimal;">
<li><p>Then download the Orange Pi OS (Droid) image from the '''Orange Pi download page'''</p></li></ol>
[[File:./images/media/image235image167.png|286x49px]]
<ol start="6" style="list-style-type: decimal;">
<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/image214image151.png|454x109px]]
<ol start="8" 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. '''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/image215image152.png|267x228px]]
<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></ol>
[[File:./images/media/image216image153.png|267x228px]]
<ol start="10" style="list-style-type: decimal;">
d. Finally click the &quot;'''Start Create'''&quot; button to start burning
[[File:./images/media/image227image160.png|289x246px]]
<ol start="11" style="list-style-type: decimal;">
<li>After the burning is completed, the display is as shown in the figure below, and then you can exit SDDiskTool</li></ol>
[[File:./images/media/image228image161.png|285x243px]]
<ol start="12" style="list-style-type: decimal;">
<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>
[[File:./images/media/image229image162.png|430x247px]]
<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></ol>
[[File:./images/media/image230image163.png|576x389px]]
<span id="burn-orange-pi-os-droid-image-to-spiflashnvme-ssd"></span>
# 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.
[[File:./images/media/image26image25.png|314x91px]]
<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</li></ol>
[[File:./images/media/image126image90.png|323x130px]]
<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>
[[File:./images/media/image127image91.png|382x105px]]
<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></ol>
[[File:./images/media/image22image21.png|143x145px]]
<ol start="5" style="list-style-type: decimal;">
<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></ol>
[[File:./images/media/image238image169.png|352x62px]]
<ol start="7" style="list-style-type: decimal;">
<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></ol>
[[File:./images/media/image57image47.png|423x124px]]
<ol start="8" style="list-style-type: decimal;">
</li></ol>
[[File:./images/media/image58image48.png|268x140px]]
<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>
[[File:./images/media/image59image49.png|301x156px]]
<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></ol>
[[File:./images/media/image60image50.png|455x134px]]
<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;</li></ol>
[[File:./images/media/image61image51.png|442x208px]]
<ol start="11" style="list-style-type: decimal;">
<div class="figure">
[[File:./images/media/image63image52.jpeg|435x123px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-2.jpg未标题-2]]
</div>
<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:./images/media/image64image53.png|460x103px]]
<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></ol>
[[File:./images/media/image65image54.png|440x134px]]
<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>
[[File:./images/media/image66image55.png|457x215px]]
<ol start="6" style="list-style-type: lower-alpha;">
<li>Then click the &quot;'''Upgrade Firmware'''&quot; column of the burning tool</li></ol>
[[File:./images/media/image220image157.png|457x215px]]
<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>
[[File:./images/media/image222image158.png|472x222px]]
<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.</li></olp> <span id="section-26"p></span>== [[File:./images/media/image239image170.png|476x225px]] == <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> <!-- --><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> <!-- --><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></ol> <span id="section-27"></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><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol></li><li></li></ol> <span id="section-28"></span>== == <span id="section-29"></span>=== === <ol start="11" style="list-style-type: decimal;"><li></li><li></li><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></ol></li></ol> <span id="section-30"></span>=== === <ol start="15" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></lip><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></li></ol> <span id="section-31"></span>== == <ol start="12" style="list-style-type: decimal;"><li></li><li></li><li></li><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></ol></li></ol>
<span id="how-to-use-rkdevtool-to-clear-spiflash"></span>
<ol style="list-style-type: decimal;">
<li><p>The position of SPI Flash on the development board is shown in the figure below</p>
<p>[[File:./images/media/image127image91.png|389x107px]]</p></li>
<li><p>First, you need to prepare a data cable with a good quality Type-C interface</p>
<p>[[File:./images/media/image22image21.png|152x154px]]</p></li>
<li><p>Then download the Rockchip driver '''DriverAssitant_v5.12.zip''' and '''MiniLoader''' and the burning tool '''RKDevTool_Release_v3.15.zip''' from the '''Orange Pi data download page'''</p>
<ol style="list-style-type: lower-alpha;">
<li><p>On the Orange Pi data download page, first select the '''official &gt; tool''', and then enter the following folder</p></li><li><p>[[File:./images/media/image242image171.png|486x155px]]</p></li>
<li><p>Then download all the files below</p>
<p>[[File:./images/media/image243image172.png|389x175px]]</p><p>'''Note that the''' '''&quot;MiniLoader-things needed to burn the Linux image&quot;''' '''folder is hereinafter referred to as the MiniLoader folder.'''</p></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:./images/media/image57image47.png|472x139px]]</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:./images/media/image58image48.png|276x145px]]</p></li>
<li><p>After waiting for a period of time, a pop-up window will prompt &gt; &quot;'''The driver is installed successfully'''&quot;, and then click &gt; the &quot;'''OK'''&quot; button.</p>
<p>[[File:./images/media/image59image49.png|292x151px]]</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/image60image50.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 time, the lower left corner will prompt &quot;'''No device found'''&quot;</p>
<p>[[File:./images/media/image61image51.png|402x189px]]</p></li>
<li><p>Then you can start to clear the contents of the SPI FLASH</p>
<ol style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image244image173.jpeg|424x120px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-1.jpg未标题-1]]
</div></li>
<li><p>Make sure the development board is not connected to the power &gt; supply</p></li>
<li><p>Then press and hold the MaskROM button on the development board, &gt; the position of the MaskROM button on the development board is &gt; shown in the figure below:</p>
<p>[[File:./images/media/image64image53.png|444x100px]]</p></li>
<li><p>Then connect the power supply of the Type-C interface to the &gt; development board, and power on, and then release the MaskROM &gt; button</p>
<p>[[File:./images/media/image65image54.png|402x123px]]</p></li>
<li><p>If the previous steps are smooth, at this time the development &gt; board will enter the '''Maskrom''' mode, and it will be prompted &gt; &quot;'''Find a Maskrom device'''&quot; on the interface of the &gt; recording tool</p>
<p>[[File:./images/media/image66image55.png|457x215px]]</p></li>
<li><p>Then please select '''advanced features'''</p>
<p>[[File:./images/media/image245image174.png|458x138px]]</p></li>
<li><p>Then click the position shown in the figure below</p>
<p>[[File:./images/media/image246image175.png|459x216px]]</p></li>
<li><p>Then select '''MiniLoaderAll.bin''' in the '''MiniLoader''' folder downloaded earlier, and then click Open</p>
<p>[[File:./images/media/image207image144.png|469x220px]]</p></li>
<li><p>Then click '''download'''</p>
<p>[[File:./images/media/image247image176.png|472x222px]]</p></li>
<li><p>The display after downloading '''MiniLoaderAll.bin''' is shown in the figure below</p>
<p>[[File:./images/media/image248image177.png|474x223px]]</p></li>
<li><p>Then select the storage device as '''SPINOR'''</p>
<p>[[File:./images/media/image249image178.png|467x220px]]</p></li>
<li><p>Then click '''switch storage'''</p>
<p>[[File:./images/media/image250image179.png|464x218px]]</p></li>
<li><p>Then click '''Erase All''' to start erasing SPIFlash</p>
<p>[[File:./images/media/image251image180.png|467x220px]]</p></li>
<li><p>The display log after erasing SPIFlash is shown in the figure below</p>
<p>[[File:./images/media/image252image181.png|450x212px]]</p></li></ol>
</li></ol>
# 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.
#
#
#
#
#
'''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-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.'''
<div class="figure">
[[File:./images/media/image253image182.jpeg|262x234px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\01.jpg01]]
</div>
<ol start="116" style="list-style-type: decimal;">
<li><p>Then turn on 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 screen.</p></li>
<li><p>If you want to view the output information of the system through the debugging serial port, please 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 '''how to use the debugging serial port'''.</p></li><li></li><li></li></ol>
<span id="how-to-use-the-debugging-serial-port"></span>
<div class="figure">
[[File:./images/media/image255image183.png|576x115px|07]]
</div>
<ol start="2" style="list-style-type: decimal;">
<li><p>The corresponding relationship between GND, RXD and TXD pins of the debugging serial port of the development board is shown in the figure below:</p>
<p>[[File:./images/media/image256image184.png|485x174px]]</p></li>
<li><p>The GND, TXD and RXD pins of the USB to TTL module need to be connected to the debugging serial port of the development board through a DuPont line</p>
<ol style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image257image185.png|524x189px|08]]
</div>
<li><p>Then run putty, '''remember to add sudo permission'''</p>
<p>test@test:~$ '''sudo putty'''</p></li>
<li><p>After executing the putty command, the following interface will pop up</p></li></ol> <!-- --><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></li></ol> <span id="section-32"></span>=== === <ol start="5" style="list-style-type: decimal;"><li></li><li></li><li></li><li><p>[[File:./images/media/image259image186.png|367x321px]]</p></li>
<li><p>First select the setting interface of the serial port</p>
<p>[[File:./images/media/image260image187.png|359x352px]]</p></li>
<li><p>Then set the parameters of the serial port</p>
<ol style="list-style-type: lower-alpha;">
<div class="figure">
[[File:./images/media/image262image188.png|317x312px|09]]
</div></li></ol>
<div class="figure">
[[File:./images/media/image264image189.png|345x340px|10]]
</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></li><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><p>[[File:./images/media/image265image190.png|287x208px]]</p></li></ol>
<span id="how-to-use-the-debugging-serial-port-on-windows-platform"></span>
<ol style="list-style-type: lower-alpha;">
<li><p>Download MobaXterm website as follows</p>
<p>[https://mobaxterm.mobatek.net/ '''https://mobaxterm.mobatek.net''']</p></li><li><p>After entering the MobaXterm download page, click '''GET XOBATERM &gt; NOW!'''</p></li></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li><p>[[File:./images/media/image266image191.png|576x334px]]</p></li>
<li><p>Then choose to download the Home version</p>
<p>[[File:./images/media/image267image192.png|353x231px]]</p></li>
<li><p>Then select Portable portable version, no need to install after downloading, just open it and use it</p>
<p>[[File:./images/media/image268image193.png|575x259px]]</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>
<ol style="list-style-type: lower-alpha;"><li></li><li></li></ol></li><li><p>[[File:./images/media/image269image194.png|576x81px]]</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;">
<div class="figure">
[[File:./images/media/image271image195.png|575x438px|11]]
</div>
<ol start="64" 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></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li></ol></li><li><div class="figure">
[[File:./images/media/image273image196.png|575x291px|12]]
</div></li></ol>
'''The content of this chapter is written based on the Ubuntu/Debian server version image and the xfce desktop version image.'''
'''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.'''
'''If you are using the OPi OS Arch image, please refer to the chapter''' '''Orange Pi OS Arch System Instructions.'''
<span id="supported-ubuntudebian-image-types-and-kernel-versions"></span>
|-
| style="text-align: left;"| '''Function'''
| style="text-align: left;"| '''Linux5.10''' '''driver'''
| style="text-align: left;"| '''Debian11'''
| style="text-align: left;"| '''Ubuntu20.04'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''HDMI TX1''' '''Audio'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''HDMI TX2''' '''Video'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
| 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;"| '''OK'''
|-
| style="text-align: left;"| '''HDMI RX''' '''Video'''
| style="text-align: left;"| '''OK'''
| 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;"| '''OK'''
|-
| style="text-align: left;"| '''RTC''' '''Chip'''
| style="text-align: left;"| '''OK'''
| 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;"| '''OK'''
|-
| style="text-align: left;"| '''eMMC''' '''Extension ports'''
| style="text-align: left;"| '''OK'''
| 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;"| '''Type-C ADB''' '''Function'''
| 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;"| '''Type-C DP''' '''Audio'''
| style="text-align: left;"| '''OK'''
| style="text-align: left;"| '''OK'''
|}
'''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.'''
'''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,''' '''please do not suspect that the above password is wrong, but look for other reasons.'''
<span id="how-to-set-automatic-terminal-login-in-linux-system"></span>
<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/image274image197.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'''</p></li>
<div class="figure">
[[File:./images/media/image275image198.png|576x324px|1]]
</div></li>
<div class="figure">
[[File:./images/media/image276image199.png|569x320px|IMG_256]]
</div>
<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:./images/media/image277image200.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>
<ol style="list-style-type: decimal;">
<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/image278image201.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>
<p>inet6 fe80::62b5:dc5e:728e:39a3/64 scope link noprefixroute</p>
<p>valid_lft forever preferred_lft forever</p>
<p>'''When using ifconfig to view the IP address, if the following information is prompted, it is because sudo is not added. The correct command is:''' '''sudo ifconfig'''</p>
<p>orangepi@orangepi:~$ '''ifconfig'''</p>
<p>Command 'ifconfig' is available in the following places</p>
'''There are three ways to check the IP address after the development board starts:'''
# '''Connect the HDMI display, then log in to the system and use the''' '''ip addr show''' '''command to view the IP address'''# '''Enter the''' '''ip addr show''' '''command in the debugging serial terminal to view the IP address'''
# '''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 development board normally. If you can't see it, the debug method looks like this:'''
<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></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>
'''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.'''
'''For instructions on using the external PCIe network card, please refer to the section on''' '''how to use the PCIe WIFI6+Bluetooth module.'''
'''For instructions on using the external USB network card, please refer to the''' '''USB wireless network card test section.'''
'''Please do not connect to WIFI by modifying the''' '''/etc/network/interfaces''' '''configuration file. There will be problems connecting to the WIFI network in this way.'''
<span id="the-server-image-connects-to-wifi-through-commands"></span>
<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></li>
<li><p>If the development board is connected to the debugging serial &gt; port, you can use the serial port terminal to log in to the &gt; 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>
<div class="figure">
[[File:./images/media/image279image202.png|575x250px|选区_011]]
</div></li>
<p>orangepi@orangepi:~$ '''nmtui'''</p></li>
<li><p>Enter the nmtui command to open the interface as shown below</p>
<p>[[File:./images/media/image280image203.png|345x215px]]</p></li>
<li><p>Select '''Activate a connect''' and press Enter</p>
<p>[[File:./images/media/image281image204.png|349x216px]]</p></li>
<li><p>Then you can see all the searched WIFI hotspots</p>
<p>[[File:./images/media/image283image205.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/image285image206.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/image286image207.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/image287image208.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>
<ol style="list-style-type: decimal;">
<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/image288image209.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/image289image210.png|576x353px]]</p></li>
<li><p>Then enter the password of the WIFI hotspot, and then click '''Connect''' to start connecting to WIFI</p>
<p>[[File:./images/media/image290image211.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/image291image212.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/image293image213.png|574x222px]]</p></li></ol>
<span id="how-to-set-a-static-ip-address"></span>
=== How to set a static IP address ===
'''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>
<p>orangepi@orangepi:~$ '''nmtui'''</p></li>
<li><p>Then select '''Edit a connection''' and press Enter</p>
<p>[[File:./images/media/image294image214.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/image295image215.png|306x121px]]</p></li>
<li><p>Then select '''Edit''' via the '''Tab''' key and press the Enter key</p>
<p>[[File:./images/media/image296image216.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/image297image217.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/image298image218.png|575x212px]]</p></li>
<li><p>The display after selection is shown in the figure below</p>
<p>[[File:./images/media/image299image219.png|575x215px]]</p></li>
<li><p>Then move the cursor to &lt;'''Show'''&gt; via the Tab key</p>
<p>[[File:./images/media/image300image220.png|576x215px]]</p></li>
<li><p>Then press Enter, and the following setting interface will pop up after entering</p>
<p>[[File:./images/media/image301image221.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/image302image222.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/image303image223.png|575x114px]]</p></li>
<li><p>Then click '''&lt;Back&gt;''' to return to the previous selection interface</p>
<p>[[File:./images/media/image304image224.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/image305image225.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/image306image226.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/image307image227.png|414x160px]]</p></li>
<li><p>Then you can exit nmtui through the '''&lt;Back&gt;''' and '''Quit''' buttons</p>
<p>[[File:./images/media/image308image228.png|260x224px]] [[File:./images/media/image309image229.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>
| '''AX200'''
'''(PCIE+USB''' '''port)'''
| [[File:.media/images/%20media/image310image230.p%20ng]]
| '''Debian'''
| '''AX210'''
'''(PCIE+USB''' '''port)'''
| [[File:./images/media%20/image311image231.png]]{w idth=“1.06875in” height=“1.45in”}
| '''Debian'''
| '''RTL8852BE'''
'''(PCIE+USB''' '''port)'''
| [[File:.media/images/%20media/image312image232.p%20ng]]
| '''Debian'''
<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/image313image233.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;">
<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314image234.png|374x173px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315image235.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/image316image236.png|298x40px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image317image237.png|297x80px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image318image238.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/image319image239.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>
root@192.168.1.xx's password: (Enter the password here, the default password is orangepi)
'''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.'''
'''If you are prompted to refuse the connection, as long as you are using the image provided by Orange Pi,''' '''please do not suspect that the password orangepi is wrong, but look for other reasons.'''
<ol start="3" style="list-style-type: decimal;">
<div class="figure">
[[File:./images/media/image320image240.png|437x262px|953iring_001]]
</div>
<div class="figure">
[[File:./images/media/image322image241.png|575x292px|13]]
</div></li></ol>
</li>
<li><p>Then you will be prompted to enter a password. The default passwords for root and orangepi users are orangepi</p>
<p>'''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.'''</p></li></ol>
[[File:./images/media/image323image242.png|576x192px]]
<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></ol>
[[File:./images/media/image324image243.png|575x353px]]
<span id="how-to-use-adb"></span>
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;">
<p>test@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/image325image244.png|576x131px]]
'''An example using adb in Windows looks like this:'''
[[File:./images/media/image326image245.png|576x335px]]
<span id="adb3.9.2.-use-type-c-data-cable-to-connect-to-adb"></span>
<ol style="list-style-type: decimal;">
<li><p>First prepare a good quality Type-C data cable</p>
<p>[[File:./images/media/image22image21.png|125x126px]]</p></li>
<li><p>Then connect the development board and Ubuntu PC through the Type-C data cable. The position of the Type-C interface of the development board is shown in the figure below:</p>
<div class="figure">
[[File:./images/media/image244image173.jpeg|323x91px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-1.jpg未标题-1]]
</div></li>
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="9" style="list-style-type: decimal;">
<p>filename: 1 file pushed. 3.7 MB/s (1075091 bytes in 0.277s)</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/image325image244.png|576x131px]]
'''An example using adb in Windows looks like this:'''
[[File:./images/media/image327image246.png|576x304px]]
<span id="the-method-of-uploading-files-to-the-linux-system-of-the-development-board"></span>
<div class="figure">
[[File:./images/media/image328image247.png|576x453px|截图 2022-12-03 19-04-40]]
</div></li>
<div class="figure">
[[File:./images/media/image330image248.png|575x128px|图片565]]
</div>
<ol start="5" style="list-style-type: decimal;">
<li><p>Then choose to '''save the password''', and then click '''OK'''</p>
<p>[[File:./images/media/image331image249.png|249x181px]]</p></li>
<li><p>Then choose to '''always trust this host''', and then click '''OK'''</p></li></ol>
<div class="figure">
[[File:./images/media/image332image250.png|278x150px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image333image251.png|533x330px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image334image252.png|529x414px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image335image253.png|472x171px|IMG_256]]
</div>
[[File:./images/media/image336image254.png|384x276px]]
<ol start="2" style="list-style-type: decimal;">
<div class="figure">
[[File:./images/media/image337image255.png|355x279px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image338image256.png|451x357px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image330image248.png|575x128px|图片565]]
</div>
<div class="figure">
[[File:./images/media/image340image257.png|207x146px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image341image258.png|221x109px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image342image259.png|449x332px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image343image260.png|461x340px|IMG_256]]
</div>
<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:./images/media/image344image261.png|333x92px]]</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;">
<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314image234.png|362x167px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315image235.png|362x157px]]</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''' &gt; to select '''hdmi2-8k''' configuration</p>
<p>[[File:./images/media/image345image262.png|361x66px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image346image263.png|363x105px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image347image264.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/image319image239.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/image12image11.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>
<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/image348image265.png|351x112px]]</p></li>
<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>
<p>[[File:./images/media/image12image11.png|199x129px]]</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;">
<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314image234.png|362x167px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315image235.png|362x157px]]</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''' &gt; to select the '''hdmirx''' configuration</p>
<p>[[File:./images/media/image349image266.png|359x82px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image346image263.png|363x105px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image347image264.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/image319image239.png|276x121px]]</p></li></ol>
</li>
<li><p>Restart the system and open a terminal on the desktop, then run the '''test_hdmiin.sh''' script</p>
<div class="figure">
[[File:./images/media/image350image267.png|576x324px|1]]
</div></li></ol>
<ol style="list-style-type: lower-alpha;">
<li><p>HDMI to VGA Converter</p>
<p>[[File:./images/media/image351image268.png|155x104px]]</p></li>
<li><p>A VGA cable</p>
<p>[[File:./images/media/image352image269.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/image353image270.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></ol>
<ol style="list-style-type: decimal;">
<li><p>First open '''Display''' in '''Settings'''</p>
<p>[[File:./images/media/image354image271.png|576x370px]]</p></li>
<li><p>Then you can see the current resolution of the system</p>
<p>[[File:./images/media/image355image272.png|288x191px]]</p></li>
<li><p>Click the drop-down box of Resolution to see all resolutions currently supported by the monitor</p>
<p>[[File:./images/media/image356image273.png|353x233px]]</p></li>
<li><p>Then select the resolution you want to set, and click Apply</p>
<p>[[File:./images/media/image357image274.png|351x234px]]</p></li>
<li><p>After the new resolution is set, select '''Keep the configuration'''</p>
<p>[[File:./images/media/image358image275.png|462x251px]]</p></li></ol>
<span id="how-to-use-bluetooth"></span>
'''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.'''
'''For instructions on using the external PCIe network card, please refer to the section on''' '''how to use the PCIe WIFI6+Bluetooth module.'''
'''For instructions on using the external USB network card, please refer to the''' '''USB wireless network card test section.'''
<span id="test-method-of-desktop-image-1"></span>
<ol style="list-style-type: decimal;">
<li><p>Click on the Bluetooth icon in the upper right corner of the desktop</p>
<p>[[File:./images/media/image359image276.png|386x149px]]</p></li>
<li><p>Then select the adapter</p>
<p>[[File:./images/media/image360image277.png|375x165px]]</p></li>
<li><p>If there is a prompt on the following interface, please select '''Yes'''</p>
<p>[[File:./images/media/image361image278.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:./images/media/image362image279.png|243x229px]]</p></li>
<li><p>Then open the configuration interface of the Bluetooth device</p>
<p>[[File:./images/media/image363image280.png|438x179px]]</p></li>
<li><p>Click '''Search''' to start scanning the surrounding Bluetooth devices</p>
<p>[[File:./images/media/image364image281.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>[[File:./images/media/image365image282.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 '''Confirm''' to confirm, and the phone also needs to confirm at this time</p>
<p>[[File:./images/media/image366image283.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/image367image284.png|439x259px]]</p></li>
<li><p>The interface for sending pictures is as follows</p>
<p>[[File:./images/media/image368image285.png|437x253px]]</p></li></ol>
<span id="usb-interface-test"></span>
Support 2.4G WIFI+BT4.0
| [[File:./images/me%20dia/image369image286.png]]{width =“0.7868055555555555in” height= “0.8291666666666667in”}
|-
| 2
Support 2.4G +5G WIFI
| [[File:./images/me%20dia/image370image287.png]]{width =“0.8555555555555555in” height= “0.8145833333333333in”}
|-
| 3
Support BitTorrent 4.2
| [[File:./images/med%20ia/image371image288.jpeg|tb_image_share_1670 833201123tb_image_s hare_1670833201123]]{width =“0.8777777777777778in” height= “0.8777777777777778in”}
|}
<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/media/image372image289.png|576x157px]]</p></li>
<li><p>Click '''Turn Bluetooth On''' to turn on Bluetooth</p>
<p>[[File:./images/media/image373image290.png|576x262px]]</p></li>
<li><p>The display after turning on Bluetooth is as follows</p>
<p>[[File:./images/media/image374image291.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>
<ol style="list-style-type: decimal;">
<li><p>First, you need to prepare a USB camera that supports the UVC protocol as shown in the figure below or similar, and then insert the USB camera into the USB port of the Orange Pi development board</p>
<p>[[File:./images/media/image19image18.png|277x160px]]</p></li>
<li><p>Through the v4l2-ctl command, you can see that the device node information of the USB camera is /dev/video0</p>
<p>orangepi@orangepi:~$ '''v4l2-ctl --list-devices'''</p>
<p>'''In addition, the serial number of the video is not necessarily video0, please refer to what you actually see.'''</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:</p>
<p>[[File:./images/media/image375image292.png|474x302px]]</p>
<p>The interface after Cheese turns on the USB camera is shown in the figure below:</p>
<p>[[File:./images/media/image376image293.png|480x282px]]</p></li>
<li><p>Method of using fswebcam to test USB camera</p>
<ol style="list-style-type: lower-alpha;">
<ol style="list-style-type: decimal;">
<li><p>First open the file manager</p>
<p>[[File:./images/media/image377image294.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">
[[File:./images/media/image379image295.jpeg|236x186px|图片10]]
</div></li>
<li><p>Then select the audio.wav file, right click and select open with vlc to start playing</p>
<p>[[File:./images/media/image380image296.png|241x195px]]</p></li>
<li><p>How to switch between different audio devices such as HDMI playback and headphone playback</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First open the volume control interface</p>
<p>[[File:./images/media/image381image297.png|294x161px]]</p></li>
<li><p>When playing audio, the audio device options that the playback &gt; software can use will be displayed in '''Playback''', as shown &gt; in the figure below, where you can set which audio device to &gt; play to</p>
<p>[[File:./images/media/image382image298.png|575x303px]]</p></li></ol>
</li></ol>
<ol style="list-style-type: decimal;">
<li><p>First insert the earphone into the earphone jack of the development board</p>
<p>[[File:./images/media/image383image299.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 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</p>
<p>orangepi@orangepi:~$ '''aplay -l'''</p>
<ol style="list-style-type: decimal;">
<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/image30image29.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/image384image300.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>
<ol style="list-style-type: decimal;">
<li><p>There is an onboard MIC on the development board, the location is as follows:</p>
<p>[[File:./images/media/image385image301.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>
<div class="figure">
[[File:./images/media/image386image302.jpeg|575x166px|5725d46c4ff256fbd1d42ed5ba883f9f]]
</div>
<ol style="list-style-type: decimal;">
<li></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:</p>
<p>[[File:./images/media/image388image303.png|567x418px]]</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:./images/media/image389image304.png|575x137px]]</p>
<p>The following is a color map containing some of the content in the above table:</p>
<p>[[File:./images/media/image390image305.png|575x199px]]</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:./images/media/image391image306.png|576x287px]]</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:./images/media/image392image307.png|575x263px]]</p><p>'''The 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></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></li></ol>
<div class="figure">
[[File:./images/media/image393image308.png|575x403px|876iring_001]]
</div>
<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 -b next parameter.'''</p>
<p>'''If 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:''' '''/usr/src/wiringOP'''</p></li>
<li><p>Compile and install wiringOP</p>
<p>orangepi@orangepi:~$ '''cd wiringOP'''</p>
<div class="figure">
[[File:./images/media/image393image308.png|575x403px|876iring_001]]
</div></li></ol>
<div class="figure">
[[File:./images/media/image394image309.png|575x145px|874iring_001]]
</div></li>
<div class="figure">
[[File:./images/media/image395image310.png|575x127px|874iring_002]]
</div></li>
<div class="figure">
[[File:./images/media/image396image311.png|575x131px|875iring_001]]
</div></li>
<div class="figure">
[[File:./images/media/image396image311.png|575x131px|875iring_001]]
</div></li>
<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/image389image304.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>
| '''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'''
| '''none'''
|-
<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314image234.png|389x180px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315image235.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/image397image312.png|388x132px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image346image263.png|391x113px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image347image264.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/image319image239.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>
<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/image389image304.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>
|-
| style="text-align: left;"| '''I2C2_M0'''
| style="text-align: left;"| '''Pin''' '''3'''| style="text-align: left;"| '''Pin''' '''5'''
| style="text-align: left;"| '''i2c2-m0'''
|-
| style="text-align: left;"| '''I2C2_M4'''
| style="text-align: left;"| '''Pin''' '''10'''| style="text-align: left;"| '''Pin''' '''8'''
| style="text-align: left;"| '''i2c2-m4'''
|-
| style="text-align: left;"| '''I2C4_M3'''
| style="text-align: left;"| '''Pin''' '''22'''| style="text-align: left;"| '''Pin''' '''32'''
| style="text-align: left;"| '''i2c4-m3'''
|-
| style="text-align: left;"| '''I2C5_M3'''
| style="text-align: left;"| '''Pin''' '''27'''| style="text-align: left;"| '''Pin''' '''28'''
| style="text-align: left;"| '''i2c5-m3'''
|-
| style="text-align: left;"| '''I2C8_M2'''
| style="text-align: left;"| '''Pin''' '''29'''| style="text-align: left;"| '''Pin''' '''7'''
| style="text-align: left;"| '''i2c8-m2'''
|}
<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314image234.png|397x184px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315image235.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/image398image313.png|406x153px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image346image263.png|380x109px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image347image264.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/image319image239.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 '''/dev'''</p>
<div class="figure">
[[File:./images/media/image399image314.png|336x170px|521iring_001]]
</div>
<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/image389image304.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>
{| class="wikitable"
|-
| style="text-align: left;"| '''UART''' '''bus'''
| style="text-align: left;"| '''RX corresponds to 40pin'''
| style="text-align: left;"| '''TX corresponds to 40pin'''
<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314image234.png|403x186px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315image235.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/image400image315.png|408x144px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image346image263.png|405x117px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image347image264.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/image319image239.png|320x141px]]</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>
<ol style="list-style-type: decimal;">
<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/image389image304.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>
<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314image234.png|416x192px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315image235.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/image401image316.png|279x222px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image346image263.png|368x106px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image347image264.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/image319image239.png|303x133px]]</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>
<div class="figure">
[[File:./images/media/image402image317.png|576x77px|985iring_001]]
</div></li>
<li><p>Then it can be known from the table below that the base address of the pwm14 register is febf0020, and then look at the output of the '''ls /sys/class/pwm/ -l''' command, you can see that pwmchip2 is linked to febf0020.pwm, so pwm14 corresponds to pwmchip as pwmchip2</p>
<p>[[File:./images/media/image403image318.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)</p></li></ol>
root@orangepi:~# '''echo 1 &gt; /sys/class/pwm/pwmchip2/pwm0/enable'''
[[File:./images/media/image404image319.png|575x346px]]
<ol start="8" style="list-style-type: decimal;">
<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/image405image320.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;">
<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314image234.png|374x173px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315image235.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 ('''can0-m0''' and &gt; '''cam1-m0''' are optional for OPi 5 Plus)</p>
<p>[[File:./images/media/image406image321.png|370x61px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image346image263.png|332x96px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image347image264.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/image319image239.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>
<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/image407image322.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/image408image323.png|553x94px]]</p></li>
<li><p>The shortcut after installation of USBCANToolSetup is</p>
<p>[[File:./images/media/image409image324.png|59x80px]]</p></li>
<li><p>In addition, you need to install the USB driver</p>
<p>[[File:./images/media/image410image325.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/image411image326.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 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/image412image327.png|243x78px]]</p></li></ol>
</li>
<li><p>Then you can open the USB-CAN software</p>
<p>[[File:./images/media/image413image328.png|553x267px]]</p></li>
<li><p>Then click to start the device</p>
<p>[[File:./images/media/image414image329.png|553x238px]]</p></li>
<li><p>Then click OK</p>
<p>[[File:./images/media/image415image330.png|279x110px]]</p></li>
<li><p>Set the baud rate to 1000k bps</p>
<p>[[File:./images/media/image416image331.png|322x268px]]</p></li>
<li><p>After successful opening, the USB-CAN software will display the serial number and other information</p>
<p>[[File:./images/media/image417image332.png|553x262px]]</p></li>
<li><p>Development board receives CAN message test</p>
<ol style="list-style-type: lower-alpha;">
<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/image418image333.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>
<div class="figure">
[[File:./images/media/image420image334.jpeg|483x377px|未标题-5]]
</div></li></ol>
'''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''' '''user.'''
<span id="how-to-install-wiringop-python"></span>
<p>root@orangepi:~# '''sudo apt-get -y install git swig python3-dev python3-setuptools'''</p></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>
<div class="figure">
[[File:./images/media/image393image308.png|415x291px|876iring_001]]
</div>
<div class="figure">
[[File:./images/media/image394image309.png|419x106px|874iring_001]]
</div></li>
<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/image389image304.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>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314image234.png|413x191px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315image235.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/image397image312.png|415x141px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image346image263.png|415x120px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image347image264.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/image319image239.png|293x129px]]</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>
<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/image389image304.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>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314image234.png|382x176px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315image235.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/image398image313.png|381x144px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image346image263.png|347x100px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image347image264.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/image319image239.png|254x112px]]</p></li></ol>
</li>
<li><p>After starting the linux system, first confirm that there is a device node corresponding to i2c under '''/dev'''</p>
<p>orangepi@orangepi:~$ '''ls /dev/i2c-*'''</p></li>
<li><p>Then 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:./images/media/image421image335.png|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>
<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/image389image304.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>orangepi@orangepi:~$ '''sudo orangepi-config'''</p></li>
<li><p>Then select '''System'''</p>
<p>[[File:./images/media/image314image234.png|404x186px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:./images/media/image315image235.png|403x175px]]</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 UART configuration you want to open</p>
<p>[[File:./images/media/image400image315.png|350x124px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:./images/media/image346image263.png|334x96px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image347image264.png|336x102px]]</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/image319image239.png|235x103px]]</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>
<div class="figure">
[[File:./images/media/image422image336.png|527x211px|IMG_256]]
</div>
<div class="figure">
[[File:./images/media/image149image95.png|507x249px|IMG_256]]
</div></li>
<div class="figure">
[[File:./images/media/image423image337.png|429x263px|IMG_256]]
</div>
<p>orangepi@orangepi:~/Desktop$ '''chmod +x balenaEtcher-1.7.9+5945ab1f-arm64.AppImage'''</p></li>
<li><p>Then select the AppImage version balenaEtcher, click the right &gt; mouse button, and then click Execute to open balenaEtcher</p>
<p>[[File:./images/media/image424image338.png|145x118px]]</p></li></ol>
</li></ol>
== The installation method of the pagoda linux panel ==
'''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 the''' '''official website of the pagoda)'''
<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>
<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/image425image339.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/image426image340.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/image427image341.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/image428image342.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/image429image343.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 the SSH terminal of the pagoda, you will first &gt; prompt that you need to enter the password of the development &gt; board system. At this time, enter '''orangepi''' in the password &gt; box (the default password, if you have modification, please &gt; fill in the modified one).</p>
<p>[[File:./images/media/image430image344.png|475x330px]]</p></li>
<li><p>The display after successful login is shown in the figure below</p>
<p>[[File:./images/media/image431image345.png|575x206px]]</p></li></ol>
</li>
<li><p>Software such as Apache, MySQL, and PHP can be installed in the software store of the pagoda. You can also deploy various applications in one click. Please explore it yourself</p>
<p>[[File:./images/media/image432image346.png|575x279px]]</p></li>
<li><p>Pagoda command line tool test</p>
<div class="figure">
[[File:./images/media/image433image347.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 '''http://docs.bt.cn''']</p><p>Forum address:[https://www.bt.cn/bbs '''https://www.bt.cn/bbs''']</p>
<p>GitHub Link:'''https://github.com/aaPanel/BaoTa'''</p></li></ol>
 
<span id="section-33"></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 style="list-style-type: lower-alpha;">
<li></li>
<li></li></ol>
</li>
<li></li>
<li></li>
<li></li></ol>
<span id="set-the-chinese-environment-and-install-chinese-input-method"></span>
<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 and lower direction keys on the keyboard to &gt; move up and down, select it through the space key, and finally &gt; move the cursor to '''&lt;OK&gt;''' through the Tab key, and then &gt; press Enter key.)</p>
<p>[[File:./images/media/image434image348.png|575x296px]]</p></li>
<li><p>Then set the default '''locale''' as '''zh_CN.UTF-8'''</p>
<p>[[File:./images/media/image435image349.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 locales'''</p>
<p>Generating locales (this might take a while)...</p>
<p>en_US.UTF-8... done</p>
</li>
<li><p>Then open '''Input Method'''</p>
<p>[[File:./images/media/image436image350.png|575x361px]]</p></li>
<li><p>Then choose '''OK'''</p>
<p>[[File:./images/media/image437image351.png|295x212px]]</p></li>
<li><p>Then choose '''Yes'''</p>
<p>[[File:./images/media/image438image352.png|303x192px]]</p></li>
<li><p>Then choose '''fcitx'''</p>
<p>[[File:./images/media/image439image353.png|307x220px]]</p></li>
<li><p>Then choose '''OK'''</p>
<p>[[File:./images/media/image440image354.png|305x216px]]</p></li>
<li><p>'''Then restart the Linux system to make the configuration effective'''</p></li>
<li><p>Then Open '''Fcitx configuration'''</p>
<p>[[File:./images/media/image441image355.png|575x376px]]</p></li>
<li><p>Then click the “+” of the position shown in the figure below</p>
<p>[[File:./images/media/image442image356.png|280x187px]]</p></li>
<li><p>Then search '''Google Pinyin''' and click '''OK'''</p>
<p>[[File:./images/media/image443image357.png|291x196px]]</p></li>
<li><p>Then put '''Google Pinyin''' to the forefront</p>
<p>[[File:./images/media/image444image358.png|299x202px]]</p><p>[[File:./images/media/image445image359.png|300x202px]]</p></li>
<li><p>Then open the '''Geany''' Editor and test the Chinese input method.</p>
<p>[[File:./images/media/image446image360.png|349x212px]]</p></li>
<li><p>Chinese input method test is shown below</p>
<p>[[File:./images/media/image447image361.png|575x325px]]</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>
<p>LANG='''zh_CN.UTF-8'''</p>
<p>LANGUAGE='''zh_CN.UTF-8'''</p></li>
<li><p>Then '''restart the system''' to see the system display as Chinese</p><p>[[File:media/image362.png|576x356px]]</p></li></ol>
<span id="sectionubuntu-3420.04-system-installation-method"></span>== [[File:= ubuntu 20./images/media/image448.png|576x356px]] 04 system installation method ===
<span id="section-35"></span>=== === <ol start="17" 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><li></li><li></li><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="ubuntu-20.04-system-installation-method"></span>=== ubuntu 20.04 system installation method === <ol style="list-style-type: decimal;">
<li><p>First open '''Language Support'''</p>
<p>[[File:./images/media/image449image363.png|575x351px]]</p></li>
<li><p>Then find the '''<span class="mark">Chinese (China)</span>''' option</p>
<p>[[File:./images/media/image450image364.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/image451image365.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;">
<li><p>Then select the '''<span class="mark">Apply System-Wide</span>''' to apply the Chinese settings to the entire system</p>
<p>[[File:./images/media/image452image366.png|321x316px]]</p></li>
<li><p>Then set the '''Keyboard input method system''' as '''fcitx'''</p>
<p>[[File:./images/media/image453image367.png|327x320px]]</p></li>
<li><p>'''Then restart the linux system 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 in Chinese according to your preference</p>
<p>[[File:./images/media/image454image368.png|303x247px]]</p></li>
<li><p>Then you can see that the desktop is displayed as Chinese</p>
<p>[[File:./images/media/image455image369.png|575x383px]]</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:./images/media/image456image370.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></li></ol> <span id="section-36"p></span>=== [[File:./images/media/image457image371.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><lip></li></ol>
<span id="ubuntu-22.04-installation-method"></span>
<ol style="list-style-type: decimal;">
<li><p>First open '''Language Support'''</p>
<p>[[File:./images/media/image449image363.png|575x351px]]</p></li>
<li><p>Then find the '''<span class="mark">Chinese (China)</span>''' option</p>
<p>[[File:./images/media/image458image372.png|249x242px]]</p></li>
<li><p>Then please use the mouse to select '''<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/image459image373.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="list-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/image460image374.png|287x282px]]</p></li>
<li><p>'''Then restart the linux system 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/image454image368.png|303x247px]]</p></li>
<li><p>Then you can see that the desktop is displayed as Chinese</p>
<p>[[File:./images/media/image455image369.png|575x383px]]</p></li>
<li><p>Then open the Fcitx5 configuration program</p>
<p>[[File:./images/media/image461image375.png|575x349px]]</p></li>
<li><p>Then choose to use Pinyin input method</p>
<p>[[File:./images/media/image462image376.png|338x267px]]</p></li>
<li><p>The interface after selecting is shown below, then click OK</p>
<p>[[File:./images/media/image463image377.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/image456image370.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/image464image378.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 on the development board is a''' '''<span class="mark">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:'''
'''https://knowledgebase.nomachine.com/DT10R00166'''
'''Note that this download link may change, please recognize the deb package of the Armv8/Arm64 version.'''
[https://www.nomachine.com/download/download&id=112&s=ARM '''https://downloads.nomachine.com/download/?id=118&amp;distro=ARM''']
[[File:./images/media/image465image379.png|575x227px]]
<ol start="2" style="list-style-type: lower-alpha;">
<li><p>In addition, you can also download the installation package of &gt; '''NoMachine''' in the '''official tools'''</p>
<p>[[File:./images/media/image466image380.png|70x86px]]</p>
<p>First Enter the '''<span class="mark">remote login software-Nomachine</span>''' Folder</p>
<p>[[File:./images/media/image467image381.png|256x46px]]</p>
<p>Then download the arm64 version of the deb installation package</p>
<p>[[File:./images/media/image468image382.png|180x109px]]</p></li>
<li><p>Then upload the downloaded '''nomachine_x.x.x_x_arm64.deb''' to the &gt; Linux system of the development board</p></li>
<li><p>Then use the following command to install '''NoMachine''' in the Linux &gt; system in the development board</p>
'''https://downloads.nomachine.com/download/?id=9'''
[[File:./images/media/image469image383.png|575x163px]]
<ol start="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:./images/media/image470image384.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 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:./images/media/image471image385.png|321x92px]]</p></li>
<li><p>Then click '''OK'''</p>
<p>[[File:./images/media/image472image386.png|269x184px]]</p></li>
<li><p>Then enter the username and password of the linux system in the corresponding position in the figure below, and then click '''OK''' to start logging in</p>
<p>[[File:./images/media/image473image387.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</p>
<p>[[File:./images/media/image474image388.png|411x246px]]</p></li></ol>
<span id="use-vnc-remote-login"></span>
<div class="figure">
[[File:./images/media/image475image389.png|490x349px|图片1208]]
</div>
<ol start="2" style="list-style-type: lower-alpha;">
<li><p>Then enter the password of the previously set VNC</p>
<p>[[File:./images/media/image476image390.png|221x105px]]</p></li>
<li><p>The interface after the login is successfully displayed as shown in &gt; the figure below, and then you can remotely operate the desktop of &gt; the linux system remotely</p></li></ol>
[[File:./images/media/image477image391.png|405x293px]] <span id="section-37"></span>== == <span id="section-38"></span>=== === <ol start="10" 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><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="section-39"></span>=== === <ol start="3" style="list-style-type: decimal;"><li></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol></li></ol>
<span id="some-programming-language-test-supported-by-thelinux-system"></span>
<p>warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</p></li>
<li><p>'''hello_world.c''' program to write c language</p>
<p>orangepi@orangepi:~$ '''vim''' '''hello_world.c'''</p>
<p>#include &lt;stdio.h&gt;</p>
<p>int main(void)</p>
<p>'''Use CTRL+D shortcut key to exit Python's interactive mode。'''</p></li>
<li><p>'''hello_world.py''' program in Python language</p>
<p>orangepi@orangepi:~$ '''vim''' '''hello_world.py'''</p>
<p>print('Hello World!')</p></li>
<li><p>The results of running '''hello_world.py''' are shown below</p>
<ol style="list-style-type: lower-alpha;">
<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''' '''openjdk-17-jdk'''</p></li>
<li><p>After installation, you can check the version of Java</p>
<p>orangepi@orangepi:~$ '''java --version'''</p></li>
<li><p>Edit the '''hello_world.java''' of Java version</p>
<p>orangepi@orangepi:~$ '''vim''' '''hello_world.java'''</p>
<p>public class hello_world</p>
<p>{</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>
<p>orangepi@orangepi:~$ '''vim''' '''hello_world.c'''</p>
<p>#include &lt;stdio.h&gt;</p>
<p>int main(void)</p>
<p>'''Use CTRL+D shortcut key 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 of running '''hello_world.py''' are shown below</p>
<ol style="list-style-type: lower-alpha;">
<li><p>You can use the following command to install openjdk-17</p>
<p>orangepi@orangepi:~$ '''sudo''' '''apt install''' '''-y''' '''openjdk-17-jdk'''</p></li>
<li><p>After installation, you can check the version of the java</p>
<p>orangepi@orangepi:~$ '''java --version'''</p>
<p>OpenJDK 64-Bit Server VM (build 17.0.2+8-Ubuntu-120.04, mixed mode, sharing)</p></li>
<li><p>Edit the '''hello_world.java''' of Java version</p>
<p>orangepi@orangepi:~$ '''vim''' '''hello_world.java'''</p>
<p>public class hello_world</p>
<p>{</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>
<p>orangepi@orangepi:~$ '''vim''' '''hello_world.c'''</p>
<p>#include &lt;stdio.h&gt;</p>
<p>int main(void)</p>
<p>'''Use CTRL+D shortcut key 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 of running '''hello_world.py''' are shown below</p>
<ol style="list-style-type: lower-alpha;">
<li><p>You can use the following command to install openjdk-18</p>
<p>orangepi@orangepi:~$ '''sudo''' '''apt install''' '''-y''' '''openjdk-18-jdk'''</p></li>
<li><p>After installation, you can check the version of the java</p>
<p>orangepi@orangepi:~$ '''java --version'''</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''' of Java version</p>
<p>orangepi@orangepi:~$ '''vim''' '''hello_world.java'''</p>
<p>public class hello_world</p>
<p>{</p>
</li>
<li><p>Then you can see the lax icon of QT Creator in '''Applications'''</p>
<p>[[File:./images/media/image479image392.png|576x270px]]</p>
<p>You can also use the following command to open QT Creator</p>
<p>orangepi@orangepi:~$ '''qtcreator'''</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/image480image393.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/image481image394.png|576x308px]]</p></li>
<li><p>The default version of QT Creator in '''Ubuntu22.04''' is shown &gt; below</p>
<p>[[File:./images/media/image482image395.png|575x307px]]</p></li>
<li><p>The default version of QT Creator in '''Debian11''' is shown below</p>
<p>[[File:./images/media/image483image396.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'''-&gt;'''About Plugins...'''</p>
<p>[[File:./images/media/image484image397.png|573x164px]]</p></li>
<li><p>Then remove the hook of '''ClangCodeModel'''</p>
<p>[[File:./images/media/image485image398.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/image486image399.png|576x315px]]</p><p>[[File:./images/media/image487image400.png|575x307px]]</p></li></ol>
</li>
<li><p>Then you can open an example code</p>
<p>[[File:./images/media/image488image401.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/image489image402.png|576x218px]]</p></li>
<li><p>Then click '''Configure Project'''</p>
<p>[[File:./images/media/image490image403.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/image491image404.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/image492image405.png|576x308px]]</p></li>
<li><p>Reference information</p>
<p>[https://wiki.qt.io/Install_Qt_5_on_Ubuntu '''https://wiki.qt.io/Install_Qt_5_on_Ubuntu''']</p><p>[https://download.qt.io/archive/qtcreator '''https://download.qt.io/archive/qtcreator''']</p><p>[https://download.qt.io/archive/qt '''https://download.qt.io/archive/qt''']</p></li></ol>
<span id="sectionros-40installation-method"></span>== ROS installation method ==
<span id="sectionubuntu-4120.04-method-of-installing-ros-1-noetic"></span>=== Ubuntu 20.04 method of installing ROS 1 Noetic ===
<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 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></ol># The current active version of ROS 1 is shown below. The recommended version is '''Noetic Ninjemys'''
<span id="section-42"><[[File:media/span>=== ===image406.png|345x235px]]
<ol start="7" style="list-style-type[[File: decimal;"><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></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li></ol></li><media/ol>image407.png|576x210px]]
<span id="section-43"><[http:/span>=== ===/docs.ros.org/ '''http://docs.ros.org''']
<ol start="10" style="list-style-type'''https: decimal;"><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></ol></li><li><ol style="list-style-type: lower-alpha;"><li></li><li></li><li></li><li></li></ol></li><wiki.ros.org/ol>Distributions'''
<span idol start="section2" style="list-style-44type: decimal;"><li><p>ROS 1 '''Noetic Ninjemys'''' official installation document links are shown below:</p><p>[http://wiki.ros.org/noetic/Installation/Ubuntu '''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 '''http://wiki.ros.org/noetic/Installation''']</p><p>[[File:media/image408.png|312x176px]]</p></li><li><p>Then install Ros1 with the following script</spanp>== ==<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></ol>
<ol start="13" style="list-style-type: decimal;"><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-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><li></li><li></li><li></li><li></li><li></li><li></li></ol> <span id="ros-installation-method"></span>== ROS installation method == <span id="ubuntu-20.04-method-of-installing-ros-1-noetic"></span>=== Ubuntu 20.04 method of installing ROS 1 Noetic === # The current active version of ROS 1 is shown below. The recommended version is '''Noetic Ninjemys''' [[File:./images/media/image493.png|345x235px]] [[File:./images/media/image494.png|576x210px]] '''http://docs.ros.org''' '''https://wiki.ros.org/Distributions''' <ol start="2" style="list-style-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></ol> '''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。'''
'''install_ros.sh''' '''script will try to modify/etc/hosts''' '''and 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 access''' '''github''' '''normally, and then manually run the following manually command。'''
'''https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml'''
<div class="figure">
[[File:./images/media/image496image409.png|575x275px|图片4]]
</div></li>
<div class="figure">
[[File:./images/media/image497image410.png|576x275px|图片5]]
</div>
<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:./images/media/image498image411.png|575x296px]]</p></li></ol>
<span id="ubuntu20.04-the-method-of-installing-ros-2-galactic"></span>
<ol style="list-style-type: decimal;">
<li><p>The current active version of ROS 2 is shown below. The recommended version is '''Galactic Geochelone'''</p>
<p>[[File:./images/media/image499image412.png|576x271px]]</p><p>[[File:./images/media/image500image413.png|575x265px]]</p><p>[http://docs.ros.org/ '''http://docs.ros.org''']</p>
<p>'''http://docs.ros.org/en/galactic/Releases.html'''</p></li>
<li><p>ROS 2 '''Galactic Geochelone''''s official installation document link is shown below:</p>
<div class="figure">
[[File:./images/media/image501image414.png|576x324px|1]]
</div></li>
<li><p>How to use ROS, please refer to the document of ROS 2</p>
<p>[http://docs.ros.org/en/galactic/Tutorials.html '''http://docs.ros.org/en/galactic/Tutorials.html''']</p></li></ol>
<span id="ubuntu22.04-to-install-ros-2-humble"></span>
<div class="figure">
[[File:./images/media/image502image415.png|576x324px|Screenshot from 2023-05-20 17-42-58]]
</div></li>
<li><p>Reference document</p>
<p>'''http://docs.ros.org/en/humble/index.html'''</p>
<p>[http://docs.ros.org/en/galactic/Tutorials.html '''http://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html''']</p></li></ol>
<span id="the-method-of-installing-the-kernel-header-file"></span>
<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, you can see the folder where the kernel header file is located under the'''/usr/src'''</p>
<p>orangepi@orangepi:~$ '''ls /usr/src'''</p>
<ol style="list-style-type: lower-alpha;">
<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>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''' '''Makefile'''</p>
<p>ifneq ($(KERNELRELEASE),)</p>
<p>obj-m:=hello.o</p>
<p>endif</p></li>
<li><p>Then use the make command to compile the Hello kernel module, &gt; and the output of the compilation process is shown below:</p>
<p>'''If you compile the code you copy here, if you have any problems, go to the''' '''official tool''' '''to download the source code and upload it to the Linux system of the development board for testing'''</p><p>[[File:./images/media/image503image416.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>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 to view the output of the &gt; '''hello.ko''' kernel module. If you can see the output &gt; instructions below, the hello.ko kernel module is loaded &gt; correctly</p>
<p>orangepi@orangepi:~$ '''dmesg | grep &quot;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 hello'''</p>
<p>orangepi@orangepi:~$ '''dmesg | grep &quot;Hello&quot;'''</p>
<p>[ 2871.893988] Hello Orange Pi -- init</p>
<ol style="list-style-type: lower-alpha;">
<li><p>10.1 -inch MIPI LCD display+touch screen (this screen and &gt; OPI5/OPI5B universal)</p>
<p>[[File:./images/media/image504image417.png|338x252px]]</p></li>
<li><p>Screen divert plate+31pin to 40pin line</p>
<div class="figure">
[[File:./images/media/image505image418.png|230x199px|DD9A8F44-0D8F-4f06-9473-B539DEED850C]]
</div></li>
<div class="figure">
[[File:./images/media/image506image419.png|443x41px|C2164119-6EC3-49ae-9A95-BE323F51FAE1]]
</div></li>
<li><p>12pin touch screen row line</p>
<p>[[File:./images/media/image507image420.png|344x50px]]</p></li></ol>
</li>
<li><p>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 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/image508image421.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>
[[File:./images/media/image509image422.png|382x563px]]
<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/image510image423.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/image511image424.png|405x225px]]</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'''</p>
<p>[[File:./images/media/image512image425.png|334x70px]]</p></li></ol>
<span id="open-the-10.1--inch-mipi-lcd-screen-configuration"></span>
<li><p>The Linux image defaults to the configuration of the mipi lcd screen by default. If you need to use the mipi lcd screen, you need to open it manually。</p></li>
<li><p>The position of the development board MIPI LCD screen interface is shown below:</p>
<p>[[File:./images/media/image513image426.png|428x77px]]</p></li>
<li><p>The steps of opening the MIPI LCD configuration are shown below:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First run the orangePi-config. Ordinary users remember to add &gt; Sudo permissions</p>
<p>orangepi@orangepi:~$ '''sudo''' '''orangepi-config'''</p></li>
<li><p>Then choose '''System'''</p>
<p>[[File:./images/media/image314image234.png|379x175px]]</p></li>
<li><p>Then choos '''Hardware'''</p>
<p>[[File:./images/media/image315image235.png|379x164px]]</p></li>
<li><p>Then use the keyboard orientation to position the &gt; '''opi5plus-lcd''', and then use the '''space''' to select</p>
<p>[[File:./images/media/image514image427.png|349x57px]]</p></li>
<li><p>Then select &lt;Save&gt;</p>
<p>[[File:./images/media/image515image428.png|263x123px]]</p></li>
<li><p>Then sele '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image516image429.png|264x116px]]</p></li>
<li><p>Then select the '''&lt;Reboot&gt;'''restart system to make the &gt; configuration effective</p>
<p>[[File:./images/media/image517image430.png|226x105px]]</p></li></ol>
</li>
<li><p>After starting, you can see the display of the LCD screen as shown below (the default is vertical screen):</p></li></ol>
[[File:./images/media/image518image431.png|169x244px]]
<span id="the-server-version-of-the-image-rotation-display-direction-method"></span>
<li><p>2: Flip 180 degrees</p></li>
<li><p>3: Turn to 270 degrees clock</p>
<p>orangepi@orangepi:~$ '''sudo vim''' '''/boot/orangepiEnv.txt'''</p>
<p>overlays=opi5plus-lcd</p>
<p>'''extraargs=cma=128M''' '''fbcon=rotate:3'''</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>
<ol style="list-style-type: decimal;">
<li><p>First open '''Display''' settings in the Linux system</p>
<p>[[File:./images/media/image521image432.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>'''Inverted''': Flipting up and down is equivalent to rotating 180 &gt; degrees</p></li>
<li><p>'''Right''': Rotate 90 degrees to the right</p>
<p>[[File:./images/media/image522image433.png|330x208px]]</p></li></ol>
</li>
<li><p>Then click '''Apply'''</p>
<p>[[File:./images/media/image523image434.png|330x207px]]</p></li>
<li><p>Then click '''Keep this configuration'''</p>
<p>[[File:./images/media/image524image435.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>
<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>
<!-- -->
<ol start="7" style="list-style-type: decimal;">
<li><p>Touch rotation reference materials</p>
<p>[https://wiki.ubuntu.com/X/InputCoordinateTransformation '''https://wiki.ubuntu.com/X/InputCoordinateTransformation''']</p></li></ol>
<span id="instructions-for-opening-the-logo-use-instructions"></span>
<ol style="list-style-type: lower-alpha;">
<li><p>OV13850 camera at 13 million MIPI interface</p>
<p>[[File:./images/media/image24image23.png|268x151px]]</p></li>
<li><p>13 million MIPI interface OV13855 camera</p>
<p>[[File:./images/media/image25image24.png|253x150px]]</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 '''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></li></ol>
[[File:./images/media/image525image436.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 figure below, among which:
<li><p>The No. 3 interface is not used, just ignore it.</p></li></ol>
[[File:./images/media/image526image437.png|288x172px]]
Orange Pi 5 Plus development board has a total of 1 camera interface, which is shown below:
[[File:./images/media/image527image438.png|408x95px]]
The method of the camera inserted in the development board interface is shown below:
[[File:./images/media/image528image439.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/image314image234.png|399x184px]]</p></li>
<li><p>Then choose '''Hardware'''</p>
<p>[[File:./images/media/image315image235.png|403x175px]]</p></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/image529image440.png|400x37px]]</p></li>
<li><p>Then choose '''&lt;Save&gt;'''</p>
<p>[[File:./images/media/image530image441.png|338x109px]]</p></li>
<li><p>Then choose '''&lt;Back&gt;'''</p>
<p>[[File:./images/media/image531image442.png|338x86px]]</p></li>
<li><p>Then select the'''&lt;Reboot&gt;''' restart system to make the configuration effective</p>
<p>[[File:./images/media/image319image239.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>
<div class="figure">
[[File:./images/media/image532image443.png|576x324px|1]]
</div></li></ol>
<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="mark">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>
<div class="figure">
[[File:./images/media/image533image444.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/image534image445.png|346x92px]]</p></li>
<li><p>Then you can see that '''evtest''' will print the received key value</p>
<p>......</p>
<ol style="list-style-type: decimal;">
<li><p>A RTC battery interface is reserved on the development board, which is shown below:</p>
<p>[[File:./images/media/image29image28.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/image28image27.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="list-style-type: lower-alpha;">
<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:./images/media/image20image19.png|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_M1'''</p></li>
<li><p>The Linux system uses the [https://github.com/orangepi-xunlong/linux-orangepi/blob/orange-pi-5.10-rk3588/drivers/hwmon/pwm-fan.c '''pwm-fan''' ] 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>Among it:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>'''pwms = &lt;&amp;pwm3''' '''0 50000 0&gt;''':The PWM of the control fan is &gt; is PWM3。</p></li>
<li><p>'''cooling-levels = &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-255。</p></li>
<li><p>'''rockchip,temp-trips''':It is used to configure the &gt; 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>orangepi@orangepi:~$ '''sudo poweroff'''</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:./images/media/image535image446.png|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.'''
[[File:./images/media/image536image447.png|256x240px]]
<ol start="3" style="list-style-type: decimal;">
<li><p>After shutting down, press the switch button on the development board to turn on。</p>
<p>[[File:./images/media/image535image446.png|444x98px]]</p></li>
<li><p>Restart the command of the Linux system.</p>
<p>orangepi@orangepi:~$ '''sudo''' '''reboot'''</p></li></ol>
<ol style="list-style-type: lower-alpha;">
<li><p>First open the settings</p>
<p>[[File:./images/media/image537image448.png|243x181px]]</p></li>
<li><p>Then select about, if the '''Wayland''' description settings &gt; displayed by '''Windowing System''' in a column are correct</p>
<p>[[File:./images/media/image538image449.png|362x303px]]</p></li></ol>
</li>
<li><p>When the '''Log Out''' is out of the system, it will enter the login interface below</p>
<p>[[File:./images/media/image539image450.png|258x108px]]</p></li>
<li><p>Please click the location shown below before logging in to the system again</p>
<p>[[File:./images/media/image540image451.png|259x108px]]</p></li>
<li><p>Then select '''Ubuntu on Wayland''' and enter the password login system</p>
<p>[[File:./images/media/image541image452.png|218x312px]]</p></li></ol>
<span id="switch-the-method-of-default-audio-equipment"></span>
<ol style="list-style-type: decimal;">
<li><p>Open the settings first</p>
<p>[[File:./images/media/image537image448.png|221x164px]]</p></li>
<li><p>Then select '''Sound''', and then select the audio device you want to use in '''Output Device'''</p>
<p>[[File:./images/media/image542image453.png|375x314px]]</p></li></ol>
<span id="gpu-test-method"></span>
<li><p>Open a terminal on the desktop, and then enter the '''glmark2''' 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/image543image454.png|381x258px]]</p></li>
<li><p>glmark2 running score test is generally more than 1,000 points</p>
<p>[[File:./images/media/image544image455.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/image545image456.png|529x281px]]</p></li></ol>
<span id="chromium-browser-hard-solution-to-play-video-test-method"></span>
<ol style="list-style-type: decimal;">
<li><p>First open the chromium browser</p>
<p>[[File:./images/media/image546image457.png|576x324px]]</p></li>
<li><p>Then enter '''chrome://gpu''' in the Chromium browser to view the support of GPU and video decoding</p>
<p>[[File:./images/media/image547image458.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.mp4'''</p></li>
<div class="figure">
[[File:./images/media/image548image459.png|576x324px|Screenshot from 2023-05-22 15-01-46]]
</div></li></ol>
<ol style="list-style-type: decimal;">
<li><p>First log in the system</p>
<p>[[File:./images/media/image549image460.png|231x153px]] [[File:./images/media/image550image461.png|266x118px]]</p></li>
<li><p>When the login system will enter the login interface below</p>
<p>[[File:./images/media/image539image450.png|258x108px]]</p></li>
<li><p>Then click the location shown in the figure below</p>
<p>[[File:./images/media/image540image451.png|259x108px]]</p></li>
<li><p>Then select '''Kodi Wayland''', then enter the password login system</p>
<p>[[File:./images/media/image551image462.png|262x273px]]</p></li>
<li><p>The interface after Kodi is opened is displayed as shown below</p>
<div class="figure">
[[File:./images/media/image552image463.png|461x259px|Screenshot from 2023-03-03 14-31-20]]
</div></li>
<li><p>Then click Settings</p>
<p>[[File:./images/media/image553image464.png|343x149px]]</p></li>
<li><p>Then select '''Player'''</p>
<p>[[File:./images/media/image554image465.png|474x268px]]</p></li>
<li><p>Then select '''Videos''', and then click '''Standard''' in the lower left corner</p>
<p>[[File:./images/media/image555image466.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/image556image467.png|441x249px]]</p></li>
<li><p>Then open the '''Allow using DRM PRIME decoder''' in the P'''rocessing''' settings</p>
<p>[[File:./images/media/image557image468.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/image558image469.png|424x239px]]</p></li>
<li><p>Then choose '''Add videos...'''</p>
<p>[[File:./images/media/image559image470.png|429x242px]]</p></li>
<li><p>Then choose '''Browse'''</p>
<p>[[File:./images/media/image560image471.png|428x270px]]</p></li>
<li><p>Then choose '''Root filesystem'''</p>
<p>[[File:./images/media/image561image472.png|414x169px]]</p></li>
<li><p>Then choose '''usr'''</p>
<p>[[File:./images/media/image562image473.png|416x273px]]</p></li>
<li><p>Then choose '''local'''</p>
<p>[[File:./images/media/image563image474.png|417x274px]]</p></li>
<li><p>Then choose '''OK'''</p>
<p>[[File:./images/media/image564image475.png|425x278px]]</p></li>
<li><p>Then choose '''OK'''</p>
<p>[[File:./images/media/image565image476.png|431x273px]]</p></li>
<li><p>Then choose OK</p>
<p>[[File:./images/media/image566image477.png|454x260px]]</p></li>
<li><p>Then enter the Local folder</p>
<p>[[File:./images/media/image567image478.png|456x258px]]</p></li>
<li><p>Then you can play '''test.mp4''' test video</p>
<p>[[File:./images/media/image568image479.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). If there is a print output below, it means that there is a hardware to decode the video</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><p>[[File:media/image480.png|577x126px]]</p></li></ol>
<span id="sectionubuntu22.04-gnome-to-install-ros-2-45humble"></span>=== [[File:./images/media/image569Ubuntu22.png|577x126px]] =04 Gnome to install ROS 2 Humble ==
<ol start="3" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"p>You can install ROS2 with '''install_ros.sh''' script</p><lip>orangepi@orangepi:~$ '''install_ros.sh ros2'''</p></li><li><p>install'''_ros.sh''' script will automatically run the '''ros2 -h''' command after ros2 is installed. If you can see the printing below</lip><lip>usage: ros2 [-h] Call `ros2 &lt;command&gt; -h` for more detailed usage. ...</lip><lip>ros2 is an extensible command-line tool for ROS 2.</lip><p>optional arguments:</olp><p>-h, --help show this help message and exit</lip><lip>Commands:</lip><p>action Various action related sub-commands</olp><p>bag Various rosbag related sub-commands</p><span id="sectionp>component Various component related sub-46">commands</spanp>=== === <ol start="8" style="listp>daemon Various daemon related sub-style-type: decimal;"commands</p><lip>doctor Check ROS setup and other potential issues</lip><lip>interface Show information about ROS interfaces<ol style="list-style-type: lower-alpha;"/p><lip>launch Run a launch file</lip><lip>lifecycle Various lifecycle related sub-commands</lip><lip>multicast Various multicast related sub-commands</lip><lip>node Various node related sub-commands</lip><p>param Various param related sub-commands</olp><p>pkg Various package related sub-commands</lip><lip>run Run a package specific executable</lip><lip>security Various security related sub-commands</lip><lip>service Various service related sub-commands</lip><lip>topic Various topic related sub-commands<ol style="list-style-type: lower-alpha;"/p><lip>wtf Use `wtf` as alias to `doctor`</lip><lip>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</lip><lip>orangepi@orangepi5plus:~$ '''test_ros.sh'''</lip><p>[INFO] [1671174101.200091527] [talker]: Publishing: 'Hello World: 1'</olp><p>[INFO] [1671174101.235661048] [listener]: I heard: [Hello World: 1]</lip><p>[INFO] [1671174102.199572327] [talker]: Publishing: 'Hello World: 2'</olp> <!-- --p>[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: 2]</p><ol start="5" style="list-style-typep>[INFO] [1671174103.199580322] [talker]: Publishing: 'Hello World: decimal;"3'</p><lip>[INFO] [1671174103.204019965] [listener]: I heard: [Hello World: 3]</p></li><li><p>Run the following command to open rviz2</lip><lip>orangepi@orangepi:~$ '''source /opt/ros/humble/setup.bash'''</lip><lip>orangepi@orangepi:~$ '''ros2 run rviz2 rviz2'''</lip></oldiv class="figure">
<!-[[File:media/image481.png|576x324px|Screenshot from 2023- 05-22 15-><ol start="14" style="list17-style-type: decimal;"><li></li></ol>44]]
<span id="section/div></li><li><p>Reference document</p><p>'''http://docs.ros.org/en/humble/index.html'''</p><p>[http://docs.ros.org/en/galactic/Tutorials.html '''http://docs.ros.org/en/humble/Installation/Ubuntu-47"Install-Debians.html''']</p></spanli></ol>== ==
<ol startspan id="6" style="listset-the-chinese-environment-and-the-method-of-installing-the-chinese-styleinput-type: decimal;method"><li></lispan><li></li><li></li><li></li><li></li></ol>== 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:media/image448.png|243x181px]]</p></li><li><p>Then find the '''Region &amp; Language''' option, and then click '''Manage Installed Languages''' options</p><p>[[File:media/image482.png|576x352px]]</p></li><li><p>Then use the left mouse button to select '''<span idclass="sectionmark">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:media/image483.png|575x428px]]</p></li><li><p>Then select the '''Apply System-48Wide''' to apply the Chinese settings to the entire system</p><p>[[File:media/image484.png|576x427px]]</p></li><li><p>'''Then restart the linux system to make the configuration effective'''</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:media/image485.png|340x276px]]</p></li><li><p>Then you can see that the desktop is displayed as Chinese</p><div class== =="figure">
<ol style="list[[File:media/image486.png|576x324px|截图 2023-03-style08 09-type: lower34-alpha;"><li></li><li></li></ol>07]]
<!-- --/div><ol start="4" style="list-style-type: lower-alpha;"/li><li><p>Then open the Fcitx5 configuration program</lip><lip>[[File:media/image487.png|576x326px]]</p></li><li><p>Then choose to use Pinyin input method</lip></oldiv class="figure">
<!-- -[[File:media/image488.jpeg|576x429px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-><ol start="10" style="list6.jpg未标题-style-type: lower-alpha;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol>6]]
<span id="section-49"/div></spanli>== ==<li><p>The interface after selecting is shown below, then click OK</p><p>[[File:media/image489.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:media/image490.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:media/image491.png|576x364px]]</p></li></ol>
<ol startspan id="5" style="listorange-pi-os-arch-system-styleuse-type: decimal;instructions"><li></lispan><li></li><li></li><li></li></ol>= Orange Pi OS Arch system use instructions =
<span id="sectionorange-50pi-os-arch-system-adaptation-situation"></span>== Orange Pi OS Arch system adaptation situation ==
<ol start{| class="6wikitable" |-| style="listtext-style-typealign: decimalleft;">| '''Function'''<li></li>| '''OPi OS Arch Gnome'''<li></li><li><ol | style="listtext-style-typealign: lower-alphaleft;">| '''OPi OS Arch Xfce(To be released)'''<li></li>|-<li></li></ol></li><li><ol | style="listtext-style-typealign: lower-alphaleft;">| '''HDMI TX1 video'''<li></li>| '''OK'''<li></li><li></li><li></li></ol></li><li></li></ol> <span id| style="sectiontext-51align: left;"></span>| '''OK'''== ==|- <ol start="4" | style="listtext-style-typealign: decimalleft;">| '''HDMI TX1 Audio'''<li></li>| '''OK'''<li></li><li><ol | style="listtext-style-typealign: lower-alphaleft;">| '''OK'''<li></li>|-<li></li><li></li></ol></li></ol> <span id| style="sectiontext-52align: left;"></span>| '''HDMI TX2 video'''== ==| '''OK''' <ol start="5" | style="listtext-style-typealign: decimalleft;">| '''OK'''<li></li><li></li><li></li><li></li></ol> <span id="section|-53"></span>= = <span id| style="sectiontext-54align: left;"></span>| '''HDMI TX2 Audio'''== ==| '''OK'''  -----  ----- <span id| style="sectiontext-55align: left;"></span>| '''OK'''== == <span id="section|-56"></span>== == <span id| style="sectiontext-57align: left;"></span>| '''HDMI RX video'''== ==| '''OK''' <span id| style="sectiontext-58align: left;"></span>| '''OK'''== == <span id="section|-59"></span>== == <span id| style="ubuntu22.04text-gnome-to-install-ros-2-humblealign: left;"></span>| '''HDMI RX Audio'''== Ubuntu22.04 Gnome to install ROS 2 Humble ==| '''OK''' <ol | style="listtext-style-typealign: decimalleft;"><li><p>You can install ROS2 with | '''install_ros.shOK''' script</p><p>orangepi@orangepi|-| style="text-align:~$ left;"| '''install_rosUSB2.sh ros20X2'''</p></li><li><p>install| '''_ros.shOK''' script will automatically run the | style="text-align: left;"| '''ros2 -hOK''' command after ros2 is installed. If you can see the printing below</p><p>usage: ros2 [-h] Call `ros2 &lt;command&gt; |-h` for more detailed usage. ...</p><p>ros2 is an extensible command| style="text-line tool for ROS 2.</p><p>optional argumentsalign:</p><p>-h, --help show this help message and exit</p><p>Commands:</p><p>action Various action related sub-commands</p><p>bag Various rosbag related sub-commands</p><p>component Various component related sub-commands</p><p>daemon Various daemon related sub-commands</p><p>doctor Check ROS setup and other potential issues</p><p>interface Show information about ROS interfaces</p><p>launch Run a launch file</p><p>lifecycle Various lifecycle related sub-commands</p><p>multicast Various multicast related sub-commands</p><p>node Various node related sub-commands</p><p>param Various param related sub-commands</p><p>pkg Various package related sub-commands</p><p>run Run a package specific executable</p><p>security Various security related sub-commands</p><p>service Various service related sub-commands</p><p>topic Various topic related sub-commands</p><p>wtf Use `wtf` as alias to `doctor`</p><p>Call `ros2 &ltleft;command&gt; -h` for more detailed usage.</p></li><li><p>Then you can use the "| '''test_rosUSB3.sh0X2''' 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:~$ | '''test_ros.shOK'''</p><p>[INFO] [1671174101.200091527] [talker]: Publishing| style="text-align: left;"| '''OK''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;"| ''Hello World: 2'</p><p>[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: 2]</p><p>[INFO] [1671174103.199580322] [talker]: Publishing: 5G PCIe network port X2''Hello World: 3'</p><p>[INFO] [1671174103.204019965] [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/setup.bashOK'''</p><p>orangepi@orangepi| style="text-align:~$ left;"| '''ros2 run rviz2 rviz2OK'''</p><div class|-| style="figuretext-align: left;"> [[File:./images/media/image570.png|576x324px|Screenshot from 2023-05-22 15-17-44]] </div></li><li><p>Reference document</p><p>'''http://docs2.ros.org/en/humble/index.html5G PCIe network portlight'''</p><p>| '''http://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.htmlOK'''</p></li></ol> <span id| style="settext-the-chinese-environment-and-the-method-of-installing-the-chinese-input-methodalign: left;"></span>| '''OK'''== Set the Chinese environment and the method of installing the Chinese input method ==|- <ol | style="listtext-style-typealign: decimalleft;"><li><p>Open the settings first</p><p>[[File:./images/media/image537.png|243x181px]]</p></li><li><p>Then find the '''Region &amp; LanguageDebug serial port''' option, and then click | '''Manage Installed LanguagesOK''' options</p><p>[[File| style="text-align:./images/media/image571.pngleft;"|576x352px]]</p></li><li><p>Then use the left mouse button to select '''<span class="mark">Chinese (China)</span>OK''' 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|-| style="text-align:./images/media/image572.pngleft;"|575x428px]]</p></li><li><p>Then select the '''Apply System-WideRTC chip''' to apply the Chinese settings to the entire system</p><p>[[File:./images/media/image573.png|576x427px]]</p></li><li><p>'''Then restart the linux system to make the configuration effectiveOK'''</p></li><li><p>After re | style="text-entering the system, please choose not to align: left;"| '''<span class="mark">ask me again</span>OK''' 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/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/image575.png|576x324px|截图 2023-03-08 09-34-07]] </div></li><li><p>Then open the Fcitx5 configuration program</p><p>[[File:./images/media/image576.png|576x326px]]</p></li><li><p>Then choose to use Pinyin input method</p><div classstyle="figure"> [[File:./images/media/image577.jpeg|576x429px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题text-6.jpg未标题-6]] </div></li><li><p>The interface after selecting is shown below, then click OK</p><p>[[Filealign:./images/media/image578.pngleft;"|504x373px]]</p></li><li><p>Then we can open the Chinese input method of '''GeanyFAN Fan interface''' 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+SpaceOK''' shortcut keys, and then we can enter Chinese</p><p>[[File:./images/media/image580.png|576x364px]]</p></li></ol> <span idstyle="orangetext-pi-os-arch-system-use-instructionsalign: left;"></span>= Orange Pi OS Arch system use instructions = <span id="orange-pi-os-arch-system-adaptation-situation"></span>== Orange Pi OS Arch system adaptation situation == {| class="wikitable"'''OK'''|-| style="text-align: left;"| '''FunctioneMMC Extension ports'''| '''OPi OS Arch GnomeOK'''| style="text-align: left;"| '''OPi OS Arch Xfce(To be released)OK'''|-| style="text-align: left;"| '''HDMI TX1 videoAP6275P-WIFI'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''HDMI TX1 AudioAP6275P-BT'''
| '''OK'''
| style="text-align: left;"| '''OK'''
|-
| style="text-align: left;"| '''HDMI TX2 video'''| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI TX2 Audio'''| '''OK'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''HDMI RX video'''| '''OK'''| 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 portlight'''| '''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'''
'''(PCIE+USB Port)'''
| [[File:.media/images/%20media/image310image230.p%20ng]]
| '''Debian'''
'''(PCIE+USB Port)'''
| [[File:./images/media%20/image311image231.png]]{w idth=“1.06875in” height=“1.45in”}
| '''Debian'''
'''(PCIE+USB Port)'''
| [[File:.media/images/%20media/image312image232.p%20ng]]
| '''Debian'''
<ol start="2" style="list-style-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:./images/media/image313image233.png|403x181px]]</p></li>
<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="list-style-type: lower-alpha;">
<p>LINUX /Image</p>
<p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p>
<p>'''FDTOVERLAYS /dtbs/rockchip/overlay/rk3588-wifi-pcie.dtbo''' '''#What needs to be added'''</p></li>
<li><p>'''Then restart the OPi OS Arch system'''</p></li></ol>
</li>
<ol style="list-style-type: lower-alpha;">
<li><p>First click the area in the upper right corner of the desktop</p>
<p>[[File:./images/media/image581image492.png|252x160px]]</p></li>
<li><p>Then choose Wi-Fi</p>
<p>[[File:./images/media/image582image493.png|337x215px]]</p></li>
<li><p>Then select the WIFI you want to connect</p>
<p>[[File:./images/media/image583image494.png|466x249px]]</p></li>
<li><p>Then enter the password of the wifi, and click '''Connect'''</p>
<p>[[File:./images/media/image584image495.png|284x188px]]</p></li>
<li><p>Then enter the following interface to see the wifi connection</p>
<p>[[File:./images/media/image585image496.png|544x383px]]</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:./images/media/image581image492.png|272x173px]]</p></li>
<li><p>Then open the settings</p>
<p>[[File:./images/media/image586image497.png|288x238px]]</p></li>
<li><p>Then select Bluetooth in the settings, and make sure that the &gt; switch button in the upper right corner of the Bluetooth is &gt; opened</p>
<p>[[File:./images/media/image587image498.png|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/image588image499.png|451x296px]]</p></li>
<li><p>Then click '''Confirm''', the mobile phone also needs to confirm &gt; the pairing</p>
<p>[[File:./images/media/image589image500.png|221x142px]]</p></li>
<li><p>The display of the Bluetooth and Android phone is shown below:</p>
<p>[[File:./images/media/image590image501.png|451x296px]]</p></li>
<li><p>Then click the paired Bluetooth device to pop up the operating &gt; interface shown in the figure below</p>
<p>[[File:./images/media/image591image502.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/image592image503.png|525x297px]]
<ol style="list-style-type: lower-roman;">
<div class="figure">
[[File:./images/media/image593image504.png|576x324px|Screenshot from 2023-04-21 04-17-07]]
</div></li></ol>
<ol style="list-style-type: lower-alpha;">
<li><p>10.1 -inch MIPI LCD display+touch screen (common to OPI5/OPI5B)</p>
<p>[[File:./images/media/image504image417.png|308x237px]]</p></li>
<li><p>Screen divert+31pin to 40pin exhaust</p>
<div class="figure">
[[File:./images/media/image505image418.png|160x139px|DD9A8F44-0D8F-4f06-9473-B539DEED850C]]
</div></li>
<div class="figure">
[[File:./images/media/image506image419.png|421x39px|C2164119-6EC3-49ae-9A95-BE323F51FAE1]]
</div></li>
<li><p>12pin touch screen line</p>
<p>[[File:./images/media/image507image420.png|300x44px]]</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 '''the blue insulation of the touch screen row line face to down'''. If an error is connected, it will cause no display or unable to touch..</p>
<p>[[File:./images/media/image508image421.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>
[[File:./images/media/image509image422.png|382x563px]]
<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/image510image423.png|246x156px]]</p></li>
<li><p>Finally connect to the LCD interface of the development board through the 30PIN MIPI duct.</p>
<p>[[File:./images/media/image511image424.png|363x202px]]</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.'''</p>
<p>[[File:./images/media/image512image425.png|334x70px]]</p></li></ol>
<span id="how-to-open-10.1--inch-mipi-lcd-screen-configuration"></span>
<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/image513image426.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>[orangepi@orangepi ~]$ '''sudo''' '''vim /boot/extlinux/extlinux.conf'''</p>
<p>LABEL Orange Pi</p>
<p>LINUX /Image</p>
<p>FDT /dtbs/rockchip/rk3588-orangepi-5-plus.dtb</p>
<p>'''FDTOVERLAYS''' '''/dtbs/rockchip/overlay/rk3588-opi5plus-lcd.dtbo''' '''#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:./images/media/image594image505.png|162x242px]]
<span id="method-of-rotating-display-and-touch-direction"></span>
<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/image581image492.png|193x123px]]</p></li>
<li><p>Then open the settings</p>
<p>[[File:./images/media/image586image497.png|193x159px]]</p></li>
<li><p>Then choose '''Displays'''</p>
<p>[[File:./images/media/image595image506.png|424x279px]]</p></li>
<li><p>Then select the direction you want to rotate in the '''Orientation''' of '''Displays'''</p>
<p>[[File:./images/media/image596image507.png|426x282px]]</p></li>
<li><p>Then choose '''Apply'''</p>
<p>[[File:./images/media/image597image508.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/image598image509.png|259x130px]]</p></li>
<li><p>The display of the LCD screen after 90 degrees is shown below:</p>
<p>[[File:./images/media/image599image510.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>
<ol style="list-style-type: lower-alpha;">
<li><p>OV13850 camera of 13 million MIPI interface</p>
<p>[[File:./images/media/image24image23.png|215x121px]]</p></li>
<li><p>13 million MIPI interface OV13855 camera</p>
<p>[[File:./images/media/image25image24.png|189x112px]]</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 '''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></li></ol>
[[File:./images/media/image525image436.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:
<li><p>No. 3 interface is not used, just ignore it.</p></li></ol>
[[File:./images/media/image526image437.png|288x172px]]
Orange Pi 5 Plus development board has a total of 1 camera interface, which is shown below:
[[File:./images/media/image527image438.png|367x85px]]
The method of the camera inserted on the development board interface is shown below:
[[File:./images/media/image528image439.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>
<div class="figure">
[[File:./images/media/image600image511.png|576x324px|Screenshot from 2023-04-20 17-16-08]]
</div></li></ol>
<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/image581image492.png|217x138px]]</p></li>
<li><p>Then open the settings</p>
<p>[[File:./images/media/image601image512.png|259x196px]]</p></li>
<li><p>Then find the '''Region &amp; Language''' option</p>
<p>[[File:./images/media/image602image513.png|394x260px]]</p></li>
<li><p>Then choose '''Language'''</p>
<p>[[File:./images/media/image603image514.png|401x264px]]</p></li>
<li><p>Then select Chinese</p>
<p>[[File:./images/media/image604image515.png|443x290px]]</p></li>
<li><p>then click '''Select'''</p>
<p>[[File:./images/media/image605image516.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/image606image517.png|395x260px]]</p></li>
<li><p>Then you can see that the desktop is displayed as Chinese</p>
<div class="figure">
[[File:./images/media/image607image518.png|498x280px|截图 2023-04-20 20-20-06]]
</div></li>
<p>Enter a selection (default = all selected): '''1'''</p></li>
<li><p>Then open the Fcitx configuration program</p>
<p>[[File:./images/media/image608image519.png|395x223px]]</p><p>[[File:./images/media/image609image520.png|396x223px]]</p></li>
<li><p>Then add '''<span class="mark">Google Pinyin</span>''' input method</p>
<p>[[File:./images/media/image610image521.png|248x228px]]</p><p>[[File:./images/media/image611image522.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">
[[File:./images/media/image612image523.png|459x258px|截图 2023-04-20 20-38-24]]
</div></li></ol>
<ol start="6" style="list-style-type: decimal;">
<li><p>The position of the development board HDMI In interface is shown below:</p>
<p>[[File:./images/media/image348image265.png|351x112px]]</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:./images/media/image12image11.png|199x129px]]</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="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-hdmirx.dtbo''' '''#The configuration that needs to be added'''</p></li>
<li><p>'''Then restart the OPi OS Arch system'''</p></li></ol>
</li>
<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:./images/media/image613image524.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 the application list first</p>
<p>[[File:./images/media/image614image525.png|356x200px]]</p></li>
<li><p>Then find '''Qt V4L2 test Utility''' and open it</p>
<p>[[File:./images/media/image615image526.png|367x205px]]</p></li>
<li><p>Then make sure '''Qt V4L2 test Utility''' recognizes the HDMI In &gt; device</p>
<p>[[File:./images/media/image616image527.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/image617image528.png|508x359px]]</p></li>
<li><p>The video window entered by HDMI In is shown below:</p>
<div class="figure">
[[File:./images/media/image618image529.png|572x322px|Screenshot from 2023-05-22 18-12-56]]
</div></li></ol>
== How to install wiringOP ==
'''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 -download and compile and install it,just use it directly.'''
'''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:./images/media/image619image530.png|434x308px]]
'''wiringOP 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.。'''
<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 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/image620image531.png|356x88px]]</p></li>
<li><p>Compile and install wiringOP</p>
<p>[orangepi@orangepi ~]$ '''sudo pacman -Syy make gcc'''</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/image619image530.png|568x403px]]</p></li></ol>
<span id="pin-interface-gpio-i2c-uart-spi-can-and-pwm-test-1"></span>
FDT /dtbs/rockchip/rk3588s-orangepi-5.dtb
'''FDTOVERLAYS''' '''/dtbs/rockchip/overlay/rk3588-i2c1-m2.dtbo''' '''/dtbs/rockchip/overlay/rk3588-uart0-m2.dtbo'''
<span id="pin-gpio-port-test-2"></span>
<ol 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 -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:./images/media/image621image532.png|576x147px]]</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>
<p>[orangepi@orangepi ~]$ '''gpio mode''' '''2''' '''out'''</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</p>
<p>[orangepi@orangepi ~]$ '''gpio write 2''' '''0'''</p></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>
<p>[orangepi@orangepi ~]$ '''gpio write 2''' '''1'''</p></li></ol>
<!-- -->
<ol style="list-style-type: decimal;">
<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:./images/media/image621image532.png|576x147px]]</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>
<p>[orangepi@orangepi ~]$ '''gpio mode''' '''2''' '''in'''</p></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>
<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 the level is 1, 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 0, it means that the drop -down mode is set successfully</p>
<p>[orangepi@orangepi ~]$ '''gpio read''' '''2'''</p>
<p>'''0'''</p></li></ol>
<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/image389image304.png|575x137px]]</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></ol>
<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>
<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:./images/media/image389image304.png|575x137px]]</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></ol>
<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>
<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:./images/media/image389image304.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>
<ol style="list-style-type: 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:./images/media/image389image304.png|575x137px]]</p></li>
<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. Please think that they are two different PWM bus</p></li></ol>
<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>
{| class="wikitable"
|-
| style="text-align: left;"| '''PWM''' '''bus'''
| style="text-align: left;"| '''Dtbo configuration'''
|-
<div class="figure">
[[File:./images/media/image622image533.png|575x78px|1010iring_001]]
</div></li>
<li><p>Then from the table below, the base address of the PWM14 register is FEBF0020, and then look at the output of the '''ls /sys/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>[[File:./images/media/image403image318.png|575x287px]]</p></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)</p></li></ol>
[root@orangepi ~]# '''echo''' '''0''' '''&gt; /sys/class/pwm/pwmchip2/export'''
[root@orangepi ~]# '''echo''' '''20000000''' '''&gt; /sys/class/pwm/pwmchip2/pwm0/period'''
[root@orangepi ~]# '''echo''' '''1000000''' '''&gt; /sys/class/pwm/pwmchip2/pwm0/duty_cycle'''
[root@orangepi ~]# '''echo 1 &gt; /sys/class/pwm/pwmchip2/pwm0/enable'''
[[File:./images/media/image404image319.png|575x346px]]
<ol start="8" style="list-style-type: decimal;">
<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:./images/media/image405image320.png|574x137px]]</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>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>
<!-- -->
<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>
<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></ol>
<span id="sectionlinux-60sdkorangepi-build-instructions"></span>== =Linux SDK——orangepi-build instructions =
<ol startspan id="6" style="listcompilation-stylesystem-type: decimal;requirements"><li></lispan><li></li><li></li><li></li><li></li></ol>== Compilation system requirements ==
<span id="section'''We can cross-61"></span>== ==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.'''
<ol start="13" style="list'''If you use orangepi-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>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.'''
<span id="sectioncompile-62with-the-ubuntu22.04-system-of-the-development-board"></span>= == Compile with the Ubuntu22.04 system of the development board ===
<span idol style="sectionlist-63style-type: decimal;"><li><p>The Linux SDK, namely '''orangepi-build''', supports running on the '''Ubuntu 22.04''' of the development board (other systems have not been tested), so before downloading orangepi-build, please first ensure that the Ubuntu version installed on the development board is Ubuntu 22.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.</p><p>orangepi@orangepi:~$ '''lsb_release -a'''</p><p>No LSB modules are available.</p><p>Distributor ID: Ubuntu</p><p>Description: Ubuntu 22.04.1 LTS</spanp>== ==<p>Release: '''22.04'''</p><p>Codename: jammy</p></li><li><p>'''Since the source codes such as the kernel and U-boot are stored on GitHub, it is very important to ensure that the development board can download codes from GitHub normally when compiling the image.'''</p></li></ol>
<span id="compile-with-x64-ubuntu22.04-computer"></span>
=== Compile with x64 Ubuntu22.04 computer ===
-----  ----- <span id="section-64"></span>== == <ol start="7" style="list-style-type: decimal;"><li></lip>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.</olp>  -----  <p>test@test:~$ '''lsb_release ----- a'''<ol start="8" style="list-style-type: decimal;"/p><lip>No LSB modules are available.</lip><lip>Distributor ID: Ubuntu<ol style="list-style-type: lower-alpha;"/p><lip>Description: Ubuntu 22.04 LTS</lip><lip>Release: '''22.04'''</lip></olp>Codename: jammy</li><lip></li><li><ol style="listp>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-stylebuild on the WSL virtual machine, because orangepi-type: lowerbuild has not been tested in the WSL virtual machine, so it cannot be guaranteed that orangepi-alpha;">build can be used normally in WSL.<li/p></li><li></li><lip>The download address of the installation image of Ubuntu 22.04 '''amd64''' version is:</lip><lip><[https://li><li><repo.huaweicloud.com/li><ubuntu-releases/ol><21.04/li><li><ol style="listubuntu-21.04-styledesktop-typeamd64.iso '''https: lower//mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/22.04/ubuntu-22.04-desktop-alpha;"><li>amd64.iso''']</lip><lip>or</lip><lip><'''https://repo.huaweicloud.com/ubuntu-releases/22.04/li><li>ubuntu-22.04.1-desktop-amd64.iso'''</li><lip></li><li></li><lip>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</lip><li></liol 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>
<span id="section-65"><[https:/span>== ==/mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ '''https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/''']
<ol start="2" style="list-style-type: lower-alpha;"><li><p>Note that the Ubuntu version needs to be switched to 22.04</p><p>[[File:media/image534.png|576x241px]]</p></li><li><p>The content of the '''<span idclass="section-66mark">/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><p>test@test:~$ '''sudo vim /etc/apt/sources.list'''</p><p># By default, the source image is commented to improve the speed of apt update, 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 the replacement, you need to update 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 is very important to ensure that the &gt; computer can download codes from GitHub normally when compiling &gt; the image.'''</p></li></ol>
<ol startspan id="6" style="listget-the-stylesource-type: decimal;"><li><ol style="listcode-styleof-type: lowerlinux-alpha;sdk"><li></lispan><li></li><li></li><li></li></ol></li><li></li><li></li><li></li><li></li></ol>== Get the source code of linux sdk ==
<span id="sectiondownload-67orangepi-build-from-github"></span>=== Download orangepi-build from github ===
<ol start="4" style="list# The linux sdk actually refers to the code of orangepi-stylebuild. orangepi-type: decimal;"><li></li><li><ol style="listbuild is modified based on the armbian build system. Using orangepi-stylebuild, multiple versions of linux images can be compiled. First download the code of orangepi-type: lower-alpha;"><li></li><li></li></ol></li><li></li></ol>build, the command is as follows:
<span id="sectiontest@test:~$ '''sudo apt-68"></span>=== ===get update'''
<ol start="9" style="listtest@test:~$ '''sudo apt-styleget install -type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ol>y git'''
<span id="sectiontest@test:~$ '''git clone https://github.com/orangepi-69"><xunlong/span>== ==orangepi-build.git -b next'''
<ol start="3" style="list'''Note that the Orange Pi 5 Plus development board needs to download the source code of the next branch of orangepi-stylebuild. The above git clone command needs to specify the branch of the orangepi-type: lower-alpha;"><li></li><li></li></ol>build source code as next.'''
<!-- --><ol startdiv class="4figure" style="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol>
<!-- --><ol start="5" style="list-style-type[[File: lower-alpha;"><li><media/li></ol>image535.png|576x298px|图片6]]
</div>
'''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-build warehouse behind the git clone. Please check the spelling of the command carefully, instead of thinking that we forgot to provide the username and password of the github account.'''
<ol start="2" style="list-style-type: decimal;"><li>The u---boot and linux kernel versions currently used by the development board are as follows</li></ol>
{| class="wikitable"
|-
| style="text-align: left;"| '''branch'''
| style="text-align: left;"| '''u-boot version'''
| style="text-align: left;"| '''linux kernel version'''
|-
| style="text-align: left;"| '''legacy'''
| style="text-align: left;"| '''u-boot 2017.09'''
| style="text-align: left;"| '''linux5.10'''
|}
'''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.'''
<ol start="6" style="list-style-type: lower-alpha;"><li></li><li></li><li></li></ol>'''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.'''
<span id="section-70"></span>== == <ol start="133" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li><li></li><li></lip><li></li><li></li><li></li><li></li><li></li></ol> <span id="sectionorangepi-71">build will contain the following files and folders after downloading</spanp>== == <ol start="12" style="list-style-type: decimallower-alpha;"><li></lip>'''build.sh''': Compile the startup script<li/p></li><li><ol style="list-style-typep>'''external''': lower-alphaContains the configuration files needed to compile &gt; the image, specific scripts, and the source code of some &gt;">programs, etc.<li/p></li><li></lip>'''LICENSE''': GPL 2 license file</olp></li><li></lip>'''README.md''': orangepi-build documentation<li/p></li><li><ol style="list-style-typep>'''scripts''': lower-alpha;"><li>General script for compiling linux images</lip><lip>test@test:~/orangepi-build$ '''ls'''</lip><lip>'''build.sh external LICENSE README.md scripts'''</lip><lip>'''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.'''</li><lip></li></ol>
</li></ol>
<span id="sectiondownload-72the-cross-compilation-toolchain"></span>== = Download the cross-compilation toolchain ===
<ol start="4" style="list'''The cross-stylecompilation toolchain will only be downloaded when the orangepi-type: decimal;"><li></li><li></li><li></li><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/ol>toolchains will be an empty folder.'''
<span idol style="sectionlist-73style-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.</spanp><div class== =="figure">
<span id="section-74"><[[File:media/span>=== ===image536.png|575x278px|选区_396]]
</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/ '''https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain/''']</p></li><li><p>After '''toolchains''' 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/'''</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 start="5" style="list-style-type: decimallower-alpha;"><li><p>linux5.10</lip><p>'''gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu'''</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: lower-alpha;"><li><p>v2017.09</p><p>'''gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu'''</p></li></ol></li></ol>
<!span id="orangepi-build- complete-directory-><ol start="2" style="list-stylestructure-type: decimal;description"><li></li></olspan>=== orangepi-build complete directory structure description ===
<span idol style="sectionlist-style-75type: 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</spanp>=== === <ol start="7" style="list-style-type: decimallower-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:</lip><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:</lip><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><lip>test@test:~/orangepi-build$ '''ls'''</lip><lip>'''build.sh external kernel LICENSE output README.md scripts toolchains u-boot userpatches'''</p></li></ol>
<span id="sectioncompile-76u-boot"></span>=== =Compile u-boot ==
<ol start="7" 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.sh'''</p></li><li><p>Select '''<span class="mark">U-boot package</lispan>''', then press Enter</olp><div class="figure">
[[File:media/image537.png|576x132px|选区_238]]
-----</div></li><li><p>Then select the model of the development board</p><div class="figure">
[[File:media/image538.png|576x289px|6]]
-----</div></li><ol li><p>Then it will start="9" style="listto compile u-style-type: decimal;"boot, and some information prompted during compilation is explained as follows</p><li><ol style="list-style-type: lower-alpha;"><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</olp><p>[ o.k. ] Compiler version [ '''aarch64-linux-gnu-gcc 7.4.1''' ]</p></li><li><p>Path to the generated u-boot deb package</olp><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 start="2" 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/u-boot'''</p><p>test@test:~/orangepi_build/output/debs/u-boot$ $ '''sudo dpkg -x''' \</p><p>'''linux-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb . (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 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><ol startp>Set the IGNORE_UPDATES variable in <span class="10mark" >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: decimallower-alpha;"><li><p>Upload the compiled u-boot deb package to the linux system 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 [mailto:root@192.168.1.xxx:/root 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</olp><p>root@orangepi:~# '''nand-sata-install'''</p></li><li><p>Then select '''<span idclass="sectionmark">5 Install/Update the bootloader on SD/eMM</span>''' to update the u-77boot 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:media/image539.png|317x154px]]</p></li><li><p>After pressing the Enter key, a Warning will pop up first</p><p>[[File:media/image540.png|314x170px]]</p></li><li><p>Press the Enter key again to start updating u-boot, and the &gt; following information will be displayed after the update is &gt; completed</p><p>[[File:media/image541.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 start="7" style="list-style-type: decimallower-alpha;"><li><p>u-boot 2017.09 source code, the defconfig configuration file &gt; used by the development board is</p></li><li><p>[https://github.com/orangepi-xunlong/u-boot-orangepi/blob/v2017.09-rk3588/configs/orangepi_5_plus_defconfig '''orangepi-build/u-boot/v2017.09-rk3588/configs/orangepi_5_plus_defconfig''']u-boot &gt; 2017.09 source code, the dts file used by the development &gt; board is</p></li></ol></li></ol>
<span id="orangepi-buildu-bootv2017.09-rk3588archarmdtsrk3588-orangepi-5-plus.dtscompile-the-linux-kernel"></span>
== [https://github.com/orangepi-xunlong/u-boot-orangepi/blob/v2017.09-rk3588/arch/arm/dts/rk3588-orangepi-5-plus.dts '''orangepi-build/u-boot/v2017.09-rk3588/arch/arm/dts/rk3588-orangepi-5-plus.dts'''<span id="_Toc31297" class="anchor"></span>]Compile the linux kernel ==
<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.sh'''</p></li><li><p>Select '''<span class="mark">Kernel package</span>''', then press Enter</p><div class="figure">
[[File:media/image542.png|575x116px|选区_240]]
-----</div></li><li><p>Then select the model of the development board</p><div class="figure">
<ol start="9" style="list-style-type[[File: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></li></ol></li><media/ol>image538.png|576x289px|6]]
</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:media/image543.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 class="mark">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:media/image544.png|575x400px]]</p></li></ol>
<!-----  -----><ol start="2" 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 the &gt; '''<span class="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:media/image545.png|574x234px]]</p></li></ol>
<!-- -->
<ol start="10" style="list-style-type: decimal;">
<li></li>
<li></li>
<li></li></ol>
 
<span id="section-78"></span>
=== ===
 
<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="list-style-type: lower-alpha;"><li><p>The version of the linux kernel source code</p><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_CONFIGURE=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@test:~/orangepi_build/output/debs$ '''mkdir test'''
-----test@test:~/orangepi_build/output/debs$ '''cp \'''
'''linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb test/'''
-----test@test:~/orangepi_build/output/debs$ '''cd test'''
<ol start="2" style="list-style-typetest@test: lower-alpha;"><li><~/orangepi_build/output/li><debs/ol>test$ '''dpkg -x \'''
<!'''linux-image- legacy-rockchip-><ol start="8" style="list-style-type: decimal;"><li></li><li></li></ol>rk3588_1.0.0_arm64.deb .'''
test@test:~/orangepi_build/output/debs/test$ '''ls'''
'''boot etc lib''' linux-image-legacy-rockchip--rk3588_1.0.0_arm64.deb '''usr'''
<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>
<!-----><ol start="109" 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 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 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:~/orangepi-build$ '''vim userpatches/config-default.conf'''</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</p><ol style="list-style-type: lower-alpha;"><li><p>Upload the deb package of the compiled linux kernel to the linux &gt; system of the development board</p><p>test@test:~/orangepi-build$ '''cd output/debs'''</p><p>test@test:~/orangepi-build/output/debs$ '''scp \'''</p><p>'''linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb root@192.168.1.xxx:/root'''</p></li><li><p>Then log in to the development board and uninstall the deb &gt; package of the installed linux kernel</p><p>root@orangepi:~# '''apt purge -y linux-image-legacy-rockchip-rk3588'''</p></li><li><p>Install the deb package of the new linux kernel just uploaded</p><p>root@orangepi:~# '''dpkg -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 &gt; kernel-related modifications have taken effect</p><p>root@orangepi:~# '''reboot'''</p></li></ol></li></ol>
<span id!-- --><ol start="section10" style="list-79style-type: decimal;"><li><p>Other useful information</spanp><ol style=== ==="list-style-type: lower-alpha;"><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></li><li><p>[https://github.com/orangepi-xunlong/orangepi-build/blob/next/external/config/kernel/linux-rockchip-rk3588-legacy.config '''orangepi-build/external/config/kernel/linux-rockchip-rk3588-legacy.config''']The &gt; location of the dts file used by the development board is</p></li></ol></li></ol>
<ol startspan id="9" style="listorangepi-buildkernelorange-pi-5.10-rk3588archarm64bootdtsrockchiprk3588-orangepi-5-styleplus.dtscompile-type: decimal;rootfs"><li></lispan>== [https://github.com/orangepi-xunlong/linux-orangepi/blob/orange-pi-5.10-rk3588/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts '''orangepi-build/kernel/orange-pi-5.10-rk3588/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts'''<lispan id="_Toc25559" class="anchor"></li></olspan>]Compile rootfs ==
<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.sh'''</p></li>
<li><p>Select '''<span class="mark">Rootfs and all deb packages</span>''', then press Enter</p></li></ol>
-----<div class="figure">
[[File:media/image546.png|576x119px|选区_241]]
-----</div><ol start="113" style="list-style-type: decimal;"><li><ol style="list-style-type: lower-alpha;"><li></lip>Then select the model of the development board</olp></li></oldiv class="figure">
[[File:media/image538.png|576x289px|6]]
-----</div></li><li><p>Then select the type of rootfs (mainly maintain '''<span class="mark">bullseye/focal/jammy</span>''' at present)</p><div class="figure">
[[File:media/image547.png|575x180px|7]]
-----</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 &gt; the server version, which is relatively small</p></li><li><p>'''Image with desktop environment''' Indicates a mirror image with &gt; a desktop, which is relatively large</olp><div class="figure">
<!-- --><ol start="12" style="list-style-type[[File: decimal;"><li><media/li><li></li><li></li><li></li><li></li></ol>image548.png|576x75px|选区_245]]
<span id="section/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 '''(please do not choose the Minimal version if there is no special requirement, because many things are not pre-80">installed by default. Some functions may not be available)'''</spanp><div class=== ==="figure">
<span id="section-81"><[[File:media/span>==== ====image549.png|576x78px|选区_397]]
<ol start="6" style="list-style-type: decimal;"><li/div></li><li><ol style="list-style-p>If you are compiling the image of the desktop version, you need to select the type: lower-alpha;"><li></li>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</olp></li></oldiv class="figure">
[[File:media/image550.png|575x99px|Selection_001]]
</div><p>[[File:media/image551.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:media/image552.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</p><p>[ o.k. ] local not found [ Creating new rootfs cache for '''jammy''']</p></li><li><p>The storage path of 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 &gt; compilation</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-alpha;"><li><p>'''jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4''' is &gt; the rootfs compressed package, the meaning of each field of &gt; the name is</p><ol start="2" style="list-style-type: lower-alpha;"><li><p>'''jammy''' indicates the type of linux distribution of rootfs</p></li><li><p>'''xfce''' means rootfs is the type of desktop version, if it &gt; 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 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>'''jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.list''' &gt; lists the package names of all packages installed by rootfs</p><p>test@test:~/orangepi-build$ '''ls external/cache/rootfs/'''</p><p>'''jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4'''</p><p>jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.current</p><p>jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.list</p></li></ol></li><li><p>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> <span id="compile-linux-image"></span>== Compile linux image ==
<!-- --><ol start="8" 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.sh'''</p></li><li><p>Select '''<span class="mark">Full OS image for flashing</span>''', then press Enter</p></li></ol>
<div class="figure">
-----[[File:media/image553.png|576x128px|选区_242]]
</div>
<ol start="3" style="list-style-type: decimal;">
<li><p>Then select the model of the development board</p>
<div class="figure">
-----[[File:media/image538.png|576x289px|6]]
<ol start="10" style="list-style-type: decimal;"/div></li><li><p>Then select the type of rootfs (mainly maintain '''bullseye/focal/jammy''' at present)</lip></oldiv class="figure">
<span id="linux-sdkorangepi-build-instructions"><[[File:media/span>= Linux SDK——orangepi-build instructions =image547.png|575x180px|7]]
<span id/div></li><li><p>Then select the type of image</p><ol style="compilationlist-style-systemtype: lower-requirementsalpha;"><li><p>'''Image with console interface (server)''' Indicates the image of &gt; the server version, which is relatively small</spanp></li><li><p>'''Image with desktop environment''' Indicates a image with a &gt; desktop, which is relatively large</p><div class== Compilation system requirements =="figure">
'''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[[File:media/image548.04 system of the development board, please choose one according to your preference.'''png|576x75px|选区_245]]
'''</div></li></ol></li><li><p>If you use orangepi-build are compiling the image of the server version, you can also choose to compile the Linux image in Standard version or the Ubuntu22Minimal version.04 system The pre-installed software of the development board, Minimal version will be much less than that of the Standard version '''(please do a good job of cooling (especially when not choose the SSD starts). If the heat dissipation Minimal version if there is no special requirement, because many things are not done well, it is prone to the error of file system runawaypre-installed by default.Some functions may not be available)'''</p><div class="figure">
<span id="compile-with-the-ubuntu22.04-system-of-the-development-board"><[[File:media/span>=== Compile with the Ubuntu22image549.04 system of the development board ===png|569x77px|选区_397]]
<ol style="list-style-type: decimal;"/div></li><li><p>The Linux SDK, namely '''orangepi-build''', supports running on If you are compiling the '''Ubuntu 22.04''' image of the development board (other systems have not been tested)desktop version, so before downloading orangepi-build, please first ensure that the Ubuntu version installed on the development board is Ubuntu 22.04. The command you need to check select the Ubuntu version installed on the development board is as follows. If the Release field does not display '''22type of desktop environment.04'''Currently, it means that the current Ubuntu version does not meet the requirements. Please replace the system before performing the following operations.</p><p>orangepi@orangepi:~$ '''lsb_release -a'''</p><p>No LSB modules are available.</p><p>Distributor ID: Jammy mainly maintains XFCE and Gnome desktops, UbuntuFocal only maintains XFCE desktops, and Debian Bullseye mainly maintains XFCE and KDE desktops</p><p>Description: Ubuntu 22.04.1 LTS</p><p>Release: '''22.04'''</p><p>Codename: jammy</p></li><li><p>'''Since the source codes such as the kernel and U-boot are stored on GitHub, it is very important to ensure that the development board can download codes from GitHub normally when compiling the image.'''</p></li></oldiv class="figure">
<span id="compile-with-x64-ubuntu22.04-computer"><[[File:media/span>=== Compile with x64 Ubuntu22image550.04 computer ===png|575x99px|Selection_001]]
<ol style="list-style-type: decimal;"/div><lip>[[File:media/image551.png|576x74px]]</p><p>The Linux SDK, '''orangepi-build''', supports running on computers with '''Ubuntu 22You can then select additional packages that need to be installed.04''' installed, so before downloading orangepi-build, please make sure that Please press the Ubuntu version installed on your computer is Ubuntu 22Enter key to skip directly here.04</p><p>[[File:media/image552. The command png|575x264px]]</p></li><li><p>Then it will start to check compile the Ubuntu version installed on the computer linux image. The general process of compilation is as follows</p><p>a. If Initialize the Release field does not display '''22.04''', it means that the current compilation environment of Ubuntu version does not meet PC and install the requirements. Please replace the system before performing software packages required for the following operations.compilation process</p><p>test@test:~$ '''lsb_release b. Download the source code of u-a'''boot and linux kernel (if cached, only update the code)</p><p>No LSB modules are availablec.Compile u-boot source code and generate u-boot deb package</p><p>Distributor ID: Ubuntud. Compile the linux source code and generate linux-related deb packages</p><p>Description: Ubuntu 22e.04 LTSMake the deb package of linux firmware</p><p>Release: '''22f.04'''Make the deb package of the orangepi-config tool</p><p>Codename: jammyg. Create a deb package supported by the board</p></li><li><p>h. If you are compiling the computer is installed with Windows system and there is no computer with Ubuntu 22.04 installeddesktop image, you can consider using '''VirtualBox''' or '''VMware''' to install an Ubuntu 22will also create desktop-related deb packages</p><p>i.04 virtual machine in Check whether the Windows system. But please be careful rootfs has been cached, if not to compile orangepi-build on , recreate the WSL virtual machinerootfs, because orangepi-build if it has not been tested in the WSL virtual machinecached, so it cannot be guaranteed that orangepi-build can be used normally in WSL.directly decompress and use</p><p>j. Install the previously generated deb package into rootfs</lip><li><p>The download address k. Make some specific settings for different development boards and different types of the installation image of Ubuntu 22images, such as pre-installing additional software packages, modifying system configuration, etc.04 '''amd64''' version is:</p><p>'''https://mirrorsl.tuna.tsinghua.edu.cnThen make an image file and format the partition, the default type is ext4</ubuntu-releases/22p><p>m.04/ubuntu-22.04-desktop-amd64.iso'''Then copy the configured rootfs to the mirrored partition</p><p>orn. Then update initramfs</p><p>'''https://repoo.huaweicloud.com/ubuntuFinally, write the bin file of u-releases/22.04/ubuntu-22.04.1-desktop-amd64.iso'''boot into the image through the dd command</p></li><li><p>After installing Ubuntu 22.04 on compiling the computer or virtual machineimage, 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 laterfollowing information will be prompted</p>
<ol style="list-style-type: lower-alpha;">
<li>For the method <p>The storage path of replacing Tsinghua source, please refer to the &gt; instructions on this web pagecompiled image</p><p>[ o.k. ] Done building [ '''output/images/orangepi5plus_1.0.0_debian_bullseye_linux5.10.110_xfce_desktop/orangepi5plus_1.0.0_debian_bullseye_linux5.10.110_xfce_desktop.img''' ]</p></li><li><p>Compilation time</p></li></ol>
</li></ol>
'''https[ o.k. ] Runtime [ 19 min ]''' <ol style="list-style-type:lower-alpha;"><li><p>Repeat the command to compile the image, and use the following &gt; command to start compiling the image directly without selecting &gt; through the graphical interface<//mirrorsp><p>[ o.tunak.tsinghua] Repeat Build Options [ '''sudo .edu/build.cnsh BOARD=orangepi5plus BRANCH=legacy BUILD_OPT=image RELEASE=bullseye BUILD_MINIMAL=no BUILD_DESKTOP=no KERNEL_CONFIGURE=yes''' ]</helpp></ubuntuli></'''ol> <span id="linux-development-manual"></span>= Linux Development Manual = <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 ==
<ol start="2" style="list-style-type: lower-alphadecimal;"><li><p>Note that First download the Ubuntu version needs to be switched to 22.04</p><p>[[File:./images/media/image625.png|576x241px]]</p></li><li><p>The content Linux kernel source code of the '''<span class="mark">/etc/apt/sources.lis</span>'''t file that &gt; needs to be replaced isdevelopment board</p><p>test@test:~$ '''sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak'''</p><p>testorangepi@testorangepi:~$ '''sudo vim /etc/apt/sources.list'''</p><p># By default, the source image is commented to improve the speed of apt update, you can uncomment it yourself if necessary</p><p>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse</p><p># debgit clone -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/ jammydepth=1 -backports main restricted universe multiverse</p><p># debb orange-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammypi-backports main restricted universe multiverse</p><p>deb https://mirrors.tuna.tsinghua.edu5.cn/ubuntu/ jammy10-security main restricted universe multiverse</p><p># deb-src rk3588 https://mirrors.tuna.tsinghuagithub.edu.cn/ubuntucom/ jammyorangepi-security main restricted universe multiverse<xunlong/p><p># Prelinux-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 multiverseorangepi'''</p></li><li><p>After the replacement, you need to update the package information &gt; and make sure there is no error</pol><p>test@test:~$ '''sudo apt update'''</p></li><li><p>'''In additionIf you have problems downloading the code from github, since you can go to the official tool of the source codes such as development board to download the compressed kernel and U-boot &gt; are stored on GitHubsource code package, then upload it is very important to ensure that the &gt; computer can download codes from GitHub normally when compiling &gt; linux system of the imagedevelopment board, and then decompress it.'''</p></li></ol>
<span id="get-the-source-code-of-linux-sdk"><[[File:media/span>== Get the source code of linux sdk ==image554.png|223x86px]] [[File:media/image555.png|305x87px]]
<span id="download-orangepi-build-from-github"></span>=== Download orangepi-build from github ==='''The command to decompress the compressed kernel source code package is:'''
# The linux sdk actually refers to the code of orangepi@orangepi:~$ '''tar zxf orange-pi-build5. orangepi10-build is modified based on the armbian build systemrk3588. Using orangepi-build, multiple versions of linux images can be compiledtar. First download the code of orangepi-build, the command is as follows:gz'''
testorangepi@testorangepi:~$ '''sudo aptmv orange-get updatepi-5.10-rk3588 linux-orangepi'''
test@test:~$ '''sudo apt-get install -y gitAfter decompression, please execute the following command to synchronize the source code with github to ensure that the source code is in the latest state:'''
testorangepi@testorangepi:~$ '''git clone''' '''https://github.com/orangepicd linux-xunlong/orangepi-build.git''' '''-b next'''
orangepi@orangepi:~/linux-orangepi$ '''Note that the Orange Pi 5 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.pull'''
<div classol start="figure2"style="list-style-type: 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>
[[File:.'''The path of <span class="mark">rockchip_linux_defconfig</imagesspan> in the kernel source code is arch/mediaarm64/image626.png|576x298px|图片6]]configs/'''
<ol start="3" style="list-style-type: decimal;"><li><p>Then compile the kernel source code</divp><p>orangepi@orangepi:~/linux-orangepi$ '''Downloading make -j10'''</p></li><li><p>Then install the kernel module</p><p>orangepi@orangepi:~/linux-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-build warehouse behind the git clone. Please check the spelling of the command carefully, instead of thinking that we forgot to provide the username and password of the github account.$ '''sudo make modules_install'''</p></li></ol>
<ol start="2" style="list-style-type: decimal;"><li>'''The u-boot and linux installation path of the kernel versions currently used by the development board are as follows<module is:/li><lib/ol>modules'''
{| class="wikitable"|-| style="text-align: left;"| '''branch'''| style="text-align: left;"| '''u-boot''' '''version'''| style="text-align: left;"| '''linux After executing the sudo make modules_install command, you can see that there will be an additional kernel version'''|-| style="text-align: left;"| '''legacy'''| style="text-align: left;"| '''u-boot 2017.09'''| style="text-alignmodule folder under /lib/modules/: left;"| '''linux5.10'''|}
orangepi@orangepi5plus:~$ '''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.ls /lib/modules'''
'''Currently, the linux55.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.110+'''5.10.110-rockchip-rk3588
<ol start="35" 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; Then install the kernel image, specific scripts, and the source code of some &gt; programs, etc.uInitrd</p></li><li><p>'''LICENSE''': GPL 2 license file</p></li><li><p>'''README.md''': orangepi-build documentation</p></li><li><p>'''scripts''': General script for compiling linux images</p><p>test@testorangepi:~/linux-orangepi-build$ '''lssudo make install'''</p><p/li>'''build.sh external LICENSE''' '''README.md''' '''scripts'''</pol><p>'''If you downloaded the code The installation path 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 image 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-uInitrd is:/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-'''After executing the-cross-compilation-toolchain"><sudo make install command, you can see that there will be one more kernel file under /span>=== Download the cross-compilation toolchain ===boot/:'''
'''The cross-compilation toolchain will only be downloaded when the orangepi@orangepi5plus:~/orange-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 crosspi-compilation toolchain5. At this time, orangepi10-buildrk3588$ '''ls /toolchains will be an empty folder.boot/vmlinuz*'''
<ol style="list'''/boot/vmlinuz-style5.10.110+''' /boot/vmlinuz-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 folder5. Every time after running the build10.sh script of orangepi110-build, it will check whether the crossrockchip-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.rk3588<br /p><div class="figure"br />'''The file /boot/Image is actually loaded when the system starts, and Image is a copy of the vmlinuz file'''
[[File<ol start="6" style="list-style-type:decimal;"><li><p>Then install the dtb file into '''/boot/dtb'''</p><p>orangepi@orangepi:~/linux-orangepi$ '''sudo make dtbs_install INSTALL_DTBS_PATH=/boot/dtb/'''</p></li><li><p>Then restart the Linux system and the newly compiled kernel will be loaded</p><p>orangepi@orangepi:~$ '''uname -r'''</p><p>'''5.10.110+'''</imagesp></mediali></image627.png|575x278px|选区_396]]ol>
</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/'''</p></li><li><p>After '''toolchains''' 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/'''</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 stylespan id="list-styleopenwrt-type: lowersystem-alpha;instructions"><li><p>linux5.10</pspan><p>'''gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu'''</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: lower-alpha;"><li><p>v2017.09</p><p>'''gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu'''</p></li></ol></li></ol>OpenWRT system instructions =
<span id="orangepiopenwrt-build-complete-directory-structure-descriptionversion"></span>=== orangepi-build complete directory structure description =OpenWRT version ==
<ol style{| class="list-style-type: decimal;wikitable"><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="listtext-style-typealign: lower-alphaleft;"><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-rk3588OpenWRT version'''</p></li><li><p>The git warehouse where the u| style="text-boot source code is stored is as &gtalign: left; follows:</p><p>"| '''https://github.com/orangepi-xunlong/u-boot-orangepi/tree/v2017.09-rk3588kernel version'''</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 | style="list-styletext-typealign: lower-alphaleft;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li><p>a.| '''buildv22.sh''': compile startup script</p><p>b03.4'''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| style="text-align: stores the source code of the linux kernel. The folder named left;"| '''orange-pi-5Linux5.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 userpatches110'''</p></li></ol></li></ol>|}
<span id="compileopenwrt-u-bootadaptation"></span>== Compile u-boot OpenWRT Adaptation ==
<ol style{| class="listwikitable"|-| style="text-typealign: decimalleft;"><li><p>Run the build.sh script, remember to add sudo permission</p><p>test@test:~/orangepi-build$ | '''sudo ./build.shFunction'''</p></li><li><p>Select | style="text-align: left;"| '''<span class="mark">U-boot package</span>OpenWRT''', then press Enter</p><div class="figure">|- [[File:./images/media/image628.png|576x132px|选区_238]] </div></li><li><p>Then select the model of the development board</p><div classstyle="figuretext-align: left;">| '''USB2.0x2'''[[File:./images/media/image629.png|576x289px|6]] </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="list-styletext-typealign: lower-alphaleft;"><li><p>u-boot source code version</p><p>[ o.k. ] Compiling u-boot [ | '''v2017.09OK''' ]</p></li><li><p>The version of the cross|-compilation toolchain</p><p>[ o.k. ] Compiler version [ | style="text-align: left;"| '''aarch64-linux-gnu-gcc 7USB3.4.10x2''' ]</p></li><li><p>Path to the generated u| style="text-boot deb package</p><p>[ o.k. ] Target directory [ align: left;"| '''orangepi-build/output/debs/u-bootOK''' ]</p></li><li><p>The package name of the generated u|-boot deb package</p><p>[ o.k. ] File name [ | style="text-align: left;"| '''linuxUSB Type-u-boot-legacy-orangepi5plus_1C 3.0.0_arm64.deb''' ]</p></li><li><p>Compilation time</p><p>[ o.k. ] Runtime [ | style="text-align: left;"| '''1OK''' |-| style="text-align: left;"| '''min3pin debugging serial port''' ]</p></li><li><p>Repeat the command to compile u| style="text-boot, use the following command &gtalign: left; to start compiling u-boot directly without selecting through &gt; the graphical interface</p><p>[ o.k. ] Repeat Build Options [ "| '''sudo ./build.sh BOARD=orangepi5plusOK''' |-| style="text-align: left;"| '''BRANCH=legacy BUILD_OPT=u-boot KERNEL_CONFIGURE=noTF card start''' ]</p></li></ol></li><li><p>View the u| style="text-boot deb package generated by compilation</p><p>test@testalign:~/orangepi-build$ left;"| '''ls output/debs/u-boot/OK'''</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="list-styletext-typealign: lower-alphaleft;"><li><p>Use the following command to decompress the deb package</p><p>test@test:~/orangepi-build$ | '''cdSPIFlash+NVMe SSD Boot''' | style="text-align: left;"| '''output/debs/u-bootOK'''</p><p>test@test|-| style="text-align:~/orangepi_build/output/debs/u-boot$ $ left;"| '''sudoSPIFlash boots the complete system''' | style="text-align: left;"| '''dpkg -xOK''' \</p><p>'''linux|-u| style="text-boot-legacy-orangepi5plus_1.0.0_arm64.deb .align: left;"| ''' '''(Note that there is a &quot;2.&quot; at the end of the command)5G PCIe network port X2'''</p><p>test@test| style="text-align:~/orangepi_build/output/debs/u-boot$ left;"| '''lsOK'''</p><p>linux|-u| style="text-boot-legacy-orangepi5plus_1.0.0_arm64.deb align: left;"| '''usrNetwork port status light'''</p></li><li><p>The decompressed file is as follows</p><p>test@test| style="text-align:~/orangepi-build/output/debs/u-boot$ left;"| '''tree usrOK'''</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| style="text-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 and update function of the source code align: left;"| '''(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 fromled light''' | style="text-align: left;"| '''Google Drive, there is no such problem because the source code of u-boot cached)OK''', otherwise the changes made will be restored, the method is as follows:</p><p>Set the IGNORE_UPDATES variable in <span class|-| style="mark">userpatches/configtext-default.conf</span> to &quotalign: left;yes&quot;</p><p>test@test:~/orangepi-build$ "| '''vim userpatches/config-default.confFAN fan interface'''</p><p>IGNORE_UPDATES| style=&quot"text-align: left;"| '''yesOK'''&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="listtext-style-typealign: lower-alphaleft;"><li><p>Upload the compiled u-boot deb package to the linux system of &gt; the development board</p><p>test@test:~/orangepi-build$ | '''cd''' '''output/debs/uAX200-bootWIFI'''</p><p>test@test| style="text-align:~/orangepi_build/output/debs/u-boot$ left;"| '''scpOK''' |-| style="text-align: left;"| '''\AX200-WIFI'''</p><p>'''linux| style="text-u-boot-legacy-orangepi5plus_1.0.0_arm64.debalign: left;"| ''' OK'''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| style="text-align:~# left;"| '''apteMMC extension interface''' | style="text-align: left;"| '''purge''' OK'''|} <span id="the-y linuxfirst-ustart-bootto-orangepi5plusexpand-legacy'''</prootfs"></lispan><li><p>Install the new u-boot deb package just uploaded</p>== The first start to expand rootfs == <p>root@orangepi:~# '''dpkg ol style="list-i''' '''linuxstyle-u-boot-legacy-orangepi5plus_1.0.0_arm64.deb'''</p></litype: decimal;"><li><p>Then run When the OpenWRT system is started for the first time, the nand-sata-install script</p><p>root@orangepi:~# '''nandresize-sata-installrootfs.sh'''script will be executed to expand the rootfs, and it will automatically restart after the expansion is completed</p></li><li><p>Then select After logging in to the system, you can use the '''<span class="mark">5 Install/Update the bootloader on SD/eMM</span>df -h''' command to update view the size of rootfs. If it is consistent with the u-boot in actual capacity of the storage device (TF card , eMMC or '''<span class="mark">7 Install/Update NVME SSD), it means that the bootloader on SPI Flash</span>''' to update the u-boot in the SPI Flashautomatic expansion is running correctly</p><p>[[Fileroot@OpenWrt:./images/media/image630.png|317x154px]]~# df -h</p></li><li><p>After pressing the Enter key, a Warning will pop up firstFilesystem Size Used Available Use% Mounted on</p><p>[[File:.'''/imagesdev/media/image631root 14.8G 14.7G 91.png|314x170px]]<6M 99% /p></li><li><p>Press the Enter key again to start updating u-boot, and the &gt; following information will be displayed after the update is &gt; completed'''</p><p>[[File:tmpfs 495.5M 6./images/media/image6321M 489.png|223x125px]]<4M 1% /p></li><li><p>Then you can restart the development board to test whether the &gt; modification of u-boot takes effecttmp</p></li></ol></li><li><p>Other useful information<tmpfs 512.0K 0 512.0K 0% /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 isdev</p><p>'''orangepi-build/u-bootdev/v2017root 14.09-rk35888G 14.7G 91.6M 99% /configsopt/orangepi_5_plus_defconfig'''docker</p></li><li><p>u-boot 2017.09 source code, the dts file used by the development &gt; board is</pol> <p>'''orangepispan id="how-build/uto-boot/v2017.09log-rk3588/arch/arm/dts/rk3588in-orangepito-5the-plus.dts'''</psystem"></li></olspan></li></ol>== How to log in to the system ==
<span id="compilelogin-thevia-linuxserial-kernelport"></span>== Compile the linux kernel = Login via serial port ===
<ol style="list-style-type: decimal;">
<li><p>Run First, to use the build.sh scriptdebugging serial port, remember please refer to the chapter on how to add sudo permission</p><p>test@test:~/orangepi-build$ '''sudo ./build.sh'''use the debugging serial port</p></li><li><p>Select The OpenWrt system will automatically log in as the '''<span class="mark">Kernel package</span>root'''user by default, then press Enterand the display interface is as follows</p>
<div class="figure">
[[File:./images/media/image633image556.png|575x116px576x290px|选区_2409D229F96-887B-4c6b-8E6E-681C9994DFA0]] </div></li></ol>
</divspan id="log-in-to-the-system-via-ssh"></lispan><li><p>Then select === Log in to the model of the development board</p><div classsystem via SSH ==="figure">
[[File:'''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./images/media/image629.png|576x289px|6]]'''
</div></liol style="list-style-type: decimal;"><li><p>Then it will prompt whether First connect the LAN port of the board to display the kernel configuration interface. If you do not need to modify network port of the kernel configurationcomputer with a network cable, select so that the first one. If you need to modify network port of the kernel configuration, select the second one.</p><p>[[File:./images/media/image634.png|576x87px]]computer can obtain an IP address through DHCP</p></li><li><p>If you choose The LAN port IP of the default board is set to display '''<span class="mark">192.168.2.1</span>''', so the kernel configuration menu (computer can obtain the second option) in step 4), the kernel configuration interface opened by IP address starting with '''<span class="mark">make menuconfig192.168.2</span>''' will pop up. At at this time</p></li><li><p>If the computer is installed with an Ubuntu system, you can directly modify execute the following command to log in to the kernel configurationsystem through SSH. By default, save and exit after modificationyou can log in directly without a password</p><p>test@ubuntu:~$ '''ssh root@192. Yes, after exiting168.2.1'''</p></li><li><p>After successfully logging in to the system, the kernel source code will be compileddisplay is as shown in the figure below</p><p>[[File:./images/media/image635image557.png|575x400px553x330px]]</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>
<!span id="log-in- to-the-><ol style="list-styleluci-type: lowermanagement-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="markinterface">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>''' Log in to the &gt; '''<span classLuCI management interface =="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 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="list-style-type: lower-alpha;"><li><p>The version of the linux kernel source code</p><p>[ o.k. ] Compiling current kernel [ '''5.10.110''' ]</p></li><li><p>The version of Please note that the OpenWRT system configures the network port near the crossType-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 C power port as a WAN port 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 network port near the kernel generated HDMI port as a LAN port by &gt; compiling</p><p>[ odefault.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''' ]<:media/p></li><li><p>The time used for compilation</p><p>[ o.kimage558. png|357x139px] 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_CONFIGURE=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@test:~/orangepi_build/output/debs$ # 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 '''mkdir test192.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
test@test:~/orangepi_build/output/debs$ '''cp''' '''\'''<div class="figure">
'''linux[[File:media/image559.png|552x135px|2023-image04-legacy21 14-rockchip41-rk3588_1.0.0_arm64.deb test/'''42 的屏幕截图]]
test@test</div><ol start="4" style="list-style-type:~/orangepi_build/output/debs$ decimal;"><li><p>'''The OpenWrt system does not set a password by default''', so just click the '''cd test<span class="mark">login</span>'''button. After successful login, the interface is displayed as shown in the figure below</p><p>[[File:media/image560.png|552x295px]]</p></li></ol>
test@test:~/orangepi_build/output<span id="log-in-to-the-terminal-through-the-luci-management-interface"></debs/test$ '''dpkg -x''' '''\'''span>=== Log in to the terminal through the LuCI management interface ===
'''linuxPlease note that the OpenWRT system configures the network port near the Type-image-legacy-rockchip-rk3588_1.0.0_arm64.deb C power port as a WAN port by default, and the network port near the HDMI port as a LAN port by default.'''
test@test[[File:~media/orangepi_build/output/debs/test$ '''ls'''image558.png|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 '''boot etc lib192.168.2.1''' linux-image-legacy-rockchip-rk3588_1, so the computer can obtain the IP address starting with '''192.0168.0_arm64.deb 2''' at this time# Enter the IP address '''usr192.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><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>
<!-- --><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 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 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[[File:~/orangepi-build$ '''vim userpatches/config-default.conf'''</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</p><ol style="list-style-type: lower-alpha;"><li><p>Upload the deb package of the compiled linux kernel to the linux &gt; system of the development board</p><p>test@test:~/orangepi-build$ '''cd''' '''output/debs'''</p><p>test@test:~/orangepi-build/output/debs$ '''scp''' '''\'''<media/p><p>'''linux-image-legacy-rockchip-rk3588_1.0.0_arm64.deb root@192.168.1image559.xxx:/root'''</p></li><li><p>Then log in to the development board and uninstall the deb &gt; package of the installed linux kernel</p><p>root@orangepi:~# '''apt purge png|552x135px|2023-y''' '''linux04-image21 14-legacy41-rockchip-rk3588'''</p></li><li><p>Install the deb package of the new linux kernel just uploaded</p><p>root@orangepi:~# '''dpkg -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 &gt; kernel-related modifications have taken effect</p><p>root@orangepi:~# '''reboot'''</p></li></ol></li></ol>42 的屏幕截图]]
<!-- --/div><ol start="104" style="list-style-type: decimal;"><li><p>Other useful information</p><ol style="list-style-type: lower-alpha;"><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 Select &gtquot; the kernel configuration file used by the development board</p><p>'''orangepi-build/external/config/kernel/linux-rockchip-rk3588-legacy.configTerminal'''</p></li><li><p>The location of &quot; in the dts file used by the development board is</p><p>&quot;'''orangepi-build/kernel/orange-pi-5.10-rk3588/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dtsService'''</p></li></ol>&quot; column of the navigation bar and click to enter</li></ol>
<span id="compile-rootfs"><[[File:media/span>== Compile rootfs ==image561.png|576x227px]]
<ol start="5" style="list-style-type: decimal;"><li><p>Run At this time, the build.sh script, remember to add sudo permissionterminal interface is as shown in the figure below</p><p>test@test[[File:~/orangepi-build$ '''sudo .media/buildimage562.sh'''png|576x407px]]</p></li><li><p>Select '''Enter the user name root to log in<span class="mark"/p>Rootfs and all deb packages<p>[[File:media/span>''', then press Enterimage563.png|575x334px]]</p></li></ol>
<div classspan id="figureuse-ip-address-port-number-to-log-in-to-the-terminal"></span>=== Use IP address + port number to log in to the terminal ===
[[File:'''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./images/media/image637.png|576x119px|选区_241]]'''
</div><ol start="3" style="list-style-type[[File: decimal;"><li><p>Then select the model of the development board<media/p><div class="figure">image558.png|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 '''192.168.2.1''', so the computer can obtain the IP address starting with '''192.168.2''' at this time# Then enter [[Filehttp:./images/media192.168.2.1:7681/image629'''192.png|576x289px|6]168.2.1:7681''']in the browser to log in to the OpenWRT terminal
</div></li>
<li><p>Then select the type of rootfs (mainly maintain '''<span class="mark">bullseye/focal/jammy</span>''' at present)</p>
<div class="figure">
[[File:./images/media/image638image564.png|575x180px553x296px|72023-04-21 14-54-26 的屏幕截图]]
</div></li><li><p>Then select the type of image</p><ol stylespan id="listhow-styleto-type: lowermodify-alpha;"><li><p>'''Image with console interface (server)''' Indicates the image -ip-address-of &gt; -the server version, which is relatively small</p-lan-port-through-the-command-line"></lispan><li><p>'''Image with desktop environment''' Indicates a mirror image with &gt; a desktop, which is relatively large</p><div class="figure">= How to modify the IP address of the LAN port through the command line ==
[[File:# 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 '''/imagesetc/mediaconfig/image639network''', you can see that the value of '''network.png|576x75px|选区_245]]lan.ipaddr''' is '''192.168.2.1'''
</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 root@OpenWrt:~# '''(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)uci show network'''</p><div class="figure">
[[File:./images/media/image640.png|576x78px|选区_397]].
</div></li><li><p>If you are compiling the image of the desktop version, you need to select the type of desktop environmentnetwork. 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 classlan="figure">interface
[[File:network./images/media/image641lan.png|575x99px|Selection_001]]device='br-lan'
</div><p>[[File:network./images/media/image642lan.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</p><p>[ o.k. ] local not found [ Creating new rootfs cache for '''jammy''']</p></li><li><p>The storage path of 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 &gt; compilation</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-alpha;"><li><p>'''jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4''' is &gt; the rootfs compressed package, the meaning of each field of &gt; the name is</p><ol styleproto="list-style-type: lower-alpha;"><li><p>'static''jammy''' indicates the type of linux distribution of rootfs</p></li><li><p>'''xfce''' means rootfs is the type of desktop version, if it &gt; 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 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>'''jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.list''' &gt; lists the package names of all packages installed by rootfs</p><p>test@test:~/orangepi-build$ '''ls external/cache/rootfs/'''</p><p>'''jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4'''</p><p>jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.current</p><p>jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4.list</p></li></ol></li><li><p>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>
<span id="compile-linux-image"></span>== Compile linux image ='''network.lan.ipaddr='192.168.2.1''''
<ol stylenetwork.lan.netmask="list-style-type: decimal;"><li><p>Run the build'255.sh script, remember to add sudo permission</p><p>test@test:~/orangepi-build$ '''sudo 255./build255.sh'''</p></li><li><p>Select '''<span class="mark">Full OS image for flashing</span>''0', then press Enter</p></li></ol>
<div classnetwork.lan.ip6assign="figure">'60'
[[File:./images/media/image644.png|576x128px|选区_242]]
</div>
<ol start="3" style="list-style-type: decimal;">
<li><p>Then select enter the model of following command to modify the development boarditem '''network.lan.ipaddr'''</pli><div class="figure"/ol>
[[Fileroot@OpenWrt:~# '''uci set network./images/media/image629lan.png|576x289px|6]]ipaddr='192.168.100.1''''
</div></liol start="4" style="list-style-type: decimal;"><li><p>Then select enter the following command to complete the submission, that is, write to the type of rootfs (mainly maintain '''bullseye/focal/jammy''' at present)configuration file</pli><div class="figure"/ol>
[[Fileroot@OpenWrt:./images/media/image638.png|575x180px|7]]~# '''uci commit'''
</div></li><li><p>Then select If the type of image</p><ol style="list-style-type: lower-alpha;"><li><p>'''Image IP address in red font is consistent with console interface (server)''' Indicates the image of &gt; one to be set, it means that the server version, which is relatively small</p></li><li><p>'''Image with desktop environment''' Indicates a image with a &gt; desktop, which modification is relatively large</p><div class="figure">successful
[[Fileroot@OpenWrt:.~# '''cat /imagesetc/mediaconfig/image639.png|576x75px|选区_245]]network'''
</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 '''(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/image640.png|569x77px|选区_397]]config interface 'lan'
</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">option device 'br-lan'
[[File:./images/media/image641.png|575x99px|Selection_001]]option proto 'static'
</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-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><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-type: lower-alpha;"><li><p>The storage path of the compiled image</p><p>[ o.k. ] Done building [ ''option netmask 'output/images/orangepi5plus_1.0255.0_debian_bullseye_linux5255.10.110_xfce_desktop/orangepi5plus_1255.0.0_debian_bullseye_linux5.10.110_xfce_desktop.img''' ]</p></li><li><p>Compilation time</p></li></ol></li></ol>
option ip6assign '''[ o.k. ] Runtime [''' '''19 min ]''60'
<ol style="list-style-type: lower-alpha;"><li><p>Repeat the command to compile the image, and use the following &gt; command to start compiling the image directly without selecting &gt; through the graphical interface</p><p>[ o.k. ] Repeat Build Options [ '''sudo option ipaddr '192.168./build100.sh BOARD=orangepi5plus''' '''BRANCH=legacy''' '''BUILD_OPT=image RELEASE=bullseye''' ''1'BUILD_MINIMAL=no BUILD_DESKTOP=no KERNEL_CONFIGURE=yes''' ]</p></li></ol>
<span id="linux-development-manual"></span>= Linux Development Manual =...
<span idol start="the5" style="list-method-of-compilingstyle-type: decimal;"><li>Restart the network through ubus, please refer to the-kernel-source-code-separately-in-official document for the-linux-system-usage instructions of-the-development-board"ubus</li></spanol>== The method of compiling the kernel source code separately in the linux system of the development board ==
<ol style="list-style-typeroot@OpenWrt: 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-orangepiubus call network restart'''</p></li></ol>
'''If you have problems downloading <ol start="6" style="list-style-type: decimal;"><li><p>At this point, enter the code from github, command and you can go to see that the official tool IP 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 itLAN port is '''192.168.100.1'''</p><p>root@OpenWrt:~# '''ifconfig br-lan'''</p><p>br-lan Link encap:Ethernet HWaddr FE:55:13:A3:EF:E7</p><p>inet addr:'''192.168.100.1'''Bcast:192.168.100.255 Mask:255.255.255.0</p><p>inet6 addr: fd60:c4cd:1033::1/60 Scope:Global</p><p>UP BROADCAST MULTICAST MTU:1500 Metric:1</p><p>RX packets:0 errors:0 dropped:0 overruns:0 frame:0</p><p>TX packets:3 errors:0 dropped:0 overruns:0 carrier:0</p><p>collisions:0 txqueuelen:1000</p><p>RX bytes:0 (0.0 B) TX bytes:370 (370.0 B)</p></li></ol>
[[File:.<span id="how-to-modify-the-root-password"></images/media/image645.png|223x86px]] [[File:./images/media/image646.png|305x87px]]span>== How to modify the root password ==
'''The <span id="modify-via-command to decompress the compressed kernel source code package is:'''-line"></span>=== Modify via command line ===
orangepi@orangepi:~$ '''tar zxf orange-pi-5# First enter passwd root on the command line of the system, and the following prompt message will appear.10-rk3588.tar.gz'''At this time, you can enter the password you want to set, and press the Enter key to confirm
orangepiroot@orangepiOpenWrt:~$ /# '''mv''' '''orange-pi-5.10-rk3588''' '''linux-orangepipasswd root'''
'''After decompression, please execute the following command to synchronize the source code with github to ensure that the source code is in the latest stateEnter new UNIX password:''' orangepi@orangepi:~$ '''cd''' '''linux-orangepi''' orangepi@orangepi:~/linux-orangepi$ '''git pull'''
<ol start="2" style="list-style-type: decimal;">
<li><p>Then configure you will be prompted to re-enter the password. At this time, enter the default kernel configuration</p><p>orangepi@orangepi:~$ '''cd linux-orangepi'''</p><p>orangepi@orangepi:~/linux-orangepi$ '''make rockchip_linux_defconfig'''</p>password again to confirm and press Enter</li></ol>
'''The path of''' '''<span class="mark">rockchip_linux_defconfig</span>''' '''in the kernel source code is''' '''arch/arm64/configs/Retype password:'''
<ol start="3" style="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>The display of successful modification is as follows</li></ol>
'''The installation path of the kernel module is:/lib/modulespasswd: password for root changed by root'''
'''After executing <span id="modify-through-the sudo make modules_install command, you can see that there will be an additional kernel module folder under -luci-management-interface"></lib/modules/:'''span>=== Modify through the LuCI management interface ===
orangepi@orangepi5plus<ol style="list-style-type:~$ decimal;"><li><p>First refer to the login LuCI management interface to enter the OpenWRT management interface</p></li><li><p>Then follow the steps below to change the password</p><ol style="list-style-type: 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;''ls 'Management &gt; Rights'''&quot; and click</p><p>[[File:media/image565.png|552x256px]]</p></li><li><p>Select the &quot;'''Router Password'''&quot; option on the Tab page</p><p>[[File:media/image566.png|552x211px]]</p></libli></modulesol></li><li><p>Modify and save the router password</p><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 input characters)</p><p>b. Click &quot;'''Save'''&quot; to save the newly modified password</p><p>[[File:media/image567.png|553x230px]]</p></li></ol>
'''5Note: In the &quot;Password&quot; and &quot;Confirm Password&quot; dialog boxes, the passwords entered twice must be consistent.10.110+''' 5.10.110-rockchip-rk3588
<ol start="54" style="list-style-type: decimal;"><li><p>Then install After the kernel image and uInitrdpassword is changed successfully, a pop-up box will pop up saying &quot;'''The system password has been changed successfully'''&quot;. At this time, a password is required to log in to OpenWRT</p><p>orangepi@orangepi[[File:~media/linux-orangepi$ '''sudo make install'''image568.png|563x222px]]</p></li></ol>
'''The installation path of the kernel image and uInitrd is:<span id="usb-interface-test-1"></boot/'''span>== USB interface test ==
'''After executing <span id="mount-the sudo make install -usb-storage-device-under-the-command, you can see that there will be one more kernel file -line"></span>=== Mount the USB storage device under /boot/:'''the command line ===
orangepi@orangepi5plus:~/orange-pi-5.10-rk3588$ '''ls /boot/vmlinuz*'''# 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 /bootproc/vmlinuz-5.10.110+''' /boot/vmlinuz-5.10.110-rockchip-rk3588<br /><br />'''The file /boot/Image is actually loaded when the system starts, and Image is a copy of the vmlinuz filepartitions | grep &quot;sd*&quot;'''
<ol start="6" style="list-style-type: decimal;"><li><p>Then install the dtb file into '''/boot/dtb'''</p><p>orangepi@orangepi:~/linux-orangepi$ '''sudo make dtbs_install INSTALL_DTBS_PATH=/boot/dtb/'''</p></li><li><p>Then restart 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>major minor #blocks name
<span id="openwrt-system-instructions"></span>= OpenWRT system instructions =8 0 15126528 '''sda'''
<ol start="3" style="list-style-type: decimal;"><li>Use the mount command to mount the U disk to <span class="mark">/mnt</span>, and then you can view the files in the U disk</li></ol> root@OpenWrt:~# '''mount /dev/sda /mnt/''' root@OpenWrt:~# '''ls /mnt/''' test.txt <ol start="4" style="list-style-type: decimal;"><li>After mounting, you can view the capacity usage and mount point of the U disk through the <span class="mark">df -h</span> command</li></ol> root@OpenWrt:~# '''df -h | grep &quot;sd&quot;''' /dev/sda 14.4G 187.2M 14.2G 1% /mnt <span id="openwrtmount-versionthe-usb-storage-device-on-the-luci-management-interface"></span>== OpenWRT version = 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:media/image569.png|553x256px]]</p></li><li><p>Then follow the steps below to add a mount point</p><ol style="list-style-type: lower-alpha;"><li><p>Find &quot;'''Mount Point'''&quot; at the bottom of the mount point &gt; '''global setting interface'''</p></li><li><p>Under the mount point, select the &quot;Add&quot; button and click Enter</p></li></ol></li></ol> [[File:media/image570.png|553x163px]] <ol start="3" style="list-style-type: lower-alpha;"><li><p>Then the following pop-up interface will pop up</p><p>[[File:media/image571.png|553x288px]]</p></li><li><p>Then you can start to mount the storage device</p><p>a) Check &quot;'''Enabled'''&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;'''Custom'''&quot; in the mount point column, and fill in the target directory to be mounted. Here, take the '''<span class="mark">/mnt</span>''' directory as an example, and press '''Enter''' to confirm</p><p>d) Then click the &quot;'''Save'''&quot; button in the lower right corner</p></li></ol> [[File:media/image572.png|553x214px]] <ol start="5" style="list-style-type: decimal;"><li>Then you will return to the mount point global settings page, click &quot;'''Save and Apply'''&quot; in the lower left corner of the page to make the mount point take effect</li></ol> [[File:media/image573.png|535x325px]] <ol start="6" style="list-style-type: decimal;"><li>After saving, you can see the &quot;'''mounted file system'''&quot;, the storage device has been mounted successfully</li></ol> [[File:media/image574.png|553x201px]] <span id="how-to-use-e-key-pcie-wireless-network-card"></span>== How to use E-Key PCIe wireless network card == # The PCIe wireless network card models currently compatible with the OpenWRT image are as follows:
{| class="wikitable"
|-
| style="text-align: left;"'''serial number'''| '''OpenWRTmodel''' | '''versionPhysical picture'''| style="text-align: left;"| '''kernel versionSupported OS'''
|-
| style="text-align: left;"| '''v22.03.41'''| style="text-align: left;"| '''Linux5.10.110AX200'''|}
<span id="openwrt-adaptation"></span>== OpenWRT Adaptation =='''(PCIE+ USB接口)'''
{| class="wikitable"|-| 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-align: left;"| '''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[[File: left;"| '''OK'''|-| style="text-align: left;"| '''2med%20ia/image230.5G PCIe network port X2'''| style="text-align: left;"| '''OK'''|-| style="text-align: left;"| '''Network port status light'''png]]| style="text-align: left;"| '''OKDebian'''|-| 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'''|}
<span id="the-first-start-to-expand-rootfs"></span>== The first start to expand rootfs =='''Ubuntu'''
<ol 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><p>root@OpenWrt:~# df -h</p><p>Filesystem Size Used Available Use% Mounted on</p><p>'''/dev/root 14.8G 14.7G 91.6M 99% /OpenWRT'''</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-to-log-in-to-the-system"></span>== How to log in to the system =='''OPi OS Arch'''
<span id="login|-via-serial-port"></span>=== Login via serial port ===| '''2'''| '''AX210'''
<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(PCIE+ USB接口)''' user by default, and the display interface is as follows</p><div class="figure">
| [[File:./images/media/image647i%20mage231.png|576x290px|9D229F96-887B-4c6b-8E6E-681C9994DFA0]]{wi dth=“1.06875in” h eight=“1.45in”}| '''Debian'''
</div></li></ol>'''Ubuntu'''
<span id="log-in-to-the-system-via-ssh"></span>=== Log in to the system via SSH ==='''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 a LAN port by default.OPi OS Arch'''
<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>3''' 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><p>test@ubuntu:~$ | '''ssh root@192.168.2.1R TL8852BE'''</p></li><li><p>After successfully logging in to the system, the display is as shown in the figure below</p><p>[[File:./images/media/image648.png|553x330px]]</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>
<span id="log-in-to-the-luci-management-interface"></span>=== Log in to the LuCI management interface ==='''(PCIE+ USB接口)'''
| [[File:med%20ia/image232.png]]| '''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.Debian'''
[[File:./images/media/image649.png|357x139px]]'''Ubuntu'''
# 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.1Not Supported OpenWRT''', 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">'''Android12'''
[[File:./images/media/image650.png|552x135px|2023-04-21 14-41-42 的屏幕截图]]'''OPi OS Arch'''
</div><ol start="4" style="list-style-type: decimal;"><li><p>'''The OpenWrt system does not set a password by defaultOPi OS Droid''', 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:./images/media/image651.png|552x295px]]</p></li></ol>
<span id="log-in-to-the-terminal-through-the-luci-management-interface"></span>=== Log in to the terminal through the LuCI management interface ===|}
'''Please note that the OpenWRT system configures the network port near the Type<span id="how-C power port as a WAN port by default, and the network port near the HDMI port as a LAN port by default.'''to-create-wifi-hotspot"></span>=== How to create WIFI hotspot ===
[[File:'''Note that AX200 and AX210 currently only support hotspots in the 2./images/media/image6494G frequency band.png|357x139px]]In the 5G frequency band mode, there will be an error that the modified configuration of the wireless network card cannot be applied.'''
# <ol style="list-style-type: decimal;"><li><p>First connect insert the PCIe wireless network card into the LAN M.2 E-KEY port of the development board , and then connect the Type-C power supply to power up the network port of development board.</p><p>[[File:media/image575.png|347x149px]]</p></li><li><p>After the computer with a network cablesystem startup is complete, so that click '''<span class="mark">Network -&gt; Wireless</span>''' to enter the network port of the computer can obtain an IP address through DHCPwireless WiFi configuration interface.</p><p>[[File:media/image576.png|553x155px]]</p></li># <li><p>The LAN port IP default wireless configuration of the default board OpenWRT system is set to '''192Master''' mode.168Here, for the convenience of the next operation, we will remove the default wireless connection.2</p><p>[[File:media/image577.1png|517x162px]]</p></li><li><p>Then click ''', so <span class="mark">Save</span>''' in the lower right corner of the page to make the computer can obtain configuration take effect.</p><p>[[File:media/image578.png|553x179px]]</p></li><li><p>Then click the IP address starting with '''192<span class="mark">Add</span>''' button on the right.168</p><p>[[File:media/image579.2png|553x138px]]</p></li><li><p>In the pop-up tab page ''' at this time# Enter the IP address <span class="mark">Device Configuration</span>'''192, we set the parameters as shown in the figure below.168</p><p>[[File:media/image580.2.1png|552x268px]]</p></li><li><p>Then in '''<span class="mark">Interface Configuration -&gt; General Settings</span>''' in , set the browser on mode to '''<span class="mark">Access Point AP</span>''', set the computer to log in '''<span class="mark">ESSID</span>''' (wireless network name) to '''<span class="mark">OpenWrt</span>''', and specify the LuCI interface network as '''<div span class="figuremark">lan</span>'''</p<p>[[File:./images/media/image650image581.png|552x135px|2023-04-21 14-41-42 的屏幕截图553x234px]] </divp></li><ol startli><p>Then in '''<span class="4mark" style="list>Interface Configuration -style&gt; Wireless Security</span>''', select ''' WPA2-typePSK''' as the encryption algorithm; set the key (wireless password) to '''password'''</p><p>[[File: decimal;"media/image582.png|534x224px]]</p></li><li>Select &quot;<p>After the above settings are completed, click '''Terminal<span class="mark">Save</span>'''&quot; in the &quot;lower right corner of the page, and then exit the tab page</p><p>[[File:media/image583.png|553x303px]]</p></li><li><p>Then click '''Service<span class="mark">Save and Apply</span>'''&quot; column in the lower right corner of the navigation bar page and click wait for the configuration to be applied.</p><p>[[File:media/image584.png|553x216px]]</p></li><li><p>The display interface of successfully creating a hotspot is shown in the figure below</p><p>[[File:media/image585.png|515x266px]]</p></li><li><p>Then use the mobile phone or computer to search for the WiFi corresponding to the SSID to enterconnect. After the connection is successful, as shown in the figure below</p><p>[[File:media/image586.png|247x156px]]</p></li></ol>
[[File:.<span id="how-to-connect-to-wifi-hotspot"></images/media/image652.png|576x227px]]span>=== How to connect to WIFI hotspot ===
<ol start="5" 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:media/image575.png|347x149px]]</p></li><li><p>After the system startup is complete, click '''<span class="mark">Network -&gt; Wireless</span>''' to enter the configuration wireless WiFi interface.</p><p>[[File:media/image576.png|553x155px]]</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:media/image577.png|520x162px]]</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:media/image578.png|520x179px]]</p></li><li><p>Then click the '''<span class="mark">Scan</span>''' button to scan the surrounding WiFi hotspots.</p><p>[[File:media/image587.png|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>''' button on the terminal right side of the WiFi hotspot you want to connect to connect to the WiFi hotspot.</p><p>[[File:media/image588.png|553x89px]]</p></li><li><p>Then an interface is 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:media/image589.png|552x135px]]</imagesp></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:media/image653image590.png|576x407px553x237px]]</p></li><li><p>Enter Finally, you will return to the main interface of wireless configuration, click '''<span class="mark">Save and Apply</span>''' and wait for the user name root configuration to log inbe applied.</p><p>[[File:media/image591.png|544x252px]]</imagesp></li><li><p>After successfully connecting to the WiFi hotspot, the interface is displayed as shown in the figure below.</p><p>[[File:media/image654image592.png|575x334px547x232px]]</p></li></ol>
<span id="useinstalling-ippackages-addressvia-portthe-numbercommand-to-log-in-to-the-terminalline"></span>=== Use IP address + port number to log in to Installing packages via the terminal =command line ==
'''Please note that <span id="install-via-opkg-in-the OpenWRT system configures the network port near the Type-C power port as a WAN port by default, and the network port near terminal"></span>=== Install via opkg in the HDMI port as a LAN port by default.'''terminal ===
[[File:./images/media/image649.png|357x139px]]# Update the list of available packages
root@OpenWrt:/# 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# Then enter '''192.168.2.1:7681opkg update''' in the browser to log in to the OpenWRT terminal
<div classol start="figure2"style="list-style-type: decimal;"><li>Get the software list</li></ol>
[[Fileroot@OpenWrt:./images/media/image655.png|553x296px|2023-04-21 14-54-26 的屏幕截图]]# '''opkg list'''
</div><span idol start="3" style="howlist-to-modifystyle-type: decimal;"><li>Install the-ip-address-of-the-lan-port-through-the-command-line"specified package</li></spanol>== How to modify the IP address of the LAN port through the command line ==
# In the root@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.1opkg install &lt;package name&gt;'''
root@OpenWrt<ol start="4" style="list-style-type:~# '''uci show network'''decimal;"><li>Check the installed software</li></ol>
...root@OpenWrt:/# '''opkg list-installed'''
network.lan<ol start=interface"5" style="list-style-type: decimal;"><li>Uninstall the software</li></ol>
network.lan.device=root@OpenWrt:/# '''opkg remove &lt;package name&gt;''br-lan'
network.lan.proto<span id="openwrt-management-interface-installation-software-package"></span>== OpenWRT management interface installation software package =='static'
'''networkIf you need to add new software packages, you can install them through the OpenWRT management interface.lan.ipaddr='192.168.2.1''''
network.lan.netmask<span id="view-the-list-of-available-software-packages-in-the-system"></span>=== View the list of available software packages in the system ==='255.255.255.0'
network<ol style="list-style-type: decimal;"><li><p>First enter the package management page</p><p>a.lanFind the &quot;'''System'''&quot; option in the navigation bar and click to enter</p><p>b.ip6assign=In the vertical column options below the system, select &quot;'''software package''60'&quot; and click to enter</p></li></ol>
[[File:media/image593.png|552x227px]]
<ol start="32" style="list-style-type: decimal;"><li><p>Then enter the following command main page of the software package will appear, as shown in the figure below, to modify obtain the list of available software</p><p>a. In the &quot;'''Operation'''&quot; option of the item software package, click &quot;'''networkUpdate List'''&quot; to get the list of available software packages</p><p>b.lan.ipaddrOn 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:media/image594.png|553x232px]]</p></li></ol>
root@OpenWrt:~# '''uci set network.lan.ipaddr<span id="example-of-installing-software-packages"></span>=== Example of installing software packages ==='192.168.100.1''''
<ol startstyle="4list-style-type: decimal;" ><li><p>Take the installation package “'''luci-app-acl'''” as an example</p><ol style="list-style-type: decimallower-alpha;"><li><p>In the OpenWRT software package management interface, click 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:media/image595.png|552x259px]]</p></li><li><p>Then enter the following command pop-up window will appear, click &gt; '''&quot;Install&quot;'''</p><p>[[File:media/image596.png|348x430px]]</p></li><li><p>Then wait for the installation to complete </p><p>[[File:media/image597.png|576x96px]]</p></li><li><p>The display after the submissioninstallation is complete is as follows</p><p>[[File:media/image598.png|506x289px]]</p></li></ol></li><li><p>Check whether the software package is installed successfully</p><p>a. In the OpenWRT software package management interface, that isclick the filter dialog box and enter”'''luci-app-acl'''”</p><p>b. 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, write to and the configuration fileupdate status will be '''&quot;installed&quot;'''</p><p>[[File:media/image599.png|576x196px]]</p></li></ol>
root@OpenWrt:~# '''uci commit'''<span id="remove-package-example"></span>=== Remove package example ===
If <ol style="list-style-type: decimal;"><li><p>Take the IP address in red font is consistent with 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, 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 one right to remove the corresponding &gt; software package</p><p>[[File:media/image600.png|461x164px]]</p></li><li><p>Then the following pop-up window will be setdisplayed, it means that click &gt; '''&quot;Remove&quot;'''</p><p>[[File:media/image601.png|415x129px]]</p></li><li><p>After the modification removal is successful, the display interface is as &gt; follows</p><p>[[File:media/image602.png|414x88px]]</p></li></ol></li><li><p>Check whether the software package is removed successfully</p><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-acl'''” package has been removed successfully</p><p>[[File:media/image603.png|493x187px]]</p></li></ol>
root@OpenWrt:~# '''cat /etc/config<span id="using-samba-network-shares"></network'''span>== Using Samba Network Shares ==
'''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.'''
config <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:media/image604.png|553x205px]]</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 '''&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:media/image605.png|500x222px]]</p></li></ol></li><li><p>Set the shared directory of the network share</p><p>a. In the '''&quot;Shared Directory&quot;''' of the '''&quot;General Settings&quot;''' 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;''lan'to save the configuration</p><div class="figure">
option device 'br-lan'[[File:media/image606.png|575x217px|4]]
option proto </div></li><li><p>window10 starts network discovery and sharing</p><p>'static''Note: To access Samba under the Windows 10 system, you need to confirm whether Windows 10 has enabled network discovery and sharing for sharing. If it is not enabled, perform the following settings first.'''</p></li></ol>
option netmask '255.255.255<!-- --><ol style="list-style-type: lower-alpha;"><li><p>Enable Samba v1/v2 access</p><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>
option ip6assign '60'[[File:media/image607.png|575x316px]]
<ol start="2" style="list-style-type: lower-alpha;"><li><p>Turn on the network discovery of Windows 10</p><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 '''option ipaddr &quot;Enable Network Discovery&quot;'192.168.100.1''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></ol>
[[File:media/image608...png|575x323px]]
<ol start="5" style="list-style-type: decimal;">
<li>Restart After the network through ubussetting is completed, please refer enter \\OpenWrt in the address bar of the resource manager to access the official document for shared directory, the usage instructions of ubususer name is root, and the password is the password set by the development board host</li></ol>
root@OpenWrt[[File:~# '''ubus call network restart'''media/image609.png|575x323px]]
<ol startspan id="6" style="listzerotier-style-type: decimal;instructions"><li><p>At this point, enter the command and you can see that the IP of the LAN port is '''192.168.100.1'''</pspan><p>root@OpenWrt:~# '''ifconfig br-lan'''</p><p>br-lan Link encap:Ethernet HWaddr FE:55:13:A3:EF:E7</p><p>inet addr:'''192.168.100.1''' Bcast:192.168.100.255 Mask:255.255.255.0</p><p>inet6 addr: fd60:c4cd:1033::1/60 Scope:Global</p><p>UP BROADCAST MULTICAST MTU:1500 Metric:1</p><p>RX packets:0 errors:0 dropped:0 overruns:0 frame:0</p><p>TX packets:3 errors:0 dropped:0 overruns:0 carrier:0</p><p>collisions:0 txqueuelen:1000</p><p>RX bytes:0 (0.0 B) TX bytes:370 (370.0 B)</p></li></ol>== Zerotier Instructions ==
<span id="how-to-modify'''The OpenWRT system has pre-installed the zerotier client. After creating a virtual LAN on the zerotier official website, the-root-password"></span>== How to modify client can directly join it through the root password ==Network ID. The specific operation is as shown below.'''
<span idol style="modifylist-viastyle-commandtype: 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-line"&gt;Create A Network to create a virtual local area network</p><p>[[File:media/image610.png|575x118px]]</p><p>[[File:media/image611.png|574x166px]]</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:media/image612.png|353x257px]]</p></li><li><p>The following automatically assigns the address Here you can choose the network segment yourself, here is 172.27.*.*</p><p>[[File:media/image613.png|374x233px]]</p></spanli>=== Modify via <li><p>Enter the following command line ===in the OpenWRT terminal to join the virtual LAN created above, '''where 8286ac0e47d53bb5 is the Network ID of the virtual LAN created above'''</p></li></ol>
root@OpenWrt:/# '''zerotier-one -d''' # 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 Start the Enter key to confirmzerotier client
root@OpenWrt:/# '''passwd rootzerotier-cli join 8286ac0e47d53bb5'''#join the network
<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 '''Enter new UNIX password:172.27.214.213'''</li></ol>
<ol start="2" style="list-style-typeroot@OpenWrt: decimal;"><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># '''ifconfig'''
'''Retype password:ztks54inm2'''Link encap:Ethernet HWaddr F6:4E:DE:BF:D8:52
<ol start="3" style="list-style-typeinet addr: decimal;"><li>The display of successful modification is as follows</li></ol>'''172.27.214.213''' Bcast:172.27.255.255 Mask:255.255.0.0
'''passwdinet6 addr: password for root changed by root'''fe80::e82f:d0ff:fe5a:867e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:2800 Metric:1
<span id="modify-through-the-luci-management-interface"></span>=== Modify through the LuCI management interface ===RX packets:18 errors:0 dropped:0 overruns:0 frame:0
<ol style="list-style-typeTX packets: decimal;"><li><p>First refer to the login LuCI management interface to enter the OpenWRT management interface</p></li><li><p>Then follow the steps below to change the password</p><ol style="list-style-type48 errors: 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 &gt; Rights'''&quot; and click</p><p>[[File0 dropped:./images/media/image656.png|552x256px]]</p></li><li><p>Select the &quot;'''Router Password'''&quot; option on the Tab page</p><p>[[File0 overruns:./images/media/image657.png|552x211px]]</p></li></ol></li><li><p>Modify and save the router password</p><ol style="list-style-type0 carrier: lower-alpha;"><li><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 input characters)</p><p>b. Click &quot;'''Save'''&quot; to save the newly modified password</p><p>[[File:./images/media/image658.png|553x230px]]</p></li></ol></li></ol>0
'''Notecollisions: In the &quot;Password&quot; and &quot;Confirm Password&quot; dialog boxes, the passwords entered twice must be consistent.'''0 txqueuelen:1000
<ol start="4" style="list-style-typeRX bytes: decimal;"><li><p>After the password is changed successfully, a pop-up box will pop up saying &quot;'''The system password has been changed successfully'''&quot;1720 (1. At this time, a password is required to log in to OpenWRT</p><p>[[File:./images/media/image6596 KiB) TX byte81 (8.png|563x222px]]</p></li></ol>2 KiB)
<span idol start="usb-interface6" style="list-teststyle-1type: decimal;"><li>Install the zerotier client on another device (Ubuntu18.04 is used as an example here), execute the following command to install, and restart the computer after the installation is complete</spanli></ol>== USB interface test ==
<span id="mounttest@ubuntu:~$ '''curl -the-usb-storage-device-under-the-command-line"><s https://span>=== Mount the USB storage device under the command line ===install.zerotier.com | sudo bash'''
# First insert the U disk into the USB interface of <ol start="7" style="list-style-type: decimal;"><li>After restarting, join the Orange Pi development board# Execute virtual LAN according to the following commandNetwork ID, if and you can also see that the output of sdXip address assigned by zerotier has been obtained. At this time, it means that the U disk is recognized successfullyUbuntu PC and OrangePi R1 Plus LTS are in the same LAN, and the two can communicate freely</li></ol>
roottest@OpenWrtubuntu:~# $ '''cat /proc/partitions | grep &quot;sd*&quot;sudo zerotier-cli join 8286ac0e47d53bb5'''
major minor #blocks nametest@ubuntu:~$ '''ifconfig'''
8 0 15126528 '''sdaztks54inm2''': flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt; mtu 2800
<ol start="3" style="list-style-type: decimal;"><li>Use the mount command to mount the U disk to <span class="mark">/mnt</span>, and then you can view the files in the U disk</li></ol>inet '''172.27.47.214''' netmask 255.255.0.0 broadcast 172.27.255.255
root@OpenWrtinet6 fe80:~# '''mount /dev/sda /mnt/''':5ce1:85ff:fe2b:6918 prefixlen 64 scopeid 0x20&lt;link&gt;
root@OpenWrtether f6:~# '''ls /mnt/'''fd:87:68:12:cf txqueuelen 1000 (ethernet)
testRX packets 0 bytes 0 (0.txt0 B)
<ol start="4" style="list-style-type: decimal;"><li>After mounting, you can view the capacity usage and mount point of the U disk through the <span class="mark">df -h</span> command</li></ol>RX errors 0 dropped 0 overruns 0 frame 0
root@OpenWrt:~# '''df -h | grep &quot;sd&quot;'''TX packets 46 bytes 10006 (10.0 KB)
/dev/sda 14.4G 187.2M 14.2G 1% /mntTX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
<span idol start="mount8" style="list-the-usb-storage-device-onstyle-type: decimal;"><li>Test whether the-luci-management-interface"two terminals can communicate</li></spanol>=== Mount the USB storage device on the LuCI management interface ===
<ol style="list-style-typeroot@OpenWrt: decimal;"><li><p>First connect the U disk (or other storage device) to the development board via USB2/# '''ping 172.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:27./images/media/image66047.png|553x256px]]</p></li><li><p>Then follow the steps below to add a mount point</p><ol style="list-style214 -type: lower-alpha;"><li><p>Find &quot;'''Mount PointI ztks54inm2'''&quot; at the bottom of the mount point &gt; '''global setting interface'''</p></li><li><p>Under the mount point, select the &quot;Add&quot; button and click Enter</p></li></ol></li></ol>
[[File:PING 172.27.47.214 (172.27./images/media/image66147.png|553x163px]]214): 56 data bytes
<ol start="3" style="list-style-type: lower-alpha;"><li><p>Then the following pop-up interface will pop up</p><p>[[File:64 bytes from 172./images/media/image66227.png|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;'''Enabled'''&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;'''Custom'''&quot; in the mount point column, and fill in the target directory to be mounted47. Here, take the '''<span class214: seq=0 ttl=64 time="mark">/mnt</span>''' directory as an example, and press '''Enter''' to confirm</p><p>d) Then click the &quot;'''Save'''&quot; button in the lower right corner</p></li></ol>1.209 ms
[[File64 bytes from 172.27.47.214:seq=1 ttl=64 time=1./images/media/image663.png|553x214px]]136 ms
<ol start64 bytes from 172.27.47.214: seq="5" style2 ttl="list-style-type: decimal;"><li>Then you will return to the mount point global settings page, click &quot;'''Save and Apply'''&quot; in the lower left corner of the page to make the mount point take effect</li></ol>64 time=1.203 ms
[[File64 bytes from 172.27.47.214:seq=3 ttl=64 time=1./images/media/image664.png|535x325px]]235 ms
<ol start="6" style="list-style-type: decimal;"><li>After saving, you can see the &quot;'''mounted file system'''&quot;, the storage device has been mounted successfully</li></ol>^C
[[File:--- 172./images/media/image66527.png|553x201px]]47.214 ping statistics ---
<span id="how-to-use-e-key-pcie-wireless-network-card"></span>== How to use E-Key PCIe wireless network card ==4 packets transmitted, 4 packets received, 0% packet loss
# The PCIe wireless network card models currently compatible with the OpenWRT image are as follows:round-trip min/avg/max = 1.136/1.195/1.235 ms
{| class<ol start="wikitable9"|style="list-| '''serial number'''| '''model'''| '''Physical picture'''| '''Supported OS'''|style-type: decimal;">| '''1'''| '''AX200'''<li>other common commands of zerotier</li></ol>
root@OpenWrt:/# '''(PCIE+ USB接口)zerotier-one -d'''#Start the zerotier client
| ! [[.root@OpenWrt:/images/med%20ia/image310.png|./images/med%20ia/image310.png]]| # '''Debianzerotier-cli status'''#Get address and service status
root@OpenWrt:/# '''Ubuntuzerotier-cli join # Network ID'''#join the network
root@OpenWrt:/# '''OpenWRTzerotier-cli leave # Network ID'''#leave the network
root@OpenWrt:/# '''OPi OS Archzerotier-cli listnetworks'''#list networks
|-| '''2'''| '''AX210'''OPENWRT_DEVICE_REVISION=&quot;v0&quot;
'''(PCIE+ USB接口)'''OPENWRT_RELEASE=&quot;OpenWrt 22.03.4 r20123-38ccc47687&quot;
| [[File:.%20<span id="compilation-method-of-openwrt-source-code"></images/media/i%20mage311.png]]{wi dthspan>=“1.06875in” h eightCompilation method of OpenWRT source code =“1.45in”}| '''Debian'''
'''Ubuntu'''<span id="download-openwrt-source-code"></span>== Download OpenWRT source code ==
'''OpenWRT'''# First execute the following command to download the openwrt-22.03 branch code
test@test:~$ '''OPi OS Archsudo apt update'''
|-| test@test:~$ '''3'''| '''R TL8852BEsudo apt install -y git'''
test@test:~$ '''(PCIE+ USB接口)git clone https://github.com/orangepi-xunlong/openwrt.git -b openwrt-22.03'''
| ! [[./images/med%20ia/image312.png|.<ol start="2" style="list-style-type: decimal;"><li>After the OpenWRT code is downloaded, the following files and folders will be included</imagesli></med%20ia/image312.png]]| '''Debian'''ol>
test@test:~/openwrt$ '''Ubuntuls'''
'''Not Supported OpenWRT'''BSDmakefile Config.in include Makefile README.md scripts toolchain
'''Android12'''Config feeds.conf.default LICENSE package rules.mk target tools
'''OPi OS Arch'''<span id="compile-openwrt-source-code"></span>== Compile OpenWRT source code ==
'''OPi OS Droid'''<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)</p><ol style="list-style-type: lower-alpha;"><li>Method 1: The command to install dependent packages using a &gt; script is as follows:</li></ol></li></ol>
|}test@test:~/openwrt$ '''sudo ./install_dep.sh'''
<span idol start="how2" style="list-tostyle-createtype: lower-wifi-hotspotalpha;"><li>Method 2: Install the dependency package directly using the following command</spanli></ol>=== How to create WIFI hotspot ===
test@test:~/openwrt$ '''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 card cannot be applied.sudo apt update'''
<ol style="list-style-type: decimal;"><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-C power supply to power up the development board.</p><p>[[File:./images/media/image666.png|347x149px]]</p></li><li><p>After the system startup is complete, click '''<span class="mark">Network -&gt; Wireless</span>''' to enter the wireless WiFi configuration interface.</p><p>[[File:./images/media/image667.png|553x155px]]</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:./images/media/image668.png|517x162px]]</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:./images/media/image669.png|553x179px]]</p></li><li><p>Then click the '''<span class="mark">Add</span>''' button on the right.</p><p>[[File:./images/media/image670.png|553x138px]]</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:./images/media/image671.png|552x268px]]</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</span>''', and specify the network as '''<span class="mark">lan</span>'''</p><p>[[Filetest@test:./images/media/image672.png|553x234px]]</p><~/li><li><p>Then in openwrt$ '''<span class="mark">Interface Configuration sudo apt install -&gt; Wireless Security</span>''', select ''' WPA2-PSK''' as the encryption algorithm; set the key (wireless password) to '''password'''</p><p>[[File:./images/media/image673.png|534x224px]]</p></li><li><p>After the above settings are completed, click '''<span class="mark">Save</span>''' in the lower right corner of the page, and then exit the tab page</p><p>[[File:./images/media/image674.png|553x303px]]</p></li><li><p>Then click 'y ack antlr3 asciidoc autoconf \''<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:./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:./images/media/image676.png|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><p>[[File:./images/media/image677.png|247x156px]]</p></li></ol>
<span id="how'''automake autopoint binutils bison build-to-connect-to-wifi-hotspot"></span>=== How to connect to WIFI hotspot ===essential \'''
<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:./images/media/image666.png|347x149px]]</p></li><li><p>After the system startup is complete, click '''<span class="mark">Network bzip2 ccache cmake cpio curl device-&gt; Wireless</span>''' to enter the configuration wireless WiFi interface.</p><p>[[File:./images/media/image667.png|553x155px]]</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:./images/media/image668.png|520x162px]]</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:./images/media/image669.png|520x179px]]</p></li><li><p>Then click the '''<span class="mark">Scan</span>''' button to scan the surrounding WiFi hotspots.</p><p>[[File:./images/media/image678.png|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>''' button on the right side of the WiFi hotspot you want to connect to connect to the WiFi hotspot.</p><p>[[File:./images/media/image679.png|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>''' button.</p><p>[[File:./images/media/image680.png|552x135px]]</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:./images/media/image681.png|553x237px]]</p></li><li><p>Finally, you will return to the main interface of wireless configuration, click '''<span class="mark">Save and Apply</span>tree-compiler fastjar \''' 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="installing'''flex gawk gettext gcc-packagesmultilib g++-via-the-command-line"></span>== Installing packages via the command line ==multilib git gperf haveged \'''
<span id="install'''help2man intltool libc6-viadev-opkgi386 libelf-indev libglib2.0-the-terminal"></span>=== Install via opkg in the terminal ===dev \'''
# Update the list of available packages'''libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev \'''
root@OpenWrt:/# '''opkg''' '''updatelibncurses5-dev \libncursesw5-dev libreadline-dev libssl-dev \'''
<ol start="2" style="list'''libtool lrzsz mkisofs msmtp nano ninja-stylebuild p7zip p7zip-type: decimal;"><li>Get the software list</li></ol>full \'''
root'''patch pkgconf python2.7 python3 python3-pyelftools \''' '''libpython3-dev qemu-utils rsync scons squashfs-tools \''' '''subversion swig texinfo uglifyjs upx-ucl unzip \''' '''vim wget xmlto xxd zlib1g-dev''' <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></ol> test@OpenWrttest:~/# openwrt$ '''opkg./scripts/feeds update -a'''  test@test:~/openwrt$ '''list./scripts/feeds install -a'''
<ol start="3" style="list-style-type: decimal;">
<li>Install <p>Then choose to use the specified packageconfiguration file of OrangePi 5 Plus</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</li></ol></li></ol> test@test:~/openwrt$ '''cp configs/orangepi-5-plus-rk3588_defconfig .config''' <ol start="2" style="list-style-type: lower-alpha;"><li>Compile the image that supports SPIFlash startup, and select the &gt; following configuration</li></ol>
roottest@OpenWrttest:~/# openwrt$ '''opkg''' '''install &lt;package name&gt;cp configs/orangepi-5-plus-rk3588-spi_defconfig .config'''
<ol start="4" style="list-style-type: decimal;">
<li>Check Then execute the installed softwarefollowing command to make the configuration take effect</li></ol>
roottest@OpenWrttest:~/# openwrt$ '''opkg''' '''list-installedmake defconfig'''
<ol start="5" style="list-style-type: decimal;">
<li>Uninstall Execute the softwarefollowing command to start compiling the openwrt source code</li></ol> test@test:~/openwrt$ '''make V=s''' <ol start="6" style="list-style-type: decimal;"><li>After the compilation is complete, the path where the image is generated is:</li></ol>
roottest@OpenWrttest:~/# openwrt$ '''opkg''' '''remove''' '''&lt;package name&gt;tree -L 1 bin/targets/rockchip/armv8/'''
<span id="openwrt-management-interface-installation-software-package"><bin/targets/rockchip/armv8/span>== OpenWRT management interface installation software package ==
'''If you need to add new software packages, you can install them through the OpenWRT management interface├── config.'''buildinfo
<span id="view-the-list-of-available-software-packages-in-the-system"></span>=== View the list of available software packages in the system ===├── feeds.buildinfo
<ol style="list├── openwrt-stylerockchip-type: decimal;"><li><p>First enter the package management page</p><ol style="listarmv8-stylexunlong_orangepi-type: lower5-alpha;"><li><p>aplus-ext4-sysupgrade. Find the &quot;'''System'''&quot; option in the navigation bar and click to enter</p><p>bimg. In the vertical column options below the system, select &quot;'''software package'''&quot; and click to enter</p></li></ol></li></ol>gz
[[File:├── openwrt-rockchip-armv8-xunlong_orangepi-5-plus./images/media/image684.png|552x227px]]manifest
<ol start="2" style="list├── openwrt-stylerockchip-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 style="listarmv8-stylexunlong_orangepi-type: lower5-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:plus-squashfs-sysupgrade./images/media/image685img.png|553x232px]]</p></li></ol></li></ol>gz
<span id="example-of-installing-software-├── packages"></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 the OpenWRT software package management interface, click 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:├── profiles./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 to complete</p><p>[[File:./images/media/image688.png|576x96px]]</p></li><li><p>The display after the installation is complete is as follows</p><p>[[File:./images/media/image689.png|506x289px]]</p></li></ol></li><li><p>Check whether the software package is installed 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;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>json
<span id="remove-package-example"></span>=== Remove package example ===├── sha256sums
<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, 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:└── version./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-acl'''” package has been removed successfully</p><p>[[File:./images/media/image694.png|493x187px]]</p></li></ol></li></ol>buildinfo
<span id="using-samba-network-shares"></span>== Using Samba Network Shares ==1 directory, 9 files
'''There are mainly two software options <span id="instructions-for OpenWRT LAN file sharing, Samba and NFS. The compatibility of -using-the Samba -android-12-system is better, while "></span>= Instructions for using the performance of NFS is superior. For users who need to use Windows devices, it is recommended to choose Samba.'''Android 12 system =
<ol stylespan id="listsupported-styleandroid-type: decimal;versions"><li><p>Enter the management page of the Samba network share</pspan><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/image695.png|553x205px]]</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 '''&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 styleSupported Android versions ="list-style-type: lower-alpha;"><li></li><li></li><li></li><li><p>a. In the '''&quot;Shared Directory&quot;''' of the '''&quot;General Settings&quot;''' 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">
[[File{| class="wikitable"|-| style="text-align: left;"| '''Android version'''| style="text-align: left;"| '''kernel version'''|-| style="text-align: left;"| '''Android 12'''| style="text-align:left;"| '''Linux5./images/media/image69710'''|-| style="text-align: left;"| '''Android 12 Box'''| style="text-align: left;"| '''Linux5.png|575x217px10'''|4]]}
</div></li></olspan id="android-function-adaptation"></lispan><li><p>window10 starts network discovery and sharing</p><p>'''Note: To access Samba under the Windows 10 system, you need to confirm whether Windows 10 has enabled network discovery and sharing for sharing. If it is not enabled, perform the following settings first.'''</p></li></ol>== Android function adaptation ==
<!-- -{| class="wikitable"|-><ol | style="list-styletext-typealign: lower-alphaleft;">| '''Function'''<li><p>Enable Samba v1/v2 access</p><ol | style="listtext-style-typealign: lower-alphaleft;"><li></li><li></li>| '''Android 12'''<li></li><li><p>a) Enter the &quot| style="text-align: left;Control Panel&quot; of Windows 10</p>"| '''Android12 Box'''<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> [[File:./images/media/image698.png|575x316px]] <ol start="2" style="list-styletext-typealign: lower-alphaleft;"><li><p>Turn on the network discovery of Windows 10</p>| '''HDMI TX1 Display - 1080p'''<ol | style="list-styletext-typealign: lower-alphaleft;"><li></li><li></li><li></li><li></li><li><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;OK''' and | style="text-align: left;"| '''&quot;Enable File and Printer Sharing&quot;OK'''</p><p>f) Click &quot;Save Changes&quot; to save the Windows 10 network discovery configuration</p></li></ol></li></ol>|-[[File:./images/media/image699.png|575x323px]] <ol start="5" style="listtext-style-typealign: decimalleft;"><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> [[File:./images/media/image700.png|575x323px]] <span id="zerotier-instructions"></span>== Zerotier Instructions == '''The OpenWRT system has preHDMI TX1 Display -installed the zerotier client. After creating a virtual LAN on the zerotier official website, the client can directly join it through the Network ID. The specific operation is as shown below.4K 120HZ''' <ol | style="list-styletext-typealign: decimalleft;"><li><p>Log in to zerotier official website | '''https://my.zerotier.com/networkOK''', register and log in and click Network| style="text-&gtalign: left;Create A Network to create a virtual local area network</p>"| '''OK'''<p>[[File:./images/media/image701.png|575x118px]]</p>-<p>[[File:./images/media/image702.png|574x166px]]</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>[[Filestyle="text-align:./images/media/image703.pngleft;"|353x257px]]</p></li><li><p>The following automatically assigns the address Here you can choose the network segment yourself, here is 172.27.*.*</p><p>[[File:./images/media/image704.png|374x233px]]</p></li><li><p>Enter the following command in the OpenWRT terminal to join the virtual LAN created above, '''where 8286ac0e47d53bb5 is the Network ID of the virtual LAN created aboveHDMI TX1 Display - 8K 60HZ'''</p></li></ol> root@OpenWrt| style="text-align:/# ''left;"| '''zerotier-one -dOK''' #Start the zerotier client root@OpenWrt| style="text-align:/# left;"| '''zerotier-cli join 8286ac0e47d53bb5OK''' #join the network|-<ol start="5" | style="listtext-style-typealign: decimalleft;"><li>Enter ifconfig in the terminal and you can see that there is already a new | '''ztks54inm2HDMI TX1 Audio''' device with an IP address of | style="text-align: left;"| '''172.27.214.213OK'''</li></ol> root@OpenWrt| style="text-align:/# left;"| '''ifconfigOK'''|-| style="text-align: left;"| '''ztks54inm2HDMI TX2 Display - 1080p''' Link encap:Ethernet HWaddr F6:4E:DE:BF:D8:52 inet addr| style="text-align:left;"| '''172.27.214.213OK''' Bcast| style="text-align:172.27.255.255 Mask:255.255.0.0left;"| '''OK'''|-inet6 addr: fe80:| style="text-align:e82f:d0ff:fe5a:867e/64 Scope:Linkleft;"| '''HDMI TX2 Display - 4K 120HZ''' UP BROADCAST RUNNING MULTICAST MTU| style="text-align:2800 Metric:1 RX packets:18 errors:0 dropped:0 overruns:0 frame:0left;"| '''OK''' TX packets| style="text-align:48 errors:0 dropped:0 overruns:0 carrier:0left;"| '''OK'''|-collisions:0 txqueuelen:1000 RX bytes:1720 (1.6 KiB) TX byte81 (8.2 KiB) <ol start="6" | style="listtext-style-type: decimalalign: left;"><li>Install the zerotier client on another device (Ubuntu18.04 is used as an example here), execute the following command to install, and restart the computer after the installation is complete</li></ol> test@ubuntu:~$ | '''curl HDMI TX2 Display -s https://install.zerotier.com | sudo bash8K 60HZ''' <ol start="7" | style="list-styletext-typealign: decimalleft;"><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</li></ol> test@ubuntu:~$ | '''sudo zerotier-cli join 8286ac0e47d53bb5OK''' test@ubuntu| style="text-align:~$ left;"| '''ifconfigOK'''|-| style="text-align: left;"| '''ztks54inm2HDMI TX2 Audio'''| style="text-align: flags=4163&ltleft;UP,BROADCAST,RUNNING,MULTICAST&gt; mtu 2800 inet "| '''172.27.47.214OK''' netmask 255.255.0.0 broadcast 172.27.255.255 inet6 fe80| style="text-align::5ce1:85ff:fe2b:6918 prefixlen 64 scopeid 0x20&lt;link&gtleft;"| '''OK'''|-ether f6| style="text-align:fd:87:68:12:cf txqueuelen 1000 (ethernet) left;"| '''HDMI RX packets 0 bytes 0 (0.0 B)display''' RX errors 0 dropped 0 overruns 0 frame 0 TX packets 46 bytes 10006 (10.0 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 <ol start="8" | style="listtext-style-typealign: decimalleft;">| '''OK'''<li>Test whether the two terminals can communicate</li></ol> root@OpenWrt| style="text-align:/# left;"| '''ping 172.27.47.214 -I ztks54inm2OK'''|-PING 172.27.47.214 (172.27.47.214)| style="text-align: 56 data bytesleft;"| '''HDMI RX Audio''' 64 bytes from 172.27.47.214| style="text-align: seq=0 ttl=64 time=1.209 msleft;"| '''OK''' 64 bytes from 172.27.47.214: seq| style=1 ttl=64 time=1.136 ms 64 bytes from 172.27.47.214"text-align: seq=2 ttl=64 time=1.203 msleft;"| '''OK'''|-64 bytes from 172.27.47.214: seq| style=3 ttl=64 time=1.235 ms ^C "text--- 172align: left;"| '''USB2.27.47.214 ping statistics ---0X2''' 4 packets transmitted, 4 packets received, 0% packet loss round| style="text-trip min/avg/max = 1.136/1.195/1.235 msalign: left;"| '''OK''' <ol start="9" | style="list-styletext-typealign: decimalleft;"><li>other common commands of zerotier</li></ol> root@OpenWrt:/# | '''zerotier-one -dOK''' #Start the zerotier client|-root@OpenWrt| style="text-align:/# left;"| '''zerotier-cli status2.5G PCIe network port X2''' #Get address and service status root@OpenWrt| style="text-align:/# left;"| '''zerotier-cli join # Network IDOK''' #join the network root@OpenWrt| style="text-align:/# left;"| '''zerotier-cli leave # Network IDOK''' #leave the network|-root@OpenWrt| style="text-align:/# left;"| '''zerotier-cli listnetworks2.5G PCIe network port light''' #list networks OPENWRT_DEVICE_REVISION| style=&quot;v0&quot"text-align: left;"| '''OK''' OPENWRT_RELEASE| style=&quot;OpenWrt 22.03.4 r20123"text-38ccc47687&quotalign: left;"| '''OK'''|-<span id| style="compilationtext-method-of-openwrt-source-codealign: left;"></span>= Compilation method of OpenWRT 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 test@test:~$ | '''sudo apt updateDebug serial port''' test@test| style="text-align:~$ '''sudo apt installleft;"| ''' OK'''| style="text-yalign: left;"| ''' '''gitOK'''|-test@test:~$ | style="text-align: left;"| '''git cloneRTC''' '''https| style="text-align://github.com/orangepi-xunlong/openwrt.gitleft;"| ''' OK'''| style="text-b openwrt-22.03align: left;"| '''OK'''|-<ol start="2" | style="list-styletext-typealign: decimalleft;"><li>After the OpenWRT code is downloaded, the following files and folders will be included</li></ol> test@test:~/openwrt$ | '''lsFAN interface''' BSDmakefile Config.in include Makefile README.md scripts toolchain Config feeds.conf.default LICENSE package rules.mk target tools <span id| style="compiletext-openwrt-source-codealign: left;"></span>| '''OK'''== Compile OpenWRT source code == <ol | style="listtext-style-typealign: decimalleft;">| '''OK'''<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)</p>|-<ol | style="list-styletext-typealign: lower-alphaleft;"><li>Method 1: The command to install dependent packages using a &gt; script is as follows:</li></ol></li></ol> test@test:~/openwrt$ | '''sudo ./install_dep.sheMMC extension interface''' <ol start="2" style| style="list-styletext-typealign: lower-alphaleft;"><li>Method 2: Install the dependency package directly using the following command</li></ol> test@test:~/openwrt$ | '''sudo apt updateOK''' test@test| style="text-align:~/openwrt$ left;"| '''sudo apt install -y ack antlr3 asciidoc autoconfOK''' |-| style="text-align: left;"| '''\AP6275P-WIFI''' '''automake autopoint binutils bison build| style="text-essentialalign: left;"| ''' '''\OK''' | style="text-align: left;"| '''bzip2 ccache cmake cpio curl device-tree-compiler fastjarOK''' |-| style="text-align: left;"| '''\AP6275P-BT''' '''flex gawk gettext gcc| style="text-multilib g++-multilib git gperf havegedalign: left;"| ''' OK'''\| style="text-align: left;"| ''' OK'''help2man intltool libc6|-dev| style="text-i386 libelf-dev libglib2.0-devalign: left;"| ''' AX200-WIFI'''\| style="text-align: left;"| ''' NO'''libgmp3-dev libltdl| style="text-dev libmpc-dev libmpfr-dev''' align: left;"| '''\NO'''|-| style="text-align: left;"| '''libncurses5AX200-devBT''' '''\libncursesw5| style="text-dev libreadline-dev libssl-dev''' align: left;"| '''\NO''' '''libtool lrzsz mkisofs msmtp nano ninja| style="text-build p7zip p7zip-full'align: left;"| '' '''\NO'''|-| style="text-align: left;"| '''patch pkgconf python2.7 python3 python3AX210-pyelftools \WIFI''' '''libpython3| style="text-dev qemu-utils rsync scons squashfs-tools'align: left;"| '' '''\NO''' | style="text-align: left;"| '''subversion swig texinfo uglifyjs upx-ucl unzip \NO''' '''vim wget xmlto xxd zlib1g|-dev''' <ol start="2" | style="list-styletext-typealign: decimalleft;"><li>Then execute | '''./scripts/feeds update AX210-aBT''' and | style="text-align: left;"| '''./scripts/feeds install -aNO''' to download dependent packages</li></ol> test@test| style="text-align:~/openwrt$ left;"| '''./scripts/feeds update -aNO'''|-test@test:~/openwrt$ '| style="text-align: left;"| '''./scripts/feeds install RTL8852BE-aWIFI''' <ol start="3" | style="listtext-style-typealign: decimalleft;">| '''OK'''<li><p>Then choose to use the configuration file of OrangePi 5 Plus</p><ol | style="listtext-style-typealign: lowerleft;"| '''OK'''|-alpha| style="text-align: left;">| '''RTL8852BE-BT'''<li>Compile the image that supports TF card, eMMC, and NVMe startup, &gt| style="text-align: left; and select the following configuration</li></ol>"| '''OK'''</li></ol>| 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'''| 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;"| '''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'''| style="text-align: left;"| '''OK'''|}
test@test:~/openwrt$ '''cp configs/orangepi<span id="how-to-use-the-usb-5wireless-plusnetwork-rk3588_defconfig''' '''.config'''card"></span>== How to use the USB wireless network card ==
<ol start="2" style="list-style-type: lower-alpha;"><li>Compile # Currently, the USB wireless network card models compatible with the Android image that supports SPIFlash startup, and select the &gt; following configuration</li></ol>are as follows:
test@test{| class="wikitable"|-| 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:~/openwrt$ b720'''cp configs/orangepi| style="text-5align: left;"| '''Support WIFI and Bluetooth function, does not support hotspot'''|-plus| style="text-rk3588align: left;"| '''RTL8811CU'''| style="text-spi_defconfig align: left;"| '''2.config4G +5G WIFI'''| style="text-align: left;"| '''0bda:c811'''| style="text-align: left;"| '''Support WIFI function and open hotspot'''|}
<ol start="42" style="list-style-type: decimal;"><li><p>The pictures of 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"> [[File:media/image614.png|175x103px|C89CEA9A-B322-42d2-B476-2392A50E6FC4]] </div></li><li><p>The picture of the RTL8811CU USB wireless network card module is &gt; as follows:</p><p>[[File:media/image615.png|124x107px]]</p></li></ol></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 execute , for the connection and test method of WIFI, please refer to the section of WIFI connection test method</p></li><li><p>For the following command Bluetooth test, please refer to make the configuration take effectcontent of the Bluetooth test method</p></li></ol>
test@test:~<span id="m.2-how-to-use-e-key-pcie-wifi6bluetooth-module"></openwrt$ '''make''' '''defconfig'''span>== M.2 How to use E-Key PCIe WIFI6+Bluetooth module ==
<ol start="5" style="list-style-type: decimal;"><li>Execute the following command to start compiling the openwrt source code</li></ol># The PCIe wireless network card models currently compatible with Android 12 are as follows:
test@test:~/openwrt$ {| class="wikitable"|-| '''serial number'''| '''model'''| '''Physical picture'''make V=s|-| '''1'''| '''RTL8852BE'''
<ol start="6" style="list-style-type: decimal;"><li>After the compilation is complete, the path where the image is generated is:</li></ol>'''(PCIE+USB interface)'''
test@test| [[File:~media/openwrt$ '''tree -L 1 bin/targets/rockchip/armv8/'''image6%2016.png]]|}
bin<ol start="2" style="list-style-type: decimal;"><li><p>First insert the PCIe wireless network card into the M.2 E-KEY interface of the development board and fix it</targetsp><p>[[File:media/rockchipimage617.png|263x178px]]</armv8p></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 the 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>
├── config.buildinfo<span id="wifi-connection-test-method"></span>== WIFI connection test method ==
├── feeds'''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.buildinfo'''
├── openwrt-rockchip-armv8-xunlong_orangepi-5-plus-ext4'''For instructions on using the external PCIe network card, please refer to the section on how to use the M.2 E-sysupgrade.imgKey PCIe WIFI6+Bluetooth module.gz'''
├── openwrt-rockchip-armv8-xunlong_orangepi-5-plus'''For instructions on using the external USB network card, please refer to the section on how to use the USB wireless network card.manifest'''
├── openwrt-rockchip-armv8-xunlong_orangepi-5-plus-squashfs-sysupgrade.img.gz# First click to enter the '''Setting'''
├── packages[[File:media/image618.png|553x182px]]
├── profiles.json<ol start="2" style="list-style-type: decimal;"><li>Then select '''Network &amp; internet'''</li></ol>
├── sha256sums[[File:media/image619.png|553x154px]]
└── version.buildinfo<ol start="3" style="list-style-type: decimal;"><li>Then select '''Internet'''</li></ol>
1 directory, 9 files[[File:media/image620.png|553x103px]]
<span idol start="instructions4" style="list-for-usingstyle-type: decimal;"><li>Then turn on the'''Wi-android-12-system"Fi''' switch</li></spanol>= Instructions for using the Android 12 system =
<span id="supported-android-versions"><[[File:media/span>== Supported Android versions ==image621.png|553x65px]]
{| class<ol start="5" style="wikitablelist-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:media/image622.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:media/image623.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:media/image624.png|553x232px]]</p></li><li><p>The display after successful Wi-Fi connection is shown in the figure below:</p><p>[[File:media/image625.png| 553x93px]]</p></li></ol> <span id="how-to-use-wi-fi-hotspot"></span>== How to use Wi-Fi hotspot == <ol style="textlist-style-aligntype: leftdecimal;"| ><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 '''AndroidSettings''' </p><p>[[File:media/image618.png|553x182px]]</p></li><li><p>Then select '''versionNetwork &amp; internet'''</p>| style="text-align<p>[[File: left;"media/image619.png| 553x154px]]</p></li><li><p>Then select '''kernel versionHotspot &amp; tethering'''</p><p>[[File:media/image626.png|575x195px]]</p></li><li><p>Then select '''Wi-Fi hotspot'''</p><p>[[File:media/image627.png| style="text575x96px]]</p></li><li><p>Then turn on the '''Wi-align: left;"| 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 '''Android 12(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>| style="text-align<p>[[File: left;"media/image628.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'''Linux5in the above picture in the WI-FI list searched by the mobile phone.10Then 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> [[File:media/image629.png|-342x260px]] | <ol start="8" style="textlist-alignstyle-type: leftdecimal;"| ><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). At this point, you can open 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 '''Android 12 BoxWI-FI Hotspot'''of the development board can be used normally.</li></ol> [[File:media/image630.png| style347x175px]] <span id="textbluetooth-test-align: left;method"| ></span>== Bluetooth test method == '''Linux5Please 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.10'''|}'''For instructions on using the external PCIe network card, please refer to the section on how to use the M.2 E-Key PCIe WIFI6+Bluetooth module.'''
<span id="android-function-adaptation"></span>== Android function adaptation =='''For instructions on using the external USB network card, please refer to the section on how to use the USB wireless network card.'''
{| class<ol style="wikitable"|list-| style="text-aligntype: leftdecimal;"| ><li><p>First click to enter the '''FunctionSetting'''</p>| style="text-align<p>[[File: left;"media/image618.png| 553x182px]]</p></li><li><p>Then select '''Android 12Connected devices'''</p><p>[[File:media/image631.png| style="text-align: left;"| 575x146px]]</p></li><li><p>Then click ''''Android12 Box<span class="mark">Pair new device</span>'''to turn on Bluetooth and start scanning the surrounding Bluetooth devices</p><p>[[File:media/image632.png|-575x144px]]</p></li>| style="text-align: left;"| <li><p>The searched Bluetooth devices will be displayed under '''HDMI TX1 Display - 1080pAvailable devices'''</p><p>[[File:media/image633.png| style="text-align: left;"| 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 '''OKPair'''option</p>| style="text-align<p>[[File: left;"media/image634.png| '''OK'''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:media/image635.png| style="text-align308x232px]]</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: left;"media/image636.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 '''HDMI TX1 Display - 4K 120HZAccept'''to start receiving the picture sent by the mobile phone.</p><p>[[File:media/image637.png| style="text-align: left;"| 575x250px]]</p></li><li><p>You can open the ''''OKDownload'''directory in the file manager to view the pictures received by the Android system Bluetooth of the development board</p><p>[[File:media/image638.png| 575x86px]]</p></li></ol> <span id="test-method-of-hdmi-in"></span>== Test method of HDMI In == <ol style="textlist-style-aligntype: leftdecimal;"| '''OK'''><li><p>The location of the HDMI In interface on the development board is as follows:</p><p>[[File:media/image265.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>| style="text-align<p>[[File: left;"media/image11.png| '''199x129px]]</p></li><li><p>Make sure that the HDMI output of the device connected to the HDMI TX1 Display - 8K 60HZ'''In interface is normal, and then open the HDMI In test APP</p><p>[[File:media/image639.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:media/image640.png| style533x301px]]</p></li></ol> <span id="texthow-to-align: left;use-10.9.10.1-inch-mipi-screen"| ></span>== How to use 10.9.10.1 inch MIPI screen == '''OKPlease make sure that the Android image used is the image of the following two versions:'''| style="text-align: left;"| '''OKOrangePi5Plus_RK3588_Android12_lcd_v1.x.x.img'''|-| style="text-align: left;"| '''HDMI TX1 AudioOrangePi5Plus_RK3588_Android12_spi-nvme_lcd_v1.x.x.img'''| <ol style="textlist-style-aligntype: leftdecimal;"| '''OK'''>| style="text<li><p>The screen needs to be assembled first, please refer to the assembly method of the 10.1-aligninch 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: left;"media/image641.png| 317x80px]]</p><p>'''OKNote that the touch interface below is not for the LCD MIPI screen. It is currently a spare interface and cannot be used.'''</p><p>[[File:media/image425.png|334x70px]]</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>| style="text-align<p>[[File: left;"media/image642.png| '''HDMI TX2 Display - 1080p'''517x345px]]</p></li></ol> | style<span id="textov13850-and-ov13855-mipi-camera-align: left;test-method"| '''OK'''></span>== OV13850 and OV13855 MIPI camera test method == Currently the development board supports two MIPI cameras, OV13850 and OV13855, the specific pictures are as follows: | <ol style="textlist-style-aligntype: leftlower-alpha;"| '''OK'''><li><p>OV13850 camera with 13 million MIPI interface</p><p>[[File:media/image23.png|-268x151px]]</p></li><li><p>OV13855 camera with 13 million MIPI interface</p>| style="text-align<p>[[File: left;"media/image24.png| 253x150px]]</p><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. The FPC cable is shown in the figure below. Please note that the FPC cable has a direction. The end marked '''HDMI TX2 Display - 4K 120HZTO MB'''| style="text-align: left;"| needs to be inserted into the camera interface of the development board, and the end marked '''OKTO CAMERA'''needs to be inserted into the camera adapter board.</p></li></ol> [[File:media/image436.png| 475x99px]] 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: <ol style="textlist-alignstyle-type: leftlower-alpha;"| ><li><p>'''OKNo.1 port is connected to OV13850 camera'''</p></li>|-| style="text-align: left;"| <li><p>'''HDMI TX2 Display - 8K 60HZNo.2 interface is connected to OV13855 camera'''</p></li>| style<li><p>No. 3 interface is not used, just ignore it</p></li></ol> <div class="text-alignfigure"> [[File: left;"media/image643.png|333x199px| '''OK'''图片3]] </div>The location of the camera interface on the Orange Pi 5 Plus development board is shown in the figure below: | style="text-align[[File: left;"media/image644.png| '''OK'''388x65px]] The method of inserting the camera into the CAM interface of the development board is as follows: [[File:media/image439.png|-285x132px]] After connecting the camera to the development board, we can use the following method to test the camera: | <ol style="textlist-style-aligntype: leftlower-alpha;"><li><p>Open the camera APP on the desktop</p><p>[[File:media/image645.png| '''HDMI TX2 Audio'''491x279px]]</p></li><li><p>Then you can see the preview screen of the camera</p>| style<div class="textfigure"> [[File:media/image646.png|379x213px|Screenshot_20230317-align073757]] </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: left;"media/image647.png| 391x222px]]</p><p>The switching interface of taking pictures and recording is as follows, click Video to switch to '''OKvideo'''recording mode</p>| style<div class="text-alignfigure"> [[File: left;"media/image648.png| '''OK'''386x217px|Screenshot_20230317-074419]] </div><p>Click the position shown in the figure below to enter the camera setting interface</p><p>[[File:media/image649.png| style="text-align390x221px]]</p><p>The setting interface of the camera is as follows:</p><div class="figure"> [[File: left;"media/image650.png|429x241px| '''HDMI RX display'''Screenshot_20230317-075325]] </div></li></ol> | style<span id="textpin-align: left;interface-gpio-uart-spi-and-pwm-test"| '''OK'''></span>== 26pin interface GPIO, UART, SPI and PWM test == | style<span id="textpin-align: left;gpio-port-test-3"| '''OK'''></span>=== 40pin GPIO port test ===|-| <ol style="textlist-style-aligntype: leftdecimal;"><li><p>First click on the wiringOP icon to open the wiringOP APP</p><p>[[File:media/image651.png| 552x183px]]</p></li><li><p>The main interface of wiringOP APP is displayed as shown in the figure below, and then click the '''HDMI RX AudioGPIO_TEST'''button to open the GPIO test interface</p>| style="text-align<p>[[File: left;"media/image652.png| 553x131px]]</p></li><li><p>The GPIO test interface is shown in the figure below. The two rows of '''OKCheckBox'''| style="textbuttons on the left are in one-to-align: left;"| one correspondence with the 26pin pins. When the '''OKCheckBox'''|-| style="text-align: left;"| button is checked, the corresponding GPIO pin will be set to '''USB2.0X2OUT'''| style="text-align: leftmode, 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 '''OKGPIO READALL'''| style="text-alignbutton is pressed, information such as the wPi number, GPIO mode, and pin level can be obtained.</p><p>[[File: left;"media/image653.png| 553x288px]]</p></li><li><p>Then click the '''OKGPIO READALL'''button, the output information is as shown in the figure below:</p><p>[[File:media/image654.png|-553x310px]]</p></li>| style="text-align: left;"| <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 '''23.5G PCIe network port X23v''', it means setting high level success</p>| style="text-align<p>[[File: left;"media/image655.png| 204x392px]]</p></li><li><p>Then click the '''OKGPIO READALL'''| style="text-align: left;"| 'button, you can see that the current pin 7 mode is '''OKOUT''', and the pin level is high</p><p>[[File:media/image656.png|-552x259px]]</p></li>| style="text-align: left;"| <li><p>Click the '''2.5G PCIe network port lightCheckBox'''| style="text-align: left;"| 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 '''OK0v''', it means that the low level is set successfully.</p>| style="text-align<p>[[File: left;"media/image657.png| 205x394px]]</p></li><li><p>Then click the '''OKGPIO READALL'''button, you can see that the current mode of pin 11 is OUT, and the pin level is low</p><p>[[File:media/image658.png|-552x258px]]</p></li></ol> | style<span id="textpin-align: left;uart-test-2"| '''Debug serial port'''></span>=== 40pin UART test === | <ol style="textlist-alignstyle-type: leftdecimal;"| ><li><p>'''UART3'OK''and '| style="text-align: left;"| '''OKUART8'''are 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:media/image659.png|-508x139px]]</p></li><li><p>First click on the wiringOP icon to open the wiringOP APP</p>| style="text-align<p>[[File: left;"media/image651.png| 552x183px]]</p></li><li><p>The main interface of wiringOP APP is displayed as shown in the figure below, and then click the '''RTCUART_TEST'''button to open the UART test interface</p><p>[[File:media/image660.png|552x123px]]</p></li><li><p>The serial port test interface of the APP is shown in the figure below</p></li></ol> [[File:media/image661.png| 552x310px]] <ol start="5" style="textlist-style-aligntype: leftdecimal;"| ><li>Take the test of '''UART3'''as an example below, select the ''OK'/dev/ttyS3''| style="text-align: left;"| ' node in the selection box, enter the baud rate you want to set in the edit box, and then click the '''OPEN'OK''button to open the '|-| style="text-align: left;"| ''/dev/ttyS3'FAN interface''node. After opening successfully, click the OPEN button becomes unselectable, and the '| style="text-align: left;"| ''CLOSE''' button and '''OKSEND'''button become selectable</li></ol> [[File:media/image662.png| 552x154px]] <ol start="6" style="textlist-alignstyle-type: leftdecimal;"><li><p>Then use Dupont wire to short the RXD and TXD pins of uart3</p><p>[[File:media/image663.png| 455x121px]]</p></li><li><p>Then you can enter a character in the send edit box below, and click the '''OKSEND'''button to start sending</p></li></ol> [[File:media/image664.png|-553x155px]] | <ol start="8" style="textlist-style-aligntype: leftdecimal;"><li>If everything is normal, the received string will be displayed in the receiving box</li></ol> [[File:media/image665.png| '''eMMC extension interface'''553x290px]] | style<span id="textpin-align: left;spi-test-3"| '''OK'''></span>=== 26pin SPI test === | <ol style="textlist-style-aligntype: leftdecimal;"><li><p>From the table below, the available SPIs for Orange Pi 5 Plus are SPI0 and SPI4</p><p>[[File:media/image304.png| '''OK'''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 module. First, connect the w25q64 device to the SPI0 interface.</p><p>[[File:media/image666.png|-195x164px]]</p></li><li><p>Then click the wiringOP icon to open the wiringOP APP</p>| style="text-align<p>[[File: left;"media/image651.png| 552x183px]]</p></li><li><p>The main interface of wiringOP APP is displayed as shown in the figure below, click the '''AP6275P-WIFISPI_TEST'''button to open the SPI test interface</p><p>[[File:media/image667.png| style="text-align: left;"| 552x123px]]</p></li><li><p>Then click the '''OKOPEN'''button to initialize the SPI</p></li></ol> [[File:media/image668.png| 552x155px]] <ol start="6" style="textlist-style-aligntype: leftdecimal;"| ><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[0], and then click the '''OKTRANSFER'''button</p><p>[[File:media/image669.png|-575x252px]]</p></li><li><p>Finally, the APP will display the read ID information</p></li></ol> [[File:media/image670.png| 552x206px]] <ol start="8" style="textlist-style-aligntype: leftdecimal;"><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:media/image671.png| '''AP6275P-BT'''374x126px]]</p></li></ol> | style<span id="textpin-align: left;"| '''OK'''pwm-test"></span>=== 26pin PWM test === | <ol style="textlist-style-aligntype: leftdecimal;"| ><li><p>Android enables '''PWM10'''OKand '''|-| style="text-align: left;"| '''AX200-WIFIPWM14'''by default, and the corresponding pins are located at 40pin as shown in the figure below:</p><p>[[File:media/image672.png| style="text-align431x130px]]</p></li><li><p>First click on the wiringOP icon to open the wiringOP APP</p><p>[[File: left;"media/image651.png| 552x183px]]</p></li><li><p>Then click the '''NOPWM_TEST'''button on the main interface of wiringOP to enter the PWM test interface</p>| style="text-align<p>[[File: left;"media/image673.png| 553x125px]]</p></li><li><p>The base address corresponding to PWM10 is '''febe0020'NO'', and the base address corresponding to PWM14 is '|-| style="text-align: left;"| ''febf0020'AX200-BT''. Here, '| style="text''fd8b0020.pwm''' is displayed on the right of pwmchip0. At this time, you need to click the drop-align: left;"| down option to select other pwmchips until '''NOfebe0020'''| style="text-align: left;"| or '''NOfebf0020'''is displayed on the right.</p><p>[[File:media/image674.png|553x111px]]</p></li><li><p>When the drop-| style="text-align: left;"| down option menu selects '''pwmchip2''', the corresponding base address of '''AX210-WIFIPWM10'''| style="text-align: left;"| is '''NOfebe0020'''on the right</p><p>[[File:media/image675.png| style="text553x102px]]</p></li><li><p>When the drop-align: left;"| down option menu selects '''pwmchip4''', the corresponding base address of '''NOPWM14'''|-| style="text-align: left;"| is '''AX210-BTfebe0020'''on the right</p><p>[[File:media/image676.png| style="text-align: left;"| 553x102px]]</p></li><li><p>Take the test of PWM10 as an example, we need to select '''NOpwmchip2'''</p>| style="text-align<p>[[File: left;"media/image675.png| 553x102px]]</p></li><li><p>Then confirm the PWM period, the default configuration is '''50000ns''NO', converted to PWM frequency is ''|-| style="text-align: left;"| '20KHz''', you can modify it yourself, click the open button to export '''RTL8852BE-WIFIPWM10'''</p><p>[[File:media/image677.png| 552x101px]]</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></ol> [[File:media/image678.png|575x116px]] <ol start="10" style="textlist-alignstyle-type: leftdecimal;"| '''OK'''><li>Then use an oscilloscope to measure the 31st pin in the 40pin of the development board, and you can see the following waveform</li></ol> | style="text-align[[File: left;"media/image679.png| '''OK'''460x276px]]|-| style<span id="texthow-align: left;to-use-adb-1"| '''RTL8852BE-BT'''></span>== How to use ADB == | style<span id="textuse-the-data-align: left;cable-to-connect-to-adb-debugging"| '''OK'''></span>| 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'''| 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;"| '''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'''| styleUse the data cable to connect to adb debugging ==="text-align: left;"| '''OK'''|}
<span idol style="howlist-tostyle-usetype: decimal;"><li><p>First prepare a good quality Type-C data cable</p><p>[[File:media/image21.png|122x97px]]</p></li><li><p>Then connect the development board and Ubuntu PC through theType-usbC data cable. The position of the Type-wireless-network-card">C interface of the development board is shown in the figure below:</spanp><div class== How to use the USB wireless network card =="figure">
# Currently, the USB wireless network card models compatible with the Android image are as follows:[[File:media/image52.jpeg|319x90px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-2.jpg未标题-2]]
{| class="wikitable"</div></li>|-| style="text-align: left;"| '''Chip model'''| style="text-align: left;"| '''Function'''<li><p>Then install the adb tool on the Ubuntu PC</p>| style="text-align<p>test@test: left;"| ~$ '''VID&amp;PIDsudo apt update'''</p>| style="text-align<p>test@test: left;"| '''Adaptation~$ '''|sudo apt -| style="text-align: left;"| '''RTL8723BU'''| style="text-align: left;"| '''2.4G WIFI+BT4.0y install adb'''</p></li>| style="text-align: left;"| '''0bda:b720'''<li><p>You can view the identified ADB devices through the following command</p>| style="text-align<p>test@test: left;"| ~$ '''Support WIFI and Bluetooth function, does not support hotspotadb devices'''</p>|-<p>List of devices attached</p>| style="text-align: left;"| '''RTL8811CU'''<p>S63QCF54CJ device</p>| style="text-align<p>test@test: left;"| ~$ '''2.4G +5G WIFIlsusb'''</p>| style="text-align<p>Bus 003 Device 006: left;"| '''0bdaID 2207:c811'''| style="text-align: left;"| '''Support WIFI function and open hotspot'''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>
<ol start="2" style="list-style-typetest@test: decimal;"><li><p>The pictures of 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">~$ '''adb shell'''
[[Fileconsole:./images/media/image705.png|175x103px|C89CEA9A-B322-42d2-B476-2392A50E6FC4]]$
</div></li><li><p>The picture of the RTL8811CU USB wireless network card module is &gtol start="6" style="list-style-type: decimal; as follows:</p><p>[[File:./images/media/image706.png|124x107px]]</p></li></ol></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 Execute the connection and test method of WIFI, please refer following command to remount 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>Android system</li></ol>
<span id="m.2-how-to-use-e-key-pcie-wifi6bluetooth-module"></span>== M.2 How to use E-Key PCIe WIFI6+Bluetooth module ==test@test:~$ '''adb root'''
# The PCIe wireless network card models currently compatible with Android 12 are as follows:test@test:~$ '''adb remount'''
{| class<ol start="wikitable7"|style="list-| '''serial number'''| '''model'''| '''Physical picture'''|style-type: decimal;">| '''1'''| '''RTL8852BE'''<li>Then you can transfer files to the Android system</li></ol>
test@test:~$ '''(PCIE+USB interface)adb push example.txt /system/'''
| [[File:.<span id="use-network-connection-adb-debugging"></i%20mages/media/image7%2007.png]]span>|}=== Use network connection adb debugging ===
<ol start="2" style="list-style-type: decimal;"><li><p>First insert '''Using the PCIe wireless network card into the M.2 E-KEY interface of the development board and fix it</p><p>[[File:./images/media/image708.png|263x178px]]</p></li><li><p>Then connect the power supply adb does not require a data cable of the TypeTypc-C interface to connect the computer and the development board, and power on</p></li><li><p>After but to communicate through the system startsnetwork, so first of all, please refer to ensure that the section wired or wireless network of WIFI connection test method for WIFI connection and test method</p></li><li><p>For the Bluetooth testdevelopment board has been connected, please refer to and then obtain the content IP address of the Bluetooth test method</p></li></ol>development board, and then to use.'''
<span idol style="wifilist-connectionstyle-test-methodtype: 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;'''</spanp>== WIFI connection test method ==<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:/ # '''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 functionsetprop service.adb.tcp.port 5555'''
console:/ # '''For instructions on using the external PCIe network card, please refer to the section on how to use the M.2 E-Key PCIe WIFI6+Bluetooth module.stop adbd'''
'''For instructions on using the external USB network card, please refer to the section on how to use the USB wireless network card.''' console:/ # First click to enter the '''Setting''' [[File:./images/media/image709.png|553x182px]] <ol start="2" style="list-style-type: decimal;"><li>Then select '''Network &amp; internetadbd'''</li></ol> [[File:./images/media/image710.png|553x154px]]
<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 select connect network adb on Ubuntu PC</p><p>test@test:~$ '''Internetadb 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>
[[Filetest@test:./images/media/image711.png|553x103px]]~$ '''adb shell'''
<ol start="4" style="list-style-typeconsole: decimal;"><li>Then turn on the '''Wi-Fi''' switch</li></ol>#
[[File:./images/media<span id="g-usb-remote-control-tested-by-android-box"></image712span>== 2.png|553x65px]]4G USB remote control tested by Android Box ==
<ol start="5" style="list-style-type: decimal;"><li><p>After turning on '''Wi-Fi''', if everything A 2.4G USB remote control that has been tested so far is normal, you can scan to nearby Wi-Fi hotspotsshown in the figure below</p><p>[[Fileol style="list-style-type:./images/media/image713.png|549x172px]]</p></lilower-alpha;"><li><p>Then select the Wi-Fi you want to connect to, and the password input interface shown in the figure below will pop upContains a remote control</p><p>[[File:./images/media/image714image680.png|553x237px199x149px]]</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-FiA USB wireless receiver</p><p>[[File:./images/media/image715image681.png|553x232px110x119px]]</p></li></ol></li><li><p>The display Android Box system does not require any configuration, it can be used after successful Wi-Fi connection is shown plugging it in the figure below:</p><p>[[File:./images/media/image716.png|553x93px]]</p></li></ol>
<span id="how-to-use-withe-fiinfrared-hotspotremote-control-of-the-android-box-system"></span>== How to use Wi-Fi hotspot the infrared remote control of the Android Box system ==
<ol style="list-style-type: decimal;">
<li><p>FirstThe development board comes with an infrared receiver, please make sure that the Ethernet port and its location is connected to shown in the network cable and can access the Internet normally</p></li><li><p>Then select '''Settings'''figure below:</p><p>[[File:./images/media/image709image682.png|553x182px435x124px]]</p></li><li><p>Then select '''Network &amp;''' '''internet'''</p><p>[[File:./images/media/image710.png|553x154px]]</p></li><li><p>Then select '''Hotspot''' '''&amp; tethering'''</p><p>[[File:./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'''Before testing infrared reception, 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 we need to modify the name and password of the hotspot, you need to turn off the Wi-Fi first -Fi hotspot before modification)'''prepare an infrared remote control</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></oldiv class="figure">
[[File:./images/media/image720image683.png|342x260px141x127px|6FBFE2FA-31A4-4a26-AC63-9A3E4E359FFF]]
<ol start="8" style="list-style-type: decimal;"/div><lip>After '''Note: The Android system provided by Orange Pi only supports the connection is successfulremote control provided by Orange Pi by default, it will be displayed as shown in and the figure below (the interface remote control of different mobile phones will TV or air conditioner cannot be different, the specific interface is subject used.'''</p></li><li><p>The Android Box system has been adapted to the display of your mobile phone). At this point, you can open a webpage on your mobile phone to see if you can access the Internet. If you can open the webpage normallyremote control, and it means that the '''WI-FI Hotspot''' of the development board can be used normallydirectly without other settings.</p></li></ol>
[[File:.<span id="how-to-use-hdmi-cec-function-in-android-box-system"></images/media/image721.png|347x175px]]span>== How to use HDMI CEC function in Android Box system ==
<span id="bluetooth-test-method"></span>== Bluetooth test method =='''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.'''
'''Please note that there is no Bluetooth module on the Orange Pi 5 Plus development boardBefore testing this function, and an external PCIe network card with Bluetooth or a USB network card with Bluetooth is required to use the Bluetooth functionplease make sure your TV supports HDMI CEC.'''
'''For instructions <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 using the external PCIe network card, please refer 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 section menu button on how to use the M.2 E-Key PCIe WIFI6+Bluetooth moduleremote control, then select CEC remote control and press the confirmation button</p><p>[[File:media/image684.png|575x323px]]</p></li><li><p>Then select '''&quot;On&quot;'''to open the HDMI CEC remote control</p><p>[[File:media/image685.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>
'''For instructions on using the external USB network card, please refer <span id="how-to the section on how -compile-android-12-source-code"></span>= How to use the USB wireless network card.'''compile Android 12 source code =
<ol style="list-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:./images/media/image728.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:./images/media/image729.png|575x86px]]</p></li></ol> <span id="testdownload-methodandroid-of12-hdmisource-incode"></span>== Test method of HDMI In Download Android 12 source code ==
<ol style="list-style-type: decimal;">
<li><p>The location of First download the HDMI In interface on the development board is as follows:Android 12 source code sub-volume compressed package from Google network disk</p><p>[[File:./images/media/image348image686.png|351x112px575x138px]]</p></li><li><p>Then use After downloading the HDMI to HDMI cable shown in sub-volume compression package of the figure below to connect Android 12 source code, please check whether the HDMI output of other devices to the HDMI In interface of MD5 checksum is correct, if not, please download the development boardsource code again</p><p>[[Filetest@test:~$ '''md5sum -c Android_12./images/media/image12tar.gz.png|199x129px]]md5sum'''</p><p>'''Android_12.tar.gz00: confirm'''</lip><lip>'''Android_12.tar.gz01: confirm'''</p><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'''Android_12.tar.gz02: confirm'''</p><p>[[File:'''Android_12./images/media/image730tar.png|532x167px]]gz03: confirm'''</p><p>'''Android_12.tar.gz04: confirm'''</lip><lip>'''Android_12.tar.gz05: confirm'''</p><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'''Android_12. The figure below shows the desktop of the Linux system of the OPi5 development board input through HDMI Intar.gz06: confirm'''</p><p>[[File'''Android_12.tar.gz07:.confirm'''</imagesp></media/image731.png|533x301px]]li><li><p>Then you need to merge multiple compressed files into one, and then decompress</p></li></ol>
<span id="how-to-use-10test@test:~$ '''cat Android_12.9tar.10gz0* &gt; Android_12.1-inch-mipi-screen"></span>== How to use 10tar.9.10.1 inch MIPI screen ==gz'''
test@test:~$ '''Please make sure that the Android image used is the image of the following two versions:tar -xvf Android_12.tar.gz'''
'''OrangePi5Plus_RK3588_Android12_lcd_v1.x.x.img'''<span id="compile-the-source-code-of-android-12"></span>'''OrangePi5Plus_RK3588_Android12_spi-nvme_lcd_v1.x.x.img'''== Compile the source code of Android 12 ==
<ol style="list-style-type: decimal;">
<li><p>The screen needs to be assembled first, please refer First install the software packages required to compile the assembly method of the 10.1-inch MIPI screenAndroid12 source code</p><p>test@test:~$ '''sudo apt-get update'''</lip><lip>test@test:~$ '''sudo apt-get install -y git gnupg flex bison gperf build-essential \'''</p><p>The interface position of the LCD on the development board is shown in the figure below:'''zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \'''</p><p>[[File:./images/media/image732.png|317x80px]]'''lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache \'''</p><p>'''Note that the touch interface below is not for the LCD MIPI screen. It is currently a spare interface and cannot be used.libgl1-mesa-dev libxml2-utils xsltproc unzip'''</p><p>[[Filetest@test:./images/media/image512.png|334x70px]]~$ '''sudo apt-get install -y u-boot-tools'''</p></li><li><p>Connect the assembled screen to the LCD interface, connect the Type-C power supply to There is a build.sh compilation script in the boardsource code, and power on. After the system starts, you can see the screen display compilation parameters are as shown in the figure belowfollows</p><p>[[Filea.-'''U''':.compile uboot</images/media/image733p><p>b.png|517x345px]]-'''K''': compile kernel</p></lip>c.-'''A''': compile android</olp> <span id="ov13850p>d.-'''u''': package and generate update.img andupdate_spi_nvme.img</p><p>e.-ov13855'''o''': Compile the OTA package</p><p>f.-mipi-camera-test-method"'''d''': specify kernel dts</p></spanli>== OV13850 and OV13855 MIPI camera test method == Currently the development board supports two MIPI cameras<li><p>Compile uboot, kernel, OV13850 android and OV13855, the specific pictures are as follows:package them into update.img</p>
<ol style="list-style-type: lower-alpha;">
<li><p>OV13850 camera with 13 million MIPI interfaceThe 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>[[Filetest@test:~/ Android_12$ '''source build/envsetup.sh'''</p><p>test@test:~/imagesAndroid_12$ '''lunch rk3588_s-userdebug'''</p><p>test@test:~/mediaAndroid_12$ '''./image24build.png|268x151px]]sh -AUKu'''</p></li><li><p>OV13855 camera with 13 million MIPI interfaceThe 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>[[Filetest@test:~/ Android_12$ '''source build/envsetup.sh'''</p><p>test@test:~/ Android_12$ '''lunch rk3588_s-userdebug'''</imagesp><p>test@test:~/mediaAndroid_12$ '''./image25build.png|253x150px]]sh -AUKu'''</p></li><li><p>The adapter boards and FPC cables used by command to compile the image of the OV13850 and OV13855 cameras are 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 samecompilation is complete, but the positions of the two cameras connected to the adapter boards are differentfollowing 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 FPC cable is shown final image file will be placed in the figure below'''rockdev/Image-rk3588_s''' directory. Among them, '''update. Please note img''' is the boot image that supports TF card and eMMC, and '''update_spi_nvme.img''' is the FPC cable has a directionboot image of NVME SSD</p><p>[mailto:test@test:~OrangePi_4/rk3399-android-8.1$ test@test:~/Android_12$] '''cd rockdev/Image-rk3588s_s'''</p><p>[mailto:test@test:~OrangePi_4/rk3399-android-8. The end marked 1$ test@test:~/Android_12/rockdev/Image-rk3588s_s $] '''TO MBls update*''' needs to be inserted into </p><p>update.img update_spi_nvme.img</p></li><li><p>If you compile the camera interface image of the development boardBox version, and the end marked final generated image file will be placed in the '''rockdev/Image-rk3588_box''' directory</p><p>[mailto:test@test:~OrangePi_4/rk3399-android-8.1$ test@test:~/Android_12$] '''cd rockdev/Image-rk3588_box'''</p><p>[mailto:test@test:~OrangePi_4/rk3399-android-8.1$ test@test:~/Android_12/rockdev/Image-rk3588_box$] '''TO CAMERAls update*''' needs to be inserted into the camera adapter board</p><p>update.img update_spi_nvme.img</p></li></ol>
[[File:.<span id="instructions-for-using-the-orange-pi-os-droid-system"></images/media/image525.png|475x99px]]span>= Instructions for using the Orange Pi OS Droid system =
There are a total <span id="function-adaptation-of 3 camera interfaces on the camera adapter board, and only one can be used at a time, as shown in the figure below, -opi-os-droid-system"></span>== Function adaptation of which:OPi OS Droid system ==
<ol style{| class="listwikitable"|-| style="text-typealign: lower-alphaleft;"><li><p>| '''No.1 port is connected to OV13850 cameraFunction'''</p></li><li><p>| style="text-align: left;"| '''No.2 interface is connected to OV13855 cameraOPi OS Droid function adaptation'''</p></li><li><p>No. 3 interface is not used, just ignore it</p></li></ol>|- <div class| style="figuretext-align: left;">| '''HDMI TX1 display''' [[File| style="text-align:./images/media/image734.pngleft;"|333x199px'''OK'''|图片3]]- </div>The location of the camera interface on the Orange Pi 5 Plus development board is shown in the figure below| style="text-align:left;"| '''HDMI TX1 Audio''' [[File| style="text-align:./images/media/image735.pngleft;"|388x65px]]'''OK'''|-The method of inserting the camera into the CAM interface of the development board is as follows| style="text-align:left;"| '''HDMI TX2 display''' [[File| style="text-align:./images/media/image528.pngleft;"|285x132px]]'''OK'''|-After connecting the camera to the development board, we can use the following method to test the camera: <ol | style="listtext-align: left;"| '''HDMI TX2 Audio'''| style="text-typealign: lower-alphaleft;">| '''OK'''<li><p>Open the camera APP on the desktop</p>|-<p>[[File| style="text-align:./images/media/image736.pngleft;"|491x279px]]</p></li>'''HDMI RX display'''<li><p>Then you can see the preview screen of the camera</p><div class| style="figuretext-align: left;">| '''OK'''|-[[File| style="text-align:./images/media/image737.pngleft;"|379x213px'''HDMI RX Audio'''|Screenshot_20230317style="text-073757]]align: left;"| '''OK'''|-</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| style="text-align:./images/media/image738.pngleft;"|391x222px]]</p><p>The switching interface of taking pictures and recording is as follows, click Video to switch to '''videoUSB2.0X2''' recording mode</p><div class| style="figuretext-align: left;">| '''OK'''|-[[File| style="text-align:left;"| '''2./images/media/image739.png5G PCIe network port X2'''|386x217px|Screenshot_20230317style="text-074419]] </div><p>Click the position shown in the figure below to enter the camera setting interface</p><p>[[Filealign:./images/media/image740.pngleft;"|390x221px]]</p>'''OK'''<p>The setting interface of the camera is as follows:</p>|-<div class| style="figuretext-align: left;">| '''2.5G PCIe network port light''' [[File| style="text-align:./images/media/image741.pngleft;"|429x241px'''OK'''|Screenshot_20230317-075325]] </div></li></ol> <span id| style="pintext-interface-gpio-uart-spi-and-pwm-testalign: left;"></span>| '''Debug serial port'''| style== 26pin interface GPIO, UART, SPI and PWM test =="text-align: left;"| '''OK'''|-<span id| style="pintext-gpio-port-test-3align: left;"></span>| '''RTC'''| style=== 40pin GPIO port test ==="text-align: left;"| '''OK'''|-<ol | style="listtext-align: left;"| '''FAN interface'''| style="text-typealign: decimalleft;">| '''OK'''<li><p>First click on the wiringOP icon to open the wiringOP APP</p>|-<p>[[File| style="text-align:./images/media/image742.pngleft;"|552x183px]]</p></li><li><p>The main interface of wiringOP APP is displayed as shown in the figure below, and then click the '''GPIO_TESTeMMC extension interface''' button to open the GPIO test interface</p><p>[[File| style="text-align:./images/media/image743.pngleft;"|553x131px]]</p></li><li><p>The GPIO test interface is shown in the figure below. The two rows of '''CheckBoxOK''' buttons on the left are in one|-to| style="text-one correspondence with the 26pin pins. When the align: left;"| '''CheckBoxAP6275P-WIFI''' button is checked, the corresponding GPIO pin will be set to | style="text-align: left;"| '''OUTOK''' mode, and the pin level will be set to high level|-| style="text-align: left; when the checkbox is unchecked, the GPIO pin level will be set to low level; When the "| '''GPIO READALLAP6275P-BT''' button is pressed, information such as the wPi number, GPIO mode, and pin level can be obtained.</p><p>[[File| style="text-align:./images/media/image744.pngleft;"|553x288px]]</p></li><li><p>Then click the '''GPIO READALLOK''' button, the output information is as shown in the figure below:</p><p>[[File|-| style="text-align:./images/media/image745.pngleft;"|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 '''CheckBoxAX200-WIFI''' 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 | style="text-align: left;"| '''3.3vNO''', it means setting high level success</p><p>[[File|-| style="text-align:./images/media/image746.pngleft;"|204x392px]]</p></li><li><p>Then click the '''GPIO READALLAX200-BT''' button, you can see that the current pin 7 mode is | style="text-align: left;"| '''OUTNO''', and the pin level is high</p><p>[[File|-| style="text-align:./images/media/image747.pngleft;"|552x259px]]</p></li><li><p>Click the '''CheckBoxAX210-WIFI''' 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 | style="text-align: left;"| '''0vNO''', it means that the low level is set successfully.</p><p>[[File|-| style="text-align:./images/media/image748.pngleft;"|205x394px]]</p></li><li><p>Then click the '''GPIO READALLAX210-BT''' button, you can see that the current mode of pin 11 is OUT, and the pin level is low</p><p>[[File| style="text-align:./images/media/image749.pngleft;"|552x258px]]</p></li></ol>'''NO'''|-<span id| style="pintext-uartalign: left;"| '''RTL8852BE-testWIFI'''| style="text-2align: left;"></span>| '''OK'''=== 40pin UART test ===|- <ol | style="listtext-align: left;"| '''RTL8852BE-BT'''| style="text-typealign: decimalleft;"><li><p>| '''UART3OK''' and |-| style="text-align: left;"| '''UART8Recovery button''' are 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| style="text-align:./images/media/image750.pngleft;"|508x139px]]</p></li>'''OK'''<li><p>First click on the wiringOP icon to open the wiringOP APP</p>|-<p>[[File| style="text-align:left;"| '''Type-C interface USB3./images/media/image742.png0 function'''| style="text-align: left;"|552x183px]]</p></li><li><p>The main interface of wiringOP APP is displayed as shown in the figure below, and then click the '''UART_TESTOK''' button to open the UART test interface</p><p>[[File|-| style="text-align:./images/media/image751.pngleft;"|552x123px]]</p></li><li><p>The serial port test '''Type-C interface of the APP is shown in the figure below</p></li></ol>ADB function''' [[File| style="text-align:./images/media/image752.pngleft;"|552x310px]]'''OK'''|-<ol start| style="5text-align: left;" | '''Type-C interface DP display function'''| style="listtext-align: left;"| '''OK'''|-| style="text-typealign: decimalleft;"><li>Take the test of | '''UART3Type-C interface DP audio playback''' as an example below, select the | style="text-align: left;"| '''/dev/ttyS3OK''' node in the selection box, enter the baud rate you want to set in the edit box, and then click the |-| style="text-align: left;"| '''OPENUSB3.0 Hub''' button to open the | style="text-align: left;"| '''/dev/ttyS3OK''' node. After opening successfully, click the OPEN button becomes unselectable, and the |-| style="text-align: left;"| '''CLOSEswitch button''' button and | style="text-align: left;"| '''SENDOK''' button become selectable</li></ol>|-[[File:./images/media/image753.png|552x154px]] <ol startstyle="6text-align: left;" | '''infrared function'''| style="listtext-style-typealign: decimalleft;">| '''OK'''<li><p>Then use Dupont wire to short the RXD and TXD pins of uart3</p>|-<p>[[File| style="text-align:./images/media/image754.pngleft;"|455x121px]]</p></li><li><p>Then you can enter a character in the send edit box below, and click the '''SENDled light''' button to start sending</p></li></ol> [[File| style="text-align:./images/media/image755.pngleft;"|553x155px]]'''OK'''|-<ol start| style="8text-align: left;" | '''Onboard MIC'''| style="list-styletext-typealign: decimalleft;">| '''OK'''<li>If everything is normal, the received string will be displayed in the receiving box</li></ol>|- [[File| style="text-align:./images/media/image756.pngleft;"|553x290px]]'''headphone playback''' <span id| style="pintext-spi-test-3align: left;"></span>| '''OK'''=== 26pin SPI test ===|- <ol | style="listtext-align: left;"| '''headphone recording'''| style="text-typealign: decimalleft;">| '''OK'''<li><p>From the table below, the available SPIs for Orange Pi 5 Plus are SPI0 and SPI4</p>|-<p>[[File| style="text-align:./images/media/image389.pngleft;"|575x137px]]</p></li>'''SPK Horn'''<li><p>The Android system opens the SPI0 configuration by default. Here is a demonstration to test the SPI0 interface through the w25q64 module. First, connect the w25q64 device to the SPI0 interface.</p><p>[[File| style="text-align:./images/media/image757.pngleft;"|195x164px]]</p></li>'''OK'''<li><p>Then click the wiringOP icon to open the wiringOP APP</p>|-<p>[[File| style="text-align:./images/media/image742.pngleft;"|552x183px]]</p></li><li><p>The main interface of wiringOP APP is displayed as shown in the figure below, click the '''SPI_TEST40PIN GPIO''' button to open the SPI test interface</p><p>[[File| style="text-align:./images/media/image758.pngleft;"|552x123px]]</p></li><li><p>Then click the '''OPENOK''' button to initialize the SPI</p></li></ol>|-[[File:./images/media/image759.png|552x155px]] <ol startstyle="6text-align: left;" | '''40PIN I2C'''| style="listtext-style-typealign: decimalleft;"><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[0], and then click the | '''TRANSFEROK''' button</p><p>[[File:./images/media/image760.png|575x252px]]</p></li><li><p>Finally, the APP will display the read ID information</p></li></ol>-[[File:./images/media/image761.png|552x206px]] <ol startstyle="8text-align: left;" | '''40PIN SPI'''| style="list-styletext-typealign: decimalleft;">| '''OK'''<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| style="text-align:./images/media/image762.pngleft;"|374x126px]]</p></li></ol>'''40PIN UART''' <span id| style="pintext-pwm-testalign: left;"></span>| '''OK'''=== 26pin PWM test ===|- <ol | style="list-styletext-typealign: decimalleft;"><li><p>Android enables | '''PWM1040PIN PWM''' and | style="text-align: left;"| '''PWM14OK''' 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| style="text-align:./images/media/image742.pngleft;"|552x183px]]</p></li><li><p>Then click the '''PWM_TESTTF card start''' button on the main interface of wiringOP to enter the PWM test interface</p><p>[[File| style="text-align:./images/media/image764.pngleft;"|553x125px]]</p></li><li><p>The base address corresponding to PWM10 is '''febe0020OK''', and the base address corresponding to PWM14 is |-| style="text-align: left;"| '''febf0020SPI Flash+NVME solid state boot'''. Here, | style="text-align: left;"| '''fd8b0020.pwmOK''' is displayed on the right of pwmchip0. At this time, you need to click the drop|-| style="text-down option to select other pwmchips until align: left;"| '''febe0020OV13850 camera''' or | style="text-align: left;"| '''febf0020OK''' is displayed on the right.</p><p>[[File:./images/media/image765.png|553x111px]]</p></li>-<li><p>When the drop| style="text-down option menu selects align: left;"| '''pwmchip2OV13855 camera''', the corresponding base address of | style="text-align: left;"| '''PWM10OK''' is |-| style="text-align: left;"| '''febe0020GPU''' on the right</p><p>[[File| style="text-align:./images/media/image766.pngleft;"|553x102px]]</p></li><li><p>When the drop-down option menu selects '''pwmchip4OK''', the corresponding base address of |-| style="text-align: left;"| '''PWM14VPU''' is | style="text-align: left;"| '''febe0020OK''' on the right</p><p>[[File|-| style="text-align:./images/media/image767.pngleft;"|553x102px]]</p></li><li><p>Take the test of PWM10 as an example, we need to select '''pwmchip2NPU'''</p><p>[[File| style="text-align:./images/media/image766.pngleft;"|553x102px]]</p></li><li><p>Then confirm the PWM period, the default configuration is '''50000nsOK''', converted to PWM frequency is |-| style="text-align: left;"| '''20KHzMIPI LCD''', you can modify it yourself, click the open button to export | style="text-align: left;"| '''PWM10NO'''</p><p>[[File:./images/media/image768.png|552x101px]]</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></ol>-[[File:./images/media/image769.png|575x116px]] <ol startstyle="10text-align: left;" | '''HDMI CEC'''| style="list-styletext-typealign: decimalleft;">| '''NO'''<li>Then use an oscilloscope to measure the 31st pin in the 40pin of the development board, and you can see the following waveform</li></ol>|}
[[File:.<span id="test-method-of-hdmi-in-1"></images/media/image770.png|460x276px]]span>== Test method of HDMI In ==
<span idol style="howlist-tostyle-type: decimal;"><li><p>The location of the HDMI In interface on the development board is as follows:</p><p>[[File:media/image265.png|282x90px]]</p></li><li><p>Then use-adb-1"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:media/image11.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:media/image687.png|395x222px]]</p></spanli>== How <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 use ADB ==full screen</p><p>[[File:media/image688.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:media/image689.png|400x238px]]</p></li></ol>
<span id="use-the-data-cable-to-connect-to-adb-debuggingappendix"></span>=== Use the data cable to connect to adb debugging ==Appendix =
<ol stylespan id="listuser-stylemanual-type: decimal;update-history"><li><p>First prepare a good quality Type-C data cable</pspan><p>[[File:./images/media/image22.png|122x97px]]</p></li><li><p>Then connect the development board and Ubuntu PC through the Type-C data cable. The position of the Type-C interface of the development board is shown in the figure below:</p><div class="figure">= User Manual Update History ==
[[File:./images/media/image63.jpeg{|319x90pxclass="wikitable"|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题-2.jpg未标题-2]]| * *vers ion**
</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>| * *Date**
test@test:~$ | '''adb shellUpdated 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
console:/ $2. Instructions for using the Orange Pi OS Droid system
<ol start="6" style="list|-style| v1.2| 202 3-05-type: decimal;">26<li>Execute the following command to remount the Android system<| 1. Ubuntu/li></ol>Debian: HDMI IN test method
test@test:~$ '''adb root'''2. Delete the instructions for using the RTL8821CU USB WIFI module, this module is not recommended
test@test:~$ '''adb remount'''|-| v1.3| 202 3-05-29| 1. Update the method of using RKDevTool to burn the image to spiflash+ssd
<ol start="7" style="list-style-type: decimal;"><li>Then you can transfer files 2. Use RKDevTool to the Android system</li></ol>clear SPIFlash
test@test:~$ '''adb push example.txt /system/'''|}
<span id="useimage-networkupdate-connection-adb-debugginghistory"></span>=== Use network connection adb debugging =Image update history ==
'''Using the network adb does not require a data cable of the Typc{| class="wikitable"|-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.'''| * *Date**
<ol style="list-style-type: decimal;"><li><p>Make sure that the | '''service.adb.tcp.portUpdated Notes''' of the Android system is set to port number 5555</p><p>console:/ # '''getprop | grep &quot;adb.tcp&quot;'''</p>-| 202 3-05-19<p>[service| Orangepi5plus_1.adb0.tcp0_debian_bullseye_server_linux5.port]: ['''5555''']</p></li><li><p>If '''service.adb.tcp10.port''' is not set, you can use the following command to set the port number of network adb</p></li></ol>110
console:/ # '''setprop serviceOran gepi5plus_1.adb0.tcp0_debian_bullseye_desktop_xfce_linux5.port 5555'''10.110
console:/ # '''stop adbd'''Orangepi5p lus_1.0.0_debian_bullseye_desktop_kde-plasma_linux5.10.110
console:/ # '''start adbd'''Orangepi5plus_1.0.0_ubuntu_focal_server_linux5.10.110
<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 192O rangepi5plus_1.0.1680_ubuntu_focal_desktop_xfce_linux5.110.xxx''' '''(The IP address needs to be changed to the IP address of the development board)'''</p>110<p>* daemon not running; starting now at tcp:5037</p><p>* daemon started successfully</p><p>connected to 192Orangepi5plus_1.1680.10_ubuntu_jammy_server_linux5.xxx:5555</p><p>test@test:~$ '''adb devices'''</p><p>List of devices attached</p><p>192.16810.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>110
test@test:~$ '''adb shell'''O rangepi5plus_1.0.0_ubuntu_jammy_desktop_xfce_linux5.10.110
console:/ #Or angepi5plus_1.0.0_ubuntu_jammy_desktop_gnome_linux5.10.110
<span id="gOpios-usbdroid-remoteaarch64-controlopi5plus-tested23.05-by-android-box"></span>== 2linux5.10.110.tar.4G USB remote control tested by Android Box ==gz
<ol style="listOpios-styledroid-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="listaarch64-styleopi5plus-type: lower23.05-alpha;"><li><p>Contains a remote control</p><p>[[File:linux5./images/media/image77110.png|199x149px]]</p></li><li><p>A USB wireless receiver</p><p>[[File:110-spi-nvme./images/media/image772tar.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>gz
<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 ==OrangePi5Plus_RK3588_Android12_v1.0.0.tar.gz
<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:OrangePi5Plus_RK3588_Android12_lcd_v1./images/media/image7730.png|435x124px]]</p></li><li><p>Before testing infrared reception, we need to prepare an infrared remote control</p><div class="figure">0.tar.gz
[[File:OrangePi5Plus-RK3588_Android12-box_v1.0.0./images/media/image774tar.png|141x127px|6FBFE2FA-31A4-4a26-AC63-9A3E4E359FFF]]gz
</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 usedOrangePi5Plus_RK3588_Android12_spi-nvme_v1.'''</p></li><li><p>The Android Box system has been adapted to this remote control, and it can be used directly without other settings0.</p></li></ol>0.tar.gz
<span id="howOrangePi5Plus_RK3588_Android12_spi-to-use-hdmi-cec-function-in-android-box-system"></span>== How to use HDMI CEC function in Android Box system ==nvme_lcd_v1.0.0.tar.gz
'''HDMI CEC allows users to control all connected devices through HDMI with only one remote controlOrangePi5Plus-RK3588_Android12-box_spi-nvme_v1. Based on this function, we can control the development board with the remote control of the TV0.'''0.tar.gz
'''Before testing this function, please make sure your TV supports HDMI CECopenwrt-aarch64-opi5plus-23.'''05-linux5.10.110-ext4.img.gz
<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>* initial version
<span id="how|-to| 202 3-05-22| Op ios-compilearch-androidaarch64-12gnome-sourceopi5plus-code"></span>= How to compile Android 12 source code =23.05-linux5.10.110.img.xz
<span id="downloadopenwrt-androidrockchip -12armv8-sourcexunlong_orangepi-code"></span>== Download Android 12 source code ==5-plus-spi-squashfs-sysupgrade.bin
<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>* initial version
test@test:~$ '''cat Android_12|-| 202 3-05-24| Orangepi5p lus_1.tar0.gz0* &gt; Android_122_debian_bullseye_desktop_kde-plasma_linux5.tar10.gz'''110
test@test:~$ '''tar''' '''-xvf Android_12.tar.gz'''* Fix the problem that desktop audio cannot be used
<span id="compile-* Update thechromium browser to chromium-source-code-of-android-12"></span>== Compile the source code of Android 12 ==browser_110.0, which supports video playback in h264, h265, vp8, vp9 and av1 formats
<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| 202 3-mesa05-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>26<ol style="list| Opio s-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 arch-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_saarch64-userdebug'''</p><p>test@test:~/ Android_12$ '''./build.sh gnome-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_boxopi5plus-userdebug'''</p><p>test@test:~/ Android_12$ '''23./build.sh -AUKu'''</p></li></ol></li><li><p>After the compilation is complete, the following information will be printed</p><p>********rkImageMaker ver 205.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''' directorylinux5. Among them, '''update10.img''' is the boot image that supports TF card and eMMC, and '''update_spi_nvme110.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>xz
<span id="instructions-* Taskbar: remove calendar and music, add shortcuts for-using-the-orange-pi-os-droid-system"></span>= Instructions for using the Orange Pi OS Droid system =command line terminal and browser
<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>== ==OrangePi5Plus_RK3588_Android12_v1.0.1.tar.gz
<span id="section-117"></span>=== ===OrangePi5Plus_RK3588_Android12_v1.0.1_lcd.tar.gz
<ol start="6" style="listOrangePi5Plus_RK3588_Android12_v1.0.1_spi-style-type: decimal;"><li></li><li></li><li></li><li></li><li></li></ol>nvme.tar.gz
<span id="sectionOrangePi5Plus_RK3588_Android12_v1.0.1_lcd_spi-118"></span>== ==nvme.tar.gz
<span id="section* pre-119"></span>=== ===install google play store
<ol start="3" style="listOrangepi5p lus_1.0.4_debian_bullseye_desktop_kde-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>plasma_linux5.10.110
<span id="section-120"></span>=== ===* Support CTRL+ALT+T shortcut to open the command line terminal
<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>* Added shortcuts for konsole terminal and chromium browser in the taskbar
<span id="section-121"></span>=== ===* Optimize the display name of the audio device
<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>* Optimize test_hdmiin.sh test script
<span id="section-122"></span>== ==* Fix the problem that spiflash+nvme ssd cannot start
<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>Oran gepi5plus_1.0.4_debian_bullseye_desktop_xfce_linux5.10.110
<!-- --><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>* Support CTRL+ALT+T shortcut to open the command line terminal
<!-- --><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>== ==* Optimize the display name of the audio device
<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>* Optimize test_hdmiin.sh test script
<span id="section* Update the chromium browser to chromium-127"></span>= =browser_110.0, which supports video playback in h264, h265, vp8, vp9 and av1 formats
<span id="section-128"></span>== ==* 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
----- <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>== ==* Optimize test_hdmiin.sh test script
<ol * Fix the problem that spiflash+nvme ssd cannot start="5" style="list-style-type: decimal;"><li></li><li></li><li></li><li></li></ol>
Orangepi5plus_1.0.4_debian_bullseye_server_linux5.10.110<span id="section-136"br />Orangepi5plus_1.0.4_ubuntu_focal_server_linux5.10.110<br /span>== ==Orangepi5plus_1.0.4_ubuntu_jammy_server_linux5.10.110
<ol * Fix the problem that spiflash+nvme ssd cannot 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>
== ==
 
 
-----
 
 
-----