Сама идея
Мне давно было интересно, как можно попытаться использовать e-ink reader в качестве второго монитора. Чтобы ничего не разбирать, не брать в руки паяльник и не пугать соседей запахом колофонской смолы, пришлось некоторое время побороздить по просторам Интернета в поисках возможных решений. И решение нашлось, хотя и не такое привлекательное, как подключение электронной книги напрямую. И это решение в принципе уже довольно давно известно — это связка программ, позволяющая управлять рабочим столом через брузер.
Суповой набор
1) x11vnc — сервер удаленного рабочего стола
2) apache веб-сербвер
3) tomcat — «контейнер сервлетов с открытым исходным кодом, разрабатываемый Apache Software Foundation. Реализует спецификацию сервлетов и спецификацию JavaServer Pages (JSP) и JavaServer Faces (JSF)». Источник: Википедия
4) guacamole — программа для обеспечения удалённого доступа к рабочему столу с использованием в качестве клиента обычного web-браузера. «Написан на языках Си, Java и JavaScript, и реализует прослойку, позволяющую организовать управление рабочим столом из web-браузера. Для присоединения к рабочему столу в прослойке поддерживаются штатные протоколы VNC, RDP и SSH». Источник: Opennet.
Стоит добавить: в репозитариях есть две программы guacamole-server и guacamole.
Для тех, кто не в теме:
**Все программы устанавливаются на ноутбук, нетбук и т.д.
***На саму элекронную книгу ничего устанавливать не требуется.
Как делать, как делалось, что получилось, а что не совсем
1) Установку tomcat можно осуществить с помощью пакетного менеджера вашего дистрибутива или скачать прямо с официального сайта.
Я воспользовался следующим руководством и распаковал архива в /usr/local/share, путь у меня получился такой:
/usr/local/share/apache-tomcat-7.0.82
2) Далее можно настроить файл /usr/local/share/apache-tomcat-7.0.82/conf/server.xml.
At your option! Я не стал ничего менять.
3) /usr/local/share/apache-tomcat-7.0.82/conf/tomcat-users.xml. Сюда можно только добавить пользователя. Я добавил строки, которые мне были предложены в качестве примера на странице с ошибкой авторизации, примерно так (читателю предлгается действовать, опираясь на собственный уровень понимания):
<role rolename="manager-gui"/>
<user username="user" password="123" roles="tomcat, manager-gui, manager-scrip$
</tomcat-users>
4) Далее идем в /usr/local/share/apache-tomcat-7.0.82/webapps. Сюда нужно добавить файл guacamole.war.
Где его взять?
Ответ: здесь. И здесь же лежит инструкция по обращению с этим файлом. Кратко: его нужно скопировать в директорию /usr/local/share/apache-tomcat-7.0.82/webapps
Важно! Если файл имеет другое название, переименовать в guacamole.war
Важно! guacamole.war должен соответствовать версии guacamole-server.
Помимо сказанного выше я клонировал эту ветку:
clone git://github.com/apache/incubator-guacamole-client.git
5) В этом пункте предлагаю отредактировать файл:
nano /etc/guacamole/user-mapping.xml
На ваше усмотрение. Я просто удалил логин и пароль в первой записи:
<user-mapping>
<!-- Per-user authentication and config information -->
<authorize username="" password="">
<protocol>vnc</protocol>
<param name="hostname">localhost</param>
<param name="port">5900</param>
<param name="password"></param>
</authorize>
Старт
6) Теперь можно запустить x11vnc
Я запускал так, от обычного пользователя:
x11vnc -notruecolor -forever
Последний флаг, чтобы сервер не останавливался при разрывах связи с клиентом. Порт по умолчанию 5900.
7) Запуск guacamole-server. Не знаю, как это осуществляется в других дистрибутивах, в Calculate Linux это делается так:
/etc/init.d/guacd start
Если все удачно, то получаем такой вывод:
guacd | * Starting guacd…
guacd |guacd[9345]: INFO: Guacamole proxy daemon (guacd) version 0.9.9 started
8) Запускаем tomcat:
/usr/local/share/apache-tomcat-7.0.82/bin/startup.sh
Выключается так:
/usr/local/share/apache-tomcat-7.0.82/bin/shutdown.sh
Если все удачно, то вывод имеем:
/usr/local/share/apache-tomcat-7.0.82/bin/startup.sh
Using CATALINA_BASE: /usr/local/share/apache-tomcat-7.0.82
Using CATALINA_HOME: /usr/local/share/apache-tomcat-7.0.82
Using CATALINA_TMPDIR: /usr/local/share/apache-tomcat-7.0.82/temp
Using JRE_HOME: /etc/java-config-2/current-system-vm
Using CLASSPATH: /usr/local/share/apache-tomcat-7.0.82/bin/bootstrap.jar:/usr/local/share/apache-tomcat-7.0.82/bin/tomcat-juli.jar
Tomcat started.
9) Набираем в браузере http://you_ip:8080/guacamole/
Если видим приглашение к вводу логина и пароля, то можно смело заходить. Но лучше со стороннего устройства, ибо есть вероятность схватить рекурсию.
10) Далее предполагается у читателя наличие электронной книги c WiFi-модулем и браузером, имеющим поддержку JavaScript, так как в guacamole используется либимый всеми Аjax, который и организует работу нашего
Оба устройства оказались пригоды для подключения к рабочему столу нетбука.
Результат на видео:
Что не получилось?
На PocketPro браузер периодически вполне предсказуемо падает. На Sony происходит разрыв соединения. Проблема частично решается автоматическим переподключением.
Заключение
В целом результат приемлем для чтения, просмотра чего-нибудь в браузере, набора текста (если совсем неспешно) и некоторых несложных операций на
Update
Время отклика при наборе текста: (нашел еще один ридер у родственников)
На всякий случай: нетбук и ридер подкючены по WiFi через маршрутизатор.
И велосипед стал трехколёсным
Чтобы было еще интересней, — при запуске x11vnc можно добавить флаг -shared,
тогда можно подключиться к компьютеру с нескольких устройств, включая смартфон.
Теперь возможно основной экран не задействовать совсем, перемещение курсора и все
действия мышью можно выполнять, поглядывая на экран смартфона.
Комментарии (39)
dolovar
06.11.2017 17:09Не появились ли с 2012 года в продаже USB мониторы с приемлемой ценой? Или цимус в чернилах?
dcc0 Автор
06.11.2017 17:13Искал недавно, пару неделель назад. Ничего нет пока или я не нашел.
dolovar
06.11.2017 17:36Гугл «usb monitor» сходу предложил E1649FWU за 120 уе на Амазоне. Не там не чернила, они дают серьезное преимущество в контексте задачи?
dcc0 Автор
06.11.2017 18:09Есть некоторый набор задач, который удобно выполнять именно под ink.
Мониторы не на чернилах — другая тема, неважно usb или нет.dolovar
06.11.2017 18:25Смог придумать три задачи: низкое потребление при работе ноутбука от аккумулятора, работа при ярком свете Солнца, экономия глаз при чтении длинных статей с экрана. Не для меня, но возможны. Поделитесь по возможности, какие задачи вы имели в виду?
dcc0 Автор
06.11.2017 18:32Чтение, книг, статей, почты, написание комментариев, составление писем. Спектр работы широкий. Почти все, что связано с текстом и неспешным выполнением задачи. Но важно помнить, что это вспомогательный монитор.
dolovar
06.11.2017 18:53То есть, практически вся основная работа с текстом — и читать, и писать. В таком случае, можно предположить, почему спрос на рынке оказался не настолько высоким, чтобы породить предложение — задержка с отображением вводимого. Одно дело — отрисовка дежурных графиков или неспешное перелистывание страниц. Другое — децисекунды между нажатием на клавиши и отображением введенного на экране плюс задержки при постоянном переключении окон. Слепая печать в хорошем темпе без мгновенного подтверждения раздражает, по опыту работы на медленных компах. Удобней будет делать на основном мониторе.
dcc0 Автор
06.11.2017 19:06В целом правда за вами. По собственному опыту, в свое время наловчился набирать которкие письма, запросы к поисковику и еще некоторые вещи на читалке. Набирать в Word вряд ли, хотя если при наборе больше человек смотрит на клавиатуру, а не на экран, то может быть, и не критично.
Будут за скунду сразу целые слова появляться, а не отдельные буквы.
iig
06.11.2017 19:10Все, что не сверстано специально под маленький дисплей, будет выглядеть ужасно. Комфортно будет читать художественную литературу, вот собственно и все.
igrblkv
08.11.2017 22:13USB не видел, а вот с HDMI есть:
DASUNG Paperlike Pro (2-е поколение):
— 13.3'' E-Ink Carta
— 1600*1200
— HDMI
— встроенная ножка-подставка, плюс отдельная подставка типа мониторной
— поддержка Windows / Mac / Linux Ubuntu; Surface / iPhone / iPad
— от $799
Подробнее: www.indiegogo.com/projects/e-ink-monitor-with-hdmi-paperlike-pro#
iig
06.11.2017 18:23+1буханка-троллейбус.jpg ?
Цимес электронных чернил — не потреблять энергии в статическом состоянии, анимированное изображение на таком дисплее выглядит уныло.
dlinyj
07.11.2017 10:49Напрасно так, здесь был интересен эксперимент, нежели практическое применение. Так как повторить сходу будет немного сложно.
iig
07.11.2017 11:46В интернетах есть описание менее вычурного велосипеда с Pocketbook и VNC.
Barafu
07.11.2017 15:33Есть и бескостыльный вариант: берём Onyx, ставим любой клиент RDP с маркета официальным способом.
iig
07.11.2017 15:53По костыльности оба варианта одинаковы. Разница, откуда взять VNC — из маркета или из исходников — не принципиальна. Главное, что добавляется костыль стандартной формы, и только 1. Бескостыльный вариант — это если с одной стороны — дисплей, а с другой — VGA/HDMI.
А так, основное (и единственное) преимущество читалки — малое энергопотребление — не используется. Постоянное соединение с WiFi батарею высадит за час.Sklott
08.11.2017 10:06Я думаю самый безкостыльный вариант (для Linux-а) был-бы такой:
1) Берем драйвер E-Ink дисплея и компилируем его под наше ядро на PC, при этом «на выход» конфигурируя на USB(если есть) или что-нибудь близкое типа SPI.
2) Заворачиваем этот «выход» в физический USB.
3) На читалке вместо родного драйвера пишем проксю которая командочки из USB кидает напрямую в контроллер (т.к. команды идут от PC-шного драйвера, то даже никаких преобразований не надо).
И все. Но сложно это все.iig
08.11.2017 11:46Все проще ;)
На PC — драйвер типа DisplayLink (но без DisplayLink ;) ), редиректящий видео в USB.
На читалке — программа, преобразующая команды из USB в команды eink драйвера.
Тот, кто так умеет — тому это не нужно.
igormich88
07.11.2017 11:21А у меня возник вопрос какой у электронных чернил ресурс по смене состояния. В смысле не испортит ли воспроизведение видео дисплей существенно быстрее чем штатное использование?
dcc0 Автор
09.11.2017 11:05Вопрос хороший. Не знаю. На многих е-книгах есть достаточно сложные программы — игры с высокой скоростью вывода графики — на PocketPro есть игра «Змейка», в ней очень высокая скорость движения. Почти на всех ридерах есть программа для рисования на экране, которая также демонстрирует высокую скорость ответа. На Sony можно увеличивать масштаб иозображения двумя пальцами (как на телефоне), это тоже очень быстро просиходит.
third112
07.11.2017 04:04Интересно, а с Виндами eBook можно использовать в качестве второго монитора? Обычно мне второй монитор не нужен, поэтому у меня два компа и два монитора по одному на каждый, и еще ТВ можно как монитор использовать, но он в другой комнате на стенке висит. Когда отлаживал игрового бота с игрой в полноэкранном режиме, подумал о втором мониторе, но поленился делать физические перестановки устройств, а вот знал бы, как с книжкой сделать — то сделал бы. В моем случае видео было не нужно, подошел бы вывод текстовых сообщений.
dcc0 Автор
09.11.2017 12:08Интересно, а с Виндами eBook можно использовать в качестве второго монитора?
Так как под Windows есть vnc-сервер и apache-tomcat, то ответ — да, можно.
А поскольку guacamole фактически — это набор скриптов JS — то решение кроссплатформенное.
dlinyj
07.11.2017 10:45Статья отличная, спасибо. У меня пару ремарок, что мне не хватило в ней (не воспринимайте как критику, это просто ИМХО). Видео надо было на весь экран запустить, чтобы было видно как и что происходит. Не очень понятно по статье для чего какие пакеты ставим, я с этим не сталкивался. Как я понял трансляция идёт через веб.
Я автор той статьи из заголовка, и пробовал на соньке 505 гнать видео. Но частота обновления у неё совсем поганенькая. Раз в секунду примерно…dcc0 Автор
07.11.2017 12:00Все достаточно прозрачно. У наст есть аякс, который поддерживается почти всеми браузерами. Это важно для читалки. И есть на сервере x11vnc, который предоставляет удаленный доступ.
Клиент -читалка — отправляет запрос, его принимает веб-сервер — в данном случае apache-tomcat и условно говоря отдает фоновой программе (daemon-у) guacd, т.е. guacamole-serv — тот в свою очередь передает данные на x11vnc.
Сейчас нарисую схему, для большей наглядности.
P.S.
Половина этого сообщения набрана на PocketPro, потом она разрядилась.
dcc0 Автор
07.11.2017 13:15В случае с данной схемой накладных расходов много + переполнение буфера у ридера, если он принимает много пакетов от сервера.
Но в конечном счете, многое зависит именно от самого устройства и тут уже имхо играет роль все разрешение экрана, проц, скорость взамодействия экрана ридера и буфера. Я не спец по этому вопросу.
Sklott
07.11.2017 12:03Автор, статью внимательно не читал, просто видео глянул, и возможно на этих устройствах такого добиться в принципе не реально, просто хочу показать как
должноможет выглядеть видео на e-ink когда все сделано правильно: www.youtube.com/watch?v=_KyJACCUXkE
firk
07.11.2017 14:48Несколько лет назад хотел сделать подобное, но методом перепрошивки читалки в специализированное устройство для показа картинки, присланной с компа. К сожалению, дальше покупки читалки тогда дело не пошло (лень стало разбираться с её устройством), а тут вот сделали, круто.
asm679
08.11.2017 22:13Хочу заметить, что при наличии e-ink читалки с Андроидом на борту, спектр возможных применений существенно расширяется. Я, например, давно использую такую в качестве дисплея автономного измерительного комплекса. И это, кстати, оказывается существенно дешевле, чем городить собственный e-ink огород сходного размера…
iig
09.11.2017 11:45оказывается существенно дешевле
Хм. Навскидку. В розничной лавке http://uamper.com/eInk/%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-e-ink-e-paper-%D0%B4%D0%B8%D1%81%D0%BF%D0%BB%D0%B5%D0%B9-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD-%D1%80%D0%B0%D1%81%D0%BF%D0%B1%D0%B5%D1%80%D1%80%D0%B8-raspberry (у китайцев, думаю, можно и дешевле найти).
Новый Onyx Book у китайцев в 2 раза дороже.
dcc0 Автор
09.11.2017 11:27Вот у меня другой вопрос ко всем, кто интересуется темой: как решить проблему с мышью?
Теоретически движения курсора синхронизированы, независимо от того, где происходит движение — на клиенте или сервере. Однако, на дисплее ридера движения курсора невидно. Определять позицию по нажатию правой кнопки как-то не очень удобно. Есть вариант подключить compiz и оставлять след при движении, но все это полумера.
MihailSolovjov
e-ink, вероятно?
dcc0 Автор
Спасибо. Даже не могу объяснить свою ошибку.
видимо, link где-то глубоко укоренился.