[gnome-continuous-yocto/gnomeostree-3.28-rocko: 7701/8267] kernel-dev: Updates to the kernel flow procedures
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 7701/8267] kernel-dev: Updates to the kernel flow procedures
- Date: Sun, 17 Dec 2017 06:37:03 +0000 (UTC)
commit 082dcd01632b1e0c1b3080d377972882b37b0834
Author: Scott Rifenbark <srifenbark gmail com>
Date: Mon Sep 11 15:45:56 2017 -0700
kernel-dev: Updates to the kernel flow procedures
(From yocto-docs rev: b8baf67ece6e80884fa198ddd51715c329822f28)
Signed-off-by: Scott Rifenbark <srifenbark gmail com>
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
documentation/kernel-dev/kernel-dev-common.xml | 149 +++++++++++++++++-------
1 files changed, 109 insertions(+), 40 deletions(-)
---
diff --git a/documentation/kernel-dev/kernel-dev-common.xml b/documentation/kernel-dev/kernel-dev-common.xml
index eaf0146..c6d1bda 100644
--- a/documentation/kernel-dev/kernel-dev-common.xml
+++ b/documentation/kernel-dev/kernel-dev-common.xml
@@ -37,7 +37,8 @@
Source Directory.
<note>
Be sure you check out the appropriate development branch or
- by tag to get the version of Yocto Project you want.
+ you create your local branch by checking out a specific tag
+ to get the desired version of Yocto Project.
See the
"<ulink url='&YOCTO_DOCS_DEV_URL;#checking-out-by-branch-in-poky'>Checking Out by Branch in
Poky</ulink>"
and
@@ -120,14 +121,14 @@
as follows:
<literallayout class='monospaced'>
$ cd ~/poky
- $ yocto-layer create my-kernel -o ../meta-my-kernel
+ $ yocto-layer create mylayer -o ../meta-mylayer
Please enter the layer priority you'd like to use for the layer: [default: 6]
Would you like to have an example recipe created? (y/n) [default: n]
Would you like to have an example bbappend file created? (y/n) [default: n]
- New layer created in ../meta-my-kernel.
+ New layer created in ../meta-mylayer.
- Don't forget to add it to your BBLAYERS (for details see ../meta-my-kernel/README).
+ Don't forget to add it to your BBLAYERS (for details see ../meta-mylayer/README).
</literallayout>
</para></listitem>
<listitem><para>
@@ -140,7 +141,7 @@
as follows:
<literallayout class='monospaced'>
$ cd ~/poky/build
- $ bitbake-layers add-layer ../../meta-my-kernel
+ $ bitbake-layers add-layer ../../meta-mylayer
</literallayout>
</para></listitem>
<listitem><para>
@@ -274,9 +275,15 @@
build environment script
(i.e. <ulink
url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>oe-init-build-env</filename></ulink>
or
- <ulink
url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>):
+ <ulink
url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>).
+ Also, for this example, be sure that the local branch
+ you have checked out for <filename>poky</filename> is
+ the Yocto Project &DISTRO_NAME; branch:
<literallayout class='monospaced'>
$ cd ~/poky
+ $ git branch
+ master
+ * &DISTRO_NAME;
$ source oe-init-build-env
</literallayout>
<note>
@@ -322,14 +329,14 @@
as follows:
<literallayout class='monospaced'>
$ cd ~/poky
- $ yocto-layer create my-kernel -o ../meta-my-kernel
+ $ yocto-layer create mylayer -o ../meta-mylayer
Please enter the layer priority you'd like to use for the layer: [default: 6]
Would you like to have an example recipe created? (y/n) [default: n]
Would you like to have an example bbappend file created? (y/n) [default: n]
- New layer created in ../meta-my-kernel.
+ New layer created in ../meta-mylayer.
- Don't forget to add it to your BBLAYERS (for details see ../meta-my-kernel/README).
+ Don't forget to add it to your BBLAYERS (for details see ../meta-mylayer/README).
</literallayout>
</para></listitem>
<listitem><para>
@@ -342,7 +349,7 @@
as follows:
<literallayout class='monospaced'>
$ cd ~/poky/build
- $ bitbake-layers add-layer ../../meta-my-kernel
+ $ bitbake-layers add-layer ../../meta-mylayer
</literallayout>
</para></listitem>
<listitem><para>
@@ -359,14 +366,25 @@
copy of the kernel Git repository outside of the
<ulink url='&YOCTO_DOCS_REF_URL;source-directory'>Source Directory</ulink>,
which is usually named <filename>poky</filename>.
+ Also, be sure you are in the
+ <filename>standard/base</filename> branch.
</para>
<para>
The following commands show how to create a local copy
- of the <filename>linux-yocto-4.12</filename> kernel:
+ of the <filename>linux-yocto-4.12</filename> kernel and
+ be in the <filename>standard/base</filename> branch.
+ <note>
+ The <filename>linux-yocto-4.12</filename> kernel
+ can be used with the Yocto Project 2.4 release
+ and forward.
+ You cannot use the
+ <filename>linux-yocto-4.12</filename> kernel with
+ releases prior to Yocto Project 2.4:
+ </note>
<literallayout class='monospaced'>
$ cd ~
- $ git clone git://git.yoctoproject.org/linux-yocto-4.12 linux-yocto-4.12
+ $ git clone git://git.yoctoproject.org/linux-yocto-4.12 --branch standard/base
Cloning into 'linux-yocto-4.12'...
remote: Counting objects: 6097195, done.
remote: Compressing objects: 100% (901026/901026), done.
@@ -377,6 +395,33 @@
Checking out files: 100% (59846/59846), done.
</literallayout>
</para></listitem>
+ <listitem><para>
+ <emphasis>Create a Local Copy of the Kernel Cache Git
+ Repository:</emphasis>
+ For simplicity, it is recommended that you create your
+ copy of the kernel cache Git repository outside of the
+ <ulink url='&YOCTO_DOCS_REF_URL;source-directory'>Source Directory</ulink>,
+ which is usually named <filename>poky</filename>.
+ Also, for this example, be sure you are in the
+ <filename>yocto-4.12</filename> branch.
+ </para>
+
+ <para>
+ The following commands show how to create a local copy
+ of the <filename>yocto-kernel-cache</filename> and
+ be in the <filename>yocto-4.12</filename> branch:
+ <literallayout class='monospaced'>
+ $ cd ~
+ $ git clone git://git.yoctoproject.org/yocto-kernel-cache --branch yocto-4.12
+ Cloning into 'yocto-kernel-cache'...
+ remote: Counting objects: 22639, done.
+ remote: Compressing objects: 100% (9761/9761), done.
+ remote: Total 22639 (delta 12400), reused 22586 (delta 12347)
+ Receiving objects: 100% (22639/22639), 22.34 MiB | 6.27 MiB/s, done.
+ Resolving deltas: 100% (12400/12400), done.
+ Checking connectivity... done.
+ </literallayout>
+ </para></listitem>
</orderedlist>
</para>
@@ -1076,18 +1121,18 @@
command in the terminal used to work with the extensible
SDK.
This example uses the previously established layer named
- <filename>meta-my-kernel</filename>.
+ <filename>meta-mylayer</filename>.
<note>
See Step 3 of the
"<link linkend='getting-ready-to-develop-using-devtool'>Getting Ready to Develop using
devtool</link>"
section for information on setting up this layer.
</note>
<literallayout class='monospaced'>
- $ devtool finish linux-yocto /path/to/meta-my-kernel
+ $ devtool finish linux-yocto /path/to/meta-mylayer
</literallayout>
Once the command finishes, the patches and the
<filename>.bbappend</filename> file are located in the
- <filename>~/meta-my-kernel/recipes-kernel/linux</filename>
+ <filename>~/meta-mylayer/recipes-kernel/linux</filename>
directory.
</para></listitem>
<listitem><para>
@@ -1162,24 +1207,13 @@
section.
<orderedlist>
<listitem><para>
- <emphasis>Know What Branch is Checked Out In Your Local
- Kernel Git Repository:</emphasis>
+ <emphasis>Edit the Source Files</emphasis>
Prior to this step, you should have used Git to create a
local copy of the repository for your kernel.
Assuming you created the repository as directed in the
"<link linkend='getting-ready-for-traditional-kernel-development'>Getting Ready for
Traditional Kernel Development</link>"
- section, use the following commands to check out the
- <filename>standard/base</filename> branch of the
- Linux Yocto 4.12 kernel:
- <literallayout class='monospaced'>
- $ cd ~/linux-yocto-4.12
- $ git checkout -b standard/base origin/standard/base
- </literallayout>
- </para></listitem>
- <listitem><para>
- <emphasis>Edit the Source Files</emphasis>
- Follow these steps to make some simple changes to the source
- files:
+ section, use the following commands to edit the
+ <filename>calibrate.c</filename> file:
<orderedlist>
<listitem><para>
<emphasis>Change the working directory</emphasis>:
@@ -1228,27 +1262,38 @@
Build System will not pick up the changes.
</para></listitem>
<listitem><para>
- <emphasis>Update Your <filename>local.conf</filename> File to Point to Your Source
Files:</emphasis>
+ <emphasis>Update Your <filename>local.conf</filename> File
+ to Point to Your Source Files:</emphasis>
In addition to your <filename>local.conf</filename> file
- specifying to use "kernel-modules" and the "qemux86" machine,
- it must also point to the updated kernel source files.
- Add the following commands to your
+ specifying to use "kernel-modules" and the "qemux86"
+ machine, it must also point to the updated kernel source
+ files.
+ Add
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
+ and
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-SRCREV'><filename>SRCREV</filename></ulink>
+ statements similar to the following to your
<filename>local.conf</filename>:
<literallayout class='monospaced'>
$ cd ~/poky/build/conf
</literallayout>
Add the following to the <filename>local.conf</filename>:
<literallayout class='monospaced'>
- SRC_URI_pn-linux-yocto =
"git:///$HOME/linux-yocto-4.12;protocol=file;name=machine;branch=standard/base; \
-
git:///home/scottrif/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-4.12;destsuffix=${KMETA}"
+ SRC_URI_pn-linux-yocto =
"git:///<replaceable>path-to</replaceable>/linux-yocto-4.12;protocol=file;name=machine;branch=standard/base; \
+
git:///<replaceable>path-to</replaceable>/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-4.12;destsuffix=${KMETA}"
SRCREV_meta_qemux86 = "${AUTOREV}"
SRCREV_machine_qemux86 = "${AUTOREV}"
</literallayout>
- You must be sure to specify the correct branch and machine
- types.
- For this example, the branch is
- <filename>standard/base</filename> and the machine is
- "qemux86".
+ <note>
+ Be sure to replace
+ <replaceable>path-to</replaceable> with the pathname
+ to your local Git repositories.
+ Also, you must be sure to specify the correct branch
+ and machine types.
+ For this example, the branch is
+ <filename>standard/base</filename> and the machine is
+ "qemux86".
+ </note>
</para></listitem>
<listitem><para>
<emphasis>Build the Image:</emphasis>
@@ -1268,6 +1313,7 @@
When prompted to login to the QEMU console, use "root"
with no password:
<literallayout class='monospaced'>
+ $ cd ~/poky/build
$ runqemu qemux86
</literallayout>
</para></listitem>
@@ -1284,6 +1330,29 @@
as part of the output when you scroll down the
console window.
</para></listitem>
+ <listitem><para>
+ <emphasis>Generate the Patch File:</emphasis>
+ Once you are sure that your patch works correctly, you
+ can generate a <filename>*.patch</filename> file in the
+ kernel source repository:
+ <literallayout class='monospaced'>
+ $ cd ~/linux-yocto-4.12/init
+ $ git format-patch -1
+ 0001-calibrate.c-Added-some-printk-statements.patch
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Prepare Your Layer for Subsequent Builds:</emphasis>
+ In order for subsequent builds to pick up patches, the
+ patches need to be stored in a layer.
+ This example created the layer
+ <filename>meta-mylayer</filename> earlier but left it
+ pretty much empty.
+ To get it ready for subsequent builds that automatically
+ apply patches, follow the steps in the
+ "<link linkend='creating-and-preparing-a-layer'>Creating and Preparing a Layer</link>"
+ section.
+ </para></listitem>
</orderedlist>
</para>
</section>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]