bagaimana cara mencegah Xorg menggunakan panel layar laptop Linux saya?

12

Saya punya laptop (~ 5 tahun HP compaq nc6400 menjalankan Fedora Linux) yang saya gunakan sebagian besar waktu sebagai mesin desktop. Ini dicolokkan ke stasiun dok dengan tutupnya ditutup dan dihubungkan melalui kabel DVI ke layar LCD eksternal yang besar.

Karena berbagai alasan (penyambut masuk muncul pada layar tertutup, kartu grafis terbatas tidak dapat melakukan 3D untuk kedua layar sekaligus) Saya ingin mencegah panel layar terintegrasi laptop yang digunakan oleh X sama sekali. Sementara merapat dan di atas meja saya (yang merupakan cara saya menggunakannya sekitar 97% dari waktu) saya ingin itu tidak menggunakan panel laptop terintegrasi. Booting bukanlah masalah khusus, karena secara default semuanya tercermin di antara dua layar. Juga, saya tidak keberatan dengan solusi 'manual', sehingga saya harus membatalkan pengaturan pada kesempatan-kesempatan langka ketika saya menggunakan laptop jauh dari meja saya.

Setelah masuk saya dapat mengkonfigurasi Gnome sehingga hanya menggunakan monitor eksternal dan panel laptop ditandai "mati", namun ini tidak berpengaruh pada keadaan awal X yang dikonfigurasikan secara otomatis dan tampilan penyambut pra-masuk. Anehnya laptop ini tampaknya tidak memiliki sensor tutup, sehingga membuka atau menutup tutupnya tampaknya tidak memicu peristiwa apa pun. Saya dapat menggunakan xrandr -display :0 --output LVDS1 --off --output DVI1 --autoVC terpisah sebelum login, tetapi ini masih setelah fakta bahwa X telah memulai dan menemukan dan memutuskan untuk menggunakan kedua tampilan.

Saya mencoba mengkonfigurasi Xorg dengan membuat file /etc/X11/xorg.conf.d/01-turn-off-laptop-display.confyang berisi:

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

Namun itu tidak memiliki efek yang bermanfaat. Kartu video adalah 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

Mesin telah menjalankan berbagai versi Fedora Linux (x86_64) sejak sekitar versi 10/11). Saya saat ini mencoba Fedora 15 beta (yang mencakup Gnome 3), tetapi masalahnya sudah ada dalam rilis OS sebelumnya.

Norky
sumber
ahh, oke - saya tidak yakin mana tempat terbaik untuk bertanya. Saya kira dengan perwakilan. 1 Saya tidak bisa memindahkan pertanyaan saya di antara situs SE jadi saya harus membiarkan orang lain melakukannya?
Norky
@Norky Saya telah menandai pertanyaan untuk moderator.
Let_Me_Be
@Let_Me_Be dan @Norky - pertanyaan ini juga tentang topik di sini. Tapi, @Norky, jika Anda secara pribadi lebih memilih untuk mengajukan pertanyaan pada Unix.SE daripada silakan merasa bebas (dan @ komentar akan kembali sehingga saya dapat menghapus yang ini), tetapi jika tidak, tidak ada yang salah dengan itu di sini.
@ DMA57361 - Saya tidak punya preferensi tertentu, mana pun yang menurut Anda terbaik :)
Norky
Ah, @Norky, intinya adalah Anda bisa menggunakan mana saja yang menurut Anda terbaik - ini pertanyaan Anda dan itu benar-benar valid di kedua situs, Anda hanya akan mendapat jawaban dari komunitas yang berbeda. Jadi, jika Anda setuju dengan itu di sini, kami akan meninggalkannya di sini untuk saat ini. Namun, jika posting belum menerima jawaban dalam waktu dekat @ me kembali lagi dan saya akan mengubahnya untuk Anda.

Jawaban:

9

Saya dapat mencapai tujuan yang diinginkan dengan xorg.conf berikut:

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

elemen kritis adalah Option "Ignore" "true". Saya mungkin bisa menyederhanakan ini lebih lanjut, tetapi berhasil. Saya belum tahu apa yang akan terjadi ketika / jika saya menggunakan laptop jauh dari layar eksternal, mungkin X akan keluar dengan kesalahan - bukan solusi yang sempurna tetapi saya dapat memindahkan konfigurasi keluar dari jalan dalam acara itu.

Norky
sumber
4

Saya akan menyarankan pendekatan yang sedikit berbeda yang mungkin lebih fleksibel untuk kesempatan-kesempatan langka yang ingin Anda gunakan laptop sebagai laptop.

Bergantung pada manajer tampilan Anda (mungkin GDM, KDM, atau LightDM), Anda dapat menjalankan skrip saat manajer tampilan dijalankan. Anda tidak memerlukan file xorg.conf yang dimodifikasi sama sekali. lokasi skrip adalah sebagai berikut (1):

  • KDM: / etc / kde / kdm / Xsetup (di bagian bawah)
  • SDDM: / etc / X11 / xdm / Xsetup (di bagian bawah)
  • XDM: / etc / X11 / xdm / Xsetup (di bagian bawah)
  • GDM: / etc / gdm / Init / Default - letakkan kode skrip tepat di atas baris "/ sbin / initctl". (1)
  • LightDM: /etc/lightdm/lightdm.conf - "display-setup-script =" menunjuk ke skrip di mana pun Anda inginkan. Pastikan baris pertama skrip adalah #! / Bin / sh dan dapat dieksekusi.

Skripnya bisa seperti ini. Anda harus mengganti nama monitor dengan nama yang sesuai untuk mesin Anda. Saya sudah mencoba menebak berdasarkan xorg.conf Anda di atas.

/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

Ini akan menguji apakah monitor DVI Anda terhubung, dan jika diaktifkan bukan tampilan bawaan. Saya memiliki versi yang jauh lebih rumit dari ini yang membuat laptop saya bekerja dengan baik, tetapi masih baik untuk digunakan di tempat lain. Ini lebih rumit bagi saya karena saya menggunakan 5 layar di tempat kerja.

(1) beberapa info lokasi file dari http://forum.xfce.org/viewtopic.php?pid=25026#p25026

tukang stonecrusher
sumber
3

versi xorg.conf dari postingan sebelumnya yang sedikit dimodifikasi

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

tampaknya bekerja untuk chip intel NM10. Kotak telah vga keluar untuk "layar besar"

tpost
sumber
1

Jika Anda menggunakan Option "ignore" "true"di /etc/X11/xorg.confmaka Anda tidak akan dapat menggunakan output itu dengan xrandr(atau bergantung alat) sama sekali. Menggunakan konfigurasi ini, saya baru saja menonaktifkan output HDMI saya:

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

Perhatikan bahwa setiap baris konfigurasi diperlukan untuk mengaktifkan DVI-D (pada resolusi penuh) dan untuk menonaktifkan HDMI.

Untuk menemukan output Anda berjalan xrandr -qdan beradaptasi Option "Monitor-...sesuai. Bagian manual yang relevan adalah:

   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)
Jakob
sumber