Подключить монитор к ноутбуку linux

Обновлено: 04.07.2024

Недавно сделал загрузочную флешку с ArchLinux. Система очень понравилась: компактная, занимает мало памяти, быстро загружается (12 секунд до консоли с флешки и 15 до GUI), определяет почти все "железо" без дополнительных действий. Решил использовать на ноутбуке, но тут возникла сложность: большую часть времени он у меня находится под столом, а изображение выводится на внешний монитор. Linux же выдавал изображение только на панель самого ноутбука. Кроме того, на аккумуляторах компьютер работал гораздо меньше, чем обычно. Я стал разбираться, что с этим делать.

Ноутбук у меня с технологией Optimus и содержит две видеокарты: встроенную в чипсет Intel и более мощную NVidia. Также есть индикатор, который показывал, что используется карта NVidia, что и было основной причиной ускоренного расхода батареи. Начал искать, как переключиться на встроенную. Поискав в Интернете, выяснил, что переключение видеокарт происходит через файл sys/kernel/debug/vgaswitcheroo/switcher (и работает только при использовании драйвера nouveau, а не пропиертарного от nvidia). Этот файл находится в debugfs, которую сначала надо смонтировать, после чего можно будет узнать текущее состояние видеокарт:

mount -t debugfs none /sys/kernel/debug cat /sys/kernel/debug/vgaswitcheroo/switcher

Вывод будет примерно следующим:


0:IGD:+:Pwr:0000:00:02.0 1:DIS: :Pwr:0000:01:00.0

IGD — это встроенная видеокарта, а DIS — дискретная (т.е. карта NVidia с отдельной видеопамятью). Активная карта помечена знаком +, а Pwr означает, что карта включена. В данном случае использовалась встроенная карточка, но включены были обе.
Для выключения неиспользуемой в данный момент карты в этот файл нужно было записать команду OFF, а для переключения на другую карточку — ее идентификатор (т.е. DIS — переключение на дискретную, IGD — на встроенную). Самый простой вариант это сделать — с помощью команды cat:

Примечание: через sudo эта команда не сработает, так как перенаправление вывода выполнится от имени текущего пользователя, а не root, нужно входить под логином root или пользоваться su.

К моему большому удивлению, когда я сделал активной дискретную видеокарту, вывод сразу же переключился на внешний монитор, подключенный через HDMI. Обрадованный этим обстоятельством, переключился обратно, вынул HDMI-кабель и попытался переключиться еще раз, ожидая, что теперь дискретная видеокарта, не обнаружив кабеля, выведет изображение на встроенную панель. Но это оказалось не так: панель отключилась. Стал разбираться в чем дело и с помощью утилиты xrandr выяснил, что внешняя видеокарта встроенную панель попросту не видит, а обнаруживает только HDMI и VGA-порты. А внутренняя наоборот, не видит HDMI, но видит VGA и панель.

В целом меня такая ситуация устраивала. Оставалось только автоматизировать процесс переключения, а для этого нужно было выяснить, как программно определять, подключено ли что-то к HDMI-порту. После долгих поисков выяснилось, что информацию обо всех имеющиеся видеовыходах можно получить через /sys/class/drm. В частности, в файле /sys/class/drm/card1-HDMI-A-1/status можно было узнать, подключено ли что-то к этому выходу или нет.

Полную версию скрипта прикладываю на случай, если у кого окажется аналогичная ситуация.

В этом блоге публикуются заметки и решения, найденные в процессе работы, освоения и жизни в дистрибутиве Debian GNU/Linux.

Подключение внешнего монитора к ноутбуку с помощью xrandr в Linux

Linux подключение внешнего монитора к ноутбуку с приходом Xrandr 1.2 и выше проблем не составляет, но на всякий случай выложу небольшое описание с примерами использования xrandr для работы с внешним монитором на ноутбуке.


Подключаем внешний монитор к ноутбуку с помощью xrandr
Не так давно я прикупил замечательный нетбук Toshiba NB-100, и сразу же потребовалось провести с него презентацию. Всё довольно просто - подключаем внешний монитор или проектор и пишем в консольке:
На это нам 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
xrandr --output VGA --mode 800x600 --pos 800x0 --output LVDS --mode 1024x600 --pos 0x 0

Это всё позволит отдублировать изображение с экрана ноутбука на внешний монитор или проектор. А как быть, если нужно показывать два разных изображения?

Здесь имеет место быть маленькое лирическое отступление. Если xrandr отказывается выставлять высокое разрешение на внешнем мониторе, это может быть связано с объёмом видеопамяти. Для того, чтобы решить проблему, нужно иксам указать на использование "большого виртуального экрана". Делается это правкой файла /etc/X11/xorg.conf где в секции Section "Screen" добавляем:

Section "Screen"
Identifier "Default Screen"
Device "Generic Video Card"
Monitor "Generic Monitor"

SubSection "Display"
Virtual 2048 1024
EndSubSection

Здесь указывается разрешение общего виртуального экрана в формате ШИРИНАхВЫСОТА (в данном случае 2048 на 1024). Именно такой вычтя из этого физическое разрешение вашего монитора, вы получите максимальное разрешение внешнего монитора ноутбука, которое можно установить с помощью xrandr .

Режим 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

Ведущей будет панель ноутбука.

Горшочек не вари
Чтобы отключить всю эту светомузыку с внешним монитором, нужно дать команду:

после чего всё вернётся на место, внешний штепсель будет выключен и проектор отключится от вашего ноутбука.


Как повернуть экран в Linux с помощью Xrandr
Повернуть изображение на ноутбуке (в частности, удобно на нетбуке, когда хочешь почитать книжку) с помощью xrandr очень просто:

Чтобы повернуть по часовой стрелке изображение на мониторе пишем:

xrandr -o right

Чтобы вернуть всё на место, достаточно дать команду:

xrandr -o normal

И всё вернётся на свои места.


Графические утилиты для xrandr
Для того, чтобы иметь возможность всё делать через графические утилиты, есть утилита grandr. Выглядит она не просто, а очень просто:
Собственно, она является простой обёрткой для консольной утилиты xrandr и позволяет управлять подключением внешних мониторов (вращение, размещение и прочее) без необходимости что-то набирать в консоли. Аналогичная оболочка для xrandr в KDE называется krandr .

Ссылки
Весьма полезно будет ознакомиться с трудами арчеводов, линсоветчиков и общими идеями по xrandr .

17 комментариев: |высказаться!| RSS-лента дискуссии.|

У вас ошибка в бонус траке. 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 забыли

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 уходит.
Заранее спасибо, если будут какие-то советы.

Есть ноутбук Asus V6X00V с экраном 1400*1050 (name: LVDS) и монитор Dell Monitor 1920*1080 (VGA-0).

Хочу сделать много мониторную систему. Один стол на два монитора. В виндовз работает все отлично. Даже во время установки кубунты 10,4 вначале работало нормально два монитора в своих родных расширениях. Но вот после некоторого момента оба переключились на 1152*846. И включаються в своим нормальные ражими только когда переключаюсь в консоль или в самом конце выключение компьютера.
То есть все показывает что работать они так могут, просто проблема с правильной настройкой.

При любой попытке изменения разрешения или изменение позиции экранов(то есть не Clone), на монирах начинаеться веселая свистопляска с цветными полосками.

Пробовал xrandr:
xrandr --output LVDS --mode 1400x1050 --pos 0x0 --output VGA-0 --mode 1920x1080 --right-of LVDS --pos 1400x0
Тоже само получаеться.

У меня xrandr 1.3 и нет xorg.conf вообще в системе, поэтому как прописать виртуальный десктоп вообще не знаю. Если посоветуете, как можно решать данную проблему и куда "копать" вообще, буду очень признателен. Заранее спасибо!
Посоветуйте, пожалуйста, как можно решить эту проблему.

у меня "Режим Dual Monitor" через xrandr не работает. Второй монтиор всё равно клонирует первый, к тому же xrandr говорит "screen cannot be larger than 1600x1600". Ноут Lenovo, и последний Debian Lenny (5.0.5)

А у меня grandr не показывает второй выход (DFP1), если в момент загрузки иксов там ничего не было и он, соответственно, отключен.
xrandr при этом позволяет его включить, если предварительно добавить к нему каких-нибудь режимов. А grandr совсем не показывает. И режимы добавить нельзя. :(

а можно каждому раб. месту назначить свой монитор?

допустим на внешнем мониторе(основном) первое раб. место, на втором, соответсвенно, второе.
при переключении мест они просто меняются мониторами.. второе место переползает на основной монитор, а первое раб. место на второй

Что-то не получилось в Ubuntu 14.04.
Стандартными средствами Ubuntu, работало только для моей сессии. Стоило завершить сеанс и главным становился телевизор (подключен по HDMI). Соответственно на него улетало и меню входа.
Сделал по Вашим рекомендациям - при завершении сессии меню входа стало оставаться на мониторе компьютера (подключен по VGA). Но после перезагрузки опять "вся власть" у телевизора.

Хочу подключить старенький монитор ViewSonic VA1912w к ноутбуку Lenovo E545. Так как на мониторе только 2 разъема DVI и VGA, а на ноутбуку только VGA и HDMI - подключаю через VGA.

На ноутбуке стоит Ubuntu 15.04 . Что порадовало, монитор обнаружился сразу и разрешение определилось: на экране ноута 1366х768, на мониторе 1440х900. но вот в чем дело: работает то экран ноутбука, то монитор.. заставить одновременно работать и то, и то так и не удалось, сколько с бубном ни плясал. А при попытке сменить рабочий стол через compiz отключились экраны на обоих устройствах..ну это не суть Хотя конечно в перфекте хотелось бы добиться стабильной параллельной работы и экрана монитора, и экрана ноутбука с возможностью переключения рабочих столов..Ну как минимум просто стабильной работы.

Кто сталкивался с подобным или просто люди знающие, подскажите в чем может быть дело и как придти к желаемому?

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Подключение системника к ноутбуку через vga
Есть системный блок с собранными комплектующими внутри,но нет пока жк монитора.. вопрос: может ли.

Подключение монитора к материнке через VGA
При сборке ПК столкнулся с такой бедой: при подключении монитора к собранному ПК тот отказывается.

Два монитора VGA - через VGA и DVI
Подключил два моника к одной видеокарте. Причем один из них подключен через переходник DVI-VGA.

Попробуйте сначала подключить моник, а потом запустить систему. В подавляющем большинстве случаев у меня получалось.

Второй вариант: обновить драйвер видео.
Возможно, придется вручную пересобрать с новым драйвером ядро.

Но таки для начала, перед попыткой пересборки ядра попробуйте подключить non-free репы и обновить систему - должен обновиться и драйвер видео на проприетарный. А если вы уже юзаете проприетарный - то наоборот, отключить non-free и обновиться.

Если таки надумаете компилить ядро с новым драйвером - пишите, я как-нибудь вспомню, как оно пересобирается.

Добавлено через 2 минуты
Кстати, там в графическом вашем окружении где-то в настройках должны быть настройки монитора - слазайте туда. Там, помнится, должен быть выбор как их использовать и их взаимное расположение.

Подключение монитора к ноутбуку
Всем привет! Народ, кто-нибудь сталкивался вот с чем: подключаю я монитор HDMI кабелем к ноутбуку.

Подключение монитора к ноутбуку!
Собственно вопросы: - Возможно ли подключить Монитор Dell UltraSharp U2412M (интерфейсы DVI.

Подключение внешнего монитора к ноутбуку
Есть ноутбук Asus k43s с видеокартой nvidia GeForce 520m. На этом ноутбуке не показывается.

Подключение второго монитора к ноутбуку
Приветствую! В наличии имеется ноутбук Lenovo Y510P с двумя видяхами, строенной и.


четверг, 2 мая 2013 г.

Как настроить в Linux воспроизведение через интерфейс HDMI

Как и у многих, у меня дома есть телевизор HDTV, к которому можно подключать устройства HDMI, например, проигрыватели Blu-Ray. Мне также нравится скачивать видео, слушать музыку и использовать мой телевизор и домашний кинотеатр для просмотра через интернет потокового вещания. К сожалению, у меня нет приставки Boxee или Roku. Все, что у меня есть, это Blu-ray плейер Netflix, в котором очень мало поддерживаемых видеоформатов и совсем мало способов воспроизведения потокового вещания.

К счастью, вместо того, чтобы покупать отдельный компьютер, я могу на любом компьютере запустить плейер Boxee, например, на моем Eee PC, у которого есть выход HDMI. Многие изготовители ноутбуков специально для этой цели добавляют к своим устройствам выходные разъемы HDMI, с тем, чтобы клиенты могли отображать контент на больших телевизионных экранах.

Если вы среди тех счастливчиков, которые выбрали для своего компьютера, имеющего выход HDMI, систему Linux, настоящее краткое руководство поможет вам добиться полноэкранного высококачественного воспроизведения видео и аудио.

Первоначальная подготовка

Вообще говоря, если в вашем компьютере или ноутбуке есть разъем HDMI, то он будет воспроизводить полноэкранное HD видео. Все, что вам нужно сделать, это настроить Linux так, чтобы можно было использовать этот разъем. Из моего личного опыта я знаю, что в текущих версиях большинства дистрибутивов Linux выход HDMI будет рассматриваться как выход VGA, для которого мало что можно сконфигурировать. Ваш внешний экран должен обнаруживаться автоматически даже в том случае, если на него ничего не выдается. Чтобы упростить настройку разрешения экрана, вы можете воспользоваться такими инструментальными средствами, как XRandR, Disper или nvidia-settings.

Например, ваша строка настройки для XRandR или Disper может выглядеть следующим образом:

Настройка аудио

Настройка видео для HDMI выполняется сравнительно просто. К сожалению, настройка аудио для HDMI осуществляется в различных аудиосистемах Linux по разному. Если у вас Mint или другой дистрибутив, в котором используется PulseAudio, вы должны использовать программу Pulseaudio Volume Control . Используйте ее следующим образом:

1. Нажмите Alt + F2, наберите "pavucontrol" и нажмите Enter

2. Как только откроется управляющее окно, щелкните по вкладке "Configuration" ("Конфигурация")

По умолчанию, в профиле будет указано что-нибудь вроде "Analog Stereo Duplex" ("Аналоговый стерео дуплекс"). "Аналоговый" относится к обычным динамикам вашего устройства.

4. Выберите из списка вариант "Digital Stereo (HDMI) Output" ("Цифровой стереовыход HDMI").

Теперь весь звук будет направлен на динамики телевизора.

В KDE в любых плейерах, в которых используется Phonon, таких как Dragon Player или Amarok, используются конфигурационные настройки KDE и в них вы можете указать выход HDMI. Для этого выполните следующее:

4. Для любого сигнала, музыкального, видео или иного другого, какой вы хотите выдавать в HDMI, выберите вариант "Internal Audio Digital Stereo (HDMI)" ("Внутренний цифровой стерео аудиосигнал HDMI") и нажимайте кнопку "Prefer" ("Предподчтительно") до тех пор, пока HDMI не окажется в самом верху списка.

Если нет Pulseaudio или Phonon

Если вам нужно только включить аудио HDMI для конкретного приложения, такого как мультимедийный центр XBMC, просто сконфигурируйте приложение так, чтобы использовался выход HDMI.

Для других приложений, в которых нет встроенной цифровой поддержки воспроизведения, вам нужно вручную сконфигурировать Alsa. Плейер Boxee, например, должен работать точно также, как мультимедийный центр XBMC, но, похоже, есть ошибка, которая мешает использовать цифровой выход. Первое, что вам нужно сделать, это выяснить, какой номер устройства используется для вашего выхода HDMI. В терминале наберите следующее:

Поищите устройство, у которого вначале указано "hw", и одним из них должно быть устройство HDMI, которое будет выглядеть примерно так:

Как видно из этого примера, у меня используется аудио карта "NVidia", а номер устройства - "3". Предположим, что у вас только одна карта, номер карты будет 0.

Затем в вашем домашнем директории создайте текстовый файл с названием "asoundrc-hdmi", в котором должно быть следующее (замените "hw:0,3" на фактический номер вашего устройства):

Сохраните файл. Если у вас уже есть файл .asoundrc, используемый по умолчанию, вы должны сделать его резервную копию и скопировать настройку asoundrc-hdmi в файл.asoundrc:

Если вы хотите использовать эту настройку каждый раз, когда вы запускаете вашу мультимедийную программу, вы можете создать следующий скрипт:

Высококачественное воспроизведение HD

Если у вас устройство с низким энергопотреблением (например, процессор Atom Dual Core 330 и графика Nvidia ION), которое разрекламировано как поддерживающее воспроизведение HD, но вам кажется, что этого не происходит, возможно, потребуется сконфигурировать VDPAU . С помощью вашего менеджера пакетов установите пакет "libvdpau1". Затем, в вашем видеоплеере выберите выход "vdpau", а не "xv". В результате вы должны переключиться на использование аппаратного ускорения, предназначенного для поддержки видео HD. В плейере Boxee перейдите в раздел "Settings -> Media -> Advanced" ("Настройки -> Мультимедиа -> Дополнительно") и установите флажок для варианта "Enable hardware assisted decoding when possible" ("Использовать аппаратную поддержку декодирования, когда это возможно"). По умолчанию в качестве метода рендеринга "Render method" должен быть указан VDPAU.

Для Adobe Flash, вы можете скачать новый плеер Flash 10.2 Beta , в котором поддерживается воспроизведение с аппаратным ускорением. Теперь все ваши видео и аудиозаписи должны воспроизводиться через интерфейс HDMI без всяких проблем и вам не нужно для этого покупать мультимедийную приставку.

Читайте также: