Cygwin บน Windows: ไม่สามารถเปิดจอแสดงผล


25

ฉันใช้งาน Windows 10 บน Surface Pro 3 ฉันติดตั้ง Cygwin และเพิ่มแพ็คเกจที่มีประโยชน์ (gvim, nedit, emacs, vim, g ++) อย่างไรก็ตามเมื่อฉันเรียกใช้ gvim ฉันได้รับ "ไม่สามารถเปิดจอแสดงผล" สิ่งเดียวกันเกิดขึ้นกับ nedit เมื่อฉันทำ echo $ DISPLAY ฉันไม่พบอะไรเลยดังนั้นฉันจึงตั้งค่า DISPLAY เป็น: 0.0 ฉันยังคงได้รับ "ไม่สามารถเปิดจอแสดงผล" ฉันพยายามลบ cygwin และติดตั้งใหม่ แต่ฉันพบปัญหาเดียวกัน


1
ดูเหมือนว่าเซิร์ฟเวอร์ X11 จะไม่ทำงาน คุณทำงานผ่านขั้นตอนต่างๆที่x.cygwin.com แล้วหรือยัง?
thrig

ให้ฉันอธิบายด้วยว่าฉันใช้ Cygwin บนเครื่องของฉันซึ่งฉันเป็นผู้ดูแลระบบ ใช่ฉันติดตั้งแพ็คเกจ x11 แล้วและดูปัญหา x11 แต่นั่นไม่ได้แก้ปัญหา
จอห์น

คำตอบ:


24

โปรแกรม Unix GUI แสดงผ่านเซิร์ฟเวอร์เอ็กซ์ Cygwin ไม่เริ่มเซิร์ฟเวอร์ X โดยอัตโนมัติ คุณจำเป็นต้องติดตั้งแพคเกจxorg-serverและxinitและเรียกใช้startxwin


4
ตั้งแต่วันที่ 2017/01 มีการรวม startxwin ไว้ในแพ็คเกจ xinit
David Ljung Madison Stellar

8

ที่มา: CygwinX คำถามที่พบบ่อย :

ตั้งแต่ X server 1.17 โดยค่าเริ่มต้นเซิร์ฟเวอร์จะไม่ฟังการเชื่อมต่อ TCP / IP เพียงยอมรับการเชื่อมต่อในเครื่องบนซ็อกเก็ตโดเมน unix สำหรับลูกค้าในประเทศใช้DISPLAY=:0.0มากกว่าDISPLAY=localhost:0.0, DISPLAY=127.0.0.1:0.0, DISPLAY=::1:0.0ฯลฯ

ถ้ามันไม่ทำงาน (ถ้าคุณกำลังเชื่อมต่อจากระยะไกล): ใช้-listen tcpตัวเลือกเพื่อเรียกคืนพฤติกรรมก่อนหน้าการอนุญาตให้เซิร์ฟเวอร์ X เปิดซ็อกเก็ต TCP / IP เช่นกัน

startxwin -- -listen tcp

สุดท้ายอย่าลืมเรียกใช้xhost +ในเทอร์มินัล Cygwin


4

สิ่งที่ช่วยฉันเปลี่ยนแปลง

DISPLAY=:0.0 <mycommand>

ไปยัง

DISPLAY=localhost:0.0 <mycommand>

แปลกทำงานในท้องถิ่นหลังจากติดตั้งแพคเกจทั้งหมดและทำงานครั้งแรก xlaunch ด้วยจอแสดงผลเริ่มต้น (0) คำสั่งต่อไปนี้ใช้งานได้สำหรับฉัน: DISPLAY =: 0.0 gimp
theRiley

2

นอกจากนี้คุณยังสามารถใช้XLaunch / Xming

  • เปิด XLaunch เลือก "Multiple Windows" และกำหนดหมายเลขที่แสดง (ไม่สำคัญ)
  • ใน export DISPLAY=[whatever your XLaunch Display number is]Cygwin,
  • เปิดโปรแกรมของคุณด้วย gvim &

1

ฉันทำให้มันทำงานได้อย่างไร:

  • ติดตั้งแพคเกจและxorg-serverxinit
  • รันคำสั่งนี้ในหน้าต่างเชลล์ Cygwin:

    startxwin

    DISPLAY=localhost:0.0 xterm

อย่างไรก็ตามตามจริงแล้วค่าเริ่มต้นของ CygWin นั้นดีกว่า XTerm ดังนั้นฉันจึงใช้มันต่อไป


-2

เพียงส่งออก

ส่งออก DISPLAY = localhost: 0.0

เพื่อเพิ่มความคงทนให้กับ. bash_profile ของคุณ

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