Commit Graph

149 Commits (master)

Author SHA1 Message Date
Frans de Jonge 63dd2ec0c0
[chore] Make ShellCheck happy (#5484)
Cf. https://github.com/koreader/koreader/pull/5477#discussion_r334234063
5 years ago
NiLuJe fe90a8febe [Kobo] Log the FW/kernel version on crash (#5477)
(Because it gets tedious asking for it in every bug report ;p).
5 years ago
NiLuJe 4363576066 Support the Kobo Libra
(Hopefully?).
5 years ago
NiLuJe a3acc667d6
[Kobo] Restart KOReader after a crash (#5328)
* Restart KOReader after a crash, after showing a fancy crash recap screen (our very own Gray Screen of Death!).

Kobo only, because it's possibly the platform where getting booted out
of KOReader is the most annoying.

Keeps track of crashes, to be able to give up after a while, in order to
avoid boot loops in the unlikely event of a crash loop on startup.

Adds a dev option to *always* exit KOReader after the crash screen.
5 years ago
NiLuJe e9eca55d90
Minor auto_restore_wifi tweaks (#5143)
* Try to make sure restoreWifiAsync eventually sends a NetworkConnected
event...

re: #5109

* Take a page from @shermp's book, and make sure wpa_supplicant managed to
connect to the AP before acquiring an IP.
Tear down WiFi modules in case of failure.
c.f., https://github.com/shermp/Kobo-UNCaGED/pull/21

* Don't let restore-wifi-async.sh enable WiFi behind our back when we're
killing it to start Nickel...

* Don't even call ping if there's no default gw
5 years ago
NiLuJe b72a2000b1
A few minor fixes after #4847 (#4850)
* Add a toggle to disable the C blitter in the Dev menu (depends on https://github.com/koreader/koreader-base/pull/882) (never shown if the JIT is disabled, grayed out if the C blitter is not installed)
* Fix a few sizeUtf8Text call sites that were doing a nil check in order to account for the new return type.
* Tweak statusbar handling to avoid spurious sizeUtf8Text warnings when it's hidden, and unify its behavior between being hidden via toggle, and hidden on book open (at least when all-at-once is not enabled).
* c.f., https://github.com/koreader/koreader-base/pull/882 (Android, PB, RGB32 & Legacy Kindle regression fixes).
5 years ago
NiLuJe 7210fb478d
Faster blitting @ BB8/BBRGB32 when no processing is needed (#4847)
* Pickup the eponymous blitting performance tweaks from koreader/koreader-base#878
* Cleanup BitOpts usage (require & cache)
* Unify oddness checks (MOD -> AND)
* Enforce the native Portrait orientation on Kobo (except @ 16bpp, i.e., KSM w/ 8bpp swap disabled), to allow for faster blitting when unrotted.
* Switch CRe BB to 32BPP on color screens
* Minor cleanups
5 years ago
NiLuJe 90df2f1997
Fix fb rotation on the Forma w/ KSM (#4779)
* Enforce Portrait rotation on the Forma *everywhere*, KSM included.
KSM is currently emulating a bogus rotation, which causes issues with
FBInk, but also happens to be insidiously quirky in weird corner-cases.
5 years ago
NiLuJe 7c2df53808
Update FBInk (#4765)
* Add a bit of logging before fbdepth calls, to make the progression
easier to grasp.
* Bump base (pickup FBInk update)
5 years ago
NiLuJe bb3f49a566 [feat, Kobo] On Kobo, drop fb to 8bpp on startup (#4637)
* The Great 8bpp Experiment

Swap to 8bpp on Kobo, because we're 'effing grayscale, for pete's sake!

* Always swap to 8bpp, no matter the launch method.

Because it turned out that, even when restarting Nickel, we had to
restore the expected bitdepth ourselves, because pickel/Nickel didn't do
the job completely.

(I'm going to guess the grayscale flag wasn't getting flipped properly).

* Dither every non-transparent icon to the eInk palette

* Make sure hasBGRFrameBuffer is only enabled when the Kobo fb actually is
@ 32bpp...

* Re-process badly grayscaled icons

* And re-grayscale that one w/ gamma correction so the squares show up
better.

* Allow the fbdepth switch to be disabled (in Developer settings).

Also, allow setting debug mode that way.

Also, forcibly disable verbose logging when disabling debug.

* Update setting name to piggyback on the existing check in reader.lua

* Update icons postprocessing info
5 years ago
NiLuJe f6743a45db
Proper Forma support (#4414)
* Enforce a known rotation on startup, to make sure we handle touch input coordinates properly.
* Proper FrontLight warmth support (thanks to @cairnsh & @pazos in #4291)!
* Fix the PageTurn buttons mapping to match Nickel's defaults
* Properly remap PageTurn buttons depending on the current rotation.
* Actually enable the Mk.7 screen refresh codepath on *all* Mk.7 devices (I'd messed up the device check...).
* Full accelerometer handling (includes a touch of refactoring regarding orientation handling in general).
* Fix insidiously broken USBMS behavior in Nickel after we exit on FW >4.8.

Fix #4291
Fix #3002
5 years ago
NiLuJe ababbd7aad
Enhanced visual feedback around tar & zsync! (#4194)
* Move Kindle scripts to FBInk
* Proper progress bars around tar invocations
* Spinner during zsync processing
6 years ago
NiLuJe 0924b57877
Tweak/unbreak my CPUFreq experiment (#4119)
* Only switch to ondemand when we actually can, and when it's better than the current governor...
  This potentially leaves Mk.5 in the lurch, but there's no perfect solution there :/.

* Switch to UI for the unmark event of navigation hints markers
Might help on non-REAGL devices, and doesn't hurt there (re #3983).

* Switch SQLite DBs to WAL
Sounds nice in theory, behaves fine in practice.
6 years ago
NiLuJe b509e54a2a
CPUFreq shenanigans on Kobo (#4114)
* Switch to ondemand CPUFreq governor on Kobo

My H2O boots with the userspace (!!) governor...
Note that the hardware appears to blissfully ignore any of this, because
the stats still show the CPU changing state on its own...
6 years ago
NiLuJe 6835c18ee6
Re-exec startup script on Kindle/Kobo when an OTA update is processed on startup (#4062)
So that we may properly pickup potential updates to the startup script
itself.
6 years ago
NiLuJe 4ffd959df4
Handle OTA updates during the restart loop on Kobo/Kindle (#4049)
* Handle OTA updates during the restart loop on Kobo/Kindle

So we can actually process OTA updates without ever truly exiting
KOReader (i.e., via the "Restart KOReader" menu entry) ;).
6 years ago
NiLuJe 8089d916a5
Visual feedback around tar/zsync on Kobo during OTA updates (#4043)
* With a bonus version normalizer fix.
  * And a zsync bump/fix to avoid softlocks with OpenStack HTTP frontends (also, pull those from the OTA mirror list).
6 years ago
NiLuJe e2a0929c51
Better KOA2 support (#4037)
* Better KOA2 support
    * Fix FL
    * Add physical pageturn keys
    * Add accelerometer support
* Possibly better NaturalLight handling on the Clara
* Fix WiFi module name used in some(?) Mk7 Kobos
* A bunch of kodev fixes
6 years ago
NiLuJe 18db509325 Assorted bag of fixes (#4014)
* Link to the WiKi, it's a bit more explainy ;).

* More WiFi trickery for some HW revs

* Fix Rev2 detection under KSM

That's to future-proof it, the other end of this hasn't made it into
current KSM build yet.

* Resync nickel.sh w/ current rcS

We don't have CPU, but we have PLATFORM, which is based on CPU, so,
that'll do :).

* Go back to using rmmod instead of modprobe -r

Functionally identical on current FW, will potentially avoid getting
outsmarted by modprobe if Kobo ever deigns shipping an actually usable
Linux system one day...

* Don't crash if screensavers directory doesn't exist

c.f., https://www.mobileread.com/forums/showpost.php?p=3706979&postcount=2919
6 years ago
NiLuJe e3b7524d9c Another round of Kobo Fixes (#3939)
* Trim unneeded stuff from startup script

I was somehow convinced I'd already done that...
While we're there, explain why we need to siphon those specific vars

* Fix a stray eth0

-> $INTERFACE

* Be very very sure we have INTERFACE set in our env

re #3936

* Make getFirmwareVersion less fragile on Kobo

Not that we actually use it right now, but, still. :D

* Use the same syntax as the PRODUCT check

* Actually implement getProductId

Instead of a stray c/p ^^

* Properly identify the Rev2/Mark7 variants of existing devices

Namely, the H2O² and Aura SE
Not that the H2O²r2 support is still broken, this just allows us to
implement it cleanyl without breaking handling of the original H2O²

re #3925

* Tweak sleeps a bit around Kobo WiFi modules...

See if that jog things up (re #3936)

* Try harder not to suspend with WiFi on on Kobos

Because otherwise, things go boom. (re #3936)
6 years ago
mezzarobba a3e16b3920 [fix] make wifi control work with my Kobo Touch N905 (#3920) 6 years ago
NiLuJe 3f92525ec7 Fix WiFi on Kobo (#3891)
Regression after bdb82d09c1
TL;DR: That thing is race-y as hell.

The more I play with Kobos, the more it feels like the whole thing's
held together by pieces of fraying strings...
6 years ago
NiLuJe a36407080b Don't use a square icon on Kobo (#3889)
We ship it for use with fmon, and that means it gets processed by
Nickel, which expects an optimal AR of 0.75
6 years ago
NiLuJe bdb82d09c1 [chore] A round of Kobo specific script cleanup (#3876)
* Flag those scripts as executable in git

Somewhat irrelevant because we'll end up living on a FAT32 drive, but,
still.

* Cleanup Kobo startup script

Support KFMon >= 0.9.5

Don't siphon PRODUCT from nickel, it's exported by rcS, so fmon/KFMon
already inherit it.
Siphon NICKEL_HOME, on the off-chance nickel fails to figure that one
out for itself on restart.
Siphon LANG (This may be a terrible idea, rcS sets LANG to en_US.UTF-8,
while we set LC_ALL to en_US.UTF-8, but I don't know if nickel itself
ever updates LANG, since I have mine set to en_US also ;)).
My secret hope if that everything's working as it should and this ensures
we default to Nickel's locale on fresh installs?

Remove the extra sync on startup, both @Baskerville's fmon and KFMon are
smart enough not to do anything overly stupid, and recent FW versions
have a slightly more resilient DB anyway (rollback journal -> WAL).
This effectively shaves over a second off our startup time.

* Slimmed down the nickel restart script.

Based on current rcS
Scrapped a bucketload of irrelevant & legacy crap, since we're never
bootstrapping nickel, only restarting it.

* Update Kobo install instrcutions.

Point to KSM09, @Baskerville's fmon, and KFMon.
Deprecate legacy fmon, and as such, stop shipping a useless KoboRoot
tarball.
6 years ago
Hzj_jie 30378eb2a8 Add restart koreader function and ensure FlushSettings event can be delivered to all widgets (#2772) 7 years ago
Frans de Jonge 1850ebca0d (chore) koreader.sh: remove 32-bit workaround
Final fix for #2502.
7 years ago
Qingping Hou d1cc3bd6c2 ota(fix): always purge ota update files 7 years ago
a-kohout 870c4d3859 Update koreader.sh; fixes #2791
tar fails to apply permissions on fat32 filesystem. thus mv doesn't get executed and consequently OTA package gets applied on every launch.
7 years ago
Frans de Jonge 0eec5b5174 Simplify koreader.sh
`-C "${KOREADER_DIR}"` isn't needed, see https://github.com/koreader/koreader/issues/2752#issuecomment-293698136.
7 years ago
Frans de Jonge 5de8310aa6 Kobo (koreader.sh): install OTA update in working directory
Thanks to @a-kohout

Fixes #2752
7 years ago
Frans de Jonge e8c01274f4 Travis: enforce shellscript coding style
* enormous coding style update

* update luajit-launcher

All changes are formatting only except for:

* new more correct pushd/popd style
	* keeps useful indentation
	* prevents execution of commands when pushd failed (cf. https://github.com/koalaman/shellcheck/wiki/SC2164 and https://github.com/koalaman/shellcheck/issues/863)

```
pushd some_dir && {
    command1
    command2
} || exit
popd
```
7 years ago
Frans de Jonge e5bcdee85e Add ShellCheck and shfmt shell code quality analysis (#2712)
* Add ShellCheck and shfmt shell code quality analysis

* kobo/koreader.sh: remove useless $PREFIX

* kobo/koreader.sh: fix rotation issue caused by #2731

* Travis: speed up (caching Luarocks should shave a minute off install process)
7 years ago
pazos 3a75b6deab use fullpath for reboot 7 years ago
pazos 31b246574b Kobo framebuffer: workaround to support +4.0FW 7 years ago
Qingping Hou c34e04e081 wifi(fix): use -D wext for kobo wpa_supplicant 7 years ago
Qingping Hou 6b50a2783b kobo(fix): load wifi module by ENV
Aura One uses 8189fs instead of dhd module
7 years ago
Martín Fernández 79fd02e020 Kobo: remove useless error messages from ntx_hwconfig 7 years ago
Qingping Hou f95ad00b9e feat: add logger module & rewrite kobo suspend script in lua 7 years ago
poire-z 65881738b5 disable-wifi.sh: decreased sleep duration 8 years ago
Qingping Hou 744115de9f crash.log(fix): obviously I suck at counting zeros 8 years ago
poire-z 08a92de179 Fix: avoid system hang when disabling wifi (#2394) 8 years ago
Qingping Hou b7cdf103e3 chore: fix luacheck error & add comment to release-ip.sh 8 years ago
Hzj_jie 8e5f294902 Return correct result from koreader.sh 8 years ago
Qingping Hou efae2ed16f network(fix): automaticallly obtain IP if network is already authenticated 8 years ago
Qingping Hou 705d3e4cb4 doc(minor): document alternative usb plug event source for kobo 8 years ago
Qingping Hou 0ed95406a4 log(fix): do not pipe stdout to /dev/null during crash log rotation 8 years ago
Qingping Hou 5309a0a47f misc: rotate crash.log for kobo/kindle/pocketbook 8 years ago
Qingping Hou c716fef0e3 minor: change wording in restore-wifi-sync script 8 years ago
Hzj_jie 52bcf87643 always release ip before obtaining a new one 8 years ago
Hzj_jie da2c57f93a Automatically connect WIFI after Kobo has been resumed (#2215)
* Add bash scripts to control WIFI / IP, so we can share them with frontend/device/kobo/device.lua.

* add test cases
8 years ago
NiLuJe 2013a66fdd Some more Kobo suspend tweaks...
Disable wakeup_count handling, that's often causing more harm than
anything else...
Nickel doesn't even use it, that should have been a hint ;).

Make the logging slightly less confusing.
Add commented out debug features (dumping relevant dmesg output).

Re #2188
8 years ago
NiLuJe 0f184e30ed Tweak nickel restart script
Also restart sickel...
8 years ago
NiLuJe 892e3c0f1e Kobo startup script tweak.
When using KFMon, make the reboot on exit user-configurable.
The user can now choose to try to restart Nickel directly, like with
fmon.
For now, we still do a full reboot by default.
8 years ago
Frans de Jonge 8643d38a68 Removed some bashisms 8 years ago
NiLuJe e90f1018db Make the KFMon chekc actually accurate...
Sleep does wonder for your brain!
8 years ago
NiLuJe b406e3591f Update Kobo startup script for KFMon
Takes care of some potentially critical stuff ;p
8 years ago
Qingping Hou dceaa01250 minor: redirect all output to crash.log 8 years ago
Frans de Jonge b8b0684e30 Add a comment with 'from_nickel', fixes #1889 8 years ago
NiLuJe 770625d756 Tweak the 'IR down on resume' workaround...
Only apply it when started from nickel, because I'm guessing we'd have
seen a number of reports of this if it happened more widely...
8 years ago
NiLuJe ea382aea86 Tweak the sd is ro check a bit
Inspired from MRPI, but without a strict check of the device name,
because I'm not sure it'll be the same across the whole range of
Kobos...
8 years ago
NiLuJe 150aac1630 More comment tweaks re: Kobo suspend 8 years ago
NiLuJe 06e1bd4ed2 Slightly more accurate comments re: Kobo suspend 8 years ago
NiLuJe fe13af9d7e More Kobo suspend tweaks...
Basically more loging to debug suspend issues...
AFAICT, having anything plugged in over USB will screw things up, for
instance.
8 years ago
NiLuJe 6c8bbfd470 Unbreak Kobo frontlight -> off when suspending.
If no-one touches anything, flState stays false...
And anyway, we should unconditionally disable the fl on sleep.
8 years ago
zijiehe e7b8bdcde2 Check whether sd card is presenting and mounting as RO, before do the real remount 8 years ago
zijiehe 38553b5ef8 Mount SD card as RW on kobo, but ignore errors, since we may not have sd
card installed.
8 years ago
Cosmin Gorgovan 856ec6d075 Mark suspend.sh for Kobo as executable
Otherwise suspend fails to work when running koreader from a FS
which supports execute permissions.
8 years ago
NiLuJe f9925a8c82 Play with the Kobo suspend script...
Because apparently it's not behaving as it should? IDK...
9 years ago
NiLuJe 687aba796d Fix networkmgr on Kobo
To avoid potential issues with USBMS.
Namely, make sure CWD doesn't point to the userstore for persitent
processes.
Make sure wpa_supplicant doesn't try to use our own OpenSSL lib, which,
again, is in the userstore area.
Properly kill our dhcp client invocation on when killing WiFi

Also, some related fixes to the startup script:
Properly kill wpa_supplicant & the dhcp client when we kill
wifi before rebooting to nickel.
9 years ago
arasyi d3bc8ecb5f Fix nickel doesn't recognize sdcard after exiting
After exiting koreader, nickel will not recognize that sdcard is present.
This patch fixes that
9 years ago
Frans de Jonge 475ee28173 Fix KOReader exit
Should reboot less unnecessarily for older versions of KSM, and hopefully this would also be more forward-compatible.
9 years ago
NiLuJe 34cb799818 Fix nickel restart with WiFi up.
By killing the WiFi first, since apparently,
nickel really doesn't like that, and causes a deadlock.

re #1503, re #1504, fix #1520
9 years ago
NiLuJe 02fcb9037b Fix startup scripts.
Thanks to @Markismus's questions, I realized that some of what i thought
was true, wasn't.

First, pkill is a terrible idea to check for interpreted scripts.
Second, pidof is also potentially not that great for interpreted
scripts, because it'll only work with a shebang, and one that is
following the Linux syntax.
We don't have the full version with the -x to paper over that,
so use pgrep -f instead.

cf.
a736a571d2 (commitcomment-10948910)
for the gory details.
9 years ago
NiLuJe 9f89fc8e47 Fix Kobo startup script w/ KSM
pkill probably only checks the actual name of the binary.
We were checking a shell script, which I'm guessing is not launched
via a shebang, so that name was actually an arg to sh, or something like
that.

Use pidof instead, which matches the full command line.
9 years ago
NiLuJe 85445b12f1 Guess what? More comments ^^. 9 years ago
NiLuJe da891ca335 And comment that, because I'm likely to forget. 9 years ago
NiLuJe a99359fa44 Add a comment to explicit the KSM check 9 years ago
NiLuJe 7fd45c6cd3 And even more Kobo startup script tweaks.
Good news: restarting nickel doesn't deadlock anymore. Yay.
9 years ago
NiLuJe 218d8b3e54 More comments... 9 years ago
NiLuJe f259ec4259 Wipe dead code 9 years ago
NiLuJe 7db252a27e More Kobo startup scripts tweaks... 9 years ago
NiLuJe d4f80209d9 Minor comment tweak 9 years ago
NiLuJe 476ae3322c sync before killing nickel
Hopefully good enough to avoid trashing the DB
9 years ago
NiLuJe 97ad4afa92 Minor comment tweak 9 years ago
NiLuJe 6c1681b595 Well, go for the lesser evil.
For some unknowable reason, restarting nickel on exit deadlocks on my
H2O, so, do a full reboot instead, at least *that* works.
I'm probably one of the only people running KO manually anyway...
9 years ago
NiLuJe c2bd85bba4 More Kobo scripts tweak...
Trying to figure out why nickel deadlocks on restart...
9 years ago
NiLuJe 1945873682 Tweak the comment a bit 9 years ago
NiLuJe 6f815e2bdf Minor pass of cleanup of the Kobo scripts.
re #1503
9 years ago
HW de9f1a281d Merge pull request #1499 from Markismus/master
Update koreader.sh
9 years ago
Markismus 1e9996f475 Update koreader.sh
Compatibility with KSM is resolved. Koreader will now work from any directory it is installed in.

KSM7 tweaks `koreader.sh` line 5 from a hardcoded path to the line used above. I've added the change in line 12 to allow OTA updating.
9 years ago
chrox bb164c1deb Load our own shared libraries if possible
This should fix #1482.
9 years ago
chrox 33614a3a24 Fix #1457 9 years ago
Huang Xin b56c01c382 Merge pull request #1423 from Markismus/master
Update networkmgr.lua
9 years ago
Markismus 6e95673d80 Update koreader.sh
Forgot the export PLATFORM
9 years ago
Markismus 40202fbc6b Update koreader.sh
The commands in networkmgr.lua rely on an assigned value of PLATFORM. As discussed in #1423 this is only the case for child processes of rcS. This seems to be a fine place to check the value of PLATFORM.
9 years ago
chrox a40c172c47 fix mupdf rendering caused by FONTDIR env var
It turns out that one of our mupdf patch reads the FONTDIR env var
and uses it in a totally different way so we will use another env var
EXT_FONT_DIR to define external font directory for different platforms.
9 years ago
chrox 077517be0b add FONTDIR env variable
to support custom font directory for EPUB documents

Now Koreader could find fonts in the "fonts" directory in the USB root
directory of kindle, Kobo and PocketBook devices, thus no need to copy
fonts to "koreader/fonts" directory.
9 years ago
chrox 46963df0bb don't need to rebuild ota installed package if it's detected 10 years ago
chrox 2d3c502948 move platform dependent files into 'platform' directory 10 years ago