RustDesk laidis klajā priekšskatījuma būvējumu x86_64 Debian un Ubuntu sistēmām, kurā attālinātā piekļuve Wayland darbvirsmai vairs neprasa, lai kāds sēdētu pie attālā datora. Attēlu programma nolasa tieši no DRM/KMS, tas ir, zem kompozitora. Līdz ar to pazūd piekrišanas dialogs un monitora izvēles logs. Pieslēgties var arī brīdī, kad dators tikko pārstartējies un ekrānā redzams vienīgi pieteikšanās logs.
Vēl pirms pusgada RustDesk dokumentācija par pieteikšanās ekrānu Wayland vidē rakstīja īsi: nav atbalstīts, izmantojiet X11. Tā pati siena stāv priekšā TeamViewer un AnyDesk. Iemesls slēpjas Wayland drošības modelī.
Kur Wayland ceļš pārtrūka
Uz Wayland RustDesk ekrānu līdz šim ņēma caur PipeWire un xdg-desktop-portal. Šis ceļš prasa interaktīvu piekrišanas dialogu katram savienojumam plus monitora izvēli sarakstā. Vēl būtiskāk, screencast eksistē tikai aktīvas lietotāja sesijas iekšienē. Ja neviens nav pieteicies, sesijas nav, tātad nav arī ko uzņemt.
Serverim skapī vai birojam, kur datori pēc atjauninājuma pārstartējas naktī, tas nozīmē vienu lietu. Attālinātā palīdzība beidzas tieši tajā brīdī, kad tā vajadzīga visvairāk.
Palīdzības dienestiem sāpīga ir arī otra puse. Cilvēkam, kuram vajag palīdzību, portāla dialogā vispirms jāatrod pareizais monitors sarakstā. Ja lietotājs izvēlas nepareizo ekrānu vai nospiež atcelt, viss sākas no gala. Tieši šī iemesla dēļ daudzas Linux darbstacijas uzņēmumos joprojām tiek turētas uz X11 sesijas.
libdrmtap nolasa to pašu buferi, ko rāda monitors
Jaunais uzņemšanas aizmugurgals portālu apiet pilnībā. Darbu veic libdrmtap, C valodā rakstīta bibliotēka, kas lasa kadru buferi no DRM/KMS. Tā pārveido GPU flīžveida izkārtojumu par lineāru, uzņem katru CRTC atsevišķi (no tā rodas vairāku monitoru atbalsts), atsevišķi nolasa kursora plakni un privileģētās darbības nodod izdalītam palīgprocesam. Tastatūru un peli vada caur kodola uinput, tātad tajā pašā līmenī, kurā notiek attēla nolasīšana.
Priekšlikumu diskusijā #15417 iesniedza lietotājs fxd0h 2026. gada 25. jūnijā. RustDesk uzturētāji atbildēja tajā pašā dienā. Pēc nepilniem diviem mēnešiem projekta emuārā parādījās izmēģināmā pakotne.
Portāla ceļš dod attēlu tikai tad, kad lietotājs jau ir pieteicies. DRM/KMS ceļš dod to pašu attēlu, ko šobrīd izvada monitors, arī pieteikšanās logā.
Ko šī pieeja nespēj
Nolasīšana zem kompozitora nes savus ierobežojumus. Vajadzīgs aktīvs CRTC, tas ir, izvade uz ekrānu notiek šajā brīdī. Izslēgtu vai aptumšotu monitoru uzņemt nevar, tāpēc ekrāna aptumšošana ir jāizslēdz. Datoram bez monitora vajag virtuālu izvadi: vkms draiveri, aparatūras spraudni vai EDID no programmaparatūras. Kursora karstais punkts uz īstas dzelzs var būt dažus pikseļus greizi. AMD kods ir uzrakstīts, taču uz reālas AMD kartes to vēl neviens nav pārbaudījis.
Pārbaudītās aparatūras saraksts pagaidām ir šaurs: Intel Meteor Lake ar i915 draiveri un diviem 4K monitoriem, NVIDIA Jetson Orin Nano uz aarch64 platformas plus QEMU/KVM ar virtio-gpu. Pakotnes ir tikai Debian formātā. Iespēja pēc noklusējuma ir izslēgta un jāieslēdz atsevišķi.
Vairāku monitoru atbalsts šeit strādā citādi nekā portāla ceļā. Portāls dod vienu plūsmu par vienu izvēlēto ekrānu. DRM/KMS pusē katrs CRTC ir savs avots, tāpēc operators pārslēdzas starp monitoriem no savas puses, neko neprasot attālajam datoram. Kursoru bibliotēka lasa no atsevišķas aparatūras plaknes, tāpēc peles rādītājs kadrā redzams arī tad, kad kompozitors to zīmē ārpus galvenā bufera.
Drošības kompromiss ir reāls
Piekrišanas dialogs Wayland vidē nav dekorācija. Tas radās tāpēc, ka X11 laikā jebkura darbvirsmas programma varēja nolasīt visu ekrānu un pārtvert taustiņsitienus, neko nejautājot. Uzņemšana zem kompozitora šo pārbaudi noņem. Atbildība pārceļas uz administratoru: kurš drīkst palaist privileģēto palīgprocesu, kā glabājas pastāvīgās piekļuves parole un kurš lasa žurnālus.
Tieši tāpēc funkcija pēc noklusējuma guļ izslēgta atsevišķā priekšskatījuma pakotnē. Uzņēmumu datorparkiem mainās uzstādīšanas kārtība. DRM/KMS uzņemšana jāieslēdz iepriekš uz katras mašīnas. Tikai pēc tam pieslēgums pieteikšanās ekrānam sāks strādāt.
Kamēr pakotnes nav, cilvēki maina displeja pārvaldnieku
Praktiķi tikmēr risina problēmu ar rupju paņēmienu. Uz Ubuntu 26.04 LTS viens no aprakstītajiem risinājumiem ir nomainīt GDM3 pret LightDM ar slick-greeter, atstājot pašu darbvirsmas sesiju uz Wayland. Konfigurācijā ieraksta greeter-session=slick-greeter un user-session=ubuntu, pēc pārstartēšanas $XDG_SESSION_TYPE joprojām rāda wayland. Cena par to ir manuāla ekrāna slēgšana. Super+L jāpārsien uz dm-tool lock, bet automātiskā slēgšana pēc dīkstāves pārstāj strādāt.
Otrs apvedceļš ir GNOME Remote Desktop ar funkciju Remote Login, kas atver RDP pieslēgumu portā 3389 vēl pirms grafiskās sesijas. Emuāra edu4rdshl.dev pierakstā tā savienota ar WireGuard tuneli caur VPS par 52 dolāriem gadā, jo Remote Login pats par sevi der lokālam tīklam. Klients pieslēdzas ar Remmina vai Microsoft Remote Desktop uz iekšējo adresi tunelī, piemēram, 10.66.66.2.
RustDesk izstrādātāji pirms noklusējuma ieslēgšanas grib reālu lietotāju atsauksmes. Pagaidām priekšskatījuma pakotne der vienai arhitektūrai un vienai pakotņu saimei.
Avoti
- RustDesk: Unattended Remote Access on Wayland with RustDesk
- GitHub: DRM/KMS capture backend for Linux (rustdesk/rustdesk diskusija #15417)
- Infinite Script: Enable Unattended RustDesk Access on Wayland
- edu4rdshl.dev: Solving the remote, unattended access problem on Wayland
- RustDesk dokumentācija: Linux klients
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.