मैं अपने लिनक्स लैपटॉप के डिस्प्ले पैनल का उपयोग करके Xorg को कैसे रोकूं?


12

मेरे पास एक लैपटॉप है (~ 5 साल पुराना HP compaq nc6400 चल रहा है फेडोरा लिनक्स) जो कि मैं ज्यादातर समय डेस्कटॉप मशीन के रूप में उपयोग करता हूं। यह अपने ढक्कन को बंद करके डॉकिंग स्टेशन में प्लग किया गया है और डीवीआई केबल द्वारा एक बड़े बाहरी एलसीडी डिस्प्ले से जुड़ा हुआ है।

विभिन्न कारणों के लिए (लॉगिन अभिवादन बंद प्रदर्शन पर दिखाई देता है, सीमित ग्राफिक्स कार्ड दोनों डिस्प्ले को एक साथ 3 डी नहीं कर सकता है) मैं लैपटॉप के एकीकृत डिस्प्ले पैनल को एक्स द्वारा उपयोग किए जाने से रोकना चाहता हूं। डॉक किया गया और मेरी डेस्क पर (जो है कि मैं इसे लगभग 97% समय का उपयोग करता हूं) मैं इसे केवल एकीकृत लैपटॉप पैनल का उपयोग नहीं करना चाहूंगा। बूट करना कोई विशेष समस्या नहीं है, क्योंकि डिफ़ॉल्ट रूप से दो डिस्प्ले के बीच सब कुछ मिरर किया जाता है। इसके अलावा, मुझे 'मैनुअल' समाधान से कोई आपत्ति नहीं है, जैसे कि मुझे उन दुर्लभ अवसरों पर सेटिंग्स को पूर्ववत करना होगा जब मैं अपने डेस्क से दूर लैपटॉप का उपयोग कर रहा हूं।

एक बार लॉग इन होने के बाद मैं Gnome को कॉन्फ़िगर कर सकता हूं ताकि यह केवल बाहरी मॉनिटर का उपयोग करे और लैपटॉप पैनल "बंद" चिह्नित हो, हालांकि इससे एक्स के प्रारंभिक ऑटो-कॉन्फ़िगर राज्य और प्री-लॉगिन ग्रीटिंग डिस्प्ले पर कोई प्रभाव नहीं पड़ता है। हैरानी की बात है कि लैपटॉप में एक ढक्कन सेंसर नहीं है, इसलिए ढक्कन को खोलना या बंद करना किसी भी घटना को ट्रिगर नहीं करता है। मैं xrandr -display :0 --output LVDS1 --off --output DVI1 --autoलॉगिन करने से पहले एक अलग वीसी पर उपयोग कर सकता हूं , लेकिन यह एक्स के शुरू होने और दोनों डिस्प्ले का उपयोग करने का निर्णय लेने और निर्णय लेने के तथ्य के बाद भी है।

मैंने एक फ़ाइल बनाकर Xorg को कॉन्फ़िगर करने का प्रयास किया, /etc/X11/xorg.conf.d/01-turn-off-laptop-display.confजिसमें शामिल हैं:

Section "Monitor"
    Identifier  "laptop panel"
    Option  "Monitor-LVDS1" "laptop panel"
    Option  "Enable" "no"
EndSection
Section "Monitor"
    Identifier  "big display"
    Option  "Monitor-DVI1" "big display"
EndSection

Section "Screen"
    Identifier  "main"
    Device  "Default"
    Monitor "big display"
EndSection

हालाँकि इसका कोई उपयोगी प्रभाव नहीं पड़ा। वीडियो कार्ड इंटेल 945GM है:

[dan@khorium ~]$ sudo lspci -v -s 0:2
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03) (prog-if 00 [VGA controller])
    Subsystem: Hewlett-Packard Company Device 30ad
    Flags: bus master, fast devsel, latency 0, IRQ 16
    Memory at f4600000 (32-bit, non-prefetchable) [size=512K]
    I/O ports at 4000 [size=8]
    Memory at e0000000 (32-bit, prefetchable) [size=256M]
    Memory at f4680000 (32-bit, non-prefetchable) [size=256K]
    Expansion ROM at <unassigned> [disabled]
    Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit-
    Capabilities: [d0] Power Management version 2
    Kernel driver in use: i915
    Kernel modules: i915

00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)
    Subsystem: Hewlett-Packard Company Device 30ad
    Flags: bus master, fast devsel, latency 0
    Memory at f4700000 (32-bit, non-prefetchable) [size=512K]
    Capabilities: [d0] Power Management version 2

मशीन 10/11 के बाद से फेडोरा लिनक्स (x86_64) के विभिन्न संस्करणों को चला रही है। मैं वर्तमान में फेडोरा 15 बीटा (जिसमें गनोम 3 शामिल है) की कोशिश कर रहा हूं, लेकिन समस्या पिछले ओएस रिलीज में मौजूद है।


आह, ठीक है - मुझे यकीन नहीं था कि पूछने के लिए सबसे अच्छी जगह कौन सी थी। मैं एक प्रतिनिधि के साथ लगता है। 1 में से मैं अपने सवाल एसई साइटों के बीच नहीं ले जा सकता, इसलिए मुझे सिर्फ किसी और को करने देना है?
नर्की

@Norky मैंने मॉडरेटर्स के लिए प्रश्न को चिह्नित कर दिया है।
Let_Me_Be

@Let_Me_Be और @Norky - यह प्रश्न यहाँ भी विषय पर है। लेकिन, @Norky, अगर आप व्यक्तिगत रूप से सवाल को यूनिक्स पर रखना पसंद करेंगे। तो इसके बजाय कृपया बेझिझक (और टिप्पणी वापस करें तो मैं इसे हटा सकता हूं), लेकिन अन्यथा इसमें कुछ भी गलत नहीं है।

@ DMA57361 - मेरी कोई खास पसंद नहीं है, जो भी आपको सबसे अच्छा लगता है :)
Norky

आह, @ नोर्की, मुद्दा यह है कि आप का उपयोग कर सकते हैं जो भी आपको लगता है कि सबसे अच्छा है - यह आपका सवाल है और यह दोनों साइटों पर पूरी तरह से मान्य है, आपको बस एक अलग समुदाय से जवाब मिलेगा। इसलिए, यदि आप इसके साथ यहाँ ठीक हैं, तो हम इसे अभी के लिए यहाँ छोड़ देंगे। हालांकि, अगर पोस्ट को निकट भविष्य में मुझे @ फिर से जवाब नहीं मिला है और मैं इसे आपके लिए स्थानांतरित कर दूंगा।

जवाबों:


9

मैं निम्नलिखित xorg.conf के साथ वांछित लक्ष्य प्राप्त करने में सक्षम था:

Section "Monitor"
        Identifier      "laptop panel"
        Option  "ignore"        "true"
EndSection
Section "Monitor"
        Identifier      "big display"
EndSection    
Section "Device"
        Identifier      "onboard"
        Option  "Monitor-LVDS1" "laptop panel"
        Option  "Monitor-DVI1" "big display"
EndSection

महत्वपूर्ण तत्व है Option "Ignore" "true"। मैं इसे और सरल बनाने में सक्षम हो सकता हूं, लेकिन यह काम करता है। मैं अभी तक नहीं जानता कि क्या होगा जब / अगर मैं बाहरी डिस्प्ले से दूर लैपटॉप का उपयोग करता हूं, तो संभवतः X एक त्रुटि के साथ बाहर निकल जाएगा - एक सही समाधान नहीं है लेकिन मैं उस घटना में कॉन्फ़िगरेशन को इस तरह से स्थानांतरित कर सकता हूं।


4

मैं थोड़ा अलग दृष्टिकोण का सुझाव दूंगा जो उन दुर्लभ अवसरों के लिए अधिक लचीला हो सकता है जिन्हें आप लैपटॉप के रूप में उपयोग करना चाहते हैं।

आपके प्रदर्शन प्रबंधक (शायद जीडीएम, केडीएम, या लाइटडैम) के आधार पर आप स्क्रिप्ट चला सकते हैं क्योंकि प्रदर्शन प्रबंधक शुरू होता है। आपको बिल्कुल संशोधित xorg.conf फ़ाइल की आवश्यकता नहीं होगी। स्क्रिप्ट के लिए स्थान निम्नानुसार है (1):

  • KDM: / etc / kde / kdm / Xsetup (सबसे नीचे)
  • SDDM: / etc / X11 / xDM / Xsetup (सबसे नीचे)
  • XDM: / etc / X11 / xDM / Xsetup (सबसे नीचे)
  • GDM: / etc / gdm / Init / Default - स्क्रिप्ट कोड को "/ sbin / initctl" लाइन के ठीक ऊपर रखें। (1)
  • LightDM: /etc/lightdm/lightdm.conf - "display-setup-script =" स्क्रिप्ट को इंगित करता है कि आप जहाँ भी चाहते हैं। सुनिश्चित करें कि स्क्रिप्ट की पहली पंक्ति #! / Bin / sh है और यह निष्पादन योग्य है।

स्क्रिप्ट कुछ इस तरह हो सकती है। आपको अपनी मशीन के लिए उपयुक्त नामों के साथ मॉनिटर नामों को बदलने की आवश्यकता होगी। मैंने ऊपर आपके xorg.conf के आधार पर अनुमान लगाने की कोशिश की है।

/usr/bin/xrandr --current | grep "DVI1 connected "
if [ $? -eq 0 ]; then
  echo "DVI found"
  sleep 1s 
  /usr/bin/xrandr --output LVDS1 --off
  /usr/bin/xrandr --output DVI1 --auto --primary
fi

यह परीक्षण करेगा कि क्या आपका डीवीआई मॉनिटर जुड़ा हुआ है, और यदि यह बिल्ट इन डिस्प्ले के बजाय सक्षम है या नहीं। मुझे इसका एक और अधिक जटिल संस्करण मिला है जो मेरे लैपटॉप को काम पर अच्छी तरह से डॉक करता है, लेकिन अभी भी कहीं और उपयोग के लिए ठीक है। यह मेरे लिए अधिक जटिल है क्योंकि मैं काम में 5 स्क्रीन का उपयोग कर रहा हूं।

(1) कुछ फ़ाइल स्थान जानकारी http://forum.xfce.org/viewtopic.php?pid=25026#p2626 से


3

पिछले पोस्ट के xorg.conf से थोड़ा संशोधित संस्करण

Section "Monitor"
   Identifier "hdmi out"
   Option "ignore" "true"
EndSection

Section "Monitor"
   Identifier "big display"
EndSection

Section "Device"
   Identifier "onboard"
   Option "Monitor-LVDS1" "hdmi out"
   Option "Monitor-VGA1" "big display"
EndSection

इंटेल NM10 चिप के लिए काम करने लगता है। बॉक्स में "बड़े प्रदर्शन" के लिए वीजीए है


1

यदि आप उपयोग करते Option "ignore" "true"हैं /etc/X11/xorg.confतो आप उस आउटपुट का उपयोग xrandr(या उपकरणों के आधार पर) बिल्कुल नहीं कर पाएंगे । इस कॉन्फिगरेशन का उपयोग करके मैंने अपने एचडीएमआई आउटपुट को निष्क्रिय कर दिया है:

Section "Monitor"
        Identifier "My-DVI-D"
        Option "Primary" "true"
        Option "PreferredMode" "1920x1080x60.0"
EndSection

Section "Monitor"
        Identifier "My-HDMI"
        Option "Enable" "false"
        Option "RightOf" "My-DVI-D"
EndSection

Section "Device"
        Identifier "onboard"
        Option "Monitor-HDMI1" "My-DVI-D"
        Option "Monitor-HDMI2" "My-HDMI"
EndSection

ध्यान दें कि डीवीआई-डी को सक्षम करने के लिए और एचडीएमआई को अक्षम करने के लिए हर एक कॉन्फ़िगर लाइन आवश्यक है।

अपने आउटपुट को खोजने के xrandr -qलिए उसके Option "Monitor-...अनुसार चलें और अनुकूलित करें । प्रासंगिक मानवपृष्ठ अनुभाग हैं:

   Option "Enable" "bool"
          This optional entry specifies whether the monitor should be turned on at  startup.   By  default,  the  server  will
          attempt to enable all connected monitors.  (RandR 1.2-supporting drivers only)
...
   Option "PreferredMode" "name"
          This optional entry specifies a mode to be marked as the preferred initial mode of the monitor.  (RandR 1.2-support‐
          ing drivers only)
...
   Option "Primary" "bool"
          This optional entry specifies that the monitor should be treated as the primary monitor. (RandR 1.2-supporting driv‐
          ers only)
...
   With RandR 1.2-enabled drivers, monitor sections may be tied to specific outputs of the video card.  Using the name of  the
   output  defined by the video driver plus the identifier of a monitor section, one associates a monitor section with an out‐
   put by adding an option to the Device section in the following format:

   Option "Monitor-outputname" "monitorsection"

   (for example, Option "Monitor-VGA" "VGA monitor" for a VGA output)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.