FAQ About RK3568
This article is about the problems and questions that occurred during the development of Forlinx rk3568 SoM/SBC. Hope it’s helpful for you to solve problems at the first time when using RK3568. If you have other questions which is not mentioned here, please leave a message online. Forlinx will help check it.
Hardware: OK3568-C Single Board Computer (with industrial grade RK3568)
1. Common question
1.1 Frequently Asked Questions
Q: Is the RK3568 I use a Linux/Ubuntu?
Q: How to check current CPU frequency of RK3568 Single Board Computer in RK3568 Ubuntu?
1.2 Connection
Q: RK3568 Linux/Ubuntu/Android serial port cannot be connected
Q: RK3568 Linux/Ubuntu/Android OTG download cannot be connected
1.3 Source code compilation error
Q: RK3568 Linux source code compilation fails
1.4 Compile
Q: RK3568 Linux exits with an error when buildroot compiles qt5webengine 5.14.2, what is the reason?
Q: Where is the location of cross-compilation tool in RK3568 Linux source directory?
1.5 Display
Q: RK3568 Linux uses MIPI screen, but no response to touch, what is the reason?
Q: RK3568 Linux/Ubuntu is connected to HDMI screen but nothing is displayed?
Q: RK3568 Ubuntu access screen, but does not have application icons and taskbar?
1.6 PCie
Q: PCIE3.0 external crystal oscillator is not designed on your carrier board of RK3568 Linux/Ubuntu/Android, which causes system to restart infinitely?
2.1 Answers
Q: Is the RK3568 I use a Linux/Ubuntu?
A: OK3568 supports three systems: Linux, Forlinx Desktop (Ubuntu), and Android. The difference between Linux and Ubuntu:
Linux is a pure version of system, and Forlinx has adapted weston desktop system for it. It lacks many common tools and commands. It is recommended that engineers with Linux development experience use this system. At the same time, Forlinx provides PC cross compiler. Qt application can be ported and used after the development is completed on PC;
Forlinx Desktop (Ubuntu) runs Lubuntu. Ubuntu's official operating system for embedded devices. The Lubuntu used on OK3568-C Single board computer is Ubuntu LTS 20.04. It has apt-get, ldd and other commonly used commands. It is recommended for beginner to use it. He can directly deploy Qt Creator application on RK3568 single board computer for Qt application development. Forlinx doesn’t adapt to PC development environment for it. Capable user can build it by himself.
Q: How to check current frequency of CPU in Ubuntu?
A: You can use following command:
sudo watch -n 1 cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq
2.2 Connection:
Q: rk3568 Linux/Ubuntu/Android serial port cannot be connected
A: Troubleshooting direction:
Check whether debug interface is connected to PC by type-c data cable. (debug interface is located in the middle of dual USB2.0 interface and TF card slot)
Check whether serial port driver is installed--CP210x_VCP_Windows_XP_Vista.zip
Make sure data cable is not connected to virtual machine
Try with another data cable
Q: OTG download of Linux/Ubuntu/Android cannot be connected
A: Troubleshooting direction:
Use Type-c data cable to connect rk3568 single board computer and PC.
Please do not connect to Debug port. Type-c interface is on the back of rk3568 single board computer (OTG interface is below USB3.0 interface)
Check if OTG driver is installed--DriverInstall.exe
Make sure data cable is not connected to virtual machine
Try with another data cable
2.3 Compile
Q: RK3568 Linux source code compilation fails
A: Troubleshooting direction:
Note: after whole compilation is completed, do not move source code path or rename it. Otherwise it will cause failure if recompile source code.
Check if PC is win10
Check if wmware version is 15
Check if ubuntu version is 18.04
Check if PC has 16G memory, virtual machine has 8G memory, the number of virtual machine processors is 4, and the number of cores per processor is 1 (if compilation reports an error, you can increase memory to 10G and configure it as a multiple of 4M)
If compilation fails, most of them are due to too many threads are opened by processor during compilation process, resulting in excessive memory usage and compilation failure.
After copying and merging file, use md5sum OK3568-linux-source.tar.bz2 to generate checksum, and compare it with OK3568-linux-source.tar.bz2.checksum.txt to see if it is the same. Check whether virtual machine basic and necessary libraries are installed.
Use ping www.google.com or open browser URL to check if network is normal.
RK3568 Linux reports an error when compiling for the first time, just execute ./build.sh again.
Q: RK3568 Linux exits with an error when compiling qt5webengine 5.14.2 in buildroot, what is the reason?
A: The reason is available running memory of VM is not enough;
Forlinx provides minimum VM configuration, 8G RAM and 200G storage. Many users' hosts only have 8G, which causes this problem (if host has only 8G, even if VM is set to 8G, it is actually not enough for 8G. Host Running also requires memory, so please ensure host running memory is 16G or above). Some users have modified the number of cores and memory size of VM image configuration provided by Forlinx. Some set 10G to avoid this error. So if this error occurs, you just need to increase available running memory of VM.
Q: Where is cross-compilation tool in RK3568 Linux source directory?
A:
For normal use by users,Forlinx recommends to use aarch64-linux-gcc and aarch64-linux-g++, in OK3568-linux-source/buildroot/output/OK3568/host/bin. The library file path searched by the compiler is in OK3568-linux-source/buildroot/output/OK3568/host/aarch64-buildroot-linux-gnu/sysroot/usr, you can update the configuration and add some compiled libraries in buidroot in real time.
Of course, OK3568-linux-source/buildroot/output needs to be fully compiled before it is generated.
The first compilation of source code takes a long time. In some cases users do not want to perform full compilation, you can try to use aarch64-linux-gnu-gcc and aarch64-linux-gnu-g++ in OK3568-linux-source/prebuilts/gcc/linux-x86/aarch64/gcc-linaro- 6.3.1-***-gnu/bin. For related information of gcc-linaro-6.3.1 and gcc-buildroot-9.3.0, you can check OK3568-linux-source/docs/Rockchip_Developer_Guide_Linux_Software_CN.pdf. It's Rockchip official documentation. Cross-compilation tool is in chapter 5.2.4 of this document.
2.4 Display
Q: RK3568 Linux uses mipi screen, touch does not respond, what is the reason?
A: The reason is touch is on LVDS. To use MIPI screen for touch, you need to turn off LVDS video output through uboot screen selection. The factory image of OK3568 has three video outputs by default: LVDS, MIPI, HDMI, among which LVDS and MIPI Both support touch. In three-screen simultaneous display, LVDS is the main screen. The display of other screens is to "mirror" content displayed on main screen to itself. Touch actually exists, but touch point and display content really exist points are inconsistent, resulting in a phenomenon like no response to touch.
Q: RK3568 Linux/Ubuntu connected to HDMI screen but no display?
A: Troubleshooting direction:
Make sure uboot menu selection screen has turned on HDMI video output
Use dmesg | grep edid in hyperterminal to check whether there is an error related to the failure to read edid. If read edid fails, there may be two reasons:
- 1. There is a problem with HDMI cable
- 2. HDMI screen itself does not have edid chip
you can try to replace a different HDMI cable to try to rule out cause 1
If HDMI screen itself does not have edid chip, you can check the method of fixing HDMI resolution in application note, forcing HDMI not to read edid chip and outputting at a certain resolution, which can also achieve normal display.
Note: Regarding edid, it is the chip that screen stores information about supported resolution.
Some possible commands maybe used:
Check HDMI resolution: cat /sys/class/drm/card0-HDMI-A-1/modes
Force open HDMI signal output: echo on > /sys/class/drm/card0-HDMI-A-1/status
Q: There is no application icon and taskbar when Ubuntu access screen?
A: Troubleshooting direction:
In the case of multi-display in Ubuntu, other secondary screens are used as extended screens by default. There is no application icon and taskbar. Users who only access HDMI need to select HDMI as main screen in Uboot stage, and do not select secondary screen.
2.5 PCIE
Q: RK3568 Linux/Ubuntu/Android: carrier board is not designed with PCIE3.0 external crystal oscillator, which causes system to restart infinitely?
A: Carrier board made by client does not have an external crystal oscillator on PCIE3.0.
Android device tree file /OK3568-android11-source/kernel/arch/arm64/boot/dts/rockchip/OK3568-C-common.dtsi
Linux and ubuntu device tree file /OK3568-linux-source/kernel/arch/arm64/boot/dts/rockchip/OK3568-C-common.dtsi
Change pcie3.0 related node status from "okay" to "disabled" in device tree, recompile kernel, and flashing kernel image separately.
Note: If flashing image on a carrier board without pcie clock chip, you can't just use kernel image boot.img. You need to fully compile and generate an update image for flashing.