Why can't the LCSC Taishan-RK3566-Linux Dev Board open-source PCB be edited and saved?
The reason it can't be edited is because, after the board design is completed, we typically lock the project and apply filters to prevent accidental operations that could lead to unpredictable results. This is done to archive major versions. So, you just need to select all the filters to be able to make modifications.
The default project you opened is an open-source project, and you don't have save permissions. To save, you need to "Save As" and store it under your own project folder.
MIPI Camera
Does LCSC Taishan-RK3566-Linux Dev Board support any compatible cameras?
Purchase Link (click to visit 🚀) The camera section has recommended camera links.
Why is the OV5695 camera showing green in Ubuntu?
The Ubuntu system hasn't been fully adapted yet, and the IQ file hasn't taken effect. A fix will be provided in a future update.
Boot Tool Exceeds Flash Size
When auditing the boot process alone, you need to check the option to "force write to address" to avoid the issue of Boot exceeding Flash size.
Ubuntu 22.04 Compilation Error with mksquashfs.h Multiple Definitions
The Linux environment is Ubuntu 22.10, with GCC/G++ version 9.5. When compiling Taishan's buildroot or recovery, a "multiple definition, bwriter_buffer" error occurs. See the image below:
To fix this, modify the two global variables in the mksquashfs.h file in the output directory to "extern". However, if you run build.sh cleanall, the files in the output directory will be cleared, and you'll need to compile once unsuccessfully before modifying the header file to fix the issue.
To ensure the compilation works even if the output files are cleared, you can downgrade the GCC and G++ versions. This issue only occurs with GCC/G++ versions above 10. You can refer to the tutorial on Blog Garden from the expert to modify it: Click to Visit
Recommended GCC version is 9, other versions have not been tested by me.
Note: You can use apt-cache policy gcc-*
to check the available GCC versions from the repository (you can replace "*" with the version number).
Android Compilation Memory Error
Your error might appear differently, but you can confirm that the problem is with your environment configuration, and there are no obvious error hints in the logs.
Solution 1:
During compilation, reduce the -jx value. For example, if it was j32 before and caused an error, change it to j8.
Solution 2:
Increase the Swap size. Swap in a computer acts as a supplement when DDR memory is insufficient. When the system's physical memory is full, the operating system moves infrequently used memory pages to the swap space, freeing physical memory for active processes. Swap space is usually located on the hard drive, and since the read/write speed of a hard drive is much slower than RAM, using swap reduces system performance. However, when there is not enough physical memory, swap is a necessary mechanism to prevent the system from crashing due to memory shortages.
During the Android system source code compilation, the process might need a lot of memory. The compiler needs to load and process many source files, generate object code, and execute various linking and optimization steps. If there is not enough physical memory, the compiler may try to use swap space to meet its memory needs.
Execute the free command to check the Swap size
$ free -m
total used free shared buff/cache available
Mem: 128690 6509 10910 22 111270 120935
Swap: 2047 32 2015
2
3
4
- Mem:This line shows the usage of physical memory (RAM).
total
: The total amount of physical memory, here it is 128690MB (about 128GB).used
: The amount of physical memory used, here it is 6509MB.free
: The amount of free physical memory, not being used, here it is 10910MB.shared
: The amount of memory shared by multiple processes, here it is 22MB.buff/cache
: The amount of memory used for buffers and caches, here it is 111270MB. This memory is available, but used to improve system performance and reduce disk access.available
: The actual available memory, considering cache and buffers, here it is 120935MB. This is the amount that applications can actually use when they request more memory.
- Swap: This line shows the usage of swap space
total
: The total amount of swap space, here it is 2047MB (about 2GB).used
: The amount of swap space used, here it is 32MB.free
: The amount of free swap space, here it is 2015MB.
Disable the current swap file
sudo swapoff /swapfile
Adjust the swap file size
- Memory <= 4GB: Swap should be at least 4GB
- For systems with smaller memory, the swap space should be set to equal or slightly larger than the physical memory to ensure enough virtual memory for handling sudden high memory demands.
- Memory 4GB ~ 16GB: Swap should be at least 8GB
- For systems in this range, 8GB of swap space is usually sufficient. However, depending on actual usage, you can adjust this. If running memory-intensive applications, more swap space might be needed.
- Memory 16GB ~ 64GB: Swap should be at least 16GB
- For systems in this memory range, 16GB of swap is a good starting point. However, as the physical memory increases, the need for swap space decreases because the system can handle most situations with larger RAM.
- Memory 64GB ~ 256GB: Swap should be at least 32GB
- For systems with a lot of memory, the swap space requirement is relatively small. 32GB is a safe base, but systems of this size rarely use swap space.
- For systems with more than 16GB of memory:
- A general rule is to set swap to 0.5-1 times the size of your DDR memory if it's over 16GB.
sudo fallocate -l <new-size> /swapfile
#For example, if my DDR is 128GB, I would set swap to 64GB
sudo fallocate -l 64G /swapfile
2
3
Set up swap file
sudo mkswap /swapfile
Activate swap file
sudo swapon /swapfile
Check Swap size
$ free -m
total used free shared buff/cache available
Mem: 128690 893 126866 4 930 126686
Swap: 65535 0 65535
2
3
4
Download Error: Device Type Mismatch, Execution Stopped
The issue arises when the device has not entered download mode. It may still show up as an ADB device. For reference, check:
The LCSC Taishan-RK3566-Linux Dev Board has three onboard buttons, with two buttons, RST and REC, used for entering the Loader upgrade mode. To enter the Loader upgrade mode, follow these steps: Press and hold the REC button. Then press the RST reset button and release it.When the burning software detects a "LOADER device," release the REC button. Once the REC button is released, you can proceed with the upgrade operation.
HDMI No Audio Output on Android System
Flash the firmware below that includes audio output.
Boot Download Failure
There are many reasons for boot download failure. Below are some common situations and their solutions:
First Case:
If the boot download fails after replacing the DDR or eMMC, the likely cause is improper soldering, or the DDR or eMMC model is incompatible. The solution is to re-solder and ensure that the model you replaced is listed in the supported models in our provided datasheet.
Second Case:
If it was previously able to be flashed but failed after flashing your own image, you can try using a TF card for recovery. For the method, refer to the guide on creating an upgrade card with the TF card in the [Download] section. After inserting the TF card, it will update the firmware on the eMMC. In 90% of cases, the system will boot up and the flashing indicator light will function normally.
Green Camera Issue on Ubuntu System
When using the OV5695 camera recommended in the [Android] system documentation, the video playback appears green. This issue is mainly caused by the IQ files not being applied correctly.
Solution:
Download the deb package:
【camera_engine_rkaiq_rk3566.deb】Download
📌 Download Center (Click to visit)
📌 In Download Center
->Baidu Netdisk Resource Content
->Chapter 11. FAQs
->Ubuntu System Camera Turns Green
->camera_engine_rkaiq_rk3566.deb
.
Push the file to the development board using adb:
adb push camera_engine_rkaiq_rk3566.deb /
Install the deb package on the development board:
dpkg -i camera_engine_rkaiq_rk3566.deb
Reboot:
reboot
Ubuntu Camera Lag Issue
Problem description: When using the OV5695 camera recommended in the [Android] system documentation, video recording shows obvious lag, printing about 2 frames per second.
Solution:
Modify gst.sh:
vim etc/profile.d/gst.sh
Keep only the necessary content (as shown below):
After making the changes, save and exit (wq), then reboot the system.
Git_info.h Error During Android Compilation
Solution:
This issue is likely caused by insufficient memory on your computer. Check if you allocated less than 16GB of virtual memory. If it’s less than 16GB, increase the memory to at least 16GB.
Setting Up Auto Login on LCSC Taishan Ubuntu Desktop
Every time we use the display, we need to input a password. Using the method below, you can set up automatic login without needing to enter a password.
Step 1: Edit the LightDM Configuration File
he main configuration file for LightDM determines the behavior of the login manager, so we’ll generate and edit this file!
sudo vim /etc/lightdm/lightdm.conf
When the file doesn't exist, Vim will create it automatically.
Step 2: Add the Following Content
Add the following content to the file:
[]
autologin-guest=false
autologin-user=lckfb
autologin-user-timeout=0
2
3
4
[]
: This is a section header that applies to all seats (configurations for all displays). LightDM supports multiple seats (e.g., multiple monitor setups). ** This statement applies to all seat configurations.**autologin-guest=false
: Disables guest automatic login, ensuring only the specified user can auto-login.autologin-user=lckfb
: Specifies the user (lckfb
) for automatic login.autologin-user-timeout=0
: Sets the auto-login timeout to 0 seconds, meaning it will log in immediately without waiting.
Step 3: Save and Exit the Editor
In vim
, press Esc
to exit insert mode, then type :wq
to save and exit the editor.
Step 4: Reboot the System
After editing the LightDM configuration file, restart the system to apply the changes. After rebooting, LightDM will read the new configuration file and automatically log in according to the settings.
sudo reboot