Register Guidelines E-Books Search Today's Posts Mark Forums Read

Go Back   MobileRead Forums > E-Book Readers > Amazon Kindle > Kindle Developer's Corner

Notices

Reply
 
Thread Tools Search this Thread
Old 08-03-2019, 02:55 PM   #1
schuhumi
Member
schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.
 
Posts: 17
Karma: 222224
Join Date: Jul 2018
Device: PW3
Can run full blown Chromium browser on up-to-date Alpine Linux

Hi,

so for a long time I was intrigued by the Linux capabilities of the Kindles. I got a Paperwhite 3 some time ago when it was on sale on a prime day, but as you know Debian Wheezy was the only distro old enough to run on that ancient kernel (through chroot + Xephyr for graphics). No newer kernel due to proprietary difficulties with epaper display, thus that's it.

But even getting just a proper browser seemed impossible. Text based works okay, albeit without pictures obviosly, and also without javascript sadly. The preinstalled one can't do tabs, scrolling is a nightmare as is the zoom and sizing of elements. And the skipstone build is ancient and doesn't cut it.

So have a look at this: https://imgur.com/gallery/uX1DENC

All packages are up-to-date (version "edge" including repository "testing" to get some of the new stuff like onboard keyboard). Chromium works just fine, including javascript and everything. I even simply installed uBlock origin and an extension for a simple new-tab-page, as well as the black & white theme.

I started with the Mini Root Filesystem for armhf from here: https://alpinelinux.org/downloads/ But it seems you can also bootstrap it like this
Code:
./sbin/apk.static -X ${mirror}/latest-stable/main -U --allow-untrusted --root ${chroot_dir} --initdb add alpine-base
(https://wiki.alpinelinux.org/wiki/In...ux_in_a_chroot)

I really lost hope anything like this would be possible with the Kindles, but now I'm happy again

So have fun with that, when I have more time I'll probably write a guide on how to get a sensible setup going. Basically its the same as with Debian, just that you have another package manager and way more possibilities and up-to-date software
schuhumi is offline   Reply With Quote
Old 08-05-2019, 06:18 PM   #2
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 12,129
Karma: 21225489
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW & PW2; Kobo H2O, Forma, Elipsa & Sage
That looks fun!

Looking forward to more details about your setup .
NiLuJe is offline   Reply With Quote
Advert
Old 08-15-2019, 03:49 PM   #3
schuhumi
Member
schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.
 
Posts: 17
Karma: 222224
Join Date: Jul 2018
Device: PW3
So here you can find tools and instructions now: https://github.com/schuhumi/alpine_kindle
schuhumi is offline   Reply With Quote
Old 08-26-2019, 06:09 AM   #4
zaoqi
github.com/zaoqi
zaoqi does all things with Zen-like beautyzaoqi does all things with Zen-like beautyzaoqi does all things with Zen-like beautyzaoqi does all things with Zen-like beautyzaoqi does all things with Zen-like beautyzaoqi does all things with Zen-like beautyzaoqi does all things with Zen-like beautyzaoqi does all things with Zen-like beautyzaoqi does all things with Zen-like beautyzaoqi does all things with Zen-like beautyzaoqi does all things with Zen-like beauty
 
Posts: 87
Karma: 32020
Join Date: Mar 2017
Location: - Zhejiang China
Device: Boox c67ml,Note S,Max2,KT3,KPW4,Kobo AurdHD,Touch N905C
I added these tools to https://github.com/zaoqi/kual-linuxdeploy-armhf :

https://github.com/zaoqi/kual-linuxd...ases/tag/0.3.0
zaoqi is offline   Reply With Quote
Old 09-02-2019, 06:03 PM   #5
schuhumi
Member
schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.
 
Posts: 17
Karma: 222224
Join Date: Jul 2018
Device: PW3
Update





High RES images + slightly updated instructions

New features:
  • Chromium now supports Android-like scrolling (drag finger), back/forward/reload gestures, long press for context click, mobile user agent and is overall much faster (also with javascript)
  • Now featuring Mate Desktop Environment, which fixes automatic workspace resizing with Onboard
  • There's a right-click feature besides the up- and down-arrows in the bottom bar
  • Battery current display (This might not yet work on models other than PW3, please file a bug report!)
  • New set of default applications, that fit better on the screen in portrait mode
  • alpine.sh can now be used in multiple terminals at once, as it recognizes when Alpine is mounted already and doesn't do it again. BE CAREFUL to leave Alpine in the session that mounted it (thus the first one) as last, as this one will do the umounts as well (it will be the alpine service in most use cases)
  • Alpine now logs into /mnt/us/alpine.log automatically

Fixed Bugs:
  • Logging out now works properly and returns to the default kindle gui just fine
  • Used loops are now disassociated correctly, which means 1. They don't run out after 16 2. When you delete alpine.ext3 the corresponding storage space gets actually freed
  • Workspace resizes when Onboard shows/disappears

Known Bugs: No onscreen keyboard on the lockscreen (don't lock! You can kill it through ssh though. Or reboot)
schuhumi is offline   Reply With Quote
Advert
Old 09-02-2019, 08:46 PM   #6
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 12,129
Karma: 21225489
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW & PW2; Kobo H2O, Forma, Elipsa & Sage
@schuhumi: battery magic.

Which made me realize I was missing Rex in there (fixed it ).

Last edited by NiLuJe; 09-02-2019 at 09:23 PM.
NiLuJe is offline   Reply With Quote
Old 09-02-2019, 10:48 PM   #7
JJYYPPCC
Junior Member
JJYYPPCC began at the beginning.
 
Posts: 3
Karma: 10
Join Date: Aug 2019
Device: Amazon KPW3
Quote:
Originally Posted by schuhumi View Post
Hi,
so for a long time I was intrigued by the Linux capabilities of the Kindles. I got a Paperwhite 3 some time ago when it was on sale on a prime day, but as you know Debian Wheezy was the only distro old enough to run on that ancient kernel (through chroot + Xephyr for graphics). No newer kernel due to proprietary difficulties with epaper display, thus that's it.
But even getting just a proper browser seemed impossible. Text based works okay, albeit without pictures obviosly, and also without javascript sadly. The preinstalled one can't do tabs, scrolling is a nightmare as is the zoom and sizing of elements. And the skipstone build is ancient and doesn't cut it.
So have a look at this: https://imgur.com/gallery/uX1DENC
All packages are up-to-date (version "edge" including repository "testing" to get some of the new stuff like onboard keyboard). Chromium works just fine, including javascript and everything. I even simply installed uBlock origin and an extension for a simple new-tab-page, as well as the black & white theme.
I started with the Mini Root Filesystem for armhf from here: https://alpinelinux.org/downloads/ But it seems you can also bootstrap it like this
Code:
./sbin/apk.static -X ${mirror}/latest-stable/main -U --allow-untrusted --root ${chroot_dir} --initdb add alpine-base
(https://wiki.alpinelinux.org/wiki/In...ux_in_a_chroot)
I really lost hope anything like this would be possible with the Kindles, but now I'm happy again
So have fun with that, when I have more time I'll probably write a guide on how to get a sensible setup going. Basically its the same as with Debian, just that you have another package manager and way more possibilities and up-to-date software
Hello,could I use OTG to connect my USB Mass storage or my keyboard?
If it could maybe PW3 will be a tool XD
JJYYPPCC is offline   Reply With Quote
Old 09-03-2019, 09:28 AM   #8
schuhumi
Member
schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.
 
Posts: 17
Karma: 222224
Join Date: Jul 2018
Device: PW3
Quote:
Originally Posted by NiLuJe View Post
@schuhumi: battery magic.

Which made me realize I was missing Rex in there (fixed it ).
Nice! Made it read the current as well: https://github.com/schuhumi/alpine_k...0d719e6541e6a8

Quote:
Originally Posted by JJYYPPCC View Post
Hello,could I use OTG to connect my USB Mass storage or my keyboard?
If it could maybe PW3 will be a tool XD
Yeah that's on my list of things to get working, will probably require some kernel module though haven't looked too much into it yet..

The other thing is that a native xserver would be nice, because Xephyr converts the touch inputs to mouse inputs.. Chromium can interpret a mouse as touchscreen, which is the reason why it works like on Android now, but that's only one application. First step would probably be to get xf86-video-imx working on Alpine (there's no package for it, also compatability with kernel?), and then creating a plugin for xorg that refreshes the screen according to the xdamage events (possibly with NiLuJe's FBInk?). I toyed a little with the fbdev driver, and while something happens on the screen when manually refreshing, something is off as the colors and size of elements don't match, probably something related to color depth or whatever. But performance with fbdev would probably way worse than with the imx driver anyways
schuhumi is offline   Reply With Quote
Old 09-03-2019, 11:16 AM   #9
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 12,129
Karma: 21225489
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW & PW2; Kobo H2O, Forma, Elipsa & Sage
I have no experience (at all) with X drivers, but, technically, yeah, once you have a rectangle's coordinates/dimensions, you're only an fbink_refresh() away .
NiLuJe is offline   Reply With Quote
Old 09-03-2019, 11:37 AM   #10
knc1
Going Viral
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 17,212
Karma: 18210807
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
Quote:
Originally Posted by schuhumi View Post
Nice! Made it read the current as well: https://github.com/schuhumi/alpine_k...0d719e6541e6a8


Yeah that's on my list of things to get working, will probably require some kernel module though haven't looked too much into it yet..

The other thing is that a native xserver would be nice, because Xephyr converts the touch inputs to mouse inputs.. Chromium can interpret a mouse as touchscreen, which is the reason why it works like on Android now, but that's only one application. First step would probably be to get xf86-video-imx working on Alpine (there's no package for it, also compatability with kernel?), and then creating a plugin for xorg that refreshes the screen according to the xdamage events (possibly with NiLuJe's FBInk?). I toyed a little with the fbdev driver, and while something happens on the screen when manually refreshing, something is off as the colors and size of elements don't match, probably something related to color depth or whatever. But performance with fbdev would probably way worse than with the imx driver anyways
If you are writing about your PW3 ...
All series 5.x firmware devices are running native X11.
Plus, the 'diags' firmware of the K4 is also running X11.
So there are your X11 drivers for each device, Amazon/Lab126 already ships them.
knc1 is offline   Reply With Quote
Old 09-03-2019, 12:26 PM   #11
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 12,129
Karma: 21225489
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW & PW2; Kobo H2O, Forma, Elipsa & Sage
True, that'd be the simplest solution, but the Xorg driver ABI might have some stuff to say about that... :/ (plus, Alpine is musl, not glibc, which might not help the matter).
NiLuJe is offline   Reply With Quote
Old 09-03-2019, 01:15 PM   #12
schuhumi
Member
schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.schuhumi ought to be getting tired of karma fortunes by now.
 
Posts: 17
Karma: 222224
Join Date: Jul 2018
Device: PW3
Quote:
Originally Posted by NiLuJe View Post
I have no experience (at all) with X drivers, but, technically, yeah, once you have a rectangle's coordinates/dimensions, you're only an fbink_refresh() away .
Cool

Quote:
Originally Posted by knc1 View Post
If you are writing about your PW3 ...
All series 5.x firmware devices are running native X11.
Plus, the 'diags' firmware of the K4 is also running X11.
So there are your X11 drivers for each device, Amazon/Lab126 already ships them.
I'm aware that it runs X11, what I meant was using X11 from Alpine without that abomination of windowmanager-tied refresh scripts. And I briefly tried compiling the driver Amazon provides, but since Amazon ships xorg-server 1.8.2 and Alpine is at 1.20.5, it seems like it actually fails due to changed driver ABI, for example:
Code:
In file included from imx_display.c:39:
/usr/include/xorg/fbdevhw.h:50:54: note: expected 'ScrnInfoPtr' {aka 'struct _ScrnInfoRec *'} but argument is of type 'int'
 extern _X_EXPORT void fbdevHWAdjustFrame(ScrnInfoPtr pScrn, int x, int y);
                                          ~~~~~~~~~~~~^~~~~
imx_display.c:961:2: error: too many arguments to function 'fbdevHWAdjustFrame'
  fbdevHWAdjustFrame(scrnIndex,0,0,0);
  ^~~~~~~~~~~~~~~~~~
Full output for anyone interested:
Spoiler:
Code:
[alpine@kindle xf86-video-imx_2011-04-11]$ make
make  all-recursive
make[1]: Entering directory '/home/alpine/xf86-video-imx_2011-04-11'
Making all in src
make[2]: Entering directory '/home/alpine/xf86-video-imx_2011-04-11/src'
/bin/sh ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..    -I/usr/include/xorg -fvisibility=hidden -I/usr/include/pixman-1 -I/usr/include/X11/dri -I/usr/include/libdrm  -DRENDER -DCOMPOSITE -DMITSHM -DIMX_XVIDEO_ENABLE=0 -g -O2 -MT imx_display.lo -MD -MP -MF .deps/imx_display.Tpo -c -o imx_display.lo imx_display.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/include/xorg -fvisibility=hidden -I/usr/include/pixman-1 -I/usr/include/X11/dri -I/usr/include/libdrm -DRENDER -DCOMPOSITE -DMITSHM -DIMX_XVIDEO_ENABLE=0 -g -O2 -MT imx_display.lo -MD -MP -MF .deps/imx_display.Tpo -c imx_display.c  -fPIC -DPIC -o .libs/imx_display.o
imx_display.c: In function 'imxDisplayPointerMoved':
imx_display.c:135:32: warning: passing argument 1 of 'fPtr->prevPointerMovedProc' makes pointer from integer without a cast [-Wint-conversion]
  (*fPtr->prevPointerMovedProc)(index, newX, newY);
                                ^~~~~
imx_display.c:135:32: note: expected 'ScrnInfoPtr' {aka 'struct _ScrnInfoRec *'} but argument is of type 'int'
imx_display.c: In function 'imxDisplaySetCurrentMode':
imx_display.c:383:12: warning: implicit declaration of function 'write'; did you mean 'fwrite'? [-Wimplicit-function-declaration]
  if (-1 == write(fd, validModeName, strlen(validModeName))) {
            ^~~~~
            fwrite
imx_display.c:391:2: warning: implicit declaration of function 'close'; did you mean 'Fclose'? [-Wimplicit-function-declaration]
  close(fd);
  ^~~~~
  Fclose
imx_display.c: In function 'imxDisplayGetCurrentMode':
imx_display.c:439:12: warning: implicit declaration of function 'ioctl'; did you mean 'iscntrl'? [-Wimplicit-function-declaration]
  if (-1 == ioctl(fd, FBIOGET_VSCREENINFO, &fbVarScreenInfo)) {
            ^~~~~
            iscntrl
imx_display.c:448:24: warning: implicit declaration of function 'xalloc'; did you mean 'valloc'? [-Wimplicit-function-declaration]
  DisplayModePtr mode = xalloc(sizeof(DisplayModeRec));
                        ^~~~~~
                        valloc
imx_display.c:448:24: warning: initialization of 'DisplayModePtr' {aka 'struct _DisplayModeRec *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
imx_display.c: In function 'imxDisplayDeleteModes':
imx_display.c:581:4: warning: implicit declaration of function 'xfree'; did you mean 'free'? [-Wimplicit-function-declaration]
    xfree(mode->name);
    ^~~~~
    free
imx_display.c: In function 'imxDisplayPreInit':
imx_display.c:855:27: warning: implicit declaration of function 'xcalloc'; did you mean 'calloc'? [-Wimplicit-function-declaration]
  imxPtr->displayPrivate = xcalloc(sizeof(ImxDisplayRec), 1);
                           ^~~~~~~
                           calloc
imx_display.c:855:25: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  imxPtr->displayPrivate = xcalloc(sizeof(ImxDisplayRec), 1);
                         ^
imx_display.c: In function 'imxDisplayStartScreenInit':
imx_display.c:961:21: warning: passing argument 1 of 'fbdevHWAdjustFrame' makes pointer from integer without a cast [-Wint-conversion]
  fbdevHWAdjustFrame(scrnIndex,0,0,0);
                     ^~~~~~~~~
In file included from imx_display.c:39:
/usr/include/xorg/fbdevhw.h:50:54: note: expected 'ScrnInfoPtr' {aka 'struct _ScrnInfoRec *'} but argument is of type 'int'
 extern _X_EXPORT void fbdevHWAdjustFrame(ScrnInfoPtr pScrn, int x, int y);
                                          ~~~~~~~~~~~~^~~~~
imx_display.c:961:2: error: too many arguments to function 'fbdevHWAdjustFrame'
  fbdevHWAdjustFrame(scrnIndex,0,0,0);
  ^~~~~~~~~~~~~~~~~~
In file included from imx_display.c:39:
/usr/include/xorg/fbdevhw.h:50:23: note: declared here
 extern _X_EXPORT void fbdevHWAdjustFrame(ScrnInfoPtr pScrn, int x, int y);
                       ^~~~~~~~~~~~~~~~~~
imx_display.c: In function 'imxDisplaySwitchMode':
imx_display.c:1008:27: warning: passing argument 1 of 'fbdevHWSwitchMode' makes pointer from integer without a cast [-Wint-conversion]
  return fbdevHWSwitchMode(scrnIndex, mode, flags);
                           ^~~~~~~~~
In file included from imx_display.c:39:
/usr/include/xorg/fbdevhw.h:49:53: note: expected 'ScrnInfoPtr' {aka 'struct _ScrnInfoRec *'} but argument is of type 'int'
 extern _X_EXPORT Bool fbdevHWSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode);
                                         ~~~~~~~~~~~~^~~~~
imx_display.c:1008:9: error: too many arguments to function 'fbdevHWSwitchMode'
  return fbdevHWSwitchMode(scrnIndex, mode, flags);
         ^~~~~~~~~~~~~~~~~
In file included from imx_display.c:39:
/usr/include/xorg/fbdevhw.h:49:23: note: declared here
 extern _X_EXPORT Bool fbdevHWSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode);
                       ^~~~~~~~~~~~~~~~~
imx_display.c: In function 'imxDisplayAdjustFrame':
imx_display.c:1020:2: warning: implicit declaration of function 'fbdevHWAdjustframe'; did you mean 'fbdevHWAdjustFrame'? [-Wimplicit-function-declaration]
  fbdevHWAdjustframe(scrnIndex, x, y, flags);
  ^~~~~~~~~~~~~~~~~~
  fbdevHWAdjustFrame
imx_display.c: In function 'imxDisplayEnterVT':
imx_display.c:1034:24: warning: passing argument 1 of 'fbdevHWEnterVT' makes pointer from integer without a cast [-Wint-conversion]
  return fbdevHWEnterVT(scrnIndex, flags);
                        ^~~~~~~~~
In file included from imx_display.c:39:
/usr/include/xorg/fbdevhw.h:51:50: note: expected 'ScrnInfoPtr' {aka 'struct _ScrnInfoRec *'} but argument is of type 'int'
 extern _X_EXPORT Bool fbdevHWEnterVT(ScrnInfoPtr pScrn);
                                      ~~~~~~~~~~~~^~~~~
imx_display.c:1034:9: error: too many arguments to function 'fbdevHWEnterVT'
  return fbdevHWEnterVT(scrnIndex, flags);
         ^~~~~~~~~~~~~~
In file included from imx_display.c:39:
/usr/include/xorg/fbdevhw.h:51:23: note: declared here
 extern _X_EXPORT Bool fbdevHWEnterVT(ScrnInfoPtr pScrn);
                       ^~~~~~~~~~~~~~
imx_display.c: In function 'imxDisplayLeaveVT':
imx_display.c:1046:17: warning: passing argument 1 of 'fbdevHWLeaveVT' makes pointer from integer without a cast [-Wint-conversion]
  fbdevHWLeaveVT(scrnIndex, flags);
                 ^~~~~~~~~
In file included from imx_display.c:39:
/usr/include/xorg/fbdevhw.h:52:50: note: expected 'ScrnInfoPtr' {aka 'struct _ScrnInfoRec *'} but argument is of type 'int'
 extern _X_EXPORT void fbdevHWLeaveVT(ScrnInfoPtr pScrn);
                                      ~~~~~~~~~~~~^~~~~
imx_display.c:1046:2: error: too many arguments to function 'fbdevHWLeaveVT'
  fbdevHWLeaveVT(scrnIndex, flags);
  ^~~~~~~~~~~~~~
In file included from imx_display.c:39:
/usr/include/xorg/fbdevhw.h:52:23: note: declared here
 extern _X_EXPORT void fbdevHWLeaveVT(ScrnInfoPtr pScrn);
                       ^~~~~~~~~~~~~~
imx_display.c: In function 'imxDisplayValidMode':
imx_display.c:1060:26: warning: passing argument 1 of 'fbdevHWValidMode' makes pointer from integer without a cast [-Wint-conversion]
  return fbdevHWValidMode(scrnIndex, mode, verbose, flags);
                          ^~~~~~~~~
In file included from imx_display.c:39:
/usr/include/xorg/fbdevhw.h:47:58: note: expected 'ScrnInfoPtr' {aka 'struct _ScrnInfoRec *'} but argument is of type 'int'
 extern _X_EXPORT ModeStatus fbdevHWValidMode(ScrnInfoPtr pScrn, DisplayModePtr mode,
                                              ~~~~~~~~~~~~^~~~~
imx_display.c: In function 'xf86SwitchModePriv':
imx_display.c:1162:31: warning: passing argument 2 of 'miPointerSetPosition' makes integer from pointer without a cast [-Wint-conversion]
     miPointerSetPosition(dev, &px, &py);
                               ^~~
In file included from /usr/include/xorg/xf86Cursor.h:6,
                 from /usr/include/xorg/xf86Crtc.h:29,
                 from imx_display.c:37:
/usr/include/xorg/mipointer.h:106:45: note: expected 'int' but argument is of type 'int *'
 miPointerSetPosition(DeviceIntPtr pDev, int mode, double *x, double *y,
                                         ~~~~^~~~
imx_display.c:1162:36: warning: passing argument 3 of 'miPointerSetPosition' from incompatible pointer type [-Wincompatible-pointer-types]
     miPointerSetPosition(dev, &px, &py);
                                    ^~~
In file included from /usr/include/xorg/xf86Cursor.h:6,
                 from /usr/include/xorg/xf86Crtc.h:29,
                 from imx_display.c:37:
/usr/include/xorg/mipointer.h:106:59: note: expected 'double *' but argument is of type 'int *'
 miPointerSetPosition(DeviceIntPtr pDev, int mode, double *x, double *y,
                                                   ~~~~~~~~^
imx_display.c:1162:5: error: too few arguments to function 'miPointerSetPosition'
     miPointerSetPosition(dev, &px, &py);
     ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/xorg/xf86Cursor.h:6,
                 from /usr/include/xorg/xf86Crtc.h:29,
                 from imx_display.c:37:
/usr/include/xorg/mipointer.h:106:1: note: declared here
 miPointerSetPosition(DeviceIntPtr pDev, int mode, double *x, double *y,
 ^~~~~~~~~~~~~~~~~~~~
imx_display.c: In function 'privSendConfigNotify':
imx_display.c:1197:22: error: 'WindowTable' undeclared (first use in this function); did you mean 'WindowDrawable'?
     WindowPtr pWin = WindowTable[pScreen->myNum];
                      ^~~~~~~~~~~
                      WindowDrawable
imx_display.c:1197:22: note: each undeclared identifier is reported only once for each function it appears in
imx_display.c: In function 'imxDisplayChangeFrameBufferRotateEPDC':
imx_display.c:1402:31: warning: passing argument 1 of 'pScrn->EnableDisableFBAccess' makes pointer from integer without a cast [-Wint-conversion]
  pScrn->EnableDisableFBAccess(scrnIndex, FALSE);
                               ^~~~~~~~~
imx_display.c:1402:31: note: expected 'ScrnInfoPtr' {aka 'struct _ScrnInfoRec *'} but argument is of type 'int'
imx_display.c:1474:10: error: 'struct _ScrnInfoRec' has no member named 'pixmapPrivate'; did you mean 'driverPrivate'?
   pScrn->pixmapPrivate = pScreenPixmap->devPrivate;
          ^~~~~~~~~~~~~
          driverPrivate
imx_display.c:1480:31: warning: passing argument 1 of 'pScrn->EnableDisableFBAccess' makes pointer from integer without a cast [-Wint-conversion]
  pScrn->EnableDisableFBAccess(scrnIndex, TRUE);
                               ^~~~~~~~~
imx_display.c:1480:31: note: expected 'ScrnInfoPtr' {aka 'struct _ScrnInfoRec *'} but argument is of type 'int'
make[2]: *** [Makefile:359: imx_display.lo] Error 1
make[2]: Leaving directory '/home/alpine/xf86-video-imx_2011-04-11/src'
make[1]: *** [Makefile:319: all-recursive] Error 1
make[1]: Leaving directory '/home/alpine/xf86-video-imx_2011-04-11'
make: *** [Makefile:248: all] Error 2
[alpine@kindle xf86-video-imx_2011-04-11]$


I think the options are:
  1. Use the existing xserver with customized refresh. Pro: Driver works Con: Put work into an obsolete piece of software outside the Alpine ecosystem
  2. Search for a newer imx xorg driver. Pro: Can use Alpine's xserver Con: I have no idea yet whether the imx video driver has dependencies in the kernel, that could be a dealbreaker
  3. Port driver from Amazon to newer xserver: Pro: compatible with kernel for sure Con: Probably more work than fixing a handful function parameters / pointers whatever
I just need to do some more research..
schuhumi is offline   Reply With Quote
Old 09-03-2019, 02:50 PM   #13
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 12,129
Karma: 21225489
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW & PW2; Kobo H2O, Forma, Elipsa & Sage
Fair warning: I have *no* idea what all this is for xD.

The modern variant of this appears to be something like that, although that's not actually aimed at boards w/ an EPDC, which use an older kernel. Also possibly not aimed at the right boards *at all* (that certainly targets at *least* an i.MX6 w/ a Vivante GPU, which I don't think is the case on Kindle & Kobo, we only have the PXP).

I think *someone* managed to dig up the proper tree from NXP a few months ago (possibly on the Kobo forum), FWIW.

----

Back on planet Earth, IIRC, on Kindle, the actual job of requesting eInk refreshes is deferred to awesome via the ligl lua bindings.
That said, I never really looked all that much into it, short of enabling debug logging to mimic its behavior in KOReader.

Last edited by NiLuJe; 09-03-2019 at 03:02 PM. Reason: Re-read the datasheets. No Vivante.
NiLuJe is offline   Reply With Quote
Old 09-04-2019, 10:44 AM   #14
JJYYPPCC
Junior Member
JJYYPPCC began at the beginning.
 
Posts: 3
Karma: 10
Join Date: Aug 2019
Device: Amazon KPW3
Quote:
Originally Posted by schuhumi View Post
So here you can find tools and instructions now: https://github.com/schuhumi/alpine_kindle
Hello schuhumi I am using your Alpine image to reply you(Because my skipstone can't login to forum),but emmmm,not everything is good as I thought.
·After trying I could make sure that it doesn't like any Usb devices except charge line.(Though I successfully use ADB to install .apk on my HUAWEI Watch through WIFI).
·Though Chromium is so perfect that could be use to watch LIVE,but it cannot afford 2 tabs.(Maybe because of performance or need time to improve)
·Right click on the panel is harder than long-time press to use.
·Onboard's input upper cases is a monster!I must click Capslock many times to input the upper cases I need.
·Cannot open *.AppImage(Because of performance I do not want to make any packages on Kindle)
——————————
A strange thing:There is a package manager "pacman" could be installed by "apk".It looks norml but I don't know how to use.Is it useful?
That's all.Maybe.XD
JJYYPPCC is offline   Reply With Quote
Old 09-05-2019, 02:02 PM   #15
kindle72
Member
kindle72 began at the beginning.
 
Posts: 18
Karma: 10
Join Date: Sep 2019
Device: A7CC
Wow, that looks great!

1) is there a video available? to see how it really feels?
2) is it possible to rotate the desktop to landscape?
3) is it possbile to map the buttons (Oasis)?
4) is it possible to play music over bluetooth?
5) is it possible to connect a keyboard + mouse over bluetooth?

thanks!
kindle72 is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Anyone run Linux on an ereader? Panchax General Discussions 63 10-17-2017 02:05 PM
Alpine Linux on Kindle zaoqi Kindle Developer's Corner 3 08-21-2017 01:23 PM
Alpine Linux on Kindle zaoqi Kindle Developer's Corner 2 08-20-2017 10:43 AM
Running calibre on Alpine Linux? ljnelson Calibre 1 12-14-2016 01:34 AM
how to run an app with full screen kdusr Kindle Developer's Corner 5 11-28-2016 05:04 AM


All times are GMT -4. The time now is 07:52 PM.


MobileRead.com is a privately owned, operated and funded community.