O.S. Systems LiveNews from our smart team...http://blog.url.com/2017-11-17T00:00:00+00:00O.S. SystemsEmbedded Linux Development with Yocto Project, 2nd edition, released/blog/embedded-linux-development-with-yocto-project-2nd-edition-released2017-11-17T00:00:00+00:002017-11-17T00:00:00+00:00Article Author<p><img class="img img-responsive header pull-left" style="margin-right: 10px; width: 200px;" src="/images/blog/embedded-linux-development-with-Yocto-Project-2nd-edition-book-cover.png" alt="Embedded Linux Development with Yocto Project book, 2nd edition."></p>
<p>We are happy to announce the release of the 2nd edition of <a href="http://bit.ly/2zOScZB">Embedded Linux
Development with Yocto Project</a> book. It has been updated
to reflect the changes in the <a href="http://www.yoctoproject.org/">Yocto Project</a>
since it has been published in 2014 and it is now fully up to date to Yocto
Project 2.4 release (codename Rocko).</p>
<p>If you are an embedded systems enthusiast and willing to learn about the
compelling features offered by the Yocto Project, then this is an essential book
in your library. With prior experience in the embedded Linux domain, you can
make the most of this book to efficiently create custom Linux-based systems.</p>
<p></p>
<h2>What You Will Learn:</h2>
<ul>
<li>Understand the basic concepts involved in Poky workflows along with
configuring and preparing the Poky build environment.</li>
<li>Configure a build server and customize images using Toaster.</li>
<li>Generate images and fit packages into created images using BitBake.</li>
<li>Support the development process by setting up and using Package feeds.</li>
<li>Debug Yocto Project by configuring Poky.</li>
<li>Build an image for the BeagleBone Black, RaspberryPi 3, and Wandboard, and
boot it from an SD card.</li>
</ul>
<p>The book is available for purchase from Amazon and several other stores. You can
also search other stores by using the ISBN 9781788470469.</p>
Golang support in Yocto Project greatly improved!/blog/golang-support-in-yocto-project-greatly-improved2017-09-21T00:00:00+00:002017-09-21T00:00:00+00:00Article Author<p><img class="img img-responsive header" src="/images/blog/golang-support-in-yocto-project-greatly-improved.png" alt="Golang support in Yocto Project greatly improved!">
Since our <a href="/blog/enhancing-the-golang-support-in-yocto-project">first post about the Golang improvements being done for the Yocto
Project 2.4 release</a>
we did another batch of improvements and tests on OpenEmbedded-Core. There are
few worth mentioning features when we compare the feature set of initial Golang
support, landed in Yocto Project 2.3, and the upcoming release after these
changes:</p>
<ul>
<li>Upgrade to latest Go toolchain - Golang 1.9;</li>
<li>Share runtime libraries to save storage space - critical for embedded systems;</li>
<li>Parallel build of modules - greatly speed Go package and libraries packaging;</li>
<li>SDK support - allowing for Yocto Project to generate cross-compilers for use
targeting the embedded system specific requirements;</li>
<li>Availability of Go dep tool which is likely to become the official dependency
tracking tool for Go in Golang 1.10 release.</li>
</ul>
<p></p>
<p>The contributions shortlog can be seen which can be seen below:</p>
<pre class="simple">Matt Madison (23):
go-native: remove dependency on go-bootstrap-native
go-bootstrap-native: remove recipe
go: split out go-runtime into separate recipe
go.bbclass: remove GO_GCFLAGS nad GO_LDFLAGS
go.bbclass: remove some xxx_FINAL variables
go.bbclass: clean up CGO_xxx settings
go: rename go.inc -> go-target.inc
go-cross: take GOARM environment setting
go: enable nativesdk builds for the toolchain
go-crosssdk: add recipe
go.bbclass: enable nativesdk builds for Go packages
go-cross-canadian: add recipe
go-runtime: extend to nativesdk builds
goarch.bbclass: identify archs with Go dynamic linking support
go-1.8: add patch for set soname in ELF shared objects
go-runtime: build the Go runtime as a shared library
go.bbclass: add support linking against shared runtime
goarch.bbclass: set ARM_INSTRUCTION_SET to "arm"
go: update to go 1.9
go-crosssdk: fix host/target references and cleanup
go: fix linking issues for nativesdk builds
go: fixes for cross-canadian builds
go.bbclass: set TMPDIR during compilation
Otavio Salvador (4):
go-dep: Move bash dependency to -dev package
go.bbclass: Add "ldflags" to QA skip list
go.bbclass: Add ptest support
Add Go toolchain support
</pre>
<p>The SDK support has been polished and it is likely few minor improvements are
still going to be done. Now we have a very good base for Go usage in Yocto
Project 2.4 and beyond.</p>
<p>To demonstrate how easy is to create a recipe to package a Go-based tool, we are
pasting the go-dep_0.3.0.bb recipe below:</p>
<figure class='code'>
<div>
<div class="highlight plaintext"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16</pre></td><td class="code"><pre>SUMMARY = "Dependency management tool for Golang"
HOMEPAGE = "https://github.com/golang/dep"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=1bad315647751fab0007812f70d42c0d"
GO_IMPORT = "github.com/golang/dep"
SRC_URI = "git://${GO_IMPORT}"
# Points to 0.3.0 tag
SRCREV = "7a91b794bbfbf1f3b8b79823799316451127801b"
inherit go
GO_INSTALL = "${GO_IMPORT}/cmd/dep"
RDEPENDS_${PN}-dev += "bash"<span class="w">
</span></pre></td></tr></tbody></table>
</div>
</div>
</figure>
<p>This is enough to properly build and install the Go dep tool. Isn’t it nice? :-D</p>
<p>O.S. Systems is greatly involved in Golang development within Yocto Project and
is ready to assist you in your next great project, please contact us if you need
help!</p>
Enhancing the Golang support in Yocto Project - part 1/blog/enhancing-the-golang-support-in-yocto-project2017-09-12T00:00:00+00:002017-09-12T00:00:00+00:00Article Author<p><img class="img img-responsive header" style="" src="/images/blog/enhancing-the-golang-support-in-yocto-project.png" alt="Enhancing the Golang support in Yocto Project">
We have been using the <a href="https://golang.org"><strong>Golang</strong></a> here at O.S. Systems for
multiple projects, especially our <a href="https://github.com/UpdateHub">UpdateHub</a>
project which is on heavy development. Because of this work we have identified a
few areas where the <strong>Golang support could be improved on Yocto Project</strong>, mainly:</p>
<ul>
<li>Multiple layers for providing support for Golang, like
<a href="https://github.com/mem/oe-meta-go">oe-meta-go</a>,
<a href="https://github.com/madisongh/meta-golang">meta-golang</a>,
<a href="https://git.yoctoproject.org/cgit/cgit.cgi/meta-virtualization/">meta-virtualization</a>
and others;</li>
<li>Different levels of quality of integration of Golang on those layers;</li>
<li>Lack of SDK support on the OpenEmbedded-Core current integration.</li>
</ul>
<p></p>
<p>After evaluating the current Golang support on OpenEmbedded-Core (added on the
Pyro development cycle), oe-meta-go and meta-golang, we found that Matt Madison
<<a href="mailto:matt@madison.systems">matt@madison.systems</a>>
has done an outstanding job on meta-golang layer lately, so we contacted him to
work on integrating his work back to OpenEmbedded-Core and we have succeed!</p>
<h2>Short log of changes</h2>
<p>So far, we have already merged a number of improvements on OpenEmbedded-Core,
which can be seen below:</p>
<pre class="simple">Matt Madison (4):
go.bbclass: exported function cleanup
go.bbclass: separate ${S} and ${B}
go.bbclass: add do_unpack function to handle common cases
go.bbclass: add GO_INSTALL_FILTEROUT variable
Otavio Salvador (8):
goarch.bbclass: Stop passing True as second argument of d.getVar
go.bbclass: Fix binary installation path detection
go: Remove Go 1.6 and 1.7 releases
goarch.bbclass: Add support for ARMv5
go.bbclass: Use a global Go build flags
go.bbclass: Enable parallel build
go.bbclass: Use an auxiliary variable to add the build dependencies
go-dep: Add 0.3.0 release
</pre>
<p>Now we are working on integrating the SDK support and dynamic linking onto
OpenEmbedded-Core. Stay tuned for more! ;-)</p>
What the Yocto Project is/blog/what-the-yocto-project-is2017-09-04T00:00:00+00:002017-09-04T00:00:00+00:00Article Author<p><img class="img img-responsive" style="float: left; margin-right: 15px; width: 200px;" src="/images/blog/what-is-the-yocto-project.png" alt="What is The Yocto Project?"/>
The Yocto Project is an open source collaboration project that provides
templates, tools, and methods to help you create custom Linux-based systems for
embedded products regardless of the hardware architecture. It was founded in
2010 as a collaboration among many hardware manufacturers, open-source operating
systems vendors, and electronics companies to bring some order to the chaos of
embedded O.S. Linux development.</p>
<p></p>
<p>The driving force for the workgroup creation was the necessity to reduce their
work duplication, providing resources and information catering to both new and
experienced users. The Yocto Project combines the convenience of ready-to-run
Linux Distribution with flexibility of a custom Linux operation system stack.</p>
<h2>The Yocto Project and The Linux Foundation</h2>
<p>The Yocto Project is a Linux Foundation workgroup and is defined as:</p>
<blockquote>
<p>The Yocto Project provides open source, high-quality infrastructure and tools
to help developers create their own custom Linux distributions for any
hardware architecture, across multiple market segments. The Yocto Project is
intended to provide a helpful starting point for developers.</p>
</blockquote>
<p>– The Linux Foundation (<a href="https://www.linuxfoundation.org">https://www.linuxfoundation.org</a>)</p>
<p>The workgroup is composed by a set of members that <a href="http://bit.ly/1wXdsYI">supports the project</a>
and composes part of the Advisory Board. Among those are silicon manufacturers,
software vendors and open source projects.</p>
<p>Besides the workgroup, the Yocto Project is also an open source project that
provides templates, tools and methods to help companies and individuals create
Linux-based operating systems for embedded products.</p>
<p>It’s important to understand that the Yocto Project is not an embedded Linux
distribution itself. It’s a set of tools to help you create your own
distribution by enabling a high degree of flexibility and customization while
not interfering with the product development. This is particularly important
when you are building Linux-based embedded products that must have full control
over the software running on your device.</p>
<h2>The Yocto Project involves hundreds of developers around the world</h2>
<p>The Yocto Project involves hundreds of developers around the world, including a
wide variety of members from huge corporations to small companies and
individuals.</p>
<p>Among the companies which support the project are silicon vendors such as
Freescale, Intel, Texas Instruments and Renesas as well as software operating
system vendors such as O.S. Systems, Enea, Wind River, MontaVista and Mentor
Graphics. The group of companies supporting the project is growing at a fast
pace. Companies that normally compete with each other, are coming together and
cooperating in a symbiotic manner, making sure the project is compatible with
almost all popular processors available for embedded designs.</p>
<p>This synergy is accomplished because the Yocto Project is hosted by the Linux
Foundation, which guarantees that the project remains independent from any
particular company or vendor.</p>
<p>In addition to the workgroup, the Yocto Project is an open source project that
provides templates, tools and methods to help companies and individuals create
tailored Linux-based operating systems regardless of the hardware
architecture. The open source part of the project is managed by a Linux
Foundation fellow to ensure that the technical decisions are not made to benefit
a specific member of the workgroup.</p>
<h2>OpenEmbedded & Poky, a successful couple</h2>
<p>The Poky build system started as a subset of the OpenEmbedded build system
focusing on a more polished and stable code base, however with a limited set of
supported BSPs. Its reduced size allowed the Poky build system to start to
develop eye-catching technologies, such as IDE plugins and QEMU integration,
which are still in use today.</p>
<p>The Poky build system became a very attractive project for software vendors as
it offered a very extensible metadata and a reliable task scheduler. This
environment enabled vendors to reuse and customize metadata.</p>
<p>In this scenario vendor independence raised as important aspect and, so the need
for a neutral organization to manage this effort was urgent. Around November
2010, the Yocto Project was announced by the Linux Foundation.</p>
<h2>The OpenEmbedded Project and the Yocto Project</h2>
<p>The Yocto Project is the umbrella project which provides the infrastructure and
manages the resources provided by its members. The vendor independence allows
for competing vendors to work together in a common and friendly development
environment. The Yocto Project and OpenEmbedded Project consolidated their
efforts on a core build system called OpenEmbedded-Core, usually referred as
OE-Core.</p>
<p>OpenEmbedded-Core was created out of the best of both original Poky and
OpenEmbedded build systems, emphasizing and increasing the reuse of components,
metadata, and sub-modules to form a core build system which is common among all
different OpenEmbedded-derived.</p>
<p>The Poky build system was also reworked to use the OpenEmbedded-Core. The extra
BSPs and configurations were moved to a set of Yocto Project’s specific metadata
sub-modules. This rework eased a much bigger collaboration between OpenEmbedded
Project and Yocto Project and reduced work duplication. This is the Poky build
system used by the Yocto Project as reference build system.</p>
<p>The OpenEmbedded Project and the Yocto Project share the maintenance of
OpenEmbedded-Core, pushing for a very community-driven core build system while
allowing active interaction of companies through the Yocto Project contributors
and Advisory Board members.</p>
<p>In the next post “Benefits for your products” we will discuss the motivations
that can lead you towards the Yocto Project, independently if you are an user, a
developer or a company entrepreneur covering topics such as its advantages, risk
reduction and platform reuse.</p>
FSL Community BSP 1.7 gets i.MX6 BSP update/blog/fsl-community-bsp-1-7-gets-i-mx6-bsp-update2014-11-12T12:40:00+00:002014-11-12T12:40:00+00:00Article Author<p>The 3.10.17-1.0.2 i.MX6 BSP update has been merged into FSL Community
BSP 1.7 release. Everyone using the Dizzy branch will receive those
updates and it should be harmless.</p>
<p>This update includes several fixes on the graphics stack and improves
robustness on kernel when dealing with high load.</p>
FSL Community BSP 1.7 is out!/blog/fsl-community-bsp-1-7-is-out2014-11-05T19:52:00+00:002014-11-05T19:52:00+00:00Article Author<p>We’re glad to announce the FSL Community BSP 1.7 (codename Dizzy); it
has been a busy release cycle with some new boards support added. In
total we now support 42 boards from several vendors.</p>
<p></p>
<p>During the 1.7 release cycle, a new SoC family support (QorlQ
Layerscape1) has been included and the application and graphical stack
support (better Wayland, Qt5 and Chromium support to enumerate some)
has been greatly extended. This all has been accomplished with way
less changes on the core BSP layer (53% less commits) which enforces
the compromise of FSL Community BSP with long term quality and
support.</p>
<p>Another worth citing news is regarding the release notes. It is
available <a href="http://bit.ly/1urg7bO">online</a> and gives an overview of
supported boards, available version for default and optional packages
and known issues at time of the release.</p>
<p>The release notes has been completely reworked and extended in this
release. It now offers a PDF version (for viewing and printing)
alongside with the regular online one.</p>