Hot code loading

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(Start erlang as a node)
(Load the code)
Line 30: Line 30:
 
The response should be a list of all known nodes in your network.
 
The response should be a list of all known nodes in your network.
  
=== Load the code ===
+
=== HotLoad 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.
+
To carry out Hot Code Loading you copy your compiled code to the neo as usual, then start a an erlang node on your host and from this erlang shell type
 +
<pre>
 +
 
 +
nl(your_modulename).
 +
</pre>
 +
Substitute your_modulename with the name of the module you want to load into the virtual machine on your neo. The ping command is only necessary the first time to let your host node find your neo node.

Revision as of 20:39, 5 December 2008

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.

HotLoad the code

To carry out Hot Code Loading you copy your compiled code to the neo as usual, then start a an erlang node on your host and from this erlang shell type


nl(your_modulename).

Substitute your_modulename with the name of the module you want to load into the virtual machine on your neo. The ping command is only necessary the first time to let your host node find your neo node.

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.