Pangram verdict · v3.3
We believe that this document is a mix of AI-generated, and human-written content
AI likelihood · overall
MixedArticle text · 1,304 words · 7 segments analyzed
rkdebian — Debian 12 for Doogee U10 (RK3562) Download Pre-release Image
Current public build (pre-release, May 14, 2026):
Release page: tech4bot/rk3562deb prerelease-14052026 Direct image download: rk3562-debian.img.xz Video demo: YouTube
Run full Debian 12 Bookworm on your Doogee U10 tablet — no bootloader unlock required. Boot from SD card, remove it to return to stock Android. No changes to internal storage.
Reverse engineered from scratch — no BSP, no vendor documentation, no official support. Built with the help of Claude, Codex, and Antigravity (Google Gemini), using Firefly RK3562 open-source repositories as a starting point.
Overview rkdebian is a build system that produces a complete, bootable Debian 12 Bookworm image for the Doogee U10 Android tablet, powered by the Rockchip RK3562 SoC. The resulting image is written to an SD card. Insert it and power on — the tablet boots Debian. Remove the SD card and it boots Android from internal eMMC as normal.
Hardware: Doogee U10
Component Details
SoC Rockchip RK3562 (4× Cortex-A53 @ 2.0 GHz)
NPU 1× Rockchip NPU core (active for RKLLM inference)
RAM 4 GB LPDDR4
Storage 128 GB eMMC (Android) + SD card (Debian)
Display 10.1" DSI panel, 1280×800
PMIC RK817
What Works
Feature Status
Display / Panel ✅ Full
Touchscreen ✅ Full (gsl3673, 10-point multitouch)
Wi-Fi ✅ Full (Seekwave EA6621Q)
Bluetooth ✅ Full
Speaker / Audio output ✅ Full
Microphone ✅ Full
3D Acceleration ⚠️ Partial (Panfrost, OpenGL ES works)
NPU (RKLLM / rknn-llm) ✅ Active (RK3562 supports one NPU core, num_npu_core=1)
Accelerometer ✅ Full (SC7A20 / DA223)
Flashlight (rear LED) ✅ Full (native Phosh top-menu torch toggle + brightness control via rk-flashlightctl)
Power button behavior ✅ Full (short press sleeps on release, long press >=3s opens shutdown dialog)
Lockscreen orientation memory ✅ Full (lock screen keeps last tablet orientation, including landscape)
Cameras ⚠️ Partial (front s5k5e8 + rear s5k4h5yb pipelines functional; color tuning still needs calibration)
Battery / Charging ✅ Full (RK817 PMIC)
SD card boot ✅ Full
USB OTG ✅ Full
Default Installed Apps
App Notes
Firefox ESR Preinstalled web browser
Chromium Preinstalled web browser (installed when available on mirror)
FreeTube Installed via Flatpak from Flathub by default (disable with RKDEBIAN_PREINSTALL_FREETUBE=0 for smaller images)
Drawing Touch-friendly paint app (installed when available on mirror)
Snapshot Camera app (installed when available on mirror)
Dolphin File manager
Plasma Discover App store / software center
Okular Document/PDF viewer
Gedit Text editor
Pavucontrol Audio controls
Terminal kgx preferred, gnome-terminal fallback
Flatpak + Flathub Enabled by default for app installs
NPU LLM (RK3562) This tablet image supports local LLM inference on the RK3562 NPU using Rockchip's RKLLM stack.
NPU software used
airockchip/rknn-llm — runtime, RKLLM toolkit, demo app (llm_demo) airockchip/rknn-toolkit2 — RKNN conversion/toolchain dependency used by RKLLM workflows
Model conversion setup used
Target platform: rk3562 Quantization: W8A8 NPU cores: num_npu_core=1 (RK3562 supports one NPU core) Optimization level: 0 (chosen for compatibility/stability on this board)
Example conversion command (host PC): python3 convert_qwen_rk3562.py \ --model-dir ./models/Qwen3-0.6B \ --target-platform rk3562 \ --quantized-dtype W8A8 \ --optimization-level 0 \ --num-npu-core 1 \ --output ./out/Qwen3-0.6B_W8A8_RK3562_opt0.rkllm Benchmark (on tablet, NPU path) Measured on April 6, 2026 on <tablet-ip> with:
prompt: Output exactly 300 English words about arithmetic speed testing do not include punctuation and do not stop early MAX_NEW_TOKENS=64, MAX_CONTEXT_LEN=1024 runner: ~/npu-test/xcompile/demo_Linux_aarch64/run_llm_rk3562.sh
Commands used: # Qwen3-0.6B (first run includes fix_freq) USE_FIX_FREQ=1 RKLLM_LOG_LEVEL=1 PROMPT="Output exactly 300 English words about arithmetic speed testing do not include punctuation and do not stop early" \ ./run_llm_rk3562.sh ~/npu-test/models/Qwen3-0.6B_W8A8_RK3562_opt0.rkllm 64 1024
# Qwen2.5-1.5B USE_FIX_FREQ=0 RKLLM_LOG_LEVEL=1 PROMPT="Output exactly 300 English words about
arithmetic speed testing do not include punctuation and do not stop early" \ ./run_llm_rk3562.sh ~/npu-test/models/Qwen2.5-1.5B-Instruct_W8A8_RK3562.rkllm 64 1024 Warm-run average (runs 2-3):
Model Init Time (ms) Prefill (tok/s) Generate (tok/s)
Qwen3-0.6B_W8A8_RK3562_opt0 1788.70 57.62 4.92
Qwen2.5-1.5B-Instruct_W8A8_RK3562 4800.76 42.78 2.18
Result: Qwen3-0.6B is significantly faster on this RK3562 tablet for local NPU inference.
Known Issues
Battery may report 0% after the tablet has been powered off for a couple of hours. rk-battery-gauge-fix.service fixes this on boot. If the tablet did not fully power off, reboot once; on the next boot the battery level should be corrected. Front (s5k5e8) and rear (s5k4h5yb) camera preview/capture are functional, but colors are still slightly off and require additional ISP calibration.
Requirements Host machine: x86-64 Linux (Debian/Ubuntu recommended) Install all build dependencies with: sudo apt-get install \ git make gcc-aarch64-linux-gnu \ bc bison flex device-tree-compiler \ genimage wget tar mtools \ xz-utils \ debootstrap qemu-user-static \ e2fsprogs
Building Full build (recommended) Builds U-Boot, kernel, Debian rootfs, and produces a ready-to-flash SD card image: ./build.sh all With full logging to file (tee) while preserving the real build exit status: set -o pipefail ./build.sh all 2>&1 | tee build.log ./build.sh with no target defaults to all.
The final image is written to:
out/rk3562-debian.img.xz — compressed final image (recommended) output/update/update.img.xz — compressed Firefly-compatible path
Compatibility/raw images are also kept:
out/rk3562-debian.img output/update/update.img
CLI usage and options ./build.sh [options] {check|lunch|uboot|extboot|updateimg|updatepkg|compile|rootfs|image|all}
Option Values Description
--ui-session phosh Session profile to bake into the image
--gpu-stack mali, panfrost Select userspace/kernel graphics stack
--display-server auto, wayland, x11 Desktop backend preference passed into rootfs build
--cpu-governor e.g. performance, schedutil Baseline governor used by power-tuning services
--force-clean-rootfs flag Force full rootfs rebuild (same effect as RKDEBIAN_FORCE_CLEAN_ROOTFS=1)
--no-force-clean-rootfs flag Explicitly disable forced rootfs cleanup
-h, --help flag Show usage
Individual build targets
Command What it does
./build.sh check Verify all build dependencies are installed
./build.sh lunch Select a build configuration (defconfig)
./build.sh uboot Build U-Boot only
./build.sh extboot Build the Linux kernel only
./build.sh rootfs Build the Debian 12 rootfs only, then verify the requested build profile marker
./build.sh compile Build U-Boot + kernel (skip rootfs and image)
./build.sh image Assemble the final SD card image from existing artifacts (with rootfs profile verification)
./build.sh updateimg Legacy image assembly path (SDK-compat); packages image without running profile verification
./build.sh updatepkg Create an offline update tarball (output/update/update.tar.gz) from out/rootfs + out/boot/*
./build.sh all Full end-to-end build (default)
image and updatepkg require existing build artifacts (out/rootfs, kernel/DTB, and boot config files).
Environment Variables These variables can be set before running build.sh to control build behaviour: Rootfs
Variable Default Description
RKDEBIAN_FORCE_CLEAN_ROOTFS 0 Set to 1 to wipe and fully rebuild the Debian rootfs from scratch. Useful when switching between different image profiles so stale packages do not carry over.
ROOTFS_IMAGE_SIZE auto Override the rootfs partition size (e.g. 4G, 3584M). By default the size is calculated automatically from actual rootfs usage plus headroom.
ROOTFS_HEADROOM_MB 512 Free space headroom added on top of actual rootfs usage when using auto sizing.
ROOTFS_MIN_MB 2560 Minimum rootfs image size in MiB when using auto sizing.
RKDEBIAN_DISPLAY_SERVER wayland Session backend preference for desktop stack selection (wayland, x11, or auto). Phosh images use Wayland by default.
RKDEBIAN_UI_SESSION phosh UI session to auto-login in LightDM. Current supported value: phosh.
RKDEBIAN_GPU_STACK mali GPU stack to build for: mali (vendor userspace) or panfrost (Mesa/Panfrost, no libmali).
RKDEBIAN_CPU_GOVERNOR performance Baseline CPU governor used at boot and as the default mapping for Phosh balanced mode.
RKDEBIAN_MALI_GBM_PROVIDER vendor Mali-only option: vendor keeps mali/libgbm.so.1 from the blob package (default), debian overrides it to Debian libgbm.so.1 for compatibility testing.
RKDEBIAN_PREINSTALL_FREETUBE 1 Set to 0 to skip FreeTube preinstall and significantly reduce image size.
RKDEBIAN_MINIMIZE_IMAGE 0 Set to 1 for aggressive size reduction (prunes non-English locales plus /usr/share/doc, /usr/share/help, /usr/share/man, /usr/share/info, and unused Flatpak objects).
Kernel
Variable Default Description
RKDEBIAN_MAKE_THREADS auto Override kernel build parallelism. By default it uses a memory-safe value (min(nproc, RAM_GiB/2)) to reduce random cc1/drivers build failures on low-RAM hosts.
RKDEBIAN_KEEP_OVERLAY_PMIC_PATCHES 0 Set to 1 to use the overlay PMIC drivers (rk808.c, rk817_battery.c, rk817_charger.c) instead of the upstream kernel versions.
Examples # Force a clean rootfs rebuild RKDEBIAN_FORCE_CLEAN_ROOTFS=1 ./build.sh all
# Same using CLI flags ./build.sh all --force-clean-rootfs
# Force clean rootfs rebuild with a fixed 4 GB rootfs partition RKDEBIAN_FORCE_CLEAN_ROOTFS=1 ROOTFS_IMAGE_SIZE=4G ./build.sh all
# Build only the rootfs, force clean RKDEBIAN_FORCE_CLEAN_ROOTFS=1 ./build.sh rootfs
# Rebuild image only (U-Boot and kernel already built) ./build.sh