Se você já está executando um servidor X no Windows (como você está com o Xming), o lado do Windows está praticamente concluído (mas veja abaixo alguns detalhes importantes). O ponto principal restante é dizer aos aplicativos X11 no pi para enviar os dados X11 para o seu PC com Windows.
Isso é feito através da DISPLAY
variável de ambiente. Normalmente, se o servidor e o aplicativo X estiverem sendo executados no mesmo computador, o DISPLAY apenas especificará o número do servidor (por exemplo, :0
se você estiver executando apenas um servidor X) ou talvez um servidor e uma tela (por exemplo :0.0
). Como não há endereço IP, isso informa à biblioteca X dos aplicativos que o servidor é local e as conexões serão feitas de acordo (provavelmente através de algum tipo de transporte de memória compartilhada).
Para instruir o aplicativo a enviar dados X11 para um nó remoto, inclua um endereço IP na DISPLAY
variável. Por exemplo export DISPLAY=192.168.1.10:0
,. Isso informará aos aplicativos X11 que eles precisam abrir uma conexão TCP com o servidor X # 0 no nó 192.168.1.10. Os nomes de host DNS estão ótimos aqui, se você os tiver em sua rede.
Dois problemas em potencial
Como escrevi no primeiro parágrafo, simplesmente executar o Xming pode não ser suficiente. Pode haver configuração adicional necessária.
A primeira é que o servidor X11 deve ser configurado para aceitar conexões de nós remotos via TCP. Muitos servidores X distribuídos hoje (não conheço o Xming) só aceitam conexões de aplicativos em execução local, a menos que você os configure explicitamente. Esse é um recurso de segurança, pois cada soquete aberto é um vetor em potencial para ataque.
A segunda é que o servidor X11 mantém um banco de dados de hosts / usuários com permissão para se conectar. Você precisa colocar na lista branca o endereço IP do seu Raspberry Pi. Você pode fazer isso executando o xhost
comando do Xming no Windows, por exemplo, em um console executando um xterm. Você também pode digitar xhost +
para desativar essa verificação de segurança, mas isso é perigoso, pois permitirá que qualquer aplicativo de qualquer lugar do mundo abra conexões com o seu monitor. Se você usa um firewall em uma LAN em que confia em todos (por exemplo, em sua própria casa), essa é a abordagem mais fácil, mas reserve um tempo para configurar corretamente, xhost
caso não esteja.
Alternativo: ssh -Y
Usando a abordagem acima, todos os seus aplicativos X11 tentarão abrir conexões TCP com o servidor X. Essas conexões não são seguras. Alguém nos pacotes de espionagem da LAN pode interceptá-los.
Para resolver esse problema, em vez de definir a variável DISPLAY no Raspberry pi, use o -Y
parâmetro ao conectar-se a ela (por exemplo slogin -Y hostname
). O parâmetro -Y (como -X) criará um túnel entre os nós para transportar tráfego X11. Isso manterá o tráfego X11 criptografado e seguro. Ele também atribuirá sua própria variável de ambiente DISPLAY para que os aplicativos usem o túnel. Também pode eliminar a necessidade de mexer, xhost
pois (no que diz respeito ao servidor X) as conexões são originárias localmente (do lado de origem do túnel SSH).