Mihini/Run Mihini on an Open Hardware platform

From Eclipsepedia

Jump to: navigation, search




Step 1 - Build Mihini

So far, all the work is being done directly on your remote system. For the following sample, pi user is being used on a RaspberryPi running Raspbian Wheezy. Connect to you device using ssh and follow the steps.

Compilation prerequisites

First of all, you will need some compilation tools:

$ sudo apt-get install git build-essential cmake

Sources to compile

Get the sources

$ cd /tmp/
$ git clone ssh://host/mihini.git

Run the compilation

Lets move into the repository you just cloned. Make sure you have all prerequisites mentioned above installed. Now, simply run the following in the repository you just cloned, here called mihini/.

# Compile Mihini
$ cd mihini/bin
$ ./build.sh
# Compile Lua
$ cd build.default/
$ make lua

Configure Mihini

Then there will be some configuration on bin/build.default/runtime/lua/agent/defaultconfig.lua.

  • Enable the application container
    • appcon.activate = true
  • Enable the update manager
    • update.activate = true

OPTIONAL (but useful :))

  • Enable Lua shell on all network interfaces by adding
    • shell.address = "*"
  • Disable colors while logging ( you will thank me later )
    • log.enablecolors = false

It should be easier

What is explained above is just a beginning. We are about to provide material which will speed up previous steps, such as:

  • How to cross compile Mihini from your Desktop machine
  • A defaultconfig.lua with the right default settings
  • A Linux package, to avoid any kind of compilation or configuration ( It is hypothetical )

Step 2 - Configure network connection

Ethernet connection

  • Configure/verifiy that there is Ethernet connection as a fall-back

Step 3 - Start Mihini on your device



On your device, here a RaspberryPi with user pi.

$ cd mihini/bin/

Notice: we launched appmon_daemon with user pi in order to benefit from valid user rights.

As a service

Soon :)

Step 4 - Setup Koneki environment

LUA_PATH: /home/pi/mihini/lib/?.lua;/home/pi/mihini/lib/?/init.lua;/home/pi/mihini/lua/?.lua;/home/pi/mihini/lua/?/init.lua;./?.lua
LUA_CPATH: /home/pi/mihini/lib/?.so;/home/pi/mihini/lua/?.so
LD_LIBRARY_PATH: $LD_LIBRARY_PATH:/home/pi/mihini/lib
  • Configure the "Mihini execution environment" (coming soon, will provide nice autocompletion...)

Step 5 - Create your first application


local io    = require "io"
local log   = require "log"
local sched = require "sched"
local function main()

Step 6 - Test the application

  • Configure the remote target in the Koneki environment
    • You will need to know the IP address of the target, but you likely know it already :-)
  • Create a launch/debug configuration and test your script

Do not worry, it is all explain on Koneki's Wiki.

Step 7 - Install your application


All you a have to do in order to enable Mihini to handle you application is:

  1. Create a launcher
  2. Provide sources

Create a launcher

Mihini Application container runs executables. To run a Lua application, we need to set some variables beforehand and then lauch your application. In order to do so lets create the proper launcher. In the Mihini world, it is an executable file called run. Here is its content:

# Setting up paths
export LUA_CPATH="/home/pi/mihini/lib/?.so;/home/pi/mihini/lua/?.so"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/pi/mihini/lib"
# Running app
/home/pi/mihini/bin/lua main.lua

Now the my application folder looks like

$ find raspapp/

Install application


$ telnet localhost 2000
Connected to localhost.
Escape character is '^]'.
Lua interactive shell
> appcon = require 'agent.appcon'
= ok

We can check that the application is properly installed

+     print( app )
+     for field, data in pairs(t) do
+         print('\t', field, data)
+     end
+ end
                autostart       true
                runnable        true

Over the air

It will soon be possible to install application to your remote system Mihini just from its IP, and even more:

  • Use the Koneki tools to create an application package
  • Deploy the package on a publically available web server
  • Connect to the Mihini console and for a connection to the testing server

