3,224 bytes added,
12:49, 3 October 2019 {{InfoBoxTop}}
{{AppliesToAxel}}
{{AppliesToAxelEsatta}}
{{AppliesToAxelLite}}
{{AppliesToSBCX}}
{{InfoBoxBottom}}
{{ImportantMessage|text=This application note has been validated starting from the '''XELK 4.0.0''' kit version.}}
==History==
{| class="wikitable" border="1"
!Version
!Date
!XELK version
!Notes
|-
|1.0.0
|Sep 2019
|[[Axel_Embedded_Linux_Kit_(XELK)#XELK_4.0.0|4.0.0]]
|
|-
|}
==Introduction==
Starting from [[Axel_Embedded_Linux_Kit_(XELK)#XELK_4.0.0|XELK 4.0.0]] a new root file system image can be created using Yocto recipes provided by DAVE's XELK BSP.
The new <code>axel-image-x11-browser</code> Yocto image includes the recipes for adding the following packages:
* Chromium browser
* apache2 web server
* PHP with apache2 plugin
== Architecture ==
The new root file system can be a complete solution for creating GUI (Graphical User Interface) using popular knowledge as per designing HTML web pages.
The ''apache2'' web server is configured for starting at boot time: the web pages, stored on local file system, will be directly shown on the Chromium browser which is configured for looking on localhost interface.
Here below a command line example for chromium using this configuration:
google-chrome --test-type --kiosk -disable-gpu --start-maximized http://localhost:80/phpinfo.php
== How to configure ==
=== Graphical backend ===
Chromium browser has been built on top of X11 backend: the Yocto build automatically starts the X11 Desktop which should be avoided for having a clean boot with '''only''' the browser displayed.
Dor this pruposes, the desktop will be displayed and the X1 server will be started only as backend:
root@imx6qxelk:~# systemctl disable xserver-nodm.service
Removed /etc/systemd/system/multi-user.target.wants/xserver-nodm.service.
root@imx6qxelk:~#
Then, the new X service will be created and started
<pre>
root@imx6qxelk:~# cat /etc/systemd/system/X.service
[Unit]
Description=X
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=root
ExecStart=/usr/bin/X -nocursor
[Install]
WantedBy=multi-user.target
</pre>
root@imx6qxelk:~# systemctl enable X
Created symlink /etc/systemd/system/multi-user.target.wants/X.service → /etc/systemd/system/X.service.
root@imx6qxelk:~#
=== Web server ===
Apache2 is used as a web server let the embedded system to provide the HTML pages used for creating the GUI. Once installed into the rfs, <code>apache2</code> will be automatically started using the following configuration file:
/etc/apache2/httpd.conf
It is possible to see that apache2 uses the web page present into the ''/usr/share/apache2/htdocs'' directory:
root@imx6qxelk:~# cat /etc/apache2/httpd.conf | grep htdocs
DocumentRoot "/usr/share/apache2/htdocs"
<Directory "/usr/share/apache2/htdocs">
root@imx6qxelk:~#
=== PHP ===
For demonstration purposes the PHP info page is loaded as the home page for our web server running on the system:
<pre>
root@imx6qxelk:~# cat /usr/share/apache2/htdocs/.htaccess
DirectoryIndex phpinfo.php
root@imx6qxelk:~# cat /usr/share/apache2/htdocs/phpinfo.php
<?php
phpinfo();
?>
root@imx6qxelk:~#
</pre>
In this way, the PHP info page is shonw as the