![]() |
#196 |
Linux User
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282
Karma: 6123806
Join Date: Sep 2010
Location: Heidelberg, Germany
Device: none
|
I don't understand what's going on at all. Trigger the magnet even once and nickel is awake all the time, and miniclock sees wild touchscreen events all the time.
I thought perhaps this could be a standby side effect. It would make sense to power down the touchscreen during standby. Maybe some odd inputs happen when it's powered back up (waking from the magnet). And then it's in a cycle it doesn't get out of. But that's just a theory, I have no way to confirm. Why doesn't it stay asleep? It works fine as long as no magnet is involved. Use a magnet and it's crazy, until you wake it up for good and wait a moment and then go back to standby. This is either a bug in Kobo firmware, or a very very odd interaction with addons, and I have no idea what I'm doing wrong (if it's me at all). In general magnet / sleepcover + battery drain reports aren't anything new, maybe related, maybe not. |
![]() |
![]() |
![]() |
#197 |
BLAM!
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 13,506
Karma: 26047202
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
|
@frostschutz: That's... strange on a H2O, but not so much on the Forma, since it added support for repeat keycode events, and the SleepCover *does* repeat, which is mightily stupid.
At least the insanity stops when the device actually suspends, but I don't know how long that takes for Nickel ![]() And, of course, if you wake it up before that, it never actually goes to sleep => boom. Last edited by NiLuJe; 07-18-2019 at 11:55 AM. |
![]() |
![]() |
Advert | |
|
![]() |
#198 |
BLAM!
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 13,506
Karma: 26047202
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
|
AFAIK, the hall sensor is *always* somewhere on top of the screen, and not the bezel (another weird design choice). So, on devices with an IR grid, the contact point will always disrupt the beam (especially when you test with a fridge magnet ^^) => touchscreen events.
This *might* require ignoring touch events between SleepCover [1 <-> 0] events, which is going to be mightily fun... (IIRC, this is what we do in KOReader, with an extra "go back to sleep" command if something weird happens, which, believe me, is nearly always the case with those stupid SleepCovers). Last edited by NiLuJe; 07-18-2019 at 12:08 PM. |
![]() |
![]() |
![]() |
#199 |
Linux User
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282
Karma: 6123806
Join Date: Sep 2010
Location: Heidelberg, Germany
Device: none
|
for testing I use a refrigerator magnet on the back of the device, far from the touchscreen.
and I was able to narrow the mystery down some: - after input event, miniclock calls fbink to update the clock on the screen - something fbink does wakes nickel - somehow somewhere that triggers a touch event - after input event, miniclock calls fbink to update the clock on the screen ...and back to top, the cycle never ends. If I replace fbink with a wrapper that logs the call, but doesn't actually call fbink, the cycle breaks. If I re-add the fbink call to the wrapper, the cycle resumes. So... mysterious side effects. How fbink wakes nickel and how that translates into stray touch events that in turn wake miniclock, to call fbink in turn... that's still not clear to me. And I'm back to the same issue I have with the screensaver addon of mine... I have no way to reliably detect that the device is currently supposed to be in standby mode. If I could detect it I'd just stop calling fbink during standby. ![]() |
![]() |
![]() |
![]() |
#200 |
BLAM!
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 13,506
Karma: 26047202
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
|
The mxcfb refresh ioctl is likely the cause of the wakeup, I can't see anything else having any potential effect (EDIT: And I don't see anything unexpected in a strace run, either). Unless disk I/O counts, somehow, but that only happens with TTF/OT fonts (EDIT: Not really, device ID requires disk I/O, too).
At least, I can see that waking the kernel. Not quite sure how that could ever translate to a touch event, though :?. EDIT: You can test that theory by enabling --norefresh. If you start decoding the input events, having a specific idea of exactly *which* kind of event that is might be helpful ![]() /sys/power/state-extended *should* return 1 right before a suspend, but I don't rightly remember how Nickel times all of this, so this might not actually be usable. Last edited by NiLuJe; 07-18-2019 at 02:22 PM. |
![]() |
![]() |
Advert | |
|
![]() |
#201 |
BLAM!
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 13,506
Karma: 26047202
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
|
Useless reply just to point out various new edits in my previous answer
![]() |
![]() |
![]() |
![]() |
#202 |
Linux User
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282
Karma: 6123806
Join Date: Sep 2010
Location: Heidelberg, Germany
Device: none
|
raw data of weird touch events
Code:
00000000 83 b7 30 5d a1 8e 08 00 01 00 34 01 00 00 00 20 |..0]......4.... | 00000010 83 b7 30 5d ac 8e 08 00 00 00 00 00 00 00 00 00 |..0]............| 00000020 8165.68 8082.91 Thu Jul 18 20:16:35 CEST 2019 00000000 87 b7 30 5d 6a 9e 08 00 01 00 34 01 00 00 00 20 |..0]j.....4.... | 00000010 87 b7 30 5d 75 9e 08 00 00 00 00 00 00 00 00 00 |..0]u...........| 00000020 8169.69 8086.81 Thu Jul 18 20:16:39 CEST 2019 00000000 8b b7 30 5d 6e 98 08 00 01 00 34 01 00 00 00 20 |..0]n.....4.... | 00000010 8b b7 30 5d 7b 98 08 00 00 00 00 00 00 00 00 00 |..0]{...........| 00000020 8173.69 8090.71 Thu Jul 18 20:16:43 CEST 2019 00000000 8f b7 30 5d be 97 08 00 01 00 34 01 00 00 00 20 |..0]......4.... | 00000010 8f b7 30 5d c7 97 08 00 00 00 00 00 00 00 00 00 |..0]............| 00000020 8177.69 8094.62 Thu Jul 18 20:16:47 CEST 2019 00000000 93 b7 30 5d 0b 8d 08 00 01 00 34 01 00 00 00 20 |..0]......4.... | 00000010 93 b7 30 5d 14 8d 08 00 00 00 00 00 00 00 00 00 |..0]............| 00000020 8181.68 8098.52 Thu Jul 18 20:16:51 CEST 2019 How come simple things turn out so difficult. Haha. |
![]() |
![]() |
![]() |
#203 |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,637
Karma: 12595249
Join Date: Jun 2009
Location: Madrid, Spain
Device: Kobo Clara/Aura One/Forma,XiaoMI 5, iPad, Huawei MediaPad, YotaPhone 2
|
|
![]() |
![]() |
![]() |
#204 |
BLAM!
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 13,506
Karma: 26047202
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
|
Err, EV_KEY : KEY_DOT, from a touchscreen? o_O
(TBC, in a hurry right now ;p). |
![]() |
![]() |
![]() |
#205 |
Zealot
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 114
Karma: 26552
Join Date: Jan 2017
Device: Kobo Forma
|
Sorry just to confirm mine drained overnight. Also I do not use a magnet cover.
Sent from my SM-G970F using Tapatalk |
![]() |
![]() |
![]() |
#206 |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,252
Karma: 16544692
Join Date: Sep 2009
Location: UK
Device: ClaraHD, Forma, Libra2, Clara2E, LibraCol, PBTouchHD3
|
It looks like the button battery drain investigation has progressed past any of my observations today being useful. So I'll just summarise it by saying:
|
![]() |
![]() |
![]() |
#207 |
BLAM!
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 13,506
Karma: 26047202
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
|
For future reference: the cover setting is irrelevant here, we get the hardware events regardless
![]() On the Forma, the SleepCover *will* send KEY_REPEAT events (every 80ms after a 400ms delay), so, that won't help, and while fairly stupid, that's at least not mysterious ![]() EDIT: See this KO issue for more details ![]() Now, regarding those weird touch events on the H2O, I'm a bit stumped. That *looks* like an EV_KEY -> KEY_DOT Code:
E: 1.412001 0004 0004 458807 # EV_MSC / MSC_SCAN 458807 E: 1.412001 0001 0034 0001 # EV_KEY / KEY_DOT 1 E: 1.412001 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +1412ms :E: 1.468005 0004 0004 458807 # EV_MSC / MSC_SCAN 458807 E: 1.468005 0001 0034 0000 # EV_KEY / KEY_DOT 0 E: 1.468005 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +56ms Except that doesn't make any sense for a Touch input device, and that final 0x20 byte doesn't make sense either. The only other event with a 0x34 code is ABS_MT_ORIENTATION, but that's an EV_ABS, and should never happen on those devices. It is the final link in the event chain on a Forma, though, but that looks like this: Code:
E: 41.149809 0003 0034 0125 # EV_ABS / ABS_MT_ORIENTATION 125 E: 41.149809 0000 0002 0000 # ++++++++++++ SYN_MT_REPORT (0) ++++++++++ E: 41.149809 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +11ms Last edited by NiLuJe; 07-18-2019 at 04:20 PM. |
![]() |
![]() |
![]() |
#208 |
Zealot
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 114
Karma: 26552
Join Date: Jan 2017
Device: Kobo Forma
|
Sorry typo!
Last edited by poczynek; 07-18-2019 at 05:43 PM. |
![]() |
![]() |
![]() |
#209 |
Enthusiast
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 49
Karma: 139260
Join Date: Dec 2016
Device: KV, Forma, Libra Colour
|
I would think that the simplest thing might be to read the keycode value and if it's 193 or 194 then allow updating.... assuming that it is the fbInk event that is causing the wakeup
might even be able to read it with sed (i really need to learn sed one day) but worst case, a small bin that simply outputs the code value from the event. Last edited by desterly; 07-18-2019 at 09:36 PM. |
![]() |
![]() |
![]() |
#210 |
Enthusiast
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 49
Karma: 139260
Join Date: Dec 2016
Device: KV, Forma, Libra Colour
|
I made a few modifications on mine to see what would happen. This is specific for the forma and buttons (which is what I use)
1) I compiled an updated evtest that has query functionality and dropped it on the device (from here: git://anongit.freedesktop.org/evtest) 2) updated timout_touch() as follows Code:
timeout_touch() { local touched="not" read -t "$1" touched < "$2" /mnt/onboard/.stuff/kobo-evtest/evtest --query /dev/input/event0 EV_KEY 193 eventkey=$? if [ $eventkey -eq 0 ]; then /mnt/onboard/.stuff/kobo-evtest/evtest --query /dev/input/event0 EV_KEY 194 eventkey=$? fi [ "$eventkey" = "10" ] } Code:
timeout_touch $((1 + $cfg_update - ( ($(date +%s)+$cfg_delta) % $cfg_update))) /dev/input/event0 if [ $? -eq 0 ]; then for i in $cfg_delay do sleep $i update done fi With these modifications, fbink is ONLY called if the up/down button (193/194) are the KEY_CODES called to event0. It's still calling timeout_touch constantly with the other KEY_CODE values but at least it isn't calling fbink anymore. I'll test the battery tonight and report back |
![]() |
![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
I (almost) spend more time reading about e-readers than e-reading | Antoinekamel | General Discussions | 15 | 02-25-2013 10:48 AM |
360 PB360 display gets "stripes" from time to time | klaetsch | PocketBook | 1 | 01-05-2011 04:49 AM |
How to get the time to display | synic | Sony Reader | 9 | 06-10-2009 06:05 PM |
Time Display | Jenny123 | Sony Reader | 2 | 04-23-2009 02:06 PM |
Time Display? | MickeyC | Sony Reader | 3 | 02-10-2008 11:57 PM |