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
| Device | Software / system | Version used here |
|---|---|---|
| reComputer RK3576 | Armbian / Debian 12 Bookworm | Debian 12, ARM64 |
| reComputer RK3576 | GNOME + GDM3 + Xorg | GNOME 43 / GDM3 |
| reComputer RK3576 | RustDesk Linux ARM64 .deb | 1.2.3 |
| Windows computer | RustDesk Windows client | Official 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:
cat /etc/os-release
dpkg --print-architectureThe 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:
cd ~
wget https://github.com/rustdesk/rustdesk/releases/download/1.2.3/rustdesk-1.2.3-aarch64.debCheck the downloaded file:
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:
sudo apt update
sudo apt install ./rustdesk-1.2.3-aarch64.debEnable and start the service:
sudo systemctl enable --now rustdesk
systemctl status rustdesk --no-pagerExpected status:
Loaded: loaded (.../rustdesk.service; enabled; ...)
Active: active (running)You can also check the installed version:
dpkg -l | grep rustdeskA 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:
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:
sudo cp /etc/gdm3/daemon.conf /etc/gdm3/daemon.conf.bak
sudo nano /etc/gdm3/daemon.confIn the [daemon] section, change:
#WaylandEnable=falseto:
WaylandEnable=falseConfirm the setting:
grep '^WaylandEnable' /etc/gdm3/daemon.confExpected output:
WaylandEnable=falseRestart the device:
sudo rebootReconnect over SSH and list graphical sessions:
loginctl list-sessionsFind the session ID for Debian-gdm, then replace <SESSION_ID> below with that ID:
loginctl show-session <SESSION_ID> -p Name -p Type -p Class -p StateThe tested setup returned:
Name=Debian-gdm
Type=x11
Class=greeter
State=activeThis 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.confand 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:
sudo rustdesk --get-idSet 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:
read -rsp 'New RustDesk password: ' RD_PASSWORD; echo
sudo rustdesk --password "$RD_PASSWORD"
unset RD_PASSWORDThe 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:
- Enter the RK3576 RustDesk ID in the remote-device field.
- Select Connect.
- Enter the permanent password from Step 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:
sudo rebootWhen 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.