Giter Site home page Giter Site logo

alpine_kindle's Introduction

Alpine Linux on Kindle

Here you find a set of utilities to get Alpine Linux running on Kindles. So far this has been tested on Paperwhite 3 only, but it should work on any Kindle (not Kindle Fire though) that has a touchscreen and enough Flash/RAM (At least enough space beside your books/documents to save a >=2GB file and at least 512MiB RAM).

YouTube Video:

Youtube Video demo

Screenshots: alt text

alt text

alt text

(More pictures (not up to date though))

Overview

Kindles run a Linux operating system with X11 and everything on board already. To make better use of that one can utilize a full blown Linux distro including a proper desktop environment through chroot. Your Kindle stays fully functional to buy & read books.

Get started easily


!!WARNING!!

WHILE ALPINE IS RUNNING / THE IMAGE IS MOUNTED, DO NOT CONNECT YOUR KINDLE TO THE COMPUTER WITHOUT USBNETWORK ENABLED! The image resides in /mnt/us, and that is your usb mass storage location. When Alpine and the computer write on the userstore partition (partition 4) at the same time, it will be destroyed, and you need to fix that partition to get your Kindle working again. It might even be possible to brick the Kindle!!! Kual has an option to show the USBNetwork status, so check that beforehand if you plan on doing SSH while Alpine runs.


The default password of the user "alpine" is "alpine".

Manual install

1. Jailbreak your Kindle

How that exactly works depends on your model of Kindle as well as the firmware version. You can find more information in the mobileread forums and mobileread wiki. You'll also need KUAL as application launcher, Kterm to start Alpine on the go without a computer, and USBNetworking for SSH access during installation.

2. Get an Alpine image

Here Alpine is saved within a file. You can either download an image at the releases page, or create your own fresh and possibly customized one with the help of a script. Creating your own doesn't take long either, and if you have a linux computer it's pretty easy. All you need to install is qemu-user-static to execute arm software, but that should be in the repositories of your distro in most cases. Then have a look at the script especially at the configuration part (top). Finally you can execute it, and after a very short while you should be dropped into a shell inside Alpine. You can have a look around and tweak whatever you want, and with "exit" the script unmounts your fresh image and terminates. After that you should end up with a "alpine.ext3" file. Run "./create_release.sh" to create a release ("alpine.zip") just as from the release downloads that has all the neccessary files for the kindle included.

3. Put it on your Kindle

First make sure you have enough space on your Kindle (The default size for alpine.ext3 is 2.0GB), you can check through SSH or using Kterm like so:

[root@kindle root]# df -h /mnt/us
Filesystem                Size      Used Available Use% Mounted on
fsp                       3.0G    530.8M      2.5G  17% /mnt/us

If you delete files to make room "df -h" may not update accordingly (bug in release 0.1), reboot your Kindle then (you can use the "reboot" command).

You need to copy the Alpine zip on to the kindle. You can copy it on there like you do with other documents (USB mass storage, just put them in to root folder), or via scp in the following fashion (You need to have USBNetwork enabled obviously):

scp -C alpine.zip [email protected]:/mnt/us/

After that you need to extract the zip in the kindle shell like so:

cd /mnt/us
unzip alpine.zip

You should end up with alpine.{sh, ext3, conf}, also when Alpine is running it will log in here into "alpine.log". You can also delete alpine.zip now.

To save on RAM the Kindle GUI can be stopped before Alpine gets started. That must be done through upstart though, because when you stop the Kindle GUI, so does Kterm and Alpine itself when you start it from there. "alpine.conf" is a script to allow for that, it must be copied to the appropriate place though (using SSH or Kterm), e.g. assuming you have put it into /mnt/us:

mntroot rw
cp /mnt/us/alpine.conf /etc/upstart/
mntroot r

4. Run it


!!WARNING!!

WHILE ALPINE IS RUNNING / THE IMAGE IS MOUNTED, DO NOT CONNECT YOUR KINDLE TO THE COMPUTER WITHOUT USBNETWORK ENABLED! The image resides in /mnt/us, and that is your usb mass storage location. When Alpine and the computer write on the userstore partition (partition 4) at the same time, it will be destroyed, and you need to fix that partition to get your Kindle working again. It might even be possible to brick the Kindle!!! Kual has an option to show the USBNetwork status, so check that beforehand if you plan on doing SSH while Alpine runs.


For running Alpine you have two options:

  1. good for debugging In Kterm, first run "sh alpine.sh" in the "/mnt/us" folder. That drops you into an Alpine shell, where you can do text based stuff, or run "sh startgui.sh" to start the desktop
  2. recommended You can use upstart to save on ram, for that run "start alpine" from Kterm. It will bring you to the desktop immediately.

You can do both options over SSH as well.

The default password of the user "alpine" is "alpine".

alpine_kindle's People

Contributors

schuhumi avatar zaoqi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

alpine_kindle's Issues

Running On Kindle Touch

Wasn't sure where to put this but I actually managed to get Alpine to run (albeit slowly) on a Kindle Touch with your installation script, despite the Touch only having 256MB of RAM. Might be worth noting in the readme that 512MB is not a hard minimum.

20221129_215412

apk core dumps

I have a Kindle Paperwhite 3 that has been running Alpine for many years - thanks a lot.

I recently deleted then reinstalled everything through KUAL, so deploying the latest version.

apk doesn't work for me. If I try 'apk update' I get lots of:
ERROR: XXXX: UNTRUSTED signature
WARNING: Ignoring XXXX: UNTRUSTED signature

and if I run apk --allow-untrusted update then it core dumps.

Linux kindle 3.0.35-lab126 #2 PREEMPT Fri Feb 10 04:02:50 UTC 2023 armv7l GNU/Linux
[root@kindle root]# cat /proc/cpuinfo 
Processor	: ARMv7 Processor rev 10 (v7l)
BogoMIPS	: 790.16
Features	: swp half thumb fastmult vfp edsp neon vfpv3 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x2
CPU part	: 0xc09
CPU revision	: 10

Hardware	: Freescale i.MX 6SoloLite based Wario Board
Revision	: 60000
Serial		: "G090G105628407EQ"
BoardId		: "0670309162770SGS"

Kindle release is 5.15.1.1 (the latest, Jailbreak was maintained).

It's an old processor, maybe Alpine dropped support?

Stuck on blank screen after logging out

Hello, my kindle did not reboot into the regular interface after logging out of Alpine Linux like it normally does.
Instead, it seemed like nothing happened and I was left with a blank screen.
I thought it bricked, but then suddenly after 10 minutes a wallpaper appeared.

I'm fairly certain it's still on Alpine Linux. Here's why:
I have custom wallpapers installed. When I lock my kindle normally, my custom wallpapers kick in. However, when I use Alpine Linux and then lock my device, somehow the stock wallpapers kick in.
The reason I think my Kindle is stuck in a blank Alpine Linux now is because when it locks, the stock wallpaper displays.

I posted this issue here as well, while I was still troubleshooting myself: https://www.mobileread.com/forums/showthread.php?t=331443

Any advice on getting out of this state would be extremely appreciated!

Cannot open the power management setting

I tried to disable the auto screen lock option in the power management setting. However, it seems like nothing happened after I click the option in System-Preferences-Hardware-Power Management.

Or is there provides any other way to disable screen lock in the command line?

images on browser is low quality

Images dosent seems to display as greyscale but colored mode, however, as we don't have colored diplay, it ends up like the picture is painted on the screen as the colors messed up

teach me something.

There is a problem in my project, maybe you have solved it, can you teach me.
Can I run a GUI app under a chroot?
For details, you can see this
bfabiszewski/kterm#26

By the way, if you are from China, you can use Chinese.

ON/OFF Button Action

Would it be possible to turn the Kindle on and off by pressing shortly on the on/off button and toggling between the screen saver and Alpine directly?
BTW very nice work!!

Sleep mode

No way to set Kindle to sleep while running Alpine. Have to logout and sleep. Meaning I have to close and reopen Alpine everytime I want to set Kindle to sleep

Apk Issues

I have an issue with my apk manager, whenever I try to do anything related to it I get this error: UNTRUSTED signature

Window dimension problem

I installed alpine kindle on the kt3 model, it starts normally but the menu doesn't appear. seems to be in the wrong resolution. follow the photos:
20210821_155022
20210821_155013

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.