Add support for Libra Colour and Elipsa 2E devices#11
Closed
systematiccaos wants to merge 5 commits intoAshex:mainfrom
Closed
Add support for Libra Colour and Elipsa 2E devices#11systematiccaos wants to merge 5 commits intoAshex:mainfrom
systematiccaos wants to merge 5 commits intoAshex:mainfrom
Conversation
added 5 commits
March 14, 2026 10:44
When login succeeds but config.ini is not written, the errors were silently ignored. This adds comprehensive logging to: - config_save(): log file open failures with errno and strerror - save_session() in bootstrap.cpp: log config path and save result - persist_session() in main.cpp: log config path and save result - skeets_ensure_data_dirs(): log directory paths being created This will help diagnose issues like: - Permission problems on /mnt/onboard/.adds/sKeets/ - Read-only filesystem mounts - Directory creation failures
The config.ini was not persisting across reboots because: 1. fclose() doesn't guarantee data reaches persistent storage on embedded devices 2. Forced reboot (run.sh reboots after app exit) could truncate unwritten data Changes: - config_save: Add fflush() + fsync() before fclose() to ensure durability - config_save: Log all error cases including fsync failures - load_saved_session: Add logging for config path and loaded session details - skeets_run_bootstrap: Add step-by-step logging for session restore flow This will also help diagnose the issue where second run shows 'No fonts' and exits immediately without attempting session restore.
Root cause found: config.ini was being overwritten with empty session values, causing the app to lose authentication on restart. The log reveals the sequence: 1. Login succeeds, config.ini saved with valid session (6 entries) 2. clear_saved_session() runs (user action or accidental touch), overwrites all 6 session keys with empty strings 3. On next boot, config.ini loads 6 entries — all empty 4. No saved session found, no login.txt → app shows 'waiting for login' Fixes: - persist_session(): Skip saving if the session is entirely empty to prevent overwriting a valid config with blank values - save_session() in bootstrap: Same empty-session guard - clear_saved_session(): Add logging so the call is visible in logs - persist_session(): Log session details (handle, did, token sizes) to make it obvious when an empty session would have been written
Contributor
Author
|
Closing for now - have discovered more issues that need fix on the kobo libra colour |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds touch input quirks for two additional Kobo e-reader devices and fixes an issue in the input diagnostics where framebuffer dimensions were hardcoded.
Changes
Device quirks (run.sh)
APP_TOUCH_MIRROR_Y=1quirk for proper touch coordinate handlingAPP_TOUCH_MIRROR_Y=1quirk for proper touch coordinate handlingAPP_TOUCH_MIRROR_X=0as default when not otherwise specifiedDiagnostic fix (diag_main.cpp)
run_input_diag()to query actual framebuffer dimensions at runtime instead of hardcoding1072x1448Testing
These quirks follow the same pattern as the existing Clara Colour (spaColour/393) handling and match the touch input behavior observed on the Libra Colour and Elipsa 2E devices.
Related
Pattern mirrors KOReader's device-specific touch handling approach.
I built and tested on a tolino branded Libra Colour