Linux : 명령 행에서 기본 디스플레이 (nvidia) 설정


6

이게 가능해?

일반적으로 disper외부 모니터를 활성화 하는 데 사용하지만 두 번째 모니터를 기본 모니터로 강제 설정할 수는 없습니다. http://willem.engen.nl/projects/disper/

나는 nv-control-dpynvidia-control 소스에 포함되어 놀았 지만 아직 어떻게해야하는지 알지 못했습니다. 받는 방법 : http://ubuntuforums.org/showthread.php?t=922956

편집하다

이것은 노트북인데, 일할 때 외부 HDMI 디스플레이를 연결합니다. dipser -e데스크탑은 나를 위해 확장되지만 랩톱은 기본 데스크탑으로 유지됩니다 (패널을 잡고 있음). nvidia-settings기본 모니터를 설정할 수 있지만 cli를 사용하고 싶습니다.


여기 하드웨어가 무엇입니까? 외부 모니터가 장착 된 노트북? 하나의 GPU에 두 개의 모니터가 연결되어 있습니까? 두 GPU?
quack quixote

엔비디아 바이너리 드라이버 ... 충분히 말했다. 이것은 아마도 xrandr를 사용하면 정말 쉬울 것입니다. 그러나 nvidia 드라이버는 독점 트윈 뷰만 지원합니다.
Broam

답변:


3

nvidia-setting v 1.0을 사용하여 우분투 10.04에서 2.3 버전을 가지고 있기 때문에 당신이 의미하는 바를 정확하게 수행합니다.


버그 수정에 따라 :

이것은 한 번 큰 것으로 나열되었습니다 :

https://bugs.launchpad.net/disper/+bug/321288

버전 2.1에서는 20010-04에서 요청한대로 작동해야하며 '버그 수정'은 2009 년 2 월 16 일에 확인되었습니다.

내가 가진 것

사용하여:

disper -l

나는 내 장치를 보았다 :

  • DFP-0 : LGD (노트북 디스플레이)
  • CRT-0 : 삼성 SyncMaster (외부 모니터)

(xrandr로 쿼리하여 외부 장치가 표시되지 않음)

내가 원하는 것과 어떻게

노트북 오른쪽에모니터는 왼쪽에 , 내가 확장 할 수있는 노트북을 원하는 에서 , 노트북은 물리적으로 상단 정렬 가지고, 따라서, 삼성 나는 그들도 논리적으로 상단 정렬하고 theyr 자신의 maxymum 해상도를하고 싶어 :

disper -d CRT-0,DFP-0 -r auto -e -t right

이것으로 판독한다 ( -d ()을 노트북 LCD에 싱크에 제 opertate -r ) 자동 해상도 (고려 -e를 제 dysplay 확장) [제 여기 노트북이기 때문에 -d 설정된 표시 순서] ( -t )는 두 번째 디스플레이 [노트북]을 첫 번째 오른쪽으로 확장합니다.

Google이 올바르게 시도하고 먼저 시도

매우 간단한 엔비디아 해킹이 필요하지 않습니다. 도움이 되길 바랍니다.


건배

Splinux


완전한! 고마워 :) v 2.3 내가 원하는 것을 정확하게했다.
Joernsn

1

나는 nvidia-settings 소스를 해킹하고 작동하는 솔루션을 얻었습니다.

이것은 우분투에서 이루어 지지만 포팅은 어렵지 않습니다.

다음 명령을 실행하십시오.

sudo apt-get build-dep nvidia-settings
apt-get source nvidia-settings
cd nvidia-settings-195.36.08/src

"nvidia-settings.c"를 편집하고 main ()을 다음으로 바꾸십시오 :

int main(int argc, char **argv)
{


    ConfigProperties conf;
    ParsedAttribute *p; 
    CtrlHandles *h; 
    char * target;

    /* initialize the parsed attribute list */

    p = nv_parsed_attribute_init();

    /* initialize the ConfigProperties */

    init_config_properties(&conf);

    /* allocate the CtrlHandles for this X screen */

    h = nv_alloc_ctrl_handles(":0.0");

    if (!h || !h->dpy) {
        return 1;
    }   

    /* Get target from command line */
    if(argc != 2){ 
            printf("Usage: %s PRIMARY_DISPLAY\n", argv[0]);
        printf("Example: %s  DFP-1\n");
        return 1;
    }   

    target = argv[1];

    int i;
    for (i = 0; i < h->targets[X_SCREEN_TARGET].n; i++) {
        if (h->targets[X_SCREEN_TARGET].t[i].h) {

            printf("Setting primary display: %s\n", target);

            NvCtrlSetStringAttribute(h->targets[X_SCREEN_TARGET].t[i].h, NV_CTRL_STRING_TWINVIEW_XINERAMA_INFO_ORDER, target, NULL);

            break;
        }   
    }   

    return 0;

} /* main() */

엮다:

cd ..
make

바이너리를 경로에 넣으십시오.

sudo cp nvidia-settings /usr/local/bin/setPrimaryDisplay

그걸 써:

setPrimaryDisplay DFP-1
gnome-panel --replace 2>/dev/null &

여기서 DFP-1은 원하는 diaplay 디스플레이의 이름입니다. 그놈 (Gnome) 패널은 시간을 유지하지 않으므로 다시 시작해야합니다.

amd64 용으로 컴파일 된 바이너리를 여기에서 다운로드 할 수 있습니다 : http://while1.no/files/setPrimaryDisplay


0

너무 분명하고 사용하지 않는 옵션이있을 수 있지만 BIOS에서 기본 옵션을 변경하는 것은 어떻습니까?


외부는 부팅하는 시간의 절반 정도 밖에 연결되어 있지 않으므로 nvidia-settins gui를 사용하는 것보다 더 많은 작업이 필요합니다. 사실, 나는이 컴퓨터를 실제로 부팅하지 않고 방금 중단했습니다.
Joernsn

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.