Adding yocto packages: Difference between revisions

From Variscite Wiki
(Created page with "{{PageHeader|Adding packages to the Yocto build }} {{DocImage|category1=VAR-SOM-MX6|category2=Yocto}} __toc__ = General = Packages and package groups can be added to image rec...")
 
No edit summary
Line 1: Line 1:
{{PageHeader|Adding packages to the Yocto build }} {{DocImage|category1=VAR-SOM-MX6|category2=Yocto}} __toc__
{{PageHeader|Adding packages to the Yocto build }} {{DocImage|category1=VAR-SOM-MX6|category2=Yocto}} __toc__
= General =
= General =
Packages and package groups can be added to image recipes.  
Packages and package groups can be added to image recipes.  
See the Yocto Development manual for how to customize an image:http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#usingpoky-extend-customimage-imagefeatures
See the Yocto Development manual for how to customize an image:http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#usingpoky-extend-customimage-imagefeatures
<br>
 
= Adding a package to the local build of the BSP:=
= Adding a package to the local build of the BSP=
* Search for the corresponding recipe and which layer the recipe is in. This link is a useful tool for doing so:http://layers.openembedded.org/layerindex/branch/jethro/layers/
 
If the package is in the meta-openembedded layer, the recipe is already available in your build tree.<br>
Search for the corresponding recipe and which layer the recipe is in. This link is a useful tool for doing so:http://layers.openembedded.org/layerindex/branch/jethro/layers/
 
If the package is in the meta-openembedded layer, the recipe is already available in your build tree.
 
Add the following line to $YOCTO_DIR/build/conf/local.conf:
Add the following line to $YOCTO_DIR/build/conf/local.conf:
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: cpp; gutter: false; theme: Confluence" data-theme="Confluence">IMAGE_INSTALL_append = &quot; &lt;package&gt;&quot;</pre>
  IMAGE_INSTALL_append = " <package>"


Note: The leading white-space between the &quot; and the package name is necessary for the append command.
Note: The leading white-space between the &quot; and the package name is necessary for the append command.


If you need to add a layer to the BSP, clone or extract it to the $YOCTO_DIR/sources/ directory. Then, modify $YOCTO_DIR/build/conf/bblayers.conf to include this new layer in BBLAYERS:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
If you need to add a layer to the BSP, clone or extract it to the $YOCTO_DIR/sources/ directory. Then, modify $YOCTO_DIR/build/conf/bblayers.conf to include this new layer in BBLAYERS:
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: cpp; gutter: false; theme: Confluence" data-theme="Confluence">BBLAYERS += &quot;${BSPDIR}/sources/&lt;new_layer&gt;&quot;</pre>
  BBLAYERS += "${BSPDIR}/sources/<new_layer>"
 
= Accelerated browsers support =
 
Yocto build system allow integrating browsers that support iMX6 GPU accelerations.
 
The common used browsers are:
* qtwebkit based browsers: [https://trac.webkit.org/wiki/QtWebKit QtWebKit] is the WebKit porting to QT. [https://webkit.org WebKit] is an open source web browser engine. QT5 provide some demo implementations in webkitwidgets examples.
* qtwebengine based browsers: [https://wiki.qt.io/QtWebEngine QtWebEngine] integrates chromium's fast moving web capabilities into QT. QT5 provide some demo implementations in webenginewidgets examples.
* chromium based browsers: [http://www.chromium.org/Home Chromium] is an open-source browser project.
 
While FSL released a customized chromium integration of GPU and VPU integration for iMX6 CPUs, QT based browsers directly rely on QT integration with iMX6 accelerations.
 
The minimum requirements to use chromium or qtwebengine based browsers is X11 or Wayland.
 
QtWebKit has been superseded by QtWebEngine, mainly because QtWebKit has not been actively synchronized with the upstream WebKit code since Qt 5.2 and has been deprecated in Qt 5.5. Further details are available in [http://doc.qt.io/qt-5/qtwebengine-overview.html Qt WebEngine Overview]
 
The performance of each browser is strictly related to the features to be used, so different html applications can provide better performance with different browsers.
 
The following table try to summarize some benchmark for Wayland backend:
 
{| class="wikitable"
|-
! scope="col"| website
! scope="col"| QtWebKit
! scope="col"| QtWebEngine
! scope="col"| Chromium
|-
! scope="row"| http://peacekeeper.futuremark.com
| crash
| 623
| n/a
|-
! scope="row"| http://www.kevs3d.co.uk/dev/canvasmark
| n/a
| 4796
| 3780
|-
! scope="row"| http://webglsamples.org/blob/blob.html
| 2 fps
| 32 fps
| 34 fps
|}
 
== Add QtWebKit examples to the build ==
 
Add the following line to $YOCTO_DIR/build/conf/local.conf:
  IMAGE_INSTALL_append = " qtwebkit-examples-examples"
 
The demo browser used for the above tests is available as
  /usr/share/qt5/examples/webkitwidgets/fancybrowser/fancybrowser
 
== Add QtWebEngine examples to the build ==
 
Add the following line to $YOCTO_DIR/build/conf/local.conf:
  IMAGE_INSTALL_append = " qtwebengine-examples"
 
The demo browser used for the above tests is available as
  /usr/share/qt5/examples/webenginewidgets/fancybrowser/fancybrowser
 
== Add Chromium to the build ==
 
Add the following line to $YOCTO_DIR/build/conf/local.conf:
  IMAGE_INSTALL_append = " chromium"
  LICENSE_FLAGS_WHITELIST += "commercial_libav commercial_x264"
 
If you plan to use Chromium, please take care of the specific requirements for commercial license of libav and x264 packages.
The demo browser used for the above tests is available as
  /usr/bin/google-chrome

Revision as of 23:54, 21 July 2016

Adding packages to the Yocto build

General

Packages and package groups can be added to image recipes. See the Yocto Development manual for how to customize an image:http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#usingpoky-extend-customimage-imagefeatures

Adding a package to the local build of the BSP

Search for the corresponding recipe and which layer the recipe is in. This link is a useful tool for doing so:http://layers.openembedded.org/layerindex/branch/jethro/layers/

If the package is in the meta-openembedded layer, the recipe is already available in your build tree.

Add the following line to $YOCTO_DIR/build/conf/local.conf:

 IMAGE_INSTALL_append = " <package>"

Note: The leading white-space between the " and the package name is necessary for the append command.

If you need to add a layer to the BSP, clone or extract it to the $YOCTO_DIR/sources/ directory. Then, modify $YOCTO_DIR/build/conf/bblayers.conf to include this new layer in BBLAYERS:

 BBLAYERS += "${BSPDIR}/sources/<new_layer>"

Accelerated browsers support

Yocto build system allow integrating browsers that support iMX6 GPU accelerations.

The common used browsers are:

  • qtwebkit based browsers: QtWebKit is the WebKit porting to QT. WebKit is an open source web browser engine. QT5 provide some demo implementations in webkitwidgets examples.
  • qtwebengine based browsers: QtWebEngine integrates chromium's fast moving web capabilities into QT. QT5 provide some demo implementations in webenginewidgets examples.
  • chromium based browsers: Chromium is an open-source browser project.

While FSL released a customized chromium integration of GPU and VPU integration for iMX6 CPUs, QT based browsers directly rely on QT integration with iMX6 accelerations.

The minimum requirements to use chromium or qtwebengine based browsers is X11 or Wayland.

QtWebKit has been superseded by QtWebEngine, mainly because QtWebKit has not been actively synchronized with the upstream WebKit code since Qt 5.2 and has been deprecated in Qt 5.5. Further details are available in Qt WebEngine Overview

The performance of each browser is strictly related to the features to be used, so different html applications can provide better performance with different browsers.

The following table try to summarize some benchmark for Wayland backend:

website QtWebKit QtWebEngine Chromium
http://peacekeeper.futuremark.com crash 623 n/a
http://www.kevs3d.co.uk/dev/canvasmark n/a 4796 3780
http://webglsamples.org/blob/blob.html 2 fps 32 fps 34 fps

Add QtWebKit examples to the build

Add the following line to $YOCTO_DIR/build/conf/local.conf:

 IMAGE_INSTALL_append = " qtwebkit-examples-examples"

The demo browser used for the above tests is available as

 /usr/share/qt5/examples/webkitwidgets/fancybrowser/fancybrowser

Add QtWebEngine examples to the build

Add the following line to $YOCTO_DIR/build/conf/local.conf:

 IMAGE_INSTALL_append = " qtwebengine-examples"

The demo browser used for the above tests is available as

 /usr/share/qt5/examples/webenginewidgets/fancybrowser/fancybrowser

Add Chromium to the build

Add the following line to $YOCTO_DIR/build/conf/local.conf:

 IMAGE_INSTALL_append = " chromium"
 LICENSE_FLAGS_WHITELIST += "commercial_libav commercial_x264"

If you plan to use Chromium, please take care of the specific requirements for commercial license of libav and x264 packages.

The demo browser used for the above tests is available as

 /usr/bin/google-chrome