Difference between revisions of "APITestPage"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
(67 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[NanoPC-T4/zh|查看中文]]
+
[[Getting Started with OpenMediaVault|English]]
 
+
==OpenMediaVault版本信息==
==Introduction==
+
* OS: Debian 12<br />
[[File:NanoPC-T4-01B.jpg|thumb|Overview]]
+
* OpenMediaVault: 7.0.5-1 (Sandworm)<br />
[[File:NanoPC-T4-A01.jpg|thumb|Front]]
+
* Docker: 26.0.1<br />
[[File:NanoPC-T4-B01.jpg|thumb|Back]]
+
* Others: 已安装OMV-Extras软件包<br />
* The NanoPC-T4 is by far the smallest RK3399 based high-performance ARM board with popular ports and interfaces. Its software is fully open source. It is as small as 100 x 64 mm. It has 4GB LPDDR3 RAM, 16GB eMMC flash, onboard 2.4G & 5G dual-band WiFi module and a full standard M.2 PCIe interface which supports an NVME SSD high-speed hard drive. The NanoPC-T4 supports GPU and VPU acceleration and works with Android 7.1 and Lubuntu Desktop.
+
==旧版本的OpenMediaVault文档==
 
+
Link to [[Getting Started with OpenMediaVault6/zh|Getting Started with OpenMediaVault6]]
* The NanoPC-T4 has a MIPI-CSI dual camera interface, a MIPI-DSI and an eDP display interfaces, and an HDMI 2.0 interface. It has Type-C/DP, USB 3.0, USB2.0, MicroSD, Gbps Ethernet port, 3.5mm audio jack, infrared receiver, AD input, serial debug interface and a 40Pin RPi compatible connector.
+
==OpenMediaVault运行界面==
 
+
[[File:Openmediavault7-zh.png|600px]]
* The RK3399 SoC has an internal Mali-T860 GPU which has powerful capabilities of processing 3D and HD H.265/H2.64 video streams. It supports dual camera inputs, dual ISP interface capable of doing image processing up to 13MPix/s. The NanoPC-T4 is a perfect platform for AI and deep learning applications. It can be widely used in advertisement machines, game machines, video conference applications, surveillance systems, clusters, VR/AR applications, machine vision applications and etc.
+
==支持的平台==
 
+
* RK3328<br />
==Hardware Spec==
+
* RK3399<br />
* SoC: Rockchip RK3399
+
* RK3568<br />
** CPU: big.LITTLE,Dual-Core Cortex-A72(up to 2.0GHz) + Quad-Core Cortex-A53(up to 1.5GHz)
+
* RK3588<br />
** GPU: Mali-T864 GPU,supports OpenGL ES1.1/2.0/3.0/3.1, OpenCL, DX11, and AFBC
+
==查看IP地址==
** VPU: 4K VP9 and 4K 10bits H265/H264 60fps decoding, Dual VOP, etc
+
由于主机名默认为开发板的型号, 所以可以使用ping命令来获得IP地址,例如CM3588,可以用命令:
* PMU: RK808-D PMIC, cooperated with independent DC/DC, enabling DVFS, sofeware power-down, RTC wake-up, system sleep mode
+
* RAM: Dual-Channel 4GB LPDDR3-1866
+
* Flash: 16GB eMMC 5.1 Flash
+
* Ethernet: Native Gigabit Ethernet
+
* Wi-Fi/BT: 802.11a/b/g/n/ac, Bluetooth 4.1, Wi-Fi and Bluetooth combo module, 2x2 MIMO, dual antenna interface
+
* Video Input: one or two 4-Lane MIPI-CSI, dual ISP, up to 13MPix/s,supports simultaneous input of dual camera data
+
* Video output
+
** HDMI: HDMI 2.0a, supports 4K@60Hz,HDCP 1.4/2.2
+
** DP on Type-C: DisplayPort 1.2 Alt Mode on USB Type-C
+
** LCD Interface: one eDP 1.3(4-Lane,10.8Gbps), one or two 4-Lane MIPI-DSI
+
* Audio Out: 3.5mm Dual channel headphone jack, or HDMI
+
* Audio In: 2-Pin 2.54mm microphone interface
+
* USB 2.0: 2 independent native USB 2.0 Host A interfaces
+
* USB 3.0: 1 native USB 3.0 Host A type interface
+
* USB Type-C: Supports USB3.0 Type-C and DisplayPort 1.2 Alt Mode on USB Type-C
+
* PCIe: One M.2 M-Key PCIe x4 socket, compatible with PCIe 2.1, Dual operation mode; Onboard M3 PCB nut for mounting M.2 2280 module
+
* microSD Slot x 1
+
* 40Pin GPIO Extension ports:
+
** 3 X 3V/1.8V I2C, up to 1 x 3V UART, 1 X 3V SPI, 1 x SPDIF_TX, up to 8 x 3V GPIOs
+
** 1 x 1.8V I2S, 3 x 1.8V GPIOs
+
* ADC: 3 x 1.8V ADC inputs, 5 Pin 2.54mm header
+
* Debug: one Debug UART, 4 Pin 2.54mm header, 3V level, 1500000bps
+
* Keys: PowerKey, Reset, MASKROM(BOOT), Recovery
+
* LED: 1 x power LED and 1 x GPIO Controlled LED
+
* IR reciver: Onboard IR reciver, Acceptes 38KHz carrier frequency
+
* RTC Battery: 2 Pin 1.27/1.25mm RTC battery input connector
+
* Cooling: two 2.5mm PCB nuts for mounting heat sink; 3 Pin 12V cooling fan interface with PWM
+
* Power supply: DC 12V/2A
+
* PCB: Ten Layer, 100 mm x 64 mm
+
*Ambient Operating Temperature: -20℃ to 70℃
+
 
+
==Software Features==
+
 
+
==Diagram, Layout and Dimension==
+
===Layout===
+
[[File:NanoPC-T4-1902-IF-01.jpg |thumb|600px|NanoPC-T4 Layout]]
+
* '''40 Pin GPIO Pin Spec'''
+
::{| class="wikitable"
+
|-
+
|'''Pin#''' || '''Assignment'''          ||'''Pin#'''  || '''Assignment'''   
+
|-
+
|1   || VCC3V3_SYS  ||2    || VCC5V0_SYS
+
|-
+
|3    || I2C2_SDA(3V)     ||4    || VCC5V0_SYS
+
|-
+
|5    || I2C2_SCL(3V)      ||6    || GND
+
|-
+
|7    || GPIO1_A0(3V)      ||8    || GPIO4_C1/I2C3_SCL(3V)
+
|-
+
|9    || GND          ||10    || GPIO4_C0/I2C3_SDA(3V)
+
|-
+
|11  || GPIO1_A1(3V)      ||12    || GPIO1_C2(3V)
+
|-
+
|13  || GPIO1_A3(3V)      ||14    || GND
+
|-
+
|15  || GPIO1_A4(3V)      ||16    || GPIO1_C6(3V)
+
|-
+
|17  || VCC3V3_SYS ||18    || GPIO1_C7(3V)
+
|-
+
|19  || SPI1_TXD/UART4_TX(3V)    ||20    || GND
+
|-
+
|21  || SPI1_RXD/UART4_RX(3V)    ||22    || GPIO1_D0(3V)
+
|-
+
|23  || SPI1_CLK(3V)    ||24    || SPI1_CSn0(3V)
+
|-
+
|25  || GND          ||26    || GPIO4_C5/SPDIF_TX(3V)
+
|-
+
|27  || I2C2_SDA(1.8V)      ||28    || I2C2_SCL(1.8V)
+
|-
+
|29  || I2S1_LRCK_RX(1.8V)      ||30    || GND
+
|-
+
|31  ||I2S1_LRCK_TX(1.8V)    ||32    || I2S_CLK(1.8V)
+
|-
+
|33  || I2S1_SCLK(1.8V)      ||34    || GND
+
|-
+
|35  || I2S1_SDI0(1.8V)    ||36    || I2S1_SDO0(1.8V)
+
|-
+
|37  || GPIO3_D4(1.8V)    ||38    || GPIO3_D5(1.8V)
+
|-
+
|39  || GND          ||40    || GPIO3_D6(1.8V)
+
|}
+
 
+
* '''eDP Interface Pin Spec'''
+
:: Connector P/N: I-PEX-20455-030E
+
::{| class="wikitable"
+
|-
+
|'''Pin#''' || '''Assignment'''      || '''Description'''   
+
|-
+
|1    || GND        || Signal ground
+
|-
+
|2    || EDP_TX3N  || eDP data lane 3 negative output
+
|-
+
|3    || EDP_TX3P  || eDP data lane 3 positive output 
+
|-
+
|4    || GND        || Signal ground
+
|-
+
|5    || EDP_TX2N  || eDP data lane 2 negative output
+
|-
+
|6    || EDP_TX2P  || eDP data lane 2 positive output     
+
|-
+
|7    || GND        || Signal ground
+
|-
+
|8    || EDP_TX1N  || eDP data lane 1 negative output 
+
|-
+
|9    || EDP_TX1P  || eDP data lane 1 positive output     
+
|-
+
|10    || GND      || Signal ground
+
|-
+
|11    || EDP_TX0N  || eDP data lane 0 negative output 
+
|-
+
|12    || EDP_TX0P  || eDP data lane 0 positive output 
+
|-
+
|13    || GND      || Signal ground
+
|-
+
|14    || EDPAUXP  || eDP CH-AUX positive differential output
+
|-
+
|15    || EDPAUXN  || eDP CH-AUX negative differential output 
+
|-
+
|16    || GND      || Signal ground
+
|-
+
|17    || VCC3V3_SYS || 3.3V Power output for logic
+
|-
+
|18    || VCC3V3_SYS || 3.3V Power output for logic
+
|-
+
|19    || I2C4_SDA  || 3V I2C data signal, Connect to touch panel
+
|-
+
|20    || I2C4_SCL  || 3V I2C clock signal, Connect to touch panel
+
|-
+
|21    || GPIO1_C4_TP_INT ||  3V interrupt input, Connect to the interrupt output of touch panel
+
|-
+
|22    || GPIO1_B5_TP_RST ||  3V output for reseting touch panel, Connect to the reset input of touch panel 
+
|-
+
|23    || PWM0_BL        || 3V PWM output, for LCD backlight dimming. pull up to VCC3V3_SYS on LCD side.
+
|-
+
|24    || GPIO4_D5_LCD_BL_EN || 3V output for turning on/off the LCD backlight
+
|-
+
|25    || GND        || Backlight ground
+
|-
+
|26   || GND        || Backlight ground
+
|-
+
|27    || GND        || Backlight ground
+
|-
+
|28    || VCC12V0_SYS || 12V Power output for Backlight Power
+
|-
+
|29    || VCC12V0_SYS || 12V Power output for Backlight Power
+
|-
+
|30    || VCC12V0_SYS || 12V Power output for Backlight Power 
+
|}
+
* '''MIPI-DSI Interface Pin Spec'''
+
:: 0.5mm FPC connector
+
::{| class="wikitable"
+
|-
+
|'''Pin#''' || '''Assignment'''            || '''Description '''
+
|-
+
|1, 2, 3 || VCC5V0_SYS  || 5V power output
+
|-
+
|4|| GND                || Return current path
+
|-
+
|5 || I2C4_SDA          || 3V I2C data signal, Connect to touch panel
+
|-
+
|6  || I2C4_SCL        || 3V I2C clock signal, Connect to touch panel
+
|-
+
|7  || GND              || Return current path
+
|-
+
|8      || GPIO1_C4_TP_INT || 3V interrupt input, Connect to the interrupt output of touch panel 
+
|-
+
|9      || GND        || Return current path
+
|-   
+
|10      || PWM0_BL    || 3V PWM output, for LCD backlight dimming
+
|-
+
|11      || GND        || Return current path
+
|-
+
|12      || GPIO4_D5_LCD_BL_EN || 3V output for turning on/off the LCD backlight
+
|-
+
|13      || GPIO4_D6_LCD_RST_H  || 3V output for reseting the LCD module
+
|-
+
|14      || GPIO1_B5_TP_RST    || 3V output for reseting touch panel, Connect to the reset input of touch panel
+
|-
+
|15      || GND              || Return current path
+
|-
+
|16      || MIPI_TX0_D3N    || MIPI DSI negative differential data line transceiver output
+
|-
+
|17      || MIPI_TX0_D3P    || MIPI DSI positive differential data line transceiver output
+
|-
+
|18      || GND    ||  Return current path
+
|-
+
|19      || MIPI_TX0_D2N  || MIPI DSI negative differential data line transceiver output
+
|-
+
|20    || MIPI_TX0_D2P  || MIPI DSI positive differential data line transceiver output
+
|-
+
|21    || GND    ||  Return current path
+
|-
+
|22    || MIPI_TX0_D1N  || MIPI DSI negative differential data line transceiver output
+
|-
+
|23 || MIPI_TX0_D1P  || MIPI DSI positive differential data line transceiver output
+
|-
+
|24 || GND  ||  Return current path
+
|-
+
|25 || MIPI_TX0_D0N || MIPI DSI negative differential data line transceiver output
+
|-
+
|26 || MIPI_TX0_D0P  || MIPI DSI positive differential data line transceiver output
+
|-
+
|27 || GND    || Return current path
+
|-
+
|28 || MIPI_TX0_CLKN  || MIPI DSI negative differential clock line transceiver output
+
|-
+
|29 || MIPI_TX0_CLKP  || MIPI DSI positive differential clock line transceiver output
+
|-
+
|30 || GND    || Return current path
+
|}
+
* '''MIPI-CSI Interface Pin Spec'''
+
:: 0.5mm FPC Connector
+
:: MIPI-CSI2 can be configured to MIPI-DSI
+
::{| class="wikitable"
+
|-
+
|'''Pin#''' ||  '''MIPI-CSI1'''  ||  '''MIPI-CSI2'''  ||  '''Description ''' 
+
|-
+
|1   ||  VCC5V0_SYS  || VCC5V0_SYS  ||  5V Power ouput
+
|-
+
|2    ||  VCC5V0_SYS || VCC5V0_SYS    ||  5V Power ouput
+
|-
+
|3    ||    GND    ||  GND          ||  Return current path
+
|-
+
|4    || VCC_CSI_AF2.8V || VCC_CSI_AF2.8V || 2.8V Power for VCM
+
|-
+
|5    || VCC_CSI_1.2V  || VCC_CSI_1.2V  || 1.2V Power for image sensor core circuit
+
|-
+
|6    ||  VCC1V8_CAM  ||  VCC1V8_CAM  || 1.8V power for I/O circuit
+
|-
+
|7    ||  VCC_CSI_2.8V || VCC_CSI_2.8V || 2.8V power for image sensor analog circuit
+
|-
+
|8    ||  VCC_CSI_1.0V || VCC_CSI_1.0V || 1.0V Power for image sensor core circuit
+
|-
+
|9    || I2C1_SCL ||  I2C2_SCL        || 1.8V I2C clock signal
+
|-
+
|10    || I2C1_SDA || I2C2_SDA        ||  1.8V I2C data signal
+
|-
+
|11    || MIPI_CSI0_RST || MIPI_CSI1_RST || reset  camera module
+
|-
+
|12    || MIPI_CSI0_PWN || MIPI_CSI1_PWN  || Power down camera module
+
|-
+
|13    ||  GND          ||      GND          || Return current path
+
|-
+
|14    || GPIO2_B3_CIF_CLKOUTA || GPIO2_B3_CIF_CLKOUTA || MCLK to camera module
+
|-
+
|15      || GND          ||    GND            || Return current path
+
|-
+
|16    ||  MIPI_RX0_D3P  || MIPI_TX1/RX1_D3P  || MIPI CSI positive differential data line transceiver output
+
|-
+
|17    ||  MIPI_RX0_D3N || MIPI_TX1/RX1_D3N    || MIPI CSI negative differential data line transceiver output
+
|-
+
|18    ||  GND    || GND                      || Return current path
+
|-
+
|19    || MIPI_RX0_D2P || MIPI_TX1/RX1_D2P  || MIPI CSI positive differential data line transceiver output
+
|-
+
|20    || MIPI_RX0_D2N || MIPI_TX1/RX1_D2N    || MIPI CSI negative differential data line transceiver output
+
|-
+
|21    || GND || GND    || Return current path
+
|-
+
|22    ||  MIPI_RX0_D1P  || MIPI_TX1/RX1_D1P  || MIPI CSI positive differential data line transceiver output
+
|-
+
|23    || MIPI_RX0_D1N || MIPI_TX1/RX1_D1N    || MIPI CSI negative differential data line transceiver output
+
|-
+
|24    || GND || GND    || Return current path
+
|-
+
|25    || MIPI_RX0_CLKP || MIPI_TX1/RX1_CLKP  || MIPI CSI positive differential clock line transceiver output
+
|-
+
|26    || MIPI_RX0_CLKN || MIPI_TX1/RX1_CLKN    || MIPI CSI negative differential clock line transceiver output
+
|-
+
|27    || GND ||  GND  || Return current path
+
|-
+
|28    || MIPI_RX0_D0P || MIPI_TX1/RX1_D0P || MIPI CSI positive differential data line transceiver output
+
|-
+
|29    || MIPI_RX0_D0N || MIPI_TX1/RX1_D0N  || MIPI CSI negative differential data line transceiver output
+
|-
+
|30    || GND      ||  GND    || Return current path
+
|}
+
* '''M.2 PCIe Pin Spec'''
+
:: PCIe Gen 2.1 x4
+
:: M.2 Key M Connector for Socket 2/Socket 3 PCIe-based Module, such as PCIe SSD
+
:: Connector P/N: [https://www.amphenolcanada.com/ProductSearch/drawings/AC/MDTXXXXXX001.pdf MDT-420-M-01002]
+
::{| class="wikitable"
+
|-
+
|'''Pin#''' || '''Assignment'''  || '''Description'''                      ||'''Pin#'''  || '''Assignment'''      || '''Description'''
+
|-
+
|1          || GND              || Return current path                    ||  2        || VCC3V3_SYS            || 3.3V Power output     
+
|-
+
|3          || GND              || Return current path                    ||  4        || VCC3V3_SYS            || 3.3V Power output
+
|-
+
|5          || PCIE_RX3_N      || PCIe differential data input signals  ||  6        || N/C                  || no connection
+
|-
+
|7          || PCIE_RX3_P      || PCIe differential data input signals  ||    8      || N/C                  ||  no connection
+
|-
+
|9          || GND              || Return current path                    ||  10      ||  N/C                  ||  no connection
+
|-
+
|11        || PCIE_TX3N        || PCIe differential data output signals  ||  12      ||  VCC3V3_SYS          ||  3.3V Power output
+
|-
+
|13        || PCIE_TX3P        || PCIe differential data output signals    || 14      ||  VCC3V3_SYS          ||  3.3V Power output
+
|- 
+
|15        ||  GND            || Return current path                      || 16        ||  VCC3V3_SYS        ||  3.3V Power output
+
|-
+
|17        || PCIE_RX2_N      || PCIe differential data input signals      || 18      || VCC3V3_SYS          || 3.3V Power output
+
|-
+
|19        || PCIE_RX2_P      || PCIe differential data input signals      || 20      || N/C                  || no connection
+
|-
+
|21        ||  GND            ||  Return current path                  || 22      || N/C                  || no connection
+
|-
+
|23          ||  PCIE_TX2N    ||  PCIe differential data output signals    || 24      ||    N/C              ||  no connection
+
|-
+
|25          || PCIE_TX2P  ||  PCIe differential data output signals      ||    26    ||      N/C          || no connection
+
|-
+
|27        ||  GND          ||    Return current path                  ||  28    ||  N/C                || no connection       
+
|-
+
|29        || PCIE_RX1_N    ||      PCIe differential data input signals    || 30    ||  N/C                || no connection     
+
|-
+
|31        ||  PCIE_RX1_P  ||    PCIe differential data input signals      || 32    ||  N/C                || no connection     
+
|-
+
|33        ||  GND        ||    Return current path                    ||  34    ||  N/C                    || no connection     
+
|-
+
|35        ||  PCIE_TX1N    ||    PCIe differential data output signals    || 36    ||  N/C                || no connection     
+
|-
+
|37        ||  PCIE_TX1P  ||    PCIe differential data output signals    ||  38    || DEVSLP/NC            || internal pull up to VCC3V3_SYS with 10K
+
|-
+
|39        ||  GND        ||    Return current path                      ||  40    ||  I2C2_SCL              || 1.8V I2C clock signal
+
|-
+
|41        ||  PCIE_RX0_N    ||    PCIe differential data input signals  || 42    ||  I2C2_SDA            ||  1.8V I2C data signal
+
|-
+
|43        ||  PCIE_RX0_P  ||  PCIe differential data input signals      || 44    ||  GPIO2_A2_PCIE_ALERT#    ||  1.8V GPIO signal
+
|-
+
|45        ||  GND          ||  Return current path                        || 46    ||  N/C                    ||  no connection
+
|-
+
|47        ||  PCIE_TX0N  ||  PCIe differential data output signals    || 48    ||  N/C                  ||  no connection
+
|-
+
|49        ||  PCIE_TX0P  ||  PCIe differential data output signals      || 50    || GPIO2_A4_PCIE_RESET#    ||  1.8V GPIO signal
+
|-
+
|51        ||  GND          ||    Return current path                      || 52    ||  CLKREQ#/NC              ||  internal pull down to GND with 0R
+
|-
+
|53        || PCIE_REF_CLKN || differential reference clock out for PCIe peripheral      || 54    ||  GPIO2_A3_PCIE_WAKE#    ||  1.8V GPIO signal
+
|-
+
|55        || PCIE_REF_CLKP || differential reference clock out for PCIe peripheral    || 56    || N/C            ||  no connection
+
|-
+
|57        ||  GND          ||  Return current path                                  || 58    ||        N/C                ||  no connection
+
|-
+
|59        ||  Connector Key    || Connector Key                      || 60    ||  Connector Key          ||  Connector Key
+
|-
+
|60        ||  Connector Key  || Connector Key                              || 61    ||  Connector Key            ||  Connector Key
+
|-
+
|62        || Connector Key  || Connector Key                || 63    ||    Connector Key    ||  Connector Key
+
|-
+
|64        ||  Connector Key    ||  Connector Key            || 65    ||    Connector Key        || Connector Key
+
|-
+
|66        || Connector Key    ||  Connector Key                    || 67    ||    N/C      ||  no connection
+
|-
+
|68        ||  RTC_CLKO_SOC  ||  1.8V 32.768KHz  clock output            || 69    ||    N/C        ||  no connection
+
|-
+
|70        ||  VCC3V3_SYS ||    3.3V Power output                  || 71    ||    GND                    ||  Return current path
+
|-
+
|72        || VCC3V3_SYS  ||    3.3V Power output                        || 73    ||  GND                      || Return current path
+
|-
+
|74        ||  VCC3V3_SYS  ||  3.3V Power output                        || 75    ||  GND                      || Return current path
+
|}
+
* '''ADC interface Pin Spec'''
+
:: ADC input rang : 0~1.8V
+
::{| class="wikitable"
+
|-
+
|'''Pin#''' ||'''Assignment'''     
+
|-
+
|1    || GND   
+
|-
+
|2    || VCC_1V8   
+
|-
+
|3    || ADC_IN0
+
|-
+
|4    || ADC_IN2
+
|-
+
|5    || ADC_IN3
+
|}
+
* '''Cooling Fan interface Pin Spec'''
+
:: Connector P/N: JST GH connector,BM03B-GHS-TBT
+
::{| class="wikitable"
+
|-
+
|'''Pin#''' ||'''Assignment'''  || '''Description '''   
+
|-
+
|1    || GND                || 0V
+
|-
+
|2    || 12V                || 12V output ,controlled by GPIO4_C6/PWM1
+
|-
+
|3    || GPIO2_A6_FAN_TACH  || connect to tachometer output signal , or float
+
|}
+
* '''Debug UART Pin Spec'''
+
:: 3V level signals, 1500000bps
+
::{| class="wikitable"
+
|-
+
|'''Pin#''' ||'''Assignment''' ||  '''Description ''' 
+
|-
+
|1    || GND                || 0V
+
|-
+
|2    || VCC5V0_SYS          || 5V power output
+
|-
+
|3    || UART2DBG_TX        || output
+
|-
+
|4    || UART2DBG_RX        || intput
+
|}
+
*'''Power Jack'''
+
::*DC-12V/2A IN, 5.5*2.1mm Power Jack
+
::[[File:DC-007B.png]]
+
*'''Power Key'''
+
::Plug in 12V power at power jack, then press the Power Key ( > 0.5s ) to boot NanoPC-T4.
+
*'''USB Port'''
+
::USB Type-C port has 2A overcurrent protection.
+
::USB 3.0 port has 2A overcurrent protection.
+
::Two USB 2.0 host port share 2A overcurrent protection.
+
*'''BOOT Key'''
+
::Press BOOT key to prevent the board from eMMC booting, making the board enter MASKROM mode.
+
*'''RTC'''
+
::RTC backup current is 27uA.
+
::Connector P/N: Molex 53398-0271
+
:'''Notes'''
+
::#The Power Jack is the only power input port. All power pins at other ports are output.
+
::#[[Modify_T4_PWRON|How to make T4(1802) start automatically when power is plugged in]]
+
::#For more details refer to [[#Schematic.2C_PCB_CAD_File|Schematics]]
+
 
+
===Board Dimension===
+
[[File:NanoPC-T4_1802_Drawing.png|frameless|800px|NanoPC-T4 Dimensions]]
+
 
+
::For more details refer to the CAD document: [http://wiki.friendlyelec.com/wiki/images/b/bc/NanoPC-T4_1802_Drawing%28dxf%29.zip NanoPC-T4_1802_Drawing(dxf).zip]
+
 
+
==Get Started==
+
===Essentials You Need===
+
Before starting to use your NanoPC-T4 get the following items ready
+
* NanoPC-T4
+
* Type-C cable
+
* TF Card: Class 10 or Above, minimum 8GB SDHC
+
* USB to serial adapter(optinal, for debugging or access from PC host)
+
* A DC 12V/2A power is a must
+
* HDMI monitor or LCD
+
* USB keyboard, mouse and possible a USB hub(or a TTL to serial board)
+
* A host computer running <b>Ubuntu 18.04 64-bit system</b>
+
 
+
{{RK3399-DebugPort|NanoPC-T4}}
+
===Install OS===
+
{{Downloads-RK3399|NanoPC-T4}}
+
{{RK3399-BurnOS-To-EMMC|NanoPC-T4}}
+
{{RK3399-BurnOS-with-TypeC|NanoPC-T4}}
+
{{RK3399-BootFromSDCard|NanoPC-T4}}
+
==Work with Debian11 Desktop==
+
===Introduction to Debian11 Desktop===
+
{{DebianBullseyeDesktop-Intro|NanoPC-T4}}
+
{{DebianBullseyeDesktop-Common|NanoPC-T4}}
+
{{DebianBullseyeDesktop-WithHDMI|NanoPC-T4}}
+
==Work with Debian10 Desktop==
+
* Refer to:
+
** [[Debian Buster Desktop|Debian Buster]]
+
==Work with FriendlyDesktop==
+
{{FriendlyDesktop-Intro|NanoPC-T4}}
+
{{FriendlyDesktop-Contents|NanoPC-T4}}
+
===Using NVME SSD on FriendlyDesktop===
+
Please see this article: [[Template:How to Initialize and Format New SSD And HDD|How to Initialize and Format New SSD And HDD]]<br />
+
===How to setup WiFiAP on FriendlyDesktop===
+
Please see this article: [[Template:Linux-Create-WiFiAP]]<br />
+
{{FriendlyCoreGeneral|NanoPC-T4}}
+
{{FriendlyCoreRunX11Application|NanoPC-T4}}
+
{{RK3399 Linux mpv|NanoPC-T4}}
+
===Change startup LOGO===
+
Replace the following two files in the kernel source code directory and recompile the kernel:<br/>
+
kernel/logo.bmp<br/>
+
kernel/logo_kernel.bmp<br/>
+
Or use the script to operate, as shown below:
+
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
git clone https://github.com/friendlyarm/sd-fuse_rk3399
+
ping CM3588
cd sd-fuse_rk3399
+
convert files/logo.jpg -type truecolor /tmp/logo.bmp
+
convert files/logo.jpg -type truecolor /tmp/logo_kernel.bmp
+
LOGO=/tmp/logo.bmp KERNEL_LOGO=/tmp/logo_kernel.bmp ./build-kernel.sh eflasher
+
LOGO=/tmp/logo.bmp KERNEL_LOGO=/tmp/logo_kernel.bmp ./build-kernel.sh friendlydesktop-arm64
+
./mk-emmc-image.sh friendlydesktop-arm64
+
 
</syntaxhighlight>
 
</syntaxhighlight>
==Features applicable to FriendlyDesktop and FriendlyCore==
+
==登录OpenMediaVault网页后台==
{{Linux-RK3399MIPICamera|NanoPC-T4}}
+
在网页浏览器输入开发板的IP地址, 网页登录帐号默认为:
{{RK3399-Linux-Install-Docker|NanoPC-T4}}
+
<syntaxhighlight lang="bash">
{{RK3399 Linux FFmpeg|NanoPC-T4}}
+
用户名: admin
{{How to Initialize and Format New SSD And HDD|NanoPC-T4}}
+
密码: openmediavault
{{RK3399 Linux PWMFan|NanoPC-T4}}
+
</syntaxhighlight>
===Using 4G Module EC20 on Linux===
+
==设置网页登录密码==
Please see this article: [[How to use 4G Module on NanoPC-T4]]<br />
+
网页上点击右上角的头像,选择 “更改密码”
==Buildroot Linux==
+
==默认的Linux帐号与密码==
{{RK3399 Buildroot Intro|NanoPC-T4}}
+
普通用户:<br/>
 +
&nbsp;&nbsp;&nbsp;&nbsp;用户名: pi<br/>
 +
&nbsp;&nbsp;&nbsp;&nbsp;密码: pi<br/>
 +
<br/>
 +
Root用户:<br/>
 +
&nbsp;&nbsp;&nbsp;&nbsp;用户名: root<br/>
 +
&nbsp;&nbsp;&nbsp;&nbsp;密码: fa<br/>
 +
==设置网页超时时间==
 +
进入 '''系统 -> 工作台''',设置"自动登出"时间。
 +
==通过ssh登录==
 +
<syntaxhighlight lang="bash">
 +
ssh pi@YourIPAddress
 +
</syntaxhighlight>
 +
pi用户的初始密码为 pi
 +
==更新用户密码==
 +
<syntaxhighlight lang="bash">
 +
sudo passwd root
 +
sudo passwd pi
 +
</syntaxhighlight>
 +
==配置网络与时区==
 +
用root用户登录ssh:
 +
<syntaxhighlight lang="bash">
 +
ssh root@IPAddress
 +
</syntaxhighlight>
 +
执行如下命令:
 +
<syntaxhighlight lang="bash">
 +
omv-firstaid
 +
</syntaxhighlight>
 +
界面如下:<br />
 +
[[File:Omv-firstaid.png|400px]]
 +
==切换国内软件源==
 +
<syntaxhighlight lang="bash">
 +
sudo sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
 +
sudo apt update
 +
</syntaxhighlight>
 +
==配置硬盘==
 +
(注:如果硬盘之前已经初始化,无需重新擦除,RAID可以得到保留,直接挂载即可)<br />
 +
请参考 [[#系统重装后恢复硬盘数据]]
 +
===第一步:清除硬盘===
 +
'''注意备份你的数据'''<br />
 +
进入 '''存储器 -> 磁盘''',选中你的存储器,点击'''“擦除"'''图标进行擦除,一般选'''“快速”'''即可。<br />
 +
如果硬盘无法擦除,你需要先移除此硬盘上的共享文件夹并取消挂载。
 +
===第二步:创建文件系统===
 +
本章节所介绍的两种Raid配置的区别:
 +
* MD RAID:性能更好,因为它在并行写入和读取分块方面做得更好。
 +
* Btrfs RAID:数据安全性更好,因为校验和使其能够确定块的哪个副本出错,当只有一个副本出错时,并且它能够判断两个副本是否都有问题。
 +
注:不支持为USB接口的硬盘创建RAID队列, 更详细内容请参考官方指南: [https://docs.openmediavault.org/en/latest/administration/storage/raid.html RAID]
 +
====方案1: 配置MD RAID====
 +
* 进入 '''存储器 -> 多重装置''',点击'''“+”'''图标,在'''"级别"'''一栏选择RAID级别,在'''"设备"'''一栏钩选存储设备,保存后,状态如下所示:
 +
[[File:Omv-raid-resyncing.png|center|400px]]<br/>
 +
你需要等待状态从 resyncing 转为 clean,完成后如下图所示:<br />
 +
[[File:Omv-raid-clean.png|center|400px]]<br/>
 +
* 进入 '''存储器 -> 文件系统''',点击'''“+”''',类型建议选择'''"BTRFS"''',选择'''"Single"'''并在"设备"栏中钩选你的存储设备,如果在上一步中创建了RAID,设备名是以"/dev/md"开头的,如果你的设备在'''"设备"'''栏中没法列出,可能是设备中已存在共享文件夹等数据,尝试点击 '''►''' 图标直接挂载,如果数据可以被丢弃,则可以考虑使用如下命令擦除硬盘数据:
 +
<syntaxhighlight lang="bash">
 +
# 注意:硬盘中的所有数据将会丢失
 +
sudo wipefs --all /dev/mdX
 +
</syntaxhighlight>
 +
/dev/mdX需要换成真实的设备,通过"cat /proc/partitions"命令查看。
 +
* 格式化完成后,OpenMediaVault 将提示您挂载该设备。
 +
====方案2: 配置Btrfs RAID====
 +
* 进入 '''存储 -> 文件系统''',点击 '''"+"''' 图标,选择 '''"BTRFS"''',选择 RAID 级别,选择您的硬盘,然后保存设置。<br />
 +
* 格式化完成后,OpenMediaVault 将让您选择要挂载的文件系统,它不会列出RAID阵列中的所有硬盘,选择位于阵列中的其中一个硬盘即可。
 +
====方案3: 不使用RAID阵列====
 +
* 进入 '''存储 -> 文件系统''',点击 '''"+"''' 图标,选择 '''"BTRFS"''',选择 Single 级别,选择您的硬盘,然后保存设置。<br />
 +
* 格式化完成后,OpenMediaVault 将提示您挂载该设备。
 +
==创建共享文件夹==
 +
进入'''存储器 -> 共享文件夹''',添加'''"+"'''图标创建2个文件夹,名称分别为'''nfs'''和'''samba''',我们接下来将用这些文件夹来测试nfs和samba共享。<br />
 +
(注:如果硬盘中存在同名的共享文件夹,重新创建同名的文件夹,数据会得到保留)
 +
==创建NAS用户==
 +
Debian系统的用户或通过命令行创建的Linux会缺少诸如samba之类服务的访问权限,因此这里推荐使用OpenMediaVault界面创建一个用户用于访问samba和nfs共享,这里我会创建一个名为'''nasuser'''的用户和组:<br />
 
<br />
 
<br />
For a more detailed description of the Buildroot system, please refer to: [[Buildroot|Buildroot]]<br />
+
* 点击'''用户 -> 用户组''',点击 '''"+"''' 图标创建一个名为 '''nasuser''' 的用户组。
==Work with Lubuntu==
+
* 点击'''用户 -> 用户''',点击 '''"+"''' 图标后创建一个名为 '''nasuser''',Shell选择/usr/sbin/nologin, 用户组钩选'''nasuser'''和'''users'''的用户。
See here: [[Lubuntu desktop 16.04 for RK3399]]<br />
+
==创建Samba共享==
Using NVME SSD on Lubuntu: [[Template:How to Initialize and Format New SSD And HDD|How to Initialize and Format New SSD And HDD]]<br />
+
* 点击'''服务 -> SMB/CIFS -> 设置''', 钩选最上面的 "已启动", 最低协议版本选择 '''"SMB1"''',然后点 "保存";
{{RK3399-Android8|NanoPC-T4}}
+
* 点击'''服务 -> SMB/CIFS -> 共享''', 点击 '''"+"''' ,在 '''"Shared folder"''' 处选择要共享的文件夹,这里我选择samba文件夹。
{{RK3399-Android-RemoteController|NanoPC-T4}}
+
测试访问: <br />
{{RK3399-Android-USBCamera|NanoPC-T4}}
+
在Mac系统下右击Finder,选择连接服务器后输入 smb://YourIPAddress(换成真实IP),会弹出验证对话框,输入用户名nasuser以及密码即可以访问。
{{RK3399-Android-4G-EC20|NanoPC-T4}}
+
==创建NFS共享==
{{RK3399-Android-SSD|NanoPC-T4}}
+
* 点击"服务" -> "NFS" -> "设置", 钩选最上面的 "已启动", 在"版本"一栏中,钩选所有版本包括'''“NFSv2”''',然后点 "保存"并应用设置;
{{RK3399 Android PWMFan|NanoPC-T4}}
+
* 点击"服务" -> "NFS" -> "共享", 点击 '''"+"''' ,在 '''"Shared folder"''' 处选择要共享的文件夹,这里我选择 nfs 文件夹。在客户端一栏中输入 192.168.1.0/24 (换成真实网段,或指定仅允许访问的IP),权限处选择 "读/写",在扩展选项中输入:
==Work with Android7.1==
+
<syntaxhighlight lang="bash">
See here: [[RK3399-Android7|Android7]]
+
rw,async,insecure,no_subtree_check,all_squash,anonuid=0,anongid=0
==How to Compile==
+
</syntaxhighlight>
{{Rockchip-DevEnv|NanoPC-T4}}
+
然后点 "保存"并应用设置;
{{RK3399-BuildFromSource|NanoPC-T4}}
+
===Mac下测试挂载NFS===
{{RK3399-HWAccess|NanoPC-T4}}
+
命令行查看OpenMediaVault的NFS共享信息
{{RockchipMiscCustome|RK3399}}
+
<syntaxhighlight lang="bash">
 +
# showmount -e YourIPAddress
 +
Exports list on YourIPAddress:
 +
/export                             192.168.1.0/24
 +
/export/nfs                         192.168.1.0/24
 +
</syntaxhighlight>
 +
在Mac上右击Finder,选择连接服务器,在地址栏输入
 +
<syntaxhighlight lang="bash">
 +
nfs://YourIPAddress/export/nfs
 +
</syntaxhighlight>
 +
===Linux下测试挂载NFS===
 +
安装软件包
 +
<syntaxhighlight lang="bash">
 +
sudo apt install nfs-common
 +
</syntaxhighlight>
 +
挂载
 +
<syntaxhighlight lang="bash">
 +
sudo mount -t nfs YourIPAddress:/export/nfs /mnt/nfs
 +
</syntaxhighlight>
 +
查看状态
 +
<syntaxhighlight lang="bash">
 +
# df -h | grep nfs
 +
YourIPAddress:/export/nfs  7.3G  3.5M  6.8G    1% /mnt/nfs
 +
</syntaxhighlight>
 +
设置开机自动挂载,添加如下内容到 /etc/fstab
 +
<syntaxhighlight lang="bash">
 +
YourIPAddress:/export/nfs /mnt/nfs nfs defaults 0 0
 +
</syntaxhighlight>
 +
==Docker的使用==
 +
===将Docker数据移动至硬盘===
 +
先安装openmediavault-compose插件, 通过SSH登录然后执行如下命令:
 +
<syntaxhighlight lang="bash">
 +
sudo apt update
 +
sudo apt install -y openmediavault-compose
 +
</syntaxhighlight>
 +
刷新网页后,进入'''存储器 -> 共享文件夹''',添加 '''"+"''' 图标创建3个文件夹,分别为
 +
<syntaxhighlight lang="bash">
 +
docker            -> Docker数据目录,在/etc/docker/daemon.json中定义
 +
docker-compose    -> Location of compose files
 +
docker-data      -> Location of persistent container data
 +
docker-app        -> 自用,存放Dockerfile和数据
 +
</syntaxhighlight>
 +
进入'''服务 -> Compose''',进入设置界面,设置"Compose 文件"的Shared folder为docker-compose, 设置"Data“的Shared folder为docker-data,<br />
 +
<br />
 +
进入ssh终端,输入以下命令,将docker数据移动到共享文件夹, 其中,'''/srv/dev-disk-by-uuid-XXYYZZ/docker''' 是共享文件夹的绝对路径,可以在网页 '''存储器 -> 共享文件夹''' 列表中得到:
 +
<syntaxhighlight lang="bash">
 +
su root
 +
systemctl stop docker.socket docker.service
 +
mv /var/lib/docker/* /srv/dev-disk-by-uuid-XXYYZZ/docker/
 +
</syntaxhighlight>
 +
在页面上设置 '''Docker存储''' 为该docker共享文件夹的绝对路径,保存并应用后, 重启开发板。
 +
<br />GUI 上填写的最终数值:<br />
 +
<syntaxhighlight lang="text">
 +
Compose Files's Shared folder  -> on /dev/md0, docker-compose
 +
Data's Shared folder          -> on /dev/md0, docker-data
 +
Docker's Docker storage        -> on /srv/dev-disk-by-uuid-XXYYZZ/docker/
 +
</syntaxhighlight>
 +
===Docker安装nextcloud网盘===
 +
命令行界面输入以下命令即可:
 +
<syntaxhighlight lang="bash">
 +
su root
 +
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
 +
mkdir nextcloud
 +
cd nextcloud
 +
mkdir data
  
{{MoreOS}}
+
docker run -d -p 8888:80  --name nextcloud \
==Link to Rockchip Resources==
+
    -v $PWD/data:/var/www/html --restart=always \
*Link to Rockchip's resources: https://gitlab.com/friendlyelec/rk3399-nougat/tree/nanopc-t4-nougat/RKDocs
+
    --privileged=true  arm64v8/nextcloud
*[http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf RK3399 datasheet V2.1]
+
</syntaxhighlight>
*[http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf RK3399TRM V1.4]
+
完成后在网页浏览器访问http://YourIPAddress:8888/即可看到nextcloud网盘的页面,如果无法访问,建议重启一下设备。
 +
===Docker安装Filebrowser===
 +
命令行界面输入以下命令即可:
 +
<syntaxhighlight lang="bash">
 +
su root
 +
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
 +
mkdir filebrowser
 +
cd filebrowser
  
==Schematic, PCB CAD File==
+
docker run -d -v $(readlink -f /srv/dev-disk-by-uuid-*):/srv \
*Schematic: [http://wiki.friendlyelec.com/wiki/images/f/f4/NanoPC-T4-1802-Schematic.pdf NanoPC-T4-1802-Schematic.pdf]
+
    -v $PWD/filebrowserconfig.json:/etc/config.json \
*Schematic: [http://wiki.friendlyelec.com/wiki/images/e/e0/NanoPC-T4-1902-Schematic.pdf NanoPC-T4-1902-Schematic.pdf]
+
    -v $PWD/database.db:/etc/database.db -p 8080:80 \
*PCB CAD File:[http://wiki.friendlyelec.com/wiki/images/b/bc/NanoPC-T4_1802_Drawing%28dxf%29.zip NanoPC-T4_1802_Drawing(dxf).zip]
+
    --restart=always --name filebrowser \
 +
    filebrowser/filebrowser
 +
</syntaxhighlight>
 +
完成后在网页浏览器访问http://YourIPAddress:8080/即可看到Filebrowser的页面,默认管理员的帐号与密码都是admin。
 +
===Docker安装Jellyfin影音服务器===
 +
进入 '''存储器 -> 共享文件夹''',添加 '''"+"''' 图标创建media文件夹用于存放影音资源,然后在命令行终端输入以下命令安装Jellyfin:
 +
<syntaxhighlight lang="bash">
 +
su root
 +
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
 +
mkdir jellyfin
 +
cd jellyfin
 +
mkdir config cache
  
==Update Log==
+
docker run -d --name jellyfin \
{{RK3399-UpdateLog|NanoPC-T4}}
+
-v $PWD/config:/config \
 +
-v $PWD/cache:/cache \
 +
-v $(readlink -f /srv/dev-disk-by-uuid-*/media):/media \
 +
-p 8096:8096 \
 +
--restart=always \
 +
jellyfin/jellyfin
 +
</syntaxhighlight>
 +
完成后在网页浏览器访问http://YourIPAddress:8096/即可看到Jellyfin的页面。
 +
===安装Docker可视化容器管理工具Portainer===
 +
命令行界面输入以下命令即可:
 +
<syntaxhighlight lang="bash">
 +
su root
 +
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
 +
mkdir portainer
 +
cd portainer
 +
mkdir data
 +
 
 +
docker run -d \
 +
  --name portainer \
 +
  --restart=always \
 +
  -e TZ=Asia/Shanghai \
 +
  -p 8000:8000 \
 +
  -p 9000:9000 \
 +
  -v /var/run/docker.sock:/var/run/docker.sock \
 +
  -v $PWD/data:/data \
 +
  portainer/portainer-ce:latest
 +
</syntaxhighlight>
 +
完成后在网页浏览器访问http://YourIPAddress:9000/即可看到Portainer的页面,默认管理员的帐号与密码都是admin。
 +
==系统的备还与还原==
 +
===备份eMMC中的系统===
 +
使用tar命令备份文件系统的内容:
 +
<syntaxhighlight lang="bash">
 +
su root
 +
cd /
 +
tar --warning=no-file-changed -cvpzf /rootfs.tar.gz \
 +
    --exclude=/rootfs.tar.gz --exclude=/var/lib/docker/runtimes \
 +
    --exclude=/etc/firstuser --exclude=/etc/friendlyelec-release \
 +
    --exclude=/usr/local/first_boot_flag --one-file-system /
 +
</syntaxhighlight>
 +
===还原系统到eMMC===
 +
使用SD卡启动,启动Linux系统(例如Debian或Ubuntu均可),使用如下命令查询eMMC上的系统根分区:
 +
<syntaxhighlight lang="bash">
 +
root@CM3588:~# sudo parted -s /dev/mmcblk2 unit MiB print | grep rootfs
 +
8      140MiB  59000MiB  58860MiB  ext4        rootfs
 +
</syntaxhighlight>
 +
根据上面的序号8可以得知根分区的设备名为/dev/mmcblk2p8,下面对它重新格式化并挂载,然后解压rootfs.tar.gz到此处:
 +
<syntaxhighlight lang="bash">
 +
sudo mkfs.ext4 /dev/mmcblk2p8
 +
sudo mkdir /mnt/rootfs
 +
sudo mount /dev/mmcblk2p8 /mnt/rootfs
 +
sudo tar xvzfp /path/to/rootfs.tar.gz -C /mnt/rootfs --numeric-owner --same-owner
 +
sudo poweroff
 +
</syntaxhighlight>
 +
关机后,拨出SD卡,重新上电从eMMC启动系统。
 +
==系统重装后恢复硬盘数据==
 +
* 进入 '''存储器 -> 文件系统''', 点击 '''►''' 图标,在 '''文件系统''' 一栏选择你的设备,点保存。
 +
* 进入 '''存储器 -> 共享文件夹''', 创建同名共享文件名,例如本文示例中的nfs, samba, docker, docker-app, docker-compose和docker-data。
 +
==常见问题与解决办法==
 +
===问题: Raid阵列出现如下状态Clean, Resyncing (PENDING)===
 +
Execute following command to switch array to read-write state and begin resync process:
 +
<syntaxhighlight lang="bash">
 +
mdadm --readwrite /dev/md0
 +
</syntaxhighlight>
 +
More details → [https://sleeplessbeastie.eu/2015/03/23/how-to-clear-up-pending-resync-on-raid-array/ How to clear up pending resync on RAID array]
 +
===问题: 挂载文件系统时,未列出存储设备===
 +
先使用如下命令擦除硬盘数据:
 +
<syntaxhighlight lang="bash">
 +
# 注意:硬盘中的所有数据将会丢失
 +
sudo wipefs --all /dev/mdX
 +
</syntaxhighlight>
 +
==OpenMediaVault软件包一览==
 +
你可以使用apt命令安装OpenMediaVault的软件包,例如:
 +
<syntaxhighlight lang="bash">
 +
apt install openmediavault-diskstats
 +
</syntaxhighlight>
 +
这是每个软件包的功能列表:<br />
 +
openmediavault-diskclone: 用于克隆磁盘的工具。<br />
 +
openmediavault-diskstats: 显示磁盘使用统计信息的工具。<br />
 +
openmediavault-downloader: 下载管理器,用于管理下载任务。<br />
 +
openmediavault-fail2ban: 防火墙软件,用于防范暴力攻击。<br />
 +
openmediavault-filebrowser: 文件浏览器,用于浏览和管理文件。<br />
 +
openmediavault-flashmemory: 用于将系统日志和临时文件存储在内存中以减少对磁盘的写入。<br />
 +
openmediavault-forkeddaapd: 支持 iTunes 的 DAAP 服务器。<br />
 +
openmediavault-ftp: FTP 服务器,用于文件传输。<br />
 +
openmediavault-kernel: 内核更新工具。<br />
 +
openmediavault-kvm: 虚拟化解决方案,用于运行虚拟机。<br />
 +
openmediavault-locate: 文件搜索工具。<br />
 +
openmediavault-luksencryption: 提供磁盘加密功能。<br />
 +
openmediavault-lvm2: 逻辑卷管理器。<br />
 +
openmediavault-mergerfs: 提供 Union 文件系统功能,将多个文件系统合并成一个逻辑文件系统。<br />
 +
openmediavault-minidlna: DLNA 服务器,用于在网络上共享媒体文件。<br />
 +
openmediavault-nut: 用于监控 UPS(不间断电源系统)的网络通信软件。<br />
 +
openmediavault-omvextrasorg: 提供额外的插件和软件包。<br />
 +
openmediavault-onedrive: 用于与 OneDrive 云存储服务进行集成。<br />
 +
openmediavault-owntone: 用于配置 UPnP/DLNA 媒体服务器。<br />
 +
openmediavault-photoprism: 相片管理软件。<br />
 +
openmediavault-remotemount: 远程挂载管理器。<br />
 +
openmediavault-resetperms: 重置文件和文件夹权限的工具。<br />
 +
openmediavault-rsnapshot: 快照备份工具。<br />
 +
openmediavault-s3: S3 存储服务插件。<br />
 +
openmediavault-sftp: SFTP 服务器。<br />
 +
openmediavault-shairport: AirPlay 音频服务器。<br />
 +
openmediavault-sharerootfs: 允许共享根文件系统的工具。<br />
 +
openmediavault-snapraid: SnapRAID 数据保护工具。<br />
 +
openmediavault-snmp: SNMP(简单网络管理协议)插件。<br />
 +
openmediavault-symlinks: 符号链接管理工具。<br />
 +
openmediavault-tftp: TFTP(Trivial File Transfer Protocol)服务器。<br />
 +
openmediavault-tgt: iSCSI 目标服务器。<br />
 +
openmediavault-usbbackup: USB 备份插件。<br />
 +
openmediavault-wakealarm: 用于通过计划的时间唤醒系统的工具。<br />
 +
openmediavault-webdav: WebDAV 服务器。<br />
 +
openmediavault-wetty: Web 终端工具。<br />
 +
openmediavault-wireguard: WireGuard VPN 插件。<br />
 +
openmediavault-wol: Wake-on-LAN 工具。<br />
 +
openmediavault-anacron: 任务调度工具。<br />
 +
openmediavault-apttool: APT(Advanced Package Tool)管理工具。<br />
 +
openmediavault-autoshutdown: 自动关机工具。<br />
 +
openmediavault-backup: 备份工具。<br />
 +
openmediavault-borgbackup: BorgBackup 工具。<br />
 +
openmediavault-clamav: ClamAV 来检测恶意软件和病毒的防病毒软件。<br />
 +
openmediavault-compose: Docker Compose 工具。<br />
 +
openmediavault-cputemp: 用于监控 CPU 温度的工具。<br />
 +
openmediavault-zfs: ZFS 文件系统支持插件。<br />

Revision as of 05:37, 20 April 2024

English

1 OpenMediaVault版本信息

  • OS: Debian 12
  • OpenMediaVault: 7.0.5-1 (Sandworm)
  • Docker: 26.0.1
  • Others: 已安装OMV-Extras软件包

2 旧版本的OpenMediaVault文档

Link to → Getting Started with OpenMediaVault6

3 OpenMediaVault运行界面

Openmediavault7-zh.png

4 支持的平台

  • RK3328
  • RK3399
  • RK3568
  • RK3588

5 查看IP地址

由于主机名默认为开发板的型号, 所以可以使用ping命令来获得IP地址,例如CM3588,可以用命令:

ping CM3588

6 登录OpenMediaVault网页后台

在网页浏览器输入开发板的IP地址, 网页登录帐号默认为:

用户名: admin
密码: openmediavault

7 设置网页登录密码

网页上点击右上角的头像,选择 “更改密码”

8 默认的Linux帐号与密码

普通用户:
    用户名: pi
    密码: pi

Root用户:
    用户名: root
    密码: fa

9 设置网页超时时间

进入 系统 -> 工作台,设置"自动登出"时间。

10 通过ssh登录

ssh pi@YourIPAddress

pi用户的初始密码为 pi

11 更新用户密码

sudo passwd root
sudo passwd pi

12 配置网络与时区

用root用户登录ssh:

ssh root@IPAddress

执行如下命令:

omv-firstaid

界面如下:
Omv-firstaid.png

13 切换国内软件源

sudo sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
sudo apt update

14 配置硬盘

(注:如果硬盘之前已经初始化,无需重新擦除,RAID可以得到保留,直接挂载即可)
请参考 #系统重装后恢复硬盘数据

14.1 第一步:清除硬盘

注意备份你的数据
进入 存储器 -> 磁盘,选中你的存储器,点击“擦除"图标进行擦除,一般选“快速”即可。
如果硬盘无法擦除,你需要先移除此硬盘上的共享文件夹并取消挂载。

14.2 第二步:创建文件系统

本章节所介绍的两种Raid配置的区别:

  • MD RAID:性能更好,因为它在并行写入和读取分块方面做得更好。
  • Btrfs RAID:数据安全性更好,因为校验和使其能够确定块的哪个副本出错,当只有一个副本出错时,并且它能够判断两个副本是否都有问题。

注:不支持为USB接口的硬盘创建RAID队列, 更详细内容请参考官方指南: RAID

14.2.1 方案1: 配置MD RAID

  • 进入 存储器 -> 多重装置,点击“+”图标,在"级别"一栏选择RAID级别,在"设备"一栏钩选存储设备,保存后,状态如下所示:
Omv-raid-resyncing.png

你需要等待状态从 resyncing 转为 clean,完成后如下图所示:

Omv-raid-clean.png

  • 进入 存储器 -> 文件系统,点击“+”,类型建议选择"BTRFS",选择"Single"并在"设备"栏中钩选你的存储设备,如果在上一步中创建了RAID,设备名是以"/dev/md"开头的,如果你的设备在"设备"栏中没法列出,可能是设备中已存在共享文件夹等数据,尝试点击 图标直接挂载,如果数据可以被丢弃,则可以考虑使用如下命令擦除硬盘数据:
# 注意:硬盘中的所有数据将会丢失
sudo wipefs --all /dev/mdX

/dev/mdX需要换成真实的设备,通过"cat /proc/partitions"命令查看。

  • 格式化完成后,OpenMediaVault 将提示您挂载该设备。

14.2.2 方案2: 配置Btrfs RAID

  • 进入 存储 -> 文件系统,点击 "+" 图标,选择 "BTRFS",选择 RAID 级别,选择您的硬盘,然后保存设置。
  • 格式化完成后,OpenMediaVault 将让您选择要挂载的文件系统,它不会列出RAID阵列中的所有硬盘,选择位于阵列中的其中一个硬盘即可。

14.2.3 方案3: 不使用RAID阵列

  • 进入 存储 -> 文件系统,点击 "+" 图标,选择 "BTRFS",选择 Single 级别,选择您的硬盘,然后保存设置。
  • 格式化完成后,OpenMediaVault 将提示您挂载该设备。

15 创建共享文件夹

进入存储器 -> 共享文件夹,添加"+"图标创建2个文件夹,名称分别为nfssamba,我们接下来将用这些文件夹来测试nfs和samba共享。
(注:如果硬盘中存在同名的共享文件夹,重新创建同名的文件夹,数据会得到保留)

16 创建NAS用户

Debian系统的用户或通过命令行创建的Linux会缺少诸如samba之类服务的访问权限,因此这里推荐使用OpenMediaVault界面创建一个用户用于访问samba和nfs共享,这里我会创建一个名为nasuser的用户和组:

  • 点击用户 -> 用户组,点击 "+" 图标创建一个名为 nasuser 的用户组。
  • 点击用户 -> 用户,点击 "+" 图标后创建一个名为 nasuser,Shell选择/usr/sbin/nologin, 用户组钩选nasuserusers的用户。

17 创建Samba共享

  • 点击服务 -> SMB/CIFS -> 设置, 钩选最上面的 "已启动", 最低协议版本选择 "SMB1",然后点 "保存";
  • 点击服务 -> SMB/CIFS -> 共享, 点击 "+" ,在 "Shared folder" 处选择要共享的文件夹,这里我选择samba文件夹。

测试访问:
在Mac系统下右击Finder,选择连接服务器后输入 smb://YourIPAddress(换成真实IP),会弹出验证对话框,输入用户名nasuser以及密码即可以访问。

18 创建NFS共享

  • 点击"服务" -> "NFS" -> "设置", 钩选最上面的 "已启动", 在"版本"一栏中,钩选所有版本包括“NFSv2”,然后点 "保存"并应用设置;
  • 点击"服务" -> "NFS" -> "共享", 点击 "+" ,在 "Shared folder" 处选择要共享的文件夹,这里我选择 nfs 文件夹。在客户端一栏中输入 192.168.1.0/24 (换成真实网段,或指定仅允许访问的IP),权限处选择 "读/写",在扩展选项中输入:
rw,async,insecure,no_subtree_check,all_squash,anonuid=0,anongid=0

然后点 "保存"并应用设置;

18.1 Mac下测试挂载NFS

命令行查看OpenMediaVault的NFS共享信息

# showmount -e YourIPAddress
Exports list on YourIPAddress:
/export                             192.168.1.0/24
/export/nfs                         192.168.1.0/24

在Mac上右击Finder,选择连接服务器,在地址栏输入

nfs://YourIPAddress/export/nfs

18.2 Linux下测试挂载NFS

安装软件包

sudo apt install nfs-common

挂载

sudo mount -t nfs YourIPAddress:/export/nfs /mnt/nfs

查看状态

# df -h | grep nfs
YourIPAddress:/export/nfs  7.3G  3.5M  6.8G    1% /mnt/nfs

设置开机自动挂载,添加如下内容到 /etc/fstab

YourIPAddress:/export/nfs /mnt/nfs nfs defaults 0 0

19 Docker的使用

19.1 将Docker数据移动至硬盘

先安装openmediavault-compose插件, 通过SSH登录然后执行如下命令:

sudo apt update
sudo apt install -y openmediavault-compose

刷新网页后,进入存储器 -> 共享文件夹,添加 "+" 图标创建3个文件夹,分别为

docker            -> Docker数据目录,在/etc/docker/daemon.json中定义
docker-compose    -> Location of compose files
docker-data       -> Location of persistent container data
docker-app        -> 自用,存放Dockerfile和数据

进入服务 -> Compose,进入设置界面,设置"Compose 文件"的Shared folder为docker-compose, 设置"Data“的Shared folder为docker-data,

进入ssh终端,输入以下命令,将docker数据移动到共享文件夹, 其中,/srv/dev-disk-by-uuid-XXYYZZ/docker 是共享文件夹的绝对路径,可以在网页 存储器 -> 共享文件夹 列表中得到:

su root
systemctl stop docker.socket docker.service
mv /var/lib/docker/* /srv/dev-disk-by-uuid-XXYYZZ/docker/

在页面上设置 Docker存储 为该docker共享文件夹的绝对路径,保存并应用后, 重启开发板。
GUI 上填写的最终数值:

Compose Files's Shared folder  -> on /dev/md0, docker-compose
Data's Shared folder           -> on /dev/md0, docker-data
Docker's Docker storage        -> on /srv/dev-disk-by-uuid-XXYYZZ/docker/

19.2 Docker安装nextcloud网盘

命令行界面输入以下命令即可:

su root
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
mkdir nextcloud
cd nextcloud
mkdir data
 
docker run -d -p 8888:80  --name nextcloud \
    -v $PWD/data:/var/www/html --restart=always \
    --privileged=true  arm64v8/nextcloud

完成后在网页浏览器访问http://YourIPAddress:8888/即可看到nextcloud网盘的页面,如果无法访问,建议重启一下设备。

19.3 Docker安装Filebrowser

命令行界面输入以下命令即可:

su root
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
mkdir filebrowser
cd filebrowser
 
docker run -d -v $(readlink -f /srv/dev-disk-by-uuid-*):/srv \
    -v $PWD/filebrowserconfig.json:/etc/config.json \
    -v $PWD/database.db:/etc/database.db -p 8080:80 \
    --restart=always --name filebrowser \
    filebrowser/filebrowser

完成后在网页浏览器访问http://YourIPAddress:8080/即可看到Filebrowser的页面,默认管理员的帐号与密码都是admin。

19.4 Docker安装Jellyfin影音服务器

进入 存储器 -> 共享文件夹,添加 "+" 图标创建media文件夹用于存放影音资源,然后在命令行终端输入以下命令安装Jellyfin:

su root
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
mkdir jellyfin
cd jellyfin
mkdir config cache
 
docker run -d --name jellyfin \
-v $PWD/config:/config \
-v $PWD/cache:/cache \
-v $(readlink -f /srv/dev-disk-by-uuid-*/media):/media \
-p 8096:8096 \
--restart=always \
jellyfin/jellyfin

完成后在网页浏览器访问http://YourIPAddress:8096/即可看到Jellyfin的页面。

19.5 安装Docker可视化容器管理工具Portainer

命令行界面输入以下命令即可:

su root
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
mkdir portainer
cd portainer
mkdir data
 
docker run -d \
  --name portainer \
  --restart=always \
  -e TZ=Asia/Shanghai \
  -p 8000:8000 \
  -p 9000:9000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v $PWD/data:/data \
  portainer/portainer-ce:latest

完成后在网页浏览器访问http://YourIPAddress:9000/即可看到Portainer的页面,默认管理员的帐号与密码都是admin。

20 系统的备还与还原

20.1 备份eMMC中的系统

使用tar命令备份文件系统的内容:

su root
cd /
tar --warning=no-file-changed -cvpzf /rootfs.tar.gz \
    --exclude=/rootfs.tar.gz --exclude=/var/lib/docker/runtimes \
    --exclude=/etc/firstuser --exclude=/etc/friendlyelec-release \
    --exclude=/usr/local/first_boot_flag --one-file-system /

20.2 还原系统到eMMC

使用SD卡启动,启动Linux系统(例如Debian或Ubuntu均可),使用如下命令查询eMMC上的系统根分区:

root@CM3588:~# sudo parted -s /dev/mmcblk2 unit MiB print | grep rootfs
 8      140MiB   59000MiB  58860MiB  ext4         rootfs

根据上面的序号8可以得知根分区的设备名为/dev/mmcblk2p8,下面对它重新格式化并挂载,然后解压rootfs.tar.gz到此处:

sudo mkfs.ext4 /dev/mmcblk2p8
sudo mkdir /mnt/rootfs
sudo mount /dev/mmcblk2p8 /mnt/rootfs
sudo tar xvzfp /path/to/rootfs.tar.gz -C /mnt/rootfs --numeric-owner --same-owner
sudo poweroff

关机后,拨出SD卡,重新上电从eMMC启动系统。

21 系统重装后恢复硬盘数据

  • 进入 存储器 -> 文件系统, 点击 图标,在 文件系统 一栏选择你的设备,点保存。
  • 进入 存储器 -> 共享文件夹, 创建同名共享文件名,例如本文示例中的nfs, samba, docker, docker-app, docker-compose和docker-data。

22 常见问题与解决办法

22.1 问题: Raid阵列出现如下状态Clean, Resyncing (PENDING)

Execute following command to switch array to read-write state and begin resync process:

mdadm --readwrite /dev/md0

More details → How to clear up pending resync on RAID array

22.2 问题: 挂载文件系统时,未列出存储设备

先使用如下命令擦除硬盘数据:

# 注意:硬盘中的所有数据将会丢失
sudo wipefs --all /dev/mdX

23 OpenMediaVault软件包一览

你可以使用apt命令安装OpenMediaVault的软件包,例如:

apt install openmediavault-diskstats

这是每个软件包的功能列表:
openmediavault-diskclone: 用于克隆磁盘的工具。
openmediavault-diskstats: 显示磁盘使用统计信息的工具。
openmediavault-downloader: 下载管理器,用于管理下载任务。
openmediavault-fail2ban: 防火墙软件,用于防范暴力攻击。
openmediavault-filebrowser: 文件浏览器,用于浏览和管理文件。
openmediavault-flashmemory: 用于将系统日志和临时文件存储在内存中以减少对磁盘的写入。
openmediavault-forkeddaapd: 支持 iTunes 的 DAAP 服务器。
openmediavault-ftp: FTP 服务器,用于文件传输。
openmediavault-kernel: 内核更新工具。
openmediavault-kvm: 虚拟化解决方案,用于运行虚拟机。
openmediavault-locate: 文件搜索工具。
openmediavault-luksencryption: 提供磁盘加密功能。
openmediavault-lvm2: 逻辑卷管理器。
openmediavault-mergerfs: 提供 Union 文件系统功能,将多个文件系统合并成一个逻辑文件系统。
openmediavault-minidlna: DLNA 服务器,用于在网络上共享媒体文件。
openmediavault-nut: 用于监控 UPS(不间断电源系统)的网络通信软件。
openmediavault-omvextrasorg: 提供额外的插件和软件包。
openmediavault-onedrive: 用于与 OneDrive 云存储服务进行集成。
openmediavault-owntone: 用于配置 UPnP/DLNA 媒体服务器。
openmediavault-photoprism: 相片管理软件。
openmediavault-remotemount: 远程挂载管理器。
openmediavault-resetperms: 重置文件和文件夹权限的工具。
openmediavault-rsnapshot: 快照备份工具。
openmediavault-s3: S3 存储服务插件。
openmediavault-sftp: SFTP 服务器。
openmediavault-shairport: AirPlay 音频服务器。
openmediavault-sharerootfs: 允许共享根文件系统的工具。
openmediavault-snapraid: SnapRAID 数据保护工具。
openmediavault-snmp: SNMP(简单网络管理协议)插件。
openmediavault-symlinks: 符号链接管理工具。
openmediavault-tftp: TFTP(Trivial File Transfer Protocol)服务器。
openmediavault-tgt: iSCSI 目标服务器。
openmediavault-usbbackup: USB 备份插件。
openmediavault-wakealarm: 用于通过计划的时间唤醒系统的工具。
openmediavault-webdav: WebDAV 服务器。
openmediavault-wetty: Web 终端工具。
openmediavault-wireguard: WireGuard VPN 插件。
openmediavault-wol: Wake-on-LAN 工具。
openmediavault-anacron: 任务调度工具。
openmediavault-apttool: APT(Advanced Package Tool)管理工具。
openmediavault-autoshutdown: 自动关机工具。
openmediavault-backup: 备份工具。
openmediavault-borgbackup: BorgBackup 工具。
openmediavault-clamav: ClamAV 来检测恶意软件和病毒的防病毒软件。
openmediavault-compose: Docker Compose 工具。
openmediavault-cputemp: 用于监控 CPU 温度的工具。
openmediavault-zfs: ZFS 文件系统支持插件。