<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.yoctoproject.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Khem</id>
	<title>Yocto Project - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.yoctoproject.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Khem"/>
	<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/Special:Contributions/Khem"/>
	<updated>2026-04-08T04:56:30Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Recipe_Versions&amp;diff=86624</id>
		<title>Recipe Versions</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Recipe_Versions&amp;diff=86624"/>
		<updated>2025-05-06T22:53:50Z</updated>

		<summary type="html">&lt;p&gt;Khem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists the expected versions of major packages that will be in the next Yocto Project release (Whinlatter 5.3&lt;br /&gt;
at the time of writing).&lt;br /&gt;
&lt;br /&gt;
For further details, please contact the relevant maintainer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto; width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Recipe !! Version !! Maintainer !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| binutils || 2.45 || Khem Raj &amp;lt;raj.khem@gmail.com&amp;gt; || Should be locked by M1&lt;br /&gt;
|-&lt;br /&gt;
| gcc || 15.2 || Khem Raj &amp;lt;raj.khem@gmail.com&amp;gt; || GCC 15 in master now&lt;br /&gt;
|-&lt;br /&gt;
| glibc || 2.42 || Khem Raj &amp;lt;raj.khem@gmail.com&amp;gt; || Should be locked by M1&lt;br /&gt;
|-&lt;br /&gt;
| linux-yocto || v6.12 &amp;amp; unknown || Bruce Ashfield &amp;lt;bruce.ashfield@gmail.com&amp;gt; || Should be locked by M2&lt;br /&gt;
|-&lt;br /&gt;
| python3 || 3.13.3 || Trevor Gamblin &amp;lt;tgamblin@baylibre.com&amp;gt; || Should be locked by M2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Key recipe versions by release, (LTS and current release only)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto; width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Release || linux-yocto (kernel) || gcc || binutils || glibc || python3&lt;br /&gt;
|-&lt;br /&gt;
| walnasacar (5.2) || 6.12.x || 14.2 || 2.44 || 2.41 || 3.13.x&lt;br /&gt;
|-&lt;br /&gt;
| scarthgap (5.0) || 6.6.x || 13.2 || 2.42 || 2.39 || 3.12.x&lt;br /&gt;
|-&lt;br /&gt;
| kirkstone (4.0) || 5.10.x / 5.15.x || 11.4 || 2.38 || 2.35 || 3.10.x&lt;br /&gt;
|-&lt;br /&gt;
| dunfell (3.1) || 5.4.x || 9.5 || 2.34 ||2.31 || 3.8.x&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Khem</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Recipe_Versions&amp;diff=86623</id>
		<title>Recipe Versions</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Recipe_Versions&amp;diff=86623"/>
		<updated>2025-05-06T22:50:29Z</updated>

		<summary type="html">&lt;p&gt;Khem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists the expected versions of major packages that will be in the next Yocto Project release (Whinlatter 5.3&lt;br /&gt;
at the time of writing).&lt;br /&gt;
&lt;br /&gt;
For further details, please contact the relevant maintainer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto; width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Recipe !! Version !! Maintainer !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| binutils || 2.45 || Khem Raj &amp;lt;raj.khem@gmail.com&amp;gt; || Should be locked by M1&lt;br /&gt;
|-&lt;br /&gt;
| gcc || 15.2 || Khem Raj &amp;lt;raj.khem@gmail.com&amp;gt; || GCC 15 in master now&lt;br /&gt;
|-&lt;br /&gt;
| glibc || 2.42 || Khem Raj &amp;lt;raj.khem@gmail.com&amp;gt; || Should be locked by M1&lt;br /&gt;
|-&lt;br /&gt;
| linux-yocto || v6.12 &amp;amp; unknown || Bruce Ashfield &amp;lt;bruce.ashfield@gmail.com&amp;gt; || Should be locked by M2&lt;br /&gt;
|-&lt;br /&gt;
| python3 || 3.13.3 || Trevor Gamblin &amp;lt;tgamblin@baylibre.com&amp;gt; || Should be locked by M2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Key recipe versions by release, (LTS and current release only)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto; width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Release || linux-yocto (kernel) || gcc || binutils || glibc || python3&lt;br /&gt;
|-&lt;br /&gt;
| walnasac (5.2) || 6.12.x || 14.2 || 2.44 || 2.41 || 3.13.x&lt;br /&gt;
|-&lt;br /&gt;
| scarthgap (5.0) || 6.6.x || 13.2 || 2.42 || 2.39 || 3.12.x&lt;br /&gt;
|-&lt;br /&gt;
| kirkstone (4.0) || 5.10.x / 5.15.x || 11.4 || 2.38 || 2.35 || 3.10.x&lt;br /&gt;
|-&lt;br /&gt;
| dunfell (3.1) || 5.4.x || 9.5 || 2.34 ||2.31 || 3.8.x&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Khem</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Meta-gpl2_layer_replacement&amp;diff=86427</id>
		<title>Meta-gpl2 layer replacement</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Meta-gpl2_layer_replacement&amp;diff=86427"/>
		<updated>2024-08-12T20:30:42Z</updated>

		<summary type="html">&lt;p&gt;Khem: /* What&amp;#039;s the way out? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Options for meta-gpl2 layer replacement == &lt;br /&gt;
&lt;br /&gt;
meta-gpl2 was created to supply recipe metadata for GPL-2.0 version of OSS components/recipes which have migrated to use GPL-3.0 family of license. Therefore the versions for these components were frozen in time ( circa 2007 ), these components were still receiving security fixes and sundry other minor fixes while they were part of long term supported ( LTS ) binary distributions e.g. ubuntu and CentOS and Debian. Therefore keeping them in healthy state was still possible until these LTS releases of distributions went EOL, which meant that these components stopped receiving any updates and hence became hard to maintain over time&lt;br /&gt;
&lt;br /&gt;
New compiler versions would find new bugs ( build time issues ) which are otherwise fixed in the regular version, the backports are no longer straightforward and have license issues anyway.&lt;br /&gt;
No security fixes being applied anymore&lt;br /&gt;
Consistently, requiring platform porting e.g. mingw&lt;br /&gt;
&lt;br /&gt;
Therefore it is not recommended to use meta-gpl2 anymore as it is quite problematic. It also sends out a bad message to your own userbase as it implies you are disregarding security issues and as such can cause reputation damage. Whilst it has not been recommended for many years, it has been completely dropped by the Yocto Project after the kirkstone release so the most recent LTS (scarthgap) does not support it.&lt;br /&gt;
&lt;br /&gt;
=== What&#039;s the way out? ===&lt;br /&gt;
&lt;br /&gt;
* Move to use a maintained version of the components if possible, which could be allowed per legal policies of your company, please discuss with them.&lt;br /&gt;
* Find alternative implementations for similar functionality e.g. readline vs libedit, however this might need API adjustments. Some of coreutils components can be replaced with busybox applets or new project uutils-coreutils https://github.com/uutils/coreutils, bsdutils - https://github.com/dcantrell/bsdutils or chimerautils - https://github.com/chimera-linux/chimerautils&lt;br /&gt;
* Change recipes to use PACKAGECONFIGs for such functionality which can safely avoid linking to GPL-3.0 code.&lt;br /&gt;
* Selectively remove components from images which have such dependencies. E.g. see meta/lib/oeqa/selftest/cases/incompatible_lic.py&lt;br /&gt;
* Switch to checking images for problematic content rather than disabling entire recipes globally. Our license markup of individual packages should be accurate.&lt;br /&gt;
&lt;br /&gt;
=== Start with marking images with below restrictions ===&lt;br /&gt;
&lt;br /&gt;
 INCOMPATIBLE_LICENSE:pn-core-image-full-cmdline = &amp;quot;GPL-3.0 LGPL-3.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And remove dependencies if not needed or find replacements if available.&lt;br /&gt;
&lt;br /&gt;
For running ptests, lot of recipes need bash, that was the reason ptests were explicitly removed by meta-gpl2, therefore it might be not easy to replace bash with another shell e.g. dash or  tcsh&lt;br /&gt;
However, it&#039;s limited to testing and production builds can still resort to avoiding bash shell from target images.&lt;br /&gt;
&lt;br /&gt;
See following commit for an example: https://git.yoctoproject.org/poky/commit/?id=ebee9854d735bf6321020e791ca84389dc91834b&lt;br /&gt;
&lt;br /&gt;
=== TLS ===&lt;br /&gt;
&lt;br /&gt;
Lot of packages need a TLS dependency and there are multiple providers for TLS implementation, however, some packages use  gnutls as default backend and hence a dependency. Some packages&lt;br /&gt;
Do provide an option to use other implementations e.g. openssl provided TLS or NSS, therefore such packages should be made to provide this choice via PACKAGECONFIG. The packageconfigs can&lt;br /&gt;
Then be set to no-defaults via distributions. A good example&lt;br /&gt;
&lt;br /&gt;
https://git.yoctoproject.org/poky/tree/meta/recipes-extended/wget/wget.inc#n30&lt;br /&gt;
&lt;br /&gt;
=== Code Generator Tools ===&lt;br /&gt;
&lt;br /&gt;
Tools like gettext, bison, m4, patch are used during build mostly. Assessing how they are used in your case can pave a way forward to use their currently maintained versions. The usecases can be discussed with the policy teams of your company based upon how they are used.&lt;br /&gt;
&lt;br /&gt;
=== Multiple providers ===&lt;br /&gt;
&lt;br /&gt;
Packages like libiconv provide components that are already provided by glibc or musl C library, however, they maybe needed on supporting platforms like mingw and Yocto project supports Mingw for&lt;br /&gt;
Build and SDK host therefore it will be used in host and not shipped on target software. Therefore the scope of such a package is reduced and is applicable to specific usecases alone.&lt;br /&gt;
&lt;br /&gt;
=== Unchanged License ===&lt;br /&gt;
&lt;br /&gt;
Certain packages e.g. shared-mime-info are still under GPL-2.0 license, the reason to house an older version in meta-gpl2 was to support other old packages.&lt;br /&gt;
&lt;br /&gt;
=== Work so far: ===&lt;br /&gt;
&lt;br /&gt;
Created a global policy file:&lt;br /&gt;
&lt;br /&gt;
 https://git.yoctoproject.org/poky/tree/meta/conf/distro/include/no-gplv3.inc&lt;br /&gt;
&lt;br /&gt;
as distro config metadata could help the community to start with a known set of packages and packageconfig and other metadata tweaks. This file can be included in global config metadata and distribution built on top of it.&lt;br /&gt;
&lt;br /&gt;
=== Future work needed: ===&lt;br /&gt;
&lt;br /&gt;
* Find scalable replacement for bash so ptest can be enabled&lt;br /&gt;
* readline being gpl3, editline as alternative?&lt;br /&gt;
* Gdbserver is GPLv3 causing issues for debug images, lldb-server is an alternative&lt;br /&gt;
* Gnupg is used by package managers e.g. dnf, using alternative package manager or using alternative GPG implementation e.g. minisign/libsodium, https://gitlab.com/sequoia-pgp/sequoia ?&lt;br /&gt;
* Elfutils could be replaced by LLVM tools&lt;br /&gt;
* Document best practices once identified in project manuals&lt;br /&gt;
* Distro policy to govern TLS preferences?&lt;/div&gt;</summary>
		<author><name>Khem</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Meta-gpl2_layer_replacement&amp;diff=86422</id>
		<title>Meta-gpl2 layer replacement</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Meta-gpl2_layer_replacement&amp;diff=86422"/>
		<updated>2024-07-31T15:37:00Z</updated>

		<summary type="html">&lt;p&gt;Khem: /* What&amp;#039;s the way out? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Options for meta-gpl2 layer replacement == &lt;br /&gt;
&lt;br /&gt;
meta-gpl2 was created to supply recipe metadata for GPL-2.0 version of OSS components/recipes which have migrated to use GPL-3.0 family of license. Therefore the versions for these components were frozen in time ( circa 2007 ), these components were still receiving security fixes and sundry other minor fixes while they were part of long term supported ( LTS ) binary distributions e.g. ubuntu and CentOS and Debian. Therefore keeping them in healthy state was still possible until these LTS releases of distributions went EOL, which meant that these components stopped receiving any updates and hence became hard to maintain over time&lt;br /&gt;
&lt;br /&gt;
New compiler versions would find new bugs ( build time issues ) which are otherwise fixed in the regular version, the backports are no longer straightforward and have license issues anyway.&lt;br /&gt;
No security fixes being applied anymore&lt;br /&gt;
Consistently, requiring platform porting e.g. mingw&lt;br /&gt;
&lt;br /&gt;
Therefore it is not recommended to use meta-gpl2 anymore as it is quite problematic. It also sends out a bad message to your own userbase as it implies you are disregarding security issues and as such can cause reputation damage. Whilst it has not been recommended for many years, it has been completely dropped by the Yocto Project after the kirkstone release so the most recent LTS (scarthgap) does not support it.&lt;br /&gt;
&lt;br /&gt;
=== What&#039;s the way out? ===&lt;br /&gt;
&lt;br /&gt;
* Move to use a maintained version of the components if possible, which could be allowed per legal policies of your company, please discuss with them.&lt;br /&gt;
* Find alternative implementations for similar functionality e.g. readline vs libedit, however this might need API adjustments. Some of coreutils components can be replaced with busybox applets or new project uutils-coreutils https://github.com/uutils/coreutils&lt;br /&gt;
* Change recipes to use PACKAGECONFIGs for such functionality which can safely avoid linking to GPL-3.0 code.&lt;br /&gt;
* Selectively remove components from images which have such dependencies. E.g. see meta/lib/oeqa/selftest/cases/incompatible_lic.py&lt;br /&gt;
* Switch to checking images for problematic content rather than disabling entire recipes globally. Our license markup of individual packages should be accurate.&lt;br /&gt;
&lt;br /&gt;
=== Start with marking images with below restrictions ===&lt;br /&gt;
&lt;br /&gt;
 INCOMPATIBLE_LICENSE:pn-core-image-full-cmdline = &amp;quot;GPL-3.0 LGPL-3.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And remove dependencies if not needed or find replacements if available.&lt;br /&gt;
&lt;br /&gt;
For running ptests, lot of recipes need bash, that was the reason ptests were explicitly removed by meta-gpl2, therefore it might be not easy to replace bash with another shell e.g. dash or  tcsh&lt;br /&gt;
However, it&#039;s limited to testing and production builds can still resort to avoiding bash shell from target images.&lt;br /&gt;
&lt;br /&gt;
See following commit for an example: https://git.yoctoproject.org/poky/commit/?id=ebee9854d735bf6321020e791ca84389dc91834b&lt;br /&gt;
&lt;br /&gt;
=== TLS ===&lt;br /&gt;
&lt;br /&gt;
Lot of packages need a TLS dependency and there are multiple providers for TLS implementation, however, some packages use  gnutls as default backend and hence a dependency. Some packages&lt;br /&gt;
Do provide an option to use other implementations e.g. openssl provided TLS or NSS, therefore such packages should be made to provide this choice via PACKAGECONFIG. The packageconfigs can&lt;br /&gt;
Then be set to no-defaults via distributions. A good example&lt;br /&gt;
&lt;br /&gt;
https://git.yoctoproject.org/poky/tree/meta/recipes-extended/wget/wget.inc#n30&lt;br /&gt;
&lt;br /&gt;
=== Code Generator Tools ===&lt;br /&gt;
&lt;br /&gt;
Tools like gettext, bison, m4, patch are used during build mostly. Assessing how they are used in your case can pave a way forward to use their currently maintained versions. The usecases can be discussed with the policy teams of your company based upon how they are used.&lt;br /&gt;
&lt;br /&gt;
=== Multiple providers ===&lt;br /&gt;
&lt;br /&gt;
Packages like libiconv provide components that are already provided by glibc or musl C library, however, they maybe needed on supporting platforms like mingw and Yocto project supports Mingw for&lt;br /&gt;
Build and SDK host therefore it will be used in host and not shipped on target software. Therefore the scope of such a package is reduced and is applicable to specific usecases alone.&lt;br /&gt;
&lt;br /&gt;
=== Unchanged License ===&lt;br /&gt;
&lt;br /&gt;
Certain packages e.g. shared-mime-info are still under GPL-2.0 license, the reason to house an older version in meta-gpl2 was to support other old packages.&lt;br /&gt;
&lt;br /&gt;
=== Work so far: ===&lt;br /&gt;
&lt;br /&gt;
Created a global policy file:&lt;br /&gt;
&lt;br /&gt;
 https://git.yoctoproject.org/poky/tree/meta/conf/distro/include/no-gplv3.inc&lt;br /&gt;
&lt;br /&gt;
as distro config metadata could help the community to start with a known set of packages and packageconfig and other metadata tweaks. This file can be included in global config metadata and distribution built on top of it.&lt;br /&gt;
&lt;br /&gt;
=== Future work needed: ===&lt;br /&gt;
&lt;br /&gt;
* Find scalable replacement for bash so ptest can be enabled&lt;br /&gt;
* readline being gpl3, editline as alternative?&lt;br /&gt;
* Gdbserver is GPLv3 causing issues for debug images, lldb-server is an alternative&lt;br /&gt;
* Gnupg is used by package managers e.g. dnf, using alternative package manager or using alternative GPG implementation e.g. minisign/libsodium, https://gitlab.com/sequoia-pgp/sequoia ?&lt;br /&gt;
* Elfutils could be replaced by LLVM tools&lt;br /&gt;
* Document best practices once identified in project manuals&lt;br /&gt;
* Distro policy to govern TLS preferences?&lt;/div&gt;</summary>
		<author><name>Khem</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=How_to_enable_KVM_for_Poky_qemu&amp;diff=27587</id>
		<title>How to enable KVM for Poky qemu</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=How_to_enable_KVM_for_Poky_qemu&amp;diff=27587"/>
		<updated>2017-06-08T18:20:38Z</updated>

		<summary type="html">&lt;p&gt;Khem: /* Change the kvm dev ownership for non-root user */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= enable KVM for poky qemu =&lt;br /&gt;
== KVM introduction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;KVM&#039;&#039; (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). It consists of a loadable kernel module, &#039;&#039;&#039;kvm.ko&#039;&#039;&#039;, that provides the core virtualization infrastructure and a processor specific module, &#039;&#039;&#039;kvm-intel.ko&#039;&#039;&#039; or kvm-amd.ko. KVM also requires a modified QEMU although work is underway to get the required changes upstream.&lt;br /&gt;
&lt;br /&gt;
Compared with native qemu, a pure emulator, KVM has better performance based on virtualization as most of guest instruction can be executed directly on the host processor.&lt;br /&gt;
&lt;br /&gt;
== detect VT support ==&lt;br /&gt;
You need make sure your x86 processor support VT before using KVM.&lt;br /&gt;
&lt;br /&gt;
With a recent enough Linux kernel, run the command:&lt;br /&gt;
&lt;br /&gt;
 $ egrep &#039;^flags.*(vmx|svm)&#039; /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
If something shows up, you have VT. You can also check the processor model name (in `/proc/cpuinfo`) in the vendor&#039;s web site.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
&lt;br /&gt;
* You&#039;ll never see (vmx|svm) in /proc/cpuinfo if you&#039;re currently running in in a dom0 or domU. The Xen hypervisor suppresses these flags in order to prevent hijacking.&lt;br /&gt;
&lt;br /&gt;
* Some manufacturers disable VT in the machine&#039;s BIOS, in such a way that it cannot be re-enabled.&lt;br /&gt;
&lt;br /&gt;
* `/proc/cpuinfo` only shows virtualization capabilities starting with Linux 2.6.15 (Intel) and Linux 2.6.16 (AMD). Use the `uname -r` command to query your kernel version.&lt;br /&gt;
&lt;br /&gt;
In case of doubt, contact your hardware vendor.&lt;br /&gt;
&lt;br /&gt;
== get the KVM module ==&lt;br /&gt;
&lt;br /&gt;
The quick &amp;amp; easy way for this is just using it from your distribution. As of now, all major community and enterprise distributions contain kvm kernel modules; these are either installed by default or require installing a kvm package. For someone looking for stability, these are the best choice. No effort is needed to build or install the modules, support is provided by the distribution, and the distribution/module combination is well tested.&lt;br /&gt;
&lt;br /&gt;
In other cases, you need refer [http://www.linux-kvm.org/page/Getting_the_kvm_kernel_modules getting kvm modules].&lt;br /&gt;
&lt;br /&gt;
After getting the modules, you can install them into kernel by&lt;br /&gt;
&lt;br /&gt;
 $ sudo modprobe kvm-intel&lt;br /&gt;
&lt;br /&gt;
== make KVM aware QEMU ==&lt;br /&gt;
Upstream QEMU has already supported KVM, and I have already checked in one patch to enable it. So you get a KVM capable qemu after poky build.&lt;br /&gt;
&lt;br /&gt;
== Change the kvm dev ownership for non-root user ==&lt;br /&gt;
qemu is started as non-root user in poky, but &#039;&#039;/dev/kvm&#039;&#039; from some distribution remains root:root that only allow root to use KVM. To work around this, we need create a new group named &#039;&#039;&#039;kvm&#039;&#039;&#039;, and make both &#039;&#039;/dev/kvm&#039;&#039; and the non-root user belongs to it.&lt;br /&gt;
&lt;br /&gt;
 sudo groupadd --system kvm&lt;br /&gt;
 sudo gpasswd -a $USER kvm&lt;br /&gt;
 sudo chown root:kvm /dev/kvm&lt;br /&gt;
 sudo chmod 0660 /dev/kvm&lt;br /&gt;
&lt;br /&gt;
The output of &amp;quot;ls -l /dev/kvm&amp;quot; should be like this:&lt;br /&gt;
 crw-rw----+ 1 root kvm 10, 232 2010-07-02 09:27 /dev/kvm&lt;br /&gt;
&lt;br /&gt;
On a system that runs udev, you will probably need to add the following line somewhere in your udev configuration so it will automatically give the right group to the newly created device (i-e for ubuntu add a line to /etc/udev/rules.d/40-permissions.rules).&lt;br /&gt;
&lt;br /&gt;
 KERNEL==&amp;quot;kvm&amp;quot;, GROUP=&amp;quot;kvm&amp;quot;, MODE=&amp;quot;0660&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
* You need log out then log in the non-root user to take the effect&lt;br /&gt;
* Some distributions have already made this, so that we can skip this step&lt;br /&gt;
&lt;br /&gt;
== running qemu with KVM enabled ==&lt;br /&gt;
just append &amp;quot;kvm&amp;quot; parameter to the &#039;&#039;runqemu&#039;&#039; like this&lt;br /&gt;
&lt;br /&gt;
 $ runqemu qemux86 kvm&lt;/div&gt;</summary>
		<author><name>Khem</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=How_to_enable_KVM_for_Poky_qemu&amp;diff=9378</id>
		<title>How to enable KVM for Poky qemu</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=How_to_enable_KVM_for_Poky_qemu&amp;diff=9378"/>
		<updated>2013-03-29T08:13:04Z</updated>

		<summary type="html">&lt;p&gt;Khem: /* Change the kvm dev ownership for non-root user */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= enable KVM for poky qemu =&lt;br /&gt;
== KVM introduction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;KVM&#039;&#039; (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). It consists of a loadable kernel module, &#039;&#039;&#039;kvm.ko&#039;&#039;&#039;, that provides the core virtualization infrastructure and a processor specific module, &#039;&#039;&#039;kvm-intel.ko&#039;&#039;&#039; or kvm-amd.ko. KVM also requires a modified QEMU although work is underway to get the required changes upstream.&lt;br /&gt;
&lt;br /&gt;
Compared with native qemu, a pure emulator, KVM has better performance based on virtualization as most of guest instruction can be executed directly on the host processor.&lt;br /&gt;
&lt;br /&gt;
== detect VT support ==&lt;br /&gt;
You need make sure your x86 processor support VT before using KVM.&lt;br /&gt;
&lt;br /&gt;
With a recent enough Linux kernel, run the command:&lt;br /&gt;
&lt;br /&gt;
 $ egrep &#039;^flags.*(vmx|svm)&#039; /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
If something shows up, you have VT. You can also check the processor model name (in `/proc/cpuinfo`) in the vendor&#039;s web site.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
&lt;br /&gt;
* You&#039;ll never see (vmx|svm) in /proc/cpuinfo if you&#039;re currently running in in a dom0 or domU. The Xen hypervisor suppresses these flags in order to prevent hijacking.&lt;br /&gt;
&lt;br /&gt;
* Some manufacturers disable VT in the machine&#039;s BIOS, in such a way that it cannot be re-enabled.&lt;br /&gt;
&lt;br /&gt;
* `/proc/cpuinfo` only shows virtualization capabilities starting with Linux 2.6.15 (Intel) and Linux 2.6.16 (AMD). Use the `uname -r` command to query your kernel version.&lt;br /&gt;
&lt;br /&gt;
In case of doubt, contact your hardware vendor.&lt;br /&gt;
&lt;br /&gt;
== get the KVM module ==&lt;br /&gt;
&lt;br /&gt;
The quick &amp;amp; easy way for this is just using it from your distribution. As of now, all major community and enterprise distributions contain kvm kernel modules; these are either installed by default or require installing a kvm package. For someone looking for stability, these are the best choice. No effort is needed to build or install the modules, support is provided by the distribution, and the distribution/module combination is well tested.&lt;br /&gt;
&lt;br /&gt;
In other cases, you need refer [http://www.linux-kvm.org/page/Getting_the_kvm_kernel_modules getting kvm modules].&lt;br /&gt;
&lt;br /&gt;
After getting the modules, you can install them into kernel by&lt;br /&gt;
&lt;br /&gt;
 $ sudo modprobe kvm-intel&lt;br /&gt;
&lt;br /&gt;
== make KVM aware QEMU ==&lt;br /&gt;
Upstream QEMU has already supported KVM, and I have already checked in one patch to enable it. So you get a KVM capable qemu after poky build.&lt;br /&gt;
&lt;br /&gt;
== Change the kvm dev ownership for non-root user ==&lt;br /&gt;
qemu is started as non-root user in poky, but &#039;&#039;/dev/kvm&#039;&#039; from some distribution remains root:root that only allow root to use KVM. To work around this, we need create a new group named &#039;&#039;&#039;kvm&#039;&#039;&#039;, and make both &#039;&#039;/dev/kvm&#039;&#039; and the non-root user belongs to it.&lt;br /&gt;
&lt;br /&gt;
 sudo addgroup --system kvm&lt;br /&gt;
 sudo adduser $USER kvm&lt;br /&gt;
 sudo chown root:kvm /dev/kvm&lt;br /&gt;
 sudo chmod 0660 /dev/kvm&lt;br /&gt;
&lt;br /&gt;
The output of &amp;quot;ls -l /dev/kvm&amp;quot; should be like this:&lt;br /&gt;
 crw-rw----+ 1 root kvm 10, 232 2010-07-02 09:27 /dev/kvm&lt;br /&gt;
&lt;br /&gt;
On a system that runs udev, you will probably need to add the following line somewhere in your udev configuration so it will automatically give the right group to the newly created device (i-e for ubuntu add a line to /etc/udev/rules.d/40-permissions.rules).&lt;br /&gt;
&lt;br /&gt;
 KERNEL==&amp;quot;kvm&amp;quot;, GROUP=&amp;quot;kvm&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
* You need log out then log in the non-root user to take the effect&lt;br /&gt;
* Some distributions have already made this, so that we can skip this step&lt;br /&gt;
&lt;br /&gt;
== running qemu with KVM enabled ==&lt;br /&gt;
just append &amp;quot;kvm&amp;quot; parameter to the &#039;&#039;poky-qemu&#039;&#039; like this&lt;br /&gt;
&lt;br /&gt;
 $ poky-qemu qemux86 kvm&lt;/div&gt;</summary>
		<author><name>Khem</name></author>
	</entry>
</feed>