Linux:从命令行设置主显示(nvidia)


6

这可能吗?

通常,我disper用来启用外部显示器,但我认为我不能强迫第二台显示器成为主要显示器。 http://willem.engen.nl/projects/disper/

我已经试过nv-control-dpynvidia控制源中包含的内容,但是我还没有弄清楚该怎么做。如何获得:http : //ubuntuforums.org/showthread.php?t=922956

编辑

这是一台笔记本电脑,上班时我将其连接到外接hdmi显示器。dipser -e为我扩展了台式机,但笔记本电脑仍然是主要台式机(固定面板等)。nvidia-settings可以为我设置主监视器,但是我想使用cli。


这里的硬件是什么?带有外接显示器的笔记本电脑?两台显示器连接到一个GPU?两个GPU?
quack quixote

nvidia二进制驱动程序...足够说了。使用xrandr可能真的很容易,但是nvidia驱动程序仅支持其专有的twinview。
Broam

Answers:


3

我成功地完全按照您的意思做了,也许是因为我在具有nvidia-setting v 1.0的ubuntu 10.04上安装了2.3版本


错误修复后:

这曾经被列为一个大事件:

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

版本2.1可以按照您在20010-04上的要求工作,并且在2009-02-16确认了“错误修复”

我有什么

通过使用:

disper -l

在那里我看到了我的设备:

  • DFP-0:LGD(笔记本电脑显示屏)
  • CRT-0:Samsung SyncMaster(外接显示器)

(通过xrandr查询不会显示外部设备)

我想要什么以及如何

笔记本电脑是在右边显示器是在左边,我想在笔记本电脑延长三星,因而具有笔记本电脑的物理顶部对齐,我想让他们也在逻辑顶部对齐,并有theyr自己maxymum决议:

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

必须将其读取为:(- d)首先在SyncMaster上运行,然后在笔记本电脑LCD上运行,(- r)考虑自动分辨率,(- e)扩展第二个dysplay [第二个是笔记本电脑,因为-d设置了显示顺序], (-t)将第二个显示[laptop]扩展到第一个显示的右侧。

正确使用Google并先尝试

非常简单,无需英伟达黑客。希望能帮助到你。


干杯

Splinux


完善!谢谢:) v 2.3完全符合我的要求。
约恩斯

1

我破解了nvidia-settings源,并得到了一个可行的解决方案:

这是在Ubuntu中完成的,但移植起来并不难。

运行以下命令:

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.