lightdm.conf 편집 내용이 데스크탑 화면 해상도에 영향을 미치지 않는 이유는 무엇입니까?


13

데스크탑 화면 해상도를로 변경하고 싶었습니다 1366x768. 그러나 나는 VESA drivers(AMD REDWOOD)그 해상도를 감지하지 못했습니다. 그래서 다음과 같이 쉘 스크립트를 작성했습니다.

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

나는로 저장 lightdmxrandr.sh에서 /usr/bin그것을 실행했다. 그런 다음 다음 줄을 추가했습니다 /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf(잘 알려진 것과 동일합니다 /etc/lightdm/lightdm.conf. 14.04에있는 위의 파일을 사용하지 않는 위의 파일을 사용하고 /etc/lightdm/lightdm.conf있습니다.) :-

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

저장했습니다. 이론적으로 이것은 로그인 화면 해상도와 데스크탑 화면 해상도를 모두로 변경해야합니다 1366x768. 그러나 놀랍게도 이것은 로그인 화면 해상도 만 변경했습니다. 데스크탑 해상도는 변경되지 않았습니다. 나중에 시작 응용 프로그램에 스크립트를 추가했는데 데스크톱 해상도가 변경되었습니다.

그래서 lightdm.conf파일 (또는 50-ubuntu.conf파일)에 대한 편집 내용이 데스크탑 해상도에 영향을 미치지 않은 이유를 알고 싶습니다 . 런치 패드에서보고해야하는 일종의 버그입니까, 아니면 lightdm에서 편집 한 내용이 데스크탑 화면에 영향을 준다고 말하는 것은 잘못된 것입니까?

추신 :-내 의견으로는 이것은 우분투 14.04에만 국한되지 않습니다.

답변:


11

나는 비슷한 일을 시도하고 디버깅 한 후에 무슨 일이 일어나고 있는지 생각합니다. 스크립트 실행되어 해상도를 올바르게 설정했을 수 있습니다. 그러나 로그인 관리자가 실행하기 때문에 Unity가 데스크탑 환경 설정을 마치고 Unity가 자체 설정을 읽고 해상도를 사용자 설정으로 재설정하기 전에 실행됩니다. 그래서 나는 일어난 일이 있다고 생각합니다.

  1. lightdm은 스크립트를 올바르게 실행합니다
  2. 원하는 해상도를 설정합니다
  3. Unity가 시작되고 설정을 읽고 기본 해상도로 돌아갑니다
  4. 당신의 결심은 이전의 상태로 돌아갑니다

이제는 VESA 드라이버가 원하는 해상도를 자동으로 감지하지 않기 때문에 발생합니다. 즉, Unity 설정의 디스플레이 섹션에서 해상도를 변경하면 xrandr명령 을 실행하지 않으면 사용할 수없는 해상도가 제공됩니다 . 따라서 다음에 다시 시작하면 Unity가 무시되고 Unity가 기본 해상도로 돌아갑니다.

따라서 필요한 것은 해상도를 Unity에서 사용할 수있게 한 다음 기본값으로 설정하고 처리하도록하는 것입니다. 이렇게하려면 먼저이 줄을 /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf다음에 추가해야합니다 .

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

그런 다음 /usr/bin/lightdmxrandr.sh다음과 같이 표시하십시오.

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

실제로 해상도를 설정 하지 않고 사용 가능하게 만듭니다. 다시 시작한 후에는 로그인하십시오. 이제 새로운 해상도를 설정 => 디스플레이에서 사용할 수 있습니다. 그렇다면 선택하고 로그 아웃했다가 다시 로그인하면 해상도가 올바르게 설정되어 재부팅 후에도 계속 유지됩니다.


대체 접근법 :

  1. /etc/X11/xorg.conf원하는 해상도가 나열된 파일만듭니다 . 이 같은:

    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. xrandr명령을 실행하는 스크립트를 세션의 시작 응용 프로그램에 추가하십시오.


/usr/share/lightdm/lightdm.conf.d/에서 파일을 편집하는 것은 lightdm.conf를 변경하는 잘못된 방법입니다. 시스템 관리자가 /etc/lightdm/lightdm.conf.d/ 또는 /etc/lightdm/lightdm.conf의 기본 구성을 무시할 수 있다고 LightDM 프로젝트 페이지에 표시되어 있습니다. / usr / share / lightdm /에서 파일을 편집해서는 안됩니다. 패키지 업데이트로 덮어 쓰기 쉬워 질 수도 있습니다. 출처 : LightDM 프로젝트 페이지 freedesktop.org/wiki/Software/LightDM 답변을 수정하십시오
happyskeptic

3
간단한 의견을 추가 할만 큼 평판이 좋지 않지만 sh 파일에 실행 권한이 필요하다는 것을 지적하고 싶었습니다. OP는이를 수행했다고 언급했지만, terdon의 답변은이를 단계에 포함시키지 않았습니다. 실행 파일이 아닌 경우 로그인하지 않기 때문에 명령 프롬프트로 드롭 다운해야합니다 (적어도 나를 위해하지 않았습니다). 그것은 내 부분에 대한 간단한 감독이었습니다. 그러나 다른 누군가가 그 단계를 간과하는 경우를 대비하여 여기서 반복하고 싶습니다.
Kirk Spencer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.