як я можу запобігти Xorg використовувати панель дисплея мого ноутбука Linux?


12

У мене є ноутбук (~ 5-річний HP Compaq nc6400 під управлінням Fedora Linux), який я більшу частину часу використовую як настільний апарат. Він підключається до док-станції із закритою кришкою та через неї через кабель DVI до великого зовнішнього РК-дисплея.

З різних причин (поздоровлення з входом відображається на закритому дисплеї, обмежена відеокарта не може робити 3D на обох дисплеях одночасно), я хотів би запобігти використанню X вбудованої панелі дисплея ноутбука взагалі. Хоча док-станція і на моєму столі (саме таким чином я використовую його 97% часу), я хотів би, щоб він просто не використовував інтегровану панель ноутбука. Завантаження не є особливою проблемою, оскільки за замовчуванням все відображено між двома дисплеями. Крім того, я не проти "ручного" рішення, таким чином, що мені доведеться скасовувати налаштування в тих рідкісних випадках, коли я використовую ноутбук подалі від свого робочого столу.

Після входу в систему я можу налаштувати Gnome так, що він використовує лише зовнішній монітор, а панель ноутбука позначена "вимкнено", однак це не впливає на початковий автоматично налаштований стан X та на привітання при вході в систему. Дивно, але ноутбук не має датчика кришки, тому відкриття або закриття кришки не викликає подій. Я можу використовувати xrandr -display :0 --output LVDS1 --off --output DVI1 --autoна окремому VC перед входом у систему, але це все-таки після того, як почався і виявлений факт X, і вирішили використовувати обидва екрани.

Я спробував налаштувати 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

Однак це не мало корисного ефекту. Відеокарта Intel 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

Машина працює з різними версіями Fedora Linux (x86_64) з версії 10/11). Наразі я пробую Fedora 15 beta (що включає Gnome 3), але проблема існувала в попередніх версіях ОС.


ага, гаразд - я не був впевнений, яке найкраще запитати. Я припускаю, що з реп. з 1 Я не можу перенести своє запитання між веб-сайтами SE, тому я просто мушу дозволити комусь ще?
Норки

@Norky Я поставив це питання модераторам.
Let_Me_Be

@Let_Me_Be та @Norky - це питання теж тут. Але, @Norky, якщо ви особисто хочете поставити це питання на Unix.SE, замість цього, будь ласка, не соромтеся (і @ коментар поверніться, щоб я міг видалити це), але в іншому випадку тут нічого поганого.

@ DMA57361 - У мене немає особливих уподобань, залежно від того, що ти вважаєш найкращим :)
Norky

Ах, @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

Я б запропонував дещо інший підхід, який може бути більш гнучким для тих рідкісних випадків, коли ви хочете використовувати ноутбук як ноутбук.

Залежно від диспетчера дисплеїв (можливо, GDM, KDM або LightDM), ви можете запустити сценарій під час запуску диспетчера дисплеїв. Змінений файл 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

Це дозволить перевірити, чи підключено ваш монітор DVI та якщо він включений, замість вбудованого дисплея. У мене набагато складніша версія цього способу, завдяки чому док-станція для мого ноутбука добре працює, але все ще чудово підходить для використання в інших місцях. Для мене це складніше, тому що я використовую 5 екранів на роботі.

(1) деяку інформацію про місцезнаходження файлу з http://forum.xfce.org/viewtopic.php?pid=25026#p25026


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

здається, працює для чіпа Intel NM10. У коробці є vga для "великого дисплея"


1

Якщо ви використовуєте Option "ignore" "true"в /etc/X11/xorg.confто ви не зможете використовувати цей вихід з xrandr(або в залежності інструменти) на всіх. Використовуючи цю конфігурацію, я просто відключив вихід HDMI:

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

Зауважте, що для кожного DVI-D (з повною роздільною здатністю) та відключення HDMI необхідна кожна лінія конфігурації.

Щоб знайти свої результати, запустіть 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 та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.