Register Guidelines E-Books Search Today's Posts Mark Forums Read

Go Back   MobileRead Forums > E-Book Readers > Kobo Reader > Kobo Developer's Corner

Notices

Reply
 
Thread Tools Search this Thread
Old 05-21-2020, 02:48 PM   #1
nihilazo
Member
nihilazo began at the beginning.
 
Posts: 22
Karma: 10
Join Date: Apr 2019
Device: Kobo Aura HD
A total noob's guide to kobo dev?

Hello,
Does a total noob's guide (covering setting up a toolchain, what libraries are available, how to write kobo-compatible makefiles and things etc) for kobo development on a linux host exist?
I'm familiar with software development and familiar with C++ although getting a language like go or rust running would be nice.

Sorry for the newbie question, I'm struggling to find resources for getting started.
Nihilazo
nihilazo is offline   Reply With Quote
Old 05-21-2020, 06:53 PM   #2
sherman
Guru
sherman ought to be getting tired of karma fortunes by now.sherman ought to be getting tired of karma fortunes by now.sherman ought to be getting tired of karma fortunes by now.sherman ought to be getting tired of karma fortunes by now.sherman ought to be getting tired of karma fortunes by now.sherman ought to be getting tired of karma fortunes by now.sherman ought to be getting tired of karma fortunes by now.sherman ought to be getting tired of karma fortunes by now.sherman ought to be getting tired of karma fortunes by now.sherman ought to be getting tired of karma fortunes by now.sherman ought to be getting tired of karma fortunes by now.
 
Posts: 850
Karma: 2641698
Join Date: Aug 2008
Location: Taranaki - NZ
Device: Kobo Aura H2O, Kobo Forma
If you want to go C/C++, you have a couple of options for toolchains. You can use the koxtoolchain to setup a relatively newish GCC (7.x I believe) compiler toolchain on a linux system.

Another option is NickelTC, which is a dockerized toolchain that attempts to closely match the official Kobo toolchain and libraries, and includes a full sysroot for stuff like Qt libraries. It's an old GCC however (4.9).

If you want to use Rust, check out Plato by baskerville for an idea on what can be done.

My own Kobo UNCaGED demonstrates Go on the Kobo.

For displaying stuff to the screen, check out FBInk by NiLuJe.

If you want to see what can be done by integrating with Kobo's main binary (Nickel), check out NickelMenu by geek1011.

NiLuJe also has a package which bundles python, if you want to go that route.

In short, there are plenty of development options available for you to choose from. Pick your poison

EDIT: For whatever you end up doing, touch input and framebuffer handling are going to be the most annoying things to handle. Framebuffer stuff is handled by the afore-mentioned FBInk, but touch input....

Last edited by sherman; 05-21-2020 at 06:57 PM.
sherman is offline   Reply With Quote
Old 05-22-2020, 12:25 AM   #3
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 13,477
Karma: 26012492
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
Touch input doubly so, because it never matches the fb's orientation (it *generally* matches the actual physical native rotation of the panel, not that you have an easy way to devise that anyway), the translation can be a bit wonky to deal with because of fb rotation quirks on most devices, and the actual protocol is also quirky and device-specific.

Plato should have the most concise implementation of that in a multi-platform way. Cross-ref w/ KOReader for input, and FBInk for fb rotation quirks.

(Since you mentioned C++, the nickel TC is the only way for you to be able to link to the STL dynamically. Newer GCC means newer libstdc++, means you need -static-libstdc++ to ship working binaries . As far as Qt is concerned, someone asked about that not two days ago, c.f., a few threads around this one: TL;DR: can't use the stock QPA as-is, so, PITA again).

Last edited by NiLuJe; 05-22-2020 at 12:28 AM.
NiLuJe is offline   Reply With Quote
Old 05-22-2020, 04:38 AM   #4
Mavireck
Connoisseur
Mavireck might easily be mistaken for a TexanMavireck might easily be mistaken for a TexanMavireck might easily be mistaken for a TexanMavireck might easily be mistaken for a TexanMavireck might easily be mistaken for a TexanMavireck might easily be mistaken for a TexanMavireck might easily be mistaken for a TexanMavireck might easily be mistaken for a TexanMavireck might easily be mistaken for a TexanMavireck might easily be mistaken for a TexanMavireck might easily be mistaken for a Texan
 
Posts: 63
Karma: 18290
Join Date: Jul 2016
Location: France
Device: Kobo H2O (broken), Kobo H2O Edition 2 v1 (stolen), Kobo Clara 2E
My answer is not an answer specifically for you, because if you know C++, Rust, Go or any of these, you'd better go with what sherman and NiLuJe pointed out.
However, here is a message for the few beginners like me who will read that thread and who like Python.


I did struggle a lot to get started on the Kobo (I used to do mostly small algorithms to automate small tasks).
I did eventually make PSSM (Python Screen Stack Manager, an ugly name but now it is too late to change it, I will just call it PSSM). PSSM on Github, and its documentation.

It is a whole new librairy, so yes, you will have to learn to use it, because using PyGame, Tkinter or such librairies is way too complicated on recent firmwares (see this thread).

So far, it is working quite well, (see the examples), it handles touch input for the H2O and Mini (the only two devices I can test it on), and it uses FBInk to display stuff. It can be used on a computer with some sort of an emulator to test it. And I did add a few scripts to control Frontlight and Wifi. It also includes a complete on-screen keyboard (which I use to both type things and test PSSM)
It is still in development, I started rewriting it from scratch a few weeks ago to make it more user-friendly.
I did draw inspiration from PySimpleGUI, but I made it a little more flexible to match my needs.


If you don't like PSSM (I can totally understand that), check out my dashboard, which is a standalone Python project inspired by Brunolalb's YAWK (Mobileread or Github)

Last edited by Mavireck; 05-22-2020 at 08:57 AM.
Mavireck is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Noob's guide to debricking through ATK :D qlob Kindle Developer's Corner 560 01-16-2020 09:06 PM
Kobo developer "noob's guide" nihilazo Kobo Developer's Corner 0 04-24-2019 04:21 AM
Total NOOB with a simple question! acctingman Which one should I buy? 19 07-13-2012 04:41 PM
Android Dev Guide Conversion Fails rcollette Conversion 0 01-08-2012 08:09 PM
Total noob needs help moving books Kobo to Kindle diosaclo Amazon Kindle 2 11-28-2011 03:54 AM


All times are GMT -4. The time now is 09:51 PM.


MobileRead.com is a privately owned, operated and funded community.