Ведущий системный администратор
0,0
рейтинг
11 февраля 2013 в 14:35

Администрирование → Планшет в качестве второго экрана под linux из песочницы



Решил попробовать для расширения рабочего пространства, сенсорного ввода и удаленного управления использовать планшет как дополнительный экран к своему ноутбуку c Linux.
Нашлось 2 способа сделать это. Чем и делюсь.


Все дальнейшие действия выполняются на ноутбуке. Для подключения на планшет надо установить любой VNC клиент.

Первый, самый быстрый

Понадобятся vnc4server и x2x:
sudo apt-get install vnc4server x2x

При первом запуске vnc4server спросит пароль для подключения. После чего запустит X сессию и будет ждать vnc подключения на 5901 порту. Конфигурация сессии задается в файле ~/.vnc/xstartup.

Для управления сессией с компьютера можно использовать x2x:
x2x -to :1 -east

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

Такой способ имеет недостаток: нельзя перетащить окно с одного экрана на другой.

Второй способ

Использовать dummy драйвер в качестве второй видеокарты, объединить их с основной с помошью xinerama и отдать часть рабочего стола через x11vnc.

sudo apt-get install xserver-xorg-video-dummy x11vnc

Придется написать конфигурацию для xorg. Пример конфигурации /etc/X11/xorg.conf
#Основная видеокарта, надо указать нужный драйвер
Section "Device"
   Identifier      "Configured Video Device"
#тут ваш драйвер, можно подсмотреть в /var/log/Xorg.0.log
   Driver "radeon"
EndSection

Section "Monitor"
       Identifier      "Configured Monitor"
EndSection

Section "Screen"
       Identifier      "Default Screen"
       Monitor         "Configured Monitor"
       Device          "Configured Video Device"
EndSection

#Dummy видеокарта
Section "Device"
 Identifier "Videocard0"
 Driver "dummy"
 VideoRam 256000
EndSection

Section "Monitor"
 Identifier "Monitor0"
 HorizSync   10.0 - 300.0
 VertRefresh 10.0 - 200.0
 DisplaySize 300 200
 #The following modeline is invalid (calculator overflowed):
 #Modeline "32000x32000@0" -38917.43 32000 32032 -115848 -115816 32000 32775 32826 33601
 Modeline "16384x8192@10" 2101.93 16384 16416 24400 24432 8192 8390 8403 8602
 Modeline "8192x4096@10" 424.46 8192 8224 9832 9864 4096 4195 4202 4301
 Modeline "5120x3200@10" 199.75 5120 5152 5904 5936 3200 3277 3283 3361
 Modeline "3840x2880@10" 133.43 3840 3872 4376 4408 2880 2950 2955 3025
 Modeline "3840x2560@10" 116.93 3840 3872 4312 4344 2560 2622 2627 2689
 Modeline "3840x2048@10" 91.45 3840 3872 4216 4248 2048 2097 2101 2151
 Modeline "2048x2048@10" 49.47 2048 2080 2264 2296 2048 2097 2101 2151
 Modeline "2560x1600@10" 47.12 2560 2592 2768 2800 1600 1639 1642 1681
 Modeline "1920x1200@10" 26.28 1920 1952 2048 2080 1200 1229 1231 1261
 Modeline "1920x1080@10" 23.53 1920 1952 2040 2072 1080 1106 1108 1135
 Modeline "1680x1050@10" 20.08 1680 1712 1784 1816 1050 1075 1077 1103
 Modeline "1600x900@20" 33.92 1600 1632 1760 1792 900 921 924 946
 Modeline "1440x900@20" 30.66 1440 1472 1584 1616 900 921 924 946
 Modeline "1360x768@20" 24.49 1360 1392 1480 1512 768 786 789 807
 #common resolutions for android devices (both orientations):
 Modeline "800x1280@20" 25.89 800 832 928 960 1280 1310 1315 1345
 Modeline "1280x800@20" 24.15 1280 1312 1400 1432 800 819 822 841
 Modeline "720x1280@25" 30.22 720 752 864 896 1280 1309 1315 1345
 Modeline "1280x720@25" 27.41 1280 1312 1416 1448 720 737 740 757
 Modeline "768x1024@25" 24.93 768 800 888 920 1024 1047 1052 1076
 Modeline "1024x768@25" 23.77 1024 1056 1144 1176 768 785 789 807
 Modeline "600x1024@25" 19.90 600 632 704 736 1024 1047 1052 1076
 Modeline "1024x600@25" 18.26 1024 1056 1120 1152 600 614 617 631
 Modeline "536x960@25" 16.74 536 568 624 656 960 982 986 1009
 Modeline "960x536@25" 15.23 960 992 1048 1080 536 548 551 563
 Modeline "600x800@25" 15.17 600 632 688 720 800 818 822 841
 Modeline "800x600@25" 14.50 800 832 880 912 600 614 617 631
 Modeline "480x854@25" 13.34 480 512 560 592 854 873 877 897
 Modeline "848x480@25" 12.09 848 880 920 952 480 491 493 505
 Modeline "480x800@25" 12.43 480 512 552 584 800 818 822 841
 Modeline "800x480@25" 11.46 800 832 872 904 480 491 493 505
 Modeline "320x480@50" 10.73 320 352 392 424 480 490 494 505
 Modeline "480x320@50" 9.79 480 512 544 576 320 327 330 337
 Modeline "240x400@50" 6.96 240 272 296 328 400 408 412 421
 Modeline "400x240@50" 6.17 400 432 448 480 240 245 247 253
 Modeline "240x320@50" 5.47 240 272 288 320 320 327 330 337
 Modeline "320x240@50" 5.10 320 352 368 400 240 245 247 253
 #resolutions for android devices (both orientations)
 #minus the status bar
 #38px status bar (and width rounded up)
 Modeline "800x1242@20" 25.03 800 832 920 952 1242 1271 1275 1305
 Modeline "1280x762@20" 22.93 1280 1312 1392 1424 762 780 783 801
 Modeline "720x1242@25" 29.20 720 752 856 888 1242 1271 1276 1305
 Modeline "1280x682@25" 25.85 1280 1312 1408 1440 682 698 701 717
 Modeline "768x986@25" 23.90 768 800 888 920 986 1009 1013 1036
 Modeline "1024x730@25" 22.50 1024 1056 1136 1168 730 747 750 767
 Modeline "600x986@25" 19.07 600 632 704 736 986 1009 1013 1036
 Modeline "1024x562@25" 17.03 1024 1056 1120 1152 562 575 578 591
 Modeline "536x922@25" 16.01 536 568 624 656 922 943 947 969
 Modeline "960x498@25" 14.09 960 992 1040 1072 498 509 511 523
 Modeline "600x762@25" 14.39 600 632 680 712 762 779 783 801
 Modeline "800x562@25" 13.52 800 832 880 912 562 575 578 591
 Modeline "480x810@25" 12.59 480 512 552 584 810 828 832 851
 Modeline "848x442@25" 11.09 848 880 920 952 442 452 454 465
 Modeline "480x762@25" 11.79 480 512 552 584 762 779 783 801
 Modeline "800x442@25" 10.51 800 832 864 896 442 452 454 465
 #32px status bar (no need for rounding):
 Modeline "320x448@50" 9.93 320 352 384 416 448 457 461 471
 Modeline "480x288@50" 8.75 480 512 544 576 288 294 297 303
 #24px status bar:
 Modeline "240x376@50" 6.49 240 272 296 328 376 384 387 395
 Modeline "400x216@50" 5.50 400 432 448 480 216 220 222 227
 Modeline "240x296@50" 5.02 240 272 288 320 296 302 305 311
 Modeline "320x216@50" 4.55 320 352 368 400 216 220 222 227
EndSection

Section "Screen"
 Identifier "Screen0"
 Device "Videocard0"
 Monitor "Monitor0"
 DefaultDepth 24
 SubSection "Display"
#разрешение плашета
    Virtual 1024 768
 EndSubSection
EndSection

#Задаем схему из 2х экранов: левый основной, правый dummy(планшет)
Section "ServerLayout"
 Identifier   "dummy_layout"
 Screen       0 "Default Screen"
 Screen       1 "screen0" rightof "Default Screen"
 Option         "Xinerama" "1"
EndSection



Все остальное настраивается Xorg автоматически.

Перезагружаем xorg сервер, заходим в сеанс и запускаем:
x11vnc -clip 1024x768+1280+0


Порт по умолчанию 5900.
В данном случае у меня 1280 размер экрана ноутбука по горизонтали, это число является смещением, и 1024x768 — размер экрана планшета.

Данное решение позволяет работать с двумя экранами в одной сессии и перемещать окна между устройствами.

Для подключения я использую vnc клиент androidVNC. На ноутбуке Ubuntu 12.04.

Использованные сайты:
wiki.ubuntu.com/X/Config
www.x.org/archive/X11R6.8.0/doc/xorg.conf.5.html
xpra.org/xorg.conf
@miragenn
карма
11,0
рейтинг 0,0
Ведущий системный администратор
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (48)

  • +3
    Использую www.getidisplay.com для связки win7 с iPad, очень доволен :)
    • +16
      Только Linux у них нету =(
      • +8
        К сожалению, нет. Но топик не только линуксоиды читать будут, может кому моя ссылка пригодится.
        • +2
          Пригодилась. Спасибо!
        • 0
          мне тоже, спасибо за ссылку
    • +1
      Коммерческих вариантов хватает ( avatron.com/apps/air-display ), то ли дело FOSS.
      • 0
        Такие отзывы стрёмные. Рукая тянется купить, а мозг кричит: «Не торопись!».
        • –1
          Я iOS версией вполне доволен, но там и отзывы в порядке.
  • +2
    Часто посещала такая идея, спасибо, нужно будет вечером попробовать. А есть какой-нибудь вариант по HDMI подключать планшет к лаптопу, чтобы планшет работал как «честный» второй монитор? При условии, что и у планшета и у ноута есть HDMI разъёмы и подходящий кабель имеется.
    • +3
      и там и там hdmi выход, так что не выйдет
      • 0
        Весьма жаль.
  • 0
    Какую DAW используете? По скриншоту не смог определить.
  • –9
    C iPad заработает? или iPad это не планшет?
    • +6
      Просто поставь на iPad vnc клиент родной (любой какой понравится) и будет работать.
      • 0
        Вот она сила FOSS. Работает везде;)
  • +2
    Автор. Мышка удобная?
    И из статьи не понятно, что делать на планшете ( какой софт туда ставить ) и что делать на самом ноуте.
    • 0
      Мышка на фото на столе? Неудобная, но хватает.
      Все, что написано в статье, выполняется на ноуте, на планшет ставится любой VNC клиент и подключается к ноуту.
      • +4
        Так добавьте пожалуйста в пост. А то не все «в теме».
        • 0
          Добавил.
      • 0
        А Вам Делл в комплекте с лэптопом мышку не выдал? К этой модели очень удобная мышка прилагалась.
        • 0
          Жаль, к моей 1501 мышки не было.
          • 0
            А, это 1501! Мышка была к 6400, он в таком же корпусе выпускался.
  • 0
    Идея интересная, но на мой взгляд планшет не для того.
    Наверное, лучшего расширения рабочего пространства, чем два монитора (или хотя бы один большой) нет.
    Но вы меня не слушайте, я просто консервативен =)
    • +1
      А мне кажется что-то в этом есть из-за портативности.
      Юз кейс:
      1) «Натыкал» я что-то основное (самое сложное) на главном мониторе.
      2) Захотел чуток расслабиться на диване, при этом не прерывая творчесского процесса
      3) Отвалился на «мякушку», задрав пятки в небо и «рисую музыку» дальше на планшете.

      По моему прикольно.
    • +1
      В данном случае микшер ардура на тачскрине — идеально. Там же фейдеры, их пальчиком дёргаешь, как будто на настоящем микшере.
  • 0
    А как в этом случае работают 3D приложения, видеоплееры и т.д.? Особенно на «втором экране» =).
    • 0
      Ну как бы все 3D обрабатывается на главном компе, на втором просто отображение через vnc. Потормознее, чем на главном мониторе, конечно, но не слишком.
      • 0
        Вот об этом я и спрашивал =). Уже доводилось смотреть фильм через VNC и комфортным это не назовешь =(. А было бы интересно сделать монитор, который можно было бы по сети цеплять в случае необходимости и выводить на него фильм или игру.
    • 0
      Через VNC будет тормозить — это связано с конкретными методами передачи видео по конкретному протоколу.

      Но на самом деле решения существуют. Посмотрите, например, OnLive. А вот ещё любопытное DIY-решение.
  • 0
    Круто, спасибо :)

    Правда, что-то мне кажется, что VNC тут немного костыльно
    • 0
      А ничего, что почти все подобные решения в той или иной мере используют VNC?
  • +5
    а man к x11vnc говорит, что вместо
    -clip 1024x768+1280+0
    можно писать
    -clip xinerama0 (и т.д. — xinerama1, xinerama2 — по числу экранов)
  • 0
    А нажатия на планшет распознаются? Если да, то это может быть интересно и как средство управления компом через планшет.
    • 0
      VNC передает нажатия так что должны распознаваться. правда мультитача нет (или я не знаю как завести)
    • 0
      Нажатия распознаются и передаются как мышь, зависит от настройки vnc клиента.
      Чтобы управлять компьютером без отдельного рабочего стола можно просто запустить x11vnc без правки конфигов.
  • 0
    Мечтаю о подобном решении для Windows — чтобы клиент именно как второй монитор работал.
    • 0
      Такого много, например вот: play.google.com/store/apps/details?id=com.avatron.airdisplay
      • 0
        Спасибо. Нашел что в UltraVNC есть такой функционал — типа виртуального монитора.
        • 0
          Я тоже читал что-то похожее, но почему то мне кажется, что информация или некорректная или устаревшая… или еще как вариант — я криворукий :). Если у вас получится — опишите пожалуйста как.
        • 0
          Поддерживаю предыдущего оратора, интересует как использовать UltraVNC для подключения планшета вторым монитором, iDispley жутко тормозит на моем компе и бывают не понятные обрывы связи.
  • 0
    Есть еще способ, использовать распределенный X сервер Xdmx.
    Но с существующими реализациями Xserver под android Xdmx работать отказался.
  • 0
    Эх, жаль что вот такая поделка загнулась: insitu.lri.fr/metisse/
    А так можно было бы навыпиливать нужных кнопоек из приложения, вынести куда-нибудь (на другой монитор или планшет) и пользоваться в удовольствие.
  • +1
    Еще не хватает авторского видео, где автор усердно печатает что то на ноутбуке, далее на мгновенье переводит взгляд на планшет делает пару нажатий на сенсорном экране, после чего довольный откидывается на спинку кресла и нам показывают как падает какая ни будь биржа в Америке :)
  • 0
    Такой способ имеет недостаток: нельзя перетащить окно с одного экрана на другой.

    т.е. кроме терминала ничего не открыть на экране устройства? Нужно одно окно хрома или любого другого браузера открывать на втором экране.
    • 0
      Сам нашел как сделать:
      Первый вариант + свои плюшки
      В файле ~/.vnc/xstartup за комментировал строку x-window-manager &
      ниже приписал fluxbox &
      и установил (в убунту) sudo apt-get install fluxbox
      и теперь через терминал на экране устройства запускаю браузер, все работает но не очень быстро. Но это то что нужно и очень просто.
      Спасибо за статью.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.