rdk-headless-mode

Disable and restore desktop and non-essential systemd services on D-Robotics RDK boards.

3|Updated Aug 6, 2026
One-click install
npx skills add https://github.com/D-Robotics/rdk-skills --skill rdk-headless-mode-d-robotics
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: rdk-headless-mode
Source: https://github.com/D-Robotics/rdk-skills/tree/main/skills/rdk-headless-mode
Command: npx skills add https://github.com/D-Robotics/rdk-skills --skill rdk-headless-mode-d-robotics

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Running a desktop environment and background services on an RDK board wastes memory and CPU that could otherwise serve model inference. This Skill safely and reversibly turns an RDK device into a headless edge node by stopping and disabling lightdm and other non-essential services, with a one-command restore path. ## Core Features & Use Cases - Dry-run service audit: Lists candidate services (lightdm, cups, bluetooth, ModemManager, avahi-daemon) with their active/enabled state and planned actions as JSON, changing nothing by default. - Reversible apply and revert: --apply stops and disables candidates (with --now-only for temporary stops), and --revert re-enables and restarts everything. - Safety guardrails: The candidate list is hardcoded and never includes ssh or network management services, so the board cannot be cut off from remote access. - Use Case: Before deploying a vision inference pipeline on an RDK X5, run the dry-run, confirm the service list with the user, apply headless mode, and measure freed memory with a before/after memory audit. ## Quick Start Ask the agent to turn the RDK board into a headless inference node by disabling the desktop and unnecessary services, then confirm the candidate service list before applying.

Frequently Asked Questions about rdk-headless-mode

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I disable the desktop on a D-Robotics RDK board?▼

Run the headless.sh script with --apply as root to stop and disable lightdm and other candidate services. The script defaults to a dry-run that shows current service states and planned actions before anything changes.

How do I restore the desktop after enabling headless mode?▼

Run headless.sh --revert as root to re-enable and start all candidate services, including lightdm. Every apply action is reversible because the skill only stops and disables services without uninstalling packages.

Which services can be safely stopped to free memory on RDK?▼

The candidate list includes lightdm, cups, bluetooth, ModemManager, and avahi-daemon, matching the rdk-diagnostic candidate_services. SSH and network management services are never included, so remote access is preserved.

Does headless mode work on RDK Server edition images?▼

Yes, but Server edition images have no desktop installed, so lightdm appears as not-found in the script output, which is expected behavior. The script handles each service based on actual systemctl query results.

Why does headless.sh report permission-denied?▼

The --apply and --revert modes require root because they call systemctl stop, disable, enable, and start. Re-run the script with sudo; the dry-run mode works without elevated privileges.

How much memory does disabling the desktop actually save?▼

The skill does not quote fixed numbers; it instructs running a memory audit before and after applying headless mode and reporting the measured delta. This keeps reported savings grounded in actual board measurements.