web-dev-qa-db-fra.com

Sous-système Cygwin / X et Windows pour Linux

J'ai une installation Cygwin qui fonctionne sur mon appareil Windows 10 (une Surface 3, le cas échéant), y compris un environnement de travail Xorg en état de fonctionnement. Je viens tout juste de commencer à expérimenter avec le sous-système Windows pour Linux. Il semble que le conseil pour l'exécution d'applications GUI à partir de WSL est d'installer un autre serveur X. Habituellement, Xming est recommandé, mais je n'ai vu aucune suggestion selon laquelle Cygwin ne devrait pas fonctionner.

Cependant, le moyen simple échoue:

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

Je soupçonnais que cela pouvait être un problème de réseau, à cause 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

... mais ssh sur une machine distante fonctionne bien, et apparemment, les serveurs X ont cessé d’écouter sur le port 6000 depuis le dernier débogage.

J'ai essayé d'exécuter cygwin $ xhost +localhost, seulement pour découvrir que xhost n'y est pas installé actuellement. Ce qui pourrait être la prochaine chose à essayer, ou pourrait être une poursuite féroce… xhost (ou au moins, un xhost + nu) était surtout découragé la dernière fois que j'ai débogué un serveur X.

Existe-t-il une faille fondamentale empêchant WSL d’utiliser le serveur Cygwin X? Si non, comment vais-je procéder?

12
rob

Vous devez dire à Cygwin/X d’écouter le protocole TCP, ce qu’il ne fait pas par défaut. Pour ce faire, vous transmettez l’option -listen tcp à XLaunch. Lorsque vous faites cela, cela fonctionne vraiment bien. Je préfère réellement Cygwin/X à Xming. Plus de détails dans le manuel .


Recherchez le raccourci que vous utilisez pour démarrer Cygwin/X. (Les raccourcis de démarrage par utilisateur se trouvent dans C:\Users\<you>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup, alors que les raccourcis de démarrage du système sont dans C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp. Ouvrez les "Propriétés" de ce lien et modifiez la cible de

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

à

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

Pour la prise en charge de xauthname__, vous devez copier ~/.Xauthority de votre répertoire personnel Cygwin vers le répertoire personnel de votre WSL.

Ou, si vous souhaitez désactiver xauthname__, vous pouvez modifier le /usr/bin/startxwin de Cygwin, en modifiant la ligne appropriée en haut à enable_xauth=0.

11
Markus Hartikainen

Vous devez démarrer le serveur X avec startx. Si X Windows n'est pas installé, exécutez Cygwin setup.exe et sélectionnez tous les systèmes X Windows et un gestionnaire de fenêtres.

1
Chloe