View Single Post
Old 10-06-2011, 08:18 AM   #18
stef70
Member
stef70 is no ebook tyro.stef70 is no ebook tyro.stef70 is no ebook tyro.stef70 is no ebook tyro.stef70 is no ebook tyro.stef70 is no ebook tyro.stef70 is no ebook tyro.stef70 is no ebook tyro.stef70 is no ebook tyro.stef70 is no ebook tyro.
 
Posts: 24
Karma: 1302
Join Date: Jun 2011
Device: Kobo Touch
Linux Kernel sources are now available

I just noticed that Kobolab was recently updated with the full sources or the Kobo Touch linux kernel:

https://github.com/kobolabs/Kobo-Rea....6.35.3.tar.gz

The web interface refuses to provide the file (too large) so the only way I found to get the kernel sources was to download the whole git repository with

git clone https://github.com/kobolabs/Kobo-Reader.git

A very interesting part is the e-ink screen driver in

./cls/drivers/video/mxc/*
and
./cls/include/linux/mxc*.h

Documentation can be found in the iMX50 developper toolkit on the Freescale web site. (You may have to register first for free)

http://www.freescale.com/webapp/sps/...?code=IMX50_SW

The chapter 14 "Electrophoretic Display Controller (EPDC) Frame Buffer Driver" in the file mx50_linux.pdf describes the Linux system calls (ioctl) needed to program the e-ink screen (how to refresh,....).

Apart from the refresh problem, the e-ink screen is just a regular linux framebuffer. Search google for the numerous tutorials about linux framebuffer programming.

A few months ago, I successfully wrote a small C program to draw boxes on the screen. Unfortunately, I mistakenly remove the whole directory containing the sources and I am too busy right now to redo it :-(

To compile, I used the ARMEL cross compiler packages on Ubuntu (see gcc-arm-linux-gnueabi, libc6-dev-armel-cross, ...). Use the file include/linux/mxcfb.h from the kobolab linux kernel to program the ioctl() for the e-ink display.

Compiling a simple "hello world" program (with output on the console) was surprisingly simple. it is probably best to compile with the -static option in order to avoid mismatches in the dynamic libraries. Yo may also have to specify an option to compile for a compatible ARM processor (see /proc/cpuinfo)

The touchscreen and the 'numerous buttons' of the KT can be read via some /dev/input devices so everything needed to write new KT applications is now available.
stef70 is offline   Reply With Quote