แม้ว่าจะมีคำถามที่มีอยู่หลายเรื่อง (ซึ่งคำตอบที่เป็นประโยชน์มากที่สุดคือนี้ ) และหัวข้อต่างๆในฟอรั่มอื่น ๆ ที่ฉันไม่สามารถตั้งค่าได้อย่างน่าเชื่อถือของฉันxrandr
การตั้งค่าใน Debian 7 บน VirtualBox
ฉันพยายามที่จะใช้xrandr
เพื่อควบคุมการตั้งค่าการแสดงผลของฉัน (แทนที่จะปล่อยให้สภาพแวดล้อมเดสก์ท็อปของฉันทำการตั้งค่าอัตโนมัติ) เพราะฉันใช้ตัวi3
จัดการหน้าต่างซึ่งไม่ได้ทำการตั้งค่าการแสดงผลอัตโนมัติหรือใช้การตั้งค่าการแสดงผลสภาพแวดล้อมเดสก์ท็อป Gnome
ติดตั้ง:
ฉันไม่แน่ใจว่าสิ่งนี้เกี่ยวข้องโดยเฉพาะอย่างยิ่งสิ่งฮาร์ดแวร์เนื่องจากฉันไม่คิดว่าเดเบียนสามารถเข้าถึงข้อมูลมากมายเกี่ยวกับการตั้งค่าจอภาพ เท่าที่ฉันสามารถบอกได้ VirtualBox เพียงรายงานการมีอยู่ของหน้าจอเสมือนราวกับว่าพวกเขาเป็นจอภาพฮาร์ดแวร์
ฮาร์ดแวร์
- เลอโนโวแล็ปท็อปที่มีกราฟิก nVidia (ไม่ได้ใช้ Intel GPU แบบบูรณาการ, AFAIK - มีการตั้งค่า BIOS ที่ฉันใช้เพื่อทำสิ่งนี้)
- วินโดว 7
- RAM 32GB
- ใช้ล่าสุด (ฉันคิดว่า) ไดรเวอร์ nVidia (340.84) - นี่อาจเป็นเรื่องสำคัญเนื่องจากฉันเปิดใช้งานการเร่งความเร็ว 3 มิติใน VirtualBox (ดูด้านล่าง) ซึ่งฉันคิดว่าอนุญาตให้แขกระบบปฏิบัติการเข้าถึงฮาร์ดแวร์โฮสต์ได้
- Seiki 4K TV (ใช้เป็นมอนิเตอร์) ผ่าน HDMI ผ่านแท่นวาง (ซึ่งแปลง DisplayPort เป็น HDMI ภายใน)
- จอภาพ Samsung SyncMaster 243T หันแนวตั้ง
VirtualBox
- ใช้ VirtualBox 4.3.20
- มีการติดตั้งข้อมูลเพิ่มเติมของผู้เยี่ยมชม (รุ่นเดียวกัน)
- จำนวนการตรวจสอบ: 2 (กำหนดให้กับ Seiki และ SyncMaster เมื่ออยู่ในโหมดเต็มหน้าจอ)
- ใช้หน่วยความจำวิดีโอสูงสุด (128 MB)
- เปิดใช้งานการเร่งความเร็ว 3D
การตั้งค่าแขก
- Debian 32 บิต 7
gnome
และgdm3
มีการติดตั้ง- WM ที่ต้องการคือ
i3
พฤติกรรม:
เมื่อฉันเรียกใช้i3
และสอบถามxrandr
การตั้งค่าการแสดงผลเริ่มต้นจะเหมือนกันเสมอระหว่างVBOX0
และVBOX1
"จอภาพ" สองตัวที่ VirtualBox รายงานไปxrandr
(อย่างน้อยนั่นคือสิ่งที่ฉันเข้าใจ; โปรดทราบว่าเท่าที่ฉันสามารถบอกได้ไม่มีวิธีที่ดีที่จะบอกว่า VBOX # ใดที่จอภาพขาดการลองผิดลองถูก
ปกติแล้วสิ่งนี้จะมีความละเอียด (ถ้าต่ำกว่าเนทิฟเล็กน้อย) ที่เหมาะสมสำหรับ SyncMaster แนวตั้งของฉัน แต่ไม่มีความละเอียด 4K สำหรับ Seiki "การแสดงผลของผู้เข้าพักอัตโนมัติปรับขนาด" ตัวเลือกใน VirtualBox xrandr
ไม่ส่งผลกระทบต่อ
ฉันลองแก้ไขสคริปต์ต่าง ๆ ที่อธิบายไว้ในคำตอบที่ลิงก์ด้านบนแต่โดยทั่วไปแล้วฉันดูเหมือนจะได้รับxrandr
ข้อผิดพลาดต่าง ๆ ฉันไม่พบความสัมพันธ์หลายอย่างระหว่างสิ่งต่าง ๆ ที่ฉันพยายามและข้อผิดพลาดที่ฉันได้รับ แต่นี่คือสิ่งสำคัญที่อาจมีความสำคัญ:
ปรับแต่งสคริปต์
- (โดยปกติ) ข้าม
VBoxService
ขั้นตอนการเริ่มต้นใหม่ (ดูเหมือนจะไม่เปลี่ยนxrandr
พฤติกรรม) - ใช้
xrandr --fb
ตัวเลือกก่อนxrandr
คำสั่งอื่น ๆ บางครั้งอาจส่งผลให้เกิดข้อผิดพลาด "หน้าจอที่ระบุไม่ใหญ่พอ" ด้านล่าง - ใช้ 30 fps แทน 60 (4K ผ่าน HDMI ปัจจุบันคือ 30fps สูงสุด แต่ฉันไม่คิดว่ามันจะสำคัญใน VirtualBox ไม่ว่าในกรณีใดฉันคิดว่าบางครั้งฉันก็ใช้งานได้และบางครั้งก็ล้มเหลวทั้งสองวิธี)
- ใช้
cvt
แทนgtf
(สิ่งเหล่านี้ดูเหมือนจะทำงานในลักษณะเดียวกัน) - แทนที่หมายเลขแรกที่ได้รับจาก
gtf
(ซึ่งมักจะประมาณ 200 หรือ 300) ด้วยจำนวนที่น้อยกว่าเช่น100.00
(ฉันคิดว่านี่ใช้งานได้หนึ่งหรือสองครั้งในบรรทัดคำสั่ง แต่โดยทั่วไปแล้วจะไม่สร้างความแตกต่าง) - สุ่มชื่อโหมดใหม่โดยใช้
$RANDOM
(ฉันได้ลองใช้วิธีอื่น ๆ ในการเล่นซอกับชื่อ) --rmmode
โหมดอย่างชัดแจ้งก่อนสร้างโดยใช้--newmode
(จะปรากฏเพื่อป้องกันข้อผิดพลาด "แบบอักษร" ที่แสดงด้านล่าง)- ใช้
--right-of
หรือ--left-of
เมื่อตั้งค่า--output
s (เนื่องจากหน้าจอมักจะถูกมิเรอร์ตามค่าเริ่มต้น)
ข้อความผิดพลาด
xrandr: specified screen 5120x2160 not large enough for output VBOX0 (3840x2160+3840+0) X Error of failed request: BadValue (integer parameter out of range for operation)
ฉันได้รับหนึ่งในตอนนี้เมื่อเรียกใช้สคริปต์อีกครั้งหลังจากที่หน้าจอได้ถูกบังคับให้ใช้ความละเอียดที่เหมาะสมแล้ว (โดยใช้วิธีแก้ไขปัญหาที่อธิบายไว้ในส่วนถัดไป) สิ่งนี้ทำให้ฉันประหลาดใจเพราะxrandr
รายงานสิ่งต่อไปนี้:Screen 0: minimum 64 x 64, current 5120 x 2160, maximum 16384 x 16384
X Error of failed request: BadMatch (invalid parameter attributes)
--newmode
ซึ่งบางครั้งอาจจะเกิดขึ้นเมื่อพยายามที่จะทำ อาจเป็นสาเหตุที่พบบ่อยที่สุดอันดับสองสำหรับสคริปต์ที่จะล้มเหลว ฉันคิดว่ามันอาจจะเกิดจากxrandr
"ความทรงจำ" ชื่อของโหมดจากความพยายามก่อนหน้านี้ที่จะตั้งขึ้น แต่ใช้$RANDOM
ไม่ได้ปรากฏขึ้นอย่างต่อเนื่องในการแก้ปัญหาดังนั้นจึงอาจจะมีบางปัญหาอื่น ๆ (ฉันคิดว่าเป็นไปได้ว่าแม้จะ$RANDOM
มีการชนกันของชื่ออยู่ก็ตาม) ฉันไม่เคยเห็นข้อผิดพลาดนี้ตั้งแต่ฉันเริ่มใช้--rmmode
แต่ฉันไม่ได้เรียกใช้สคริปต์นานพอตั้งแต่เพิ่มคำสั่งเพื่อให้แน่ใจว่ามันสร้างความแตกต่างให้กับ พฤติกรรม.X Error of failed request: BadMatch (invalid parameter attributes)
--addmode
ซึ่งบางครั้งอาจจะเกิดขึ้นเมื่อพยายามที่จะทำ อาจเป็นสาเหตุที่พบบ่อยที่สุดสำหรับสคริปต์ที่จะล้มเหลวและมันทำให้ฉันประหลาดใจ บางครั้งด้วยตนเอง (เช่นในเทอร์มินัล) ดำเนินการตามลำดับของคำสั่งที่ใช้โดยสคริปต์ดูเหมือนว่าจะเป็นวิธีแก้ปัญหาที่ทำงานได้สำหรับข้อผิดพลาดนี้ซึ่งเป็นที่แปลกประหลาด
วิธีแก้ปัญหาของ Gnome:
ฉันได้พบว่าถ้าฉันเข้าสู่ระบบเดสก์ทอป Gnome แล้วดำเนินการ VirtualBox ของ "จอแสดงผลของผู้เข้าพักอัตโนมัติปรับขนาด" ฟังก์ชั่นนั้นออกจากระบบและกลับไปอยู่กับi3
, xrandr
มักจะมีความละเอียดถูกต้องสำหรับทั้ง Seiki และ SyncMaster ในของมันสร้างขึ้นโดยอัตโนมัติ รายการโหมดและความละเอียด 4K ถูกตั้งค่าเป็นความละเอียด "ที่ต้องการ" สำหรับแต่ละหน้าจอ VBOX สิ่งนี้ทำให้ฉันสามารถใช้งานได้อย่างง่ายดายxrandr --output [4K VBOX] --auto --left-of [SyncMaster VBOX]
ตามด้วยxrandr --output [SyncMaster VBOX] --mode [SyncMaster resolution]
(โปรดทราบว่าความละเอียด SyncMaster ยังคงต้องระบุด้วยตนเองเนื่องจากxrandr
รายงานการแก้ปัญหาที่ต้องการเหมือนกันสำหรับทั้งสอง VBOX#
โดยไม่คำนึงถึงความจริงหรือสติ)
วิธีแก้ปัญหานี้เมื่อดำเนินการเห็นได้ชัดว่ายังคงมีอยู่ในการปิดและรีบูต (นั่นคือโหมดที่ต้องการยังคงอยู่ในxrandr
รายการโหมดของแม้ว่าฉันยังคงต้องเรียกใช้สองxrandr
คำสั่งหลังจากเริ่มi3
เซสชัน) แต่ไม่คงอยู่เสมอเมื่อเพียง ออกจากระบบและเริ่มi3
เซสชันใหม่ โปรดทราบว่าgdm3
หน้าจอเข้าสู่ระบบจะไม่มีความละเอียดที่ถูกต้อง (เท่าที่ฉันเคยเห็น) ฉันไม่มีความคิดเห็นเพิ่มเติมเกี่ยวกับความแปลกที่เกิดขึ้นที่นี่
แก้ไข:วิธีนี้ดูเหมือนจะไม่สามารถเขียนสคริปต์ได้และพฤติกรรมที่ดูเหมือนจะไม่สอดคล้องกัน
หมายเหตุอื่น ๆ :
- ฉันไม่มี
xconf
ไฟล์ (หรือคล้ายกัน) ในetc/X11
dir ของฉัน - การแก้ไขจอแสดงผลเป็นปัญหาที่พบได้บ่อยเพราะเมื่อใดก็ตามที่ฉันปิดจอภาพหนึ่งจอ VirtualBox จะฆ่าจอภาพเสมือนจริงแบบเต็มจอหนึ่งจอ (Urgh.)
คำถาม:
- มีวิธีใดบ้างที่จะแยกความแตกต่างระหว่างความสามารถของฮาร์ดแวร์ตามจริงโดยทางโปรแกรม (เช่นความละเอียดดั้งเดิม) ของจอภาพที่แตกต่างจากภายใน VirtualBox?
- เหตุใดฉันจึงเห็นข้อผิดพลาดต่างๆเหล่านี้ เกิดอะไรขึ้นกับ
xrandr
ฯลฯ ? - มีวิธีใดที่จะสามารถบรรลุความละเอียดเต็มหน้าจอที่ถูกต้องโดยไม่ต้องให้ฉันเริ่ม
gnome
เซสชันก่อนi3
เซสชันของฉันหรือไม่
อาจเกี่ยวข้องกับปัญหา
- ตัวชี้เมาส์ของฉันไม่ได้เรียงแถวอย่างถูกต้องกับตำแหน่งที่ตรวจพบการคลิก การคลิกมักจะเกิดขึ้นด้านล่างและด้านขวาของตัวชี้ เมื่อฉันกำหนดค่าหน้าจออย่างถูกต้องแล้วปัญหานี้มักจะหายไปแม้ว่าหน้าจอปัจจุบันจะมีความละเอียดที่ถูกต้อง แต่ตัวชี้ยังคงปิดอยู่เล็กน้อย
- เมื่อฉันจัดการเพื่อให้ได้ความละเอียดที่ถูกต้องหน้าจอจะกะพริบเป็นบางครั้ง มันน่ารำคาญ แต่น่าอยู่ มีความคิดอะไรที่ทำให้เกิดหรือถ้ามันสามารถแก้ไขได้?
xrandr
ข้อผิดพลาดแปลก ๆอยู่เรื่อย ๆ
.xinitrc
และใช้startx
? ผมใช้ xmonad (ซึ่งที่ผมเข้าใจคล้ายกับ i3?) startx
ซึ่งผมเปิดใช้ การxrandr
เขียนสคริปต์ของฉันเสร็จสิ้น.xinit
ก่อนที่จะเปิดตัวจัดการหน้าต่าง ฉันมีผลลัพธ์ที่ยอดเยี่ยมเช่นนั้น X พร้อมที่จะไปและไม่มีอะไรรบกวนการเปิดตัว
gdm3
และได้i3
เลือกให้เป็นสภาพแวดล้อมเดสก์ท็อปเริ่มต้นสำหรับบัญชีของฉัน
xrandr --query
(a) เมื่อตรวจพบการตั้งค่าที่ไม่ถูกต้องและ (b) หลังจากที่คุณได้รับทุกสิ่งที่ทำงานอย่างถูกต้องหรือไม่ หรืออย่างน้อยหนึ่งอย่างจากทุกอย่างทำงานอย่างถูกต้อง