ILiad/Dev
From OSR
Contents |
Installing sshd
Before doing any development, install the unbrickable startup scripts to startup sshd before anything else. Otherwise it might not be possible to restore the reader without a complete reflash from CF if you mess up the X server or any of the other startup scripts.
Building with autoconf
- Install the Open Embedded cross compile toolchain (unpack it in / as root and it will create /usr/local/arm with all of the libraries and headers).
- Cross compile FLTK for the arm (the build and install of fluid will break):
CC=/usr/local/arm/oe/bin/arm-linux-gcc \
CXX=/usr/local/arm/oe/bin/arm-linux-g++ \
./configure \
--host arm-linux-elf \
--prefix /usr/local/arm/oe/arm-linux \
--enable-threads
make sudo make install
- Download something like GTK Hello-world
- Configure it and build
CC=/usr/local/arm/oe/bin/arm-linux-gcc \
LDFLAGS=-lerdm \
./configure --host arm-linux-gcc
make
- Copy it to the reader (no scp for some reason):
tar -zcf - ./hello | ssh root@ereader tar -zxvf -
- Log into the reader and run it:
ssh root@ereader DISPLAY=:0 ./hello
Interfacing with the e-ink display manager (erdm):
- configure was told to link in the liberdm library already.
- Add to the program headers:
#include <liberdm/erdm.h>
- Add this right before gtk_main() or Fl::run() or what ever mainloop your GUI toolkit uses so that the entire screen will be blanked and redrawn with your widget set:
// Full Refresh, chase off all the ghosts dmDisplay(dmCmdPriorUrgent, dmQFull);
- You may need to add something to a periodic timer to update the display incrementally:
dmDisplay(dmCmdPriorUrgent, dmQTyping);
Using a USB keyboard
I wrote details for installing USB HID drivers and a Xtest redirector. The keyboard works for apps like rxvt and dillo with a US keymap.
Using the iLiad as a tablet
It is possible to use the iLiad's Wacom tablet as a wireless graphics tablet. Details on Mobileread. There is much that could be done to make this more user friendly; perhaps a multicast connection rather than TCP and something that handles startup/shutdown on the iLiad side.
Building krb5-1.5.2
Kerberos support is required for OpenSSL, even if we don't use it. The system doesn't like to cross compile.
CC=/usr/local/arm/oe/bin/arm-linux-gcc \
CXX=/usr/local/arm/oe/bin/arm-linux-g++ \
./configure \
--host=arm-linux-elf \
--prefix=/usr/local/arm/oe \
--enable-static \
To get around this, create config.cache with this contents:
krb5_cv_attr_constructor_destructor=${ac_cv_c_const=yes}
But, this fails anyway since "static libraries are not supported in this release", but "this architecture does not support shared libs". To fix this modify config/shlib.conf to define SHLIBEXT=.so instead of .so-nobuild.
I couldn't figure out how to get appl/bsd/configure to recognize the cache for /etc/TIMEZONE and /etc/environment, so I hard coded that part of the script.
Building openssl-0.9.8e
There is no standard autoconf script and the arm-linux-gcc target is gone, so you have to modify the linux-generic32 target: