2
0
mirror of https://github.com/koreader/koreader synced 2024-10-31 21:20:20 +00:00
Commit Graph

140 Commits

Author SHA1 Message Date
NiLuJe
2c94291af8 Kobo: Fix the upgrade progress bar on sunxi
Merges are extremely broken outside of REAGL/REAGLD on recent kernels,
while things appear to mostly behave with REAGL, so, use that...

(AUTO was a bad call on sunxi anyway)
2022-01-19 12:44:35 +01:00
NiLuJe
40116fa830 Kobo: Switch crash screen to REAGL on sunxi
It's less prone to weird merging quirks.

Kobo: Simplify the sunxi crash screen workaround

Switching to REAGL made explicit flashing unnecessary.
2022-01-19 12:44:35 +01:00
NiLuJe
1084c6e151 Kobo: Set the CPU governor on *every* CPU (if available)
Fix #8578
2022-01-19 12:44:35 +01:00
NiLuJe
98b53b0390 Kobo: More readable crash screen on sunxi (Sage, especially).
Switch to flashing GC16, because the screen is so fast that using GL16
simply leaves us with an unreadable mess of ghosting.

I'm halfway considering rewriting this in Lua so that I can do a proper
batched update...
2021-11-01 23:38:22 +01:00
NiLuJe
48da545e32 Kobo/Elipsa: More fine-grained control over the amount of online CPU
cores

* Only keep a single core online most of the time.
* Device: Add an enableCPUCores method to allow controlling the amount of
  online CPU cores.
* Move the initial core onlining setup to Kobo:init, instead of the startup script.
* Enable two CPU cores while hinting new (e.g., cache miss) pages in PDF land.
* Enable two CPU cores while processing book metadata.
* Drive-by fix to isolate the DocCache pressure check to KoptInterface
  and actually apply it when it matters most (e.g., k2pdfopt stuff).
2021-09-25 02:47:06 +02:00
NiLuJe
af8988ef5f
Minor script tweaks (#8169)
* Neater fbdepth usage on sunxi
* Make sure we only ever match *loaded* modules when we check lsmod
2021-09-02 22:33:10 +02:00
NiLuJe
1a583af4a2
Unbreak Wi-Fi on < Mk.8 (#8077)
Don't pass empty parameters to insmod, it apparently doesn't like it...

Fix #8075
Regression since a91ba05e34
2021-08-14 17:28:26 +02:00
NiLuJe
6d30835b3b Handle new stuff from 4.28.18220
While we're in the vicinity... ;).
2021-08-10 23:02:56 +02:00
NiLuJe
a91ba05e34 Set the WiFi regulatory domain properly on the Elipsa
No idea how restrictive the defaults are, but stuff is weird in the 5G
band, so, do it right.
2021-08-09 21:12:17 +02:00
NiLuJe
1e9346aec6 Fix Wi-Fi toggle on the Elipsa
It turns out that the kernel needs a little push now that the dedicated
wifi power control module is gone ;).

Issue was only exposed if you booted KOReader while the Wi-Fi was down.
2021-08-09 02:33:07 +02:00
NiLuJe
0acf1a2b29 Kill NanoClock on startup
It's not terribly useful for us, as we already provide similar
functionaility.

(It'll be restarted automatically when nickel restarts).
2021-08-08 19:22:28 +02:00
NiLuJe
ae35e898fb
Kobo Elipsa support (#7986)
Includes a few minor cleanups along the way ;).
2021-07-21 18:12:58 +02:00
NiLuJe
5310381106 Kobo: Various other minor 4.28/Elipsa stuff 2021-06-15 18:00:32 +02:00
NiLuJe
94b0e974e1 Kobo: Kill new stuff from FW 4.28 on startup 2021-06-15 18:00:32 +02:00
NiLuJe
e0a67bb656
OTA: Handle tar checkpointing visual feedback w/ an FBInk daemon (#7588)
Instead of forking it on every checkpoint.

Won't change much in the grand scheme of things, but FIFOs are fun.
2021-04-25 01:15:38 +02:00
NiLuJe
b0336e9982
PocketBook: Workaround platform shenanigans when aplying an OTA (#7585)
We can't avoid hitting a few permission errors, so, just filter them out.

Fix #7581
2021-04-24 19:02:48 +02:00
yparitcher
dc964f3941
reader.lua: rework file/directory argument handling. (#7053)
platform: do not pass a directory on the command line.
The home directory will be properly set by Device.home_dir.

It was sometimes crashing when opened with no args.

Fixes: #7049
2021-01-07 20:38:10 +01:00
NiLuJe
8e3a117c68
Rejig CBB toggling on startup to avoid an extra jit.flush (#7023)
* When the CBB is disabled, attempt to apply the JIT tweaks earlier,
avoiding the JIT code flush in the process

* Drop debug prints

* Bump base

https://github.com/koreader/koreader-base/pull/1263
https://github.com/koreader/koreader-base/pull/1264
2020-12-23 17:06:08 +01:00
NiLuJe
931f01ef26
Kobo: Warn on restart if the startup script is outdated (#6916)
* Warn on restart if the startup script has been updated, because a restart will not reload it.

* Also warn right after the update if it contained a startup script update...
2020-11-28 22:48:09 +01:00
NiLuJe
cb2314d11b
Kobo, Mk.5: Tweak CPU frequency scaling (#6905)
* Run grep against /proc/modules directly instead of forking to lsmod

* Revamp the CPUFreq governor choice logic

I finally figured out why the scaling on the H2O was so wonky:
Because it relies on an obscure i.MX hardware feature called DVFS,
and it gets flipped for mysterious workaround-y reasons depending on
Wi-Fi state...

* Start playing with conservative, because just staying pegged at max
clock is entirely stupid.

And DVFS is extremely conservative, it needs somewhat sustained load to
clock up...

* Take care of the DVFS switcheroo in the Wi-Fi scripts
2020-11-25 15:50:47 +01:00
NiLuJe
510ea5963c
[Kobo] Don't attempt to restart Nickel when asking for a reboot/shutdown (#6880)
* Don't attempt to restart Nickel when asking for a reboot/shutdown

Use a magic exit code to ID those cases.

* Limit this to Kobo, to avoid breaking potentially existing assumptions
with other platform's startup scripts
2020-11-14 23:39:19 +01:00
NiLuJe
d9b658034d
Ensure the SD card is actually detected in Nickel on exit. (#6800)
* Ensure the SD card is actually detected in Nickel on exit.

Regression since #6522
2020-10-18 16:46:06 +02:00
NiLuJe
ba927fe4b5
Don't grab input devices on Kobo (#6705)
* Don't grab input devices on Kobo

(... as long as we're started via KFMon/NM.
... and MiniClock is not running ^^).

* Bump base

(https://github.com/koreader/koreader-base/pull/1197)
(https://github.com/koreader/koreader-base/pull/1199)
2020-09-24 05:05:59 +02:00
NiLuJe
051c8c0d95
Update KoboUSBMS for CJK support (#6639)
* Making the startup script even more tortuous in the process...

* Bump base

https://github.com/koreader/koreader-base/pull/1179
https://github.com/koreader/koreader-base/pull/1180
2020-09-07 23:11:15 +02:00
NiLuJe
12df296b90
Detect early KoboUSBMS returns, and just restart KOReader (#6603)
We know onboard is safe in these cases.
2020-08-30 18:59:16 +02:00
NiLuJe
e402c9d6f3
More KoboUSBMS related tweaks & cleanups (#6590)
* Be even more defensive around KoboUSBMS handling in the startup script

And add some more logging. To the log before a session, to the syslog
after, because we can't be sure onboard is viable.

* Display a short version string straight in the Version label

* Move system statistics inside the Help menu

* Move Version inside Help


* Bump base

https://github.com/koreader/koreader-base/pull/1173
2020-08-29 05:20:28 +02:00
NiLuJe
1919764825
Some more KoboUSBMS tweaks (#6566)
* Enable i18n in KoboUSBMS

* Rejig the "No confirmation" USBMS setting:

In now *only* affects the USB plug in event.
The menu entry will never show the popup (clicking on it should already
be confirmation enough, that, yes, we really would like to do that,
please ;)).

Also, enable said plug in behavior on Cervantes, too ;).

* Add an option to disable USBMS entirely

* Bump base

https://github.com/koreader/koreader-base/pull/1170
2020-08-27 01:06:41 +02:00
NiLuJe
6e3a3e8069
[Kobo] Support USBMS exports (#6552)
* \o/

* Make sure the (debug) event log doesn't end up in the fd table of our child processes...
Otherwise, it breaks USBMS.

* Close suspicious fds in the Wi-Fi scripts
To prevent any and all issues w/ USBMS down the road...

* Minor USBMS UI tweaks

* Always ask for confirmation to start on USBMS session on plug

* Bump base

https://github.com/koreader/koreader-base/pull/1161
https://github.com/koreader/koreader-base/pull/1162
https://github.com/koreader/koreader-base/pull/1163
https://github.com/koreader/koreader-base/pull/1165
https://github.com/koreader/koreader-base/pull/1167
2020-08-25 02:00:59 +02:00
NiLuJe
b14cabb6de
[Kobo] Unbreak Wi-Fi on FW >= 4.23 (#6522)
* Unbreak Wi-Fi on Kobo w/ FX >= 4.23+

Stop relying on WIFI_MODULE_PATH, it's no longer exported by the init
script.

Fix #6500

* Resync the nickel restart script w/ upstream

Let udev handle the SD card, and actually allow nickel to see those events by re-creating the FIFO ourselves, to avoid races.
2020-08-19 00:45:24 +02:00
NiLuJe
4a3d5f3d66
Fix a minor snafu in the Kobo startup script. (#6466)
Oops, too much Python/Lua ^^.
2020-08-02 23:32:20 +02:00
NiLuJe
2ad976387d
More #6424 cleanups (#6442)
* Simplify logic, and more detailed debug logging
* Kill Nickel's FIFO on startup
Avoids udev/udhcpc scripts hanging when trying to open() it.
2020-07-29 03:27:04 +02:00
NiLuJe
37a01100b7
Various Wi-Fi QoL improvements (#6424)
* Revamped most actions that require an internet connection to a new/fixed backend that allows forwarding the initial action and running it automatically once connected. (i.e., it'll allow you to set "Action when Wi-Fi is off" to "turn_on", and whatch stuff connect and do what you wanted automatically without having to re-click anywhere instead of showing you a Wi-Fi prompt and then not doing anything without any other feedback).
* Speaking of, fixed the "turn_on" beforeWifi action to, well, actually work. It's no longer marked as experimental.
* Consistently use "Wi-Fi" everywhere.
* On Kobo/Cervantes/Sony, implemented a "Kill Wi-Fi connection when inactive" system that will automatically disconnect from Wi-Fi after sustained *network* inactivity (i.e., you can keep reading, it'll eventually turn off on its own). This should be smart and flexible enough not to murder Wi-Fi while you need it, while still not keeping it uselessly on and murdering your battery.
(i.e., enable that + turn Wi-Fi on when off and enjoy never having to bother about Wi-Fi ever again).
* Made sending `NetworkConnected` / `NetworkDisconnected` events consistent (they were only being sent... sometimes, which made relying on 'em somewhat problematic).
* restoreWifiAsync is now only run when really needed (i.e., we no longer stomp on an existing working connection just for the hell of it).
* We no longer attempt to kill a bogus non-existent Wi-Fi connection when going to suspend, we only do it when it's actually needed.
* Every method of enabling Wi-Fi will now properly tear down Wi-Fi on failure, instead of leaving it in an undefined state.
* Fixed an issue in the fancy crash screen on Kobo/reMarkable that could sometime lead to the log excerpt being missing.
* Worked-around a number of sneaky issues related to low-level Wi-Fi/DHCP/DNS handling on Kobo (see the lengthy comments [below](https://github.com/koreader/koreader/pull/6424#issuecomment-663881059) for details). Fix #6421 
Incidentally, this should also fix the inconsistencies experienced re: Wi-Fi behavior in Nickel when toggling between KOReader and Nickel (use NM/KFMon, and run a current FW for best results).
* For developers, this involves various cleanups around NetworkMgr and NetworkListener. Documentation is in-line, above the concerned functions.
2020-07-27 03:39:06 +02:00
NiLuJe
416c1c7356
More robust way to detect our own path on Kobo (#6283)
* More robust way to detect our own path on Kobo

Should take care of all the weird and interesting ways people manage to
find to break it...

NOTE: "$(dirname $(realpath "${0}"))" works, too, but I'm not sure if
really old devices ship with the realpath applet...

* Abort early if KOREADER_DIR is null
2020-06-20 17:15:55 +02:00
NiLuJe
799a68ef59
Kill the RMSDK, too. (#6179)
It's a big pile 'o RAM we could use.
Plus, it might be causing bad interactions with DRM if we keep it around.
2020-05-24 09:43:56 +02:00
NiLuJe
e4d3b266ef
Some more Kobo startup script tweaks (#6147)
* Simplify env siphoning some more

* Nope, shellcheck, quoting this breaks it.

(it preserves the LNs instead of abusing them as free field separators with word splitting).

And, while this does break on env vars with spaces (since they'll be
unquoted), that was already the case of the xargs approach.
If we had read -d & printf %q, we could go with a pure shell approach,
but we don't ;).

* Document a working quoted variant.

For science!
2020-05-14 22:45:24 +02:00
NiLuJe
12675be065
Minor Kobo startup script cleanups (#6144)
* Minor tweaks to Kobo env setup

* Bump base

(Pickup https://github.com/koreader/koreader-base/pull/1099)
2020-05-13 02:22:51 +02:00
NiLuJe
be72203b83
Minor Kobo startup script cleanups (#6102)
* Start re-factoring the launcher detection code in order to future-proof
it
2020-04-29 17:50:29 +02:00
NiLuJe
e49198cef8
Don't bypass fbdepth when starting KOReader @ 8bpp (#5841)
* [Kobo/reMarkable] Don't skip fbdepth when launching KOReader @ 8bpp

I'm not quite sure how that can happen unless you really want to, but
apparently it did on @Frenzie's H2O ;p
2020-02-11 00:08:38 +01:00
NiLuJe
9a20fb5836
Switch to zsync2 (#5810)
* Switch to zsync2

Requires https://github.com/koreader/koreader-base/pull/1036

* Simplify FBInk syntax

The weird-ass workarounds for -s's subopts handling are
no longer needed w/ FBInk >= 1.21.0

* Update base

* Re-enable HW dithering on Kindle
  (https://github.com/koreader/koreader-base/pull/1034)
* Update SQLite to 3.31.1
  (https://github.com/koreader/koreader-base/pull/1035)
* reMarkable port
  (https://github.com/koreader/koreader-base/pull/1023)
* zsync2
  (https://github.com/koreader/koreader-base/pull/1036)

* zsync2 means we can finally have nice things

(OpenStack backed storage)

* We also no longer need that insane workaround on ARM

* And comment out @chrox's mirror, which appears to be down.

* Warn that a malformed URL will horribly blow up in fun and interesting
ways
2020-02-04 03:14:23 +01:00
Frans de Jonge
668eee97fa
[CI] Add curly braces check (#5809)
Update shellcheck and shfmt to the latest version.

Fixes <https://github.com/koreader/koreader/issues/5152>.

Btw, you can apply shellcheck suggestions with a command like:

```
shellcheck --include=SC2250 -f diff *.sh | git apply
```
2020-02-02 20:35:21 +01:00
NiLuJe
70b2564c4b
Ensure we flush everything to disk after an update. (#5685)
WIll stall for longer, but with a visible message (vs. less stalling on
a white screen during the startup and a laggy FM for a while).
2019-12-17 00:28:51 +01:00
Frans de Jonge
63dd2ec0c0
[chore] Make ShellCheck happy (#5484)
Cf. https://github.com/koreader/koreader/pull/5477#discussion_r334234063
2019-10-12 17:51:26 +02:00
NiLuJe
fe90a8febe [Kobo] Log the FW/kernel version on crash (#5477)
(Because it gets tedious asking for it in every bug report ;p).
2019-10-12 13:44:54 +02:00
NiLuJe
4363576066 Support the Kobo Libra
(Hopefully?).
2019-09-12 14:27:05 +02:00
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.
2019-09-07 03:19:18 +02:00
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
2019-07-31 01:00:51 +02:00
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).
2019-03-29 20:12:09 +01:00
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
2019-03-27 22:50:44 +01:00
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.
2019-03-13 19:24:30 +01:00
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)
2019-03-10 00:59:49 +01:00