Linux: Настройка основного отображения (nvidia) из командной строки

7651
Joernsn

Это возможно?

Обычно я использую disperдля включения моего внешнего монитора, но я не думаю, что смогу заставить второй монитор быть основным. http://willem.engen.nl/projects/disper/

Я поиграл с nv-control-dpyвключенным в исходный код nvidia-control, но пока не понял, как это сделать. Как получить: http://ubuntuforums.org/showthread.php?t=922956

РЕДАКТИРОВАТЬ

Это ноутбук, к которому я подключаю внешний hdmi дисплей, когда добираюсь до работы. dipser -eрасширяет рабочий стол для меня, но ноутбук остается основным рабочим столом (удерживая панели и т. д.). nvidia-settingsМожно установить основной монитор для меня, но я хочу использовать Cli.

6
какое здесь оборудование? ноутбук с внешним монитором? два монитора подключены к одному графическому процессору? два графических процессора? quack quixote 14 лет назад 0
бинарные драйверы nvidia ... достаточно сказано. Это, вероятно, было бы действительно легко с xrandr, но драйверы nvidia поддерживают только их проприетарное twinview. Broam 14 лет назад 0

4 ответа на вопрос

3
splinux

Мне удается именно то, что вы имеете в виду, может быть, потому что у меня версия 2.3, на Ubuntu 10.04 с nvidia-setting v 1.0


После исправления ошибки:

это было перечислено как большой один раз:

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 ) расширить второй дисплей [второй здесь - ноутбук, потому что -d устанавливает порядок отображения], ( -t ) выдвиньте второй дисплей [ноутбук] справа от первого.

Google правильно и попробуйте сначала

Очень просто без необходимости взлома nvidia. Надеюсь, поможет.


ура

Splinux

ИДЕАЛЬНО! Спасибо :) v 2.3 сделал именно то, что я хотел. Joernsn 13 лет назад 0
1
Joernsn

Я взломал источник 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 - это название нужного дисплея. Панель Gnome не идет в ногу со временем и должна быть перезапущена.

Вы можете скачать мой двоичный файл, скомпилированный для amd64, здесь: http :// while1.no/files/setPrimaryDisplay

0
S.gfx

Может быть слишком очевидным и вариант, который вы предпочитаете не использовать, но как насчет изменения, которое является основным в BIOS?

Внешний подключается только примерно в половине случаев, когда я загружаюсь, так что это будет больше работы, чем использование графического интерфейса nvidia-terminins. На самом деле, я никогда не загружал этот компьютер, он просто завис. Joernsn 14 лет назад 0
0
Ivan Petrushev

Вы можете попробовать возиться с xrandr. В командной строке есть большая коллекция сценариев на основе xrandr.

Похожие вопросы