Radxa Rock 3C Buildroot Optimization
Budget: $750 – $1,500 USD
SBC: Radxa Rock 3C (RK3566)
Boot time: "Boot" is measured as power-on to first, visible SDL frame.
Measurement method must be documented and repeatable.
Storage: SquashFS, ext4 overlayfs on microSD at /
Input: USB HID (keyboard, mouse, gamepad)
Keyboard is required at boot. Mouse, gamepads can late load.
Audio: ALSA (or equivalent) with HDMI out.
Limit only to required codec/HDMI path.
Video: Panfrost (Mali-G52 via Mesa DRM/KMS)
Fixed 1280x720 @ 60Hz (use for boot-time measurement)
No unused display outputs (DP, DSI, etc.)
Network: Minimal WiFi and/or Ethernet.
Must eventually connect and obtain DHCP/IP *after* boot.
Not required at first-frame.
User model: Single-user only
(no multi-user features, no cgroups, no namespaces)
Init system: Busybox. No getty/login prompt.
Direct auto-launch of SDL application.
Kernel: Minimized to the smallest possible for our requirements.
No debug, tracing, profiling, BPF, or unused subsystems.
Output: HDMI (audio and video)
Notes:
"SDL" means SDL2 or SDL3, we can decide which one.
Use Mesa with panfrost drivers (kmsro if needed).
No X11 or Wayland overhead.
SDL must target the DRM/KMS backend directly.
Ensure CONFIG_BOOTDELAY=0 and/or remove the delay option.
Networking can late load and is low priority.
Kernel size (uncompressed) should be no more than 8MB (target ~7MB).
Kernel should be LZ4 compressed *after minimizing the size*.
No initramfs/initrd unless explicitly justified
Modules only for late-loaded features.
Networking (WiFi/Ethernet) must not delay first frame.
No USB storage, USB networking, etc.
USB OTG gadget late load, if possible.
I can provide an SDL test program.
Final deliverables required:
1. All configuration/build files, with exact Buildroot version.
(including exact kernel .config used for both builds)
2. Notes on make procedure (how to create the images)
3. Release build
a) flash-ready eMMC image (must be <3.0s boot, target 2.0s)
b) flash-ready SD image (must be <4.0s boot, target 3.0s)
4. Debug build
a) flash-ready SD image with printk/debug (boot does not need to match release specs)
5. Boot time measurement results (with method used)
Boot time: "Boot" is measured as power-on to first, visible SDL frame.
Measurement method must be documented and repeatable.
Storage: SquashFS, ext4 overlayfs on microSD at /
Input: USB HID (keyboard, mouse, gamepad)
Keyboard is required at boot. Mouse, gamepads can late load.
Audio: ALSA (or equivalent) with HDMI out.
Limit only to required codec/HDMI path.
Video: Panfrost (Mali-G52 via Mesa DRM/KMS)
Fixed 1280x720 @ 60Hz (use for boot-time measurement)
No unused display outputs (DP, DSI, etc.)
Network: Minimal WiFi and/or Ethernet.
Must eventually connect and obtain DHCP/IP *after* boot.
Not required at first-frame.
User model: Single-user only
(no multi-user features, no cgroups, no namespaces)
Init system: Busybox. No getty/login prompt.
Direct auto-launch of SDL application.
Kernel: Minimized to the smallest possible for our requirements.
No debug, tracing, profiling, BPF, or unused subsystems.
Output: HDMI (audio and video)
Notes:
"SDL" means SDL2 or SDL3, we can decide which one.
Use Mesa with panfrost drivers (kmsro if needed).
No X11 or Wayland overhead.
SDL must target the DRM/KMS backend directly.
Ensure CONFIG_BOOTDELAY=0 and/or remove the delay option.
Networking can late load and is low priority.
Kernel size (uncompressed) should be no more than 8MB (target ~7MB).
Kernel should be LZ4 compressed *after minimizing the size*.
No initramfs/initrd unless explicitly justified
Modules only for late-loaded features.
Networking (WiFi/Ethernet) must not delay first frame.
No USB storage, USB networking, etc.
USB OTG gadget late load, if possible.
I can provide an SDL test program.
Final deliverables required:
1. All configuration/build files, with exact Buildroot version.
(including exact kernel .config used for both builds)
2. Notes on make procedure (how to create the images)
3. Release build
a) flash-ready eMMC image (must be <3.0s boot, target 2.0s)
b) flash-ready SD image (must be <4.0s boot, target 3.0s)
4. Debug build
a) flash-ready SD image with printk/debug (boot does not need to match release specs)
5. Boot time measurement results (with method used)