https://wiki.koansoftware.com/api.php?action=feedcontributions&user=Koan&feedformat=atomKoanSoftware Wiki - User contributions [en]2024-03-19T09:22:56ZUser contributionsMediaWiki 1.27.1https://wiki.koansoftware.com/index.php?title=Using_devtool_to_modify_recipes_in_Yocto&diff=346Using devtool to modify recipes in Yocto2024-03-05T16:16:03Z<p>Koan: /* Using devtool to modify recipes in Yocto */</p>
<hr />
<div>== Using devtool to modify recipes in Yocto ==<br />
<br />
Suppose you have a requirement of customizing an existing sources for a recipe, <code>devtool</code> will be the best option to go, as it will do all the steps required to create a patch, <code>bbappend</code> file etc.<br />
<br /><br />
<br />
As part of building a recipe, Yocto/OE creates a <code>tmp/work/<architecture>/<recipe>/<version></code> directory, known as the "work directory". <br /><br /><br />
This is where all of the work done to build a recipe takes place. <br /><br /><br />
One of the things you'll find in this directory is the source, usually under a subdirectory named <code><recipename>-<version></code> or "git" (depending on how the fetched source is provided). <br /><br /><br />
The temptation (and what people used to do in the past) is to simply make changes here and then recompile, but there are several reasons why that's not a good idea:<br />
<br />
* It's awkward - you have to use <code>bitbake -c compile -f</code> or <code>bitbake -C compile</code> to force recompilation, since the build system doesn't know that you've made any changes<br />
* You can easily lose your changes if you're not careful e.g. running <code>bitbake -c clean</code> will wipe the directory out<br />
<br />
<br /><br />
<br />
Luckily there's a much better method using the <code>devtool</code> command:<br />
<br />
# Run <code>devtool modify &lt;recipename&gt;</code>. This will fetch the sources for the recipe and unpack them to a workspace/sources/<recipename> directory and initialise it as a git repository if it isn't already one. If you prefer you can specify your own path, or if you already have your own existing source tree you can specify the path along with the -n option to use that instead of unpacking a new one.<br />
# Make the changes you want to make to the source<br />
# Run a build to test your changes - you can just <code>devtool build &lt;recipename&gt;</code> or even build an entire image incorporating the changes assuming a package produced by the recipe is part of an image. There's no need to force anything - the build system will detect changes to the source and recompile as necessary.<br />
# If you wish, test your changes on the target. There's a "devtool deploy-target" command which will copy the files installed at do_install over to the target machine assuming it has network access, and any dependencies are already present in the image.<br />
# Repeat from step 2 as needed until you're happy with the results.<br />
# At this point you will almost certainly want to place your changes in the form of a patch to be applied from the metadata - devtool provides help with this as well. Commit your changes using "git commit" (as many or as few commits as you'd like) and then run either:<br />
#* <code>devtool update-recipe &lt;recipename&gt;</code> to update the original recipe - usually appropriate if it's your own recipe or you're submitting the changes back to the upstream layer<br />
#* <code>devtool update-recipe -a &lt;layerpath&gt; &lt;recipename&gt;</code> to put your changes in the form of a bbappend to be applied by a different layer. This is usually the desired method if your changes are customisations rather than bugfixes.<br />
# If you're finished working on the recipe, run <code>devtool reset &lt;recipename&gt;</code>.<br />
<br />
<br /><br />
<br />
This is just one of the things that devtool can do - it provides some powerful tools to help you maintain recipes and make changes to source code.<br />
<br />
<br /><br />
<br />
-----<br />
<br />
== Using devtool to modify the linux kernel recipes in Yocto ==<br />
<br />
Modifying the kernel inside Yocto/OE <br />
<br />
From your build directory run <br />
<br />
devtool modify virtual/kernel<br />
<br />
It will create a workspace directory containing the kernel sources in build directory<br />
<br />
<br /><br />
<br />
Now discover the package-name (PN) of the virtual/kernel <br />
<br />
devtool status<br />
NOTE: Starting bitbake server...<br />
linux-yocto: /home/tux/yocto-bbb-dunfell/poky/build/workspace/sources/linux-yocto<br />
<br />
edit manually what you need (.c and .dts) in <code>workspace/sources/linux-yocto/</code><br />
<br />
devtool build linux-yocto<br />
<br />
now you have your kernel and DeviceTree in <code>tmp/deploy/images/beaglebone-yocto/</code><br />
then deploy them on the target board and test them.<br />
<br />
<br /><br />
<br />
Once you are satisfied, add this git repository to your fork.<br /><br />
This will add your patches to the original recipe<br />
<br />
git add .<br />
git commit -m "my linux modifications"<br />
devtool update-recipe linux-yocto<br />
<br />
<br />
== Using devtool to modify the linux kernel configuration ==<br />
<br />
'''WARNING: the <code>devtool menuconfig</code> option is valid only for recent Yocto releases like '''dunfell''' '''<br />
<br />
Modifying the kernel configuration may be different depending on the original conditions<br />
<br />
Consider that when you use <code>devtool modify</code>, it will automatically run the <code>kernel_configme</code> task.<br />
<br />
If not already done, run from your build directory<br />
<br />
devtool modify virtual/kernel<br />
<br />
then modify your configuration<br />
<br />
devtool menuconfig linux-yocto<br />
<br />
Once you are satisfied run this to generate the <code>defconfig</code><br />
<br />
bitbake -c savedefconfig virtual/kernel<br />
<br />
and overwrite the <code>defconfig</code> on the previous one in the original recipe.</div>Koanhttps://wiki.koansoftware.com/index.php?title=Support_other_languages_and_keyboards_than_English_in_Yocto&diff=345Support other languages and keyboards than English in Yocto2024-03-04T07:50:15Z<p>Koan: </p>
<hr />
<div>== How to Support other languages and keyboards than English in Yocto ==<br />
<br />
Generally Yocto release packages only support English character set. <br />
<br />
When you need to support more languages for localization there is a solution.<br />
<br />
In this example we are '''supporting Chinese character set in Yocto Project''' image.<br />
<br />
Edit '''local.conf''' and add the following two lines to support Chinese keyboard:<br />
<br />
GLIBC_GENERATE_LOCALES = "zh_CN.UTF-8 en_GB.UTF-8 en_US.UTF-8"<br />
IMAGE_LINGUAS ?= "zh-cn"<br />
<br />
If you need a '''keyboard localization''' support, it is required to start the '''loadkeys''' command at boot<br />
<br />
loadkeys zh<br />
<br />
<br />
Or these settings install the '''Finnish locales''' and set it as the default language and keyboard for the image:<br />
<br />
GLIBC_GENERATE_LOCALES = "en_US.UTF-8 fi_FI.UTF-8"<br />
IMAGE_LINGUAS = "fi-fi"<br />
<br />
with '''keyboard localization''' support<br />
<br />
loadkeys fi<br />
<br />
<br />
----<br />
<br />
- Read this post in Koan wiki to learn [https://wiki.koansoftware.com/index.php/How_to_run_a_script_at_boot_automatically how to run a script at boot automatically] with '''sysvinint'''.<br />
<br />
- Read this post in Koan wiki to learn [https://wiki.koansoftware.com/index.php/How_to_run_a_systemd_script_at_boot_automatically how to run a systemd script at boot automatically] with '''systemd'''.<br />
<br />
<br />
----<br />
<br />
See the Yocto Project documentation for [https://docs.yoctoproject.org/ref-manual/variables.html?highlight=image_linguas#term-IMAGE_LINGUAS IMAGE_LINGUAS]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Support_other_languages_and_keyboards_than_English_in_Yocto&diff=344Support other languages and keyboards than English in Yocto2024-02-29T16:18:56Z<p>Koan: </p>
<hr />
<div>== How to Support other languages and keyboards than English in Yocto ==<br />
<br />
Generally Yocto release packages only support English character set. <br />
<br />
When you need to support more languages for localization there is a solution.<br />
<br />
In this example we are '''supporting Chinese character set in Yocto Project''' image.<br />
<br />
Edit '''local.conf''' and add the following two lines to support Chinese keyboard:<br />
<br />
GLIBC_GENERATE_LOCALES = "zh_CN.UTF-8 en_GB.UTF-8 en_US.UTF-8"<br />
IMAGE_LINGUAS ?= "zh-cn"<br />
<br />
<br />
Or these settings install the '''Finnish locales''' and set it as the default language and keyboard for the image:<br />
<br />
GLIBC_GENERATE_LOCALES = "en_US.UTF-8 fi_FI.UTF-8"<br />
IMAGE_LINGUAS = "fi-fi"<br />
<br />
See the Yocto Project documentation for [https://docs.yoctoproject.org/ref-manual/variables.html?highlight=image_linguas#term-IMAGE_LINGUAS IMAGE_LINGUAS]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Support_other_languages_and_keyboards_than_English_in_Yocto&diff=343Support other languages and keyboards than English in Yocto2024-02-29T16:16:49Z<p>Koan: Created page with "== How to Support other languages and keyboards than English in Yocto == Generally Yocto release packages only support English character set. When you need to support more..."</p>
<hr />
<div>== How to Support other languages and keyboards than English in Yocto ==<br />
<br />
Generally Yocto release packages only support English character set. <br />
<br />
When you need to support more languages for localization there is a solution.<br />
<br />
In this example we are '''supporting Chinese character set in Yocto Project''' image.<br />
<br />
Edit '''local.conf''' and add the following two lines to support Chinese keyboard:<br />
<br />
GLIBC_GENERATE_LOCALES = "zh_CN.UTF-8 en_GB.UTF-8 en_US.UTF-8"<br />
IMAGE_LINGUAS ?= "zh-cn"<br />
<br />
<br />
Or these settings install the '''Finnish locales''' and set it as the default language and keyboard for the image:<br />
<br />
GLIBC_GENERATE_LOCALES = "en_US.UTF-8 fi_FI.UTF-8"<br />
IMAGE_LINGUAS = "fi-fi"</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=342Main Page2024-02-29T16:12:25Z<p>Koan: /* Yocto Project */</p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
* [[Issues running python on Linux]]<br />
* [[Error Initialize GIT git init --initial-branch=main]]<br />
* [[repo issue "def print(self, *args, **kwargs):"]]<br />
<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[How to run a systemd script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
* [[Upgrade to Yocto honister 3.4]]<br />
* [[Override syntax change from Yocto honister 3.4]]<br />
* [[Modify the linux kernel with configuration fragments in Yocto]]<br />
* [[Add a debug banner in a Yocto recipe]]<br />
* [[How to trace a variable setting with bitbake-getvar]]<br />
* [[How to detect the Yocto version using bitbake]]<br />
* [[Support other languages and keyboards than English in Yocto]]<br />
<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Repo_issue_%22def_print(self,_*args,_**kwargs):%22&diff=341Repo issue "def print(self, *args, **kwargs):"2023-12-06T10:33:01Z<p>Koan: Created page with "== Repo issue "def print(self, *args, **kwargs):" == '''Symptoms''' Trying to initialize a repo, for example: $ repo init -u https://github.com/nxp-imx/imx-manifest -b im..."</p>
<hr />
<div>== Repo issue "def print(self, *args, **kwargs):" ==<br />
<br />
'''Symptoms'''<br />
<br />
Trying to initialize a repo, for example: <br />
<br />
$ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-kirkstone -m imx-5.15.52-2.1.0.xml<br />
<br />
we have the below log:<br />
<br />
File "/home/username/bin/repo", line 51<br />
def print(self, *args, **kwargs):<br />
^<br />
SyntaxError: invalid syntax<br />
<br />
<br />
'''Workaround (1)'''<br />
<br />
The first workaround consist in change the python alternatives (caused when you have installed two or more python versions).<br />
<br />
NOTE: in my case, the python version that i want to change as first priority is python3.8<br />
<br />
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1<br />
<br />
Then we run:<br />
<br />
$ sudo update-alternatives --config python<br />
<br />
To verify if your python priority was changed successfully try:<br />
<br />
$ python --version<br />
<br />
<br />
'''Workaround (2)'''<br />
<br />
The workaround is very simple, only we need modify the repo file<br />
<br />
$ vi ~/bin/repo<br />
<br />
and we will change the python interpreter in the first line (from python to phyton3):<br />
<br />
Change this line<br />
<br />
#!/usr/bin/env python<br />
<br />
to this line<br />
<br />
#!/usr/bin/env python3<br />
<br />
After to do this change, repo will works fine again.<br />
<br />
<br />
-----<br />
<br />
''Credits: [https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/repo-issue-quot-def-print-self-args-kwargs-quot/ta-p/1756521'' NXP Community]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=340Main Page2023-12-06T10:26:34Z<p>Koan: </p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
* [[Issues running python on Linux]]<br />
* [[Error Initialize GIT git init --initial-branch=main]]<br />
* [[repo issue "def print(self, *args, **kwargs):"]]<br />
<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[How to run a systemd script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
* [[Upgrade to Yocto honister 3.4]]<br />
* [[Override syntax change from Yocto honister 3.4]]<br />
* [[Modify the linux kernel with configuration fragments in Yocto]]<br />
* [[Add a debug banner in a Yocto recipe]]<br />
* [[How to trace a variable setting with bitbake-getvar]]<br />
* [[How to detect the Yocto version using bitbake]]<br />
<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=339Main Page2023-12-06T10:26:15Z<p>Koan: /* Problem solving - Howto */</p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
* [[Issues running python on Linux]]<br />
* [[Error Initialize GIT git init --initial-branch=main]]<br />
* [[repo issue "def print(self, *args, **kwargs):"]]<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[How to run a systemd script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
* [[Upgrade to Yocto honister 3.4]]<br />
* [[Override syntax change from Yocto honister 3.4]]<br />
* [[Modify the linux kernel with configuration fragments in Yocto]]<br />
* [[Add a debug banner in a Yocto recipe]]<br />
* [[How to trace a variable setting with bitbake-getvar]]<br />
* [[How to detect the Yocto version using bitbake]]<br />
<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=How_to_detect_the_Yocto_version_using_bitbake&diff=338How to detect the Yocto version using bitbake2023-11-30T08:40:39Z<p>Koan: Created page with "== How to check the Yocto Project version using bitbake == You can check the Yocto version that you are currently using by running: bitbake -e | grep '^DISTRO_VERSION\|DIST..."</p>
<hr />
<div>== How to check the Yocto Project version using bitbake ==<br />
<br />
You can check the Yocto version that you are currently using by running:<br />
<br />
bitbake -e | grep '^DISTRO_VERSION\|DISTRO_CODENAME='<br />
<br />
<br />
<br />
Long-Term Support (LTS) releases are made usually every 2 years, and maintained for 2 years after their initial release. <br />
<br />
Minor releases for supported stable and LTS branches (e.g. 3.0.1, 3.0.2, 3.1.1, …) are released on an unscheduled basis, usually when enough significant bug fixes have been accumulated.<br />
<br />
After the maintenance window has ended, releases can enter a community support phase if a community maintainer steps up. <br />
<br />
Community support is best-effort, and testing usually does not cover all initially supported platforms. A release enters End-of-Life status if no community maintainer steps up, or when there is no longer an active community maintainer for 2 months.<br />
<br />
Yocto stable releases (e.g. 3.0, 3.1, 3.2, 3.3…) are made about every 6 months, usually in April and October. Stable releases are maintained seven months after the initial release.<br />
<br />
A list of releases and support level is published at https://wiki.yoctoproject.org/wiki/Releases.<br />
<br />
More information is available on the Yocto Project website: https://wiki.yoctoproject.org/wiki/Stable_Release_and_LTS</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=337Main Page2023-11-30T08:36:21Z<p>Koan: </p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
* [[Issues running python on Linux]]<br />
* [[Error Initialize GIT git init --initial-branch=main]]<br />
<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[How to run a systemd script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
* [[Upgrade to Yocto honister 3.4]]<br />
* [[Override syntax change from Yocto honister 3.4]]<br />
* [[Modify the linux kernel with configuration fragments in Yocto]]<br />
* [[Add a debug banner in a Yocto recipe]]<br />
* [[How to trace a variable setting with bitbake-getvar]]<br />
* [[How to detect the Yocto version using bitbake]]<br />
<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=How_to_add_libstdc%2B%2B_to_a_Yocto_(Poky)_image&diff=336How to add libstdc++ to a Yocto (Poky) image2023-11-28T11:16:36Z<p>Koan: new syntax</p>
<hr />
<div>== How to add libstdc++ to a Yocto (Poky) image ==<br />
<br />
The C++ standard library is not included in the default Yocto Project and Openembedded images.<br />
<br />
* If you need it, add in the local.conf or into the image file the following line<br />
<br />
IMAGE_INSTALL:append = " libstdc++"<br />
<br />
<br />
== How to add libstdc++ to the Yocto SDK ==<br />
<br />
The C++ standard library is not included in the default Yocto Project SDK.<br />
<br />
* If you need it, add in the local.conf or into the image file the following line<br />
<br />
TOOLCHAIN_TARGET_TASK:append = " libstdc++-staticdev"</div>Koanhttps://wiki.koansoftware.com/index.php?title=How_to_run_a_systemd_script_at_boot_automatically&diff=335How to run a systemd script at boot automatically2023-10-20T15:24:37Z<p>Koan: Created page with "== How to run a systemd script at boot automatically using Linux == If you need to run a script at boot automatically using Linux with '''systemd''' this is the easiest solut..."</p>
<hr />
<div>== How to run a systemd script at boot automatically using Linux ==<br />
<br />
If you need to run a script at boot automatically using Linux with '''systemd''' this is the easiest solution.<br />
<br />
* Create a script file calling your application<br />
<br />
# vi /home/root/flutter-launcher.sh<br />
<br />
#!/bin/sh<br />
<br />
flutter-auto --b=/usr/share/flutter/gallery/3.3.10/release/ --f<br />
<br />
<br />
* Modify the executable flag <br />
<br />
# chmod +x /home/root/flutter-launcher.sh<br />
<br />
<br />
* Create the service<br />
<br />
# vi /etc/systemd/system/flutterstart.service<br />
<br />
[Unit]<br />
Description=Flutter starter<br />
<br />
[Service]<br />
ExecStart=/home/root/flutter-launcher.sh<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
<br />
<br />
Now, take a few more steps to enable and use the .service file:<br />
<br />
* Start it<br />
<br />
# sudo systemctl start flutterstart<br />
<br />
* Enable it to run at boot<br />
<br />
# sudo systemctl enable flutterstart<br />
<br />
* Test it<br />
<br />
# systemctl status flutterstart<br />
<br />
* flutter-start.service - Flutter starter<br />
Loaded: loaded (/etc/systemd/system/flutterstart.service; enabled; vendor preset: disabled)<br />
Active: active (running) since Mon 2023-03-06 17:11:38 UTC; 3min 29s ago<br />
Main PID: 245 (flutterstart)<br />
CGroup: /system.slice/flutterstart.service<br />
|- 245 /bin/sh /home/root/flutter-starter.sh<br />
`- 272 flutter-auto --b=/usr/share/flutter/gallery/3.3.10/release/ --f</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=334Main Page2023-10-20T15:17:13Z<p>Koan: /* Yocto Project */</p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
* [[Issues running python on Linux]]<br />
* [[Error Initialize GIT git init --initial-branch=main]]<br />
<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[How to run a systemd script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
* [[Upgrade to Yocto honister 3.4]]<br />
* [[Override syntax change from Yocto honister 3.4]]<br />
* [[Modify the linux kernel with configuration fragments in Yocto]]<br />
* [[Add a debug banner in a Yocto recipe]]<br />
* [[How to trace a variable setting with bitbake-getvar]]<br />
<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=333Main Page2023-08-03T07:16:11Z<p>Koan: /* Yocto Project */</p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
* [[Issues running python on Linux]]<br />
* [[Error Initialize GIT git init --initial-branch=main]]<br />
<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
* [[Upgrade to Yocto honister 3.4]]<br />
* [[Override syntax change from Yocto honister 3.4]]<br />
* [[Modify the linux kernel with configuration fragments in Yocto]]<br />
* [[Add a debug banner in a Yocto recipe]]<br />
* [[How to trace a variable setting with bitbake-getvar]]<br />
<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=332Main Page2023-08-03T07:15:48Z<p>Koan: /* Yocto Project */</p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
* [[Issues running python on Linux]]<br />
* [[Error Initialize GIT git init --initial-branch=main]]<br />
<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree - local source tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
* [[Upgrade to Yocto honister 3.4]]<br />
* [[Override syntax change from Yocto honister 3.4]]<br />
* [[Modify the linux kernel with configuration fragments in Yocto]]<br />
* [[Add a debug banner in a Yocto recipe]]<br />
* [[How to trace a variable setting with bitbake-getvar]]<br />
<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Building_Software_from_an_External_Source&diff=331Building Software from an External Source2023-08-03T07:15:32Z<p>Koan: </p>
<hr />
<div>== Building Software from an External Source using Yocto Project - local source tree ==<br />
<br />
I have a local source tree I want to build instead of the upstream source a recipe normally fetches, how do I do that? <br />
<br />
By default, the OpenEmbedded build system uses the Build Directory when building source code. The build process involves fetching the source files, unpacking them, and then patching them if necessary before the build takes place.<br />
<br />
Situations exist where you might want to build software from source files that are external to and thus outside of the OpenEmbedded build system. For example, suppose you have a project that includes a new BSP with a heavily customized kernel. And, you want to minimize exposing the build system to the development team so that they can focus on their project and maintain everyone's workflow as much as possible. In this case, you want a kernel source directory on the development machine where the development occurs. You want the recipe's SRC_URI variable to point to the external directory and use it as is, not copy it.<br />
<br />
<br />
in this case use the externalsrc class - you can inherit this in the original bb recipe or a bbappend:<br />
<br />
inherit externalsrc<br />
EXTERNALSRC = "/path/to/sources"<br />
<br />
<br />
Depending on the type of build (eg, 'inherit module' for out of tree Linux kernel modules) you may or may not need to set EXTERNALSRC_BUILD.<br />
<br />
inherit externalsrc<br />
EXTERNALSRC = "/some/path"<br />
EXTERNALSRC_BUILD = "/some/path"<br />
<br />
<br />
<br />
If you're going to use it across a number of recipes you can inherit it globally at the configuration level (perhaps via an inc file that you include/require there):<br />
<br />
INHERIT += "externalsrc"<br />
EXTERNALSRC_pn-<recipename> = "/path/to/sources"<br />
<br />
<br />
Recipe example using an external source for nInvaders package<br />
<br />
<pre><nowiki><br />
<br />
#<br />
# Recipe example with externalsrc<br />
#<br />
# (C)2019 Marco Cavallini - KOAN - <https://koansoftware.com><br />
#<br />
<br />
LICENSE = "CLOSED"<br />
LIC_FILES_CHKSUM = ""<br />
<br />
inherit externalsrc<br />
<br />
EXTERNALSRC = "/home/koan/yocto-qemuarm-sumo/ninvaders-0.1.1"<br />
EXTERNALSRC_BUILD = "${EXTERNALSRC}"<br />
<br />
DEPENDS = "ncurses"<br />
<br />
EXTRA_OEMAKE = "-e"<br />
<br />
<br />
do_install() {<br />
install -d ${D}${bindir}<br />
install -m 0755 nInvaders ${D}${bindir}<br />
}<br />
<br />
FILES_${PN} = "${bindir}/*"<br />
<br />
</nowiki></pre></div>Koanhttps://wiki.koansoftware.com/index.php?title=Issues_running_python_on_Linux&diff=330Issues running python on Linux2023-08-02T09:53:03Z<p>Koan: </p>
<hr />
<div>== Issues running python on Linux ==<br />
<br />
This article provides instructions to fix the error '''Python command not found''' in Linux.<br />
<br />
After following the steps described in this tutorial, you will get your Python package fixed. <br />
<br />
The content below mentions all possible causes of this problem, reported by many Linux users.<br />
<br />
In some cases you may have issues using '''python''' like the following<br />
<br />
/usr/bin/env: ‘python’: No such file or directory<br />
<br />
This may be a typical Python misconfiguration that ca be verified with the following commands<br />
<br />
ls /usr/bin/python* -al<br />
<br />
which python python2 python3<br />
<br />
And can be solved with this command<br />
<br />
sudo ln -fs /usr/bin/python3 /usr/bin/python<br />
<br />
<br />
----<br />
<br />
<br />
A better and smarter solution is using the proper package from your distro<br />
<br />
$ sudo apt-get install python-is-python3</div>Koanhttps://wiki.koansoftware.com/index.php?title=Error_Initialize_GIT_git_init_--initial-branch%3Dmain&diff=329Error Initialize GIT git init --initial-branch=main2023-08-02T09:50:54Z<p>Koan: Created page with "== Error Initialize GIT git init --initial-branch=main == When initializing a new repository with old syntax you may face to this error > git init --initial-branch=main er..."</p>
<hr />
<div>== Error Initialize GIT git init --initial-branch=main ==<br />
<br />
When initializing a new repository with old syntax you may face to this error<br />
<br />
> git init --initial-branch=main<br />
error: unknown option `initial-branch=main'<br />
<br />
Example of Gitlab suggested regular code<br />
<br />
cd existing_folder<br />
git init --initial-branch=main<br />
git remote add origin git@gitlab.com:path/to/project.git<br />
git add .<br />
git commit -m "Initial commit"<br />
git push -u origin main<br />
<br />
<br />
Fix the problem using this way<br />
<br />
cd existing_folder<br />
git init<br />
git checkout -b main<br />
git remote add origin git@gitlab.com:path/to/project.git<br />
git add .<br />
git commit -m "Initial commit"<br />
git push -u origin main</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=328Main Page2023-08-02T09:48:57Z<p>Koan: </p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
* [[Issues running python on Linux]]<br />
* [[Error Initialize GIT git init --initial-branch=main]]<br />
<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
* [[Upgrade to Yocto honister 3.4]]<br />
* [[Override syntax change from Yocto honister 3.4]]<br />
* [[Modify the linux kernel with configuration fragments in Yocto]]<br />
* [[Add a debug banner in a Yocto recipe]]<br />
* [[How to trace a variable setting with bitbake-getvar]]<br />
<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=327Main Page2023-08-02T09:48:38Z<p>Koan: /* Problem solving - Howto */</p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
* [[Issues running python on Linux]]<br />
* [[Error Initialize GIT git init --initial-branch=main]]<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
* [[Upgrade to Yocto honister 3.4]]<br />
* [[Override syntax change from Yocto honister 3.4]]<br />
* [[Modify the linux kernel with configuration fragments in Yocto]]<br />
* [[Add a debug banner in a Yocto recipe]]<br />
* [[How to trace a variable setting with bitbake-getvar]]<br />
<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Issues_running_python_on_Linux&diff=326Issues running python on Linux2023-06-08T08:58:32Z<p>Koan: </p>
<hr />
<div>== Issues running python on Linux ==<br />
<br />
This article provides instructions to fix the error '''Python command not found''' in Linux.<br />
<br />
After following the steps described in this tutorial, you will get your Python package fixed. <br />
<br />
The content below mentions all possible causes of this problem, reported by many Linux users.<br />
<br />
In some cases you may have issues using '''python''' like the following<br />
<br />
/usr/bin/env: ‘python’: No such file or directory<br />
<br />
This may be a typical Python misconfiguration that ca be verified with the following commands<br />
<br />
ls /usr/bin/python* -al<br />
<br />
which python python2 python3<br />
<br />
And can be solved with this command<br />
<br />
sudo ln -fs /usr/bin/python3 /usr/bin/python</div>Koanhttps://wiki.koansoftware.com/index.php?title=Issues_running_python_on_Linux&diff=325Issues running python on Linux2023-06-08T08:57:32Z<p>Koan: Created page with "== Issues running python on Linux == In some cases you may have issues using '''python''' like the following /usr/bin/env: ‘python’: No such file or directory This may..."</p>
<hr />
<div>== Issues running python on Linux ==<br />
<br />
In some cases you may have issues using '''python''' like the following<br />
<br />
/usr/bin/env: ‘python’: No such file or directory<br />
<br />
This may be a typical Python misconfiguration that ca be verified with the following commands<br />
<br />
ls /usr/bin/python* -al<br />
<br />
which python python2 python3<br />
<br />
And can be solved with this command<br />
<br />
sudo ln -fs /usr/bin/python3 /usr/bin/python</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=324Main Page2023-06-08T08:53:27Z<p>Koan: /* Problem solving - Howto */</p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
* [[Issues running python on Linux]]<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
* [[Upgrade to Yocto honister 3.4]]<br />
* [[Override syntax change from Yocto honister 3.4]]<br />
* [[Modify the linux kernel with configuration fragments in Yocto]]<br />
* [[Add a debug banner in a Yocto recipe]]<br />
* [[How to trace a variable setting with bitbake-getvar]]<br />
<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=How_to_trace_a_variable_setting_with_bitbake-getvar&diff=323How to trace a variable setting with bitbake-getvar2023-05-25T10:32:53Z<p>Koan: Created page with "== How to trace a variable setting with bitbake-getvar == Sometime you may need to understand how '''bitbake''' is setting the value of a specific variable $ bitbake-getvar..."</p>
<hr />
<div>== How to trace a variable setting with bitbake-getvar ==<br />
<br />
Sometime you may need to understand how '''bitbake''' is setting the value of a specific variable<br />
<br />
$ bitbake-getvar IMAGE_FSTYPES<br />
<br />
NOTE: Starting bitbake server...<br />
#<br />
# $IMAGE_FSTYPES [3 operations]<br />
# append /home/tux/yocto/poky/meta/conf/machine/include/qemu.inc:16<br />
# "tar.bz2 ext4"<br />
# set /home/tux/yocto/poky/meta/conf/documentation.conf:213<br />
# [doc] "Formats of root filesystem images that you want to have created."<br />
# set? /home/tux/yocto/poky/meta/conf/bitbake.conf:782<br />
# "tar.gz"<br />
# pre-expansion value:<br />
# " tar.bz2 ext4"<br />
<br />
IMAGE_FSTYPES=" tar.bz2 ext4"<br />
<br />
You can use the '''bitbake-getvar''' command<br />
<br />
usage: bitbake-getvar [-h] [-r RECIPE] [-u] [-f FLAG] [--value] variable<br />
<br />
Bitbake Query Variable<br />
<br />
positional arguments:<br />
variable variable name to query<br />
<br />
optional arguments:<br />
-h, --help show this help message and exit<br />
-r RECIPE, --recipe RECIPE<br />
Recipe name to query<br />
-u, --unexpand Do not expand the value (with --value)<br />
-f FLAG, --flag FLAG Specify a variable flag to query (with --value)<br />
--value Only report the value, no history and no variable name</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=322Main Page2023-05-25T10:30:07Z<p>Koan: /* Yocto Project */</p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
* [[Upgrade to Yocto honister 3.4]]<br />
* [[Override syntax change from Yocto honister 3.4]]<br />
* [[Modify the linux kernel with configuration fragments in Yocto]]<br />
* [[Add a debug banner in a Yocto recipe]]<br />
* [[How to trace a variable setting with bitbake-getvar]]<br />
<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Add_a_systemd_service_file_into_a_Yocto_image&diff=321Add a systemd service file into a Yocto image2023-05-05T10:42:54Z<p>Koan: </p>
<hr />
<div>== Add a systemd service file into a Yocto image ==<br />
<br />
During [https://koansoftware.com/training KOAN training] we use a [https://github.com/koansoftware/meta-training meta-training] layer to create an '''example.bb''' recipe building a '''helloworld''' executable.<br />
<br />
In this article we want to create a recipe to add a systemd service file that starts such '''helloworld''' executable.<br />
<br />
<br />
== Enable systemd in the final image ==<br />
<br />
If '''systemd''' is not enabled by default in your Yocto Project final image you are very likely still using SystemV.<br />
Add the following lines to the '''local.conf''' to enable '''systemd''' as default init manager.<br />
<br />
DISTRO_FEATURES_append = " systemd"<br />
DISTRO_FEATURES_BACKFILL_CONSIDERED += "sysvinit"<br />
VIRTUAL-RUNTIME_init_manager = "systemd"<br />
VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"<br />
<br />
<br />
== Create a recipe to add a systemd service file ==<br />
<br />
For the '''helloworld''' application, we don’t necessarily need a service file as this application does not provide services to other parts of this system. However, for example purposes, we will create an autostart script to run hello at boot time. The output from this invocation will be available in the systemd logs using the '''journalctl''' command. This service file can also be manually invoked at runtime.<br />
<br />
First, we will create the service file itself which is read and processed by systemd:<br />
<br />
mkdir -p meta-training/recipes-example/systemd/files/<br />
<br />
Edit a new configuration file <br />
gedit meta-training/recipes-example/systemd/files/hello.service<br />
<br />
containing the following code<br />
<br />
[Unit]<br />
Description=GNU Hello World startup script for KOAN training course<br />
<br />
[Service]<br />
ExecStart=/usr/bin/hello<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
<br />
Now let’s add the recipe settings to integrate this into the systemd configuration for our build:<br />
<br />
<br />
Edit a new configuration file <br />
gedit meta-training/recipes-example/systemd/hellosystemd_1.00.bb<br />
<br />
containing the following code<br />
<br />
LICENSE = "CLOSED"<br />
inherit systemd<br />
<br />
SYSTEMD_AUTO_ENABLE = "enable"<br />
SYSTEMD_SERVICE_${PN} = "hello.service"<br />
<br />
SRC_URI_append = " file://hello.service "<br />
FILES_${PN} += "${systemd_unitdir}/system/hello.service"<br />
<br />
do_install_append() {<br />
install -d ${D}/${systemd_unitdir}/system<br />
install -m 0644 ${WORKDIR}/hello.service ${D}/${systemd_unitdir}/system<br />
}<br />
<br />
Add the recipe to the image editing local.conf<br />
<br />
IMAGE_INSTALL_append = " hellosystemd"<br />
<br />
Now rebuild your image<br />
<br />
bitbake core-image-minimal<br />
<br />
Boot and verify that the service started and the output is visible in the systemd logs.<br />
<br />
<br /><br />
--------<br />
<br /><br />
<br />
= UPDATE - Selecting an Initialization Manager =<br />
<br />
Instead of the previous settings you can use the following '''INIT_MANAGER''' variable to select your favorite '''init''' mechanism.<br />
<br />
By default, the Yocto Project uses '''SysVinit''' as the initialization manager. There is also support for '''systemd''', which is a full replacement for init with parallel starting of services, reduced shell overhead, increased security and resource limits for services, and other features that are used by many distributions.<br />
<br />
In comparison to '''SysVinit''', '''systemd''' treats components as units. Using units is a broader concept as compared to using a service. A unit includes several different types of entities. Service is one of the types of entities. The '''runlevel''' concept in '''SysVinit''' corresponds to the concept of a target in '''systemd''', where target is also a type of supported unit.<br />
<br />
In systems with '''SysVinit''' services load sequentially (i.e. one by one) during init and parallelization is not supported. With '''systemd''', services start in parallel. This method can have an impact on the startup performance of a given service, though '''systemd''' will also provide more services by default, therefore increasing the total system boot time. '''systemd''' also substantially increases system size because of its multiple components and the extra dependencies it pulls.<br />
<br />
== Using SysVinit with udev ==<br />
<br />
'''SysVinit''' with the udev device manager corresponds to the default setting in Poky. This corresponds to setting:<br />
<br />
INIT_MANAGER = "sysvinit"<br />
<br />
== Using systemd ==<br />
<br />
The last option is to use '''systemd''' together with the udev device manager. This is the most powerful and versatile solution, especially for more complex systems:<br />
<br />
INIT_MANAGER = "systemd"<br />
<br />
== Controlling systemd from the target command line ==<br />
<br />
Here is a quick reference for controling '''systemd''' from the command line on the target. Instead of opening and sometimes modifying files, most interaction happens through the '''systemctl''' and '''journalctl''' commands:<br />
<br />
systemctl status: show the status of all services<br />
systemctl status <service>: show the status of one service<br />
systemctl [start|stop] <service>: start or stop a service<br />
systemctl [enable|disable] <service>: enable or disable a service at boot time<br />
systemctl list-units: list all available units<br />
journalctl -a: show all logs for all services<br />
journalctl -f: show only the last log entries, and keep printing updates as they arrive<br />
journalctl -u: show only logs from a particular service<br />
<br />
== References ==<br />
<br />
https://docs.yoctoproject.org/dev/ref-manual/variables.html#term-INIT_MANAGER<br />
<br />
https://docs.yoctoproject.org/dev/dev-manual/init-manager.html#init-manager</div>Koanhttps://wiki.koansoftware.com/index.php?title=Add_a_systemd_service_file_into_a_Yocto_image&diff=320Add a systemd service file into a Yocto image2023-05-05T10:39:07Z<p>Koan: UPDATE - Selecting an Initialization Manager</p>
<hr />
<div>== Add a systemd service file into a Yocto image ==<br />
<br />
During [https://koansoftware.com/training KOAN training] we use a [https://github.com/koansoftware/meta-training meta-training] layer to create an '''example.bb''' recipe building a '''helloworld''' executable.<br />
<br />
In this article we want to create a recipe to add a systemd service file that starts such '''helloworld''' executable.<br />
<br />
<br />
== Enable systemd in the final image ==<br />
<br />
If '''systemd''' is not enabled by default in your Yocto Project final image you are very likely still using SystemV.<br />
Add the following lines to the '''local.conf''' to enable '''systemd''' as default init manager.<br />
<br />
DISTRO_FEATURES_append = " systemd"<br />
DISTRO_FEATURES_BACKFILL_CONSIDERED += "sysvinit"<br />
VIRTUAL-RUNTIME_init_manager = "systemd"<br />
VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"<br />
<br />
<br />
== Create a recipe to add a systemd service file ==<br />
<br />
For the '''helloworld''' application, we don’t necessarily need a service file as this application does not provide services to other parts of this system. However, for example purposes, we will create an autostart script to run hello at boot time. The output from this invocation will be available in the systemd logs using the '''journalctl''' command. This service file can also be manually invoked at runtime.<br />
<br />
First, we will create the service file itself which is read and processed by systemd:<br />
<br />
mkdir -p meta-training/recipes-example/systemd/files/<br />
<br />
Edit a new configuration file <br />
gedit meta-training/recipes-example/systemd/files/hello.service<br />
<br />
containing the following code<br />
<br />
[Unit]<br />
Description=GNU Hello World startup script for KOAN training course<br />
<br />
[Service]<br />
ExecStart=/usr/bin/hello<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
<br />
Now let’s add the recipe settings to integrate this into the systemd configuration for our build:<br />
<br />
<br />
Edit a new configuration file <br />
gedit meta-training/recipes-example/systemd/hellosystemd_1.00.bb<br />
<br />
containing the following code<br />
<br />
LICENSE = "CLOSED"<br />
inherit systemd<br />
<br />
SYSTEMD_AUTO_ENABLE = "enable"<br />
SYSTEMD_SERVICE_${PN} = "hello.service"<br />
<br />
SRC_URI_append = " file://hello.service "<br />
FILES_${PN} += "${systemd_unitdir}/system/hello.service"<br />
<br />
do_install_append() {<br />
install -d ${D}/${systemd_unitdir}/system<br />
install -m 0644 ${WORKDIR}/hello.service ${D}/${systemd_unitdir}/system<br />
}<br />
<br />
Add the recipe to the image editing local.conf<br />
<br />
IMAGE_INSTALL_append = " hellosystemd"<br />
<br />
Now rebuild your image<br />
<br />
bitbake core-image-minimal<br />
<br />
Boot and verify that the service started and the output is visible in the systemd logs.<br />
<br />
<br /><br />
--------<br />
<br /><br />
<br />
= UPDATE - Selecting an Initialization Manager =<br />
<br />
By default, the Yocto Project uses '''SysVinit''' as the initialization manager. There is also support for BusyBox init, a simpler implementation, as well as support for systemd, which is a full replacement for init with parallel starting of services, reduced shell overhead, increased security and resource limits for services, and other features that are used by many distributions.<br />
<br />
Both SysVinit and BusyBox init are configured through the /etc/inittab file, with a very similar syntax, though of course BusyBox init features are more limited.<br />
<br />
In comparison, systemd treats components as units. Using units is a broader concept as compared to using a service. A unit includes several different types of entities. Service is one of the types of entities. The runlevel concept in SysVinit corresponds to the concept of a target in systemd, where target is also a type of supported unit.<br />
<br />
In systems with SysVinit or BusyBox init, services load sequentially (i.e. one by one) during init and parallelization is not supported. With systemd, services start in parallel. This method can have an impact on the startup performance of a given service, though systemd will also provide more services by default, therefore increasing the total system boot time. systemd also substantially increases system size because of its multiple components and the extra dependencies it pulls.<br />
<br />
On the contrary, BusyBox init is the simplest and the lightest solution and also comes with BusyBox mdev as device manager, a lighter replacement to udev, which SysVinit and systemd both use.<br />
<br />
== Using SysVinit with udev ==<br />
<br />
'''SysVinit''' with the udev device manager corresponds to the default setting in Poky. This corresponds to setting:<br />
<br />
INIT_MANAGER = "sysvinit"<br />
<br />
== Using systemd ==<br />
<br />
The last option is to use '''systemd''' together with the udev device manager. This is the most powerful and versatile solution, especially for more complex systems:<br />
<br />
INIT_MANAGER = "systemd"<br />
<br />
== Controlling systemd from the target command line ==<br />
<br />
Here is a quick reference for controling systemd from the command line on the target. Instead of opening and sometimes modifying files, most interaction happens through the systemctl and journalctl commands:<br />
<br />
systemctl status: show the status of all services<br />
systemctl status <service>: show the status of one service<br />
systemctl [start|stop] <service>: start or stop a service<br />
systemctl [enable|disable] <service>: enable or disable a service at boot time<br />
systemctl list-units: list all available units<br />
journalctl -a: show all logs for all services<br />
journalctl -f: show only the last log entries, and keep printing updates as they arrive<br />
journalctl -u: show only logs from a particular service<br />
<br />
== References ==<br />
<br />
https://docs.yoctoproject.org/dev/ref-manual/variables.html#term-INIT_MANAGER<br />
<br />
https://docs.yoctoproject.org/dev/dev-manual/init-manager.html#init-manager</div>Koanhttps://wiki.koansoftware.com/index.php?title=Add_a_debug_banner_in_a_Yocto_recipe&diff=319Add a debug banner in a Yocto recipe2023-05-04T12:32:50Z<p>Koan: /* Add a debug banner in a Yocto recipe */</p>
<hr />
<div>== Add a debug banner in a Yocto recipe ==<br />
<br />
Sometime you may need to understand if your recipe is taken into account by '''bitbake'''.<br />
<br />
Adding the following code at the end of your recipe may help you to verify that the build is doing what you expected:<br />
<br />
python do_display_banner() {<br />
bb.plain("********************************************");<br />
bb.plain("* This is a message tracing bitbake work *");<br />
bb.plain("********************************************");<br />
}<br />
<br />
addtask display_banner before do_build</div>Koanhttps://wiki.koansoftware.com/index.php?title=Add_a_debug_banner_in_a_Yocto_recipe&diff=318Add a debug banner in a Yocto recipe2023-05-04T12:32:11Z<p>Koan: </p>
<hr />
<div>== Add a debug banner in a Yocto recipe ==<br />
<br />
Sometime you may need to understand if your recipe is taken into account by bitbake.<br />
<br />
Adding the following code at the end of your recipe may help you to verify that the build is doing what you expect:<br />
<br />
python do_display_banner() {<br />
bb.plain("********************************************");<br />
bb.plain("* This is a message tracing bitbake work *");<br />
bb.plain("********************************************");<br />
}<br />
<br />
addtask display_banner before do_build</div>Koanhttps://wiki.koansoftware.com/index.php?title=Add_a_debug_banner_in_a_Yocto_recipe&diff=317Add a debug banner in a Yocto recipe2023-05-04T12:26:56Z<p>Koan: Created page with "== Add a debug banner in a Yocto recipe == Sometime you may need to understand if your recipe is taken into account by bitbake. Adding the following code at the end of your..."</p>
<hr />
<div>== Add a debug banner in a Yocto recipe ==<br />
<br />
Sometime you may need to understand if your recipe is taken into account by bitbake.<br />
<br />
Adding the following code at the end of your recipe may help you to verify that the build is doing what you expect:<br />
<br />
python do_display_banner() {<br />
bb.plain("***********************************************");<br />
bb.plain("* This is a message tracing the bitbake work *");<br />
bb.plain("***********************************************");<br />
}<br />
<br />
addtask display_banner before do_build</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=316Main Page2023-05-04T12:24:03Z<p>Koan: /* Yocto Project */</p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
* [[Upgrade to Yocto honister 3.4]]<br />
* [[Override syntax change from Yocto honister 3.4]]<br />
* [[Modify the linux kernel with configuration fragments in Yocto]]<br />
* [[Add a debug banner in a Yocto recipe]]<br />
<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Directories_and_installation_variables&diff=315Directories and installation variables2023-04-06T07:36:54Z<p>Koan: </p>
<hr />
<div>== Yocto Project Openembedded directories installation variables ==<br />
<br />
The following table provides a list of the variables that are used to control the directories into which files are installed.<br />
<br />
These variables can be used directly by the recipe to refer to paths that will be used after the package is installed.<br />
<br />
Variable name Definition Typical value<br />
------------- -------------------- --------------------<br />
prefix /usr /usr<br />
base_prefix (empty) (empty)<br />
exec_prefix ${base_prefix} (empty)<br />
base_bindir ${base_prefix}/bin /bin<br />
base_sbindir ${base_prefix}/sbin /sbin<br />
base_libdir ${base_prefix}/lib /lib<br />
datadir ${prefix}/share /usr/share<br />
sysconfdir /etc /etc<br />
localstatedir /var /var<br />
infodir ${datadir}/info /usr/share/info<br />
mandir ${datadir}/man /usr/share/man<br />
docdir ${datadir}/doc /usr/share/doc<br />
servicedir /srv /srv<br />
bindir ${exec_prefix}/bin /usr/bin<br />
sbindir ${exec_prefix}/sbin /usr/sbin<br />
libexecdir ${exec_prefix}/libexec /usr/libexec<br />
libdir ${exec_prefix}/lib /usr/lib<br />
includedir ${exec_prefix}/include /usr/include<br />
palmtopdir ${libdir}/opie /usr/lib/opie<br />
palmqtdir ${palmtopdir} /usr/lib/opie<br />
<br />
When specifying paths as part of the FILES variable, it is good practice to use appropriate path variables. <br />
<br />
For example, use ${sysconfdir} rather than /etc, or ${bindir} rather than /usr/bin. <br />
<br />
You can find a list of these variables at the top of the meta/conf/bitbake.conf file in the Source Directory. <br />
<br />
You will also find the default values of the various FILES:* variables in this file.<br />
https://git.yoctoproject.org/cgit.cgi/poky/plain/meta/conf/bitbake.conf</div>Koanhttps://wiki.koansoftware.com/index.php?title=Create_patches_using_quilt&diff=314Create patches using quilt2023-04-05T11:43:02Z<p>Koan: </p>
<hr />
<div>== How to create patches using quilt ==<br />
<br />
Quilt is a tool to manage large sets of patches by keeping track of the changes each patch makes.<br />
Patches can be applied, un-applied, refreshed, etc. The key philosophical concept is that your primary output is patches.<br />
<br />
With quilt, all work occurs within a single directory tree. Commands can be invoked from anywhere within the source tree. <br />
They are of the form quilt cmd similar to CVS, svn or git commands. <br />
They can be abbreviated as long as the specified part of the command is unique. <br />
All commands print some help text with quilt cmd -h.<br />
<br />
<br />
'''This is the typical workflow'''<br />
<br />
$ cd <source_directory><br />
<br />
Create a new patch with the specified file name, and insert it after the topmost patch.<br />
The name can be prefixed with a sub-directory name, allowing for grouping related patches together.<br />
<br />
$ quilt new mytmpwork.patch<br />
<br />
...select the file/s you want to modify...<br />
<br />
$ quilt add file1.c<br />
<br />
...edit the file and eventually...<br />
<br />
$ quilt refresh<br />
$ quilt diff > modifications.patch</div>Koanhttps://wiki.koansoftware.com/index.php?title=Add_build_information_into_a_Yocto_image&diff=313Add build information into a Yocto image2022-09-30T09:01:44Z<p>Koan: </p>
<hr />
<div>== Creating Add build information into a Yocto image ==<br />
<br />
Importing variables into the device with buildinfo<br />
<br />
There is a little known image feature in Yocto called buildinfo that will help us get the required information. Buildinfo is available in Yocto 1.8 and later versions. This image feature will write a set of OpenEmbedded variables to a file /etc/build in the image, which in turn gets written to the target device.<br />
<br />
To enable buildinfo, open conf/local.conf and append <br />
<br />
INHERIT += "image-buildinfo"<br />
IMAGE_BUILDINFO_VARS_append = " DATETIME DISTRO_NAME IMAGE_BASENAME MACHINE TUNE_PKGARCH" <br />
IMAGE_BUILDINFO_VARS_append = " MACHINE_FEATURES DISTRO_FEATURES COMMON_FEATURES IMAGE_FEATURES"<br />
IMAGE_BUILDINFO_VARS_append = " TUNE_FEATURES TARGET_FPU"<br />
<br />
Then build the desired image, e.g. with bitbake -k core-image-minimal.<br />
And run the image, e.g. with runqemu qemuarm nographic, and look at the file generated in /etc/build.<br />
<br />
A sample resulting /etc/build file is shown below.<br />
<br />
-----------------------<br />
Build Configuration: |<br />
-----------------------<br />
DISTRO = poky<br />
DISTRO_VERSION = 3.1.5<br />
DATETIME = 20210312175409<br />
DISTRO_NAME = Poky (Yocto Project Reference Distro)<br />
IMAGE_BASENAME = core-image-minimal<br />
MACHINE = qemuarm<br />
TUNE_PKGARCH = armv7vet2hf-neon<br />
MACHINE_FEATURES = alsa bluetooth usbgadget screen vfat rtc qemu-usermode<br />
DISTRO_FEATURES = acl alsa argp bluetooth ext2 ipv4 ipv6 largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 vfat largefile opengl ptest multiarch wayland vulkan pulseaudio sysvinit gobject-introspection-data ldconfig<br />
COMMON_FEATURES = <br />
IMAGE_FEATURES = debug-tweaks package-management ssh-server-openssh<br />
TUNE_FEATURES = arm armv7ve vfp thumb neon callconvention-hard<br />
TARGET_FPU = hard<br />
-----------------------<br />
Layer Revisions: |<br />
-----------------------<br />
meta = dunfell:dc38d5e494e53a7a03d5bd8d2429d0ef54cfbbbc <br />
meta-poky = dunfell:dc38d5e494e53a7a03d5bd8d2429d0ef54cfbbbc <br />
meta-yocto-bsp = dunfell:dc38d5e494e53a7a03d5bd8d2429d0ef54cfbbbc <br />
meta-oe = dunfell:de37512b25c1f8c6bb6ab2b3782ac0fe01443483</div>Koanhttps://wiki.koansoftware.com/index.php?title=Howto_build_a_kernel_module_out_of_the_kernel_tree&diff=312Howto build a kernel module out of the kernel tree2022-09-28T13:44:46Z<p>Koan: </p>
<hr />
<div>== Yocto recipe to build a kernel module out of the kernel tree ==<br />
<br />
While it is always preferable to work with sources integrated into the Linux kernel sources, if you need an external kernel module, you could start from this simple recipe based on [http://www.yoctoproject.org/docs/current/kernel-dev/kernel-dev.html#incorporating-out-of-tree-modules Yocto Project kernel Development Manual]. This GPL2 recipe is available as a template from which you can create your own out-of-tree Linux kernel module recipe.<br />
<br />
<br />
$ tree<br />
.<br />
├── files<br />
│ ├── COPYING<br />
│ ├── hellokernel.c<br />
│ └── Makefile<br />
└── kernmodule.bb<br />
<br />
<br />
<br />
''' COPYING '''<br />
<br />
Copy COPYING file into your files<br />
<br />
cp meta-skeleton/recipes-kernel/hello-mod/files/COPYING YOURPATH/kernmodule/files/<br />
<br />
<br />
<br />
'''kernmodule.bb'''<br />
<br />
#<br />
# Yocto recipe to build a kernel module out of the kernel tree<br />
# kernmodule.bb <br />
# Marco Cavallini - KOAN sas - www.koansoftware.com<br />
#<br />
<br />
DESCRIPTION = "Hello kernel module out of the kernel tree"<br />
SECTION = "examples"<br />
LICENSE = "GPLv2"<br />
LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e"<br />
PR = "r0"<br />
<br />
inherit module<br />
<br />
SRC_URI = "file://hellokernel.c \<br />
file://Makefile \<br />
file://COPYING \<br />
"<br />
<br />
S = "${WORKDIR}"<br />
<br />
'''Makefile'''<br />
<br />
obj-m += hellokernel.o<br />
SRC := $(shell pwd)<br />
<br />
all:<br />
$(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules<br />
<br />
modules_install:<br />
$(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install<br />
<br />
<br />
''' hellokernel.c '''<br />
<br />
/*<br />
* hello.c - The simplest and dirty kernel module<br />
*/<br />
<br />
#include <linux/module.h><br />
#include <linux/kernel.h><br />
<br />
int init_module(void)<br />
{<br />
printk(KERN_INFO "Hello world\n");<br />
<br />
return 0;<br />
}<br />
<br />
void cleanup_module(void)<br />
{<br />
printk(KERN_INFO "Goodbye world\n");<br />
}<br />
<br />
<br />
----<br />
<br />
<br />
== ISSUE : Custom kernel module QA Issue warnings during do_package task execution ==<br />
<br />
In case the module compiles with no errors, but a QA warning is thrown as shown below. <br />
<br />
The module does not successfully get installed into build images.<br />
<br />
WARNING: mymodule-1.0-r0 do_package: QA Issue: hellokernel: Files/directories were installed but not shipped in any package:<br />
/lib<br />
/lib/modules<br />
/lib/modules/5.4.209-yocto-standard<br />
/lib/modules/5.4.209-yocto-standard/extra<br />
<br />
<br />
To fix this issue, add below content to your custom kernel module recipe.<br />
<br />
FILES_${PN} += "${base_libdir}/modules/"</div>Koanhttps://wiki.koansoftware.com/index.php?title=Yocto_Project_what_I_wish_I%27d_known&diff=311Yocto Project what I wish I'd known2022-07-21T15:45:20Z<p>Koan: /* Yocto Project what I wish I'd known */</p>
<hr />
<div>== Yocto Project what I wish I'd known ==<br />
<br />
Using the Yocto Project is fairly easy, until something goes wrong. <br />
<br />
Without an understanding of how the build process works, you’ll find yourself trying to troubleshoot “a black box”. <br />
<br />
Here are a few items that new users wished they had known before embarking on their first build with Yocto Project. <br />
<br />
https://docs.yoctoproject.org/what-i-wish-id-known.html</div>Koanhttps://wiki.koansoftware.com/index.php?title=IMX6_definitive_GPIO_guide&diff=310IMX6 definitive GPIO guide2022-07-15T12:15:16Z<p>Koan: GPIO read and write</p>
<hr />
<div>=Mapping names to Numbers=<br />
GPIOs on the i.MX6 linux system are confusing, at best.<br />
<br />
There are several naming conventions at play.<br />
<br />
==Hardware Naming Convention==<br />
* Every ball on the physical i.MX6 chip has a "pad name" by Freescale.<br />
* Each ball has a unique alphanumeric identifier which maps it to a location in the BGA.<br />
* Each pad has a "canonical name". This is the name that is shown on the schematic symbol inside the part, next to the pin and pin number. It has no essential connection to the function's actual signal mapping.<br />
* The schematics assign a "net name" to the functional wire connected to the pad. This attempts to be a description of what the wire is actually used for and doesn't attempt to reconcile against the pad name in any way. <br />
<br />
There is a strict 1:1:1 mapping of balls to canonical names to net names. For example:<br />
<br />
* Ball C20 <-> Pad SD1_DAT1 <-> Net FPGA_EXP_ON (FPGA expansion power on)<br />
* Ball R6 <-> Pad GPIO_4 <-> Net SD2_CD (SD slot 2 card detect)<br />
* Ball R20 <-> Pad DISP0_DAT13 <-> Net FPGA_RESET_N (FPGA reset, active low)<br />
<br />
==User manual/register map naming Convention==<br />
Unlike hardware names, pad names are re-used, and every pad has up to 8 potential actual functions.<br />
<br />
The selection of these signal mappings is controlled by a pad/group register, whose name is derived from the canonical pad name. This is a bit confusing, because for example, a pad named SD1_DAT1 has a pad mux register named IOMUXC_SW_*MUX*_CTL_PAD_SD1_DATA1 (asterisk for emphasis only), and it's responsible for configuring SD1_DATA1, ECSPI5_SS0, PWM3_OUT, GPT_CAPTURE2, and GPIO1_IO17 function multiplexing to the SD1_DAT1 pad.<br />
<br />
There's also IOMUXC_SW_*PAD*_CTL_PAD_SD1_DATA1 that's responsible for configuring the physical drive characteristic of the pad, which could, again, be mapped to any of the 5 functions. <br />
<br />
Again, you can have up to 8 functions per pad, and importantly, it's not always the case that a pad's default function matches its canonical name.<br />
<br />
Almost every pad has a GPIO function, and GPIO functions are internally tracked by a "bank/bit" convention. There are 7 banks of GPIOs with up to 32 bits each, and as is quite typical of hardware naming conventions, the index is 1-based, not 0 based; but the register addresses are all 0-based, requiring you to subtract 1 from the name.<br />
<br />
==Linux Userspace Naming Convention==<br />
* Almost every pad has, as one of its 8 possible functions, a GPIO role.<br />
* Linux uses a single integer to enumerate all pads, therefore Freescale's bank/bit notation for GPIOs must be mapped.<br />
* The bank/bit to Linux userspace formula is:<br />
<br />
linux gpio number = (gpio_bank - 1) * 32 + gpio_bit<br />
<br />
So, GPIO1_IO17 maps to (1 - 1) * 32 + 17 = 17. <br />
<br />
A more complex example is DISP0_DAT13. It maps to GPIO5_IO07, so its userspace number is (5 - 1) * 32 + 7 = 135.<br />
<br />
Thus, the algorithm to go from a schematic pin to a Linux userspace number is as follows:<br />
<br />
# Find the function on the schematic (e.g. PCIE_PWRON)<br />
# Trace it to the pad on a CPU. Note the canonical name (e.g. GPIO_17)<br />
# Look the canonical name up in table 28-4 of the reference manual to resolve the GPIO bit/bank notation (e.g., GPIO_17 = GPIO7_IO12), or search for the pad name in the table on this page (derived from the i.MX6Q Reference Manual Rev 1 4/2013).<br />
# Apply the translation formula: (7 - 1) * 32 + 12 = linux userspace gpio204<br />
<br />
Note in the above example, the "pad name" GPIO_17 had *nothing* to do with the actual GPIO bit/bank notation. So don't let the names fool you. Think of pad names as unique strings with no inherent meaning, and your life will be easier.<br />
<br />
==Linux Device Tree Naming Convention==<br />
There's another place where you might want to call out a GPIO: the device tree. <br />
<br />
Novena's device tree entry would be found in arch/arm/boot/dts/imx6q-novena.dts.<br />
<br />
When referring to a GPIO in a device tree node, you use the bit/bank mapping scheme. For example, AUD_PWRON (schematic net name) maps to DISP0_DAT23 (i.MX6Q pad name). This maps to GPIO5_IO17 (per lookup in table below), and therefore the device tree entry for this is <br />
<br />
power-gpio = <&gpio5 17 0><br />
<br />
The third field is for gpio polarity (0 = active high, 1 = active low). In the context of an interrupt, the third field specifies the polarity of the edge trigger, see Documentation/devicetree/bindings/gpio/fsl-imx-gpio.txt <br />
<br />
Sometimes you have to "hog" a pin in the device tree. To do that, look for the node iomuxc, in the pinctrl_hog:hoggrp. Here, you have to use a series of names and numbers that you look up in the pin control file. <br />
<br />
Easiest way I've found is to start by searching the bank/bit name in the file, whose name is "imx6q-pinfuc.h". Note the format for the name is "GPIOn_IOmm" (I always forget the IO before the bit name). <br />
<br />
Searching the canonical pad name is confusing because the pad name is re-used up to 8 times, and it doesn't sufficiently disambiguate the function.<br />
<br />
MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x80000000<br />
<br />
According to Documentation/devicetree/bindings/pinctrl/fsl,imx6q-pinctrl.txt that number to the right of the hog spec can be used to set up things like pull-ups, pull-downs, keepers, drive strength, etc. The value 0x80000000 is special and means "I don't know and don't change from the default". Otherwise, it's set according to the following chart (basically the bitfields of the IOMUXC lower 17 bits):<br />
<pre><br />
PAD_CTL_HYS (1 << 16)<br />
PAD_CTL_PUS_100K_DOWN (0 << 14)<br />
PAD_CTL_PUS_47K_UP (1 << 14)<br />
PAD_CTL_PUS_100K_UP (2 << 14)<br />
PAD_CTL_PUS_22K_UP (3 << 14)<br />
PAD_CTL_PUE (1 << 13)<br />
PAD_CTL_PKE (1 << 12)<br />
PAD_CTL_ODE (1 << 11)<br />
PAD_CTL_SPEED_LOW (1 << 6)<br />
PAD_CTL_SPEED_MED (2 << 6)<br />
PAD_CTL_SPEED_HIGH (3 << 6)<br />
PAD_CTL_DSE_DISABLE (0 << 3)<br />
PAD_CTL_DSE_240ohm (1 << 3)<br />
PAD_CTL_DSE_120ohm (2 << 3)<br />
PAD_CTL_DSE_80ohm (3 << 3)<br />
PAD_CTL_DSE_60ohm (4 << 3)<br />
PAD_CTL_DSE_48ohm (5 << 3)<br />
PAD_CTL_DSE_40ohm (6 << 3)<br />
PAD_CTL_DSE_34ohm (7 << 3)<br />
PAD_CTL_SRE_FAST (1 << 0)<br />
PAD_CTL_SRE_SLOW (0 << 0)<br />
</pre><br />
<br />
Pro tip: don't use a value of 0, it doesn't work.<br />
<br />
==Using Sysfsgpio on Linux==<br />
<br />
As an example, we'll use the controllable 5V power source.<br />
<br />
The Device Tree lists it as gpio3,19:<br />
<br />
gpios = <&gpio3 19 GPIO_ACTIVE_HIGH><br />
<br />
To get the Linux GPIO number, use the formula above: (bank - 1 * 32) + pin:<br />
<br />
(3-1 * 32) + 19 = 83<br />
<br />
Therefore, the 5v (fan)source is GPIO 83.<br />
<br />
Expose the GPIO to userspace:<br />
<br />
echo 83 > /sys/class/gpio/export<br />
<br />
Make it an output:<br />
<br />
echo out > /sys/class/gpio/gpio83/direction<br />
<br />
And set it high:<br />
<br />
echo 1 > /sys/class/gpio/gpio83/value<br />
<br />
=i.MX6Q GPIO bit/bank to Pad name Table=<br />
This table should *only* be used for the i.MX6Q. If you're mapping a Dual-Lite variant, please refer to the user manual (which you can download from the Freescale website). <br />
<br />
<pre><br />
GPIO1_IO00 - GPIO_0<br />
GPIO1_IO01 - GPIO_1<br />
GPIO1_IO02 - GPIO_2<br />
GPIO1_IO03 - GPIO_3<br />
GPIO1_IO04 - GPIO_4<br />
GPIO1_IO05 - GPIO_5<br />
GPIO1_IO06 - GPIO_6<br />
GPIO1_IO07 - GPIO_7<br />
GPIO1_IO08 - GPIO_8<br />
GPIO1_IO09 - GPIO_9<br />
GPIO1_IO10 - SD2_CLK<br />
GPIO1_IO11 - SD2_CMD<br />
GPIO1_IO12 - SD2_DAT3<br />
GPIO1_IO13 - SD2_DAT2<br />
GPIO1_IO14 - SD2_DAT1<br />
GPIO1_IO15 - SD2_DAT0<br />
GPIO1_IO16 - SD1_DAT0<br />
GPIO1_IO17 - SD1_DAT1<br />
GPIO1_IO18 - SD1_CMD<br />
GPIO1_IO19 - SD1_DAT2<br />
GPIO1_IO20 - SD1_CLK<br />
GPIO1_IO21 - SD1_DAT3<br />
GPIO1_IO22 - ENET_MDIO<br />
GPIO1_IO23 - ENET_REF_CLK<br />
GPIO1_IO24 - ENET_RX_ER<br />
GPIO1_IO25 - ENET_CRS_DV<br />
GPIO1_IO26 - ENET_RXD1<br />
GPIO1_IO27 - ENET_RXD0<br />
GPIO1_IO28 - ENET_TX_EN<br />
GPIO1_IO29 - ENET_TXD1<br />
GPIO1_IO30 - ENET_TXD0<br />
GPIO1_IO31 - ENET_MDC<br />
GPIO2_IO00 - NANDF_D0<br />
GPIO2_IO01 - NANDF_D1<br />
GPIO2_IO02 - NANDF_D2<br />
GPIO2_IO03 - NANDF_D3<br />
GPIO2_IO04 - NANDF_D4<br />
GPIO2_IO05 - NANDF_D5<br />
GPIO2_IO06 - NANDF_D6<br />
GPIO2_IO07 - NANDF_D7<br />
GPIO2_IO08 - SD4_DAT0<br />
GPIO2_IO09 - SD4_DAT1<br />
GPIO2_IO10 - SD4_DAT2<br />
GPIO2_IO11 - SD4_DAT3<br />
GPIO2_IO12 - SD4_DAT4<br />
GPIO2_IO13 - SD4_DAT5<br />
GPIO2_IO14 - SD4_DAT6<br />
GPIO2_IO15 - SD4_DAT7<br />
GPIO2_IO16 - EIM_A22<br />
GPIO2_IO17 - EIM_A21<br />
GPIO2_IO18 - EIM_A20<br />
GPIO2_IO19 - EIM_A19<br />
GPIO2_IO20 - EIM_A18<br />
GPIO2_IO21 - EIM_A17<br />
GPIO2_IO22 - EIM_A16<br />
GPIO2_IO23 - EIM_CS0<br />
GPIO2_IO24 - EIM_CS1<br />
GPIO2_IO25 - EIM_OE<br />
GPIO2_IO26 - EIM_RW<br />
GPIO2_IO27 - EIM_LBA<br />
GPIO2_IO28 - EIM_EB0<br />
GPIO2_IO29 - EIM_EB1<br />
GPIO2_IO30 - EIM_EB2<br />
GPIO2_IO31 - EIM_EB3<br />
GPIO3_IO00 - EIM_DA0<br />
GPIO3_IO01 - EIM_DA1<br />
GPIO3_IO02 - EIM_DA2<br />
GPIO3_IO03 - EIM_DA3<br />
GPIO3_IO04 - EIM_DA4<br />
GPIO3_IO05 - EIM_DA5<br />
GPIO3_IO06 - EIM_DA6<br />
GPIO3_IO07 - EIM_DA7<br />
GPIO3_IO08 - EIM_DA8<br />
GPIO3_IO09 - EIM_DA9<br />
GPIO3_IO10 - EIM_DA10<br />
GPIO3_IO11 - EIM_DA11<br />
GPIO3_IO12 - EIM_DA12<br />
GPIO3_IO13 - EIM_DA13<br />
GPIO3_IO14 - EIM_DA14<br />
GPIO3_IO15 - EIM_DA15<br />
GPIO3_IO16 - EIM_D16<br />
GPIO3_IO17 - EIM_D17<br />
GPIO3_IO18 - EIM_D18<br />
GPIO3_IO19 - EIM_D19<br />
GPIO3_IO20 - EIM_D20<br />
GPIO3_IO21 - EIM_D21<br />
GPIO3_IO22 - EIM_D22<br />
GPIO3_IO23 - EIM_D23<br />
GPIO3_IO24 - EIM_D24<br />
GPIO3_IO25 - EIM_D25<br />
GPIO3_IO26 - EIM_D26<br />
GPIO3_IO27 - EIM_D27<br />
GPIO3_IO28 - EIM_D28<br />
GPIO3_IO29 - EIM_D29<br />
GPIO3_IO30 - EIM_D30<br />
GPIO3_IO31 - EIM_D31<br />
GPIO4_IO05 - GPIO_19<br />
GPIO4_IO06 - KEY_COL0<br />
GPIO4_IO07 - KEY_ROW0<br />
GPIO4_IO08 - KEY_COL1<br />
GPIO4_IO09 - KEY_ROW1<br />
GPIO4_IO10 - KEY_COL2<br />
GPIO4_IO11 - KEY_ROW2<br />
GPIO4_IO12 - KEY_COL3<br />
GPIO4_IO13 - KEY_ROW3<br />
GPIO4_IO14 - KEY_COL4<br />
GPIO4_IO15 - KEY_ROW4<br />
GPIO4_IO16 - DI0_DISP_CLK<br />
GPIO4_IO17 - DI0_PIN15<br />
GPIO4_IO18 - DI0_PIN2<br />
GPIO4_IO19 - DI0_PIN3<br />
GPIO4_IO20 - DI0_PIN4<br />
GPIO4_IO21 - DISP0_DAT0<br />
GPIO4_IO22 - DISP0_DAT1<br />
GPIO4_IO23 - DISP0_DAT2<br />
GPIO4_IO24 - DISP0_DAT3<br />
GPIO4_IO25 - DISP0_DAT4<br />
GPIO4_IO26 - DISP0_DAT5<br />
GPIO4_IO27 - DISP0_DAT6<br />
GPIO4_IO28 - DISP0_DAT7<br />
GPIO4_IO29 - DISP0_DAT8<br />
GPIO4_IO30 - DISP0_DAT9<br />
GPIO4_IO31 - DISP0_DAT10<br />
GPIO5_IO00 - EIM_WAIT<br />
GPIO5_IO02 - EIM_A25<br />
GPIO5_IO04 - EIM_A24<br />
GPIO5_IO05 - DISP0_DAT11<br />
GPIO5_IO06 - DISP0_DAT12<br />
GPIO5_IO07 - DISP0_DAT13<br />
GPIO5_IO08 - DISP0_DAT14<br />
GPIO5_IO09 - DISP0_DAT15<br />
GPIO5_IO10 - DISP0_DAT16<br />
GPIO5_IO11 - DISP0_DAT17<br />
GPIO5_IO12 - DISP0_DAT18<br />
GPIO5_IO13 - DISP0_DAT19<br />
GPIO5_IO14 - DISP0_DAT20<br />
GPIO5_IO15 - DISP0_DAT21<br />
GPIO5_IO16 - DISP0_DAT22<br />
GPIO5_IO17 - DISP0_DAT23<br />
GPIO5_IO18 - CSI0_PIXCLK<br />
GPIO5_IO19 - CSI0_MCLK<br />
GPIO5_IO20 - CSI0_DATA_EN<br />
GPIO5_IO21 - CSI0_VSYNC<br />
GPIO5_IO22 - CSI0_DAT4<br />
GPIO5_IO23 - CSI0_DAT5<br />
GPIO5_IO24 - CSI0_DAT6<br />
GPIO5_IO25 - CSI0_DAT7<br />
GPIO5_IO26 - CSI0_DAT8<br />
GPIO5_IO27 - CSI0_DAT9<br />
GPIO5_IO28 - CSI0_DAT10<br />
GPIO5_IO29 - CSI0_DAT11<br />
GPIO5_IO30 - CSI0_DAT12<br />
GPIO5_IO31 - CSI0_DAT13<br />
GPIO6_IO00 - CSI0_DAT14<br />
GPIO6_IO01 - CSI0_DAT15<br />
GPIO6_IO02 - CSI0_DAT16<br />
GPIO6_IO03 - CSI0_DAT17<br />
GPIO6_IO04 - CSI0_DAT18<br />
GPIO6_IO05 - CSI0_DAT19<br />
GPIO6_IO06 - EIM_A23<br />
GPIO6_IO07 - NANDF_CLE<br />
GPIO6_IO08 - NANDF_ALE<br />
GPIO6_IO09 - NANDF_WP_B<br />
GPIO6_IO10 - NANDF_RB0<br />
GPIO6_IO11 - NANDF_CS0<br />
GPIO6_IO14 - NANDF_CS1<br />
GPIO6_IO15 - NANDF_CS2<br />
GPIO6_IO16 - NANDF_CS3<br />
GPIO6_IO17 - SD3_DAT7<br />
GPIO6_IO18 - SD3_DAT6<br />
GPIO6_IO19 - RGMII_TXC<br />
GPIO6_IO20 - RGMII_TD0<br />
GPIO6_IO21 - RGMII_TD1<br />
GPIO6_IO22 - RGMII_TD2<br />
GPIO6_IO23 - RGMII_TD3<br />
GPIO6_IO24 - RGMII_RX_CTL<br />
GPIO6_IO25 - RGMII_RD0<br />
GPIO6_IO26 - RGMII_TX_CTL<br />
GPIO6_IO27 - RGMII_RD1<br />
GPIO6_IO28 - RGMII_RD2<br />
GPIO6_IO29 - RGMII_RD3<br />
GPIO6_IO30 - RGMII_RXC<br />
GPIO6_IO31 - EIM_BCLK<br />
GPIO7_IO00 - SD3_DAT5<br />
GPIO7_IO01 - SD3_DAT4<br />
GPIO7_IO02 - SD3_CMD<br />
GPIO7_IO03 - SD3_CLK<br />
GPIO7_IO04 - SD3_DAT0<br />
GPIO7_IO05 - SD3_DAT1<br />
GPIO7_IO06 - SD3_DAT2<br />
GPIO7_IO07 - SD3_DAT3<br />
GPIO7_IO08 - SD3_RST<br />
GPIO7_IO09 - SD4_CMD<br />
GPIO7_IO10 - SD4_CLK<br />
GPIO7_IO11 - GPIO_16<br />
GPIO7_IO12 - GPIO_17<br />
GPIO7_IO13 - GPIO_18<br />
</pre><br />
<br />
''Credits : Sutajio Ko-Usagi's wiki''<br />
<br />
<br />
==GPIO read and write==<br />
<br />
<br />
A very frequent misunderstanding when using GPIOs is that sometimes you could pretend to read the state of an output.<br />
<br />
In a sentence : '''Is not possible to read the state of an output'''.<br />
<br />
'''An output can be only written, and an input can be only read'''. <br />
<br />
For example let's consider the [https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i-mx-applications-processors/i-mx-6-processors/i-mx-6ull-single-core-processor-with-arm-cortex-a7-core:i.MX6ULL i.MX 6ULL Applications Processor Reference Manual]<br />
<br />
In chapter 28.4.1 "GPIO Function"<br />
<br />
A GPIO signal can operate as a general-purpose input/output when the IOMUX is set to GPIO mode. Each GPIO signal may be independently configured as either an input or an output using the GPIO direction register (GPIO_GDIR).<br />
When configured as an output (GPIO_GDIR bit = 1), the value in the data bit in the GPIO data register (GPIO_DR) is driven on the corresponding GPIO line. When a signal is configured as an input (GPIO_GDIR bit = 0), the state of the input can be read from the corresponding GPIO_PSR bit.</div>Koanhttps://wiki.koansoftware.com/index.php?title=Override_syntax_change_from_Yocto_honister_3.4&diff=309Override syntax change from Yocto honister 3.42022-02-18T08:53:06Z<p>Koan: Created page with "== Override syntax change from Yocto honister 3.4 == The Yocto 3.4 release (fall 2021), also codenamed “Honister” introduces a '''disruptive change''' in the override syn..."</p>
<hr />
<div>== Override syntax change from Yocto honister 3.4 ==<br />
<br />
The Yocto 3.4 release (fall 2021), also codenamed “Honister” introduces a '''disruptive change''' in the override syntax.<br />
<br />
In this release, the ':' character replaces the use of '_' to refer to an override, most commonly when making a conditional assignment of a variable.<br />
<br />
This means that an entry like:<br />
<br />
SRC_URI_qemux86 = "file://somefile"<br />
<br />
now becomes:<br />
<br />
SRC_URI:qemux86 = "file://somefile"<br />
<br />
Since qemux86 is an override, this applies to any use of override syntax, so the following:<br />
<br />
SRC_URI_append = " file://somefile"<br />
SRC_URI_append_qemux86 = " file://somefile2"<br />
SRC_URI_remove_qemux86-64 = " file://somefile3"<br />
SRC_URI_prepend_qemuarm = "file://somefile4 "<br />
FILES_${PN}-ptest = "${bindir}/xyz"<br />
IMAGE_CMD_tar = "tar"<br />
BASE_LIB_tune-cortexa76 = "lib"<br />
SRCREV_pn-bash = "abc"<br />
BB_TASK_NICE_LEVEL_task-testimage = '0'<br />
<br />
would now become:<br />
<br />
SRC_URI:append = " file://somefile"<br />
SRC_URI:append:qemux86 = " file://somefile2"<br />
SRC_URI:remove:qemux86-64 = " file://somefile3"<br />
SRC_URI:prepend:qemuarm = "file://somefile4 "<br />
FILES:${PN}-ptest = "${bindir}/xyz"<br />
IMAGE_CMD:tar = "tar"<br />
BASE_LIB:tune-cortexa76 = "lib"<br />
SRCREV:pn-bash = "abc"<br />
BB_TASK_NICE_LEVEL:task-testimage = '0'<br />
<br />
This also applies to variable queries to the datastore, for example using '''getVar''' and similar so '''d.getVar("RDEPENDS_${PN}")''' becomes '''d.getVar("RDEPENDS:${PN}")'''.<br />
<br />
Further details are available in the [https://docs.yoctoproject.org/migration-guides/migration-3.4.html#override-syntax-changes Yocto Project migration guide]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=308Main Page2022-02-18T08:47:26Z<p>Koan: /* Yocto Project */</p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
* [[Upgrade to Yocto honister 3.4]]<br />
* [[Override syntax change from Yocto honister 3.4]]<br />
* [[Modify the linux kernel with configuration fragments in Yocto]]<br />
<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Modify_the_linux_kernel_with_configuration_fragments_in_Yocto&diff=307Modify the linux kernel with configuration fragments in Yocto2021-12-20T10:13:35Z<p>Koan: </p>
<hr />
<div>== Modify the linux kernel with configuration fragments in Yocto ==<br />
<br />
Modifying the kernel configuration in Yocto may be different depending on the original conditions.<br />
<br />
In general would be convenient to adopt '''configuration fragments''' that can be generated directly with the<br />
bitbake command executing the following steps:<br />
<br />
1. Prepare for the kernel configuration (take a snapshot)<br />
<br />
bitbake -c kernel_configme virtual/kernel<br />
<br />
2. Edit the configuration (do your modifications)<br />
<br />
bitbake -c menuconfig virtual/kernel<br />
<br />
3. Save the configuration differences (extract the differences)<br />
<br />
bitbake -c diffconfig virtual/kernel<br />
<br />
The differences will be saved in '''$WORKDIR/fragment.cfg'''<br />
<br />
You have to copy the '''$WORKDIR/fragment.cfg''' in your layer directory and in the recipe (bbappend) as in the example below.<br />
<br />
<br />
----<br />
<br />
'''Examples'''<br />
<br />
This is an example of the files involved in this operation<br />
<br />
meta-training<br />
└── recipes-kernel<br />
└── linux<br />
├── linux-intel<br />
│ └── koan-modified-configuration.cfg<br />
└── linux-intel_%.bbappend<br />
<br />
<br />
Content of '''linux-intel_%.bbappend'''<br />
<br />
FILESEXTRAPATHS_prepend := "${THISDIR}/linux-intel:"<br />
SRC_URI += "file://koan-modified-configuration.cfg"<br />
<br />
<br />
Content of '''linux-intel/koan-modified-configuration.cfg'''<br />
<br />
CONFIG_SOUND=y<br />
# CONFIG_USB_AUDIO is not set<br />
# CONFIG_USB_MIDI_GADGET is not set<br />
<br />
<br />
----<br />
<br />
''Note: After integrating configuration fragments into the appended recipe, you can check everything is fine by running.''<br />
<br />
bitbake -c kernel_configcheck -f virtual/kernel<br />
<br />
''However this is automatically called by bitbake when rebuilding the kernel.''<br />
<br />
<br />
----<br />
<br />
''NOTE''<br />
<br />
In case you are courious...<br />
<br />
Where do you find the .config file after having run '''bitbake -c menuconfig virtual/kernel''' ?<br />
<br />
tmp/work-shared/YOURKERNELNAME/kernel-build-artifacts</div>Koanhttps://wiki.koansoftware.com/index.php?title=Modify_the_linux_kernel_with_configuration_fragments_in_Yocto&diff=306Modify the linux kernel with configuration fragments in Yocto2021-12-20T09:10:21Z<p>Koan: </p>
<hr />
<div>== Modify the linux kernel with configuration fragments in Yocto ==<br />
<br />
Modifying the kernel configuration in Yocto may be different depending on the original conditions.<br />
<br />
In general would be convenient to adopt '''configuration fragments''' that can be generated directly with the<br />
bitbake command executing the following steps:<br />
<br />
1. Prepare for the kernel configuration (take a snapshot)<br />
<br />
bitbake -c kernel_configme virtual/kernel<br />
<br />
2. Edit the configuration (do your modifications)<br />
<br />
bitbake -c menuconfig virtual/kernel<br />
<br />
3. Save the configuration differences (extract the differences)<br />
<br />
bitbake -c diffconfig virtual/kernel<br />
<br />
The differences will be saved in '''$WORKDIR/fragment.cfg'''<br />
<br />
You have to copy the '''$WORKDIR/fragment.cfg''' in your layer directory and in the recipe (bbappend) as in the example below.<br />
<br />
<br />
----<br />
<br />
'''Examples'''<br />
<br />
This is an example of the files involved in this operation<br />
<br />
meta-training<br />
└── recipes-kernel<br />
└── linux<br />
├── linux-intel<br />
│ └── koan-modified-configuration.cfg<br />
└── linux-intel_%.bbappend<br />
<br />
<br />
Content of '''linux-intel_%.bbappend'''<br />
<br />
FILESEXTRAPATHS_prepend := "${THISDIR}/linux-intel:"<br />
SRC_URI += "koan-modified-configuration.cfg"<br />
<br />
<br />
Content of '''linux-intel/koan-modified-configuration.cfg'''<br />
<br />
CONFIG_SOUND=y<br />
# CONFIG_USB_AUDIO is not set<br />
# CONFIG_USB_MIDI_GADGET is not set<br />
<br />
<br />
----<br />
<br />
''Note: After integrating configuration fragments into the appended recipe, you can check everything is fine by running.''<br />
<br />
bitbake -c kernel_configcheck -f virtual/kernel<br />
<br />
''However this is automatically called by bitbake when rebuilding the kernel.''<br />
<br />
<br />
----<br />
<br />
''NOTE''<br />
<br />
In case you are courious...<br />
<br />
Where do you find the .config file after having run '''bitbake -c menuconfig virtual/kernel''' ?<br />
<br />
tmp/work-shared/YOURKERNELNAME/kernel-build-artifacts</div>Koanhttps://wiki.koansoftware.com/index.php?title=Modify_the_linux_kernel_with_configuration_fragments_in_Yocto&diff=305Modify the linux kernel with configuration fragments in Yocto2021-12-07T15:53:02Z<p>Koan: Created page with "== Modify the linux kernel with configuration fragments in Yocto == Modifying the kernel configuration in Yocto may be different depending on the original conditions. In gen..."</p>
<hr />
<div>== Modify the linux kernel with configuration fragments in Yocto ==<br />
<br />
Modifying the kernel configuration in Yocto may be different depending on the original conditions.<br />
<br />
In general would be convenient to adopt '''configuration fragments''' that can be generated directly with the<br />
bitbake command executing the following steps:<br />
<br />
1. Prepare for the kernel configuration (take a snapshot)<br />
<br />
bitbake -c kernel_configme virtual/kernel<br />
<br />
2. Edit the configuration (do your modifications)<br />
<br />
bitbake -c menuconfig virtual/kernel<br />
<br />
3. Save the configuration differences (extract the differences)<br />
<br />
bitbake -c diffconfig virtual/kernel<br />
<br />
The differences will be saved in '''$WORKDIR/fragment.cfg'''<br />
<br />
You have to copy the '''$WORKDIR/fragment.cfg''' in your layer directory and in the recipe (bbappend) as in the example below.<br />
<br />
<br />
----<br />
<br />
'''Examples'''<br />
<br />
This is an example of the files involved in this operation<br />
<br />
meta-training<br />
└── recipes-kernel<br />
└── linux<br />
├── linux-intel<br />
│ └── koan-modified-configuration.cfg<br />
└── linux-intel_%.bbappend<br />
<br />
<br />
Content of '''linux-intel_%.bbappend'''<br />
<br />
FILESEXTRAPATHS_prepend := "${THISDIR}/linux-intel:"<br />
SRC_URI += "koan-modified-configuration.cfg"<br />
<br />
<br />
Content of '''linux-intel/koan-modified-configuration.cfg'''<br />
<br />
CONFIG_SOUND=y<br />
# CONFIG_USB_AUDIO is not set<br />
# CONFIG_USB_MIDI_GADGET is not set<br />
<br />
<br />
----<br />
<br />
''Note: After integrating configuration fragments into the appended recipe, you can check everything is fine by running.''<br />
<br />
bitbake -c kernel_configcheck -f virtual/kernel<br />
<br />
''However this is automatically called by bitbake when rebuilding the kernel.''</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=304Main Page2021-12-07T15:52:40Z<p>Koan: /* Yocto Project */</p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
* [[Upgrade to Yocto honister 3.4]]<br />
* [[Modify the linux kernel with configuration fragments in Yocto]]<br />
<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=303Main Page2021-10-19T11:49:59Z<p>Koan: </p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
* [[Upgrade to Yocto honister 3.4]]<br />
<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Upgrade_to_Yocto_honister_3.4&diff=302Upgrade to Yocto honister 3.42021-10-19T11:49:38Z<p>Koan: </p>
<hr />
<div>== Upgrade to Yocto honister 3.4 ==<br />
<br />
The Yocto 3.4 release (fall 2021), also codenamed “Honister” introduces a couple of breaking changes, mostly related to the syntax. <br />
You can take a look at the official [https://docs.yoctoproject.org/next/migration-guides/migration-3.4.html migration guide].<br />
<br />
The following errors and fixes have appeared while attempting to update a meta-layer to the current release.<br />
<br />
<br />
Error message:<br />
<br />
ERROR: The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:<br />
lz4c pzstd zstd<br />
<br />
Explanation: The list of build-host prerequisites has changed, so you must install the missing packages, prefferably using the distribution’s package manager. <br />
In my case, I’m using Ubuntu 18.04 LTS.<br />
<br />
Fix for Ubuntu Bionic or older:<br />
<br />
sudo apt-get install zstd liblz4-tool<br />
<br />
Fix for Ubuntu Focal or newer:<br />
<br />
sudo apt-get install zstd lz4<br />
<br />
<br />
----<br />
<br />
See also [https://low-level.wiki/yocto/honister-upgrade.html this guide]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Upgrade_to_Yocto_honister_3.4&diff=301Upgrade to Yocto honister 3.42021-10-19T06:58:28Z<p>Koan: Created page with "== Upgrade to Yocto honister 3.4 == The Yocto 3.4 release (fall 2021), also codenamed “Honister” introduces a couple of breaking changes, mostly related to the syntax. Y..."</p>
<hr />
<div>== Upgrade to Yocto honister 3.4 ==<br />
<br />
The Yocto 3.4 release (fall 2021), also codenamed “Honister” introduces a couple of breaking changes, mostly related to the syntax. <br />
You can take a look at the official [https://docs.yoctoproject.org/next/migration-guides/migration-3.4.html migration guide].<br />
<br />
The following errors and fixes have appeared while attempting to update a meta-layer to the current release.<br />
<br />
<br />
Error message:<br />
<br />
ERROR: The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:<br />
lz4c pzstd zstd<br />
<br />
Explanation: The list of build-host prerequisites has changed, so you must install the missing packages, prefferably using the distribution’s package manager. <br />
In my case, I’m using Ubuntu 18.04 LTS.<br />
<br />
Fix for Ubuntu Bionic or older:<br />
<br />
sudo apt-get install zstd liblz4-tool<br />
<br />
Fix for Ubuntu Focal or newer:<br />
<br />
sudo apt-get install zstd lz4</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=300Main Page2021-10-19T06:55:40Z<p>Koan: /* Yocto Project */</p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
* [[Upgrade to Yocto honister 3.4]]<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Yocto_sstate_usage_summary_to_the_build&diff=299Yocto sstate usage summary to the build2021-09-22T16:29:26Z<p>Koan: Created page with "== Yocto usage Sstate summary to the build == When building in Yocto Project the user has indication of how much sstate was already present or that would be used by the build..."</p>
<hr />
<div>== Yocto usage Sstate summary to the build ==<br />
<br />
When building in Yocto Project the user has indication of how much sstate was already present<br />
or that would be used by the build thanks to the '''Sstate summary''' message.<br />
<br />
Sstate summary: Wanted 11 Found 11 Missed 0 Current 188 (100% match, 100% complete)<br />
<br />
<br />
<br />
'''Wanted''' is the number of artefacts the build ideally wants from sstate<br />
<br />
'''Found''' is the number of artefacts present in sstate locally or it thinks<br />
are fetchable from any mirrors<br />
<br />
'''Missed''' = Wanted - Found<br />
<br />
'''Current''' is the number of stamps which bitbake viewed as "current", i.e.<br />
it needed to do nothing. Since they're current, it wouldn't bother<br />
querying sstate or considering them any further.<br />
<br />
'''"% match"''' tells you how much of the sstate queried, matched<br />
<br />
'''"% complete"''' tells you how much of the build is already current or<br />
completed<br />
<br />
The reason the current/complete numbers are there are because a build<br />
directory where a build has already partly completed could show a "0%<br />
match" against sstate but its not immediately clear that things which<br />
have already run are never checked for in sstate. A build which was 90%<br />
complete would likely have a high "% match" for a fresh tmpdir so this<br />
was added to try and give people a real idea of how much work remains<br />
in a given build "up front" when you start the build.<br />
<br />
The information is available in the [https://www.yoctoproject.org/docs/current/overview-manual/overview-manual.html#shared-state-cache official manual]<br />
<br />
''Thanks to Richard Purdie for [https://www.openembedded.org/pipermail/openembedded-core/2018-August/272296.html clarifying that].''</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=298Main Page2021-09-22T16:21:50Z<p>Koan: /* Yocto Project */</p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
* [[Yocto sstate usage summary to the build]]<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koanhttps://wiki.koansoftware.com/index.php?title=Main_Page&diff=297Main Page2021-09-09T10:03:34Z<p>Koan: /* DISCLAIMER */</p>
<hr />
<div>Welcome on [https://koansoftware.com Koan Software] official wiki<br />
<br />
== DISCLAIMER ==<br />
<br />
'''KoanSoftware(R) and KaeilOS(R) are registered trademarks of KOAN sas - Bergamo, ITALY <br />
<br />
All contents of this website are released under the [http://creativecommons.org/licenses/by-sa/3.0/deed.en_US Creative Commons Attribution-ShareAlike 3.0 Unported License]'''<br><br />
<br><br />
<br />
== KOAN Embedded Software Engineering == <br />
<br />
[https://koansoftware.com KOAN] is an Italian software house, specialized in embedded and real time Linux software solutions on RISC platforms of the ARM family (Raspberry, Atmel, Freescale, NXP). Founded on 1996 from diversified experiences, is a supplier of embedded software systems for industrial automation, telecommunications, automotive, mechatronics and aerospace.<br />
<br />
== What is this wiki? == <br />
This is a collection of useful notes about Yocto Project and OpenEmbedded, GNU/Linux distributions aimed for embedded devices developed.<br />
<br />
<br />
== Problem solving - Howto ==<br />
* [[FAQ]]<br />
* [[Setup NFS root filesystem]]<br />
* [[Setup an external toolchain with Yocto]]<br />
* [[Fixing Perl Locale Errors in a Clean Ubuntu Install]]<br />
* [[Using VMware Player to run Linux training]]<br />
<br />
<br />
== Openembedded Core ==<br />
* [[Submit patches to Openembedded]] <br />
* [http://openembedded.org/wiki/Commit_Patch_Message_Guidelines Commit Patch Message Guidelines]<br />
* [[OE-Core Standalone Setup]]<br />
<br />
<br />
== Openembedded Debugging ==<br />
* [[Openembedded debugging]]<br />
* [[Packages information list]]<br />
<br />
<br />
== Yocto Project ==<br />
* [[Yocto Project my own quick start]] <br />
* [[Yocto versus Poky versus Angstrom]]<br />
* [http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html Yocto Project reference Manual]<br />
* [http://git.yoctoproject.org/ Yocto source Repositories]<br />
* [http://layers.openembedded.org OpenEmbedded layers index]<br />
* [https://wiki.yoctoproject.org/wiki/Releases Yocto version releases]<br />
* [http://www.openembedded.org/wiki/Migrating_metadata_to_OE-Core Migrating metadata to OE-Core]<br />
* [[OE/Yocto prebuilt toolchains]]<br />
* [[Howto build a kernel module out of the kernel tree]]<br />
* [[Howto speed up Yocto build]]<br />
* [[bitbake options]]<br />
* [[Directories and installation variables]]<br />
* [[How to add libstdc++ to a Yocto (Poky) image]]<br />
* [[How to run a script at boot automatically]]<br />
* [[Create patches using quilt]]<br />
* [[Building Software from an External Source]]<br />
* [[opkg command options]]<br />
* [[Managing RDEPENDS into a recipe]]<br />
* [[Extract the list of packages into a Yocto image]]<br />
* [[Toaster setup and usage]]<br />
* [[Python assignment operators]]<br />
* [[Skip connectivity checks]]<br />
* [[Set default root password]]<br />
* [[Yocto package management]]<br />
* [[Yocto build on a cluster with IceCC]]<br />
* [[Add native gcc to the target image]]<br />
* [[List IPK package depencencies]]<br />
* [[Yocto Project what I wish I'd known]]<br />
* [[Using devtool to modify recipes in Yocto]]<br />
* [[How to include uEnv.txt in Yocto image]]<br />
* [[Add build information into a Yocto image]]<br />
* [[Add a systemd service file into a Yocto image]]<br />
* [[Yocto Project licenses for LIC_FILES_CHKSUM]]<br />
<br />
Many other details are available in the [https://wiki.yoctoproject.org/wiki/Technical_FAQ Yocto Project wiki]<br />
<br />
<br />
== Linux kernel ==<br />
* [[Kernel message logging with printk]]<br />
<br />
<br />
== Microsoft .NET and Mono ==<br />
* [[Embedded Linux .NET applications with Yocto]]<br />
<br />
<br />
== Qt ==<br />
* [[Install Qt 5 on Ubuntu]]<br />
<br />
<br />
== Hardware and SBC ==<br />
* [[iMX6 definitive GPIO guide]]<br />
<br />
<br />
== Documents ==<br />
* [[ARM cores list]]<br />
* [[systemd vs sysvinit]]<br />
* [http://linux.koolsolutions.com/2011/02/26/howto-create-and-submit-your-first-linux-kernel-patch/ How to create and submit Linux kernel patch using GIT]<br />
* [[Development with VMware]]<br />
* [[How to Shrink a VirtualBox Virtual Machine]]<br />
<br />
<br />
== About us ==<br />
* [https://koansoftware.com/company/ Who we are]</div>Koan