View source for Hot code loading

From Openmoko

Jump to: navigation, search

You do not have permission to edit this page, for the following reasons:

  • The action you have requested is limited to users in the group: Administrators.
  • You must confirm your email address before editing pages. Please set and validate your email address through your user preferences.

You can view and copy the source of this page:

Return to Hot code loading.

Personal tools

To change a running system

Start erlang as a node on your host

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

#!/bin/sh -e
#zhone > /tmp/zhone.log 2>&1 &
/home/root/cean/ -setcookie SFEWRG34AFDSGAFG35235 -name neo@ -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@'

From your host erlang console try


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

Then try the shell command


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

HotLoad the code

To carry out Hot Code Loading start a an erlang node on your host and from this erlang shell type


Substitute your_modulename with the name of the module you want to load into the virtual machine on your neo. The response should be 'abcast' if sucessful. If not the response is 'error'.

The ping command is only necessary the first time to let your host node find your neo node. Don't forget to copy the compiled erlang file to your neo, hot code loading does not copy your beam file to the file system.