All Projects → Arkq → kindle-env

Arkq / kindle-env

Licence: MIT license
Development Environment for Kindle

Programming Languages

shell
77523 projects
BitBake
79 projects
PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to kindle-env

bash.env
Bash.env is a cascading Bash environment system for those who work on different hardware and OS environments. Similar to oh-my-zsh but for Bash, and special sauce for those who work 'ssh' on remote machines.
Stars: ✭ 50 (+92.31%)
Mutual labels:  development-environment
hurley
The development environment toolset for blockchain projects
Stars: ✭ 79 (+203.85%)
Mutual labels:  development-environment
cqfd
cqfd helps running commands inside the Docker container configured for your project, keeping the user and working directory the same inside the container
Stars: ✭ 48 (+84.62%)
Mutual labels:  development-environment
machine-setup
Powershell script which simplifies PC installation which primarily target devs but everyone can use it. Installs apps via chocolatey, nodejs and executes other specific commands.
Stars: ✭ 20 (-23.08%)
Mutual labels:  development-environment
nix-home
A nix home development environment
Stars: ✭ 16 (-38.46%)
Mutual labels:  development-environment
jmdict-kindle
Japanese - English dictionary for Kindle based on the JMdict / EDICT database
Stars: ✭ 151 (+480.77%)
Mutual labels:  kindle
advanced-php-crawler
新浪博客文章/wenku8轻小说文库爬虫,可抓取图片保存,一键制作电子书。kindle读书党的神器!
Stars: ✭ 26 (+0%)
Mutual labels:  kindle
kindle-kt3 weatherdisplay battery-optimized
Use your Kindle KT3 (8. generation) for a weather station with weather underground api and homematic weather sensor.
Stars: ✭ 73 (+180.77%)
Mutual labels:  kindle
foundry-cli
Foundry makes the development of Firebase Functions fast by giving you an out-of-the-box working cloud environment for your development with an access to your production data. It's a CLI tool that gives you a continuous REPL-like feedback about your Firebase Functions.
Stars: ✭ 49 (+88.46%)
Mutual labels:  development-environment
mpspider
公众号文章抓取&生成kindle电子书
Stars: ✭ 51 (+96.15%)
Mutual labels:  kindle
calibre-kindle-comics
A calibre plugin that converts your comics into a readable format for kindle.
Stars: ✭ 32 (+23.08%)
Mutual labels:  kindle
codeframe
The fastest, easiest way to build and deploy quick static webpages
Stars: ✭ 107 (+311.54%)
Mutual labels:  development-environment
drupal8-vagrant
Simple Drupal 8 Development Environment
Stars: ✭ 59 (+126.92%)
Mutual labels:  development-environment
remote-kubernetes
Remote Kubernetes Development in VS Code with Okteto
Stars: ✭ 65 (+150%)
Mutual labels:  development-environment
wp-cli-dev
🛠 WP-CLI development environment that allows for easy development across all packages
Stars: ✭ 29 (+11.54%)
Mutual labels:  development-environment
homebrew-macos-cross-toolchains
macOS cross compiler toolchains
Stars: ✭ 404 (+1453.85%)
Mutual labels:  cross-compiler-toolchain
Docker-Stack
This repo contains a simple Docker setup with minimal configuration and only few files you can drop into many PHP-based projects.
Stars: ✭ 31 (+19.23%)
Mutual labels:  development-environment
ancient chinese
古汉语(文言文)字典-爬取文言文字典网,制作Kindle字典.
Stars: ✭ 48 (+84.62%)
Mutual labels:  kindle
rae
A docker-compose development environment orchestrator
Stars: ✭ 13 (-50%)
Mutual labels:  development-environment
InMangaKindle
Descarga manga en español en diferentes formatos (PNG, PDF, EPUB, MOBI)
Stars: ✭ 43 (+65.38%)
Mutual labels:  kindle

Development Environment for Kindle

Disclaimer: This development environment is based on a cross-compiler toolchain, however it might be used on a native ARM-based host (e.g. Kindle device) as well.

Cross-compiler setup

Kindle devices are based on the Freescale i.MX CPU family. If performance is not an issue, one might use generic ARM CPU architecture during compilation, however this will produce sub-optimal executables. In order to create optimal setup environment, please check which CPU particular device has, and use appropriate settings.

OpenEmbedded build framework

Using the OpenEmbedded build framework seems to be the most straightforward approach for the cross-complier setup. This framework provides cross-compilation toolchain (built from scratches), plus optimization patches required for ARM architecture.

Firstly, you have to initialize the build environment. To do so, run the initialization script provided by this repository as follows:

$ ./bin/oecore-init

This script will fetch required OpenEmbedded components and will pre-setup build environment for the ARM architecture. Next step is to tune auto-generated local configuration file (local.conf), which will be placed in the build/conf/ directory. Set the desired machine as a build target, e.g.:

MACHINE = "kindle-touch"

For more information see the oemeta directory, which contains Kindle-specific OpenEmbedded layer.

Afterwards, source the initialization script (. ./bin/oecore-init) and you are ready to go.

Gentoo crossdev

The second easiest way of creating optimal cross-compilation setup is to use Gentoo Linux as a build environment. This instruction is dedicated for the 1st generation Kindle Touch device.

Install GCC cross-compilation toolchain as follows (it might be required to specify exact libc or gcc version for build to succeed):

# emerge sys-devel/crossdev
# crossdev -t armv7a-softfp-linux-gnueabi

Tune the pre-generated portage make.conf file (located in the /usr/armv7a-softfp-linux-gnueabi/etc/portage/ directory) to match CPU capabilities.

-march=armv7-a -mtune=cortex-a8 -mfloat-abi=softfp -mfpu=neon -mthumb

See the exemplary portage-make.conf file, it might give you a hint.

Mounting root image

Download an appropriate firmware from the Amazon Kindle Software Updates page and unpack it using the kindletool extraction tool (which source is linked as a submodule in the tools directory), as follows:

$ kindletool extract update_kindle_x.x.x.bin /tmp
$ gunzip /tmp/rootfs.img.gz
$ mv /tmp/rootfs.img kindle-rootfs.img

Mount extracted image using provided mount wrapper (root privileges might be required):

# ./bin/mount.kindle -w kindle-rootfs.img

The original Kindle firmware image contains linker-script libraries which are not suitable for cross-compilation. In order to link executables with libraries present on the Kindle root image, it is required to fix these linker-scripts. To do so, use provided kindle-ldfix tool as follows:

# ./bin/kindle-ldfix

For more information see this thread on Stack Overflow.

Further reading

  1. Kindle Touch Hacking
  2. Kindle Touch hackers group
  3. OpenEmbedded build framework
  4. Toolchains
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].