Разработчик Адхитья Чандрасекар представил рабочий способ подключения электронной книги Kindle в качестве внешнего e-ink-монитора (3.5 fps, Paperwhite 3).Шаг 1: сделайте джейлбрейк вашего Kindle
Лучший ресурс для этого mobileread, следуйте инструкциям из ветки LanguageBreak.
Чандрасекар не особо следовал инструкциям LanguageBreak, потому что ему было все равно на большинство функций, а также разработчику было любопытно сделать всё это самому. Оказалось, что репозиторий LanguageBreak на Github является бесценным для отладки.
«Неважно, как вы сделаете джейлбрейк своего устройства, главное, чтобы вы каким-то образом получили доступ к оболочке root», — уточнил Чандрасекар.Шаг 2: Listener Server на Kindle
Чандрасекар написал программу на Go из 30 строк для получения файлов на порту 8000, а затем использовал eips, встроенную утилиту Kindle для рисования изображений на экране.
Например, если программа Go получила файл JPG и сохранила его в /tmp/img.jpg, следующая команда отрисовывает изображение с частичным обновлением (полное обновление выглядит ужасно): eips -g /tmp/img.jpg -w gc16 -x 128 -y 0. Также можно очистить экран с помощью eips -c перед новым кадром. Но этот процесс оказался слишком медленнымШаг 3: Screencapture + Imagemagick
Чандрасекар написал скрипт для использования Screencapture на macOS для многократного захвата экрана в файл png, который затем преобразуется в форму, размер и цвет, которые поддерживаются Kindle, с помощью Imagemagick, а затем передаются по usbnet с помощью netcat.
/usr/sbin/screencapture -C -x /tmp/orig.png
convert /tmp/orig.png -rotate 270 -resize '810x1448!' -type GrayScale -depth 8 -colors 256 /tmp/gray.jpg
cat /tmp/gray.jpg | nc -w 0 192.168.15.244 8000
Можно менять разрешение в соответствии с вашим устройством и портом в соответствии с Listener Server.Итог
Чандрасекар пояснил, что сделал это ради развлечения, и, очевидно, здесь есть много возможностей для улучшения, как с точки зрения производительности, так и удобства использования. Оказалось очень расточительно отправлять полный файл jpeg для каждого кадра, когда дельта между последовательными кадрами в основном будет пустой и очень сжимаемой (например, когда вы используете текстовый редактор). Не используя кодеки, такие как h.264, и протоколы, такие как vnc, можно решить эту задачу, используя только те инструменты, которые уже есть в базовом комплекте Kindle и под рукой у разработчика, включая ресурсы Kindle hacking: a deeper dive into the internals и KindleTool.
Источник новости: habr.com