Tại sao các chỉnh sửa lightdm.conf của tôi không ảnh hưởng đến độ phân giải màn hình máy tính để bàn của tôi?


13

Tôi muốn thay đổi độ phân giải màn hình máy tính để bàn của tôi 1366x768. Nhưng tôi VESA drivers(AMD REDWOOD)đã không phát hiện ra độ phân giải đó. Vì vậy, tôi đã tạo ra một kịch bản shell như sau: -

xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync  
xrandr --addmode DVI-0 1368x768_60.00  
xrandr --output DisplayPort-0 --off --output DVI-0 --mode 1368x768_60.00 --pos 0x0 --rotate normal --output HDMI-0 --off

Tôi đã lưu nó như lightdmxrandr.shtrong /usr/binvà làm cho nó thực thi được. Sau đó, tôi đã thêm các dòng sau vào /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf(tương đương với dòng được biết đến /etc/lightdm/lightdm.conf. Tôi đang sử dụng tệp trên như tôi đang ở ngày 14.04 không có /etc/lightdm/lightdm.conf.): -

greeter-session=unity-greeter  
display-setup-script=/usr/bin/lightdmxrandr.sh  
session-setup-script=/usr/bin/lightdmxrandr.sh

và lưu nó. Về lý thuyết, điều này đã thay đổi cả độ phân giải màn hình đăng nhập và độ phân giải màn hình máy tính để bàn 1366x768. Nhưng đáng ngạc nhiên là điều này chỉ thay đổi độ phân giải màn hình đăng nhập. Độ phân giải máy tính để bàn không thay đổi. Sau đó tôi đã thêm tập lệnh vào các ứng dụng Khởi động và điều đó đã thay đổi độ phân giải màn hình của tôi.

Vì vậy, tôi muốn biết lý do tại sao các chỉnh sửa tôi thực hiện đối với lightdm.conftệp (hay đúng hơn là 50-ubuntu.conftệp) không ảnh hưởng đến độ phân giải màn hình của tôi. Đây có phải là một số loại lỗi phải được báo cáo tại launchpad hoặc sai khi nói rằng các chỉnh sửa trong lightdm sẽ ảnh hưởng đến màn hình máy tính để bàn?

PS: - Theo tôi, điều này không chỉ cụ thể đối với Ubuntu 14.04.

Câu trả lời:


11

Tôi đã thử một điều tương tự và sau khi gỡ lỗi, tôi nghĩ rằng tôi đã tìm ra điều gì đang xảy ra. Kịch bản của bạn có thể đang chạy và có thể đặt độ phân giải chính xác. Tuy nhiên, do được quản lý đăng nhập điều hành, nó chạy trước khi Unity hoàn tất thiết lập môi trường máy tính để bàn của bạn và Unity đọc các cài đặt của riêng nó và đặt lại độ phân giải cho những gì bạn có. Vì vậy, tôi nghĩ rằng những gì xảy ra là:

  1. lightdm chạy chính xác kịch bản của bạn
  2. Điều này đặt độ phân giải mong muốn của bạn
  3. Unity khởi chạy, đọc cài đặt của nó và trở về độ phân giải mặc định mà bạn có ở đó
  4. Nghị quyết của bạn trở lại như trước

Bây giờ, điều này xảy ra vì trình điều khiển VESA không tự động phát hiện độ phân giải mong muốn của bạn. Điều này có nghĩa là khi bạn thay đổi độ phân giải từ phần Hiển thị trong cài đặt của Unity, bạn sẽ cung cấp cho nó độ phân giải không khả dụng trừ khi bạn chạy các xrandrlệnh. Do đó, điều này được bỏ qua vào lần tới khi bạn khởi động lại và Unity trở lại độ phân giải mặc định.

Vì vậy, những gì bạn cần làm là làm cho độ phân giải có sẵn cho Unity, sau đó đặt nó làm mặc định và để nó xử lý nó. Để làm như vậy, trước tiên bạn phải thêm dòng này vào /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf:

session-setup-script=/usr/bin/lightdmxrandr.sh

Sau đó, hãy chắc chắn rằng nó /usr/bin/lightdmxrandr.shtrông như thế này:

xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync  
xrandr --addmode DVI-0 1368x768_60.00  

Lưu ý rằng tôi không thực sự thiết lập độ phân giải, chỉ làm cho nó có sẵn. Khi bạn đã thực hiện khởi động lại này, sau đó đăng nhập. Độ phân giải mới sẽ có sẵn trong Cài đặt => Hiển thị. Nếu vậy, chọn nó ở đó, đăng xuất và đăng nhập lại và độ phân giải phải được đặt chính xác. Bây giờ nó sẽ tồn tại trong suốt quá trình khởi động lại.


Cách tiếp cận khác:

  1. Tạo một /etc/X11/xorg.conftập tin liệt kê độ phân giải mong muốn của bạn. Một cái gì đó như thế này:

    Section "Monitor"
        Identifier    "Monitor0"
        Modeline "1368x768_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
    EndSection
    
    Section "Screen"
        Identifier     "Screen0"
        Device         "Card0"
        Monitor        "Monitor0"
        SubSection "Display"
            Modes       "1368x768_60.00"
        EndSubSection
    EndSection
    
    Section "Device"
        Identifier    "Card0"
        Driver        "vesa"
    EndSection
    
  2. Thêm tập lệnh chạy các xrandrlệnh vào các ứng dụng khởi động phiên của bạn.


Chỉnh sửa các tệp trong /usr/share/lightdm/lightdm.conf.d/ là cách thay đổi lightdm.conf sai. Trang dự án LightDM nói rằng quản trị viên hệ thống có thể ghi đè cấu hình mặc định trong /etc/lightdm/lightdm.conf.d/ hoặc /etc/lightdm/lightdm.conf Bạn không nên chỉnh sửa các tệp trong / usr / share / lightdm / vì trong khi nó có thể hoạt động trong một thời gian, nó có thể bị ghi đè bởi các bản cập nhật gói Nguồn: Trang dự án LightDM freedesktop.org/wiki/Software/LightDM Vui lòng sửa câu trả lời của bạn
happyskeptic

3
Tôi không có đủ danh tiếng để thêm một nhận xét đơn giản, nhưng tôi muốn chỉ ra rằng tệp sh cần phải được cấp phép để thực thi. OP đã đề cập rằng anh ấy / cô ấy đã làm điều này, nhưng câu trả lời của terdon không bao gồm nó trong các bước. Nếu nó không được thực thi thì bạn sẽ phải thả xuống một dấu nhắc lệnh vì nó sẽ không đăng nhập (ít nhất là nó không dành cho tôi). Đó là một sự giám sát đơn giản về phía tôi, nhưng chỉ trong trường hợp bất kỳ ai khác bỏ qua bước đó tôi muốn nhắc lại ở đây.
Kirk Spencer
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.