summaryrefslogtreecommitdiffstats
path: root/meta-agl-bsp/conf/include/agl_dra7xx-evm.inc
AgeCommit message (Expand)AuthorFilesLines
2020-03-18Consolidation of AGL_DEFAULT_IMAGE_FSTYPES after review of machine useJan-Simon Moeller1-2/+0
2019-11-19Support meta-ti 2019.04 releasePaul Barker1-4/+1
2019-10-14meta-agl-bsp: Update PACKAGES_GFX_* for TI boardsPaul Barker1-1/+1
2019-06-12Do not pull pulseaudio-misc if pulseaudio is not enabledJan-Simon Möller1-1/+1
2019-04-04Upgrade to thudScott Murray1-11/+0
2018-08-02Remove touchscreen additionJan-Simon Möller1-3/+0
2018-07-30Re-add dra7-evm-lcd-lg.dtb as it the screen of the board in CIJan-Simon Möller1-0/+3
2018-03-08dra7xx-evm, beaglebone: Switch to sdimage-bootpart-uuid for wicTom Rini1-1/+1
2018-02-20Fixes for meta-agl-bsp for rockoJan-Simon Möller1-1/+3
2017-10-14meta-agl-bsp: Make more and better use of WIC imagesTom Rini1-0/+7
2017-05-16Fix build of mozjs, gpm and libatasmart due to SECURITY_%FLAGSJan-Simon Möller1-7/+0
2017-05-12dra7xx: Fix build error with mozjs and libatasmartKarthik Ramanan1-0/+7
2017-04-24Switch to meta-updaterAnton Gerasimov1-4/+0
2017-04-04Add grub2 support in SOTAAnton Gerasimov1-0/+1
2017-04-04dra7xx: Enable GStreamer on the morty branchKarthik Ramanan1-6/+4
2017-03-29dra7xx: preferred kernel is 4.9Karthik Ramanan1-1/+1
2017-03-29dra7xx: minor cleanup of config fileKarthik Ramanan1-6/+0
2017-03-17dra7xx-evm: Update ipumm-fw PREFERRED_VERSION to latestKarthik Ramanan1-1/+1
2017-03-01dra7xx-evm: Enable the cmem driverKarthik Ramanan1-0/+1
2017-02-16dra7xx-evm: morty: enable SGX KM driverKarthik Ramanan1-3/+1
2017-02-07dra7xx-evm: morty: temporarily disable kernel drivers for sgx and cmemKarthik Ramanan1-2/+3
2017-01-26Move feature code into the meta recipesRonan1-0/+60
me.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
<html>
<head>
  <link rel="stylesheet" type="text/css" href="doc.css">
  <meta charset="UTF-8">
</head>
<body>
<a name="The.afm-system-daemon"></a>
<h1>The afm-system-daemon</h1>

<pre><code>version: 1
Date:    15 March 2016
Author:  José Bollo
</code></pre>

<a name="Foreword"></a>
<h2>Foreword</h2>

<p>This document describes what we intend to do. It may happen that our
current implementation and the content of this document differ.</p>

<p>In case of differences, it is assumed that this document is right
and the implementation is wrong.</p>

<a name="Introduction"></a>
<h2>Introduction</h2>

<p>The daemon <strong>afm-system-daemon</strong> is in charge of installing
applications on the system. Its main tasks are:</p>

<ul>
<li><p>installs the applications and setup the security framework
to include it</p></li>
<li><p>uninstall the applications</p></li>
</ul>


<p>The <strong>afm-system-daemon</strong> takes its orders from the system
instance of D-Bus.</p>

<p>The figure below summarizes the situation of the
<strong>afm-system-daemon</strong> in the system.</p>

<pre><code>+------------------------------------------------------------+
|                          User                              |
|                                                            |
|     +-------------------------------------------------+    |
|     |                                                 |    |
|     |                  afm-user-daemon                |    |
|     |                                                 |    |
|     +----------+----------------------+----------+----+    |
|                |                      |          :         |
|                |                      |          :         |
:================|======================|==========:=========:
|                |                      |          :         |
|     +----------+----------+     +-----+-----+    :         |
|     |   D-Bus   system    +-----+  CYNARA   |    :         |
|     +----------+----------+     +-----+-----+    :         |
|                |                      |          :         |
|     +----------+---------+    +-------+----------+----+    |
|     | afm-system-daemon  +----+   SECURITY-MANAGER    |    |
|     +--------------------+    +-----------------------+    |
|                                                            |
|                          System                            |
+------------------------------------------------------------+
</code></pre>

<a name="Starting..strong.afm-system-daemon..strong."></a>
<h2>Starting <strong>afm-system-daemon</strong></h2>

<p><strong>afm-system-daemon</strong> is launched as a <strong>systemd</strong> service
attached to system. Normally, the service file is
located at /lib/systemd/system/afm-system-daemon.service.</p>

<p>The options for launching <strong>afm-system-daemon</strong> are:</p>

<pre><code>-r
--root directory

     Set the root application directory.

     Note that the default root directory is defined
     to be /usr/share/afm/applications (may change).

-d
--daemon

     Daemonizes the process. It is not needed by sytemd.

-q
--quiet

     Reduces the verbosity (can be repeated).

-v
--verbose

     Increases the verbosity (can be repeated).

-h
--help

     Prints a short help.
</code></pre>

<a name="The.D-Bus.interface"></a>
<h2>The D-Bus interface</h2>

<a name="Overview.of.the.dbus.interface"></a>
<h3>Overview of the dbus interface</h3>

<p><strong><em>afm-system-daemon</em></strong> takes its orders from the session instance
of D-Bus. The use of D-Bus is great because it allows to implement
discovery and signaling.</p>

<p>The <strong>afm-system-daemon</strong> is listening with the destination name
<strong><em>org.AGL.afm.system</em></strong> at the object of path <strong><em>/org/AGL/afm/system</em></strong>
on the interface <strong><em>org.AGL.afm.system</em></strong> for the below detailed
members <strong><em>install</em></strong> and <strong><em>uninstall</em></strong>.</p>

<p>D-Bus is mainly used for signaling and discovery. Its optimized
typed protocol is not used except for transmitting only one string
in both directions.</p>

<p>The client and the service are using JSON serialisation to
exchange data.</p>

<p>The D-Bus interface is defined by:</p>

<ul>
<li><p>DESTINATION: <strong>org.AGL.afm.system</strong></p></li>
<li><p>PATH: <strong>/org/AGL/afm/system</strong></p></li>
<li><p>INTERFACE: <strong>org.AGL.afm.system</strong></p></li>
</ul>


<p>The signature of any member of the interface is <strong><em>string -> string</em></strong>
for <strong><em>JSON -> JSON</em></strong>.</p>

<p>This is the normal case. In case of error, the current implmentation
returns a dbus error that is a string.</p>

<p>Here is an example that use <em>dbus-send</em> to query data on
installed applications.</p>

<pre><code>dbus-send --session --print-reply \
    --dest=org.AGL.afm.system \
    /org/AGL/afm/system \
    org.AGL.afm.system.install 'string:"/tmp/appli.wgt"'
</code></pre>

<a name="The.protocol.over.D-Bus"></a>
<h3>The protocol over D-Bus</h3>

<hr />

<a name="Method.org.AGL.afm.system.install"></a>
<h4>Method org.AGL.afm.system.install</h4>

<p><strong>Description</strong>: Install an application from its widget file.</p>

<p>If an application of the same <em>id</em> and <em>version</em> exists, it is not
reinstalled except if <em>force=true</em>.</p>

<p>Applications are installed in the subdirectories of the common directory
of applications.
If <em>root</em> is specified, the application is installed under the
sub-directories of the <em>root</em> defined.</p>

<p>Note that this methods is a simple accessor to the method
<strong><em>org.AGL.afm.system.install</em></strong> of <strong><em>afm-system-daemon</em></strong>.</p>

<p>After the installation and before returning to the sender,
<strong><em>afm-system-daemon</em></strong> sends the signal <strong><em>org.AGL.afm.system.changed</em></strong>.</p>

<p><strong>Input</strong>: The <em>path</em> of the widget file to install and, optionaly,
a flag to <em>force</em> reinstallation, and, optionaly, a <em>root</em> directory.</p>

<p>Either just a string being the absolute path of the widget file:</p>

<pre><code>"/a/path/driving/to/the/widget"
</code></pre>

<p>Or an object:</p>

<pre><code>{
  "wgt": "/a/path/to/the/widget",
  "force": false,
  "root": "/a/path/to/the/root"
}
</code></pre>

<p>&ldquo;wgt&rdquo; and &ldquo;root&rdquo; must be absolute paths.</p>

<p><strong>output</strong>: An object with the field &ldquo;added&rdquo; being the string for
the id of the added application.</p>

<pre><code>{"added":"appli@x.y"}
</code></pre>

<hr />

<a name="Method.org.AGL.afm.system.uninstall"></a>
<h4>Method org.AGL.afm.system.uninstall</h4>

<p><strong>Description</strong>: Uninstall an application from its id.</p>

<p>Note that this methods is a simple accessor to the method
<strong><em>org.AGL.afm.system.uninstall</em></strong> of <strong><em>afm-system-daemon</em></strong>.</p>

<p>After the uninstallation and before returning to the sender,
<strong><em>afm-system-daemon</em></strong> sends the signal <strong><em>org.AGL.afm.system.changed</em></strong>.</p>

<p><strong>Input</strong>: the <em>id</em> of the application and, otpionaly, the path to
<em>root</em> of the application.</p>

<p>Either a string:</p>

<pre><code>"appli@x.y"
</code></pre>

<p>Or an object:</p>

<pre><code>{
  "id": "appli@x.y",
  "root": "/a/path/to/the/root"
}
</code></pre>

<p><strong>output</strong>: the value &lsquo;true&rsquo;.</p>
</body>
</html>