Awesome
KOReader Cross Compile ToolChains
Build scripts to help generate cross ToolChains for various platforms supported by KOReader.
Dependencies
- git
- ncurses
- gperf
- help2man
- bison
- texinfo
- flex
- gawk
- unzip
For Arch users:
sudo pacman -S base-devel curl git gperf help2man unzip wget
For Debian/Ubuntu users:
sudo apt-get install build-essential autoconf automake bison flex gawk libtool libtool-bin libncurses-dev curl file git gperf help2man texinfo unzip wget
Usage
The build script takes a platform name as its first argument. For example, to build a cross toolchain for legacy non-touch kindle devices, type:
./gen-tc.sh kindle
You can use ./gen-tc.sh -h
to get a list of supported platforms (some of which may not have a matching KOReader target, either because a port was never finished (e.g., bookeen
), or they're just minor variants for evolving platforms where KOReader prefers to keep backwards compatibility intact (e.g., kobov4
)).
After the build is finished, you should be able to find your cross ToolChains under the ~/x-tools
directory.
The reference script can be used to automatically setup a cross-compilation environment (PATH
, *FLAGS
& all that jazz), as mentioned at the end of a TC build.
For example, for a Kobo TC:
source refs/x-compile.sh kobo env
Notes
Due to a whole lot of legacy baggage, the names of the various Kindle TCs may be slightly confusing (especially compared to KOReader's target names), so, let's disambiguate that:
TC | Supported Devices | Target |
---|---|---|
kindle | Kindle 2, DX, DXg, 3 | kindle-legacy |
kindle5 | Kindle 4, Touch, PW1 | kindle |
kindlepw2 | Kindle PW2 & everything since | kindlepw2 |
kindlehf | Any Kindle on FW >= 5.16.3 | kindlehf |
No such worries on Kobo & Cervantes, though ;).
The nickel TC is a Kobo variant that mimics Kobo's own TC (as of FW >= 4.6). It is not recommended for general purpose stuff, only use it if you have a specific need for it (which should essentially be limited to working with Kobo's nickel, or Kobo's kernels).
The kobov5 TC is specifically tailored for Kobo & Tolino devices running on FW 5.x. Since that FW implies packaging differences compared to earlier iterations, it does warrant a dedicated KOReader target. (It also targets a much more recent glibc version).
The pocketbook TC aims for maximum backward compatibility while still keeping inkview support.
The remarkable TC aims for FW >= 2.x compatibility.
The bookeen TC has only been tested on AWA13 devices, but should theoretically handle OMAP3611 ones, too.
Known Issues
Only actively tested on Linux hosts.
May work on macOS with some efforts, if you follow crosstool-ng's recommendations on the subject. This is only bound to get worse.
May work on Windows with even more efforts, but I wouldn't bother.
When in doubt, use a Debian VM.