Obenkyo clone for Kobo ereader
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Aryetis ed152503e2 Merge branch 'master' of ssh://git.hijackedbrain.com:5022/hijackedbrain/Obenkyobo 4 weeks ago
Libs renaming libs folder 2 months ago
OtherFiles backtrace v2 1 month ago
Resources tidying up the UI 1 month ago
Screenshots resizing NickelMenu.png 2 months ago
Src before nuking windows 4 weeks ago
.gitignore refreshing nm/kfmon entries seems to fix the leftover problems 2 months ago
LICENSE got gdb working updated Readme accordingly 3 months ago
Obenkyobo.pro before nuking windows 4 weeks ago
Readme.md Mise à jour de 'Readme.md' 1 month ago



What is it ?

Obenkyobo is an application for kyobo ereaders designed to help you memorize Hiraganas and Katakanas.

- Please be aware, this application is still early in its life cycle.
- For the time being there is no wifi nor sleep support.
- So to preserve your battery I recommend quiting the application after each session.

How does it look ?

More screenshots : here (imgur gallery)

Features ? (and Roadmap)

Here's what available currently

  • Hiragana/Katakana to Romanji MCQ
  • Romanji to Hiragana/Katakana MCQ
  • Editable MCQ Hiragana/Katakana entry pool to learn at your own pace
  • Weighted random / "learning state" for each Hiragana/Katakana to keep MCQ more entertaining (of course, progress is stored in between each session)
  • Multiple fonts and font settings
  • Screen options (Luminosity/Tint) support

What's planned / Roadmap (in order of priority): (For incoming weeks/months)

  • Wifi support
  • Sleep/WakeUp support
  • Hiragana/Katakana to Romanji Keyboard exercices
  • Overall UI improvement
  • Proper "Obenkyobo cover.png" (Maybe next year)
  • "learn how to count" exercices
  • "guess the particle の, は, が, etc" exercices (Somewhen between the release of Bayonetta 3 and infinity)
  • Include "kanji-data-media" dictionary

Tested on :

  • Libra h2o
  • Forma (scaling issue, but functional, should be fixed with V0.1.2)
  • Mini (scaling issue, but functional, should be fixed with V0.1.2)
  • Glo HD (non responsive menu ? need more informations to investigate)
  • More incoming, please report if it works for your model too

How to install ?

Firstly, this application is designed to be compatible with most (if not all) Kobo devices with a recent firmware (probably 4.6+). Do not try to install it for other ereader, it will not work ! This application is provided "as is". Don't come to me if somehow your device catch fire.

Secondly, you'll need to install a "launcher" beforehand. Common options are :

Once you're done installing at least one of those you can either :

  • Download the following All-In-One package (containing Obenkyobo + Qt Libraries + QTQPA libkobo.so + NM and KfMon entries) Obenkyobo_AIO_Release_V0.1.zip , connect the ereader to your computer and extract the package at its root. It should work "as is" assuming you're using NickelMenu. If you're using KfMon you'll have to uncomment the associated entry file (.adds/kfmon/config/Obenkyobo.ini) by removing one of the ; located at the start of each line. And you might want to delete the useless NickelMenu entry too .adds/nm/Obenkyobo
  • Donwload the following "no qt" package (containing Obenkyobo + NM and KfMon entries) Obenkyobo_Light_Release_V0.1.zip and install it the same way. Please note that Obenkyobo REQUIRES those Qt Libraries. Only select this one if you know what you're doing and have already Qt Libraries (same version as in the AIO package) and libkobo.so installed on your device from another program such as Ultimate Manga Reader

And voilà ! You should now have a NickelMenu entry at the bottom right corner of your ereader "home screen" and a new "book" in your library to open with KfMon.

Issues ?

Is your screen rotated the wrong way ? Are your touch inputs broken ? This kind of issue can happen on very old/new devices/untested devices. You can force rotations of screen and touch inputs by modifying the QT_QPA_PLATFORM variable in .adds/Obenkyobo/Obenkyobo_launcher.sh on your ereader (depending of your OS you might have to enable "hidden folder") :


eg : export QT_QPA_PLATFORM=kobo:touchscreen_rotate=auto:touchscreen_invert_x=auto:touchscreen_invert_y=auto

If you encounter any issues, please report them by either :

  • Creating a new Ticket on Github here describing your issue as precisely as possible, include the type of ereader your using and the log.txt at /.adds/Obenkyobo/log.txt (it erases itself at each launch, so don't restart Obenkyobo right after a crash)
  • Respond in Obenkyobo's MobileRead thread MobileRead thread in the same way.


Thank you for actually reading a readme file

And big big thanks to @Rain92/OfficerAction , @NiLuJe and @NiMa for putting up with me on Discord helping me setup my environment and walking me throught some Qt Kobo specific minefields. And creating all those nice tools that allowed me to develop this app.

For developpers, dummies, and future me. How to compile it ?

Setup the environment

You can setup a very basic Kobo dev environment by following either

  • the koxtoolchain instructions and work your way from here by cross-compiling qt for ARM and the QTPA kobo platform plugin. To validate your arm gcc, run your first non graphical "hello world" throught an ssh-server or use koreader "run command" option.
  • Or you can go the "easy" route and use @Rain92's kobo-qt-setup-scripts to setup everything "libs, Qt binaries, deployment scripts".

Once you've got your arm QtBinaries, copy its folder (with necessaries additional libs) to OtherFiles/Dependencies

For Obenkyobo to work you'll also have to compile qt5-kobo-platform-plugin and copy the produced libkobo.so to OtherFiles/Dependencies/[QtBinaries]/plugins/platforms folder.

You'll probably run along some troubles, so to save you some time here's the tldr version from the discord discussion

To compile the problematic brotli library, tldr switch to the 3.0.0 branch by :

  1. comment previous and following libs related content and prevent any git checkout/clean from install_libs.sh
  2. git checkout 3.0.0 in brotly's folder : 'kobo-qt-setup-scripts/libs/brotli/'
  3. run install_libs.sh script again
  4. comment brotli's section, restore git checkout stuff, rerun install_libs.sh and move on

fix for libfreetype with harfbuzz not compiling due to pthreads issues, run the following commands (will very probably break at some point in the future) :

export PKG_CONFIG_LIBDIR="${HOME}/x-tools/arm-kobo-linux-gnueabihf/arm-kobo-linux-gnueabihf/sysroot/usr/lib/pkgconfig:${HOME}/x-tools/arm-kobo-linux-gnueabihf/arm-kobo-linux-gnueabihf/sysroot/usr/share/pkgconfig"
export PKG_CONFIG="pkg-config"

fix for the deploy script :

  1. set the correct IP at the end
  2. set correct QTBINPATH and kobopluginpath
  3. add :
cp -t $TMPPATH/lib ${SYSROOT}/usr/lib/libbrotlidec.so.1
cp -t $TMPPATH/lib ${SYSROOT}/usr/lib/libbrotlicommon.so.1

Fill the following Obenkyobo.pro variables correctly :

INCLUDEPATH += $$PWD/libs/qt5-kobo-platform-plugin/src # should link to the libkobo.so git local repo
INSTALLS += target everything thumbnail # use only this for full deploy, to save time set it to += target afterwards  

Setup QtCreator

For a better workflow and one click build+deploy+launch from within QtCreator :

Projects->Kobo(Kit)->Build->Add Custom Process Step (in both Release and debug) with : 
Command : %{sourceDir}/OtherFiles/packager.sh.
Arguments : %{ActiveProject:BuildConfig:Type} %{sourceDir} %{ActiveProject:BuildConfig:Path} %{ActiveProject:Name}
Working Directory : %{sourceDir}

Projects->Kobo(Kit)->Run->Deployment-> Add Run custom remote command (in both Release and debug) with :  

Projects->Kobo(Kit)->Run->Environment->(System Environment)->Add create new variable with at least 
LD_LIBRARY_PATH = /mnt/onboard/.adds/qt-linux-5.15-kde-kobo/lib:lib:

NEVER modify any of the .sh scripts under windows... Windows end of line will mess things up when ran on linux

Setup gdb

Two solutions :

  • Use cross compiled arm gdb from kobo-qt-setup-scripts. You might have to apt install python2 python2-dev and tweak the ./install_gdb.sh to add "--with-python" to the ./configure flags
  • Install gdb-multiarch and set it up for arm architecture in QtCreator by : Tools->Options->Debugger->GDB->Additional Startup Commands : -q --nh -ex 'set architecture arm'

Setup the Ereader

Setup a fixed IP address for it and use it in kobo-qt-setup-scripts deploy_script.sh if you go this route instead of using QtCreator

Ereader is rebooting upon Deployment ? Probably because kfmon/nm is scanning for the freshly installed/deployed stuff and reboots the device to update its nickelMenu entry. You should probably setup only select INSTALLS += target , when working daily

Turn on developer mode on the kobo by searching for a book named devmodeon, then force the wifi to stay on during dev session : Plus->Parameters->Technical informations->Developer options->force Wifi ON

Install Niluje's kobo stuff package to get various programs running on the kobo such as :

  • dropbear ssh server (connect with root and empty password)
  • nano, gdb, strace
  • fbgrab picture.png to take screenshots
  • etc