An old subject, born again - -
Our plan to extend the availability of applications for the Kindle:
https://bitbucket.org/twobob/kual-system
That plan above will have to be altered to accommodate the hard-coded search behavior of the multi-lib'd dynamic loader.
And it will have to be re-written to account for the system tree change @ v-0.3
The Quick and Dirty way to get rich with Porn <<-- Do Not Read This Spoiler -->>
you might go blind.
Spoiler:
Thread Layout
Abstracts of each major milestone, with links to deeper posts holding details.
The most recently released archives as attachments here.
Some of the deeper, detail, posts have attachments also, mostly to maintain a progress record of this thread's development.
What this thread covers
The development of Kindle system, system libraries that can live in USB storage ( */extensions/system/{*} ).
These system libraries are customizations that can live and work outside of the standard "trusted directory" structure of *nix systems.
Also contained in this thread is the information required for someone else to duplicate and/or extend this part of the Kindle development.
The end result will be a set of modern system libraries that can run (the
**binary** version of) applications "ported" from major Linux distributions.
In this case, the "porting" required will be editing the headers of the binaries. There is a utility tool attached here for that purpose (patchelf).
System Overview
Compiler: gnu-GCC v-4.9.0
BinUtils: v2.23.2
System library(ies): gnu-(E)glibc v-2.19
(v-2.20 requires kernels newer than the ones Amazon provides on the Kindles.)
Known problem(s), see:
https://www.mobileread.com/forums/sho...0&postcount=22
Debugger: GDB v-7.5
Builds:
ARMhf-A8-VFPV3D16
( for K4 ... PW1 and will run on PW2, matches current Debian/Ubuntu applications.
See:
https://wiki.debian.org/ArmHardFloatPort )
ARMhf-A9-NEON ( for PW2 )
and something for the K3 - am still working on that one
Compiler / Linker magic
Building for system libraries outside of the trusted locations requires additional options be passed for those building software.
Shown is the Buildroot version, but the contents of the option are the same, regardless of the build method:
Edit: Updated to V-0.3 specs.
Code:
BR2_TARGET_LDFLAGS="-Wl,--dynamic-linker=/mnt/us/esys/lib/ld-linux-armhf.so.3,-rpath=/mnt/us/esys/lib:/mnt/us/esys/usr/lib,-z,nodeflib,--enable-new-dtags"
Version 0.9999999x+
Run the bionic system libraries from USB storage.
Naw, noboby wants to run Android apps on a Kindle.
Maybe musl though. (
http://www.musl-libc.org/ )
PatchElf 0.8
A required utility for putting binaries outside of the FHS trusted locations.
See:
https://www.mobileread.com/forums/sho...88&postcount=9
Usage examples: See the commented script in the "helpers" attachment.
Version 0.5
Add "Ledger v3.0" from Debian/Jessie
This will also add-in fairly complete C++ application support.
Version 0.4
Add ld.so audit support.
Package up the -dev files add-on.
Version 0.3
Note to self and others:
Do not try to package and release new system libraries on Friday the 13th.
Replaced Lua-5.1.5 with LuaJit-2.0.3 (which also runs Lua-5.1 code and source) in base system.
Added nano-2.3.2 (because I hate busybox vi - which is still there).
Redefined our external, hard-float, system tree.
Installation and Usage: https://www.mobileread.com/forums/sho...1&postcount=47
Coding example: https://www.mobileread.com/forums/sho...2&postcount=56
Note: Only tested on KPW-1, firmware 5.3.3
Linaro toolchain: http://releases.linaro.org/14.05/com...gcc-linaro/4.9
Older stuff:
"Plan B" died a horrible death at V-0.2.2 - see:
https://www.mobileread.com/forums/sho...7&postcount=46
Spoiler:
Version 0.2.1
Use (correct) absolute pathnames in headers.
Picked up a few files and directories missed in v-0.2
Gottcha in this build:
You must use the form:
busybox arguments to get bb-v1.22 rather than bb-v-whatever.
Install, see:
https://www.mobileread.com/forums/sho...0&postcount=34
Version 0.2
The plan:
Current post (see also:
https://www.mobileread.com/forums/sho...postcount=34):
glibc + its feature libs + busybox + lua + dependent libraries
tar-ball has the extensions/system/* sub-tree (move to device as-is)
Re-set your path per:
export PATH=/mnt/us/extensions/system/bin:/mnt/us/extensions/system/usr/bin:$PATH
Gottcha in this build:
You must use the form:
busybox arguments to get bb-v1.22 rather than bb-v-whatever.
Lua is working (and loads a slue of system libraries - so that works also)
( for the non-lua fans: to exit, enter: os.exit(0) )
helpers-0.2.tar.gz is just a collection of small scripts used to make this release.
PatchElf v0.8
Like it or not, we have to have it.
The *.tar.gz is the binary and manuals
The *.zip is the source used.
Details in:
https://www.mobileread.com/forums/sho...88&postcount=9
Version 0.1:
For the sake of future reference, the original, minimal (loader, glibc, busybox) tarball for */extensions/system/{bin,lib} is attached at:
https://www.mobileread.com/forums/sho...64&postcount=4
Which should work on k4, k5-touch and was minimally tested on a k5-PW1
Should also run on the PW2, although it is not optimized for the i.MX6 feature set.
Note: Expect it to fail whenever glibc has to dlopen any of its support libraries.