System
Q1: The system is stuck at the logo screen and does not enter the desktop?¶
- Have you flashed the standard image from the cloud storage? Try a complete power‑off and reboot a few times. Do not place the antenna on top of the board, as it may cause interference or short circuits and lead to boot issues. Ubuntu systems take longer to boot on the first start — please wait a few minutes. If the issue persists, connect the debug serial port to capture logs.
- On the first boot, Ubuntu systems need to automatically expand the root filesystem partition (resize2fs) and initialise services. For RK platform boards like K8/K7, the first Ubuntu boot may take 3–5 minutes; Android is relatively faster. You can check whether the system is still running by observing changes in the HDMI display (e.g., the Android boot animation running).
- WiFi/Bluetooth antennas contain metal conductive parts. If placed flat on top of the board, they may short‑circuit resistors or capacitors, or generate electromagnetic interference with the DDR memory, causing data transmission errors. Secure the antenna away from the board (e.g., on the enclosure).
- Connect the debug serial port (baud rate: RK 1500000 / AW 115200) and provide the full serial boot logs.
Q2: The system is stuck at the login screen, or cannot enter the desktop after entering the password?¶
- Try rebooting the device. The login screen may appear on the first boot. Log in via serial console and run
df -hto check if any partition is full. Clean up unnecessary files or logs and reboot. If the login issue appears after modifying system configuration files, you can log in via serial and restore the changes. - Run
df -hto check the usage of each partition. If the/or/homepartition is 100% full, the desktop manager cannot create temporary files or user sessions, causing the system to get stuck at the login screen. - Ubuntu uses LightDM as the desktop manager by default. Run
sudo systemctl status lightdmto check its status, andsudo systemctl restart lightdmto restart the service. - If the login issue is caused by modifications to configuration files such as
/etc/environment,~/.profile,~/.bashrc, or~/.xinitrc, you can log in via serial console and restore the modified files.
Q3: Ubuntu system boots to a terminal and does not enter the desktop?¶
- Check the status of the display manager (LightDM / SLiM). Stop the SLiM service (if installed):
sudo systemctl stop slim. Clear SLiM cache. Verify whether the desktop environment has been accidentally uninstalled. Try reinstalling LightDM:sudo apt install --reinstall lightdm. - Check the LightDM log:
cat /var/log/lightdm/lightdm.logand look for key lines such asstartingandstop. Check the Xorg log:cat /var/log/Xorg.0.logto see if there are graphics driver loading failures (e.g.,failed to load modedrivers).
Q4: Where do I configure startup scripts in Linux?¶
- The default startup scripts in the Linux system are:
/etc/init.d/kickpi.shand/usr/bin/hardware-optimization.hardware-optimizationis started viaetc/systemd/system/hardware-optimize.service. - systemd service method (recommended): create a
.servicefile in/etc/systemd/system/, define[Service] ExecStart=<your script path>and[Install] WantedBy=multi-user.target, then runsystemctl enable <your service>to enable auto‑start at boot. - On RK3576, the default behaviour of the Power button is: short press to suspend, long press to power off (system shutdown, PMU power‑off).
Q5: How do I view the device unique identifier (chipid)?¶
- The chipid is burned at the factory and cannot be changed. It can be used as a unique device identifier. Allwinner platform:
cat /sys/class/sunxi_info/sys_info; Rockchip platform:cat /sys/devices/platform/*-serial/rockchip_serial. - The chipid can be used for device license binding, license management, device identification, etc. Because it is factory‑programmed and cannot be altered, it is more reliable than a MAC address (which can be modified).
- On RK3588 systems, you can also check the CPU serial number with
cat /proc/cpuinfo | grep Serial. - On Allwinner platforms, you can also extract the chipid with
cat /sys/class/sunxi_info/sys_info | grep chipid, or read thesunxiinformation in/proc/cpuinfo.
Q6: How do I check the CPU frequency?¶
cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freqcat /sys/devices/system/cpu/cpufreq/policy4/cpuinfo_cur_freqcat /sys/devices/system/cpu/cpufreq/policy6/cpuinfo_cur_freq- Use
watch -n 1 "cat /sys/devices/system/cpu/cpufreq/policy*/cpuinfo_cur_freq"to monitor frequency changes across all cores in real time.
Q7: After modifying the boot logo and flashing, the screen shows black?¶
- After modifying the logo, it is recommended to do a full compilation and flash. If you are using the multi‑screen compatible image from the cloud storage, flashing only the boot partition may cause boot issues due to conflicts.
- Prepare the logo image (BMP format, 24‑bit depth, resolution matching the screen) → replace
kernel/logo.bmporkernel/logo_kernel.bmpin the SDK → run./build.shfor a full compilation → flash theimgimage. - If you are using the multi‑screen compatible image from the cloud storage (which supports automatic detection of multiple screens), the logo in that image is specially handled. Replacing the logo and flashing only the boot partition may break the multi‑screen detection. It is recommended to perform a full compilation in the SDK and generate a complete
update.imgfor flashing.
Q8: How do I fix USB device nodes on the AW platform?¶
-
On Ubuntu, you can create symlinks using udev rules. On Android, you can configure fixed nodes in
ueventd.rc. -
Ubuntu udev rule example: create
After writing the file, run/etc/udev/rules.d/99-usb-serial.ruleswith content such as:udevadm control --reload-rules && udevadm triggerto apply immediately. -
Android ueventd.rc: add the following in the corresponding
To fix a device based on VID/PID, you may need to operate viaueventd.rcfile:init.rcusing commands such aswrite /sys/class/tty/ttyUSB0/device/driver/unbindand similar approaches.