วิธีการตรวจจับและกำหนดค่าเอาต์พุตด้วย xrandr?


33

ฉันมีจอแสดงผล DELL U2410 เชื่อมต่อกับเดสก์ท็อป Compaq 100B ที่ติดตั้งการ์ดกราฟิก AMD / ATI (AMD E-350) O / S ที่ติดตั้งคือ Ubuntu 10.04 LTS

คอมพิวเตอร์เชื่อมต่อกับจอภาพผ่านการเชื่อมต่อ DVI

ปัญหาคือฉันไม่สามารถตั้งค่าความละเอียดของเดสก์ท็อปเป็นเนทีฟ 1920x1200 ได้ ความละเอียดสูงสุดที่อนุญาตคือ 1600x1200

ทำวิจัยบางอย่างที่ฉันพบเกี่ยวกับxrandrโปรแกรมอรรถประโยชน์ น่าเสียดายที่เมื่อพยายามใช้มันฉันไม่สามารถกำหนดค่าให้เป็นความละเอียดที่ต้องการได้ อันดับแรกจะไม่รายงานชื่อเอาต์พุต (ซึ่งควรจะเป็นDVI-0) โดยพูดdefaultแทน หากไม่มีมันฉันไม่สามารถใช้--fbตัวเลือก

ยูทิลิตี้ EDID ดูเหมือนจะระบุจอภาพได้ดี นี่คือผลลัพธ์จากget-edid:

    # EDID version 1 revision 3
Section "Monitor"
    # Block type: 2:0 3:ff
    # Block type: 2:0 3:fc
    Identifier "DELL U2410"
    VendorName "DEL"
    ModelName "DELL U2410"
    # Block type: 2:0 3:ff
    # Block type: 2:0 3:fc
    # Block type: 2:0 3:fd
    HorizSync 30-81
    VertRefresh 56-76
    # Max dot clock (video bandwidth) 170 MHz
    # DPMS capabilities: Active off:yes  Suspend:yes  Standby:yes

    Mode    "1920x1200" # vfreq 59.950Hz, hfreq 74.038kHz
        DotClock    154.000000
        HTimings    1920 1968 2000 2080
        VTimings    1200 1203 1209 1235
        Flags   "-HSync" "+VSync"
    EndMode
    # Block type: 2:0 3:ff
    # Block type: 2:0 3:fc
    # Block type: 2:0 3:fd
EndSection

แต่xrandr -qคำสั่งจะคืนค่า:

Screen 0: minimum 640 x 400, current 1600 x 1200, maximum 1600 x 1200
default connected 1600x1200+0+0 0mm x 0mm
   1600x1200       0.0* 
   1280x1024       0.0  
   1152x864        0.0  
   1024x768        0.0  
   800x600         0.0  
   640x480         0.0  
   720x400         0.0  

เมื่อฉันพยายามตั้งความละเอียดฉันจะได้รับ:

$ xrandr --fb 1920x1200
xrandr: screen cannot be larger than 1600x1200 (desired size 1920x1200)

$ xrandr --output DVI-0 --auto
warning: output DVI-0 not found; ignoring

ฉันจะตั้งความละเอียดของหน้าจอเป็น 1920x1200 ได้อย่างไร เหตุใดจึงไม่xrandrระบุDVI-0ผลลัพธ์

โปรดทราบว่าคอมพิวเตอร์เครื่องเดียวกันที่ใช้ Ubuntu รุ่นที่สูงกว่า 10.04 ตรวจพบความละเอียดที่ถูกต้องโดยไม่มีปัญหา ในเครื่องนี้ฉันไม่สามารถอัพเกรดได้เนื่องจากปัญหาความเข้ากันได้ของฮาร์ดแวร์รุ่นเก่า

นอกจากนี้ฉันไม่เห็นไดรเวอร์หน้าจอเสริมใด ๆ ที่มีอยู่ในกล่องโต้ตอบไดรเวอร์ฮาร์ดแวร์

----

อัปเดต :

ตามคำตอบของคำถามนี้ฉันได้รับล่วงหน้า ตอนนี้โหมดที่ต้องการแสดงอยู่ในxrandr -qรายการ แต่ฉันไม่สามารถเปลี่ยนเป็นโหมดนั้นได้ เมื่อใช้แอปเพล็ตมอนิเตอร์ (ซึ่งตอนนี้แสดงโหมดใหม่) ฉันได้รับคำตอบว่า:

The selected configuration for displays could not be applied. Could not set the configuration to CRTC 262.

จากบรรทัดคำสั่งดูเหมือนว่านี้:

$ cvt 1920 1200 60
# 1920x1200 59.88 Hz (CVT 2.30MA) hsync: 74.56 kHz; pclk: 193.25 MHz
Modeline "1920x1200_60.00"  193.25  1920 2056 2256 2592  1200 1203 1209 1245 -hsync +vsync

$ xrandr --newmode "1920x1200_60.00"  193.25  1920 2056 2256 2592  1200 1203 1209 1245 -hsync +vsync

$ xrandr -q
Screen 0: minimum 640 x 400, current 1600 x 1200, maximum 1600 x 1200
default connected 1600x1200+0+0 0mm x 0mm
   1600x1200       0.0* 
   1280x1024       0.0  
   1152x864        0.0  
   1024x768        0.0  
   800x600         0.0  
   640x480         0.0  
   720x400         0.0  
  1920x1200_60.00 (0x120)  193.0MHz
        h: width  1920 start 2056 end 2256 total 2592 skew    0 clock   74.5KHz
        v: height 1200 start 1203 end 1209 total 1245           clock   59.8Hz

$ xrandr --addmode default 1920x1200_60.00

$ xrandr -q
Screen 0: minimum 640 x 400, current 1600 x 1200, maximum 1600 x 1200
default connected 1600x1200+0+0 0mm x 0mm
   1600x1200       0.0* 
   1280x1024       0.0  
   1152x864        0.0  
   1024x768        0.0  
   800x600         0.0  
   640x480         0.0  
   720x400         0.0  
   1920x1200_60.00   59.8  

$ xrandr --output default --mode 1920x1200_60.00
xrandr: Configure crtc 0 failed

ข้อมูลอีกชิ้นหนึ่ง (หากช่วยคนอื่น):

$ sudo lshw -c video
  *-display UNCLAIMED     
       description: VGA compatible controller
       product: ATI Technologies Inc
       vendor: ATI Technologies Inc
       physical id: 1
       bus info: pci@0000:00:01.0
       version: 00
       width: 32 bits
       clock: 33MHz
       capabilities: pm pciexpress msi bus_master cap_list
       configuration: latency=0
       resources: memory:c0000000-cfffffff(prefetchable) ioport:f000(size=256) memory:feb00000-feb3ffff

----

ปรับปรุง 2 : นี่คือรายการที่อัปเดตlshw:

$ sudo lshw -numeric -c video
  *-display UNCLAIMED     
       description: VGA compatible controller
       product: ATI Technologies Inc [1002:9802]
       vendor: ATI Technologies Inc [1002]
       physical id: 1
       bus info: pci@0000:00:01.0
       version: 00
       width: 32 bits
       clock: 33MHz
       capabilities: pm pciexpress msi bus_master cap_list
       configuration: latency=0
       resources: memory:c0000000-cfffffff(prefetchable) ioport:f000(size=256) memory:feb00000-feb3ffff

หากฉันตรวจสอบอย่างถูกต้องคุณมี LED Monitor - แต่ซอฟต์แวร์ "xrandr" ของคุณต้องการกำหนดค่า "crtc" - ซึ่งเป็น Cathode Monitor ฉันไม่ทราบว่าต้องทำอะไรในตอนนี้ - แต่บางทีคุณอาจพบว่ามีการตั้งค่าบางอย่างที่คุณสามารถเปลี่ยนได้เพื่อที่จะได้ลองพูดคุยกับจอภาพ LED ของคุณ หวังว่านี่จะช่วยได้เล็กน้อย ขอโทษ
Peterling

@Peterling - ฉันสังเกตเห็นว่านี่เป็นข้อความที่เกิดขึ้นเป็นประจำสำหรับการรายงานข้อผิดพลาดอื่น ๆ แต่เป็นความจริงว่ามันแปลก ฉันไม่รู้ว่าจะทำอย่างไรกับเรื่องนี้
ysap

1
ตอนนี้ "crtc" เป็นเพียงคำศัพท์ พิกเซลยังคงมีสัญญาณนาฬิกาในเส้นและพิกเซลและ crtc เป็นกลไกนาฬิกาในตรรกะวิดีโอที่สร้างเวลาที่ถูกต้องสำหรับความละเอียดบางอย่าง เมื่อคำนี้ถูกนำเสนอ "crtc" เป็นวงจรรวมที่เกิดขึ้นจริงของแต่ละบุคคลและการแสดงผลอาจเป็น CRT เท่านั้น
John S Gruber

คุณใช้ไดรเวอร์วิดีโอรุ่นใด
John S Gruber

@JohnSGruber - คุณบอกได้ยังไง?
ysap

คำตอบ:


9

ฉันคิดว่าคุณจะได้รับที่ไหนสักแห่งเมื่อคุณได้รับสิ่งนี้เพื่อเพิ่ม:

หน้าจอ 0: ต่ำสุด 640 x 400, ปัจจุบัน 1600 x 1200, สูงสุด 1600 x 1200    
                                                  ⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑
 

จากนั้นฉันคิดว่าคุณจะสามารถรับ xrandr เพื่อใช้โหมดกำหนดเองที่คุณได้เรียนรู้วิธีกำหนด (ถ้าคุณยังคงต้องการหลังจากแก้ไขปัญหาพื้นฐาน)

เพิ่มขนาดหน้าจอเสมือน

[สิ่งนี้] [1] บทความแนะนำให้เพิ่มสายเสมือนในส่วนหน้าจอของไฟล์กำหนดค่า xorg.conf เพื่อกำหนดขนาดหน้าจอสูงสุด มาจากสองสามปีที่ผ่านมา เมื่อทดสอบสิ่งนี้ฉันไม่สามารถตั้งค่าสายเสมือนให้ผ่านขนาดหน้าจอสูงสุดที่กำหนดได้xrandr -qอย่างไรก็ตาม ด้วยไดรเวอร์และฮาร์ดแวร์ของฉันค่านั้นเป็น 8192x8192 ที่ค่อนข้างใหญ่อยู่แล้ว

คุณสามารถทดลองโดยเพิ่มสิ่งนี้เป็น /etc/X11/xorg.conf ตัวอย่างเช่น:

ส่วน "หน้าจอ"
    ตัวระบุ "My Screen"
    ส่วนย่อย "แสดงผล"
        เสมือน 2048 2048
    EndSubSection
EndSection

คุณอาจไม่เห็น /etc/X11/xorg.conf เนื่องจากโปรแกรมควบคุมวิดีโอของวันนี้จะพยายามกำหนดค่าเริ่มต้นที่เหมาะสมสำหรับทุกสิ่งและการแจกแจงแบบใหม่จะทำให้ไฟล์นั้นไม่ทำงาน มันจะถูกใช้ถ้ามีอยู่

หากคุณมีไฟล์ /etc/X11/xorg.conf อยู่แล้วคุณสามารถลองเพิ่มบรรทัดเสมือนด้านบนไปยังส่วนย่อย Display ของส่วน Screen

ฉันขอแนะนำให้คุณทดสอบสิ่งนี้ด้วยเครื่องมือแก้ไขบรรทัดคำสั่งเนื่องจากมีโอกาสที่จะทำให้ความสามารถในการลงชื่อเข้าใช้ของ Ubuntu GUI เป็นไปได้ยากและคุณอาจต้องใช้ Alt-Ctrl-F1 ลงชื่อเข้าใช้และแก้ไข (หรือลบ) ไฟล์ ใช้เครื่องมือบรรทัดคำสั่ง ข้อผิดพลาดใด ๆ ควรอยู่ใน /var/log/Xorg.0.log หรือ /var/log/Xorg.1.log

ในความเป็นจริงคุณสามารถและควรทดสอบสิ่งนี้โดยการลงชื่อเข้าใช้รหัสผู้ใช้เพิ่มเติมในระบบของคุณ (โดยไม่ต้องออกจากหมายเลขผู้ใช้ปกติของคุณ) และตรวจสอบจากเซสชันใหม่วิธีการที่คุณสามารถใช้ Alt-Ctrl-F7 GUI หากมีปัญหา ในกรณีที่คุณใช้รหัสผู้ใช้เพิ่มเติมเพื่อเข้าสู่ระบบโดยไม่ต้องออกจากระบบก่อนการบันทึกที่เหมาะสมจะเป็น /var/log/Xorg.1.log อย่าออกจากเซสชันการทำงานหรือการบูตจนกว่าคุณจะมี xorg.conf ที่ใช้งานได้หรือลบมันอีกครั้ง


ใช้ไดรเวอร์กราฟิกอื่น

บทความอื่นที่ฉันอ่านได้แก้ไขปัญหานี้ด้วยการสลับไดรเวอร์ แต่ฉันเห็นจากคำถามของคุณว่าโปรแกรมเพิ่มเติมของไดรเวอร์ไม่ได้ให้ทางเลือกแก่คุณอีก (ฉันคิดว่านั่นคือสิ่งที่คุณหมายถึงข้างต้นเมื่อคุณพูดถึง "ไดร์เวอร์ไดอะล็อกฮาร์ดแวร์" นอกจากคุณจะเปลี่ยนไดรเวอร์ด้วยโปรแกรมเพิ่มเติมไดรเวอร์คุณจะใช้ไดรเวอร์ที่เคอร์เนลเห็นว่าเหมาะสมกับการ์ดแสดงผลหรือตรรกะวิดีโอบนแผงวงจรหลักของคุณ

สำหรับ OP จากสิ่งที่คุณอธิบายไว้ในความคิดเห็นของคุณด้านบนดูเหมือนว่าระบบของคุณควรใช้ไดรเวอร์ Radeon แต่ไม่ใช่ ฉันใช้ไดรเวอร์ Radeon และตั้งความละเอียดแนวนอนเป็น 1920 (สูงสุดสำหรับไดรเวอร์ / การ์ดดูเหมือนว่าจะเป็น 8192) ไดรเวอร์ vesa และ fb เป็นไดรเวอร์พื้นฐานมากสำหรับฮาร์ดแวร์เก่า - เก่าพอที่จอภาพในยุคนั้นไม่มีจอแสดงผลขนาดใหญ่มาก


อัปเกรด Ubuntu

หากคุณใช้คอมพิวเตอร์รุ่นใหม่กว่ารุ่น Ubuntu ที่คุณติดตั้งและโดยเฉพาะเคอร์เนล Linux อาจเป็นไปได้อย่างสมบูรณ์ที่เคอร์เนลจะไม่รู้จักอะแดปเตอร์กราฟิกของคุณ หากเป็นกรณีนี้คุณต้องอัพเกรดซอฟต์แวร์ Ubuntu ซึ่งมีการสนับสนุนอุปกรณ์ของคุณ

เนื่องจากเขาไม่สามารถเรียกใช้ fglrx ได้จึงเป็นกรณีของ ysap เนื่องจากความแปลกใหม่ของอุปกรณ์นี้ที่เกี่ยวข้องกับรีลีส ysap กำลังทำงานอยู่จึงไม่รองรับ [1002.9802] ในเคอร์เนล Lucid (หรือไม่ฝักใฝ่ฝ่ายใด) การสนับสนุนครั้งแรกสำหรับอุปกรณ์นี้ปรากฏในเคอร์เนล Natty 2.6.38 ในการตรวจสอบการสนับสนุนอุปกรณ์เฉพาะในโมดูลเคอร์เนลคุณสามารถไปที่ไฟล์ / lib / modules / kernel-version /module.alias และค้นหาค่าของอะแดปเตอร์ สำหรับอุปกรณ์นั้น:

grep v00001002d00009802 /lib/modules/2.6.38-10-generic/modules.alias

เพื่อตรวจสอบการสนับสนุนเคอร์เนลของ Natty มันตอบกลับ:

alias pci:v00001002d00009802sv*sd*bc*sc*i* radeon

ในการทดสอบคุณสามารถลองบูตซีดีสดบนระบบและลองตั้งค่าความละเอียดที่คุณต้องการในสภาพแวดล้อมนั้น (คลิกที่ลอง Ubuntu แทนที่จะติดตั้ง)

การได้รับการสนับสนุนไดรเวอร์ที่เหมาะสมยังสามารถเปิดใช้งานสิ่งอำนวยความสะดวกด้านกราฟิกที่ทันสมัยเช่นการเรนเดอร์โดยตรงและการสนับสนุน OpenGL การปรับปรุงประสิทธิภาพและความสวยงามอย่างมาก

สำหรับคอมพิวเตอร์ส่วนบุคคลคุณอาจสามารถใช้เคอร์เนลที่อัพเกรดได้หากมี Ubuntu รุ่นที่ใช้งานร่วมกันได้ สำหรับคอมพิวเตอร์ที่ใช้งานจริงอาจจำเป็นต้องอัพเกรด Ubuntu ให้เป็นเวอร์ชั่นที่ใหม่กว่าหากมีเพื่อความน่าเชื่อถือและความทนทาน


1
สิ่งที่แปลกคือฉันไม่มีxorg.confที่ใดในระบบไฟล์ แต่ถ้าความเข้าใจของฉันถูกต้องในคำสอนสมัยใหม่ไฟล์นี้จะล้าสมัยและไม่จำเป็นต้องใช้ ฉันค้นหาxorg.conf.dโปรแกรมและหน้าคนที่เกี่ยวข้อง
ysap

/etc/X11/xorg.conf ไม่จำเป็นต้องใช้กับฮาร์ดแวร์ของระบบส่วนใหญ่อีกต่อไป แต่ไม่ได้ล้าสมัย - คุณสามารถระบุรายละเอียดที่คุณต้องการ นั่นคือวิธีที่ฉันลองข้างต้น นอกจากนี้ยังสามารถใส่รายละเอียดเหล่านั้นลงในไฟล์ที่คุณเพิ่มในไดเร็กทอรี /etc/X11/xorg.conf.d/ ฉันจะเพิ่มตัวอย่าง
John S Gruber

ลองดูว่ามันชัดเจนกว่านี้ไหม โปรดแจ้งให้เราทราบหากไม่
John S Gruber

ขอบคุณจอห์น ฉันทดสอบไฟล์ xorg.conf ที่คุณโพสต์และแน่นอนมันทำให้จอแสดงผลของฉันเมาเมื่อฉันเปลี่ยนบัญชีดังนั้นฉันจึงต้องลบมัน
ysap

ใน Ubuntu 10.04 จะมีแอปเพล็ต "Hardware Drives" อยู่ใต้เมนู System / Administration แอพเพล็ตนี้ไม่มีรายชื่อไดรเวอร์อื่น อย่างไรก็ตามฉันเพิ่งรู้ว่าพีซีที่มีปัญหาไม่ได้เชื่อมต่อกับอินเทอร์เน็ต (เรากำลังอยู่ในการสาธิตในขณะนี้) ดังนั้นจึงเป็นไปได้ว่าเมื่อเรากลับมาที่สำนักงานฉันจะเห็นทางเลือกไดรเวอร์ ATI ฉันจำได้ไม่ชัดเจนจากที่ผ่านมาว่าไดรเวอร์ที่เป็นกรรมสิทธิ์ไม่สามารถแก้ปัญหาได้และฉันก็ไม่สามารถได้รับการแก้ไขด้วย 10.04
ysap

15

ฉันยังพบปัญหานี้ (เคยมีหน้าจอ Dell 23 ")

ก่อนอื่นให้กำหนดว่าอินเตอร์เฟสใดที่เชื่อมต่อกับจอแสดงผลของคุณ:

$ xrandr -q

ผลลัพธ์คำสั่งจะเป็น:

mukolla@pk:~$ xrandr -q

Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192

LVDS connected (normal left inverted right x axis y axis)
   1366x768       60.0 +
   1280x720       59.9  
   1152x768       59.8  
   1024x768       59.9  
   800x600        59.9  
   848x480        59.7  
   720x480        59.7  
   640x480        59.4  

HDMI-0 disconnected (normal left inverted right x axis y axis)

VGA-0 connected ......

   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  

จอแสดงผลภายนอกที่เชื่อมต่อกับพอร์ตVGA-0 นี่เป็นสิ่งสำคัญที่จะสังเกตเห็น

ตอนนี้เพิ่มโหมดใหม่เพื่อแสดง:

$ xrandr --newmode "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync
$ xrandr --addmode VGA-0 1920x1080_60.00
$ xrandr --output VGA-0 --mode 1920x1080_60.00

ไม่สามารถเปลี่ยนหน้าจอ inbuilt ใช่ไหม
KhoPhi

เกิดข้อผิดพลาดกับ BadMatch กับ ex .: xrandr --addmode "DVI-I-1" "1280x800_60.00"ความคิดใดบ้าง (DVI-I-1 เชื่อมต่ออยู่)
Aquarius Power

@AquariusPower ลองDVI-1-1แทนDVI-I-1
WinEunuuchs2Unix

6

G'day ทั้งหมด ฉันมีปัญหานี้เมื่อเชื่อมต่อกับระบบ Ubuntu ที่ไม่มีหน้าจอ (เคยมีหน้าจอ Dell 24 "แต่จำเป็นต้องใช้ที่อื่น) ฉันไม่สว่างพอที่จะรู้ว่าทำไมการทำงานนี้ แต่นี่เป็นชุดคำสั่ง ใช้งานได้สำหรับฉัน - ไม่จำเป็นต้องแก้ไขไฟล์

หมายเหตุ: เมื่อคุณรีบูทคุณจะต้องรันอีกครั้ง ฉันแนะนำเชลล์สคริปต์

gtf 1920 1200 60 -x
xrandr --newmode "1920x1200_60.00"  193.16  1920 2048 2256 2592  1200 1201 1204 1242  -HSync +Vsync
xrandr --addmode VGA1 1920x1200_60.00
xrandr --output VGA1 --mode 1920x1200_60.00

มันใช้งานได้ดีอย่างน่าอัศจรรย์!
Folkert van Heusden

4

ฉันเพิ่มบรรทัดข้างต้น (มีเอาต์พุตที่แตกต่างกันเล็กน้อยจากคำสั่ง gtf) ไปยังไฟล์. xprofile ในโฮมไดเร็กทอรีของฉัน ทำงานเหมือนฝัน ดูด้านล่าง

gtf 1920 1080 60 -x

xrandr --newmode "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync

xrandr --addmode Virtual1 1920x1080_60.00

xrandr --output Virtual1 --mode 1920x1080_60.00

ฉันใช้ Vmware Player ดังนั้นชื่อของเอาต์พุต


2

ลองติดตั้งarandrการตั้งค่าของคุณxrandrการตั้งค่ากับGUI

sudo apt install arandr

จากนั้นตั้งค่าความละเอียดหน้าจอการวางแนวและตำแหน่งของคุณแล้วบันทึกการกำหนดค่า

คุณสามารถเห็นเอาต์พุตของมันคือเชลล์สคริปต์ (.sh) โดยปกติใน ~ / .screenlayout

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