การนั่งบนคอมพิวเตอร์เครื่องเดียวกันและทำจากเทอร์มินัลเสมือนที่แตกต่างจากเซิร์ฟเวอร์ X ที่กำลังทำงานไม่ทำงาน
Q-108:ฉันใช้ Linux Virtual Terminals (VT) เพื่อใช้ 'การสลับผู้ใช้อย่างรวดเร็ว' ระหว่างเซสชันของผู้ใช้ (เช่น Betty อยู่บน Ctrl-Alt-F7, Bobby อยู่ที่ Ctrl-Alt-F8 และ Sid อยู่ใน Ctrl-Alt -F1: พวกเขาใช้การกดแป้นพิมพ์เหล่านั้นเพื่อสลับระหว่างเซสชันของพวกเขา) ทำไมมุมมองใน VNC วิวเวอร์ที่เชื่อมต่อกับ x11vnc มีสีดำสนิทไม่อัปเดตหรือพิกเซลเลอะเลือนเว้นแต่เซสชั่น X X11vnc เชื่อมต่ออยู่ใน ใช้งาน VT?
ดูเหมือนว่าจะเกี่ยวข้องกับแอปพลิเคชัน (กระบวนการเซิร์ฟเวอร์ X ในกรณีนี้) ต้อง "เล่นอย่างดี" หากไม่ได้อยู่ใน VT ที่ใช้งานอยู่ (บางครั้งเรียกว่า VC สำหรับคอนโซลเสมือน) นั่นคือพวกเขาไม่ควรอ่านจากแป้นพิมพ์ หรือเมาส์หรือจัดการการแสดงผลวิดีโอเว้นแต่ว่าพวกเขาจะมี VT ที่ใช้งานอยู่ เนื่องจากปรากฏว่าการเรียก XGetImage () จะต้องดึงข้อมูล framebuffer จากฮาร์ดแวร์วิดีโอในท้ายที่สุดมันจะทำให้การโพลของ x11vnc ไม่สามารถทำงานได้เว้นแต่ว่าเซสชัน X จะมีการควบคุม VT อย่างแข็งขัน
ดูเหมือนจะไม่มีวิธีง่ายๆในการแก้ไขปัญหานี้ แม้แต่ xwd (1) ก็ไม่สามารถใช้งานได้ในกรณีนี้ (ลองใช้งาน) สิ่งที่ต้องทำในระดับที่ต่ำกว่ากล่าวในเซิร์ฟเวอร์ XFree86 / Xorg X นอกจากนี้การใช้ Shadow Framebuffer (สำเนาของ framebuffer วิดีโอจะถูกเก็บไว้ในหน่วยความจำหลัก) ไม่ปรากฏขึ้นเพื่อแก้ไขปัญหา (ตรวจสอบล่าสุด 2007)
หากไม่มีใครนั่งอยู่ที่เวิร์กสเตชันและคุณต้องการสลับ VT จากระยะไกลไปเป็น VT ที่เกี่ยวข้องกับเซสชัน X ของคุณ (เพื่อให้ x11vnc สำรวจความคิดเห็นได้อย่างถูกต้อง) คุณสามารถใช้คำสั่ง chvt (1) เช่น "chvt 7" สำหรับ VT # 7