Introduction This Ubuntu manual is applicable to Firefly Ubuntu Desktop & Minimal system. Some introductions related to UI display are only for Desktop system. The features of Ubuntu Desktop system are as follows: The desktop environment uses LXDE, Lubuntu+Firefly custom theme, simple and beautiful. (Ubuntu 20.04 uses LXQt) Xserver uses GPU + RGA for 2D acceleration, runs smoothly, and takes up less CPU resources. For embedded platforms, streamline system services. Provide OpenGL and OpenCL support based on Arm Mali GPU. Provide video hard codec support based on Rockchip VPU + Mpp. Adapt to QT, Docker, Electron and other development frameworks. Provide a series of interfaces to operate onboard resource devices. The system adopts overlayfs file system, supports exporting rootfs, secondary packaging, restoring factory settings and other functionsa. The features of Ubuntu Minimal system are as follows: No desktop environment, less resources, after simplifying network management, only 40M memory. For embedded platforms, streamline system services. Adapt to QT, Docker, Electron and other development frameworks. Provide a series of interfaces to operate onboard resource devices. The system adopts overlayfs file system, supports exporting rootfs, secondary packaging, restoring factory settings and other functions. Display version information ffgo The ffgo command provided by Firefly can easily view the firmware information, which is convenient for developers to debug and locate problems. When users need to feedback information to Firefly, they need to attach the version information displayed by ffgo version. root@firefly:~# ffgo Usage: ffgo: show this usage ffgo update: update ffgo ffgo version: get version ffgo cmdlist: get support cmd list ffgo [cmd]: run cmd in cmd list root@firefly:~# ffgo update update success root@firefly:~# ffgo version OS: Ubuntu 18.04.5 LTS MODEL: Firefly RK3566-ROC-PC HDMI(Linux) FIREFLY: v2.04-1-g618089a DATE: 20210316-1035 KERNEL: Linux version 4.19.172 (liaoxt@tchip16) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05), GNU ld (Linaro_Binutils-2017.05) 2.27.0.20161019) #107 SMP Mon Apr 19 09:01:32 Change the device boot and desktop LOGO Boot up LOGO The boot logo is stored in the SDK/kernel. After modification, recompile the kernel. linux-sdk/kernel/logo.bmp linux-sdk/kernel/logo_kernel.bmp Note: "logo.bmp" and "logo_kernel.bmp" should be the same image. LOGO on the desktop The following is the Ubuntu 18.04 LXDE desktop, restart the system after replacing the LOGO: /usr/share/lubuntu/ ├── images │   └── lubuntu-ff-logo.png # Small icon in the upper left corner of the desktop └── wallpapers └── firefly-default-wallpaper.png # desktop wallpaper The Ubuntu 20.04 desktop system can be replaced directly in the desktop settings. Multi-screen and Rotation You can config the rotation of screen, and postiton, extension, copy of screens in system preferences. The settings usually named "Monitor Settings" or "Display". If you are using touchscreens, multi-screen or rotation may has problems, here's the solutions: Screen rotated but the touch stays So you need to rotate the touch, too. First use "xinput" to find the input device. root@firefly:~# xinput ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ PixArt USB Optical Mouse id=7 [slave pointer (2)] ⎜ ↳ himax-touchscreen id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ adc-keys id=6 [slave keyboard (3)] ↳ rk805 pwrkey id=8 [slave keyboard (3)] ↳ fe6e0030.pwm id=9 [slave keyboard (3)] ↳ himax-touchscreen id=11 [slave keyboard (3)] In "Virtual core pointer" we can see the touch device is "himax- touchscreen" with id 10. Then change the content of "/etc/X11/xorg.conf.d/05-touchscreen.conf" like this: Section "InputClass" Identifier "ff_touchscreen" MatchProduct "himax-touchscreen" Driver "libinput" Option "CalibrationMatrix" "1 0 0 0 1 0 0 0 1" EndSection Identifier is just a name MatchProduct need to be the device name we just found And the key point is Option "CalibrationMatrix" Normal it should be "1 0 0 0 1 0 0 0 1" Rotate to left, change to "0 -1 1 1 0 0 0 0 1" Rotate to right, change to "0 1 0 -1 0 1 0 0 1" Invert (rotate 180), change to "-1 0 1 0 -1 1 0 0 1" If you have more than one touchscreen, just add more InputClass to match. Save the file and reboot to take effect. Touch one screen but result shows on another screen That is because input device is not mapping with the right output screen. First use "xinput" to find input device. Let's say it is still "himax-touchscreen" id 10 Then use "xrandr" to find display device: root@firefly:~# xrandr Screen 0: minimum 320 x 200, current 2720 x 1280, maximum 8192 x 8192 HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1920x1080 60.00*+ 59.94 1920x1080i 60.00 59.94 ...... ...... 800x600 60.32 720x480 60.00 60.00 59.94 59.94 59.94 DSI-1 connected 800x1280+1920+0 (normal left inverted right x axis y axis) 0mm x 0mm 800x1280 59.98*+ There are two monitors, HDMI-1 and DSI-1, the "himax-touchscreen" is DSI-1, then start to map, run: xinput map-to-output 10 DSI-1 10 is the id of "himax-touchscreen", map it to DSI-1. Now see if it works, if everything is fine, create a new file "/etc/X11/Xsession.d/90-touchscreen-map", put the mapping cmd in that file to make it persistent. Restore factory settings Firefly Ubuntu supports restoring factory settings. Note that this factory setting means that the device is restored to its initial state after the last firmware upgrade root@firefly:~# recovery Usage: update