Aphasia Development Tutorial

From Openmoko

Revision as of 09:22, 17 July 2009 by Skvamme (Talk | contribs)

Jump to: navigation, search

Contents

Installation

OpenWrt

Install the GUI package ex11

Take a look at this example of what you can do with ex11 [1] Download from http://projects.openmoko.org/frs/?group_id=59 It is sufficient if you take the file at http://projects.openmoko.org/frs/download.php/753/ex11_lib.tgz and unzip it in your source directory.

In file /root/.profile

export DISPLAY=:0

In file /etc/hosts remove . (dot) at the end of line localhost.

127.0.0.1 localhost

In file /root/.erlang

io:format("Running Erlang from root~n").
code:add_patha("/root/trunk").

I keep my erlang source in /root/trunk

Copy Xauthority from host

scp .Xauthority phone:/root

Add localhost to it with xauth

xauth
add OpenWrt/unix:0 MIT-MAGIC-COOKIE-1  cfcc5ef98f9718f90154f355c0ae9f62
exit
cp .Xauthority /


Runtime Environment

I am developing a vertical market product based on Openmoko, so I want my erlang platform alone to run (no window manager nor Zhone) when the phone is switched on.

Quick and dirty

Remove packages Enlightenment and Illume.

opkg -recursive remove e-wm

This is my /etc/X11/Xsession.d/90xXWindowManager. I keep my erlang beam files at /home/root/trunk.

#!/bin/sh -e
/home/root/cean/start.sh -setcookie SFEWRG34AFDSGAFG35235 -name neo@192.168.0.202 -noshell -pa /home/root/trunk -s main start > debug.txt


For Debian users it's /usr/bin/zhone-session. I keep my erlang beam files at /root/erlang/trunk

#zhone &
#matchbox-keyboard-toggle &
erl -setcookie SFEWRG34AFDSGAFG35235 -name neo@192.168.0.202 -noshell -pa /root/erlang/trunk -s main start > debug.txt
#exec matchbox-window-manager -use_titlebar no

Replace "-s main start" with "-s your_module_name your_function_name"


All I have to do now is to re-start X whenever I want to run an uploaded app. This is what the last two menu buttons do in SciTe - stop X on the phone, and start X on the phone. As an alternative for stopping and starting X you can use Erlang's built-in hot code loading.


Scite.jpg


The svn xxx menu items is for version control if you are Using Subversion.

Type

ssh phone

to get a terminal window and type

tail -f /debug.txt

to read shell printout from the erlang process.

The right way

The better installation would be to install a minimal system and then add Erlang.

This is my runtime environment file system when erlang is installed "Quick-and-dirty" in FSO:

root@om-gta02:~# df -h
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root               252544     93980    158564  37% /
/dev/root               252544     93980    158564  37% /dev/.static/dev
udev                      2048        44      2004   2% /dev
/dev/mmcblk0p1          497920         0    497920   0% /media/card
tmpfs                    60400        52     60348   0% /var/volatile
tmpfs                    60400         0     60400   0% /dev/shm

Compare to this filesystem on OpenWRT minimal with Erlang installed:

root@OpenWrt:/# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               246.6M     39.6M    207.0M  16% /
tmpfs                    61.8M     44.0K     61.7M   0% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev

Personal tools

Installation

OpenWrt

Install the GUI package ex11

Take a look at this example of what you can do with ex11 [1] Download from http://projects.openmoko.org/frs/?group_id=59 It is sufficient if you take the file at http://projects.openmoko.org/frs/download.php/753/ex11_lib.tgz and unzip it in your source directory.

In file /root/.profile

export DISPLAY=:0

In file /etc/hosts remove . (dot) at the end of line localhost.

127.0.0.1 localhost

In file /root/.erlang

io:format("Running Erlang from root~n").
code:add_patha("/root/trunk").

I keep my erlang source in /root/trunk

Copy Xauthority from host

scp .Xauthority phone:/root

Add localhost to it with xauth

xauth
add OpenWrt/unix:0 MIT-MAGIC-COOKIE-1  cfcc5ef98f9718f90154f355c0ae9f62
exit
cp .Xauthority /


Runtime Environment

I am developing a vertical market product based on Openmoko, so I want my erlang platform alone to run (no window manager nor Zhone) when the phone is switched on.

Quick and dirty

Remove packages Enlightenment and Illume.

opkg -recursive remove e-wm

This is my /etc/X11/Xsession.d/90xXWindowManager. I keep my erlang beam files at /home/root/trunk.

#!/bin/sh -e
/home/root/cean/start.sh -setcookie SFEWRG34AFDSGAFG35235 -name neo@192.168.0.202 -noshell -pa /home/root/trunk -s main start > debug.txt


For Debian users it's /usr/bin/zhone-session. I keep my erlang beam files at /root/erlang/trunk

#zhone &
#matchbox-keyboard-toggle &
erl -setcookie SFEWRG34AFDSGAFG35235 -name neo@192.168.0.202 -noshell -pa /root/erlang/trunk -s main start > debug.txt
#exec matchbox-window-manager -use_titlebar no

Replace "-s main start" with "-s your_module_name your_function_name"


All I have to do now is to re-start X whenever I want to run an uploaded app. This is what the last two menu buttons do in SciTe - stop X on the phone, and start X on the phone. As an alternative for stopping and starting X you can use Erlang's built-in hot code loading.


Scite.jpg


The svn xxx menu items is for version control if you are Using Subversion.

Type

ssh phone

to get a terminal window and type

tail -f /debug.txt

to read shell printout from the erlang process.

The right way

The better installation would be to install a minimal system and then add Erlang.

This is my runtime environment file system when erlang is installed "Quick-and-dirty" in FSO:

root@om-gta02:~# df -h
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root               252544     93980    158564  37% /
/dev/root               252544     93980    158564  37% /dev/.static/dev
udev                      2048        44      2004   2% /dev
/dev/mmcblk0p1          497920         0    497920   0% /media/card
tmpfs                    60400        52     60348   0% /var/volatile
tmpfs                    60400         0     60400   0% /dev/shm

Compare to this filesystem on OpenWRT minimal with Erlang installed:

root@OpenWrt:/# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               246.6M     39.6M    207.0M  16% /
tmpfs                    61.8M     44.0K     61.7M   0% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev