Closed frio closed 6 years ago
Ooh, got it. 0x4040462e
is also MXCFB_SEND_UPDATE_OLD
for the old Cervantes devices. In ffi/framebuffer_mxcfb.lua
we check if the self.device.model
is a Cervantes3
, but it's actually a Cervantes 3
! I'll open a PR :).
@frio: thanks for your feedback!. It is really nice seeing others using KOReader on these devices.
0x4040462e is also MXCFB_SEND_UPDATE_OLD for the old Cervantes devices
I copied this from original device kernel sources but seems unused, so I will remove that and use MXCFB_SEND_UPDATE for all the lineup, just like qt driver does.
check if the self.device.model is a Cervantes3
The check logic is flawed. There is a tiny little room for optimization in newer devices (ie: using REGAL waveforms in partial/ui updates & set the flags accordly). I got good results in my cervantes4 which I think will work on cervantes3, so If you're willing to try, I will push those changes and leave cervantes2013 as an old device until somebody comes in with that device to test.
BTW, regarding your original comment about the switching page bug on developers firmware, this was fixed upstream in https://github.com/bq/cervantes/pull/9 thanks to @avsej
In https://github.com/koreader/koreader-base/pull/745 @pazos implemented support for the bq Cervantes line of devices, with the Cervantes 4 being the test device. I've had some time today to test out my Cervantes 3, and have found that
koreader
won't start. There's a few separate bugs which I'll describe here; I can resolve one of them but I usually program further up the stack and I'm hitting the limits of my low-level powers.The first issue is that
koreader
wouldn't start. I tracked this down tofrontend/device/cervantes/device.lua
in koreader and will open a PR there -- it appears that there isn't a default/fall-through for unimplemented methods likehasNaturalLight
, so I added ano
method (the inverse ofyes
, defined at the top of that file) and managed to getkoreader
starting.Unfortunately, the screen never does anything.
fbink
appears to work, and a bit of digging led me to the following:Google led me to
strace
and the following:I note that the second argument there,
0x4040462e
is theMXCFB_SEND_UPDATE
for the Pocketbook. The Cervantes, as perffi/framebuffer_mxcfb.lua
should be0x4044462e
.So -- it appears that this argument is wrong, but I'm stuck getting much further here. The value in
mxcfb_cervantes_h.lua
is correct, and I believe that's getting imported inframebuffer_mxcfb.lua
(EDIT -- ah, but that's based on some device detection and it checks if itisPocketBook
before it gets to the Cervantes -- I'm digging here now).If anyone can suggest what might've gone wrong, I'd appreciate it! I'm happy to open a PR when we manage to dig the fix up :).