Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

183 lines (110 sloc) 4.547 kB
From an application perspective with an EPSON DMT33E07 evaluation
board (EVB).
* Build
** Get toolchain
make gcc
export PATH=/PATH/TO/WIKIRDWARE/install/bin:$PATH
** Packages needed for simulators
apt-get install --no-install-recommends libqt4-dev
apt-get install libncurses5-dev
** Modify config.h
Enable the corresponding board config in common/config.h.
** Build the bootloader
gfxtool inside of the bootloader has a dependency to libgd2,
an 'apt-get install libgd2-xpm-dev' will do.
make bootloader
To build the bootloader with the rs232 support (it expects
to receive the second stage bootloader via serial connection)
make bootloader232
** Install the bootloader
Now you got binaries built. To run them on the device, you have to
get the hardware ready first. With DMT33E07, you need to do the
1. Set pin #3 of SW1 to ON
2. Connect to serial port
3. Turn on the device
Make sure not to have any terminal emulator running (e.g. minicom)
before flashing the bootloader:
make flash-bootloader
Test it:
1. Power down the device
2. Set pin #3 of SW1 to OFF
3. Power up the device
If you don't have your SD card inserted, you should see a picture of
Homer stating that he couldn't access SD card kernel. If you do see
it, you're on the right track.
If not, please refer to the Jumpers section in the User's Manual of
DMT33E07 to get your jumpers right. It should be set to "SD Card,
RS232 Booting Supported". After you're done, try again.
** Build the mbr bootloader
* Required packages
- python-gd
Build this bootloader to get advanced bootloader options such as
a bootmenu, forth support or loading the kernel via the serial line.
make mbr
** Flash mbr
make flash-mbr
** Boot via serial line
First you need to activate the "boot via serial line".
make mbr-rs232
Flash mbr as described above. After flashing the board will wait for
an incoming kernel file and boot it. You can use picocom to send the
kernel. Run "scripts/p33" to connect to the device, reset the board
and hit CTRL + A followed by CTRL + S in the picocom terminal to send
the kernel file.
** Build the kernel
make kernel
See "Boot from SD" to get more information about how to install
the kernel.
** Wikipedia Index, Articles, etc.
The fast way: get everything from
*** Index
1. get the wikipedia dump by "make getwikidump".
2. use wiki-tools to generate "indexfile.index".
bzcat enwiki-latest-pages-articles.xml.bz2 | ./wiki-tools --index
3. read the "host-tools/indexing/README" to create the "pedia.idx"
and "".
./ ../wiki-tools/indexfile.index
4. Put pedia.idx and into sd card.
*** Wikipedia Articles
In order to generate the wiki fonts file and the wiki database it is
necessary to download & run webkit. Webkit will parse the wikipedia database
to retrieve names / sizes / styles of the glyphs that need to be extracted
and also remove the HTML markup.
The extracted glyphs are packed into one file called 'fontfile.gen'.
This file must be compressed by "enlzo" later to improve the loading
1. You need to install libicu, gperf and sqlite:
apt-get install libicu-dev gperf libsqlite3-dev
2. Run "make webkit" to checkout webkit revision 41057, apply the patches under
host-tools/rendering/patches and build webkit.
3. Use GtkLauncher to load host-tools/rendering/base_text.html
and several wikipedia articles you like. For each article,
to generate `smplpedi.cde'. Rename it according to the result of
4. Generate font file
you can get fontfile.gen
5. Read minilzo/README. Build enlzo.
enlzo fontfile.gen > fontfile.lzo
mv fontfile.gen
5. Put fontfile.gen along with the renamed smplpedi.cde files into
sd card.
** Boot from SD
Prepare a SD card, make a FAT filesystem on it, then copy kernel:
1. Create a vfat on the whole device
mkfs.vfat -I /dev/YOUR_DEVICE
2. cp kernel/mahatma.elf <your sd card>/kernel
For example:
cp kernel/mahatma.elf /media/disk/kernel
Now insert the SD card into the EVB then boot the device.
* Development
Refer to kernel/* and change code there to see what happens. Use
functions from wiki-lib and gui-lib to write your own application.
When you're done, compile it and try it on the device.
Jump to Line
Something went wrong with that request. Please try again.