Подключение внешнего монитора к ноутбуку с помощью xrandr в Linux
На каждом уважающем себя ноутбуке или нетбуке есть разъём для подключения внешнего монитора - для презентаций с проектора вещь необходимая. В Linux подключение внешнего монитора к ноутбуку с приходом Xrandr 1.2 и выше проблем не составляет, но на всякий случай выложу небольшое описание с примерами использования xrandr для работы с внешним монитором на ноутбуке.
Подключаем внешний монитор к ноутбуку с помощью xrandr
Не так давно я прикупил замечательный нетбук Toshiba NB-100, и сразу же потребовалось провести с него презентацию. Всё довольно просто - подключаем внешний монитор или проектор и пишем в консольке:xrandr
На это нам xrandr ответит примерно так (цветовая раскраска - моя):Screen 0: minimum 320 x 200, current 1024 x 768, maximum 1280 x 1280
Так, что всё это значит? А значит это вот что:
VGA connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1280x800 60.0
1280x768 60.0
1024x768 60.0*
800x600 60.3
640x480 59.9
LVDS connected 1024x600+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1024x600 60.0*+
800x600 85.1 72.2 75.0 60.3 56.2
640x480 85.0 72.8 75.0 59.9
720x400 85.0
640x400 85.1
640x350 85.1
TV disconnected (normal left inverted right x axis y axis)
И сейчас лёгким и непринуждённым движением мы быстренько поставим на проекторе то разрешение, которое нам нужно.
Режим Clone mode
Это значит, что на внешнем мониторе \ проекторе будет отображено ТО ЖЕ САМОЕ, что и на экране ноутбука. Чтобы сделать Clone mode на новый монитор делаем так:xrandr --output VGA --mode 1024x768 --output LVDS --mode 1024x600
Если разрешение внешнего монитора 800х600, то нужно поправить команду так:xrandr --output VGA --mode 800x600 --pos 800x0 --output LVDS --mode 1024x600 --pos 0x0
Это всё позволит отдублировать изображение с экрана ноутбука на внешний монитор или проектор. А как быть, если нужно показывать два разных изображения?
Здесь имеет место быть маленькое лирическое отступление. Если xrandr отказывается выставлять высокое разрешение на внешнем мониторе, это может быть связано с объёмом видеопамяти. Для того, чтобы решить проблему, нужно иксам указать на использование "большого виртуального экрана". Делается это правкой файла /etc/X11/xorg.conf где в секции Section "Screen" добавляем:Section "Screen"
Здесь указывается разрешение общего виртуального экрана в формате ШИРИНАхВЫСОТА (в данном случае 2048 на 1024). Именно такой вычтя из этого физическое разрешение вашего монитора, вы получите максимальное разрешение внешнего монитора ноутбука, которое можно установить с помощью xrandr.
Identifier "Default Screen"
Device "Generic Video Card"
Monitor "Generic Monitor"
SubSection "Display"
Virtual 2048 1024
EndSubSection
EndSection
Режим Dual Monitor mode
При таком режиме вывод на проектор будет отличаться от вывода на монитор ноутбука: то есть вы сможете перетаскивать окна на внешний монитор, а на ноутбучном мониторе их не будет. Это очень удобно, когда вам нужно показать вывод, скажем, латеховского документа и не пугать благородных донов видом латеховского кода.
Сделать это можно с помощью правки xorg.conf, как уже говорилось, или с помощью xrandr. Чтобы сделать DualHead на внешний монитор с разрешением 1024х768 пишемxrandr --output LVDS --mode 1024x600 --pos 0x0 --output VGA --mode 1024x768 --right-of LVDS --pos 1024x0
В этом случае ведущим будет внешний монитор (это определяется параметром --pos). То есть где 0 тот и главный монитор (на нём будут менюшки открываться). А вот так:xrandr --output VGA --mode 1024x768 --pos 1024x0 --output LVDS --mode 1024x600 --pos 0x0
Ведущей будет панель ноутбука.
Горшочек не вари
Чтобы отключить всю эту светомузыку с внешним монитором, нужно дать команду:xrandr --output VGA --off
после чего всё вернётся на место, внешний штепсель будет выключен и проектор отключится от вашего ноутбука.
Bonus Track: повернуть экран с помощью Xrandr
Чтобы не плодить лишних постов, напишу сюда, как повернуть изображение на ноутбуке (в частности, удобно на нетбуке, когда хочешь почитать книжку). Для поворота изображения против часовой стрелки пишем:
xrandr -o left
Чтобы повернуть по часовой стрелке изображение на мониторе пишем:
xrandr -o right
Чтобы вернуть всё на место, достаточно дать команду:
xrandr -o normal
И всё вернётся на свои места.
Графические утилиты для xrandr
Для того, чтобы иметь возможность всё делать через графические утилиты и не утруждать свою память разными командами, есть утилита grandr. Выглядит она не просто, а очень просто:
Собственно, она является простой обёрткой для консольной утилиты xrandr и позволяет управлять подключением внешних мониторов (вращение, размещение и прочее) без необходимости что-то набирать в консоли. Аналогичная оболочка для xrandr в KDE называется krandr.
Ссылки
Весьма полезно будет ознакомиться с трудами арчеводов, линсоветчиков и общими идеями по xrandr.








13 комментариев:
У вас ошибка в бонус траке. xrand -o left дважды написано, а действия разные описаны :)
когда-то давно я тоже пользовался xrandr, тогда впервые пришлось подключить внешний монитор к ноутбуку. теперь почти всегда пользуюсь grandr, просто потому что удобнее.
Впрочем в KDE вроде появилась кошерная возможность настроить внешний монитор, но пока ещё не пробовал.
Немного не оценил первый пример в Dual head: Ключ --pos явно указывает параметрами 0x0 на на панел ноутбука (LVDS), а изображение на внешнем экране будет справа со сдвигом в 1024 точки по горизонтали.
Можно этот момент поподробнее?
это в том случае если корректно определяется разрешение внешнего монитора, а вот что делать когда например родное разрешение 1280x768 а определяется он как 1024x768?
2 Alexey Romanenko комментирует...
У вас ошибка в бонус траке.
Ага, спасибо, увидел, исправил :-)
2 Sakal комментирует...
когда-то давно я тоже пользовался xrandr, тогда впервые пришлось подключить внешний монитор к ноутбуку. теперь почти всегда пользуюсь grandr
Согласен. Тут, кстати, со мной произошёл странный случай: я ТОЧНО помню, что писал и скриншотил grandr - думал, что оно есть в статье. И тут не смог найти никаких следов. Мистика прямо какая.
Добавил в пост.
Впрочем в KDE вроде появилась кошерная возможность
... называется krandr.
10.08.2009 14:31:00
2 Siddhassen комментирует...
Немного не оценил первый пример в Dual head: Ключ --pos явно указывает параметрами 0x0 не на панел ноутбука (LVDS)
Я решил перестраховаться и задать параметр ЯВНО. Есть у меня нехорошее подозрение (как совершенно справедливо отметил анонимный комментатор), что размер монитора определяется не совсем корректно.
2 Анонимный комментирует...
это в том случае если корректно определяется разрешение внешнего монитора
Это да. Справедливо.
а вот что делать когда например родное разрешение 1280x768 а определяется он как 1024x768?
Кроме обновления драйверов вместе с иксами в голову ничего не лезет под вечер :-)
Спасибо за ценные комментарии, друзья. Пост обновил, дополнил и улучшил.
По-моему, у Вас здесь ошибочка - в конце 0 забыли
Если разрешение внешнего монитора 800х600, то нужно поправить команду так:
xrandr --output VGA --mode 800x600 --pos 800x0 --output LVDS --mode 1024x600 --pos 0x0
2 Анонимный комментирует...
По-моему, у Вас здесь ошибочка - в конце 0 забыли
Да, есть такое. Промахнулся.
Большое спасибо, исправил в тексте.
А что делать, если внешний монитор не присутствует в выводе xrandr.
У меня ноутбук Lenovo Y430 (разрешение 1280х800), внешний монитор Samsung 961BW (разрешение 1440х900).
при подключении монитроа xrandr выдаёт следующее:
sag@sag-laptop:~$ xrandr
Screen 0: minimum 320 x 240, current 1280 x 800, maximum 1280 x 800
default connected 1280x800+0+0 0mm x 0mm
1280x800 50.0*
1024x768 51.0
960x540 52.0
840x525 53.0
800x600 54.0
800x512 55.0
720x450 56.0
700x525 57.0
680x384 58.0 59.0
640x512 60.0
640x480 61.0 62.0
576x432 63.0
512x384 64.0
400x300 65.0
320x240 66.0
Как прописать в конфиге чтобы у мня всегда работал экран монитора, а экрано ноутбука был выключен. Если я его отключаю, то после перезагрузки он снова включаеться. Где это прописать.
Пытался как-то настроить Clone Mode так, чтобы на внешнем, более большом мониторе исходное изображение не масштабировалось, а выводилось как бы по центру экрана, окружённое фоном. Жаль, но xrandr не позволяет такую штуку сделать.
Здравствуйте ! немного не в тему, но немогли бы вы поподробнее осветить процесс настройки CRT монитора? (ну нету у меня LCD :))
Спасибо за статью.
У меня та же проблема, что и у sag. Это при попытке подключения CRT монитора (старенький LG FLATRON T710PU). И еще при подключении кабеля к ноуту монитор в sleep уходит.
Заранее спасибо, если будут какие-то советы.
Отправить комментарий