이상한 경우에는 일반적으로 컴퓨터를 잘못 다시 시작한 후 로그인 화면 해상도가 기본 1440x900이 아니지만 1600x900이라고 생각합니다. 이제이 모니터는 처리하도록 설계되지 않은 해상도를 처리하는 데 실제로 좋지 않으며 화면 주위를 어리석은 "잘못된 해상도"상자로 표시됩니다.
로그인 화면이 1440x900 해상도로로드되도록하는 방법이 있습니까? Unity 및 LightDM으로 Ubuntu 11.10을 실행하고 있습니다.
이상한 경우에는 일반적으로 컴퓨터를 잘못 다시 시작한 후 로그인 화면 해상도가 기본 1440x900이 아니지만 1600x900이라고 생각합니다. 이제이 모니터는 처리하도록 설계되지 않은 해상도를 처리하는 데 실제로 좋지 않으며 화면 주위를 어리석은 "잘못된 해상도"상자로 표시됩니다.
로그인 화면이 1440x900 해상도로로드되도록하는 방법이 있습니까? Unity 및 LightDM으로 Ubuntu 11.10을 실행하고 있습니다.
답변:
이를 위해 스크립트를 작성할 수 있습니다 (소스 LightDM Resolution ).
terminal
유니티 대시에 입력 을 시작하여 옵션을 보거나 Ctrl+ Alt+를 누릅니다.T디스플레이 세부 사항을 표시하려면이 명령을 입력 / 복사하십시오.
xrandr -q
모니터가 하나 뿐인 경우 다음과 같이 출력에 한 줄이 표시됩니다 (아마도 다른 값을 가지면 그 시작 부분의 식별자).
DVI-0 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 473mm x 296mm
이 경우 화면 식별자는 DVI-0입니다.
좋아하는 텍스트 편집기를 열고이 예제에 gedit를 사용 하고 Alt+를 누른 다음F2gedit
다음을 입력하거나 복사하십시오 :
#!/bin/sh
xrandr --output DVI-0 --primary --mode 1440x900
이것을 데스크탑에 다음과 같이 저장하십시오 lightdmxrandr.sh
실제로 사용하기 전에 스크립트를 테스트 할 수 있습니다. 터미널로 돌아가 방금 저장 한 위치로 이동합니다.
cd ~/Desktop
이제 실행 가능하게 만들어야합니다.
chmod a+rx lightdmxrandr.sh
이제 실행하십시오.
./lightdmxrandr.sh
(로그인 후 화면이 자동으로 수정되는 경우 차이가 표시되지 않으므로 테스트 해상도가 다르지만 테스트 중에는 작동하는 것으로 알고있을 수 있습니다)
이제 우리가 만든 작은 스크립트를 옮깁니다.
sudo mv ~/Desktop/lightdmxrandr.sh /usr/share/.
사용하지 않으면 sudo
권한 오류가 발생할 수 있습니다 (개인 폴더에서이 폴더를 사용합니다)
이제 이것을 lightdm에서 실행하고 올바른 폴더로 이동해야합니다.
cd /etc/lightdm
lightdm conf 파일을여십시오 :
sudo gedit lightdm.conf
이제 마지막 줄 다음에 스크립트를 실행하는 지침을 추가하고 저장하십시오.
display-setup-script=/usr/share/lightdmxrandr.sh
이제 재부팅하면 lightdm 로그인 화면에서 올바른 해상도를 설정해야합니다.
(이러한 지침은 시간이 오래 걸릴 수 있지만 시간이 오래 걸리지 않습니다)
chown root:root
또한 그것이 있어야한다고 생각 합니까?
13.04를 실행하는 데 완벽하게 작동하는 매우 간단한 해결 방법을 찾았습니다. 영구적으로 연결되지 않은 24 인치 외부 화면이있는 랩톱에서 ( 업데이트 : 13.10)
- 로그인
- xrandr 또는 디스플레이 제어 유틸리티를 사용하여 로그인 화면에서 모니터를 구성 할 방법을 모니터하십시오
- ~ / .config / monitors.xml을 /var/lib/lightdm/.config로 복사하십시오.
이미 모니터를 올바르게 구성 했으므로 3 단계 만 수행하면됩니다.
여기에 주어진 다른 답변은 저에게 효과적이지만 다른 시나리오에서는 사용할 수없는 시스템 위험을 발생시키는 동안 특정 시나리오에서만 작동했습니다 (LOW GRAPHICS MODE ERROR). 예를 들어 외부 모니터가 영구적으로 연결되어 있거나 (@captain_G가 응답을 수락 함) 항상 외부 모니터에 사용 된 출력에 동일한 장치가 연결되어있는 경우 (@Axlrod의 스크립트). @MarcoV의 답변이 가장 일반적인 솔루션 인 것 같지만 여전히 스크립팅 규칙이 포함됩니다.
$ sudo ln ~/.config/monitors.xml /var/lib/lightdm/.config/monitors.xml
(아니요, 심볼릭 링크는 작동하지 않습니다.)
monitors.xml
됩니까? XFCE를 사용하고 있는데이 파일은 2 살이며 완전히 구식입니다. 비슷한 파일을 찾을 수 없습니다.
랩톱 연결을 끊고없이 사용할 수있는 다중 모니터 설정의 경우 간단한 해결책은 다음과 같습니다.
운영:
xrandr
랩톱을 사용하는 장치는 일반적으로 LVDS1이며 DP2 (디스플레이 포트 2)가 HDMI1 또는 다른 장치 일 수 있습니다. 해당 장치 옆에 해상도가있는 장치를 찾으십시오.
이 작은 bash 파일을 작성하십시오.
#!/bin/bash
mode="$(xrandr -q|grep -A1 "DP2 connected"| tail -1 |awk '{ print $1 }')"
if [ -n "$mode" ]; then
xrandr --output LVDS1 --off
xrandr --output DP2 --primary --mode 2540x1440
fi
LVDS1을 랩탑 모니터 연결로 교체하십시오.
DP2를 외부 모니터 연결로 교체하십시오.
bash 스크립트를 / usr / bin / local /에 배치하십시오.
chmod + x 스크립트
/etc/lightdm/lightdm.conf 편집
더하다
display-setup-script=/path/to/my/script
재부팅하십시오.
해상도 변경은 실제로 해당 디스플레이에있을 때만 발생합니다.
동일한 커넥터에 다른 모니터 / 해상도를 가진 여러 장소가있는 경우 bash 스크립트에 더 많은 정보를 제공해야합니다.
위의 Axlrod의 스크립트가 약간 개선되었습니다 .
기본 모니터를 사용할 모니터와 노트북 디스플레이 (LVDS)를 지정하기 만하면됩니다.
#! / bin / bash LVDS = "LVDS-0" PRIMARY = "VGA-0" get_displays () 함수 { xrandr -q | 그렙 연결 | awk '{print $ 1}' } get_resolution () 함수 { [[-z "$ 1"]] && 리턴 0 || xrandr -q | grep -A1 $ 1 | 꼬리 -1 | awk '{print $ 1}'| grep -e "^ [0-9]" } $ (get_displays)로 표시; 하다 resolution =`get_resolution $ display` [[$ display == $ PRIMARY]] && arg = "-기본"; [[-n $ resolution]] && mode = "-mode $ resolution"; 만약 [[$ display == $ LVDS]]; 그때 xrandr --output $ display --off elif [[-n $ mode]]; 그때 xrandr --output $ display $ arg $ mode fi 설정되지 않은 모드 인수 분해능; 끝난
sudo gedit /usr/share/X11/xorg.conf.d/52-myres.conf
그런 다음 파일에서 :
Section "Monitor"
Identifier "VGA1"
Option "PreferredMode" "1152x864"
EndSection
저장 및 종료. 값은 command에서 얻었습니다 xrandr -q
. VGA1
내 커넥터 1152x864
의 이름이며 해상도의 이름입니다.
이것은 Xubuntu 16.04에서 작동합니다. 기본 해상도를 설정하고 기본적으로 지원되는 최고 해상도로 설정하는 대신 로그인 화면의 해상도를 설정할 수 있습니다.
여기 에서 답변을 수정
내가 유용하다고 생각한 것은 Ubuntu 안내서 웹 사이트 의 게시물이었습니다 . 나는 우분투 11.10에서 너무 많은 것을 시도했고 심지어 그놈 클래식을 사용하려고했습니다. 해상도는 항상 1024x768이고 수동으로 1440x900으로 설정했을 때 "가상"이었습니다. 실제 화면 크기를 넘어서는 전체 데스크톱을 탐색하려면 마우스로 스크롤해야했습니다.
터미널 에서이 명령을 실행했습니다.
sudo gedit /etc/default/grub
텍스트 편집기를로드하는 데 시간이 걸릴 수 있습니다. 일단로드되면 라인을 편집했습니다.
GRUB_GFXMODE=1024x768
그것을 다음과 같이 변경했습니다 :
GRUB_GFXMODE=1440x900
update-grub
변경 사항을 적용 하기 위해 실행 해야합니다.
그 후 VESA 드라이버를 다시 설치하려고했습니다 (이 컴퓨터에는 GeForce 260 GTX가 있습니다). 더 좋은 방법은 Nvidia 공식 드라이버를 사용하는 것이지만 문제는 항상 동일하다는 것을 알고 있습니다. 물론 지금은 성능이 떨어질 것입니다.
따라서 Nvidia X Server 설정 패널을 확인하면 해상도가 추가되었음을 확인하고 전환하면 화면이 올바르게 보입니다. 실제로 나는 우분투 11.10을 사용하고 있지만 그놈 클래식에서는 사용하고 있습니다.
나는 리눅스의 초보자이므로 괜찮은 것들을 작성했으면 좋겠다.
로그인 화면을 사용할 수 없게하는 스크립트 또는 구성 파일을 사용하지 마십시오!
대신 로그인하여 원하는 화면 설정 *을 설정 한 후 다음 명령을 실행하십시오.
sudo ln ~/.config/monitors.xml /var/lib/lightdm/.config/monitors.xml
로그인 해상도에는 항상 현재 로그인 한 사용자의 설정이 반영됩니다.
* "적용"을 클릭하는 것을 잊지 마십시오
Axelrod의 스크립트는 다소 결함이 있습니다. 'connected'에 대한 grep이 모든 'disconnected'디스플레이를 잡습니다.
또한, awk와 tail 등으로 grep을 사용하는 것은 낭비 적이며, 다음과 같이 제안합니다. 또한 get_resolution에서 리턴 코드를 1로 변경합니다. 리턴 코드 0은 일반적으로 오류가 없음을 나타내므로 첫 번째 매개 변수가 없으면 1을 사용합니다.
결론적으로 스크립트의 주요 부분에 함수를 인스턴스화하면 함수 라이브러리에 필요할 때 추가로 소스를 작성하고 실행할 수 있으며 설정하지 않아도되는 로컬 변수의 사용을 얻을 수 있습니다.
function get_displays()
{
xrandr -q | awk '($2 == "connected") {print $1;}'
};
# the "\" and c/r were added for readability on this website
# I do not have them in my code variant that I use.
function get_resolution()
{
[[ -z "$1" ]] && return 1;
xrandr -q | \
awk -v display="$1" '($1 == display && $2 == "connected") {getline; print $1;}';
};
function setup_displays()
{
local primary=${2:-"VGA-0"};
local lvds=${3:-"LVDS-0"};
for display in $(get_displays);
do
local resolution=${1:-"$(get_resolution $display)"};
[[ $display == $primary ]] && local arg="--primary";
[[ -n $resolution ]] && local mode="--mode $resolution";
if [[ $display == $lvds ]];
then
xrandr --output $display --off;
elif [[ -n $mode ]];
then
xrandr --output $display $arg $mode;
fi;
done;
};
setup_displays;
이것이 내가 Xubuntu 16.04에서 작동하게하는 방법입니다.
원하는 해상도를 얻으려면 문자열을 따라야합니다. 이것은 명령 결과 내에 있습니다.
xrandr --verbose
이제 원하는 해상도로 부품을 선택하십시오. 다음과 같이 보일 것입니다 :
1152x864 (0xa6) 108.000MHz +HSync +VSync
h: width 1152 start 1216 end 1344 total 1600 skew 0 clock 67.50KHz
v: height 864 start 865 end 868 total 900 clock 75.00Hz
위의 데이터에서 문자열을 가져와야합니다 108.000 1152 1216 1344 1600 864 865 868 900 +HSync +VSync
.
출력 이름을 찾으려면 비슷한 줄을 찾으십시오.
VGA1 connected 1152x864+0+0 (0xa4) normal (normal left inverted right x axis y axis) 306mm x 230mm
여기 내 출력의 이름은 VGA1
입니다.
이제 스크립트를 작성하십시오.
sudo gedit /usr/share/lightdmxrandr.sh
그런 다음 파일에 다음을 작성하십시오.
#!/bin/sh
xrandr --newmode "1152x864_75.00" 108.000 1152 1216 1344 1600 864 865 868 900 +HSync +VSync
xrandr --addmode VGA1 "1152x864_75.00"
xrandr --output VGA1 --mode 1152x864_75.00 --pos 0x0 --rotate normal
파일을 저장하고 닫습니다. 스크립트를 실행 가능하게 만드십시오.
sudo chmod a+rx /usr/share/lightdmxrandr.sh
구성 파일을 작성하여 방금 작성한 스크립트를 호출하십시오.
sudo gedit /etc/lightdm/lightdm.conf.d/00-myres.conf
이 파일 안에 다음을 입력하십시오.
[Seat:*]
display-setup-script=/usr/share/lightdmxrandr.sh
파일을 저장하고 닫습니다. 다시 시작하면 원하는 해상도로 로그인하면됩니다.
기존의 해상도를 재현하는 것이 논리적이지 않더라도 실제로는 이것이 나를 위해 일한 유일한 방법입니다.
이 질문 에서 답변이 수정되었습니다 .
노트
긴 해상도 문자열을 얻는 다른 방법은 프로그램 cvt
입니다. 해상도 1152x864의 문자열을 얻으려면 새로 고침 빈도 75.00 :
cvt 1152 864 75
이것은 저의 데스크탑 해상도와 약간 다른 해상도를 제공했으며, 주 답변에 방법을 포함시키지 않은 이유입니다.
LightDM의 GTK greeter를 사용하는 경우 xrandr -q
모니터 이름을 찾은 다음 해당 파일 내의 주석에 설명 된대로 /etc/lightdm/lightdm-gtk-greeter
속성 을 편집 하고 설정할 active-monitor
수 있습니다. 이 속성은 #cursor
현재 마우스 커서를 표시하는 모니터를 포함하여 여러 개의 정렬 된 값을 사용할 수 있습니다 .
모니터가 높은 화면 해상도를 선호한다고보고합니다. 이제이 기본 환경 설정 을 무시하고 싶습니다 . 이 작업을 수행하는 방법에 대한 자세한 내용 은 매우 유사한 질문에 대한 내 답변을 참조하십시오 .
나는 반대의 문제가 있었다 : 나는 항상 내가 원했던 것 (1600x1200)보다 낮은 화면 해상도 (1280x1024)를 얻었다. 내가 찾은 (그리고 링크 된 답변에 설명 된) 수정은 문제와 유사하게 적용될 수 있기를 바랍니다.
2014 년 중반 (11,1)의 Xenial을 실행하는 MacBook Pro에서 동일한 문제가 발생했습니다. 위에서 언급 한 모든 솔루션을 다양한 형태로 시도했지만 항상 X가 안전 장치가 낮은 그래픽 모드로 전환됩니다 (그러나 매우 해상도로 표시되어 기본값으로 설정하기를 원했습니다).
포럼과 인터넷 검색을 많이 마친 후에는 가장 간단하고 기본적인 해결책 인 nomodeset을 잊어 버린 것으로 나타났습니다. 문제가 해결되었습니다.
TL; DR : nomodeset을 시도하는 것을 잊지 마십시오! Esp. MacbookPro 11,1에서