न्यूनतम जानकारी
आप एक प्रश्न पूछने जा रहे हैं, फिर इस कमांड द्वारा उत्पन्न लिंक जोड़ें
sudo apt-get install pastebinit; sudo sh -c "lsb_release -sd; dmidecode -s system-product-name; echo ==; lshw -c display; echo ==; xrandr --verbose; echo ==; cat /etx/X11/xorg.conf" | tee ~/Desktop/ubuntu-graphic-info.txt | pastebinit
समस्या निवारण
थोड़ी बातें
जैसा कि मैंने सोचा था कि कुछ समय के लिए अपने इंटेल GPU के साथ खेलने की कोशिश की तुलना में बहुत जटिल है xrandr
। कभी-कभी, मुझे एक अप्रत्याशित त्रुटि मिलती है। यह मेरे अनुभव के लिए एक गर्मी है।
यहाँ एक सरल पूर्ण स्टैक सूची है, जैसा कि मैं इसे समझता हूं।
xrandr
└─ Xorg (w/ driver specific module)
└─ kernel
└─ driver
│
graphic card
└─ cables (kvm switch/connection adapter)
└─ monitor
यह वास्तव में समस्या निवारण के लिए एक बड़ा स्टैक है, पुराने हार्डवेयर और रोलिंग मालिकाना ड्राइवरों के अपडेट के साथ अधिक कठिन है, यहां तक कि डीबी -15 वीजीए केबल (या सस्ते केबल) में एक खराब पिन संपर्क भी फर्क कर सकता है। दरअसल, उबंटू में यहां मैंने जिन मुद्दों को पढ़ा है, उनमें से अधिकांश मॉनिटर से गलत / गलत EDID डेटा गायब होने के बारे में हैं , दोष: केबल (kvm स्विच / कनेक्शन एडाप्टर)। आप नोटिस कर सकते हैं कि xrandr --verbose
आउटपुट से जल्दी ।
कई मामले यह भी होते हैं कि ड्राइवर मॉनिटर (निर्माता की गलती) से अपूर्ण / आंशिक रूप से गलत EDID डेटा के कारण कुछ मोड को प्रतिबंधित करते हैं, उपयोगकर्ता ने xorg.conf
ओवरराइड करने के लिए कस्टम लिखकर इसे दूर किया : मोड, HSync और VSync, EDID, DPI ... ड्राइवर के आधार पर (के nvidia
लिए) उदाहरण मॉनिटर से नजरअंदाज कर सकते हैं)
मैं इसे उन्नत उपयोगकर्ताओं या यहां मदद प्रदान करने वाले लोगों के लिए पढ़ने की सलाह देता हूं:
नोटिस:
समाधान प्रदान करने वाले पुराने दस्तावेज़ों और पोस्टों को पढ़ते समय सावधान रहें। बेहतर है, उपयोग में उस विशिष्ट ड्राइव के लिए प्रलेखन देखने के लिए।
- पोस्ट की तारीख, अंतिम संपादन तिथि या सॉफ्टवेयर संस्करण सत्यापित करें।
modeset
, DRI
या fb
(फ्रेमबफ़र) ड्राइवर प्रकार। (बस जागरूक रहें, मैं विशेषज्ञ नहीं हूं)।
- Xorg ने ऑटो कॉन्फ़िगर की ओर बहुत कुछ किया है इसलिए
xorg.conf
डिफ़ॉल्ट रूप से नहीं बनाया गया है। यहां तक कि अगर उपयोगकर्ता ने एक बना दिया है, तो उसे सभी वर्गों को नहीं बनाना चाहिए लेकिन केवल उसी चीज को ओवरराइड करना चाहिए जो आवश्यक है। यह मक्खी पर एक तरह का विन्यास है।
उन xrandr / एक्स त्रुटियों की मेरी डमी समझ
बेटे ( xrandr
) को इस बात की जानकारी नहीं है कि उनके पिता क्या सक्षम हैं या उन्हें (सभी ड्राइवर क्षमताओं) को खरीदने के लिए सहमत होंगे, इसलिए वह बस अपनी माँ (एक्सगॉर) के पास जाते हैं और उनसे अपने पिता से उन चीजों के लिए पूछने के लिए कहते हैं जो वह चाहते हैं। तो निम्न में से कोई भी परिदृश्य होगा:
- उच्च अनुपात: बेटा → (:) स्वीकार) माँ → (:) स्वीकार) पिताजी, हर एक खुश है!
- निम्न अनुपात: बेटा → (: | स्वीकार करें) माँ → (एक्सडी अस्वीकार) पिताजी, जीवन कभी-कभी कठिन होता है!
- दुर्लभ मामला: पुत्र → (एक्स / अस्वीकार) माँ -x- (: | तटस्थ) पिताजी, योजना बी के लिए समय!
तो हम उन त्रुटि को प्राप्त करते हैं जब Xorg या ड्राइवर के कारण xrandr अनुरोध को संसाधित करने या अस्वीकार करने में असमर्थ होते हैं:
- वर्तमान Xorg सेटिंग्स
- चालक क्षमताओं
- ग्राफिक्स एडाप्टर क्षमताओं
- EDID से मॉनिटर की क्षमताएं मिलीं
- उनमें से एक में एक बग सहित
xrandr
जेनेरिक ग्राफिक्स के लिए डिबग जानकारी एकत्रित करना!
क्यों? मैंने यहाँ xrandr
& रिज़ॉल्यूशन से संबंधित कई प्रश्नों को देखा , वे फुल स्टैक सेटअप के बारे में अधिक जानकारी याद कर रहे हैं। माना सेट केवल अंतिम विफल आदेश का उल्लेख करता है। यहां तक कि मैं प्रश्न में पूर्ण आउटपुट डालने का सुझाव दूंगा ताकि हम समानताएं खोज सकें और संबंधित मुद्दों को लिंक कर सकें।
यदि कोई EDID डेटा नहीं मिला, तो इसके साथ शुरू करें:
- मॉनिटर को भौतिक रूप से कैसे जोड़ा जाता है, अर्थात KVM का उपयोग कैसे किया जाता है? कोई कनेक्शन एडाप्टर पूर्व। वीजीए के लिए एचडीएमआई?
- क्या आपने एक और केबल की कोशिश की है?
- मॉनिटर ब्रांड / मॉडल क्या है?
यहां कुछ सहायक आदेशों की एक सूची दी गई है
पृष्ठभूमि की जानकारी
sudo dmidecode -s system-product-name
lsb_release -sd
Xorg -version
xrandr -v
sudo lshw -c display
आधार की जानकारी
xrandr --verbose
cat /etx/X11/xorg.conf
more /var/log/Xorg.0.log
डिबग कमांड और विकल्प
sudo apt-get install edid-read
ls /sys/class/drm/*/edid | xargs -i{} sh -c "echo {}; parse-edid < {}"
xrandr --verbose ...
xtrace xrandr --verbose ...
#no need, only to compare between releases for changes, the default driver parameters
sudo sh -c "ls /sys/module/<driver-module-from-lshw>/parameters/ | xargs -L1 -i{} sh -c 'echo -n {} \" \" ; cat /sys/module/<driver-module-from-lshw>/parameters/{}'"
# additional desktop environment setting, for general cases, gnome/unity
cat ~/.config/monitors.xml
cat /etc/gnome-settings-daemon/xrandr/monitors.xml
gsettings list-recursively org.gnome.settings-daemon.plugins.xrandr
उन्नत डिबग विकल्प
जोड़े Option "ModeDebug" "true"
को Section "Device"
करने के लिए xorg.conf
, जानकारी के लिए नीचे NVIDIA डिबग देखते हैं।
एनवीडिया ग्राफिक्स के लिए अतिरिक्त डिबग जानकारी!
cat /proc/driver/nvidia/version
सटीक संस्करण के लिए
एनवीडिया डिबग जानकारी को सक्रिय करना /var/log/Xorg.0.log
gksu nvidia-settings
# go to X configuration then export, copy only device section
sudo mkdir /etc/X11/xorg.conf.d/
sudo vim /etc/X11/xorg.conf.d/90_my_nvidia_hacks.conf
# paste the device section
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "NVS 3100M"
Option "ModeDebug" "true"
EndSection
# add to it this line `Option "ModeDebug" "true"`
पूर्ण प्रलेखन file:///usr/share/doc/nvidia-*/html/
, एक ही चल रहे संस्करण के लिए देखें, उपलब्ध विकल्पों और डिफ़ॉल्ट सेटिंग्स में कई बदलाव हैं।
इंटेल ड्राइवर के साथ एक डिबगिंग टेस्ट केस
यहां एक मामला है कि मैं इसे पुन: पेश कर सकता हूं और ऐसा लगता है जैसे बग में xrandr
। यह स्पष्ट है xtrace
& से Xorg.0.log
, कि 1-संयोजन में फ्रेम-बफर का आकार बदला नहीं गया है।
#Seems a bug in xrandr
#Xorg error when changing to bigger resolution without changing a previously defined scale.
#-----------
#system info
$ xrandr --version
xrandr program version 1.4.3
Server reports RandR version 1.4
$ sudo sh -c "lsb_release -dc;echo; uname -a; Xorg -version;echo; lshw -C display"
Description: Ubuntu 15.10
Codename: wily
Linux BlueSkies 4.2.0-25-generic #30-Ubuntu SMP Mon Jan 18 12:31:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
X.Org X Server 1.17.2
Release Date: 2015-06-16
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.13.0-68-generic x86_64 Ubuntu
Current Operating System: Linux BlueSkies 4.2.0-25-generic #30-Ubuntu SMP Mon Jan 18 12:31:50 UTC 2016 x86_64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.2.0-25-generic root=UUID=9f0530d5-e0eb-43fa-b99b-000fa742cf10 ro persistent quiet splash vt.handoff=7
Build Date: 12 November 2015 05:33:29PM
xorg-server 2:1.17.2-1ubuntu9.1 (For technical support please see http://www.ubuntu.com/support)
Current version of pixman: 0.32.6
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
*-display
description: VGA compatible controller
product: 3rd Gen Core processor Graphics Controller
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 09
width: 64 bits
clock: 33MHz
capabilities: msi pm vga_controller bus_master cap_list rom
configuration: driver=i915 latency=0
resources: irq:26 memory:f6400000-f67fffff memory:e0000000-efffffff ioport:f000(size=64)
$ sudo sh -c "ls /sys/module/i915/parameters/ | xargs -L1 -i{} sh -c 'echo -n {} \" \" ; cat /sys/module/i915/parameters/{}'"
disable_display N
disable_power_well 1
disable_vtd_wa N
edp_vswing 0
enable_cmd_parser 1
enable_execlists 0
enable_fbc -1
enable_hangcheck Y
enable_ips 1
enable_ppgtt 1
enable_psr 0
enable_rc6 3
fastboot N
invert_brightness 0
load_detect_test N
lvds_channel_mode 0
lvds_downclock 0
lvds_use_ssc -1
mmio_debug 0
modeset -1
nuclear_pageflip N
panel_ignore_lid 1
prefault_disable N
preliminary_hw_support 0
reset Y
semaphores -1
use_mmio_flip 0
vbt_sdvo_panel_type -1
verbose_state_checks Y
$ modinfo i915
filename: /lib/modules/4.2.0-25-generic/kernel/drivers/gpu/drm/i915/i915.ko
license: GPL and additional rights
description: Intel Graphics
author: Intel Corporation
author: Tungsten Graphics, Inc.
firmware: i915/skl_dmc_ver1.bin
srcversion: BB05D6968744E69AEA30DC2
...
depends: drm_kms_helper,drm,video,i2c-algo-bit
intree: Y
vermagic: 4.2.0-25-generic SMP mod_unload modversions
$ xrandr
Screen 0: minimum 8 x 8, current 1726 x 768, maximum 32767 x 32767
LVDS1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 309mm x 173mm
1366x768 60.07*+ 40.02
1360x768 59.80 59.96
1280x720 60.00
1024x768 60.00
1024x576 60.00
960x540 60.00
800x600 60.32 56.25
864x486 60.00
640x480 59.94
720x405 60.00
680x384 60.00
640x360 60.00
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
VGA1 connected 360x200+1366+0 (normal left inverted right x axis y axis) 410mm x 230mm
1366x768 59.79 +
1280x1024 60.02
1280x720 60.00
1024x768 60.00
800x600 60.32
640x480 60.00
720x400 70.08*
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
Other info not collected
$ grep intel /var/log/Xorg.0.log
#-------------------------
#case reproducing & debug
## 1st combination different mode & same scale
$ xrandr --output VGA1 --mode 720x400 --right-of LVDS1 --scale 0.5x0.5
$ xtrace xrandr --verbose --output VGA1 --mode 1366x768 --right-of LVDS1 --scale 0.5x0.5
000:<:0030: 28: RANDR-Request(140,21): SetCrtcConfig crtc=0x00000040 timestamp=0x00000000 config timestamp=0x00010a4d x=0 y=0 mode=0x00000000 rr=Rotate_0 outputs=;
000:>:0030:32: Reply to SetCrtcConfig: status=Success(0x00)
screen 0: 1726x768 453x202 mm 96.57dpi
crtc 1: 720x400 70.08 +1366+0 "VGA1"
000:<:0031: 20: RANDR-Request(140,7): SetScreenSize window=0x000000d9 width=1726 height=768 width[mm]=453 height[mm]=202
000:<:0032: 32: RANDR-Request(140,21): SetCrtcConfig crtc=0x00000040 timestamp=0x00000000 config timestamp=0x00010a4d x=1366 y=0 mode=0x000000fc rr=Rotate_0 outputs=0x0000004a;
000:>:0032:32: Reply to SetCrtcConfig: status=Success(0x00)
screen 0: 2049x768 538x202 mm 96.57dpi
crtc 1: 1366x768 59.79 +1366+0 "VGA1"
000:<:002f: 4: Request(36): GrabServer
000:<:0030: 20: RANDR-Request(140,7): SetScreenSize window=0x000000d9 width=2049 height=768 width[mm]=538 height[mm]=202
000:<:0031: 32: RANDR-Request(140,21): SetCrtcConfig crtc=0x00000040 timestamp=0x00000000 config timestamp=0x00010a4d x=1366 y=0 mode=0x000000f8 rr=Rotate_0 outputs=0x0000004a;
000:>:0030:Error 8=Match: major=140, minor=7, bad=217
000:>:0031:32: Reply to SetCrtcConfig: status=Success(0x00)
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 7 (RRSetScreenSize)
Serial number of failed request: 48
Current serial number in output stream: 49
## 2nd combination same mode & different scale
$ xtrace xrandr --verbose --output VGA1 --mode 1366x768 --right-of LVDS1 --scale 1x1
$ xtrace xrandr --verbose --output VGA1 --mode 1366x768 --right-of LVDS1 --scale 0.5x0.5
screen 0: 2732x768 718x202 mm 96.57dpi
crtc 1: 1366x768 59.79 +1366+0 "VGA1"
000:<:002f: 4: Request(36): GrabServer
000:<:0030: 20: RANDR-Request(140,7): SetScreenSize window=0x000000d9 width=2732 height=768 width[mm]=718 height[mm]=202
000:<:0031: 56: RANDR-Request(140,26): SetCrtcTransform crtc=0x00000040 transform={matrix=1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,1.000000;}; filter name='nearest' filter params=;
000:<:0032: 32: RANDR-Request(140,21): SetCrtcConfig crtc=0x00000040 timestamp=0x00000000 config timestamp=0x00010a4d x=1366 y=0 mode=0x000000f8 rr=Rotate_0 outputs=0x0000004a;
000:>:0032:32: Reply to SetCrtcConfig: status=Success(0x00)
000:<:0030: 28: RANDR-Request(140,21): SetCrtcConfig crtc=0x00000040 timestamp=0x00000000 config timestamp=0x00010a4d x=0 y=0 mode=0x00000000 rr=Rotate_0 outputs=;
000:>:0030:32: Reply to SetCrtcConfig: status=Success(0x00)
screen 0: 2049x768 538x202 mm 96.57dpi
crtc 1: 1366x768 59.79 +1366+0 "VGA1"
000:<:0031: 20: RANDR-Request(140,7): SetScreenSize window=0x000000d9 width=2049 height=768 width[mm]=538 height[mm]=202
000:<:0032: 56: RANDR-Request(140,26): SetCrtcTransform crtc=0x00000040 transform={matrix=0.500000,0.000000,0.000000,0.000000,0.500000,0.000000,0.000000,0.000000,1.000000;}; filter name='bilinear' filter params=;
000:<:0033: 32: RANDR-Request(140,21): SetCrtcConfig crtc=0x00000040 timestamp=0x00000000 config timestamp=0x00010a4d x=1366 y=0 mode=0x000000f8 rr=Rotate_0 outputs=0x0000004a;
000:>:0033:32: Reply to SetCrtcConfig: status=Success(0x00)
$ tail /var/log/Xorg.0.log
##1st
[ 6644.557] (II) intel(0): resizing framebuffer to 1726x768
[ 6644.560] (II) intel(0): switch to mode 720x400@70.1 on VGA1 using pipe 1, position (1366, 0), rotation normal, reflection none
[ 6660.882] (II) intel(0): switch to mode 1366x768@59.8 on VGA1 using pipe 1, position (1366, 0), rotation normal, reflection none
##2nd
[ 6804.638] (II) intel(0): resizing framebuffer to 2732x768
[ 6804.647] (II) intel(0): switch to mode 1366x768@59.8 on VGA1 using pipe 1, position (1366, 0), rotation normal, reflection none
[ 6817.753] (II) intel(0): resizing framebuffer to 2049x768
[ 6817.757] (II) intel(0): switch to mode 1366x768@59.8 on VGA1 using pipe 1, position (1366, 0), rotation normal, reflection none
अन्य प्रश्नों से उल्लेखनीय मामले
xrandr: Failed to get size of gamma for output default
ड्राइवर समर्थन या नो ड्राइव लोडेड समस्या, यह nomodeset
पुराने ग्राफिक्स के साथ प्रसिद्ध है । xrandr
केएमएस के बिना अच्छा काम नहीं करता है। संकेतक:
sudo lshw -c display
खाली *-display UNCLAIMED
भी हो सकता driver=
है।
maximum 1920 x 1080
बफर आकार बिल्कुल न्यूनतम के रूप में स्क्रीन आकार है, अधिकांश ग्राफिक्स अब हैं maximum 8192 x 8192
, maximum 16384 x 16384
या यहां तक कि 32Kx32K हैं।
- कनेक्शन का कोई नियमित नाम नहीं
default
!
- OpenGL सॉफ़्टवेयर रेंडरर का उपयोग किया जाता है, जाँच करें
glxinfo
, उदाहरण Gallium3D/llvmpipe
:।
इसी तरह के मुद्दे को पुन: पेश करने के लिए
अतिथि जोड़ / मॉड्यूल (जिसमें vbox ग्राफ़िक्स ड्राइवर शामिल है) स्थापित किए बिना एक Ubuntu वर्चुअलबॉक्स बनाएँ। यह बहुत धीमा होगा और असली मशीन के साथ भी ऐसा ही होगा।
X Error of failed request: BadMatch (invalid parameter attributes)
(RRQueryOutputProperty)
एक गलत प्रॉपर्टी नाम जिसका उपयोग किया जाता है xrandr --output .. --set <name> <value>
, उपयोगकर्ता को पहले उपलब्ध गुणों का उपयोग करके जांच करनी चाहिए xrandr --prop
। एक ही मामला यहाँ हल:
लैपटॉप में ब्राइटनेस नहीं बदल सकते
उपलब्ध गुण उपयोग किए गए ड्राइवर और एडेप्टर पर निर्भर करते हैं, इसलिए यह ड्राइवर की समस्या के पिछले बिंदु का परिणाम हो सकता है, क्योंकि कोई भी गुण xrandr घोषित नहीं किया गया है।
इसी तरह के मुद्दे को पुन: पेश करने के लिए
xrandr --output <connection-name> --set whatever 0
X Error of failed request: BadMatch (invalid parameter attributes)
(RRAddOutputMode)
मेरा वर्तमान सिद्धांत, बाद में जब मैं समय का परीक्षण करने की योजना बना रहा हूं। यहाँ इसे प्रलेखित किया। इसलिए मैं नहीं भूलता और अन्य कुछ प्रतिक्रिया दे सकते हैं।
xrandr .. --addmode
EDID सत्यापन के कारण ड्राइवर द्वारा इसे मना करने पर त्रुटि उत्पन्न हुई । मैंने देखा कि "मोडडबग" को सक्षम करने के बाद एनवीडिया कुछ मोड को हटा देता है। कोई एक:
- मॉनिटर से EDID डेटा सही नहीं हैं
- ड्राइवर EDID प्रसंस्करण में मजबूत नहीं हैं
- निर्मित मोड प्रविष्टि EDID में घोषित मॉनिटर रेंज में नहीं है
(1 और 2) समाधान Hsync / Vsync / PixelClock या पूर्ण स्थानीय EDID फ़ाइल का कस्टम ओवरराइड है, कुछ ड्राइवर EDID को अनदेखा कर सकते हैं।
(3) समाधान विभिन्न मोड प्रविष्टि की कोशिश करना है। अंतर नोटिस करें
$ cvt 1280 800 60
# 1280x800 59.81 Hz (CVT 1.02MA) hsync: 49.70 kHz; pclk: 83.50 MHz
Modeline "1280x800_60.00" 83.50 1280 1352 1480 1680 800 803 809 831 -hsync +vsync
$ gtf 1280 800 60
# 1280x800 @ 60.00 Hz (GTF) hsync: 49.68 kHz; pclk: 83.46 MHz
Modeline "1280x800_60.00" 83.46 1280 1344 1480 1680 800 801 804 828 -HSync +Vsync
# reduce mode only for flat monitors
$ cvt -r 1280 800 60
# 1280x800 59.91 Hz (CVT 1.02MA-R) hsync: 49.31 kHz; pclk: 71.00 MHz
Modeline "1280x800R" 71.00 1280 1328 1360 1440 800 803 809 823 +hsync -vsync
उदाहरण के लिए, केवल vsync को थोड़ा कम करके कुछ मामलों को हल किया गया 1280 800 59.80
।