VNC Множественные мониторы с одного монитора на хосте

Вопрос или проблема

Я боролся с несколькими (2+, а не 1+) мониторами, подключенными к своему ноутбуку на Ubuntu, в течение некоторого времени. Та же старая история с проблемами поддержки драйверов и т.д. В настоящее время у меня есть один традиционный внешний монитор и другой, работающий через USB-адаптер, что не является идеальным решением. Мой вопрос заключается в следующем… Есть ли способ, чтобы я мог запустить хост (в данном случае мой ноутбук с Ubuntu) и подключиться к нему через VNC, добавив при этом столько мониторов, сколько у меня есть доступа в “окнах” VNC-клиента? Проблема, которую я вижу из того, что я прочитал, заключается в том, что хост должен знать о всех мониторах до подключения VNC… а не после.

Я подумал, что это может быть креативный способ наконец-то подключить 2-3 (или более) монитора к ноутбуку с Ubuntu, не сталкиваясь с проблемами с драйверами и плохой производительностью при подключении дисплеев к USB-адаптерам.

Меня не беспокоит скорость через VNC, все это будет внутренний сетевой трафик.

Немного исследований
https://support.realvnc.com/knowledgebase/article/View/379/6/how-do-i-map-multiple-vnc-viewer-monitors-to-multiple-vnc-server-monitors

https://support.realvnc.com/Knowledgebase/Article/View/341/12/can-i-view-only-one-of-the-displays-of-my-multiple-monitor-computer?

Если USB-видеопереходник “менее идеален” по причинам производительности, за исключением узкого места в USB-шине, которое является проблемой, вероятно, нет других способов добавить то же количество мониторов с приемлемой производительностью, по крайней мере, если есть много движения. Тем не менее, вот один способ по сути подключить столько мониторов “к ноутбуку”, сколько вы хотите, при этом управляя ими с помощью одной клавиатуры и мыши, не требуя специализированного оборудования:

Настройте VNC на ноутбуке так, чтобы когда вы входите, он подключался к своему собственному отдельному X-серверу (в отличие от дисплея :0, который в настоящее время управляет вашими мониторами). Теперь вы можете настроить дополнительные компьютеры. С каждого из них вы можете открыть сессию VNC (с собственной независимой сессией X) и запустить ее в полноэкранном режиме. (Вы также можете напрямую использовать X через LTSP или другой метод удаленного контроля для подключения к сессиям X; просто выведите их на экран. С VNC ваши другие компьютеры даже не должны работать под управлением Linux.) Окей, отлично. Теперь у вас есть 25 дисплеев рядом друг с другом, но у вас тоже 25 пар клавиатур/мышей. Теперь что?

Сначала установите VNC на каждом из других компьютеров. Убедитесь, что вы можете подключиться к каждому из них и видеть рабочий стол, который они отображают. Итак, с ноутбука вы можете подключиться к другой машине по VNC и увидеть “приватный” рабочий стол, который генерируется на вашем собственном ноутбуке, но отображается на мониторе другой машины и также в окне вашего собственного VNC-клиента. Окей, теперь мы знаем, что это работает. Это все еще не то, что вы хотите, так что вот следующий шаг.

Введите “x2vnc”. По сути, это клиент VNC, который отправляет события клавиатуры/мыши, но не беспокоится о получении видео обратно. Вместо традиционного окна клиента (которое вы активируете, чтобы оно знало, что отправляет события мыши/клавиатуры на удаленную машину вместо вашей локальной сессии) вы настраиваете его так, чтобы оно активировалось, когда вы перемещаете мышь к краям экрана. Вы можете подключить его либо к машинам, которые отображают ваши дополнительные рабочие столы, либо к серверам VNC, работающим на вашем собственном ноутбуке, к которым они подключены.

В любом случае, магия x2vnc позволяет вам подключить монитор к удаленному компьютеру, сидящему справа от вашего основного, и когда вы перемещаете мышь за правый край вашего экрана, она волшебным образом продолжает движение с левой стороны правого монитора, как если бы это был двойной дисплей, когда на самом деле вы управляете другим компьютером (который в свою очередь управляет сессией рабочего стола на вашем собственном компьютере). Он отслеживает местоположение мыши, чтобы когда вы вернетесь налево, ваш указатель снова появился на вашем локальном дисплее в нужное время и в нужном месте, чтобы все это выглядело очень естественно.

Прошло время с тех пор, как я играл с x2vnc. Я знаю, что он гибкий, но не знаю, как. В этом плане вы могли бы подключить как минимум 4 других машины: верх, низ, левые и правые края экрана. И, конечно, если одна из ваших других машин имеет 2 монитора и позволяет вам растянуть VNC-клиента на оба, то это позволит вам уйти дальше от вашего локального центрального дисплея. В этом смысле, вы, вероятно, могли бы запустить x2VNC (win2VNC на машинах с Windows) на одной из удаленных машин, чтобы затем она управляла другой, пока вы продолжаете движение в том же направлении; это позволит вам создать длинную цепь мониторов в одном направлении, каждый из которых добавляет новый уровень к a-controls-b-which-controls-c-which-controls-d-which-views-a2 цепи. Сотни мониторов!

Конечно, с несколькими независимыми X-серверами, работающими одновременно, вы все равно не сможете плавно переносить окна между сессиями (хотя я почти помню приложение, которое как бы позволяло вам это делать, действуя как посредник между приложениями и несколькими X-серверами). Если вы вместо этого настроите другие машины как “толстые клиенты” (используя LTSP), вы сможете хотя бы частично синхронизировать приложения с вашим ноутбуком (ваш толстый клиент нужно периодически обновлять, чтобы поддерживать его синхронным с тем, что у вас установлено), при этом используя процессор/память других машин, чтобы снизить нагрузку на ноутбук.

Похоже, это ужасно много инфраструктуры для ноутбука!

Ответ или решение

Подключение нескольких мониторов через VNC от одного монитора на хосте: подробное руководство

Проблема использования нескольких мониторов при подключении к вашему ноутбуку на базе Ubuntu через VNC представляет собой сложную задачу, но существует решение, которое позволяет обойти некоторые ограничения, связанные с аппаратным обеспечением и управлением драйверами. В этой статье мы рассмотрим, как можно эффективно управлять несколькими мониторами, используя VNC для отображения нескольких виртуальных рабочих столов.

Проблематика

Основной вопрос заключается в том, что, по сути, VNC ориентирован на управление уже существующими графическими сессиями на хосте. В случае с несколькими мониторами ваша система должна быть сконфигурирована так, чтобы она распознавала и обрабатывала все доступные экраны до подключения клиента VNC. Однако если ваше оборудование ограничено, особенно в случае с USB-адаптерами, это может привести к снижению производительности.

Решение: Виртуальные X-сессии

Решение заключается в настройке нескольких X-сессий на вашем ноутбуке. Это можно сделать следующим образом:

  1. Установка VNC-сервера: Убедитесь, что на вашем ноутбуке установлен VNC-сервер, такой как TightVNC или TigerVNC.

  2. Настройка нескольких X-сессий:

    • Запустите дополнительные X-сессии на вашем ноутбуке. Вы можете сделать это с помощью команд, таких как startx -- :1 для создания нового сеанса X под номером 1.
    • Повторите команду для каждой дополнительной сессии, которую вы хотите создать.
  3. Подключение к VNC-серверу: Убедитесь, что каждый из ваших VNC-серверов (например, :1, :2 и т.д.) правильно запущен и что вы можете подключаться к ним с другого устройства, используя VNC-клиент.

Использование x2vnc для управления несколькими мониторами

Для управления несколькими мониторами с одного устройства удобно использовать инструмент x2vnc. Это программа, которая позволяет использовать одну клавиатуру и мышь для управления несколькими устройствами без необходимости переключаться между сеансами. Как это работает:

  1. Установка x2vnc: Установите x2vnc на всех компьютерах или устройствах, к которым вы хотите подключаться.

  2. Конфигурация x2vnc: Настройте так, чтобы окно x2vnc активировалось при наведении курсора мыши на края экрана, тем самым позволяя вашему указателю продолжать движение на другие экраны, как будто они являются частью единой конфигурации.

  3. Создание виртуальных рабочих столов: Каждая VNC-сессия, подключенная к вашему ноутбуку, будет представлять отдельный рабочий стол. С помощью x2vnc вы сможете перемещаться между этими рабочими столами, не теряя контроля над мышью и клавиатурой.

Загрузка "толстых клиентов"

Если вам нужно больше возможностей, рассмотрите использование толстых клиентов (fat clients) через LTSP (Linux Terminal Server Project). Это позволит задействовать вычислительные мощности других машин, одновременно предоставляя доступ к ресурсам вашего ноутбука. Настройка LTSP может стать сложной, но она даст вам возможность эффективно использовать ресурсы и уменьшить нагрузку на ваше устройство.

Заключение

Управление несколькими мониторами через VNC от единственного ноутбука может показаться сложной задачей, но с помощью виртуальных X-сессий и инструментов, таких как x2vnc, вы сможете эффективно организовать свою рабочую среду. Это стиль работы, который требует более сложной инфраструктуры, но даст возможность значительно улучшить производительность и потенциально освобождает вас от проблем с несовместимыми драйверами и аппаратным обеспечением.

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

Оцените материал
Добавить комментарий

Капча загружается...