Cygwin / X และระบบย่อย Windows สำหรับ Linux


14

ฉันมีการติดตั้ง Cygwin ที่ทำงานบนอุปกรณ์ Windows 10 ของฉัน (Surface 3 ในกรณีที่มีความสำคัญ) รวมถึงสภาพแวดล้อมการทำงานของหน้าต่าง Xorg ฉันเพิ่งเริ่มทดลองกับระบบย่อย Windows สำหรับ Linux เช่นกัน ดูเหมือนว่าคำแนะนำสำหรับการเรียกใช้แอปพลิเคชัน GUI จาก WSL คือการติดตั้งเซิร์ฟเวอร์ X ตัวอื่น โดยปกติแล้วแนะนำให้ใช้ Xming แต่ฉันไม่เห็นคำแนะนำใดที่ Cygwin ไม่ควรใช้

อย่างไรก็ตามวิธีง่าย ๆ ล้มเหลว:

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

ฉันสงสัยว่าอาจเป็นปัญหาเครือข่ายเนื่องจาก

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

... แต่ ssh ไปยังเครื่องรีโมตทำงานได้ดีและเห็นได้ชัดว่า Xservers หยุดฟังพอร์ต 6000 ตั้งแต่ครั้งสุดท้ายที่ฉันดีบั๊ก

ฉันพยายามเรียกใช้cygwin $ xhost +localhostเท่านั้นที่จะค้นพบxhostว่าไม่ได้ติดตั้งอยู่ที่นั่นในปัจจุบัน ซึ่งอาจจะเป็นสิ่งต่อไปที่จะลองหรืออาจจะมีการไล่ล่าห่านป่า --- xhost(หรืออย่างน้อยเปลือยกายxhost +) ถูกท้อแท้ส่วนใหญ่ครั้งสุดท้ายที่ผมบั๊กเซิร์ฟเวอร์ X

มีข้อบกพร่องพื้นฐานที่ทำให้ WSL ไม่สามารถใช้เซิร์ฟเวอร์ Cygwin X ได้หรือไม่? ถ้าไม่ฉันจะดำเนินการอย่างไร


1
เนื่องจากคุณใช้อุปกรณ์ DPI สูง (Surface 3) เคล็ดลับพิเศษนี้อาจเป็นประโยชน์กับคุณ คุณสามารถเพิ่มขนาดตัวอักษรขนาดหน้าต่าง ฯลฯ แสดงโดยการเปลี่ยนแปลงสิ่งที่ CygwinX คิดว่าหน้าจอ DPI คืออะไร แก้ไข/etc/X11/Xresourcesและเปลี่ยนXft.dpiค่าเริ่มต้นจาก 96 จอแสดงผลของคุณควรเป็น 214 DPI ดังนั้นข้อความจะต้องดูค่อนข้างเล็กผ่าน CygwinX ไม่ว่าคุณจะสามารถปรับแต่งค่า DPI นั้นเพื่อเปลี่ยนขนาดตามที่คุณต้องการ (เพียงรีสตาร์ท CygwinX ระหว่างการเปลี่ยนแปลง)
Chris

คำตอบ:


15

คุณต้องบอก Cygwin / X เพื่อฟัง TCP ซึ่งไม่ได้ทำตามค่าเริ่มต้น คุณทำได้โดยส่งตัวเลือก -listen tcpไปที่ XLaunch เมื่อคุณทำเช่นนี้มันทำงานได้ดีจริงๆ ฉันชอบ Cygwin / X มากกว่าไป Xming รายละเอียดเพิ่มเติมในคู่มือการใช้งาน


ค้นหาทางลัดที่คุณใช้เพื่อเริ่ม Cygwin / X (ทางลัดเริ่มต้นสำหรับผู้ใช้แต่ละรายนั้นอยู่ในC:\Users\<you>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupขณะที่มีทางลัดเริ่มต้นระบบทั้งระบบC:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUpเปิด "คุณสมบัติ" ของลิงค์นี้และเปลี่ยนเป้าหมายจาก

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"

สำหรับxauthการสนับสนุนคุณควรคัดลอก~/.Xauthorityจาก dir บ้านของ Cygwin ของคุณไปยัง dir บ้านของ WSL

หรือถ้าคุณต้องการที่จะปิดการใช้งานxauthคุณสามารถแก้ไข Cygwin ของการเปลี่ยนแปลงบรรทัดที่เหมาะสมใกล้ด้านบนเพื่อ/usr/bin/startxwinenable_xauth=0


มันทำงานกับฉันโดยเพิ่ม -listen tcp ลงในฟิลด์ของพาเนลของ XLaunch เมื่อฉันคลิก XLaunch ในเมนู Start ฉันไม่สามารถแก้ไขคุณสมบัติด้วยรายการเมนูเพื่อเปลี่ยนอาร์กิวเมนต์บรรทัดคำสั่ง
Yu Shen

0

startxคุณต้องเริ่มต้นเซิร์ฟเวอร์เอ็กซ์ด้วย หากคุณไม่ได้ติดตั้ง X Windows ให้เรียกใช้ Cygwin setup.exeและเลือกระบบ X Windows ทั้งหมดและตัวจัดการหน้าต่าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.