Hot code loading

From Openmoko

Revision as of 19:32, 5 December 2008 by Skvamme (Talk | contribs)

Jump to: navigation, search

To change a running system

Start erlang as a node

This is my /etc/X11/Xsession.d/80zhone. As you can see the erlang node's got a name "-name neo@192.168.0.202" (a running erlang virtual machine is called an erlang node). And it's got a cookie "-setcookie SFEWRG34AFDSGAFG35235".

#!/bin/sh -e
#zhone > /tmp/zhone.log 2>&1 &
/home/root/cean/start.sh -setcookie SFEWRG34AFDSGAFG35235 -name neo@192.168.0.202 -noshell -pa /home/root/trunk -s main start > debug.txt
renice -3 $!
exit 0


Every erlang node in your network should have a unique name, and a common cookie. Start an erlang node on your host PC with a unique name and the common cookie:

erl -setcookie SFEWRG34AFDSGAFG35235 -name 'host@192.168.0.200'

From your host erlang console try

net_adm:ping('neo@192.168.0.202'). 

The response should be 'pong' if you have a successful connection - if not the response is 'pang'

Then try the shell command

nodes().

The response should be a list of all known nodes in your network.

Load the code

To carry out Hot Code Loading you start a an erlang node on your host (remember to set a different name and to use the same cookie) and from the host erlang shell type nl(your_modulename). Substitute your_modulename with the name of the module you want to load into the virtual machine.

Personal tools

To change a running system

Start erlang as a node

This is my /etc/X11/Xsession.d/80zhone. As you can see the erlang node's got a name "-name neo@192.168.0.202" (a running erlang virtual machine is called an erlang node). And it's got a cookie "-setcookie SFEWRG34AFDSGAFG35235".

#!/bin/sh -e
#zhone > /tmp/zhone.log 2>&1 &
/home/root/cean/start.sh -setcookie SFEWRG34AFDSGAFG35235 -name neo@192.168.0.202 -noshell -pa /home/root/trunk -s main start > debug.txt
renice -3 $!
exit 0


Every erlang node in your network should have a unique name, and a common cookie. Start an erlang node on your host PC with a unique name and the common cookie:

erl -setcookie SFEWRG34AFDSGAFG35235 -name 'host@192.168.0.200'

From your host erlang console try

net_adm:ping('neo@192.168.0.202'). 

The response should be 'pong' if you have a successful connection - if not the response is 'pang'

Then try the shell command

nodes().

The response should be a list of all known nodes in your network.

Load the code

To carry out Hot Code Loading you start a an erlang node on your host (remember to set a different name and to use the same cookie) and from the host erlang shell type nl(your_modulename). Substitute your_modulename with the name of the module you want to load into the virtual machine.