Cygwin / X e Windows Subsystem para Linux

9

Eu tenho uma instalação do Cygwin em funcionamento no meu dispositivo Windows 10 (um Surface 3, caso isso seja importante), incluindo um ambiente de janelas Xorg em funcionamento. Acabei de começar a experimentar com o Windows Subsystem for Linux também. Parece que o conselho para executar aplicativos GUI do WSL é instalar outro servidor X. Normalmente, o Xming é recomendado, mas não vi nenhuma sugestão de que o Cygwin não deva funcionar.

No entanto, a maneira mais simples falha:

WSL $ export DISPLAY=:0
WSL $ emacs &
Display :0 unavailable, simulating -nw

Eu suspeitava que poderia ser um problema de rede, por causa de

WSL $ telnet localhost 6000
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
WSL $ /sbin/ifconfig
Warning: cannot open /proc/net/dev (No such file or directory). Limited output.
WSL $ # there was no output at all, actually

... mas o ssh para uma máquina remota funciona bem, e aparentemente os Xservers pararam de escutar na porta 6000 desde a última vez que eu depurei um.

Eu tentei executar cygwin $ xhost +localhost , apenas para descobrir que xhost não está atualmente instalado lá. Qual pode ser a próxima coisa a tentar, ou pode ser uma louca perseguição --- xhost (ou pelo menos, uma xhost + nua) foi principalmente desencorajada na última vez que eu depurei um X servidor.

Existe alguma falha fundamental que impede a WSL de usar o servidor Cygwin X? Se não, como devo proceder?

    
por rob 17.02.2017 / 20:37

2 respostas

8

Você precisa dizer ao Cygwin / X para ouvir o TCP, o que ele não faz por padrão. Você faz isso passando a opção -listen tcp para o XLaunch. Quando você faz isso, funciona muito bem. Eu realmente prefiro Cygwin / X para Xming. Mais detalhes em o manual .

Encontre o atalho que você está usando para iniciar o Cygwin / X. (Os atalhos de inicialização por usuário estão em C:\Users\<you>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup , enquanto os atalhos de inicialização em todo o sistema estão em C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp . Abra as "Propriedades" deste link e altere o destino de

C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; exec /usr/bin/startxwin"

para

C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; exec /usr/bin/startxwin -- -listen tcp"

Para o xauth support, você deve copiar ~/.Xauthority do diretório home do seu Cygwin para o diretório home da sua WSL.

Ou, se desejar desativar xauth , você pode editar o /usr/bin/startxwin do Cygwin, alterando a linha apropriada perto do topo para enable_xauth=0 .

    
por 14.03.2017 / 21:06
1

Você precisa iniciar o servidor X com startx . Se você não tiver o X Windows instalado, execute o Cygwin setup.exe e selecione todos os sistemas X Windows e um gerenciador de janelas.

    
por 14.03.2017 / 21:10