Làm cách nào để ngăn Xorg sử dụng bảng hiển thị của máy tính xách tay Linux của tôi?


12

Tôi có một máy tính xách tay (HP compaq nc6400 ~ 5 tuổi chạy Fedora Linux) mà tôi sử dụng hầu hết thời gian như một máy tính để bàn. Nó được cắm vào một đế cắm với nắp được đóng và kết nối thông qua đó bằng cáp DVI với màn hình LCD lớn bên ngoài.

Vì nhiều lý do (lời chào đăng nhập xuất hiện trên màn hình đóng, card đồ họa giới hạn không thể thực hiện 3D cho cả hai màn hình cùng một lúc) Tôi muốn ngăn bảng điều khiển hiển thị tích hợp của máy tính xách tay được sử dụng bởi X. Trong khi cập cảng và trên bàn làm việc của tôi (đó là cách tôi sử dụng khoảng 97% thời gian), tôi muốn đơn giản là không sử dụng bảng điều khiển máy tính xách tay tích hợp. Khởi động không phải là một vấn đề cụ thể, vì theo mặc định, mọi thứ đều được nhân đôi giữa hai màn hình. Ngoài ra, tôi không bận tâm đến giải pháp 'thủ công', vì vậy tôi phải hoàn tác cài đặt vào những dịp hiếm hoi khi tôi sử dụng máy tính xách tay cách xa bàn làm việc.

Sau khi đăng nhập, tôi có thể định cấu hình Gnome để nó chỉ sử dụng màn hình ngoài và bảng điều khiển máy tính xách tay được đánh dấu "tắt", tuy nhiên điều này không ảnh hưởng đến trạng thái tự động cấu hình ban đầu của X và màn hình chào hỏi đăng nhập trước. Đáng ngạc nhiên là máy tính xách tay dường như không có cảm biến nắp, vì vậy việc mở hoặc đóng nắp không xuất hiện để kích hoạt bất kỳ sự kiện nào. Tôi có thể sử dụng xrandr -display :0 --output LVDS1 --off --output DVI1 --autotrên một VC riêng trước khi đăng nhập, nhưng đây vẫn là sau khi X đã bắt đầu và phát hiện và quyết định sử dụng cả hai màn hình.

Tôi đã thử cấu hình Xorg bằng cách tạo một tệp /etc/X11/xorg.conf.d/01-turn-off-laptop-display.confchứa:

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

Tuy nhiên, điều đó không có tác dụng hữu ích. Thẻ video là 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

Máy đã chạy các phiên bản khác nhau của Fedora Linux (x86_64) kể từ khoảng phiên bản 10/11). Tôi hiện đang dùng thử Fedora 15 beta (bao gồm Gnome 3), nhưng vấn đề đã tồn tại trong các phiên bản HĐH trước.


à, được thôi - tôi không chắc đó là nơi tốt nhất để hỏi. Tôi đoán với một đại diện. 1 Tôi không thể di chuyển câu hỏi của mình giữa các trang SE vì vậy tôi phải để người khác làm điều đó?
Norky

@Norky Tôi đã gắn cờ câu hỏi cho người điều hành.
Let_Me_Be

@Let_Me_Be và @Norky - câu hỏi này cũng thuộc chủ đề ở đây. Nhưng, @Norky, nếu cá nhân bạn muốn đặt câu hỏi lên Unix.SE thì xin vui lòng (và @ bình luận trở lại để tôi có thể xóa câu hỏi này), nhưng nếu không thì không có gì sai ở đây.

@ DMA57361 - Tôi không có sở thích cụ thể nào, bạn nghĩ là tốt nhất :)
Norky

À, @Norky, vấn đề là bạn có thể sử dụng bất cứ điều gì bạn nghĩ là tốt nhất - đó là câu hỏi của bạn và nó hoàn toàn hợp lệ trên cả hai trang web, bạn sẽ nhận được câu trả lời từ một cộng đồng khác. Vì vậy, nếu bạn ổn với nó ở đây, chúng tôi sẽ để nó ở đây bây giờ. Tuy nhiên, nếu bài đăng chưa nhận được câu trả lời trong tương lai gần, @ tôi sẽ quay lại và tôi sẽ chuyển nó cho bạn.

Câu trả lời:


9

Tôi đã có thể đạt được mục tiêu mong muốn với xorg.conf sau:

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

những yếu tố quan trọng là Option "Ignore" "true". Tôi có thể đơn giản hóa điều này hơn nữa, nhưng nó hoạt động. Tôi vẫn chưa biết điều gì sẽ xảy ra khi / nếu tôi sử dụng máy tính xách tay ra khỏi màn hình ngoài, có thể X sẽ thoát với một lỗi - không phải là một giải pháp hoàn hảo nhưng tôi có thể di chuyển cấu hình ra khỏi sự kiện đó.


4

Tôi sẽ đề xuất một cách tiếp cận hơi khác có thể linh hoạt hơn cho những dịp hiếm hoi bạn muốn sử dụng máy tính xách tay làm máy tính xách tay.

Tùy thuộc vào trình quản lý hiển thị của bạn (có thể là GDM, KDM hoặc LightDM), bạn có thể chạy tập lệnh khi trình quản lý hiển thị khởi động. Bạn sẽ không cần một tệp xorg.conf đã sửa đổi. vị trí cho tập lệnh như sau (1):

  • KDM: / etc / kde / kdm / Xsetup (ở dưới cùng)
  • SDDM: / etc / X11 / xdm / Xsetup (ở dưới cùng)
  • XDM: / etc / X11 / xdm / Xsetup (ở dưới cùng)
  • GDM: / etc / gdm / init / Mặc định - đặt mã tập lệnh ngay phía trên dòng "/ sbin / initctl". (1)
  • LightDM: /etc/lightdm/lightdm.conf - "display-setup-script =" trỏ đến tập lệnh bất cứ nơi nào bạn muốn. Đảm bảo dòng đầu tiên của tập lệnh là #! / Bin / sh và nó có thể thực thi được.

Kịch bản có thể là một cái gì đó như thế này. Bạn sẽ cần thay thế tên màn hình bằng tên phù hợp với máy của bạn. Tôi đã cố gắng đoán dựa trên xorg.conf của bạn ở trên.

/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

Điều này sẽ kiểm tra xem màn hình DVI của bạn có được kết nối hay không và nếu nó được bật thay vì màn hình tích hợp. Tôi đã có một phiên bản phức tạp hơn nhiều về điều này làm cho máy tính xách tay của tôi hoạt động tốt, nhưng vẫn ổn để sử dụng ở nơi khác. Nó phức tạp hơn đối với tôi vì tôi đang sử dụng 5 màn hình tại nơi làm việc.

(1) một số thông tin vị trí tệp từ http://forum.xfce.org/viewtopic.php?pid=25026#p25026


3

phiên bản sửa đổi một chút của xorg.conf của bài trước

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

dường như làm việc cho chip intel NM10. Hộp có vga ra cho "màn hình lớn"


1

Nếu bạn sử dụng Option "ignore" "true"trong /etc/X11/xorg.confthì bạn sẽ không thể sử dụng mà sản lượng với xrandr(hoặc các công cụ tùy) ở tất cả. Sử dụng cấu hình này, tôi vừa tắt đầu ra HDMI của mình:

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

Lưu ý rằng mọi dòng cấu hình đơn là cần thiết để bật DVI-D (ở độ phân giải đầy đủ) và để tắt HDMI.

Để tìm đầu ra của bạn chạy xrandr -qvà thích ứng cho phù Option "Monitor-...hợp. Các phần trang có liên quan là:

   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)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.