Unattended Remote Access with RustDesk on reComputer RK3576

#Introduction

RustDesk is an open-source remote desktop application. For edge AI and AIoT devices deployed at unattended sites, it can help operators inspect the reComputer RK3576 desktop, adjust application settings, and check device status without visiting the site.

This guide installs RustDesk and configures the X11 graphical login environment for three scenarios:

  • View and control the desktop while a user is logged in.
  • Reconnect with a permanent password after the screen is locked, without local confirmation.
  • Connect to the GDM login screen after logout or restart, then log in remotely.

Tested environment: reComputer RK3576; Armbian (Debian 12 Bookworm); GNOME 43 / GDM3; RustDesk 1.2.3 (ARM64); GDM login screen running on X11. Other system versions may require different steps.

#Getting started

#Hardware

  • One reComputer RK3576.
  • One Windows computer from which to initiate the connection.
  • Network connectivity between both computers and the services required by RustDesk.
  • An HDMI monitor and keyboard are recommended for initial setup and testing.

#Software

DeviceSoftware / systemVersion used here
reComputer RK3576Armbian / Debian 12 BookwormDebian 12, ARM64
reComputer RK3576GNOME + GDM3 + XorgGNOME 43 / GDM3
reComputer RK3576RustDesk Linux ARM64 .deb1.2.3
Windows computerRustDesk Windows clientOfficial Windows x86-64 installer

RustDesk 1.2.3 matches the tested device. If you use another release, verify access to the login screen again.

Official resources:

#Installation

#Step 1: Download the RustDesk ARM64 package on the RK3576

Connect to the RK3576 over SSH and check the operating system and architecture:

bash
cat /etc/os-release
dpkg --print-architecture

The tested device reports arm64. Download the Linux AArch64/ARM64 .deb package, not a Windows or x86-64 installer. You can obtain rustdesk-1.2.3-aarch64.deb from the official 1.2.3 release, or run:

bash
cd ~
wget https://github.com/rustdesk/rustdesk/releases/download/1.2.3/rustdesk-1.2.3-aarch64.deb

Check the downloaded file:

bash
ls -lh rustdesk-1.2.3-aarch64.deb
dpkg-deb --info rustdesk-1.2.3-aarch64.deb

#Step 2: Install RustDesk and start its system service

From the directory containing the package:

bash
sudo apt update
sudo apt install ./rustdesk-1.2.3-aarch64.deb

Enable and start the service:

bash
sudo systemctl enable --now rustdesk
systemctl status rustdesk --no-pager

Expected status:

text
Loaded: loaded (.../rustdesk.service; enabled; ...)
Active: active (running)

You can also check the installed version:

bash
dpkg -l | grep rustdesk

A running service does not, by itself, confirm that you can control the lock screen or login screen. Complete the X11 configuration and connection tests below.

#Step 3: Configure the GDM login screen to use X11

The RustDesk Linux documentation says that accessing the login screen after logout or restart requires an X11 login screen. On the tested Debian 12 installation, the GDM3 configuration file is /etc/gdm3/daemon.conf.

First, confirm that an Xorg session is available:

bash
ls /usr/share/xsessions/

The tested image contains gnome-xorg.desktop. If this directory is missing, do not apply the following change without first checking whether your image provides an X11 graphical session.

Back up and edit the GDM configuration:

bash
sudo cp /etc/gdm3/daemon.conf /etc/gdm3/daemon.conf.bak
sudo nano /etc/gdm3/daemon.conf

In the [daemon] section, change:

ini
#WaylandEnable=false

to:

ini
WaylandEnable=false

Confirm the setting:

bash
grep '^WaylandEnable' /etc/gdm3/daemon.conf

Expected output:

text
WaylandEnable=false

Restart the device:

bash
sudo reboot

Reconnect over SSH and list graphical sessions:

bash
loginctl list-sessions

Find the session ID for Debian-gdm, then replace <SESSION_ID> below with that ID:

bash
loginctl show-session <SESSION_ID> -p Name -p Type -p Class -p State

The tested setup returned:

text
Name=Debian-gdm
Type=x11
Class=greeter
State=active

This confirms that the GDM login screen is running on X11. Session IDs can change after a restart.

If the graphical desktop stops working but SSH still works, restore the backup with sudo cp /etc/gdm3/daemon.conf.bak /etc/gdm3/daemon.conf and restart. These steps apply only to the tested Debian 12 environment with an available Xorg session.

#Step 4: Get the RustDesk ID and set a permanent password

Over SSH, obtain the RK3576 device ID:

bash
sudo rustdesk --get-id

Set a separate, strong permanent password for unattended access. If the graphical desktop is available, use Settings → Security → Password → Use permanent password in RustDesk. Alternatively, set it over SSH:

bash
read -rsp 'New RustDesk password: ' RD_PASSWORD; echo
sudo rustdesk --password "$RD_PASSWORD"
unset RD_PASSWORD

The command should print Done!. This avoids putting the plaintext password in shell history, but a privileged local process may briefly see it in command-line arguments. Follow your deployment's credential-management policy.

Do not publish a real device ID, permanent password, or customer account in screenshots. Mask the device ID, use a strong password, and do not reuse the Linux login password.

#Step 5: Install the Windows client and connect

Download RustDesk for Windows from the official site or GitHub Releases. On a typical Intel/AMD 64-bit computer, select the x86-64 (64-bit) → Windows → EXE installer; use Windows ARM64 only for a Windows-on-ARM device.

In the Windows client:

  1. Enter the RK3576 RustDesk ID in the remote-device field.
  2. Select Connect.
  3. Enter the permanent password from Step 4.
  4. Confirm that you can view and control the RK3576 desktop without local approval.

#Verify unattended remote access

#1. Control the logged-in desktop

Leave the RK3576 logged in to GNOME. Connect from Windows with the device ID and permanent password, and check mouse and keyboard control.

#2. Reconnect after locking the screen

Lock the RK3576 desktop and disconnect RustDesk on Windows. Reconnect with the same ID and permanent password. Confirm that the lock screen appears without local approval and that you can unlock it with the Linux user password.

#3. Reach the GDM login screen after logout or restart

Select Log Out from the GNOME menu, or run:

bash
sudo reboot

When the GDM login screen returns, do not log in or approve anything locally. Connect from the Windows RustDesk client using the device ID and permanent password. Confirm that you can see GDM and enter the Linux user password remotely.

Log Out is not Power Off. A powered-off device cannot run RustDesk. This test assumes that the operating system, network, and RustDesk service are running.

In the tested Debian 12/X11 environment, the GDM login screen could be reached without local approval and remote login completed.

#Troubleshooting

1. Gtk-WARNING: cannot open display when running rustdesk over SSH

An SSH text session has no graphical display. This does not necessarily mean the background service failed. Check systemctl status rustdesk --no-pager, then use the command-line options to obtain the ID and set the password.

2. The GDM login screen cannot be reached

After restarting, confirm that the Debian-gdm session has Type=x11. Seeing an Xwayland process alone does not prove that GDM uses X11. Check that WaylandEnable=false is active in /etc/gdm3/daemon.conf.

3. RustDesk reports that the device is offline

Check that the RK3576 is powered on and connected to the network. Over SSH, inspect rustdesk.service and verify the device ID. Allow time for the network and service to recover after a restart.

4. Unsupported file ./rustdesk-...deb given on commandline during installation

Check that the package exists in the current directory and is complete with ls -lh and dpkg-deb --info, then retry sudo apt install ./rustdesk-...deb.

#Summary

In the tested Debian 12 / GDM X11 environment, RustDesk provides unattended remote access to reComputer RK3576 while logged in, after locking, and at the GDM login screen after a restart. This can reduce the need for a local monitor and keyboard when maintaining edge AI or AIoT devices in the field.

#References

#Technical support and product discussion

Thank you for choosing Seeed Studio. For related guides and support, visit the Seeed Studio Wiki.