Acesso Remoto com Rustdesk sem GPU

Fala pessoal,

Estou querendo fazer um servidor caseiro com interface gráfica ativa via acesso remoto. E tenho intenção de acessar ele de fora de casa também. Como minha placa de vídeo é muito ruidosa, eu retirei ela. Porém verifiquei que o KDE não subiu. Creio que por estar condicionado ao serviço do sddm, que por sua vez está condicionado a presença do hardware.

Eu estava utilizando o TeamViewer, porém quero utilizar o Rustdesk. Alguém sabe como fazer para ativar o KDE sem que o hardware de vídeo esteja plugado?

Uso um Xeon 2680 V4, GTX 1650 (que quero remover) e uma placa mãe dessas genéricas chinesas (Machinist B9-X99).

Encontrei alguns videos aqui no canal, mas não achei profundo o suficiente para ajudar neste tópico. IA, ainda não!

Obs: estou usando Kubuntu 24.04 LTS e a porta 22 está disponível (LISTEN). SSH já está funcionando, mas queria ambiente gráfico ativo para usar Rustdesk.

Cheguei a uma solução… quebrei um pouco a cabeça, mas foi legal para aprender algumas coisas e superar meu próprio conhecimento.

Como eu suspeitava, os serviços em no Kubuntu são chamados após o sddm. O sddm por sua vez está condicionado a entrada de gráfico. E o carregamento do servidor X11 está condicionado a presença de um hardware de vídeo.

Então eu não conseguia carregar o Rustdesk, pois o sddm não entrava, pois o X11 não estava ativo, pois não havia hardware de video.

Segui o seguinte roteiro:

  • Login no sistema independente do SDDM (sudo systemctl set-default multi-user.target), o padrão é (sudo systemctl set-default graphical.target);

  • A partir do comando acima, o sistema iniciará sem que haja uma interface gráfica, então serviços podem ser iniciados. Incluí o serviço do SSH com (sudo systemctl enable ssh);

  • Eu precisava de uma rotina para verificar se GPU está ativa, que chamei de start-sddm-if-gpu.sh. Aqui eu usei IA para chegar a um script que usa (compgen -G). Este comando detecta padrões e foi capaz de procurar se havia algum driver de kernel em uso em /dev/dri. Após este passo, uma variável, inicializada com “0” receberia “1” caso alguma saída gráfica seja detectada em um arquivo de status do driver através de (if grep -qx "connected" "$status_file").

  • Então testo, se “1” para iniciar o sddm com systemctl start sddm.

  • Criei então o o serviço para o systemd que sobe o script que detecta se há GPU e saída de vídeo ativa, com:

[Unit]
Description=Inicia o SDDM automaticamente se houver GPU e saída de vídeo
After=multi-user.target
Wants=multi-user.target
ConditionPathExists=/usr/local/sbin/start-sddm-if-gpu.sh

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/start-sddm-if-gpu.sh
RemainAfterExit=no
TimeoutStartSec=15

[Install]
WantedBy=multi-user.target
  • Daí chamo o Rustdesk com sudo systemctl enable rustdesk se houver GPU.

Ainda estou vendo como fazer um display virtual caso não haja GPU ativa, porém não está sendo trivial. Como uso KDE (muuuito dependente de GPU), ainda não consegui “não travar” o sistema para iniciar um display virtual :zany_face:. Até consegui compatibilidade parcialmente estragada instalando o XFCE por cima, mas o KDE ficou horrível depois disso :sweat_smile:

Bem echo $STATUS~$ almost there... rsrsrsrsrs

Este tópico foi fechado automaticamente 3 dias depois da última resposta. Novas respostas não são mais permitidas.