- How to Transfer Ebook to Kindle From Ubuntu
- Manage your Kindle in Linux
- Превращаем старый Amazon Kindle в платформу разработки с e-ink
- Дешёвый Kindle с Ebay (и причина его дешевизны)
- Физический доступ получен!
- Root-доступ получен!
- Выполняем дамп системы
- Анализ системы
- Общение с Wifid
- Внесение изменений в Root
- Установка Dropbear SSH
- Преобразуем всё под мои проекты
- Дальнейшее развитие
- На правах рекламы
How to Transfer Ebook to Kindle From Ubuntu
Recently, I bought a brand new Kindle Paperwhite and I am very surprised with it because it just works on Ubuntu in transferring ebooks. So far, I have three different methods to transfer ebook to kindle from Ubuntu, there are transfer via Calibre, direct transfer from file manager, and make use of send to kindle email service.
1. Transfer via Calibre
Calibre is a opensource ebook library management which has many abilities such as managing ebook collections, converting ebook, sync to ebook reader devices such as Amazon Kindle, download news from the Internet and convert it to ebook friendly format, and more.
To use Calibre to transfer ebook to your Kindle device, please install it from Ubuntu repository, «sudo apt-get install calibre» should do that for you. Once installed, run Calibre and plug the Kindle devices. Calibre will automatically detect the Kindle and you are ready to go!
Once connected, you can add and remove ebook from Kindle, and also convert unsupported format into Kindle supported format.
2. Direct transfer via File Manager
If you don’t need a complex method of transferring files (like Calibre does), you can transfer ebook via File manager. Please make sure there is no ebook manager software opened, plug in the Kindle, and File Manager should mount it automatically (like Thunar — XFCE File Manager — does).
All you need to do is put the ebook in «documents» folder. Please make sure that the ebooks you put in is supported by Kindle.
3. Make Use of «Send to Kindle» email service
If you have a good Internet connection and the ebook is not over 25MB (not too big for email attachment) you should use this method. Using this method has some advantages such as your ebook will be kept in the cloud and Amazon can convert the ebook if you want to.
Send the ebook as attachment by using approved email address to send-to-kindle email address, if you want to convert ebook to supported Kindle format, please write «convert» as the subject of the email. Please note that Amazon can only convert Microsoft Word (.DOC, .DOCX), HTML (.HTML, .HTM), RTF (.RTF), JPEG (.JPEG, .JPG), Kindle Format (.MOBI, .AZW), GIF (.GIF), PNG (.PNG), BMP (.BMP), PDF (.PDF) files. For further information about Send to Kindle email service please click here.
Источник
Manage your Kindle in Linux
I’ve owned a Kindle 2 for nearly a year now. I have to say I do love it and am not impressed with the iPad’s ability to allow the user to read books. Why? The Kindle doesn’t offer distractions and I can happily sit by and and read as long as I like with no eye strain and no distractions. But I have to say the Kindle storefront search is pretty bad. I almost always would rather shop from my computer. And as far as adding books — well, you can drag and drop them into the Kindle content folder — which is fairly simple. But what if you want to manage those books on your computer? Believe it or not you can do this with Calibre. You can manage your books, edit their metadata, even convert them to other formats (if said book is DRM-free).
In this article I will show you how to install and use Calibre to manage your Kindle book reader. NOTE: I have written about Calibre before (but only covered managing books in the Sony ebook reader). See my article «Manage Sony Reader in Linux» Â for more details.
Installation
Installation is simple as you will find Calibre in the standard repositories. So you will only need to issue a command like sudo apt-get install calibre. Or you can do the usual:
- Open up your Add/Remove Software application.
- Search for «calibre» (no quotes).
- Mark Calibre for installation.
- Click Apply to install.
You can fire up Calibre either from the command line (enter calibre) or from the Applications > Office menu. As you will know (from previous Ghacks Calibre articles), the interface is simple. I won’t go over that. But I will walk you through the new first run wizard for setting up Calibre to be used with a Kindle.
Figure 1
When you first fire up Calibre you will be asked to set up the application for your eReader. The first step you will see this in is shown in Figure 1. Make sure you select the correct version of the Kindle you own.
Figure 2
In the next step you will set up how Calibre can send books to your Kindle without the device having to be plugged in. You will need to know your Kindle email address in order to set this up. Figure 2 shows the information you will need in order to get this working. You can use Gmail mail servers if you do not have access to an smtp server. I highly recommend you test the email settings before you move on. Upon a successful email test, you can then click the Next button to complete the setup.
Sending books to your Kindle
Let’s say you have already added a bunch of books to your Kindle. You don’t have your Kindle attached to your computer but you want to send a few books anyway. If you open up your library and right click a book you want to send you can select the book to be sent to your Kindle email address (see Figure 3).
Yes, there are books on my Kindle written by me ;-). Â As usual, the emailed book will only arrive to your Kindle if you have the Whispernet turned on.
Final thoughts
Managing your Kindle books is getting easier and easier. And thanks to applications like Calibre, the task only gets more seamless.
Источник
Превращаем старый Amazon Kindle в платформу разработки с e-ink
Мне всегда хотелось заполучить экран на электронных чернилах для своих будущих проектов. Я купил небольшой экранчик с платой расширения Raspberry Pi, однако потом понял, что можно просто воспользоваться старой «читалкой» Amazon Kindle.
Когда-то давно я уже экспериментировал с Kindle: портировал на него интерпретатор Infocom и приложение для чтения манги. Мне удалось заставить ПО Amazon загружать их как Kindlet и отображать их интегрированными в «читалку». Однако сейчас мне нужна была просто дешёвая и удобная платформа разработки под Linux с eink.
Дешёвый Kindle с Ebay (и причина его дешевизны)
Итак, я отправился на ebay! Нашёл там множество очень дешёвых лотов, помеченных как «Заблокирован Amazon». Я решил, что не стоит их брать, потому что, теоретически, они могут быть краденными. В конечном итоге я выбрал Kindle 4 без сенсорного экрана за 7 фунтов.
Спустя несколько дней он приехал. Тогда я и понял, почему он был таким дешёвым: на экране постоянно отображался некий демо-режим, из которого невозможно выйти:
Я загуглил, и хотя оказалось, что более новые версии Kindle можно было вывести из демо-режима, с этой версией ничего не сработало. Впрочем, это меня не волновало, мне всё равно не надо запускать на устройстве оригинальное ПО Kindle.
Итак, следующий шаг — получение доступа. Изучив форумы mobileread, я обнаружил отладочный последовательный порт: настало время вскрывать корпус!
Физический доступ получен!
Всё оказалось довольно непросто! По периметру есть множество защёлок, а сам корпус приклеен к аккумуляторному отсеку, поэтому потребовалось вмешательство большого ножа. От клея устройство я отчистил ацетоном.
- Красное: надоедливые защёлки
- Фиолетовое: очень надоедливый клей.
- Жёлтое: последовательный порт!
Как обычно и бывает в таких случаях, у последовательного порта нет разъёма, поэтому нужно припаять к плате крошечные контакты. Для подобной работы я люблю использовать провод для скрутки диаметром примерно 0,2 мм и жало для поверхностного монтажа:
Не хочу оставлять болтающиеся провода, но в то же время понимаю, что рано или поздно что-нибудь напутаю и мне понадобится доступ к консоли последовательного порта, поэтому придумал следующее решение:
Я приклеил суперклеем к печатной плате Kindle кусок макетной платы, а затем припаял с одного конца проводники от крошечных контактов на печатной плате. Потом я припаял с другого конца более крупный и удобный разъём Dupont, чтобы можно легко было подключаться к нему. Верхний кабель на плате Kindle — это 0v/GND, а остальные — это TX и RX (я забыл, какой из них где).
Последняя проблема: последовательный порт Kindle работает от 1,8 В, поэтому мне нужен адаптер последовательного порта с поддержкой такого напряжения:
Купленный мной адаптер поддерживает 5 В, 3,3 В, 2,5 В и 1,8 В — очень удобно!
Root-доступ получен!
Далее я подключил адаптер последовательного порта к ноутбуку, запустил ПО последовательного порта minicom и перезапустил Kindle. Затем, поменяв местами провода TX и RX (это всегда неизбежно), я увидел следующую информацию!
Отлично, это загрузка при помощи uboot-загрузчика, после чего происходит загрузка Linux и запрос логина.
Если попытаться войти как root, система запросит пароль, хм-м-м… Однако из предыдущего опыта работы с Kindle я знал, что пароль можно сгенерировать из серийного номера. Я нашёл этот веб-сайт, генерирующий несколько возможных паролей для конкретного устройства: мой пароль оказался третьим в списке.
На случай смерти сайта вот самый важный фрагмент кода на Javascript:
А, я забыл сказать, как извлёк серийный номер устройства. Подключение по USB не «срабатывает» — такие демо-устройства нельзя монтировать как диски. Однако под Linux оно всё равно выводит серийный номер в вывод dmesg Linux (также его можно получить при помощи printenv в uboot, если нажать на Enter при отображении сообщения «Hit any key to stop autoboot»):
Отлично! У нас есть root и мы можем выполнить вход! Теперь разберёмся, как чуть упростить себе работу.
Выполняем дамп системы
Первым делом обычно делают дамп дисков для анализа на другом компьютере.
Проверив /proc/mounts , мы увидим множество разделов основного диска на /dev/mmcblk0 .
Выполнив fdisk /dev/mmcblk0 , получим следующее:
- Итак, есть четыре раздела — три Linux, один FAT32.
- Первый диск начинается довольно далеко: оказалось, что в этой «отсутствующей» области хранится ядро.
- После изучения становится ясно, что раздел 1 — это обычная система, 2 — что-то вроде раздела для инструментов диагностики, 3 — для хранения внутреннего приватного состояния Kindle (например, паролей WiFi). 4 — это тот раздел, который вы видите при подключении Kindle по USB: на нём хранятся все книги.
- Раздел 4 смонтирован на /mnt/us.
С помощью dd я сдампил начало диска и разделы 1-3 на /mnt/us (мне нравится делать полный сырой образ, чтобы можно было его восстановить на случай, если что-то пойдёт не так):
Хотя этот Kindle не отображает диск по USB, поскольку у меня есть root, я могу просто заставить отобразить его:
После этого я скопировал всё на ноутбук.
Анализ системы
Далее я смонтировал разделы из kindle.img на свой ноутбук:
После чего я смог монтировать отдельные разделы на ноутбук. Я извлёк все файлы в папку, чтобы можно было их просматривать и исследовать grep. Выяснилось следующее:
- В качестве системы инициализации используется rc.d , поэтому там много скриптов, написанных обычным текстом.
- Уровень инициализации 5 — это «обычная» система, запускающая ПО электронной книги
- ПО электронной книги находится в /opt/amazon , оно написано на Java (я вроде бы уже знал это, но мне понадобилось освежить память).
- Там есть целая куча интересных скриптов diag для тестирования, написанных обычным текстом.
- Есть довольно удобный демон wifid для управления wifi-соединением: из скриптов diag я выяснил, как с ним общаться.
- Можно выполнять запись на экран eink из командной строки с помощью команды /usr/sbin/eips (документация находится здесь).
- Я не смог найти очевидного переключателя «отключить демо-режим»: похоже, он встроен в ПО электронной книги на Java.
- Следующие системные сервисы связаны с неподдерживаемыми функциями, ПО электронной книги или общением с Amazon: S50wan S70wand S75phd S81usbnetd S93webreaderd S94browserd S95framework S96boot_finished .
Общение с Wifid
Можно использовать встроенный wifid для подключения к wifi и управления профилями wifi. О, и надо помнить о том, что многие Kindle поддерживают WiFi только на 2,4 ГГц, имейте это в виду, если что-то не будет работать.
Перечисление количества профилей WIFI:
Показ содержимого профиля WIFI:
Удаление профиля WIFI:
Создание профиля WIFI:
Возможные варианты smethod: open,wep,wpa,wpa2 (если вы выберете open, то задайте для secured значение «no»).
WIFIPSK — это WIFI PSK, сгенерированный утилитой wpa_passphrase (которая есть в Kindle): обычная «wifi passphrase» не сработает.
Подключение профиля WIFI:
Отображение состояния подключения WIFI:
Внесение изменений в Root
Во многих из представленных ниже инструкций требуется изменение root-диска в kindle. Однако по умолчанию он монтируется в режиме read only. Чтобы решить эту проблему, запустим на kindle следующую команду:
После завершения верните диск в режим read only, чтобы избежать нежелательных изменений:
Установка Dropbear SSH
Я хотел иметь возможность подключения к kindle по ssh, поэтому решил установить ssh-демон dropbear. Разумеется, это устройство на ARM, поэтому мне нужно было или скомпилировать его самостоятельно, или где-то найти. К счастью, существует поддерживаемый разработчиками хак USBNET для kindle: я решил не использовать этот хак у себя, потому что хотел полностью контролировать своё устройство, но всё равно смог позаимствовать из него двоичный файл dropbear.
К сожалению, USBNET поставляется в собственном странном формате обновления Kindle, поэтому нужно извлечь из него двоичный файл:
- Скачать этот репозиторий git и скомпилировать его — это позволит нам декодировать обновления kindle.
- Скачать kindle-usbnetwork-0.57.N-k4.zip отсюда и скопировать его в KindleTool/Release/ .
- cd KindleTool/Release/
- Распаковать kindle-usbnetwork-0.57.N-k4.zip
- ./kindletool extract Update_usbnetwork_0.57.N_k4_install.bin usbnet
- cd usbnet
- tar Jxf usbnet.tar.xz
- Скопировать src/usbnet/bin/dropbearmulti на Kindle (я перемонтировал его как USB-устройство и скопировал файлы).
В Kindle:
- cd /
- mv /mnt/us/dropbearmulti /
- chmod a+x /dropbearmulti
- ln -sf /dropbear /dropbearmulti
- ln -sf /dropbearkey /dropbearmulti
- ln -sf /bin/scp /dropbearmulti
- /dropbearkey -t rsa /dropbear_rsa_host_key
Преобразуем всё под мои проекты
Я переименовал все ненужные системные сервисы:
Добавил собственный скрипт инициализации в /etc/rc5.d/S99adq , чтобы вносить свои изменения:
Теперь устройство может:
- При загрузке отображать на экране полезную информацию
- Подключаться к wifi.
- Использовать SSH через файрвол.
- Запускать ssh-демон dropbear.
- Добавлять мой публичный ключ ssh в нужное для dropbear место.
- Удалять USB-функцию «притворяемся диском»
- Заставлять его «притворяться последовательным устройством» через USB и отображать запрос логина: если подключить его через USB и использовать minicom, я получу запрос логина на случай, если что-то пойдёт не так.
Теперь при загрузке мой kindle выглядит так и я могу подключаться как root по ssh.
Всё практически готово: теперь я могу подключаться по ssh к kindle и у меня есть несколько уровней последовательной консоли на случай, если что-то пойдёт не так. Это довольно удобная система разработки под Linux с e-ink, подключением по wifi и с работой от аккумулятора.
Последнее улучшение — я убрал некоторые защёлки с задней крышки и установил её на место.
Дальнейшее развитие
Похоже, что эта библиотека (FBInk) сможет заменить ПО Amazon eips; вероятно, оно будет удобнее, если я захочу интегрировать дисплей с моим собственным ПО.
На правах рекламы
Эпичные серверы — это надёжные серверы на Linux или Windows с мощными процессорами семейства AMD EPYC и очень быстрой файловой системой, используем исключительно NVMe диски от Intel. Попробуйте как можно быстрее!
Источник