OrangePi_Zero3_H618_user manual_v1.5
OrangePi_Zero3_H618_user manual_v1.5
, Ltd
Orange Pi Zero 3
User Manual
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
Catalog
1. Basic features of Orange Pi Zero 3 ..................................................................................1
1.1. What is Orange Pi Zero 3 .................................................................................................... 1
2.2. Download the image of the development board and related materials ..........................12
2.3. Method of burning Linux image to micro SD card based on Windows PC .......................12
2.6. Instructions for using the micro linux system in the onboard SPI Flash ...........................30
2.10. The method of using the 13pin interface of the development board to expand the USB
interface ......................................................................................................................................41
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
3. Instructions for use of Debian/Ubuntu Server and Xfce desktop system ......................43
3.1. Supported linux image types and kernel versions ............................................................43
3.6. Instructions for operating the rootfs partition capacity of the linux system in the micro
SD card ........................................................................................................................................53
3.6.1. The first startup will automatically expand the capacity of the rootfs
partition in the micro SD card ............................................................................. 53
3.6.2. The method of prohibiting automatic expansion of the capacity of the
rootfs partition in the micro SD card ................................................................... 55
3.6.3. The method of manually expanding the capacity of the rootfs partition in
the micro SD card ................................................................................................57
3.6.4. How to reduce the capacity of the rootfs partition in the micro SD card62
3.7. Network connection test .................................................................................................. 66
3.12.1. How to play audio using the command line ...................................... 115
3.12.2. Testing audio methods on desktop systems ....................................... 116
3.13. Infrared receiving test ...................................................................................................118
3.18. 26pin interface GPIO, I2C, UART, SPI and PWM test .................................................... 126
3.23.1. Python source code compilation and installation method ................. 162
3.23.2. Python to replace the pip source method ...........................................163
3.24. The Method Of Installing The Docker ...........................................................................164
3.28. “face_recognition” The installation and testing method of the face recognition library176
3.35.1. How to upload files to the development board Linux system in Ubuntu
PC ...................................................................................................................... 243
3.35.2. How to upload files to the development board Linux system in
Windows PC ...................................................................................................... 246
3.36. Instructions for using the switch logo .......................................................................... 251
3.37. How to shut down and restart the development board .............................................. 251
6.7.1. Mounting USB storage devices from the command line .....................291
6.7.2. Mount the USB storage device in the LuCI management interface .... 292
6.8. USB wireless network card test ...................................................................................... 295
6.8.1. How to connect to WIFI hotspot using USB wireless network card ...296
6.8.2. How to create a WIFI hotspot using a USB wireless network card .... 299
6.9. Installing packages via the command line ...................................................................... 303
6.10.1. View the list of available packages on the system ............................ 304
6.10.2. Installation Package Example ............................................................305
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
8.10. How to check the IP address of the Ethernet port ....................................................... 325
8.14. The method of using MiracastReceiver to cast the mobile phone screen to the
development board .................................................................................................................. 332
The Orange Pi development board is not just a consumer product, but is designed for
anyone who wants to use technology to create and innovate. It's a simple, fun, and useful
tool you can use to shape the world around you.
www.orangepi.org 1 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
www.orangepi.org 2 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
Top view:
Bottom view:
www.orangepi.org 3 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
www.orangepi.org 4 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
www.orangepi.org 5 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
Current feedback is that there are some micro SD cards that have problems starting on Orange
Pi Zero 3
In addition, the micro SD card that can be used normally on other types of
development boards does not guarantee that it can be started normally on Orange
Pi Zero 3, please pay special attention to this point.
www.orangepi.org 6 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
3) Micro HDMI to HDMI cable, used to connect the development board to an HDMI
monitor or TV for display
Note, please do not use the relatively wide Micro HDMI adapter as shown in the
figure below, because the distance between the Micro HDMI interface of the
development board and the Type-C power interface is relatively small, it may cause
that the two cannot be inserted into the development board at the same time. plate.
4) Power supply, if you have a 5V/2A or 5V/3A power head, you only need to prepare a
USB-to-Type C interface data cable as shown in the picture on the left below, and you
can also use a cable similar to the picture on the right below A 5V/2A or 5V/3A
high-quality USB Typc C interface power adapter integrated with the power head.
www.orangepi.org 7 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
b. The way to insert the expansion board into the development board is as follows,
remember not to insert it backwards
c. The 13pin pin header on the Orange Pi Zero 3 development board can be
connected to the expansion board to expand the functions that are not on the
development board. The functions that the expansion board can use are as
follows
1 Microphone (Mic) No support, no support, no support! ! !
www.orangepi.org 8 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
6) 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
www.orangepi.org 9 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
Note that the remote control of the air conditioner or the remote control of the
TV cannot control the Orange Pi development board. By default, only the remote
control provided by Orange Pi can.
8) 100M or 1000M network cable, used to connect the development board to the Internet
9) AV video cable, if you want to display video through the AV interface instead of the
HDMI interface, then you need to connect the development board to the TV through the
AV video cable
10) Heat sink, if you are worried that the temperature of the development board is too
high, you can add a heat sink, and the heat sink can be pasted on the H618 chip
www.orangepi.org 10 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
11) 5V cooling fan, as shown in the figure below, both 5V and GND pins on the 26pin
and 13pin interfaces of the development board can be connected to the cooling fan. The
spacing between the 26pin and 13pin headers is 2.54mm. Refer to this Specifications can
be purchased.
Note that the 5V pin can be used directly after the development board is
plugged in without other settings, and the output voltage of the 5V pin cannot be
adjusted or turned off by software.
13) USB to TTL module and DuPont line, when using the serial port debugging function,
need USB to TTL module and DuPont line to connect the development board and
computer
www.orangepi.org 11 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
Note that the TTL level used by the development board is 3.3v. In addition to
the USB to TTL module shown in the above figure, other similar 3.3v USB to TTL
modules are generally available.
14) X64 computer with Ubuntu and Windows operating systems installed
1 Ubuntu22.04 PC Optional, used to compile Android and Linux source code
2 Windows PC For burning Android and Linux images
Note that the Linux image mentioned here specifically refers to the image of
www.orangepi.org 12 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
Linux distributions such as Debian or Ubuntu downloaded from the Orange Pi data
download page.
2.3.1. How to use balenaEtcher to burn Linux image
1) First prepare a micro SD card with a capacity of 8GB or more. The transmission speed
of the micro SD card must be class 10 or above. It is recommended to use a micro SD
card of SanDisk and other brands
2) Then use the card reader to insert the micro SD card into the computer
3) 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 ".img" is
the image file of the operating system. The size is generally more than 1GB
5) After entering the balenaEtcher download page, click the green download button to
jump to the place where the software is downloaded
6) 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
www.orangepi.org 13 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
www.orangepi.org 14 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
8) The specific steps to use balenaEtcher to burn the Linux image are as follows
a. First select the path of the Linux image file to be burned
b. Then select the drive letter of the micro SD card
c. Finally click Flash to start burning the Linux image to the micro SD
card
9) 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 micro SD card
www.orangepi.org 15 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
10) After burning the Linux image, balenaEtcher will also verify the image burned to the
micro SD 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.
11) 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 micro SD card
and insert it into the micro SD card slot of the development board. .
www.orangepi.org 16 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
2) Then use the card reader to insert the micro SD card into the computer
b. After downloading, unzip and install directly, and then open the software
c. If only a micro SD card is inserted into the computer, the drive letter of the
micro SD card will be displayed in the " Select card " column. If multiple USB
storage devices are inserted into the computer, you can select the corresponding
drive letter of the micro SD card through the drop-down box
www.orangepi.org 17 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
d. hen click " Format ", a warning box will pop up before formatting, and
formatting will start after selecting "Yes (Y)"
e. After formatting the micro SD card, the message shown in the figure below will
pop up, click OK
4) 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 ".img" is
the image file of the operating system. The size is generally more than 1GB
www.orangepi.org 18 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
c. After the image writing is completed, click the "Exit" button to exit, and then
you can pull out the micro SD card and insert it into the development board to
start
Note that the Linux image mentioned here specifically refers to the image of
Linux distributions such as Debian or Ubuntu downloaded from the Orange Pi data
download page, and the Ubuntu PC refers to the personal computer with the
Ubuntu system installed.
1) First prepare a micro SD card with a capacity of 8GB or more. The transmission speed
of the micro SD card must be class 10 or above. It is recommended to use a micro SD
card of SanDisk and other brands
www.orangepi.org 19 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
2) Then use the card reader to insert the micro SD card into the computer
4) After entering the balenaEtcher download page, click the green download button to
jump to the place where the software is downloaded
6) 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 ".img" is
the image file of the operating system. The size is generally above 1GB. The
decompression command for the compressed package ending in 7z is as follows:
test@test:~$ 7z x orangepizero3_1.0.0_ubuntu_focal_desktop_linux6.1.31.7z
www.orangepi.org 20 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
test@test:~$ ls orangepizero3_1.0.0_ubuntu_focal_desktop_linux6.1.31.*
orangepizero3_1.0.0_ubuntu_focal_desktop_linux6.1.31.7z
orangepizero3_1.0.0_ubuntu_focal_desktop_linux6.1.31.sha # checksum file
orangepizero3_1.0.0_ubuntu_focal_desktop_linux6.1.31.img # mirror file
7) After decompressing the image, you can first use the sha256sum -c *.sha command
to calculate whether the checksum is correct. If the prompt is successful, it means that the
downloaded image is correct, and you can safely burn it to the micro SD card. If it
prompts that the checksum does not match, it means there is a problem with the
downloaded image, please try to download again
test@test:~$ sha256sum -c *.sha
orangepizero3_1.0.0_ubuntu_focal_desktop_linux6.1.31.img: success
9) The specific steps to use balenaEtcher to burn the Linux image are as follows
a. First select the path of the Linux image file to be burned
b. Then select the drive letter of the micro SD card
c. Finally click Flash to start burning the Linux image to the micro SD card
www.orangepi.org 21 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
10) 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 micro SD card
11)After burning the Linux image, balenaEtcher will also verify the image burned into
the micro SD 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
www.orangepi.org 22 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
12) 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 micro SD card
and insert it into the micro SD card slot of the development board for use
The Android image of the development board can only be burned into the micro
www.orangepi.org 23 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
SD card under the Windows platform using the PhoenixCard software, and the
version of the PhoenixCard software must be PhonixCard-4.2.8.
Please do not use software for burning Linux images, such as
Win32Diskimager or balenaEtcher, to burn Android images.
In addition, the PhoenixCard software does not have versions for Linux and
Mac platforms, so it is impossible to burn Android images to micro SD cards under
Linux and Mac platforms.
1) First, please make sure that the Windows system has installed Microsoft Visual C++
2008 Redistrbutable -
x86
www.orangepi.org 24 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
3) Microsoft Visual C++ 2008 Redistrbutable - x86 the installation package can be
downloaded from the official tool of Orange Pi Zero 3, or you can go to the official
website of Microsoft to download
4) Then prepare a micro SD card with 8GB or larger capacity. The transmission speed of
the micro SD card must be class 10 or above. It is recommended to use a micro SD card
of SanDisk and other brands
5) Then use the card reader to insert the micro SD card into the computer
6) Download the Android image and PhoenixCard programming tool from the Orange
Pi data download page. Please ensure that the version of the PhonenixCrad tool is
PhonixCard-4.2.8. Please do not use the PhonixCard software version lower than 4.2.8
www.orangepi.org 25 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
to burn the Android image. There may be problems with the Android image flashed by
this version of the PhonixCard tool
7) Then use the decompression software to decompress the compressed package of the
downloaded Android image. Among the decompressed files, the file ending with ".img" is
the Android image file, and the size is more than 1GB.
9) After opening PhoenixCard, if the micro SD card is recognized normally, the drive
letter and capacity of the micro SD card will be displayed in the middle list. Please make
sure that the displayed drive letter is consistent with the drive letter of the micro SD
card you want to burn. If there is no display, you can try to unplug the micro SD card,
or click the "Refresh Drive Letter" button in PhoenixCard
www.orangepi.org 26 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
10) After confirming the drive letter, format the micro SD card first, and click the
"Recover Card" button in PhoenixCard (if the "Recover Card" button is gray and
cannot be pressed, you can first click the "Refresh Drive Letter" button)
If there is a problem with formatting, please try to unplug and insert the micro
SD card and then test again. If the problem still exists after re-plugging and
inserting the micro SD card, you can restart the Windows computer or try another
computer.
11) Then start to write the Android image into the micro SD card
a. First select the path of the Android image in the "Firmware" column
b. Select "Activation Card" in "Card Type"
c. Then click the "burn card" button to start burning
www.orangepi.org 27 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
12) After burning, the display of PhoenixCard is as shown in the figure below. At this
time, click the "Close" button to exit PhoenixCard, and then you can pull out the micro
SD card from the computer and insert it into the development board to start
www.orangepi.org 28 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
After burning the Android system, the micro SD card can only see a 128 MB
partition in Windows, and the displayed partition is as shown in the figure below
(some computers may pop up more than 20 disk partitions, but only the 128 MB
partition can be opened. partition), please note that this is normal, please do not
think that the micro SD card is burned out. The reason for this is that the Android
system has a total of more than 20 partitions, but most of them cannot be recognized
normally in the Windows system. At this point, please safely unplug the micro SD
card and insert it into the development board to start it.
After the Android system starts, use the following command to see the twenty or
so partitions in the micro SD card:
www.orangepi.org 29 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
Use the df -h command to see that the 16GB micro SD card has about 11 GB of
space available after burning the Android system (more than 20 partitions will not
be mounted to the Android system, focus on these to the partition).
There is a tiny linux system programmed into SPI Flash by default, which is mainly used
to prove that the development board can start normally. When you get the development
board, you don't need to burn the system into the micro SD card, you only need to
connect the Type-C power supply to the development board to start the micro linux
www.orangepi.org 30 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
system in the SPI Flash. The main functions of this system are:
a) During the u-boot start-up phase, the red LED light will be lit, and after entering
the kernel, the red LED light will be turned off and the green LED light will be set to
flash;
b) If the development board is connected to an HDMI screen, after the system starts
up, the command line interface of the micro-linux system can be seen on the HDMI
screen;
c) If the development board is connected with a USB keyboard, some simple linux
commands can be run on the command line, such as ls, cd, etc.
Due to the limited functions of the tiny linux system in SPI Flash, if you want to use
all the functions of the development board normally, please burn the linux image or
Android image to the micro SD card, and then use it.
1) Insert the micro SD card with the burned image into the micro SD card slot of the
Orange Pi development board
2) The development board has a Micro HDMI interface, and the development board can
be connected to a TV or HDMI display through a Micro HDMI to HDMI cable
3) If you have purchased a 13pin expansion board, you can plug the 13pin expansion
board into the 13pin interface of the development board
4) Connect the USB mouse and keyboard to control the Orange Pi development board
5) The development board has an Ethernet port, which can be plugged into a network
cable for Internet access
6) Connect a high-quality power adapter with a 5V/2A (5V/3A is also available) 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.
www.orangepi.org 31 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
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 Type C data cable
and try again.
7) Then turn on the switch of the power adapter, if everything is normal, the HDMI
monitor can see the system startup screen at this time
8) 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
www.orangepi.org 32 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
3) The GND, TX and RX pins of the USB to TTL module need to be connected to the
debugging serial port of the development board through a DuPont line
a. Connect the GND of the USB to TTL module to the GND of the development
board
b. The RX of the USB to TTL module is connected to the TX of the development
board
c. Connect the TX of the USB to TTL module to the RX of the development
board
4) The schematic diagram of connecting the USB to TTL module to the computer and
the Orange Pi development board is as follows
The TX and RX of the serial port need to be cross-connected. If you don’t want
to carefully distinguish the order of TX and RX, you can connect the TX and RX of
www.orangepi.org 33 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
the serial port casually first. If there is no output from the test serial port, then
exchange the order of TX and RX. One order is right.
2.8.2. How to use the debugging serial port on the Ubuntu platform
There are many serial port debugging software that can be used under Linux,
such as putty, minicom, etc. The following demonstrates how to use putty.
1) First, insert the USB-to-TTL module into the USB port of the Ubuntu computer. If the
connection and identification of the USB-to-TTL module is normal, you can see the
corresponding device node name under /dev on the Ubuntu PC. Remember this node
name, and then set the serial port software will be used
test@test:~$ ls /dev/ttyUSB*
/dev/ttyUSB0
4) After executing the putty command, the following interface will pop up
www.orangepi.org 34 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
www.orangepi.org 35 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
7) After setting the setting interface of the serial port, return to the Session interface
a. First select the Connection type as Serial
b. Then click the Open button to connect to the serial port
8) Then start the development board, and you can see the Log information output by the
system from the opened serial port terminal
www.orangepi.org 36 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
MobaXterm. This software has a free version and can be used without buying a
serial number.
1) Download MobaXterm
a. Download MobaXterm website as follows
https://mobaxterm.mobatek.net/
b. After entering the MobaXterm download page, clickGET XOBATERM NOW!
d. Then select the Portable version. After downloading, you don’t need to install it,
just open it and use it
www.orangepi.org 37 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
3) After opening the software, the steps to set up the serial port connection are as follows
a. Open the session settings interface
b. Select the serial port type
c. Select the port number of the serial port (select the corresponding port number
according to the actual situation), if you cannot see the port number, please use
360 Driver Master to scan and install the driver for the USB-to-TTL serial port
chip
d. Select the baud rate of the serial port as 115200
e. Finally click the "OK" button to complete the setup
www.orangepi.org 38 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
4) After clicking the "OK" 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
www.orangepi.org 39 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
The power supply method we recommend for the development board is to use
the 5V/2A or 5V/3A Type C interface power cord to plug into the Type C power
interface of the development board for power supply. If you need to use the 5V pin
in the 26pin or 13pin interface to power the development board, please make sure
that the power cable used can meet the power supply requirements of the
development board. If the use is unstable, please switch back to the Type C power
supply.
1) First, you need to prepare a power cord as shown in the figure below
The power cord shown in the picture above can be bought on Amazon, please
search and buy by yourself.
2) Use the 5V pin in the 26pin or 13pin interface to supply power to the development
board. The connection method of the power line is as follows
a. The USB A port of the power cord shown in the above figure needs to be
plugged into the 5V/2A or 5V/3A power adapter connector (it is not
recommended to plug into the USB port of the computer for power supply.
If there are too many peripherals connected to the development board, use
will be unstable)
b. The red DuPont wire needs to be plugged into the 5V pin of the 26pin or 13pin
interface of the development board
c. The black Dupont wire needs to be inserted into the GND pin of the 26pin or
13pin interface
d. The positions of the 5V pin and GND pin of the 26pin and 13pin interfaces in
www.orangepi.org 40 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
the development board are shown in the figure below, remember not to reverse
the connection.
2) If there is no 13pin expansion board, you can use a 4pin 2.54mm DuPont to USB2.0
female cable to expand the USB interface. The specific method is as follows:
a. First, you need to prepare a 4pin 2.54mm Dupont to USB2.0 female cable (this
cable can be bought on Amazon, please search and buy by yourself), as shown in
the figure below:
www.orangepi.org 41 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
e. If you need to connect two USB devices to the 13pin interface at the same time,
you will find that the 5V and GND pins on the 13pin interface are not enough. At
www.orangepi.org 42 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
this time, one of the USB devices can use the 5V and GND pins in the 26pin
interface. The location is as shown in the figure below Shown:
After entering the download page of the corresponding development board on the
Orange Pi data download page, you can see the following download options. In the
description below, the Ubuntu image and the Debian image are generally referred to
www.orangepi.org 43 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
www.orangepi.org 44 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
www.orangepi.org 45 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
Mali GPU NO NO
Video codec NO NO
TV-OUT NO NO
1) In this manual, all commands that need to be entered in the Linux system will be
marked with the following box
As shown below, the content in the yellow box indicates the content that needs
special attention, except for the commands in it.
www.orangepi.org 46 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
The # at the end of the prompt indicates that the current user of the system is the
root user and can execute any command you want
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
www.orangepi.org 47 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
Orange Pi, please do not suspect that the above password is wrong, but look for
other reasons.
3.4.2. How to set automatic terminal login in linux system
1) The Linux system automatically logs in to the terminal by default, and the default
login user name is orangepi
2) Use the following command to set the root user to automatically log in to the terminal
orangepi@orangepi:~$ sudo auto_login_cli.sh root
4) Use the following command to set the orangepi user to automatically log in to the
terminal again
orangepi@orangepi:~$ sudo auto_login_cli.sh orangepi
3.4.3. Instructions for automatic login of linux desktop version system
1) After the desktop system starts, it will automatically log in to the desktop without
entering a password
www.orangepi.org 48 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
2) Run the following command to prohibit the desktop system from automatically
logging into the desktop
orangepi@orangepi:~$ sudo disable_desktop_autologin.sh
3) Then restart the system and a login dialog box will appear, at which point a Linux
system default login account and password is required to enter the system
www.orangepi.org 49 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
2) Then restart the system, and the root user will automatically log in to the desktop
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.
Also note that this is not a bug, since pulseaudio is not allowed to run as root.
3) Execute the following command to set the desktop system to log in automatically with
the orangepi user again
orangepi@orangepi:~$ sudo desktop_login.sh orangepi
3.4.5. The method of disabling the desktop in the Linux desktop
version system
1) First enter the following command on the command line, Please remember to add
sudo permission
orangepi@orangepi:~$ sudo systemctl disable lightdm.service
2) Then restart the Linux system and you will find that the desktop will not be displayed
orangepi@orangepi:~$ sudo reboot
www.orangepi.org 50 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
1) There are two LED lights on the development board, one is green and the other is red.
When the system starts, the default display of the LED lights is as follows:
Green light Red light
u-boot startup phase off on
The kernel boots into the system flashing off
GPIO interface PC13 PC12
The two LED lights on the development board are controlled by software.
When you get the development board, you may find that even if the micro SD
card with the system programmed is not inserted into the development board, the
two LED lights will be on after the development board is connected to the power
supply. This is because the 16MB on the development board SPI Flash will burn a
miniature linux system by default when leaving the factory. This system will light up
the red light during the u-boot startup phase. After entering the kernel, it will turn
off the red light and set the green light to flash.
If the linux system in the SPI Flash is cleared, then the two LED lights on the
development board will not light up after the power is turned on without inserting
the micro SD card with the system programmed
2) The method of setting the green light on and off and flashing is as follows:
Note that the following operations should be performed under the root user.
a. First enter the setting directory of the green light
root@orangepi:~# cd /sys/class/leds/green_led
b. The command to set the green light to stop flashing is as follows
root@orangepi:/sys/class/leds/green_led# echo none > trigger
c. The command to set the green light to be on is as follows
root@orangepi:/sys/class/leds/green_led# echo default-on > trigger
d. The command to set the green light to flash is as follows
root@orangepi:/sys/class/leds/green_led# echo heartbeat > trigger
3) The method of setting the red light on/off and flashing is as follows:
www.orangepi.org 51 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
Note that the following operations should be performed under the root user.
a. First enter the setting directory of the red light
root@orangepi:~# cd /sys/class/leds/red_led
b. The command to set the red light to be on is as follows
root@orangepi:/sys/class/leds/red_led# echo default-on > trigger
c. The command to set the flashing red light is as follows
root@orangepi:/sys/class/leds/red_led# echo heartbeat > trigger
d. The command to set the red light to stop flashing is as follows
root@orangepi:/sys/class/leds/red_led# echo none > trigger
4) If you do not need the LED light to flash after booting, you can use the following
method to turn off the green light flashing
a. First run orangepi-config, common users remember to add sudo permission
orangepi@orangepi:~$ sudo orangepi-config
b. Then select System
d. Then use the arrow keys on the keyboard to navigate to the position shown in the
www.orangepi.org 52 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
g. Then select <Reboot>to restart the system for the configuration to take effect
h. After restarting and entering the system, you can see that the two LED lights on
the development board will not light up
3.6.1. The first startup will automatically expand the capacity of the
rootfs partition in the micro SD card
1) After burning the Linux image of the development board into the micro SD card, you
can check the capacity usage of the micro SD card on the Ubuntu computer, the steps
are as follows:
Note that this step does not affect the automatic expansion of the Linux system
www.orangepi.org 53 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
of the development board. Here I just want to explain how to check the capacity of
the micro SD card after burning the Linux image on the micro SD card.
a. First install the gparted software on the Ubuntu computer
test@test:~$ sudo apt install -y gparted
b. Then open gparted
test@test:~$ sudo gparted
c. After opening gparted, you can select the micro SD card in the upper right corner,
and then you can see the usage of the micro SD card capacity
d. The figure above shows the situation of the micro SD card after burning the
Linux desktop version system. It can be seen that although the total capacity of
the micro SD card is 16GB (displayed as 14.84GiB in GParted), the rootfs
partition (/dev/ sdc1) actually allocated only 4.05GiB, leaving 10.79GiB
unallocated
2) Then you can insert the micro SD card that has burned the Linux system into the
development board to start. When the micro SD card starts the Linux system for the first
time, it will call the orangepi-resize-filesystem script automatically through the systemd
service orangepi-resize-filesystem.service The expansion of the rootfs partition, so
there is no need to manually expand the capacity
3) After logging in to the system, you can use the df -h command to check the size of the
rootfs. If it is consistent with the actual capacity of the micro SD card, it means that the
automatic expansion is running correctly.
orangepi@orangepi:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 430M 0 430M 0% /dev
www.orangepi.org 54 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
4) After starting the Linux system for the first time, we can also remove the micro SD
card from the development board and reinsert it into the Ubuntu computer, and then use
gparted to check the status of the micro SD card again, as shown in the figure below, the
rootfs partition (/dev/ The capacity of sdc1) has been expanded to 14.69GiB
It should be noted that the Linux system has only one partition in ext4 format,
and does not use a separate BOOT partition to store files such as the kernel image,
so there is no problem of expanding the BOOT partition.
3.6.2. The method of prohibiting automatic expansion of the capacity
of the rootfs partition in the micro SD card
1) First burn the linux image of the development board to the micro SD card on the
Ubuntu computer (Windows not available), and then re-plug and insert the micro SD
card
2) Then the Ubuntu computer will automatically mount the partition of the micro SD
card. If the automatic mounting is normal, use the ls command to see the following output
test@test:~$ ls /media/test/opi_root/
bin boot dev etc home lib lost+found media mnt opt proc root run
sbin selinux srv sys tmp usr var
3) Then switch the current user to the root user on the Ubuntu computer
test@test:~$ sudo -i
[sudo] password for test:
www.orangepi.org 55 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
root@test:~#
4) Then enter the root directory of the linux system in the micro SD card and create a
new file named .no_rootfs_resize
root@test:~# cd /media/test/opi_root/
root@test:/media/test/opi_root/# cd root
root@test:/media/test/opi_root/root# touch .no_rootfs_resize
root@test:/media/test/opi_root/root# ls .no_rootfs*
.no_rootfs_resize
5) Then you can uninstall the micro SD card, and then pull out the micro SD card and
insert it into the development board to start. When the linux system starts, when the
file.no_rootfs_resize is detected in the /root directory, the rootfs will not be
automatically expanded.
6) After entering the Linux system after prohibiting automatic expansion of rootfs, you
can see that the total capacity of the rootfs partition is only 4GB (the image of the desktop
version is tested here), which is much smaller than the actual capacity of the micro SD
card, indicating that the automatic expansion of rootfs is prohibited.
orangepi@orangepi:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 925M 0 925M 0% /dev
tmpfs 199M 3.2M 196M 2% /run
/dev/mmcblk0p1 4.0G 3.2G 686M 83% /
7) If you need to re-expand the capacity of the rootfs partition in the micro SD card, just
execute the following command, and then restart the Linux system of the development
board.
Note, please execute the following commands under the root user.
root@orangepi:~# rm /root/.no_rootfs_resize
root@orangepi:~# systemctl enable orangepi-resize-filesystem.service
root@orangepi:~# sudo reboot
After restarting, enter the Linux system of the development board again, and you can
see that the rootfs partition has been expanded to the actual capacity of the micro SD card
www.orangepi.org 56 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
root@orangepi:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 925M 0 925M 0% /dev
tmpfs 199M 3.2M 196M 2% /run
/dev/mmcblk0p1 15G 3.2G 12G 23% /
3.6.3. The method of manually expanding the capacity of the rootfs
partition in the micro SD card
If the total capacity of the micro SD card is large, such as 128GB, you do not
want the rootfs partition of the Linux system to use all the capacity of the micro SD
card, but only want to allocate a part of the capacity, such as 16GB, to the Linux
system, and then the remaining capacity of the micro SD card can be used for other
use. Then you can use the content introduced in this section to manually expand the
capacity of the rootfs partition in TF.
1) First burn the linux image of the development board to the micro SD card on the
Ubuntu computer (Windows not available), and then re-plug and insert the micro SD
card
2) Then the Ubuntu computer will automatically mount the partition of the micro SD
card. If the automatic mounting is normal, use the ls command to see the following output
test@test:~$ ls /media/test/opi_root/
bin boot dev etc home lib lost+found media mnt opt proc root run
sbin selinux srv sys tmp usr var
3) Then switch the current user to the root user on the Ubuntu computer
test@test:~$ sudo -i
[sudo] password for test:
root@test:~#
4) Then enter the root directory of the linux system in the micro SD card and create a
new file named .no_rootfs_resize
root@test:~# cd /media/test/opi_root/
root@test:/media/test/opi_root/# cd root
root@test:/media/test/opi_root/root# touch .no_rootfs_resize
root@test:/media/test/opi_root/root# ls .no_rootfs*
.no_rootfs_resize
www.orangepi.org 57 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
7) After opening gparted, you can select the micro SD card in the upper right corner, and
then you can see the usage of the micro SD card capacity. The figure below shows the
situation of the micro SD card after burning the Linux desktop version system. It can be
seen that although the total capacity of the micro SD card is 16GB (displayed as
14.84GiB in GParted), the rootfs partition (/dev/sdc1) Only 4.05GiB were actually
allocated, leaving 10.79GiB unallocated
9) Click the right mouse button again to see the operation options shown in the figure
below. If the micro SD card has been mounted, first you need to Umount the rootfs
www.orangepi.org 58 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
10) Then select the rootfs partition again, click the right mouse button, and select
Resize/Move to start expanding the size of the rootfs partition
11) After the Resize/Move option is turned on, the following setting interface will pop
up
www.orangepi.org 59 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
12) Then you can directly drag the location shown in the figure below to set the size of
the capacity, or you can set the size of the rootfs partition by setting the number in New
size(MiB)
13) After setting the capacity, click Resize/Move in the lower right corner
14) After confirming that it is correct, click the green button shown in the figure below√
www.orangepi.org 60 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
15) Then select Apply, it will officially start to expand the capacity of the rootfs partition
17) Then you can pull out the micro SD card, insert it into the development board and
start it up. After entering the Linux system of the development board, if you can see that
the size of the rootfs partition is the same as the size set before, it means manual
Expansion succeeded
root@orangepi:~# df -h
Filesystem Size Used Avail Use% Mounted on
www.orangepi.org 61 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
1) First insert the micro SD card you want to operate in the Ubuntu computer
(Windows not available)
4) After opening gparted, you can select the micro SD card in the upper right corner, and
then you can see the usage of the micro SD card capacity
www.orangepi.org 62 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
6) Click the right mouse button again to see the operation options shown in the figure
below. If the micro SD card has been mounted, first you need to Umount the rootfs
partition of the micro SD card
7) Then select the rootfs partition again, click the right mouse button, and select
Resize/Move to start setting the size of the rootfs partition
www.orangepi.org 63 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
8) After the Resize/Move option is turned on, the following setting interface will pop up
9) Then you can directly drag the location shown in the figure below to set the size of the
capacity, or you can set the size of the rootfs partition by setting the number in New
sieze(MiB)
10) After setting the capacity, click Resize/Move in the lower right corner
www.orangepi.org 64 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
11) After confirming that it is correct, click the green button shown in the figure below√
12) Then select Apply, and the expansion of the rootfs partition will officially start
www.orangepi.org 65 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
14) Then you can pull out the micro SD card, insert it into the development board and
start it up. After entering the Linux system of the development board, if you can use the
df -h command to see that the size of the rootfs partition is the same as the size set before,
it means that the size has been reduced. capacity success
root@orangepi:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 925M 0 925M 0% /dev
tmpfs 199M 3.2M 196M 2% /run
/dev/mmcblk0p1 7.7G 3.2G 4.4G 42% /
2) After the system starts, it will automatically assign an IP address to the Ethernet card
through DHCP, without any other configuration
3) The command to view the IP address in the Linux system of the development board is
as follows:
Please do not copy the following commands. For example, the network node
name in debian12 and ubuntu24.04 is end0, and the following commands need to be
changed to ip a s end0.
orangepi@orangepi:~$ ip a s eth0
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
www.orangepi.org 66 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
There are three ways to check the IP address after the development board
starts:
1. Connect the HDMI monitor, then log in to the system and use the ip a s eth0
command to view the IP address
2. Enter the ip a s eth0 command in the debugging serial terminal to view the IP
address
3. 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:
A) First check whether the Linux system has started normally. If the green
light of the development board is flashing, it is generally started normally. If only
the red light is on, or the red and green lights are not on, it means that the system
has not started normally;
B)Check whether the network cable is plugged in tightly, or try another
network cable;
C)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
assigned normally but cannot be seen in the router);
D)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.
www.orangepi.org 67 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
4) The command to test the network connectivity is as follows, the ping command can be
interrupted through the shortcut key of Ctrl+C
Please do not copy the following commands. For example, the network node
name in debian12 and ubuntu24.04 is end0, and the following command needs to be
changed to ping www.baidu.com -I end0.
orangepi@orangepi:~$ ping www.baidu.com -I eth0
PING www.a.shifen.com (14.215.177.38) from 192.168.1.12 eth0: 56(84) bytes of data.
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=56 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=56 time=6.80 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=3 ttl=56 time=6.26 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=4 ttl=56 time=7.27 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 6.260/6.770/7.275/0.373 ms
3.7.2. WIFI connection test
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.
1) First log in to the linux system, there are the following three ways
a. If the development board is connected with a network cable, SSH remote login
development board under Ubuntu
a. If the development board is connected to the debugging serial port, you can use
www.orangepi.org 68 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
2) First use the nmcli dev wifi command to scan the surrounding WIFI hotspots
orangepi@orangepi:~$ nmcli dev wifi
3) Then use the nmcli command to connect to the scanned WIFI hotspot, where:
a. wifi_name Need to replace it with the name of the WIFI hotspot you want to
connect to
b. wifi_passwd Need to change to the password of the WIFI hotspot you want to
connect to
orangepi@orangepi:~$ sudo nmcli dev wifi connect wifi_name password wifi_passwd
Device 'wlan0' successfully activated with 'cf937f88-ca1e-4411-bb50-61f402eef293'.
4) You can view the IP address of wifi through the ip addr show wlan0 command
orangepi@orangepi:~$ ip a s wlan0
11: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UP group default qlen 1000
link/ether 23:8c:d6:ae:76:bb brd ff:ff:ff:ff:ff:ff
inet 192.168.1.11/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0
valid_lft 259192sec preferred_lft 259192sec
inet6 240e:3b7:3240:c3a0:c401:a445:5002:ccdd/64 scope global dynamic
noprefixroute
www.orangepi.org 69 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
5) Use the ping command to test the connectivity of the wifi network, and the ping
command can be interrupted through the shortcut key Ctrl+C
orangepi@orangepi:~$ ping www.orangepi.org -I wlan0
PING www.orangepi.org (182.92.236.130) from 192.168.1.49 wlan0: 56(84) bytes of
data.
64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=1 ttl=52 time=43.5 ms
64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=2 ttl=52 time=41.3 ms
64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=3 ttl=52 time=44.9 ms
64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=4 ttl=52 time=45.6 ms
64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=5 ttl=52 time=48.8 ms
^C
--- www.orangepi.org ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 41.321/44.864/48.834/2.484 ms
1) First log in to the linux system, there are the following three ways
a. If the development board is connected with a network cable, SSH remote
login development board under Ubuntu
b. If the development board is connected to the debugging serial port, you can use
the serial port terminal to log in to the linux system (please use MobaXterm for
the serial port software, and the minicom cannot display the graphical interface)
c. If the development board is connected to the HDMI display, you can log in to the
linux system through the HDMI display terminal
2) Then enter the nmtui command in the command line to open the wifi connection
interface
orangepi@orangepi:~$ sudo nmtui
www.orangepi.org 70 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
6) Select the WIFI hotspot you want to connect to, then use the Tab key to position the
www.orangepi.org 71 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
7) 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
8) After the WIFI connection is successful, a "*" will be displayed in front of the
connected WIFI name
www.orangepi.org 72 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
9) You can view the IP address of wifi through the ip a s wlan0 command
orangepi@orangepi:~$ ip a s wlan0
11: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UP group default qlen 1000
link/ether 24:8c:d3:aa:76:bb brd ff:ff:ff:ff:ff:ff
inet 192.168.1.11/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0
valid_lft 259069sec preferred_lft 259069sec
inet6 240e:3b7:3240:c4a0:c401:a445:5002:ccdd/64 scope global dynamic
noprefixroute
valid_lft 259071sec preferred_lft 172671sec
inet6 fe80::42f1:6019:a80e:4c31/64 scope link noprefixroute
valid_lft forever preferred_lft forever
10) Use the ping command to test the connectivity of the wifi network, and the ping
command can be interrupted through the shortcut key Ctrl+C
orangepi@orangepi:~$ ping www.orangepi.org -I wlan0
PING www.orangepi.org (182.92.236.130) from 192.168.1.49 wlan0: 56(84) bytes of
data.
64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=1 ttl=52 time=43.5 ms
64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=2 ttl=52 time=41.3 ms
64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=3 ttl=52 time=44.9 ms
64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=4 ttl=52 time=45.6 ms
64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=5 ttl=52 time=48.8 ms
www.orangepi.org 73 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
^C
--- www.orangepi.org ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 41.321/44.864/48.834/2.484 ms
1) Click the network configuration icon in the upper right corner of the desktop (please
do not connect the network cable when testing WIFI)
2) 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
3) Then enter the password of the WIFI hotspot, and then click Connect start connecting
www.orangepi.org 74 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
to WIFI
4) 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
5) If you can open other web pages after opening the browser, it means that the WIFI
connection is normal
www.orangepi.org 75 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
The Linux image released by OPi has pre-installed the create_ap script. You can
create a WIFI hotspot through the create_ap command. The basic command format
of create_ap is as follows:
* options: You can use this parameter to specify the encryption method, the
frequency band of the WIFI hotspot, the bandwidth mode, the network sharing
method, etc. You can get the options through create_ap -h
* wifi-interface:The name of the wireless network card
* interface-with-internet: The name of the network card that can be connected to
the Internet, generally eth0
* access-point-name: hotspot name
* passphrase:hotspot password
1)Enter the following command to create a WIFI hotspot named orangepi and
password orangepi in NAT mode
Note that in the following commands, Debian12 and Ubuntu24.04 needs to
change eth0 to end0.
orangepi@orangepi:~$ sudo create_ap -m nat wlan0 eth0 orangepi orangepi --no-virt
2)If the following information is output, it means that the WIFI hotspot is created
successfully
orangepi@orangepi:~$ sudo create_ap -m nat wlan0 eth0 orangepi orangepi --no-virt
Config dir: /tmp/create_ap.wlan0.conf.TQkJtsz1
www.orangepi.org 76 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
PID: 26139
Network Manager found, set wlan0 as unmanaged device... DONE
Sharing Internet using method: nat
hostapd command-line interface: hostapd_cli -p
/tmp/create_ap.wlan0.conf.TQkJtsz1/hostapd_ctrl
wlan0: interface state UNINITIALIZED->ENABLED
wlan0: AP-ENABLED
wlan0: STA ce:bd:9a:dd:a5:86 IEEE 802.11: associated
wlan0: AP-STA-CONNECTED ce:bd:9a:dd:a5:86
wlan0: STA ce:bd:9a:dd:a5:86 RADIUS: starting accounting session
D4FBF7E5C604F169
wlan0: STA ce:bd:9a:dd:a5:86 WPA: pairwise key handshake completed (RSN)
wlan0: EAPOL-4WAY-HS-COMPLETED ce:bd:9a:dd:a5:86
3)Take out the mobile phone at this time, you can find the WIFI hotspot named
orangepi created by the development board in the searched WIFI list, and then you can
click orangepi to connect to the hotspot, the password is set above orangepi
4)After the connection is successful, the display is as shown in the figure below
5)In NAT mode, the wireless device connected to the hotspot of the development board
requests an IP address from the DHCP service of the development board, so there will be
two different network segments, for example, the IP of the development board is
www.orangepi.org 77 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
192.168.1.X
Note that in the following commands, Debian12 and Ubuntu24.04 needs to
change eth0 to end0.
orangepi@orangepi:~$ sudo ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.150 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::938f:8776:5783:afa2 prefixlen 64 scopeid 0x20<link>
ether 4a:a0:c8:25:42:82 txqueuelen 1000 (Ethernet)
RX packets 25370 bytes 2709590 (2.7 MB)
RX errors 0 dropped 50 overruns 0 frame 0
TX packets 3798 bytes 1519493 (1.5 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 83
By default, the DHCP service of the development board will assign an IP address of
192.168.12.0/24 to the device connected to the hotspot. At this time, click on the
connected WIFI hotspot orangepi, and then you can see that the IP address of the mobile
phone is 192.168.12.X
6)If you want to specify a different network segment for the connected device, you can
specify it through the -g parameter, such as specifying the network segment of the access
point AP through the -g parameter as 192.168.2.1
www.orangepi.org 78 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
At this time, after connecting to the hotspot through the mobile phone, click on the
connected WIFI hotspot orangepi, and then you can see that the IP address of the mobile
phone is 192.168.2.X.
7)If the --freq-band parameter is not specified, the hotspot created by default is in the
2.4G frequency band. If you want to create a hotspot in the 5G frequency band, you can
specify the--freq-band 5 parameter. The specific command is as follows
Note that in the following commands, Debian12 and Ubuntu24.04 needs to
change eth0 to end0.
orangepi@orangepi:~$ sudo create_ap -m nat wlan0 eth0 orangepi orangepi --freq-band 5 --no-virt
8)If you need to hide the SSID, you can specify the --hidden parameter, the specific
command is as follows
Note that in the following commands, Debian12 and Ubuntu24.04 needs to
change eth0 to end0.
orangepi@orangepi:~$ sudo create_ap -m nat wlan0 eth0 orangepi orangepi --hidden --no-virt
At this time, the mobile phone cannot search for the WIFI hotspot. You need to
www.orangepi.org 79 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
manually specify the name of the WIFI hotspot and enter the password to connect to the
WIFI hotspot.
1)Enter the following command to create a WIFI hotspot named orangepi and
password orangepi in bridge mode
Note that in the following commands, Debian12 and Ubuntu24.04 needs to
change eth0 to end0.
orangepi@orangepi:~$ sudo create_ap -m bridge wlan0 eth0 orangepi orangepi --no-virt
2)If the following information is output, it means that the WIFI hotspot is created
successfully
orangepi@orangepi:~$ sudo create_ap -m bridge wlan0 eth0 orangepi orangepi --no-virt
Config dir: /tmp/create_ap.wlan0.conf.zAcFlYTx
PID: 27707
Network Manager found, set wlan0 as unmanaged device... DONE
Sharing Internet using method: bridge
Create a bridge interface... br0 created.
hostapd command-line interface: hostapd_cli -p
/tmp/create_ap.wlan0.conf.zAcFlYTx/hostapd_ctrl
wlan0: interface state UNINITIALIZED->ENABLED
wlan0: AP-ENABLED
wlan0: STA ce:bd:9a:dd:a5:86 IEEE 802.11: associated
wlan0: AP-STA-CONNECTED ce:bd:9a:dd:a5:86
www.orangepi.org 80 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
3)Take out the mobile phone at this time, and you can find the WIFI hotspot named
orangepi created by the development board in the searched WIFI list, and then you can
click orangepi to connect to the hotspot, and the password is the orangepi set above
4)After the connection is successful, the display is as shown in the figure below
5)In bridge mode, the wireless device connected to the hotspot of the development
board also requests an IP address from the DHCP service of the main router (the router
connected to the development board), for example, the IP of the development board is
192.168.1.X
orangepi@orangepi:~$ sudo ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.150 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::938f:8776:5783:afa2 prefixlen 64 scopeid 0x20<link>
ether 4a:a0:c8:25:42:82 txqueuelen 1000 (Ethernet)
RX packets 25370 bytes 2709590 (2.7 MB)
www.orangepi.org 81 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
The IP of the device connected to the WIFI hotspot is also assigned by the main
router, so the mobile phone connected to the WIFI hotspot and the development board are
in the same network segment. At this time, click on the connected WIFI hotspot orangepi,
and then you can see the IP address of the mobile phone also 192.168.1.X。
6)If the --freq-band y band. If you want to create a hotspot in the 5G frequency band,
you can specify the --freq-band 5 parameter. The specific command is as follows
Note that in the following commands, Debian12 and Ubuntu24.04 needs to
change eth0 to end0.
orangepi@orangepi:~$ sudo create_ap -m bridge wlan0 eth0 orangepi orangepi --freq-band 5 --no-virt
7)If you need to hide the SSID, you can specify the --hidden parameter, the specific
command is as follows
Note that in the following commands, Debian12 and Ubuntu24.04 needs to
change eth0 to end0.
orangepi@orangepi:~$ sudo create_ap -m bridge wlan0 eth0 orangepi orangepi --hidden --no-virt
www.orangepi.org 82 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
At this time, the mobile phone cannot search for the WIFI hotspot. You need to
manually specify the name of the WIFI hotspot and enter the password to connect to the
WIFI hotspot.
3) Then select the network interface that needs to set a static IP address, for example, to
www.orangepi.org 83 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
set the static IP address of the Ethernet interface, select Wired connection 1.
4) Then select Edit with the Tab key and press the Enter key
5) Then use the Tab key to move the cursor to the <Automatic> position shown in the
figure below to configure IPv4
6) Then press Enter, select Manual through the up and down arrow keys, and press Enter
to confirm
www.orangepi.org 84 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
www.orangepi.org 85 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
9) Then press Enter, the following setting interface will pop up after entering
10) 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
www.orangepi.org 86 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
11) After setting, move the cursor to <OK> in the lower right corner, and press Enter to
confirm
13) Then select Activate a connection, then move the cursor to <OK>, and finally click
Enter
www.orangepi.org 87 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
14) Then select the network interface that needs to be set, such as Wired connection 1,
then move the cursor to <Deactivate>, and press the Enter key to disable Wired
connection 1
15) Then please do not move the cursor, and then press the Enter key to re-enable Wired
connection 1, so that the static IP address set earlier will take effect
www.orangepi.org 88 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
16) Then you can exit nmtui through the <Back> and Quit buttons
17) Then through ip a s eth0, you can see that the IP address of the network port has
changed to the static IP address set earlier
Note that in the following commands, Debian12 and Ubuntu24.04 needs to
change eth0 to end0.
orangepi@orangepi:~$ ip a s eth0
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
UP group default qlen 1000
link/ether 5e:ac:14:a5:92:b3 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.177/24 brd 192.168.1.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 241e:3b8:3240:c3a0:e269:8305:dc08:135e/64 scope global dynamic
www.orangepi.org 89 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
noprefixroute
valid_lft 259149sec preferred_lft 172749sec
inet6 fe80::957d:bbbe:4928:3604/64 scope link noprefixroute
valid_lft forever preferred_lft forever
18) Then you can test the connectivity of the network to check whether the IP address is
configured OK, and the ping command can be interrupted through the shortcut key
Ctrl+C
Note that in the following commands, I is capital i, Debian12 and Ubuntu24.04
needs to change eth0 to end0.
orangepi@orangepi:~$ ping 192.168.1.177 -I eth0
PING 192.168.1.47 (192.168.1.47) from 192.168.1.188 eth0: 56(84) bytes of data.
64 bytes from 192.168.1.47: icmp_seq=1 ttl=64 time=0.233 ms
64 bytes from 192.168.1.47: icmp_seq=2 ttl=64 time=0.263 ms
64 bytes from 192.168.1.47: icmp_seq=3 ttl=64 time=0.273 ms
64 bytes from 192.168.1.47: icmp_seq=4 ttl=64 time=0.269 ms
64 bytes from 192.168.1.47: icmp_seq=5 ttl=64 time=0.275 ms
^C
--- 192.168.1.47 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4042ms
rtt min/avg/max/mdev = 0.233/0.262/0.275/0.015 ms
1) If you want to set the static IP address of the network port, please insert the network
cable into the development board first. If you need to set the static IP address of WIFI,
please connect the WIFI first, and then start to set the static IP address
2) Then you can view the name of the network device through the nmcli con show
command, as shown below
a. orangepi is the name of the WIFI network interface (the name is not necessarily
the same)
b. Wired connection 1 is the name of the Ethernet interface
orangepi@orangepi:~$ nmcli con show
NAME UUID TYPE DEVICE
www.orangepi.org 90 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
5) Then re-enter the linux system and use the ip addr show eth0 command to see that
the IP address has been set to the desired value
orangepi@orangepi:~$ ip addr show eth0
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
UP group default qlen 1000
link/ether 5e:ae:14:a5:91:b3 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.110/32 brd 192.168.1.110 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 240e:3b7:3240:c3a0:97de:1d01:b290:fe3a/64 scope global dynamic
noprefixroute
valid_lft 259183sec preferred_lft 172783sec
inet6 fe80::3312:861a:a589:d3c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
www.orangepi.org 91 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
To use the method in this section, you first need to prepare a Linux system
machine. For example, a computer or a virtual machine with Ubuntu system
installed.
Why do you need a Linux system machine, because the root file system of the
development board Linux system burned in the micro SD card is in ext4 format, and
the Linux system machine can mount it normally, and then modify the configuration
files in it.
If you want to modify it in the Windows system, you can use the software
Paragon ExtFS for Windows. Since this software needs to be paid, and there is no
similar free software that is easy to use, I will not demonstrate it here.
In addition, if you have any problems with Paragon ExtFS for Windows
software, please solve it yourself, we will not answer questions.
1) First burn the Linux image of the development board you want to use into the micro
www.orangepi.org 92 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
SD card, and then use a card reader to insert the micro SD card that has burned the Linux
image of the development board into a machine with a Linux system (such as a machine
with an Ubuntu system installed) computer, the following uses Ubuntu computer as an
example to demonstrate)
2) When the micro SD card is inserted into the Ubuntu computer, the Ubuntu computer
will generally automatically mount the partition of the Linux root file system in the micro
SD card. You can know from the following command that /media/test/opi_root is the
Linux root file in the micro SD card The path where the system is mounted
test@test:~$ df -h | grep "media"
/dev/sdd1 1.4G 1.2G 167M 88% /media/test/opi_root
test@test:~$ ls /media/test/opi_root
bin boot dev etc home lib lost+found media mnt opt proc root run
sbin selinux srv sys tmp usr var
3) Then enter the /boot directory of the Linux system burned in the micro SD card
test@test:~$ cd /media/test/opi_root/boot/
5) You can open the orangepi_first_run.txt file with the following command, and then
you can view and modify the contents
test@test:/media/test/opi_root/boot$ sudo vim orangepi_first_run.txt
www.orangepi.org 93 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
take effect
c. FR_net_ethernet_enabled variable is used to control whether to enable the
configuration of the Ethernet port. If you need to set the static IP address of the
Ethernet port, please set it to 1
d. FR_net_wifi_enabled variable is used to control whether to enable WIFI
configuration. If you need to set the development board to automatically connect
to WIFI hotspots, you must set it to 1. In addition, please note that if this variable
is set to 1, the setting of the Ethernet port will be will fail. That is to say, the
WIFI and Ethernet ports cannot be set at the same time (why, because it is not
necessary...)
e. FR_net_wifi_ssid variable is used to set the name of the WIFI hotspot you want
to connect to
f. FR_net_wifi_key variable is used to set the password of the WIFI hotspot you
want to connect to
g. FR_net_use_static variable is used to set whether to set the static IP address of
WIFI or Ethernet port
h. FR_net_static_ip variable is used to set static IP address, please set according to
your actual situation
i. FR_net_static_gateway variable is used to set the gateway, please set it
according to your actual situation
b. For example, if you want the Linux system of the development board to
automatically connect to the WIFI hotspot after the first startup, and set the IP
address of the WIFI to a specific static IP address (so that when the Linux system
is started, you can directly use the set static IP address to ssh remotely Log in to
www.orangepi.org 94 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
c. For example, if you want to automatically set the IP address of the Ethernet port
to the desired static IP address after the Linux system of the development board
starts for the first time, you can set it like this:
a) Set FR_net_change_defaults to 1
b) Set FR_net_ethernet_enabled to 1
c) Set FR_net_use_static to 1
d) Set FR_net_static_ip to the desired IP address
e) Set FR_net_static_gateway to the corresponding gateway address
8) After modifying the orangepi_first_run.txt file, you can exit the /boot directory of the
development board Linux system in the micro SD card, uninstall the micro SD card, and
then insert the micro SD card into the development board to start
9) If you have not set a static IP address, you still need to check the IP address through
the background of the router. If you have set a static IP address, you can ping the set static
IP address on the computer. If you can ping, it means that the system has started normally,
and The network has also been set correctly, and then you can use the set IP address ssh
to remotely log in to the Linux system of the development board
After the Linux system of the development board is started for the first time,
orangepi_first_run.txt will be deleted or renamed to orangepi_first_run.txt.old. At
this time, the orangepi_first_run.txt configuration file will be reset, and then the
Linux system of the development board will be restarted, orangepi_first_run. The
www.orangepi.org 95 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
configuration in txt will not take effect again, because this configuration will only be
effective when the Linux system is started for the first time after burning, please pay
special attention to this point.
Linux systems enable ssh remote login by default and allow the root user to log
in to the system. Before logging in with ssh, you first need to ensure that the
Ethernet or wifi network is connected, and then use the ip addr command or check
the router to obtain the IP address of the development board.
2) Then you can remotely log in to the linux system through the ssh command
test@test:~$ ssh [email protected] (Need to be replaced with the IP
address of the development board)
[email protected]'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 find other reasons.
3) After successfully logging in to the system, the display is as shown in the figure below
www.orangepi.org 96 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
If ssh fails to log in to the linux system normally, first check whether the IP
address of the development board can be pinged. If the ping is ok, you can log in to
the linux system through the serial port or HDMI display and then enter the
following command on the development board and try again. Is it possible to
connect:
root@orangepi:~# reset_ssh.sh
2) Under Windows, you can use MobaXterm to remotely log in to the development
board, first create a new ssh session
a. Open Session
b. Then select SSH in Session Setting
c. Then enter the IP address of the development board in the Remote host
d. Then enter the user name root or orangepi of the linux system in Specify
username
e. Finally click OK
www.orangepi.org 97 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
3) Then you will be prompted to enter a password. The default passwords for root and
orangepi users are 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.
4) The display after successfully logging in to the system is shown in the figure below
www.orangepi.org 98 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
2) After starting the linux system, if the HDMI monitor has image output, it means that
the HDMI interface is working normally
www.orangepi.org 99 www.xunlong.tv
range Pi User Manual Copyright reserved by Shenzhen Xunlong Software Co., Ltd
Note that although many laptops have an HDMI interface, the HDMI interface
of the notebook generally only has the output function, and does not have the
function of HDMI IN, that is to say, the HDMI output of other devices cannot be
displayed on the notebook screen.
When you want to connect the HDMI of the development board to the HDMI
port of the laptop, please make sure that your laptop supports the HDMI IN
function.
When the HDMI is not displayed, please check whether the HDMI cable is
plugged in tightly. After confirming that there is no problem with the connection,
you can change a different screen and try to see if it is displayed.
b. A VGA cable and a Micro HDMI male to HDMI female conversion cable
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 Micro
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.
2) The values supported by the disp_mode variable are shown in the table below
Supported values for HDMI resolution HDMI refresh rate
disp_mode
480i 720x480 60
576i 720x480 50
480p 720x480 60
576p 720x576 60
720p50 1280x720 50
720p60 1280x720 60
1080i50 1920x1080 50
1080i60 1920x1080 60
1080p24 1920x1080 24
1080p50 1920x1080 50
1080p60 1920x1080 60
3) Change the value of the disp_mode variable to the desired output resolution, and then
restart the system, HDMI will output the set resolution
4) The method of viewing the HDMI output resolution is as follows. If the displayed
resolution is the same as the set resolution, it means that the setting of the development
board is correct.
orangepi@orangepi:~$ sudo cat /sys/class/disp/disp/attr/sys
Under the same HDMI resolution, the larger the value of fb0_width and fb0_height,
the smaller the text displayed on the screen, and the smaller the value of fb0_width and
fb0_height, the larger the text displayed on the screen.
2) If you need to hide the cursor, you can add vt.global_cursor_default=0 in the
extraargs variable of /boot/orangepiEnv.txt (the value of extraargs will be assigned to
the bootargs environment variable and finally passed to the kernel) (if
vt.global_cursor_default=1, the cursor will be displayed) , and then restart the system to
see that the cursor has disappeared
orangepi@orangepi:~$ sudo vim /boot/orangepiEnv.txt
verbosity=1
console=both
disp_mode=1080p60
fb0_width=1920
fb0_height=1080
extraargs=vt.global_cursor_default=0
4) Then set the Visibility Setting to Always visible in the Bluetooth adapter setting
interface, and then close it
7) Then select the Bluetooth device you want to connect to, and then click the right
button of the mouse 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
8) 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
9) 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
3) After scanning to the device you want to pair, you can pair it. You need to use the
MAC address of the device for pairing
[bluetooth]# pair DC:72:9B:4C:F4:CF #Use the MAC address of the scanned
Bluetooth device for pairing
Attempting to pair with DC:72:9B:4C:F4:CF
[CHG] Device DC:72:9B:4C:F4:CF Connected: yes
Request confirmation
[leeb1m[agent] Confirm passkey 764475 (yes/no): yes #Enter yes here, and you need
to confirm on the mobile phone
[CHG] Device DC:72:9B:4C:F4:CF Modalias: bluetooth:v010Fp107Ed1436
[CHG] Device DC:72:9B:4C:F4:CF UUIDs: 0000046a-0000-1000-8000-00805f9b34fb
[CHG] Device DC:72:9B:4C:F4:CF ServicesResolved: yes
[CHG] Device DC:72:9B:4C:F4:CF Paired: yes
Pairing successful #Prompt that the pairing is successful
[CHG] Device DC:72:9B:4C:F4:CF ServicesResolved: no
[CHG] Device DC:72:9B:4C:F4:CF Connected: no
4) After the pairing is successful, the Bluetooth interface of the mobile phone will be
displayed as follows
7) After connecting the bluetooth device, the bluetooth configuration interface of the
Android mobile phone can see the prompt that the audio has been connected for calls
and media
8) At this time, audio will be played through the phone, and the sound will be played
through the HDMI device connected to the development board.
The USB interface can be connected to a USB hub to expand the number of
USB interfaces.
3) If the mouse or keyboard can operate normally, it means that the USB interface is
working normally (the mouse can only be used in the desktop version of the system)
2) Execute the following command, if you can see the output of sdX, it means that the U
disk is recognized successfully
orangepi@orangepi:~$ cat /proc/partitions | grep "sd*"
major minor #blocks name
8 0 30044160 sda
8 1 30043119 sda1
3) Use the mount command to mount the U disk to /mnt, and then you can view the files
in the U disk
orangepi@orangepi:~$ sudo mount /dev/sda1 /mnt/
orangepi@orangepi:~$ ls /mnt/
test.txt
4) After mounting, you can view the capacity usage and mount point of the U disk
through the df -h command
orangepi@orangepi:~$ df -h | grep "sd"
/dev/sda1 29G 208K 29G 1% /mnt
2) First insert the USB network card into the USB interface of the development board,
and then insert the network cable into the USB network card to ensure that the network
cable can access the Internet normally. If you can see the following log information
through the dmesg command, it means that the USB network card is recognized
normally.
orangepi@orangepi:~$ dmesg | tail
[ 121.985016] usb 3-1: USB disconnect, device number 2
[ 126.873772] sunxi-ehci 5311000.ehci3-controller: ehci_irq: highspeed device connect
[ 127.094054] usb 3-1: new high-speed USB device number 3 using sunxi-ehci
[ 127.357472] usb 3-1: reset high-speed USB device number 3 using sunxi-ehci
[ 127.557960] r8152 3-1:1.0 eth1: v1.08.9
[ 127.602642] r8152 3-1:1.0 enx00e04c362017: renamed from eth1
[ 127.731874] IPv6: ADDRCONF(NETDEV_UP): enx00e04c362017: link is not ready
[ 127.763031] IPv6: ADDRCONF(NETDEV_UP): enx00e04c362017: link is not ready
[ 129.892465] r8152 3-1:1.0 enx00e04c362017: carrier on
[ 129.892583] IPv6: ADDRCONF(NETDEV_CHANGE): enx00e04c362017: link
becomes ready
3) Then you can see the device node of the USB network card and the automatically
assigned IP address through the ifconfig command
orangepi@orangepi:~$ sudo ifconfig
enx00e04c362017: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu
1500
inet 192.168.1.177 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::681f:d293:4bc5:e9fd prefixlen 64 scopeid 0x20<link>
ether 00:e0:4c:36:20:17 txqueuelen 1000 (Ethernet)
RX packets 1849 bytes 134590 (134.5 KB)
RX errors 0 dropped 125 overruns 0 frame 0
TX packets 33 bytes 2834 (2.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2) Then through the lsmod command, you can see that the kernel has automatically
loaded the following modules
orangepi@orangepi:~$ lsmod
Module Size Used by
uvcvideo 106496 0
3) 3) Through the v4l2-ctl command, you can see that the device node information of the
USB camera is /dev/video0
orangepi@orangepi:~$ sudo apt update
orangepi@orangepi:~$ sudo apt install -y v4l-utils
orangepi@orangepi:~$ v4l2-ctl --list-devices
USB 2.0 Camera (usb-sunxi-ehci-1):
/dev/video0
e. Then enter [the IP address of the development board: 8080] in the browser of
the Ubuntu PC or Windows PC or mobile phone on the same LAN as the
development board to see the video output by the camera
1) First, you need to insert the 13pin expansion board into the 13pin interface of the
Orange Pi development board, and then insert the earphone into the audio interface
2) Through the aplay -l command, you can view the sound card devices supported by
3) Then use the aplay command to play the audio, and the headset can hear the sound
root@orangepi:~# aplay -D hw:0,0 /usr/share/sounds/alsa/audio.wav
Playing WAVE 'audio.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
If there is noise in the earphone test, please pull out some earphones, do not
insert all the earphones.
1) First use the Micro HDMI to HDMI cable to connect the Orange Pi development
board to the TV (other HDMI monitors need to ensure that they can play audio)
2) HDMI audio playback does not require other settings, just use the aplay command to
play directly
root@orangepi:~# aplay -D hw:2,0 /usr/share/sounds/alsa/audio.wav
2) Then find the following file (if there is no audio file in the system, you can upload an
audio file to the system yourself)
3) Then select the audio.wav file, right click and select open with vlc to start playing
4) How to switch between different audio devices such as HDMI playback and
headphone playback
a. First open the volume control interface
b. When playing audio, the audio device options that the playback software can use
will be displayed in Playback, as shown in the figure below, where you can set
which audio device to play to
1) First, you need to insert the 13pin expansion board into the 13pin interface of the
Orange Pi development board. After inserting the expansion board, the development
board can use the infrared receiving function
4) Before testing the infrared receiving function, you need to prepare an infrared remote
controller dedicated to Orange Pi, other remote controllers do not support it
5) Then enter the ir-keytable -t command in the terminal, and then use the infrared
remote control to press the button against the infrared receiver of the Orange Pi
development board to see the received key code in the terminal
a. linux5.4 system output is as follows
orangepi@orangepi:~$ sudo ir-keytable -t
Testing events. Please, press CTRL-C to abort.
1598339152.260376: event type EV_MSC(0x04): scancode = 0xfb0413
1598339152.260376: event type EV_SYN(0x00).
1598339152.914715: event type EV_MSC(0x04): scancode = 0xfb0410
b. linux6.1 system output is as follows
orangepi@orangepi:~$ sudo ir-keytable -c -p NEC -t
Old keytable cleared
Protocols changed to nec
Testing events. Please, press CTRL-C to abort.
202.063219: lirc protocol(nec): scancode = 0x45c
202.063249: event type EV_MSC(0x04): scancode = 0x45c
202.063249: event type EV_SYN(0x00).
1) H618 has a total of 4 temperature sensors, the command to view the temperature is as
follows:
The displayed temperature value needs to be divided by 1000, the unit is
Celsius.
a. sensor0: CPU temperature sensor, the first command is used to view the type of
temperature sensor, and the second command is used to view the value of the
temperature sensor
orangepi@orangepi:~$ cat /sys/class/thermal/thermal_zone0/type
cpu_thermal_zone
orangepi@orangepi:~$ cat /sys/class/thermal/thermal_zone0/temp
57734
b. sensor1: DDR temperature sensor, the first command is used to view the type of
temperature sensor, and the second command is used to view the value of the
temperature sensor
orangepi@orangepi:~$ cat /sys/class/thermal/thermal_zone1/type
ddr_thermal_zone
orangepi@orangepi:~$ cat /sys/class/thermal/thermal_zone1/temp
57410
c. sensor2: GPU temperature sensor, the first command is used to view the type of
temperature sensor, the second command is used to view the value of the
temperature sensor
orangepi@orangepi:~$ cat /sys/class/thermal/thermal_zone2/type
gpu_thermal_zone
orangepi@orangepi:~$ cat /sys/class/thermal/thermal_zone2/temp
59273
d. sensor3: VE temperature sensor, the first command is used to view the type of
temperature sensor, and the second command is used to view the value of the
temperature sensor
orangepi@orangepi:~$ cat /sys/class/thermal/thermal_zone3/type
ve_thermal_zone
orangepi@orangepi:~$ cat /sys/class/thermal/thermal_zone3/temp
58949
2) The system with Linux6.1 kernel can also use the sensors command to view the
current temperature of the system
orangepi@orangepi:~$ sensors
cpu_thermal-virtual-0
Adapter: Virtual device
temp1: +47.4°C (crit = +110.0°C)
gpu_thermal-virtual-0
Adapter: Virtual device
temp1: +48.7°C (crit = +110.0°C)
ddr_thermal-virtual-0
Adapter: Virtual device
temp1: +47.8°C (crit = +110.0°C)
ve_thermal-virtual-0
Adapter: Virtual device
temp1: +47.2°C (crit = +110.0°C)
1) Please refer to the figure below for the order of the interface pins of the 13 pin
expansion board on the development board
2) The schematic diagram of the 13pin interface of the development board is as follows
3) The function description of the 13 pin expansion board interface pins of the
development board is as follows
a. When the 13pin pin is connected to the expansion board, it can be provided
additionally
a) 2 个 USB 2.0 Host
b) Audio output of the left and right audio channels of the earphones
c) TV-OUT video output
d) Infrared receiving function
e) After the expansion board is connected, pins 10, 11 and 12 of the 13pin
interface cannot be used
f) In addition, it should be noted that the MIC on the 13pin expansion
board cannot be used on the Orange Pi Zero 3
b. When pin 13 is not connected to the expansion board, pins 10, 11, 12 and 13 can
be used as ordinary GPIO ports
GPIO serial number Function Pin
5V 1
GND 2
USB2-DM 3
USB2-DP 4
USB3-DM 5
USB3-DP 6
LINEOUTR 7
LINEOUTL 8
TV-OUT 9
65 PC1 10
272 PI16 11
262 PI6 12
234 IR-RX/PH10 13
1) For the order of the 26-pin interface pins on the Orange Pi Zero 3 development board,
please refer to the silkscreen diagram on the development board
2) The functions of the 26 pin interface pins on the development board are shown in the
table below
GPIO S/N GPIO Function Pin Pin Function GPIO GPIO S/N
3.3V 1 2 5V
229 PH5 TWI3-SDA 3 4 5V
228 PH4 TWI3-SCK 5 6 GND
73 PC9 PC9 7 8 UART5_TX PH2 226
GND 9 10 UART5_RX PH3 227
70 PC6 PC6 11 12 PC11 PC11 75
69 PC5 PC5 13 14 GND
72 PC8 PC8 15 16 PC15 PC15 79
3.3V 17 18 PC14 PC14 78
231 PH7 SPI1_MOSI 19 20 GND
232 PH8 SPI1_MISO 21 22 PC7 PC7 71
230 PH6 SPI1_CLK 23 24 SPI1_CS PH9 233
GND 25 26 PC10 PC10 74
3) 3) There are a total of 17 GPIO ports in the 26pin interface, and the voltage of all
GPIO ports is 3.3v
Note that wiringOP has been pre-installed in the linux image released by
Orange Pi. Unless the code of wiringOP is updated, there is no need to re-download,
compile and install, just use it directly.
The storage path of the compiled wiringOP deb package in orangepi-build is:
orangepi-build/external/cache/debs/arm64/wiringpi_x.xx.deb
After entering the system, you can run the gpio readall command. If you can see
the following output, it means that wiringOP has been pre-installed and can be used
normally.
Note that the source code needs to download the code of the wiringOP next
branch, please don't miss the -b next parameter.
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.
3.18. 26pin interface GPIO, I2C, UART, SPI and PWM test
2) First set the GPIO port to output mode, where the third parameter requires the serial
number of the wPi corresponding to the input pin
root@orangepi:~/wiringOP# gpio mode 2 out
3) Then set the GPIO port to output a low level. After setting, you can use a multimeter
to measure the voltage value of the pin. If it is 0v, it means that the low level is set
successfully
root@orangepi:~/wiringOP# gpio write 2 0
Use gpio readall to see that the value (V) of pin 7 has changed to 0
4) Then set the GPIO port to output a high level. After setting, you can use a multimeter
to measure the voltage value of the pin. If it is 3.3v, it means that the high level is set
successfully.
root@orangepi:~/wiringOP# gpio write 2 1
Use gpio readall to see that the value (V) of pin 7 has changed to 1
5) The setting method of other pins is similar, just modify the serial number of wPi to the
corresponding serial number of the pin
ports
1) The following takes pin 7—the corresponding GPIO is PC9—the corresponding wPi
number is 2 — as an example to demonstrate how to set the pull-up and pull-down
resistors of the GPIO port
2) First, you need to set the GPIO port to the input mode, and the third parameter needs
to be the serial number of the wPi corresponding to the input pin
root@orangepi:~/wiringOP# gpio mode 2 in
3) After setting to input mode, execute the following command to set the GPIO port to
pull-up mode
root@orangepi:~/wiringOP# gpio mode 2 up
4) Then enter the following command to read the level of the GPIO port, if the level is 1,
it means that the pull-up mode is set successfully
root@orangepi:~/wiringOP# gpio read 2
1
5) Then execute the following command to set the GPIO port to pull-down mode
root@orangepi:~/wiringOP# gpio mode 2 down
6) Then enter the following command to read the level of the GPIO port, if the level is 0,
the pull-down mode is set successfully
2) The spi1 is disabled by default in the Linux system and needs to be manually enabled
before it can be used. The steps to open are as follows:
a. First run orangepi-config, normal users remember to add sudo permission
orangepi@orangepi:~$ sudo orangepi-config
b. Then select System
d. Then use the arrow keys on the keyboard to navigate to the position shown in the
figure below, and then use the space to select spi1-cs1-spidev
g. Then select <Reboot> to restart the system to make the configuration take effect
3) Then check whether there is a spidev1.1 device node in the Linux system. If it exists,
it means that the configuration of SPI1 has taken effect
orangepi@orangepi:~$ ls /dev/spidev1*
/dev/spidev1.1
4) Do not short-circuit the mosi and miso pins of SPI1 first, the output result of running
spidev_test is as follows, you can see that the data of TX and RX are inconsistent
orangepi@orangepi:~$ sudo spidev_test -v -D /dev/spidev1.1
spi mode: 0x0
bits per word: 8
max speed: 500000 Hz (500 KHz)
TX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF F0 0D | ......@....▒..................▒.
RX | FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF | ................................
5) Then short the two pins of mosi (the 19th pin in the 26pin interface) and miso (the
21st pin in the 26pin interface) of SPI1, and then run the output of spidev_test as follows,
you can see the sending and receiving same data
orangepi@orangepi:~$ sudo spidev_test -v -D /dev/spidev1.1
spi mode: 0x0
bits per word: 8
max speed: 500000 Hz (500 KHz)
TX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF F0 0D | ......@....▒..................▒.
RX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF F0 0D | ......@....▒..................▒.
2) i2c3 is disabled by default in the Linux system, and it needs to be manually enabled
before it can be used. The steps to open are as follows:
a. First run orangepi-config, normal users remember to add sudo permission
orangepi@orangepi:~$ sudo orangepi-config
b. Then select System
d. d. Then use the arrow keys on the keyboard to navigate to the position shown in
the figure below, and then use the space to select ph-i2c3
g. Then select <Reboot> to restart the system to make the configuration take effect
3) After starting the linux system, first confirm that there is an i2c3 device node under
/dev
orangepi@orangepi:~$ ls /dev/i2c-3
/dev/i2c-3
5) Then connect an i2c device to the i2c3 pin of the 26pin connector
Please select the 5V and 3.3V pins according to the specific i2c device, and the
voltage value required by different i2c devices may be different.
6) Then use the i2cdetect -y 3 command, if the address of the connected i2c device can
be detected, it means that i2c can be used normally
Different i2c device addresses are different, the address 0x50 in the figure below
is just an example. Please refer to what you actually see.
2) Uart5 is disabled by default in the Linux system, and it needs to be opened manually
to use it. The steps to open are as follows:
a. First run orangepi-config, normal users remember to add sudo permission
orangepi@orangepi:~$ sudo orangepi-config
b. Then select System
d. Then use the arrow keys on the keyboard to navigate to the position shown in the
figure below, and then use the space to select ph-uart5
g. Then select <Reboot> to restart the system to make the configuration take effect
3) After entering the linux system, first confirm whether there is a uart5 device node
under /dev
Note that the linux5.4 system is /dev/ttyAS5.
orangepi@orangepi:~$ ls /dev/ttyS5
/dev/ttyS5
4) Then start to test the uart5 interface, first use the DuPont line to short the rx and tx of
the uart5 interface to be tested
uart5
tx pin Corresponding to pin 8 of 26pin
rx pin Corresponding to pin 10 of 26pin
5) Use the gpio command in wiringOP to test the loopback function of the serial port as
shown below. If you can see the following print, it means that the serial port
communication is normal
orangepi@orangepi:~$ gpio serial /dev/ttyS5 # linux-6.1 test command
orangepi@orangepi:~$ gpio serial /dev/ttyAS5 # linux-5.4 test command
Out: 0: -> 0
Out: 1: -> 1
Out: 2: -> 2
Out: 3: -> 3^C
The development board can use up to 4 channels of PWM, and the positions of
their pins are shown in the figure below:
1) In the Linux system, the pwm is closed by default, and it needs to be opened manually
to use it. The steps to open are as follows:
a. First run orangepi-config, normal users remember to add sudo permission
orangepi@orangepi:~$ sudo orangepi-config
b. Then select System
d. Then use the arrow keys on the keyboard to navigate to the position shown in the
figure below, and then use the space to select the configuration corresponding to
pwm
Since the RX and TX pins of UART5 in the PWM1, PWM2 and 26pin interfaces
are multiplexed, please make sure that the UART5 configuration is not selected (do
not check ph-uart5) when turning on PWM1 and PWM2 (you need to select
ph-pwm12).
PWM3, PWM4 and the TX and RX pins in the debug serial port are
multiplexed, so when using PWM3 and PWM4 (need to select ph-pwm34), please
turn off the configuration of UART0 (need to select disable-uart0), after turning off
UART0 The debug serial port cannot be used.
g. Then select <Reboot> to restart the system to make the configuration take effect
Before using the wiringOP hardware PWM function, please download the latest
wiringOP source code and then compile and install it. The wiringOP preinstalled in
the v1.0.2 version of the Linux image cannot use the hardware PWM function.
For how to download and install wiringOP, please refer to the instructions in the
section How to Install wiringOP. The output of the gpio readall command of the
latest version of wiringOP is as follows. Compared with the old version, pins 28 and
30 are added to represent PWM3 and PWM4.
The development board can use up to 4 channels of PWM. The locations of their
pins are as shown in the figure below:
1) The corresponding relationship between the 4 PWM pins and the wPi serial number is
as shown in the following table:
PWM pin wPi serial number
PWM1 4
PWM2 3
PWM3 21
PWM4 22
2) The command to set the pin to PWM mode is as follows, taking PWM1 as an example.
The third parameter needs to enter the serial number of the wPi corresponding to the
PWM1 pin.
orangepi@orangepi:~$ gpio mode 4 pwm
3) After the pin is set to PWM mode, it will output a square wave with a frequency of
23475Hz and a duty cycle of 50% by default. At this time, we use an oscilloscope to
measure the corresponding PWM pin and you can see the following waveform.
1) The calculation formula of PWM duty cycle is as follows. We can adjust the PWM
duty cycle by setting the values of CCR and ARR.
PWM duty cycle = CCR / ARR
In:
The value range of CCR is 0~65535, and the default value is 512.
The value range of ARR is 1~65536, and the default value is 1024.
It should be noted that the CCR value we set needs to be less than ARR,
because the duty cycle cannot be greater than 1. When setting CCR > ARR, the
following error message will be prompted:
2) We can use the following command to set the ARR of PWM1 pin to 2048
orangepi@orangepi:~$ gpio pwmr 4 2048
3) After running the above command, you can observe through the oscilloscope that the
PWM duty cycle changes from the default 50% (512/1024) to 25% (512/2048)
4) We can use the following command to set the CCR of the PWM1 pin to 1024
orangepi@orangepi:~$ gpio pwm 4 1024
5) After running the above command, you can observe through the oscilloscope that the
PWM duty cycle changes from 25% (512/2048) to 50% (1024/2048)
1) After setting the frequency division coefficient, the PWM frequency will become
one/one of the frequency division coefficient.
分频系数的取值范围是 1~256,默认是 1。
2) For example, you can use the following command to set the frequency division
coefficient of the PWM1 pin to 5
orangepi@orangepi:~$ gpio pwmc 4 5
3) The default frequency of PWM is 23475Hz. After dividing by 5, the calculated value
is 4695Hz. Through the oscilloscope, it can be observed that the actual value of PWM
frequency is 4688Hz, and the error can be ignored.
1) We can use the gpio pwmTone command to set the frequency of the PWM pin. For
example, use the following command to set the PWM frequency of the PWM1 pin to
20000Hz.
orangepi@orangepi:~$ gpio pwmTone 4 20000
3) Then you can execute the PWM test program. When executing the PWM test program,
you need to specify the PWM pin. For example, you can use the following command to
test the PWM1 pin:
sorangepi@orangepi:~/wiringOP/examples$ sudo ./pwm 4
4) After the pwm program is executed, the following contents will be tested in sequence:
a. Adjust the PWM duty cycle by setting ARR
b. Adjust the PWM duty cycle by setting CCR
c. Adjust the PWM frequency by setting the frequency division coefficient
d. Directly set the PWM frequency
5) After each test is completed, the PWM waveform output will be stopped for 5 seconds.
After all test contents are completed, a new round of testing will be restarted.
PWM frequency changes to the default PWM frequency, which is 23475Hz, and
remains for 5 seconds.
d. Directly set the PWM frequency: It can be observed through the oscilloscope
that the PWM frequency first changes to 2000Hz, and then the PWM frequency
increases by 2000Hz every two seconds. After changing 9 times, the PWM
frequency changes to 20000Hz and remains for 5 seconds.
In addition, please note that all the following commands are operated under the
root user.
2) Then use the following command to download the source code of wiringOP-Python
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.
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
root@orangepi:~# git clone --recursive https://github.com/orangepi-xunlong/wiringOP-Python -b next
root@orangepi:~# cd wiringOP-Python
root@orangepi:~/wiringOP-Python# git submodule update --init --remote
3) Then use the following command to compile wiringOP-Python and install it into the
4) Then enter the following command, if there is help information output, it means that
wiringOP-Python is installed successfully, press the q key to exit the help information
interface
root@orangepi:~/wiringOP-Python# python3 -c "import wiringpi; help(wiringpi)"
Help on module wiringpi:
NAME
wiringpi
DESCRIPTION
# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.
5) The steps to test whether wiringOP-Python is successfully installed under the python
command line are as follows:
a. First use the python3 command to enter the command line mode of python3
root@orangepi:~# python3
b. Then import the python module of wiringpi
>>> import wiringpi;
c. Finally, enter the following command to view the help information of
wiringOP-Python, and press the q key to exit the help information interface
>>> help(wiringpi)
Help on module wiringpi:
NAME
wiringpi
DESCRIPTION
# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.
CLASSES
builtins.object
GPIO
I2C
Serial
nes
class GPIO(builtins.object)
| GPIO(pinmode=0)
|
>>>
wiringOP-Python is the same as wiringOP, you can also determine which GPIO
pin to operate by specifying the wPi number, because there is no command to check
the wPi number in wiringOP-Python, so you can only check the board wPi number
and physical Correspondence between pins.
1) The following takes pin 7—the corresponding GPIO is PC9—the corresponding wPi
number is 2 — as an example to demonstrate how to set the high and low levels of the
GPIO port
multimeter to measure the voltage value of the pin. If it is 0v, it means that the
low level is set successfully.
root@orangepi:~/wiringOP-Python# python3 -c "import wiringpi; \
from wiringpi import GPIO; wiringpi.wiringPiSetup() ;\
wiringpi.digitalWrite(2, GPIO.LOW)"
c. Then set the GPIO port to output a high level. After setting, you can use a
multimeter to measure the voltage value of the pin. If it is 3.3v, it means that the
high level is set successfully.
root@orangepi:~/wiringOP-Python# python3 -c "import wiringpi; \
from wiringpi import GPIO; wiringpi.wiringPiSetup() ;\
wiringpi.digitalWrite(2, GPIO.HIGH)"
4) The method of wiringOP-Python to set GPIO high and low levels in python code can
refer to the blink.py test program in the examples below. The blink.py test program will
set the voltage of all GPIO ports in the 26 pins of the development board to change
continuously.
root@orangepi:~/wiringOP-Python# cd examples
root@orangepi:~/wiringOP-Python/examples# ls blink.py
blink.py
root@orangepi:~/wiringOP-Python/examples# python3 blink.py
2) The spi1 is disabled by default in the Linux system and needs to be manually enabled
before it can be used. The steps to open are as follows:
a. First run orangepi-config, normal users remember to add sudo permission
orangepi@orangepi:~$ sudo orangepi-config
b. Then select System
d. Then use the arrow keys on the keyboard to navigate to the position shown in the
figure below, and then use the space to select spi1-cs1-spidev
g. Then select <Reboot> to restart the system to make the configuration take effect
3) Then check whether there is a spidev1.1 device node in the Linux system. If it exists,
it means that the configuration of SPI1 has taken effect
orangepi@orangepi:~$ ls /dev/spidev1*
/dev/spidev1.1
4) Then you can use the spidev_test.py program in the examples to test the loopback
function of the SPI. The spidev_test.py program needs to specify the following two
parameters:
a. --channel: Specify the channel number of SPI
b. --port: Specify the port number of SPI
5) Do not short-circuit the mosi and miso pins of SPI1, the output result of running
spidev_test.py is as follows, you can see that the data of TX and RX are inconsistent
root@orangepi:~/wiringOP-Python# cd examples
root@orangepi:~/wiringOP-Python/examples# python3 spidev_test.py \
--channel 1 --port 1
spi mode: 0x0
max speed: 500000 Hz (500 KHz)
Opening device /dev/spidev1.1
TX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF F0 0D |......@..........|
RX | FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF |.................|
6) Then use the Dupont wire to short-circuit the two pins of txd (pin 19 in the 26pin
interface) and rxd (pin 21 in the 26pin interface) of SPI1 and then run the output of
spidev_test.py as follows, you can see The data sent and received are the same, indicating
that the SPI1 loopback test is normal
root@orangepi:~/wiringOP-Python# cd examples
root@orangepi:~/wiringOP-Python/examples# python3 spidev_test.py \
--channel 1 --port 1
spi mode: 0x0
max speed: 500000 Hz (500 KHz)
Opening device /dev/spidev1.1
TX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF F0 0D |......@..........|
RX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF F0 0D |......@..........|
2) i2c3 is disabled by default in the Linux system, and it needs to be manually enabled
before it can be used. The steps to open are as follows:
a. First run orangepi-config, normal users remember to add sudo permission
orangepi@orangepi:~$ sudo orangepi-config
b. Then select System
d. Then use the arrow keys on the keyboard to navigate to the position shown in the
figure below, and then use the space to select ph-i2c3
g. Then select <Reboot> to restart the system to make the configuration take effect
3) After starting the linux system, first confirm that there is an i2c3 device node under
/dev
orangepi@orangepi:~$ ls /dev/i2c-3
/dev/i2c-3
5) Then connect an i2c device to the i2c3 pin of the 26pin connector, here we take the
DS1307 RTC module as an example
6) Then use the i2cdetect -y 3 command, if the address of the connected i2c device can
be detected, it means that the i2c device is connected correctly
7) Then you can run the ds1307.py test program in the examples to read the RTC time
root@orangepi:~/wiringOP-Python# cd examples
root@orangepi:~/wiringOP-Python/examples# python3 ds1307.py --device \
"/dev/i2c-3"
Thu 2022-06-16 04:35:46
Thu 2022-06-16 04:35:47
Thu 2022-06-16 04:35:48
^C
exit
2) uart5 is disabled by default in the Linux system, and it needs to be opened manually to
use it. The steps to open are as follows:
a. First run orangepi-config, normal users remember to add sudo permission
orangepi@orangepi:~$ sudo orangepi-config
b. Then select System
d. d. Then use the arrow keys on the keyboard to navigate to the position shown in
the figure below, and then use the space to select ph-uart5
g. Then select <Reboot> to restart the system to make the configuration take effect
3) After entering the linux system, first confirm whether there is a uart5 device node
under /dev
Note that the linux5.4 system is /dev/ttyAS5.
orangepi@orangepi:~$ ls /dev/ttyS5
/dev/ttyS5
4) Then start to test the uart5 interface, first use the DuPont line to short the rx and tx of
the uart5 interface to be tested
uart5
tx pin Corresponding to pin 8 in 26pin
rx pin Corresponding to pin 10 in 26pin
5) Finally, you can run the serialTest.py program in the examples to test the loopback
function of the serial port. If you can see the following print, it means that the loopback
test of the serial port is normal
root@orangepi:~/wiringOP-Python# cd examples
root@orangepi:~/wiringOP-Python/examples# python3 serialTest.py --device "/dev/ttyS5" # linux6.1 使用
root@orangepi:~/wiringOP-Python/examples# python3 serialTest.py --device "/dev/ttyAS5" # linux5.4 使用
Out: 0: -> 0
Out: 1: -> 1
Out: 2: -> 2
Out: 3: -> 3
Out: 4:^C
exit
is successful.
orangepi@orangepi:~$ sudo watchdog_test 10
open success
options is 33152,identity is sunxi-wdt
put_usr return,if 0,success:0
The old reset time is: 16
return ENOTTY,if -1,success:0
return ENOTTY,if -1,success:0
put_user return,if 0,success:0
put_usr return,if 0,success:0
keep alive
keep alive
keep alive
The command of the H618 chip Chipid is shown below. The chipid of each chip is
different, so you can use Chipid to distinguish multiple development boards.
orangepi@orangepi:~$ cat /sys/class/sunxi_info/sys_info | grep "chipid"
sunxi_chipid : 338020004c0048080147478824681ed1
2) Then download the latest version of the Python3.9 source code and decompress it
orangepi@orangepi:~$ wget \
https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tgz
orangepi@orangepi:~$ tar xvf Python-3.9.10.tgz
4) Then compile and install python3.9, the compilation time takes about half an hour
orangepi@orangepi:~$ make -j4
orangepi@orangepi:~$ sudo make altinstall
5) After installation, you can use the following command to view the Python version
number just installed
orangepi@orangepi:~$ python3.9 --version
Python 3.9.10
3) The method of temporarily replacing the pip source under Linux, the
<packagename> needs to be replaced with a specific package name
orangepi@orangepi:~$ pip3 install <packagename> -i \
https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
Orange Pi's Linux image has been pre-installed with Docker, but the Docker service
has not been opened by default. Use enable_docker.sh script to enable the docker service,
and then you can start using the docker command, and the docker service will be
automatically activated at the next start of the system.
orangepi@orangepi:~$ enable_docker.sh
You can use the following command to test the docker,If you can run hello-world to
indicate that docker can be used normally.
orangepi@orangepi:~$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
256ab8fe8778: Pull complete
Digest:
sha256:7f0a9f93b4aa3022c3a4c147a449ef11e0941a1fd0bf4a8e6c9408b2600777c5
Status: Downloaded newer image for hello-world:latest
When using the docker command, if it prompts permission denied, please add the
current user to the docker user group, so that the docker command can be run without
sudo。
orangepi@orangepi:~$ sudo usermod -aG docker $USER
Note: You need to log out of the system and log in again to take effect, and
restarting the system is also OK.
Note that only the method of installing Home Assistant in Ubuntu or Debian
system will be provided here. For detailed usage of Home Assistant, please refer to
official documents or corresponding books。
3.25.1. Install via docker
1) First of all, please install docker and make sure that docker can run normally. The
Method Of Installing The Docker, please refer to the instructions in the section on how to
install Docker。
2) Then you can search for the docker image of Home Assistant
orangepi@orangepi:~$ docker search homeassistant
3) Then use the following command to download the docker image of Home Assistant to
the local. The size of the image is about 1GB, and the download time will be relatively
long. Please wait patiently for the download to complete
orangepi@orangepi:~$ docker pull homeassistant/home-assistant
Using default tag: latest
latest: Pulling from homeassistant/home-assistant
be307f383ecc: Downloading
5fbc4c07ac88: Download complete
...... (omit some output)
4) Then you can use the following command to view the docker image of Home
Assistant just downloaded
orangepi@orangepi:~$ docker images homeassistant/home-assistant
REPOSITORY TAG IMAGE ID CREATED SIZE
homeassistant/home-assistant latest bfa0ab9e1cf5 2 months ago 1.17GB
6) Then enter 【IP address of the development board: 8123】in the browser to see the
Home Assistant interface
It takes a while for the Home Assistant container to start. If the following
interface is not displayed normally, please wait for a few seconds and then refresh. If
the following interface is not displayed normally after waiting for more than one
minute, it means that there is a problem with the installation of Home Assistant. At
this time, you need to check whether there is a problem with the previous
installation and setting process。
7) Then enter your name, user name and password and click Create Account
8) Then follow the interface prompts to set according to your preferences, and then click
Next
11) The final main interface displayed by Home Assistant is shown in the figure below
2) Then it is necessary to compile and install Python 3.9 and above versions. Please refer
to the section on compiling and installing Python source code for instructions
The default Python version for Debian Bullseye is Python3.9, so there is no need
to compile or install it.
The default Python version for Debian Bookworm is Python3.11, so there is no
need to compile or install it.
The default Python version for Ubuntu Jammy is Python3.10, so there is no
need to compile or install it.
The default Python version for Ubuntu Noble is Python3.12, so there is no need
to compile or install it.
7) Then enter [IP address of the development board: 8123] in the browser to see the
2) Then use the following command to print the output of the version number of
OpenCV, indicating that the installation of OpenCV is successful
a. The version of OpenCV in Ubuntu 24.04 is as follows:
orangepi@orangepi:~$ python3 -c "import cv2; print(cv2.__version__)"
4.6.0
b. The version of OpenCV in Ubuntu 22.04 is as follows:
orangepi@orangepi:~$ python3 -c "import cv2; print(cv2.__version__)"
4.5.4
c. The version of OpenCV in Ubuntu 20.04 is shown below:
orangepi@orangepi:~$ python3 -c "import cv2; print(cv2.__version__)"
4.2.0
d. The version of OpenCV in Debian11 is shown below:
orangepi@orangepi:~$ python3 -c "import cv2; print(cv2.__version__)"
4.5.1
e. The version of OpenCV in Debian12 is shown below:
orangepi@orangepi:~$ python3 -c "import cv2; print(cv2.__version__)"
4.6.0
1) First of all, you need to expand the/tmp memory. After setting, you need to restart
the linux system of the development board,and the command is shown below:
orangepi@orangepi:~$ sudo sed -i 's/nosuid/&,size=2G/' /etc/fstab
orangepi@orangepi:~$ sudo reboot
2) After restarting, you can see that the size of the/tmp space has become 2G
orangepi@orangepi:~$ df -h | grep "/tmp"
tmpfs 2.0G 12K 2.0G 1% /tmp
3) Then enter the following command in the Linux system to start the installation of the
aapanel
orangepi@orangepi:~$ sudo install_bt_panel.sh
4) Then the aapanel installation program reminds whether to install the Bt-Panel to
the/www folder, and enter Y at this time
+----------------------------------------------------------------------
| Bt-WebPanel FOR CentOS/Ubuntu/Debian
+----------------------------------------------------------------------
| Copyright © 2015-2099 BT-SOFT(http://www.bt.cn) All rights reserved.
+----------------------------------------------------------------------
| The WebPanel URL will be http://SERVER_IP:8888 when installed.
+----------------------------------------------------------------------
5) Then you have 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 34 minutes. There may be some differences according to the
difference in network speed
6) At this time, enter the panel address displayed above in the browser to open the login
interface of the aapanel Linux panel, and then enter the username and password
displayed in the corresponding position to log in to the aapanel
7)
8) After successfully logging in to the aapanel, the following welcome interface will pop
up. First, please take the intermediate user notice to read to the bottom, and then you can
choose "I have agreed and read" User Agreement ", and then click" Enter the panel " You
can enter the aapanel
9) After entering the aapanel, you will first prompt that you need to bind the account of
the aapanel official website. If you do n’t have an account, you can go to the aapanel ’s
official website (https://www.bt.cn) to register one
10) 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 state, CPU usage,
memory usage and storage space usage
11) For more functions of the aapanel, please refer to the following information to
explore by yourself
Use manual:http://docs.bt.cn
Forum website:https://www.bt.cn/bbs
GitHub Link:https://github.com/aaPanel/BaoTa
Note that the contents of this section are tested in the Linux system of the
desktop version, so please make sure that the system used by the development board
is a desktop version system。
In addition, the installation test below is performed under orangepi users.
Please keep the environment consistent.
nese.md
3.28.1. The method of using script to automatically install
face_recognition
1) First open a terminal on the desktop, then download face_recognition_install.sh
orangepi@orangepi:~/Desktop$ wget \
https://gitee.com/leeboby/face_recognition_install/raw/master/face_recognition_install.sh
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
EOF
4) Before installing face_recognition, you first need to install the dlib library. Since the
compilation and installation of the dlib library on the development board is relatively
slow, I saved a compiled dlib whl file on gitee, and you can install it directly after
downloading. The download address of the dlib whl file is as follows:
https://gitee.com/leeboby/python_whl
a. First download the python_whl warehouse to the Linux system of the
development board
orangepi@orangepi:~$ git clone --depth=1 https://gitee.com/leeboby/python_whl
b. In the python_whl folder, you can see that there are multiple versions of dlib
installation packages. The Linux systems corresponding to different versions of
dlib are as follows:
Ubuntu20.04 dlib-19.24.0-cp38-cp38-linux_aarch64.whl
Ubuntu22.04 dlib-19.24.0-cp310-cp310-linux_aarch64.whl
Debian11 dlib-19.24.0-cp39-cp39-linux_aarch64.whl
c. Then you can start installing dlib, the command is as follows
a) Ubuntu20.04
orangepi@orangepi:~$ cd python_whl
orangepi@orangepi:~/python_whl$ python3 -m pip install dlib-19.24.0-cp38-cp38-linux_aarch64.whl
b) Ubuntu22.04
orangepi@orangepi:~$ cd python_whl
orangepi@orangepi:~/python_whl$ python3 -m pip install dlib-19.24.0-cp310-cp310-linux_aarch64.whl
c) Debian11
orangepi@orangepi:~$ cd python_whl
orangepi@orangepi:~/python_whl$ python3 -m pip install dlib-19.24.0-cp39-cp39-linux_aarch64.whl
d. After installation, if the version number of dlib can be printed normally by using
the following command, it means that dlib is installed correctly
orangepi@orangepi:~/python_whl$ python3 -c "import dlib; print(dlib.__version__)"
19.24.0
7) Then you need to reopen a terminal to find and run the two commands
face_detection and face_recognition
a. The face_recognition command is used to recognize whose face is in a single
image or a folder of images.
b. The face_detection command is used to locate the face in a single picture or a
picture folder
orangepi@orangepi:~$ which face_detection
/usr/local/bin/face_detection
orangepi@orangepi:~$ which face_recognition
/usr/local/bin/face_recognition
If you can't find the above two commands after reopening the terminal, please try to
manually import environment variables, and then test again
orangepi@orangepi:~$ export PATH=/home/orangepi/.local/bin:$PATH
3.28.3. The test method of face_recognition
Note that the following operations are demonstrated on the desktop, so please
connect the HDMI monitor first, or use NoMachine/VNC to remotely log in to the
Linux desktop to test。
1) There are some sample codes in the source code of face_recognition, which we can
use directly for testing. The download address of the source code of face_recognition is
as follows:
a. GitHub official download address
orangepi@orangepi:~$ git clone https://github.com/ageitgey/face_recognition.git
b. Gitee image download address
orangepi@orangepi:~$ git clone https://gitee.com/leeboby/face_recognition.git
4) find_faces_in_picture.py is used to locate the position of the face in the picture, the
test steps are as follows
a. Open a terminal on the desktop, then enter the face_recognition/examples
directory, and then execute the following command
orangepi@orangepi:~$ cd face_recognition/examples
orangepi@orangepi:~/face_recognition/examples$ python3 find_faces_in_picture.py
I found 1 face(s) in this photograph.
A face is located at pixel location Top: 241, Left: 419, Bottom: 562, Right: 740
b. Wait for a while and the following picture will pop up, which is the face located
in the test picture
7) face_distance.py is used to compare whether two faces belong to the same person at
different precisions. First open a terminal, then enter the face_recognition/examples
directory, and then execute the following command to see the output of the test
orangepi@orangepi:~$ cd face_recognition/examples
orangepi@orangepi:~/face_recognition/examples$ python3 face_distance.py
The test image has a distance of 0.35 from known image #0
- With a normal cutoff of 0.6, would the test image match the known image? True
- With a very strict cutoff of 0.5, would the test image match the known image? True
picture is. First open a terminal, then enter the face_recognition/examples directory, and
then execute the following command, and you can see the test results after waiting for a
while
orangepi@orangepi:~$ cd face_recognition/examples
orangepi@orangepi:~/face_recognition/examples$ python3 recognize_faces_in_pictures.py
Is the unknown face a picture of Biden? False
Is the unknown face a picture of Obama? True
Is the unknown face a new person that we've never seen before? False
e. At this point, you can point the camera at yourself. When the camera detects a
face, it will frame the detected face with a square. Note that when detecting a
face, the image displayed by the camera will be relatively slow, please do not
move too fast
f. You can also open a picture of Obama, and then use the camera to point at the
opened picture. You can see that not only the face can be marked, but also the
name of the detected face can be displayed correctly. Note that when detecting
a face, the image displayed by the camera will be relatively slow, please do
not move too fast
follows:
a. Open a terminal on the desktop, then enter the face_recognition/examples
directory, and then execute the following command (if face_recognition is
automatically installed using a script, then there is no need to install flask)
orangepi@orangepi:~$ python3 -m pip install flask
orangepi@orangepi:~$ cd face_recognition/examples
root@orangepi:~/face_recognition/examples$ python3 web_service_example.py
* Serving Flask app 'web_service_example' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Running on all addresses (0.0.0.0)
WARNING: This is a development server. Do not use it in a production deployment.
* Running on http://127.0.0.1:5001
* Running on http://192.168.1.79:5001 (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 500-161-390
b. Then open another terminal and run the following command to return the result
of image recognition (note that the execution path of the following command is
face_recognition/examples)
orangepi@orangepi:~/face_recognition/examples$ curl -XPOST -F \
"[email protected]" http://127.0.0.1:5001
{
"face_found_in_image": true,
"is_picture_of_obama": true
}
c. We can also copy the picture face_recognition/examples/obama2.jpg to other
Linux computers. Of course, we can also prepare a picture named obama2.jpg
by ourselves, and then use the following command on the Linux computer to
remotely Use the service running on the development board to recognize faces
(note that the IP address in the command needs to be replaced with the IP
address of the development board, and the file name after file needs to be
replaced with the name of the picture you want to test).
d) Then click Upload to upload the picture you just selected for face
recognition
Options:
--cpus INTEGER number of CPU cores to use in parallel. -1 means "use all in
system"
--model TEXT Which face detection model to use. Options are "hog" or
"cnn".
--help Show this message and exit.
b. An example of detecting a single image is shown below:
orangepi@orangepi:~$ cd face_recognition/examples
orangepi@orangepi:~/face_recognition/examples$ face_detection obama2.jpg
obama2.jpg,302,474,611,164
c. An example of using multiple cores to detect multiple images in parallel is
shown below:
a) First enter the face_recognition/examples folder
Options:
--cpus INTEGER number of CPU cores to use in parallel (can speed
up processing lots of images). -1 means "use all in
system"
--tolerance FLOAT Tolerance for face comparisons. Default is 0.6.
Lower this if you get multiple matches for the same
person.
--show-distance BOOLEAN Output face distance. Useful for tweaking tolerance
setting.
test/biden.jpg,biden
test/obama-1080p.jpg,obama
Note, please make sure that the Linux system used by the development board is
a desktop system before installing the Chinese input method。
3.29.1. How to install Debian system
1) First set the default locale to Chinese
a. Enter the following command to start configuring the locale
orangepi@orangepi:~$ sudo dpkg-reconfigure locales
b. Then select zh_CN.UTF-8 UTF-8 in the pop-up interface (move up and down
through the up and down direction keys on the keyboard, select through the
space bar, and finally move the cursor to <OK>through the Tab key, and then
press Enter.)
d. After exiting the interface, the locale setting will start, and the output displayed
on the command line is as follows
orangepi@orangepi:~$ sudo dpkg-reconfigure locales
Generating locales (this might take a while)...
en_US.UTF-8... done
zh_CN.UTF-8... done
Generation complete.
3) Then choose OK
4) Then chooseYes
5) Then choosefcitx
6) Then chooseOK
7) Then restart the Linux system to make the configuration take effect
9) Then click the + sign in the position shown in the figure below
12) Then open the Geany editor to test the Chinese input method
14) The Chinese and English input methods can be switched through the Ctrl+Space
shortcut key
15) If the entire system needs to be displayed in Chinese, you can set the variables in
/etc/default/locale to zh_CN.UTF-8
orangepi@orangepi:~$ sudo vim /etc/default/locale
# File generated by update-locale
LC_MESSAGES=zh_CN.UTF-8
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN.UTF-8
16) Then restart the system and you can see that the system is displayed in Chinese
3) Then please use the left mouse button to select Chinese (China) and hold it down,
then drag it up to the initial position, the display after dragging is as shown in the figure
below:
Note that this step is not easy to drag, please be patient and try a few more
times.
4) Then select Apply System-Wide to apply the Chinese settings to the entire system
6) Then restart the Linux system to make the configuration take effect
7) After re-entering the system, please choose not to ask me again in the following
interface, and then please decide whether the standard folder should also be updated to
Chinese according to your preferences
9) Then we can open Geany to test the Chinese input method, as shown in the figure
below
10) After opening Geany, the default is English input method, we can switch to Chinese
input method through Ctrl+Space shortcut key, and then we can input Chinese
3) Then please use the left mouse button to select Chinese (China) and hold it down,
then drag it up to the initial position, the display after dragging is as shown in the figure
below:
Note that this step is not easy to drag, please be patient and try a few more
times。
4) Then select Apply System-Wide to apply the Chinese settings to the entire system
5) Then restart the Linux system to make the configuration take effect
6) After re-entering the system, please choose not to ask me again in the following
interface, and then please decide whether the standard folder should also be updated to
Chinese according to your preferences
10) The interface after selection is as shown below, and then click OK
11) Then we can open Geany to test the Chinese input method, the opening method is
shown in the figure below
12) After opening Geany, the default is English input method, we can switch to Chinese
input method through Ctrl+Space shortcut key, and then we can input Chinese
Before operation, please make sure that the Windows computer and the
development board are in the same LAN, and can log in to the Ubuntu or Debian
system of the development board through ssh
1) First download the installation package of the NoMachine software Linux arm64 deb
version, and then install it into the Linux system of the development board
a. Since H618 is a SOC of the ARMV8 architecture, the system we use is Ubuntu
or Debian, so you need to download the NoMachine for ARM ARMv8 DEB
installation package. The download link is shown below:
Note that this download link may change, please look for the deb package of the
Armv8/Arm64 version。
https://downloads.nomachine.com/download/?id=118&distro=ARM
2) Then download the installation package of the Windows version of the NoMachine
software, the download address is as follows
Note that this download link may change。
https://downloads.nomachine.com/download/?id=9
3) Then install NoMachine in Windows, please restart the computer after installation
5) After Nomachine starts, 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. Start log in to the linux system desktop of the development
board
6) Then click OK
7) 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
9) Finally, you can see the desktop of the development board Linux system
Ubuntu20.04 has many problems testing VNC, please do not use this method
1) First run the set_vnc.sh script to set up vnc, remember to add sudo permission
orangepi@orangepi:~$ sudo set_vnc.sh
You will require a password to access your desktops.
2) The steps to use the MobaXterm software to connect to the desktop of the Linux
system of the development board are as follows:
a. First click on Session, then select VNC, then fill in the IP address and port of the
development board, and finally click OK to confirm
c. After successful login, the interface is displayed as shown in the figure below,
and then you can remotely operate the desktop of the development board linux
system
orangepi@orangepi:~$ install_qt.sh
......
QMake version 3.1
Using Qt version 5.15.13 in /usr/lib/aarch64-linux-gnu
d. The QT version that comes with Debian11 is 5.15.2
orangepi@orangepi:~$ install_qt.sh
......
QMake version 3.1
Using Qt version 5.15.2 in /usr/lib/aarch64-linux-gnu
e. The QT version that comes with Debian12 is 5.15.8
orangepi@orangepi:~$ install_qt.sh
......
QMake version 3.1
Using Qt version 5.15.8 in /usr/lib/aarch64-linux-gnu
6) Then set up QT
a. First open Help->About Plugins....
8) After clicking the sample code, the corresponding instruction document will be
opened automatically, you can read the instructions carefully
10) Then click the green triangle in the lower left corner to compile and run the sample
code
11) After waiting for a period of time, the interface shown in the figure below will pop
up, which means that QT can compile and run normally
12) References
https://wiki.qt.io/Install_Qt_5_on_Ubuntu
https://download.qt.io/archive/qtcreator
https://download.qt.io/archive/qt
http://docs.ros.org
https://wiki.ros.org/Distributions
5) Before using the ROS tool, you first need to initialize rosdep, and then you can
quickly install some system dependencies and some core components in ROS when
compiling the source code
Note that running the following command needs to ensure that the development
board can access github normally, otherwise an error will be reported due to
network problems
The install_ros.sh script will try to modify /etc/hosts and run the following
commands automatically. However, this method cannot guarantee that github can
be accessed normally every time. If install_ros.sh prompts the following error after
installing ros1, please find other ways to allow the linux system of the development
board to access github normally, and then manually run the following command。
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
ERROR: error loading sources list:
The read operation timed out
orangepi@orangepi:~$ source /opt/ros/noetic/setup.bash
orangepi@orangepi:~$ sudo rosdep init
Wrote /etc/ros/rosdep/sources.list.d/20-default.list
Recommended: please run
rosdep update
orangepi@orangepi:~$ rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
Query rosdistro index
https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Skip end-of-life distro "ardent"
Skip end-of-life distro "bouncy"
Skip end-of-life distro "crystal"
Skip end-of-life distro "dashing"
Skip end-of-life distro "eloquent"
Add distro "foxy"
6) Then open a command line terminal window on the desktop, and use the test_ros.sh
script to start a small turtle routine to test whether ROS can be used normally
orangepi@orangepi:~$ test_ros.sh
7) After running the test_ros.sh script, a little turtle as shown in the figure below will
pop up
8) Then please keep the terminal window you just opened on top
9) At this time, press the direction keys on the keyboard to control the little turtle to
move up, down, left, and right
http://docs.ros.org
http://docs.ros.org/en/galactic/Releases.html
5) The install_ros.sh script will automatically run the ros2 -h command after installing
ros2. If you can see the following print, it means that the ros2 installation is complete
usage: ros2 [-h] Call `ros2 <command> -h` for more detailed usage. ...
optional arguments:
-h, --help show this help message and exit
Commands:
action Various action related sub-commands
bag Various rosbag related sub-commands
component Various component related sub-commands
daemon Various daemon related sub-commands
doctor Check ROS setup and other potential issues
interface Show information about ROS interfaces
launch Run a launch file
lifecycle Various lifecycle related sub-commands
multicast Various multicast related sub-commands
node Various node related sub-commands
param Various param related sub-commands
pkg Various package related sub-commands
run Run a package specific executable
security Various security related sub-commands
service Various service related sub-commands
topic Various topic related sub-commands
wtf Use `wtf` as alias to `doctor`
6) Then you can use the test_ros.sh script to test whether ROS 2 is installed successfully.
If you can see the following print, it means that ROS 2 can run normally
orangepi@orangepi:~$ test_ros.sh
[INFO] [1671174101.200091527] [talker]: Publishing: 'Hello World: 1'
[INFO] [1671174101.235661048] [listener]: I heard: [Hello World: 1]
[INFO] [1671174102.199572327] [talker]: Publishing: 'Hello World: 2'
[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: 2]
[INFO] [1671174103.199580322] [talker]: Publishing: 'Hello World: 3'
[INFO] [1671174103.204019965] [listener]: I heard: [Hello World: 3]
2) The install_ros.sh script will automatically run the ros2 -h command after installing
ros2. If you can see the following print, it means that the ros2 installation is complete
usage: ros2 [-h] Call `ros2 <command> -h` for more detailed usage. ...
optional arguments:
-h, --help show this help message and exit
Commands:
action Various action related sub-commands
bag Various rosbag related sub-commands
component Various component related sub-commands
daemon Various daemon related sub-commands
doctor Check ROS setup and other potential issues
interface Show information about ROS interfaces
launch Run a launch file
lifecycle Various lifecycle related sub-commands
multicast Various multicast related sub-commands
node Various node related sub-commands
param Various param related sub-commands
pkg Various package related sub-commands
run Run a package specific executable
security Various security related sub-commands
service Various service related sub-commands
topic Various topic related sub-commands
wtf Use `wtf` as alias to `doctor`
3) Then you can use the test_ros.sh script to test whether ROS 2 is installed successfully.
If you can see the following print, it means that ROS 2 can run normally
orangepi@orangepi:~$ test_ros.sh
[INFO] [1671174101.200091527] [talker]: Publishing: 'Hello World: 1'
[INFO] [1671174101.235661048] [listener]: I heard: [Hello World: 1]
[INFO] [1671174102.199572327] [talker]: Publishing: 'Hello World: 2'
[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: 2]
[INFO] [1671174103.199580322] [talker]: Publishing: 'Hello World: 3'
5) Reference documents
http://docs.ros.org/en/humble/index.html
http://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html
3.32.4. Ubuntu24.04 Method for Installing ROS 2 Jazzy
1) The install_ros.sh script can be used to install ros2
orangepi@orangepi:~$ install_ros.sh ros2
2) The install_ros.sh script will automatically run the ros2 -h command after installing
ros2. If you can see the print below, it means that ros2 installation is complete
usage: ros2 [-h] Call `ros2 <command> -h` for more detailed usage. ...
optional arguments:
-h, --help show this help message and exit
Commands:
action Various action related sub-commands
bag Various rosbag related sub-commands
component Various component related sub-commands
daemon Various daemon related sub-commands
doctor Check ROS setup and other potential issues
interface Show information about ROS interfaces
launch Run a launch file
lifecycle Various lifecycle related sub-commands
multicast Various multicast related sub-commands
node Various node related sub-commands
param Various param related sub-commands
pkg Various package related sub-commands
run Run a package specific executable
security Various security related sub-commands
service Various service related sub-commands
topic Various topic related sub-commands
wtf Use `wtf` as alias to `doctor`
3) Then you can use the test_ros.sh script to test whether ROS 2 is installed successfully.
If you can see the print below, it means ROS 2 can run normally
orangepi@orangepi:~$ test_ros.sh
[INFO] [1671174101.200091527] [talker]: Publishing: 'Hello World: 1'
[INFO] [1671174101.235661048] [listener]: I heard: [Hello World: 1]
[INFO] [1671174102.199572327] [talker]: Publishing: 'Hello World: 2'
[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: 2]
[INFO] [1671174103.199580322] [talker]: Publishing: 'Hello World: 3'
[INFO] [1671174103.204019965] [listener]: I heard: [Hello World: 3]
5) Reference Documents
http://docs.ros.org/en/jazzy/index.html
http://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debians.html
The Debian 11 system with the Linux6.1 kernel will report a GCC error when
compiling the kernel module. So if you want to compile the kernel module, please
use Debian12 or Ubuntu22.04
1) The Linux image released by OPi comes with the deb package of the kernel header
file by default, and the storage location is /opt/
orangepi@orangepi:~$ ls /opt/linux-headers*
/opt/linux-headers-xxx-sun50iw9_x.x.x_arm64.deb
2) Use the following command to install the deb package of the kernel header file
orangepi@orangepi:~$ sudo dpkg -i /opt/linux-headers*.deb
3) After installation, you can see the folder where the kernel header files are located
under /usr/src
orangepi@orangepi:~$ ls /usr/src
linux-headers-x.x.x
4) Then you can compile the source code of the hello kernel module that comes with the
Linux image. The source code of the hello module is in /usr/src/hello. After entering this
directory, use the make command to compile。
orangepi@orangepi:~$ cd /usr/src/hello/
orangepi@orangepi:/usr/src/hello$ sudo make
make -C /lib/modules/5.4.125/build M=/usr/src/hello modules
make[1]: Entering directory '/usr/src/linux-headers-5.4.125'
CC [M] /usr/src/hello/hello.o
Building modules, stage 2.
MODPOST 1 modules
CC [M] /usr/src/hello/hello.mod.o
LD [M] /usr/src/hello/hello.ko
make[1]: Leaving directory '/usr/src/linux-headers-5.4.125'
6) Using the insmod command, you can insert the hello.ko kernel module into the kernel
orangepi@orangepi:/usr/src/hello$ sudo insmod hello.ko
7) Then use the demsg command to view the output of the hello.ko kernel module. If
you can see the output instructions below, the hello.ko kernel module is loaded correctly
orangepi@orangepi:/usr/src/hello$ dmesg | grep "Hello"
[ 2871.893988] Hello Orange Pi -- init
int main(void)
{
printf("Hello World!\n");
return 0;
}
c. Then compile and run hello_world.c
orangepi@orangepi:~$ gcc -o hello_world hello_world.c
orangepi@orangepi:~$ ./hello_world
Hello World!
3) Debian Bullseye does not install Java compilation tools and runtime environment by
default
a. You can use the following command to install openjdk, the latest version in
Debian Bullseye is openjdk-17
orangepi@orangepi:~$ sudo apt install -y openjdk-17-jdk
b. After installation, you can check the version of Java
orangepi@orangepi:~$ java --version
c. Edit hello_world.java of java version
orangepi@orangepi:~$ vim hello_world.java
public class hello_world
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
d. Then compile and runhello_world.java
orangepi@orangepi:~$ javac hello_world.java
orangepi@orangepi:~$ java hello_world
Hello World!
3.34.2. Debian Bookworm System
1) Debian Bookworm is installed with a gcc compilation tool chain by default, which can
directly compile C language programs in the Linux system of the development board
a. The version of gcc is as follows
orangepi@orangepi:~$ gcc --version
gcc (Debian 12.2.0-14) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
b. Write the hello_world.c program in C language
orangepi@orangepi:~$ vim hello_world.c
#include <stdio.h>
int main(void)
{
printf("Hello World!\n");
return 0;
}
c. Then compile and run hello_world.c
orangepi@orangepi:~$ gcc -o hello_world hello_world.c
orangepi@orangepi:~$ ./hello_world
Hello World!
3) Debian Bookworm does not install Java compilation tools and operating environment
by default
a. You can use the following command to install openjdk, the latest version in
int main(void)
{
printf("Hello World!\n");
return 0;
}
c. Then compile and run hello_world.c
orangepi@orangepi:~$ gcc -o hello_world hello_world.c
orangepi@orangepi:~$ ./hello_world
Hello World!
3) Ubuntu Focal does not install Java compilation tools and operating environment by
default
a. You can use the following command to install openjdk-17
orangepi@orangepi:~$ sudo apt install -y openjdk-17-jdk
b. After installation, you can check the version of Java
orangepi@orangepi:~$ java --version
openjdk 17.0.2 2022-01-18
OpenJDK Runtime Environment (build 17.0.2+8-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 17.0.2+8-Ubuntu-120.04, mixed mode, sharing)
c. Write the Java version of hello_world.java
orangepi@orangepi:~$ vim hello_world.java
public class hello_world
{
int main(void)
{
printf("Hello World!\n");
return 0;
}
c. Then compile and run hello_world.c
orangepi@orangepi:~$ gcc -o hello_world hello_world.c
orangepi@orangepi:~$ ./hello_world
Hello World!
3) Ubuntu Jammy does not install Java compilation tools and operating environment by
default
a. You can use the following command to install openjdk-18
orangepi@orangepi:~$ sudo apt install -y openjdk-18-jdk
b. After installation, you can check the version of Java
orangepi@orangepi:~$ java --version
openjdk 18.0.2-ea 2022-07-19
OpenJDK Runtime Environment (build 18.0.2-ea+9-Ubuntu-222.04)
OpenJDK 64-Bit Server VM (build 18.0.2-ea+9-Ubuntu-222.04, mixed mode, sharing)
c. Write the Java version of hello_world.java
orangepi@orangepi:~$ vim hello_world.java
public class hello_world
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
d. Then compile and run hello_world.java
orangepi@orangepi:~$ javac hello_world.java
orangepi@orangepi:~$ java hello_world
Hello World!
int main(void)
{
printf("Hello World!\n");
return 0;
}
c. Then compile and run hello_world.c
orangepi@orangepi:~$ gcc -o hello_world hello_world.c
orangepi@orangepi:~$ ./hello_world
Hello World!
3) Ubuntu Noble does not have Java compilation tools and runtime environment installed
by default
a. You can use the following command to install openjdk-21
orangepi@orangepi:~$ sudo apt install -y openjdk-21-jdk
b. After installation, you can check the version of Java
orangepi@orangepi:~$ java --version
openjdk 21.0.4 2024-07-16
OpenJDK Runtime Environment (build 21.0.4+7-Ubuntu-1ubuntu224.04)
OpenJDK 64-Bit Server VM (build 21.0.4+7-Ubuntu-1ubuntu224.04, mixed mode,
sharing)
c. Write a Java version of hello_world.java
orangepi@orangepi:~$ vim hello_world.java
public class hello_world
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
d. Then compile and run hello_world.java
orangepi@orangepi:~$ javac hello_world.java
orangepi@orangepi:~$ java hello_world
Hello World!
1) Use the scp command to upload files from the Ubuntu PC to the Linux system of the
development board. The specific commands are as follows
a. file_path:Need to be replaced with the path of the file to be uploaded
b. orangepi: It is the user name of the Linux system of the development board,
and it can also be replaced with other ones, such as root
c. 192.168.xx.xx: It is the IP address of the development board, please modify it
according to the actual situation
d. /home/orangepi: The path in the Linux system of the development board can
also be modified to other paths
test@test:~$ scp file_path [email protected]:/home/orangepi/
3) There are more usages of scp, please use the following command to view the man
manual
test@test:~$ man scp
3) The interface after filezilla is opened is as follows, at this time, the display under the
remote site on the right is empty
4) The method of connecting the development board is shown in the figure below
7) After the connection is successful, you can see the directory structure of the
development board linux file system on the right side of the filezilla software
8) Then select the path to be uploaded to the development board on the right side of the
filezilla software, and then select the file to be uploaded on the Ubuntu PC on the left side
of the filezilla software, then click the right mouse button, and then click the upload
option to start uploading the file to the development board.
9) After the upload is complete, you can go to the corresponding path in the Linux
system of the development board to view the uploaded files
10) The method of uploading a folder is the same as that of uploading a file, so I won’t
go into details here
3.35.2. How to upload files to the development board Linux system in
Windows PC
1) First download the installation file of the Windows version of the filezilla software,
the download link is as follows
https://filezilla-project.org/download.php?type=client
During the installation process, please select Decline on the following installation
interface, and then select Next>
3) The interface after filezilla is opened is as follows, and the display under the remote
site on the right is empty
4) The method of connecting the development board is shown in the figure below:
7) After the connection is successful, you can see the directory structure of the
development board linux file system on the right side of the filezilla software
8) Then select the path to be uploaded to the development board on the right side of the
filezilla software, and then select the file to be uploaded on the Windows PC on the left
side of the filezilla software, then click the right mouse button, and then click the upload
option to start uploading the file to the development board.
9) After the upload is complete, you can go to the corresponding path in the Linux
10) The method of uploading a folder is the same as that of uploading a file, so I won’t
go into details here
1) By default, the switch logo will only be displayed in the desktop version of the system
2) Set the bootlogo variable to false in /boot/orangepiEnv.txt to turn off the switch logo
orangepi@orangepi:~$ sudo vim /boot/orangepiEnv.txt
verbosity=1
bootlogo=false
3) Set the bootlogo variable to true in /boot/orangepiEnv.txt to enable the switch logo
orangepi@orangepi:~$ sudo vim /boot/orangepiEnv.txt
verbosity=1
bootlogo=true
5) After replacing the boot logo picture, you need to run the following command to take
effect
orangepi@orangepi:~$ sudo update-initramfs -u
1) During the running of the Linux system, if the power is directly unplugged, the file
system may lose some data. It is recommended to use the poweroff command to shut
down the Linux system of the development board before power off, and then unplug the
power
orangepi@orangepi:~$ sudo poweroff
Note that after the development board is turned off, the power supply needs to
be re-plugged to turn it on.
2) Use the reboot command to restart the Linux system on the development board
orangepi@orangepi:~$ sudo reboot
The Linux SDK, orangepi-build, only supports running on X64 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.
test@test:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04 LTS
Release: 22.04
Codename: jammy
If the computer is installed with a 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 note, do not compile
orangepi-build on the WSL virtual machine, because orangepi-build has not been tested
in the WSL virtual machine, so it cannot be guaranteed that orangepi-build can be used
normally in WSL, and please do not compile it on the Linux system of the development
board Use orangepi-build in. The download address of the installation image of Ubuntu
22.04 amd64 version is:
https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/22.04/ubuntu-22.04-desktop-amd64.iso
The linux sdk refers to the code of orangepi-build. orangepi-build is modified based
on the armbian build system. Using orangepi-build, multiple versions of linux images can
Note that the development board using the H618 Soc 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.
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.
The u-boot and linux kernel versions currently used by the H618 series development
boards are as follows:
branch u-boot version Linux kernel version
current u-boot v2018.05 linux5.4
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.
We currently define the linux5.4 bsp kernel provided by Allwinner as the
current branch. The latest linux6.1 LTS kernel is defined as the next branch.
After orangepi-build is downloaded, it will contain the following files and folders:
a. build.sh: Compile the startup script
b. external: Contains the configuration files needed to compile the image, specific
scripts, and the source code of some programs, etc.
c. LICENSE: GPL 2 license file
d. README.md: orangepi-build documentation
e. scripts: General script for compiling linux images
test@test:~/orangepi-build$ ls
build.sh external LICENSE README.md scripts
The mirror URL of the cross-compilation toolchain in China is the open source
software mirror site of armbian University:
https://imola.armbian.com/dl/_toolchain/
After the toolchains are downloaded, it will contain multiple versions of the
cross-compilation toolchain:
test@test:~/orangepi-build$ ls toolchains/
gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu
gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu
gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabi
gcc-arm-11.2-2022.02-x86_64-arm-none-linux-gnueabihf
gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi
gcc-linaro-aarch64-none-elf-4.8-2013.11_linux
gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu
gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf
gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux
gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf
gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu
gcc-linaro-arm-none-eabi-4.8-2014.04_linux
The cross-compilation toolchain used to compile the H618 Linux kernel source code
is:
a. linux5.4
gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu
b. linux6.1
gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu
The cross-compilation toolchain used to compile the H618 u-boot source code is:
a. v2018.05
gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabi
b. v2021.07
gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu
4.2.3. orangepi-build complete directory structure description
1) 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
a. The git warehouse where the linux kernel source code is stored is as follows, pay
attention to switch the branch of the linux-orangepi warehouse to
a) Linux5.4
https://github.com/orangepi-xunlong/linux-orangepi/tree/orange-pi-5.4-sun50iw9
b) Linux6.1
https://github.com/orangepi-xunlong/linux-orangepi/tree/orange-pi-6.1-sun50iw9
b. The git warehouse where the u-boot source code is stored is as follows, pay
attention to switch the branch of the u-boot-orangepi warehouse to
a) v2018.05
https://github.com/orangepi-xunlong/u-boot-orangepi/tree/v2018.05-h618
b) v2021.07
https://github.com/orangepi-xunlong/u-boot-orangepi/tree/v2021.07-sunxi
2) 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:
a. build.sh: Compile the startup script
b. external: Contains the configuration files needed for compiling the image,
scripts for specific functions, and the source code of some programs. The rootfs
compressed package cached during the compiling process is also stored in
external
c. kernel: Store the source code of the linux kernel
5) Then it will start to compile u-boot, and part of the information prompted when
compiling the next branch is as follows:
a. u-boot source code version
[ o.k. ] Compiling u-boot [ v2021.07 ]
b. The version of the cross-compilation toolchain
[ o.k. ] Compiler version [ aarch64-linux-gnu-gcc 11 ]
c. Path to the generated u-boot deb package
[ o.k. ] Target directory [ orangepi-build/output/debs/u-boot ]
d. The package name of the generated u-boot deb package
[ o.k. ] File name [ linux-u-boot-next-orangepizero3_x.x.x_arm64.deb ]
e. Compilation time
[ o.k. ] Runtime [ 1 min ]
f. Repeat the command to compile u-boot, use the following command to start
compiling u-boot directly without selecting through the graphical interface
[ o.k. ] Repeat Build Options [ sudo ./build.sh BOARD=orangepizero3
BRANCH=next BUILD_OPT=u-boot ]
7) 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 (This function needs to be fully compiled once
u-boot, otherwise it will prompt that the source code of u-boot cannot be found),
otherwise the changes made will be restored, the method is as follows:
8) When debugging u-boot code, you can use the following method to update u-boot in
the linux image for testing
a. First upload the compiled u-boot deb package to the linux system of the
development board
test@test:~/orangepi-build$ cd output/debs/u-boot
test@test:~/orangepi_build/output/debs/u-boot$ scp \
linux-u-boot-next-orangepizero3_x.x.x_arm64.deb [email protected]:/root
b. Install the new u-boot deb package just uploaded
orangepi@orangepi:~$ sudo dpkg -i linux-u-boot-next-orangepizero3_x.x.x_arm64.deb
c. Then run the nand-sata-install script
orangepi@orangepi:~$ sudo nand-sata-install
d. Then select 5 Install/Update the bootloader on SD/eMMC
f. Press the Enter key again to start updating u-boot, and the following information
will be displayed after the update
g. Then you can restart the development board to test whether the modification of
u-boot takes effect
3) Then you will be prompted whether you need 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.
6) If you choose to display the kernel configuration menu (the second option) in step 3),
the kernel configuration interface opened by make menuconfig will pop up. At this time,
you can directly modify the kernel configuration, save and exit after modification. Yes,
after exiting, it will start compiling the kernel source code.
a. If you do not need to modify the configuration options of the kernel, when
running the build.sh script, pass in KERNEL_CONFIGURE=no to temporarily
7) Part of the information prompted when compiling the next branch kernel source code
is as follows:
a. The version of the linux kernel source code
[ o.k. ] Compiling current kernel [ 6.1.31 ]
b. The version of the cross-compilation toolchain used
[ o.k. ] Compiler version [ aarch64-linux-gnu-gcc 11 ]
c. The configuration file used by the kernel by default and the path where it is
stored are as follows
[ o.k. ] Using kernel config file
[ orangepi-build/external/config/kernel/linux-6.1-sun50iw9-next.config ]
d. The path of the deb package related to the kernel generated by compiling
[ o.k. ] Target directory [ output/debs/ ]
e. The package name of the compiled kernel image deb package
[ o.k. ] File name [ linux-image-next-sun50iw9_x.x.x_arm64.deb ]
f. The time used for compilation
9) When the orangepi-bulid compilation system compiles the linux kernel source code, it
first synchronizes the linux kernel source code with the linux kernel source code of the
github server, so if you want to modify the linux kernel source code, you first need to turn
off the update function of the source code (the linux kernel needs to be fully compiled
once This function can only be turned off after the source code, otherwise it will
prompt that the source code of the linux kernel cannot be found), otherwise the
changes made will be restored, the method is as follows:
Set the IGNORE_UPDATES variable in userpatches/config-default.conf to "yes"
test@test:~/orangepi-build$ vim userpatches/config-default.conf
IGNORE_UPDATES="yes"
10) 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
a. Upload the deb package of the compiled linux kernel to the linux system of the
development board
test@test:~/orangepi-build$ cd output/debs
test@test:~/orangepi-build/output/debs$ scp \
linux-image-next-sun50iw9_x.x.x_arm64.deb [email protected]:/root
b. Install the deb package of the new linux kernel just uploaded
orangepi@orangepi:~$ sudo dpkg -i linux-image-next-sun50iw9_x.x.x_arm64.deb
c. Then restart the development board, and then check whether the kernel-related
modifications have taken effect
orangepi@orangepi:~$ sudo reboot
4) Then select the branch type of the kernel source code, the type of rootfs maintained by
different versions of the kernel source code is different
a. The current branch can see debian11, ubuntu20.04, ubuntu22.04 three options
b. The next branch can see debian11, debian12, ubuntu22.04, ubuntu24.04 four
options
7) 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)
8) If you are compiling the image of the desktop version, you also need to select the type
of desktop environment. Currently only XFCE is maintained, so please choose the XFCE
type desktop
You can then select additional packages that need to be installed. Please press the
Enter key to skip directly here.
9) Then it will start to compile rootfs, and some information prompted during
compilation is explained as follows
a. The type of rootfs
[ o.k. ] local not found [ Creating new rootfs cache for bullseye ]
b. The storage path of the compiled rootfs compressed package
[ o.k. ] Target directory [ orangepi-build/external/cache/rootfs ]
c. The name of the rootfs compressed package generated by compilation
[ o.k. ] File name [ bullseye-xfce-arm64.5250ec7002de9e81a41de169f1f89721.tar.lz4 ]
11) If the required rootfs already exists under external/cache/rootfs, 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 external/cache/rootfs 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
4) Then select the branch type of the kernel source code, the type of rootfs maintained by
different versions of the kernel source code is different
a. The current branch can see debian11, ubuntu20.04, ubuntu22.04 three options
b. The next branch can see debian11, debian12, ubuntu22.04 three options
5) If you select the next branch, you will be prompted to select the size of the memory,
and the current branch does not need to be selected
a. If the purchased development board has a memory size of 1.5GB, please select
the first item
b. If the purchased development board is 1GB or 2GB or 4GB memory size, please
choose the second item
8) 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)
9) If you are compiling the image of the desktop version, you also need to select the type
of desktop environment. Currently only XFCE is maintained, so please select the XFCE
type desktop
You can then select additional packages that need to be installed. Please press the
Enter key to skip directly here.
10) Then it will start to compile the linux image. The general process of compilation is as
follows
a. Initialize the compilation environment of Ubuntu PC and install the software
packages required for the compilation process
b. Download the source code of u-boot and linux kernel (if cached, only update the
code)
c. Compile u-boot source code and generate u-boot deb package
d. Compile the linux source code and generate linux-related deb packages
e. Make the deb package of linux firmware
f. Make the deb package of the orangepi-config tool
g. Create a deb package supported by the board
h. If you are compiling the desktop image, you will also create desktop-related deb
packages
i. Check whether the rootfs has been cached, if not, recreate the rootfs, if it has been
cached, directly decompress and use
j. Install the previously generated deb package into rootfs
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.
l. Then make an image file and format the partition, the default type is ext4
m. Then copy the configured rootfs to the mirrored partition
n. Then update initramfs
o. Finally, write the bin file of u-boot into the image through the dd command
11) After compiling the image, the following information will be prompted
a. The storage path of the compiled image
[ o.k. ] Done building
[ output/images/orangepizero3_x.x.x_debian_bullseye_linux6.1.xx_xfce_desktop/ora
ngepizero3_x.x.x_debian_bullseye_linux6.1.xx_xfce_desktop.img ]
b. Compilation time
[ o.k. ] Runtime [ 19 min ]
c. Repeat the command to compile the image, and use the following command to
start compiling the image directly without selecting through the graphical
interface
[ o.k. ] Repeat Build Options [ sudo ./build.sh BOARD=orangepizero3
BRANCH=next BUILD_OPT=image RELEASE=bullseye BUILD_MINIMAL=no
BUILD_DESKTOP=no KERNEL_CONFIGURE=yes ]
First of all, please note that the OPi OS Arch system does not have a default orangepi
user and password, so after burning and starting the system, it is impossible to log in
remotely through the serial port and ssh directly (not even the root user). This is different
from Ubuntu and Debian systems.
When the OPi OS Arch system starts for the first time, it needs to be connected to an
HDMI display, and then initialize the system settings through the user wizard (including
creating a new user name and setting a password). The setup steps of the User Wizard are
as follows:
a) After burning the system for the first time and enter the desktop, you will see the
user wizard program shown in the figure below
c) After selecting the language, the user guide will immediately switch to the
corresponding language interface, such as the Chinese display as shown below
g) Then make sure that there is no problem with the selection, and then click the
install button
i) After the installation is complete, you need to click the Finish button to restart the
system
j) After restarting, the Orange Pi Hello program will be started automatically. At this
time, you need to remove the check status in the lower right corner when starting up.
Otherwise, you need to manually close the Orange Pi Hello program every time you start
it.
At this point, you can use the newly created user name and password to log in to the
OPi OS system through the serial port or ssh.
3) The storage path of xxx.dtbo in the OPi OS Arch image is as follows, please note that
not all dtbos under this path can be used.
/boot/dtbs/allwinner/overlay/
5) If you need to open multiple configurations at the same time, just add the paths of
multiple configurations directly behind FDTOVERLAYS. For example, the
configurations to open i2c3 and uart5 at the same time are as follows
[orangepi@orangepi-pc ~]$ sudo vim /boot/extlinux/extlinux.conf
LABEL Orange Pi
KERNEL /Image
FDT /dtbs/allwinner/sun50i-h616-orangepi-zero3.dtb
6) After setting, you need to restart the system to make the configuration take effect
[orangepi@orangepi-pc ~]$ sudo reboot
Use the pacman package management tool to install software that is not in OPi OS.
For example, the command to install the vim editor is as follows. If you want to install
other software, you only need to replace vim with the package name of the software you
want to install.
[orangepi@orangepi-pc ~]$ sudo pacman -Syy vim
Function OpenWRT
USB2.0 OK
3pin debug serial port OK
TF card startup OK
Gigabit Ethernet OK
LED Light OK
RTL8821CU USB Network Card OK
RTL8723BU USB Network Card OK
1) When you start the OpenWRT system 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
2) After logging into the system, you can use the df -h command to check 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.
root@OpenWrt:~# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 14.8G 14.7G 91.6M 99% /
tmpfs 495.5M 6.1M 489.4M 1% /tmp
tmpfs 512.0K 0 512.0K 0% /dev
/dev/root 14.8G 14.7G 91.6M 99% /opt/docker
2) The OpenWrt system will automatically log in as the root user by default, and the
interface will be displayed as follows
1) First, use a network cable to connect the LAN port of the board to the network port of
the computer so that the network port of the computer can obtain an IP address through
DHCP.
2) By default, the LAN port IP of the board is set to 192.168.2.1, so the computer can
obtain an IP address starting with 192.168.2.
3) If the computer is installed with 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.
test@ubuntu:~$ ssh [email protected]
4) The display after successfully logging into the system is as shown below
5) If the computer is installed with Windows system, you can refer to the method
described in the section "SSH remote login development board under Windows" to
log in
6.4.3. Log in to the LuCI management interface
Please note that in the OpenWrt system of Orange Pi Zero 3, the network port is
configured as a LAN port by default.
1) First, use a network cable to connect the LAN port of the board to the network port of
the computer so that the network port of the computer can obtain an IP address through
DHCP
2) The default LAN port IP of the board is set to 192.168.2.1, so the computer can obtain
an IP address starting with 192.168.2
3) Enter the IP address 192.168.2.1 in the browser on your computer to log in to the
LuCI interface
4) The OpenWrt system does not have a password set by default, so just click the
login button. After a successful login, the interface will be displayed as shown below
1) First, use a network cable to connect the LAN port of the board to the network port of
the computer so that the network port of the computer can obtain an IP address through
DHCP
2) The default LAN port IP of the board is set to 192.168.2.1, so the computer can obtain
an IP address starting with 192.168.2
3) Enter the IP address 192.168.2.1 in the browser on your computer to log in to the
LuCI interface
4) In the "Service" column of the navigation bar, select "Terminal" and click to enter
1) First, use a network cable to connect the LAN port of the board to the network port of
the computer so that the network port of the computer can obtain an IP address through
DHCP
2) The default LAN port IP of the board is set to 192.168.2.1, so the computer can obtain
an IP address starting with 192.168.2
add, delete and read the contents of the configuration file. For detailed instructions,
please refer to the official documentation
2) First, use the following command to obtain the network configuration. The
corresponding configuration file is /etc/config/network. You can see that the value of
network.lan.ipaddr is 192.168.2.1
root@OpenWrt:~# uci show network
...
network.lan=interface
network.lan.device='br-lan'
network.lan.proto='static'
network.lan.ipaddr='192.168.2.1'
network.lan.netmask='255.255.255.0'
network.lan.ip6assign='60'
....
4) Then enter the following command to complete the submission, that is, write it to the
configuration file
root@OpenWrt:~# uci commit
If the IP address in red is consistent with the one you want to set, it means the
modification is successful
root@OpenWrt:~# cat /etc/config/network
...
config interface 'lan'
option device 'br-lan'
option proto 'static'
option netmask '255.255.255.0'
option ip6assign '60'
option ipaddr '192.168.100.1'
...
5) Restart the network through ubus. For instructions on using ubus, please refer to the
official documentation
root@OpenWrt:~# ubus call network restart
6) At this point, enter the command and you can see that the IP of the LAN port is
already 192.168.100.1
root@OpenWrt:~# ifconfig br-lan
br-lan Link encap:Ethernet HWaddr FE:55:13:A3:EF:E7
inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fd60:c4cd:1033::1/60 Scope:Global
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:370 (370.0 B)
2) You will be prompted to re-enter your password. Enter the password again to confirm
and press Enter
Retype password:
Note: In the "Password" and "Confirm Password" dialog boxes, the passwords
entered twice must be consistent.
4) After the password is successfully changed, a pop-up box will pop up saying "System
password has been changed successfully". At this time, you need the password to log in
to OpenWRT
2) Execute the following command. If you can see the output of sdX, it means the USB
3) Use the mount command to mount the USB drive to /mnt, and then you can view the
files in the USB drive
root@OpenWrt:~# mount /dev/sda /mnt/
root@OpenWrt:~# ls /mnt/
test.txt
4) After mounting, you can use the df -h command to view the capacity usage and mount
point of the USB drive
root@OpenWrt:~# df -h | grep "sd"
/dev/sda 14.4G 187.2M 14.2G 1% /mnt
2) Then follow the steps to log in to the LuCI management interface to enter the LuCI
management interface
3) Then in the LuCI management interface, click "System->Mount Point" to enter the
mount point configuration interface
5) Then you will return to the mount point global settings page. Click "Save and Apply"
in the lower left corner of the page to make the mount point take effect
6) After saving, you can see in the "Mounted file system" that the storage device has
been mounted successfully
The currently tested USB wireless network cards are shown below. Please test other
types of USB wireless network cards by yourself. If they cannot be used, you need to
transplant the corresponding USB wireless network card driver.
序号 型号
1 RTL8723BU
Support 2.4G WIFI
2 RTL8821CU
Support 2.4G +5G WIFI
2)After the system is started, click Network -> Wireless to enter the wireless WiFi
configuration interface
4)Then click Save in the lower right corner of the page to make the configuration take
effect
5)Then click the Scan button to scan the surrounding WiFi hotspots
6)Then the following window will pop up showing the available WiFi hotspots. Click
the Join Network button on the right side of the WiFi hotspot you want to connect to to
connect to the WiFi hotspot
7)Then a WiFi hotspot connection interface will pop up. Enter the hotspot password as
shown in the picture below and click the Submit button
8)Then the following interface will pop up, click the Save button in the lower right
corner
9)Finally, you will return to the main interface of wireless configuration. Click Save
and Apply and wait for the configuration to be applied
10)After successfully connecting to the WiFi hotspot, the interface will be displayed as
shown below
2)After the system is started, click Network -> Wireless to enter the wireless WiFi
configuration interface
4)Then click Save in the lower right corner of the page to make the configuration take
effect
6)In the pop-up tab Device Configuration, we set the parameters as shown in the figure
below
7)然后 Then in Interface Configuration -> General Settings, set the mode to Access
Point AP, ESSID (wireless network name) to OpenWrt, and the network to lan
9)After completing the above settings, click Save in the lower right corner of the page,
and then exit the tab page
10)Then click Save and Apply in the lower right corner of the page and wait for the
configuration to be applied.
11)The display interface of successfully creating a hotspot is shown in the figure below
12)Then use your mobile phone or computer to search for the WiFi corresponding to the
SSID and connect. After the connection is successful, it will be shown as follows
If you need to add new software packages, you can install them through the
OpenWRT management interface
6.10.1. View the list of available packages on the system
1) First enter the package management page
a. Find the "System" option in the navigation bar and click to enter
b. In the vertical bar options below the system, select "Software Package" and
click to enter
2) Then the main page of the software package will appear, as shown below, to obtain the
list of available software
a. In the "Actions" option of the package, click "Update List" to get the list of
available packages
b. On the Tab page, click "Available" to view the currently available software
packages
c. View the number of currently available packages
There are two main software options for OpenWRT LAN file sharing, Samba
and NFS. Samba has better system compatibility, while NFS has better performance.
For users who need to use Windows devices, Samba is recommended
5) After the settings are completed, enter \\OpenWrt in the address bar of the resource
manager to access the shared directory. The username is root and the password is the
password set for the development board host
1) First execute the following command to download the main branch code
test@test:~$ sudo apt update
test@test:~$ sudo apt install -y git
test@test:~$ git clone https://github.com/orangepi-xunlong/openwrt.git -b main
2) After downloading the OpenWRT code, the following files and folders will be
included
test@test:~/openwrt$ ls
BSDmakefile Config.in include Makefile README.md scripts toolchain
Config feeds.conf.default LICENSE package rules.mk target tools
1) First install the following dependency packages (currently only tested on Ubuntu
22.04, the following dependency packages need to be installed. If you compile on other
versions of the system, please install the dependency packages yourself according to the
error message). Use the following command to install the dependency packages directly
test@test:~/openwrt$ sudo apt update
test@test:~/openwrt$ sudo apt install -y ack antlr3 asciidoc autoconf \
automake autopoint binutils bison build-essential \
bzip2 ccache cmake cpio curl device-tree-compiler fastjar \
flex gawk gettext gcc-multilib g++-multilib git gperf haveged \
help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev \
libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev \
libncurses5-dev \libncursesw5-dev libreadline-dev libssl-dev \
libtool lrzsz mkisofs msmtp nano ninja-build p7zip p7zip-full \
patch pkgconf python2.7 python3 python3-pyelftools \
libpython3-dev qemu-utils rsync scons squashfs-tools \
subversion swig texinfo uglifyjs upx-ucl unzip \
5) Execute the following command to start compiling the openwrt source code
test@test:~/openwrt$ make V=s
6) After the compilation is complete, the path where the image is generated is:
bin/targets/sunxi/cortexa53/openwrt-sunxi-cortexa53-xunlong_orangepi-zero3-ext4-sdcard.img.gz
Function Android12
HDMI Video OK
HDMI Audio OK
USB2.0 x 3 OK
TFcard boot OK
network card OK
infrared OK
WIFI OK
WIFI hotsport OK
Bluetooth OK
BLE Bluetooth OK
headphone audio OK
TV-OUT OK
USB camera OK
LED light OK
Temperature Sensor OK
Mali GPU OK
video codec OK
1) We generally use the mouse and keyboard to control the Android system of the
development board. When entering certain interfaces and need to return to the previous
interface or desktop, we can only return through the right mouse button, and the
keyboard cannot return.
2) If you have purchased the infrared remote control (other remote control does not work)
and the expansion board that match the development board, after inserting the expansion
board into the development board, you can return to the previous menu through the return
key in the remote control. The position of the return key is shown in the figure below
shown:
1) Make sure that the service.adb.tcp.port of the Android system is set to port number
5555
apollo-p2:/ # getprop | grep "adb.tcp"
[service.adb.tcp.port]: [5555]
2) If service.adb.tcp.port is not set, you can use the following command to set the port
number of network adb in the serial port
apollo-p2:/ # setprop service.adb.tcp.port 5555
apollo-p2:/ # stop adbd
apollo-p2:/ # start adbd
5) Then you can log in to the android system through the adb shell on the Ubuntu PC
test@test:~$ adb shell
apollo-p2:/ #
8.5.2. Use the data cable to connect to adb debugging
1) Prepare a data cable with USB Type C interface, plug one end of the USB interface
into the USB interface of the computer, and insert one end of the USB Type C interface
into the power interface of the development board. In this case, the development board is
powered by the USB interface of the computer, so please make sure that the USB
interface of the computer can provide the most power to drive the development board
4) Then you can log in to the android system through the adb shell on the Ubuntu PC
test@test:~$ adb shell
apollo-p2:/ $
6) Then you can see the list of resolutions supported by the display. At this time, click
the corresponding option to switch to the corresponding resolution. Please note that the
resolutions supported by different monitors may be different. If you connect to a TV, you
will generally see more resolution options than the picture below.
7) The HDMI output of the development board supports 4K display. When connected to
a 4K TV, you can see the option of 4K resolution
b. A VGA cable and a Micro HDMI male to HDMI female conversion cable
When using HDMI to VGA display, the development board and the Android
system of the development board do not need to make any settings, only the Micro
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.
4) After turning on WI-FI, you can see the searched signal under Available networks
5) After selecting the WI-FI you want to connect to, the password input interface shown
in the figure below will pop up
6) Then use the keyboard to enter the password corresponding to the WI-FI, and then use
the mouse to click the Enter button in the virtual keyboard to start connecting to the
WI-FI
7) After the WI-FI connection is successful, the display is as shown in the figure below
1) First, please make sure that the Ethernet port is connected to the network cable and
can access the Internet normally
5) Then turn on Hotspot Enable, you can also see the name and password of the
generated hotspot in the figure below, remember them and use them when connecting to
the hotspot (if you need to modify the name and password of the hotspot, you need to
turn off Hotspot Enable first, before modifying)
6) 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_7132) displayed under the
Hotspot name in the above picture in the WI-FI list searched by the mobile phone. Then
you can click AndroidAP_7132 to connect to the hotspot, and the password can be seen
7) 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 WI-FI Hotspot of the development board can be used normally.
1) First, please make sure that the Gigabit Ethernet port of the development board is
connected to a router or switch
4) Then you can see the IP address of the development board's wired network port at the
position shown in the figure below
4) Then click Pair new device to start scanning the surrounding Bluetooth devices
6) 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
7) 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
8) After the pairing is complete, open Paired devices and you can see the paired
Bluetooth devices
9) 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.
10) The pictures received by the Android system Bluetooth of the development board
can be viewed in Received files
1) First insert the USB (UVC protocol) camera into the USB interface of the
development board
2) If the USB camera is recognized normally, a corresponding video device node will be
generated under /dev
console:/ # ls /dev/video0
/dev/video0
3) Then make sure that the adb connection between the Ubuntu PC and the development
board is normal. For how to use adb, please refer to the instructions in the section on how
to use ADB
4) Download the USB camera test APP in the official tool on the development board data
download page
5) Then use the adb command to install the USB camera test APP to the Android system,
of course, you can also use the U disk to copy the installation
test@test:~$ adb install usbcamera.apk
6) After installation, you can see the startup icon of the USB camera on the Android
desktop
7) Then double-click to open the USB camera APP and you can see the output video of
the USB camera
The Android system released by Orange Pi has been ROOT, you can use the
1) Download rootcheck.apk from the official tool on the development board data
download page
2) Then make sure that the adb connection between the Ubuntu PC and the development
board is normal. For how to use adb, please refer to the instructions in the section on how
to use ADB
3) Then use the adb command to install rootcheck.apk to the Android system, of course,
you can also use the U disk to copy the installation
test@test:~$ adb install rootcheck.apk
4) After installation, you can see the startup icon of the ROOT test tool on the Android
desktop
5) The display interface after opening the ROOT test tool for the first time is shown in
the figure below
6) Then you can click CHECK NOW to start checking the ROOT status of the Android
system. After the check, the display is as follows, and you can see that the Android
system has obtained the ROOT permission
4) Then find the screen projection function in the mobile phone settings. Here we take
the Mi 12S Pro mobile phone as an example. Please research other brands of mobile
phones by yourself. As shown in the figure below, click the button in the red box to open
the screen projection function of the mobile phone
5) After waiting for a while, you can see the searched and connectable devices on the
mobile phone, and then we can select the device corresponding to the development board
to connect
6) Then the selection box shown in the figure below will pop up on the
MiracastReceiver application interface of the development board, here we can select
Accept
7) Then you can see the content of the mobile phone screen on the HDMI screen
connected to the development board
2) Then click the GPIO_TEST button to open the GPIO test interface
3) The GPIO test interface is shown in the figure below. There is a one-to-one
correspondence between the two rows of CheckBox buttons on the left and the 26pin
pins (PC1/PI16/PI6/PH10 in the lower left corner are GPIO ports in the 13pin pins).
When the CheckBox button is checked, the corresponding GPIO pin will be set to OUT
mode, and the pin level will be set to high level; when the checkbox is unchecked, the
GPIO pin level will be set to low level; When the GPIO READALL button is pressed,
information such as the wPi number, GPIO mode, and pin level can be obtained.
4) Then click the GPIO READALL button, the output information is as shown in the
figure below:
5) There are a total of 17 GPIO ports in the 26pin of the development board that can be
used (if you add 4 GPIO ports in the 13pin, then there are 21 in total), and the
following pin No. 7 - corresponding to GPIO is PC9 - corresponding to wPi The serial
number is 2——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 7. When the button is
selected, pin 7 will be set to high level. After setting, you can use a multimeter to measure
the voltage value of the pin. If it is 3.3v, it means setting high level success
6) Then click the GPIO READALL button, you can see that the current pin 7 mode is
OUT, and the pin level is high
7) Click the CheckBox button in the figure below again to cancel the check status. Pin 7
will be set to low level. After setting, you can use a multimeter to measure the voltage
value of the pin. If it is 0v, it means that the low level is set successfully.
8) Then click the GPIO READALL button, you can see that the current pin 7 mode is
OUT, and the pin level is low
3) Then click the UART_TEST button to open the UART test interface
4) The serial port test interface of wiringOP is shown in the figure below
6) Enter the baud rate you want to set in the edit box, and then click the OPEN button to
open the /dev/ttyAS5 node. After the opening is successful, the OPEN button becomes
unselectable, and the CLOSE button and SEND button become selectable.
8) Then you can enter a character in the send edit box below, click the SEND button to
start sending
9) If everything is normal, the received string will be displayed in the receiving box
2) Here is a demonstration to test the SPI1 interface through the w25q64 module, first
connect the w25q64 module to the SPI1 interface
It doesn’t matter if there is no w25q64 module, because there is a SPIFlash
connected to SPI0 on the development board, and the configuration of SPI0 is also
enabled by default in Android, so we can also directly use the onboard SPIFlash test.
4) Then click the SPI_TEST button to open the SPI test interface
5) Then select the spi device node in the upper left corner. If you directly test the
onboard SPIFlash, then keep the default /dev/spidev0.0. If you connect the w25q64
module to the 26pin spi1, then please select /dev /dev/spidev1.1
7) Then fill in the bytes that need to be sent, such as reading the ID information of the
onboard SPIFlash, fill in the address 0x9f in data[0], and then click the TRANSFER
button
8) Finally, the APP will display the read ID information of the onboard SPI Flash
9) If it is to read the w25q64 module connected to 26pin SPI1, then the read ID
information is shown in the figure below
10) 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)
3) Then click the I2C_TEST button to open the i2c test interface
4) The i2c test interface of wiringOP is shown in the figure below. You can see that the
default i2c is /dev/i2c-3, so we don’t need to re-select
5) Then connect an i2c device to the 26pin i2c3 pin, here we take the ds1307 rtc module
as an example
6) The i2c address of the ds1307 rtc module is 0x68. After connecting the wires, we can
use the i2cdetect -y 3 command in the serial port command line to check whether the i2c
address of the ds1307 rtc module can be scanned. As shown in the figure below, if you
can see the address 0x68, it means that the wiring of the ds1307 rtc module is correct.
apollo-p2:/ # i2cdetect -y 3
7) Then set the address of i2c to 0x68 in wiringOP, and then click the OPEN button to
open i2c3
8) The display after clicking the OPEN button to open i2c3 is as follows:
9) Then we test to write a value into the register of the rtc module, for example, write
0x55 to the 0x1c address
a. We first set the address of the register to be written to 0x1c
c. Then click the WRITE BYTE button to execute the write action
10) Then click the READ BYTE button to read the value of the 0x1c register, if it is
displayed as 0x55, it means that the i2c read and write test has passed
1) First download the Android 12 source code sub-volume compressed package from
Baidu or Google Disk
a. Baidu Netdisk
b. Google Disk
3) Then you need to combine multiple compressed files into one, and then extract the
Android source code. The command looks like this:
test@test:~$ cat H618-Android12-Src.tar.gza* > H618-Android12-Src.tar.gz
test@test:~$ tar -xvf H618-Android12-Src.tar.gz
source code is recommended to have 16GB or more memory, and 200GB or more
hard disk space is recommended. The more CPU cores, the better.
1) First install the software packages required to compile the Android12 source code
test@test:~$ sudo apt-get update
test@test:~$ sudo apt-get install -y git gnupg flex bison gperf build-essential \
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip u-boot-tools python-is-python3 \
libssl-dev libncurses5 clang gawk
2) Then compile the code in the longan folder, which mainly contains u-boot and linux
kernel
a. First run ./build.sh config to set compilation options
test@test:~$ cd H618-Android12-Src/longan
test@test:~/H618-Android12-Src/longan$ ./build.sh config
Choice [p2]: 2
All available flash:
0. default
1. nor
Choice [default]: 0
All available kern_ver:
0. linux-5.4
Choice [linux-5.4]: 0
All available arch:
0. arm
1. arm64
Choice [arm64]: 1
......
*** Default configuration is based on 'sun50iw9p1smp_h618_android_defconfig'
#
# configuration written to .config
#
make[1]: Leaving directory '/home/test/H618-Android12-Src/longan/out/kernel/build'
make: Leaving directory '/home/test/H618-Android12-Src/longan/kernel/linux-5.4'
INFO: clean buildserver
INFO: prepare_buildserver
3) Then use the following command to compile the Android source code and generate
the final Android image
test@test:~$ cd H618-Android12-Src
test@test:~/H618-Android12-Src$ source build/envsetup.sh
test@test:~/H618-Android12-Src$ lunch apollo_p2-userdebug
test@test:~/H618-Android12-Src$ make -j8
test@test:~/H618-Android12-Src$ pack
4) The storage path of the compiled and generated Android image is:
longan/out/h618_android12_p2_uart0.img
10. Appendix
Orangepizero3_1.0.0_debian_bullseye_desktop_xfce_linux5.4.125.7z
Orangepizero3_1.0.0_ubuntu_jammy_server_linux6.1.31.7z
Orangepizero3_1.0.0_debian_bookworm_server_linux6.1.31.7z
Orangepizero3_1.0.0_debian_bullseye_server_linux6.1.31.7z
Orangepizero3_1.0.0_ubuntu_jammy_desktop_xfce_linux6.1.31.7z
Orangepizero3_1.0.0_debian_bookworm_desktop_xfce_linux6.1.31.7z
Orangepizero3_1.0.0_debian_bullseye_desktop_xfce_linux6.1.31.7z
OrangePi_Zero3_Android12_v1.0.tar.gz
*initial version
2023-07-13 Opios-arch-aarch64-xfce-opizero3-23.07-linux6.1.31.img.xz
* initial version
2023-10-07 Orangepizero3_1.0.2_ubuntu_jammy_server_linux6.1.31.7z
Orangepizero3_1.0.2_debian_bookworm_server_linux6.1.31.7z
Orangepizero3_1.0.2_debian_bullseye_server_linux6.1.31.7z
Orangepizero3_1.0.2_ubuntu_jammy_desktop_xfce_linux6.1.31.7z
Orangepizero3_1.0.2_debian_bookworm_desktop_xfce_linux6.1.31.7z
Orangepizero3_1.0.2_debian_bullseye_desktop_xfce_linux6.1.31.7z
* Solve the problem that HDMI still displays the logo after shutting down
2024-07-10 Orangepizero3_1.0.4_ubuntu_jammy_server_linux6.1.31.7z
Orangepizero3_1.0.4_debian_bookworm_server_linux6.1.31.7z
Orangepizero3_1.0.4_debian_bullseye_server_linux6.1.31.7z
Orangepizero3_1.0.4_ubuntu_jammy_desktop_xfce_linux6.1.31.7z
Orangepizero3_1.0.4_debian_bookworm_desktop_xfce_linux6.1.31.7z
Orangepizero3_1.0.4_debian_bullseye_desktop_xfce_linux6.1.31.7z
* Initial version