summaryrefslogtreecommitdiffstats
path: root/documentation/dev-manual/dev-manual-common-tasks.xml
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2012-10-11 14:27:48 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-10-15 14:45:15 +0100
commit715456acb8aa2866eca4f04b667a12d070e18cfa (patch)
treeb6e0b99bc2943140cecfd1a3fce9acc79ce5ab26 /documentation/dev-manual/dev-manual-common-tasks.xml
parente44de7bbb94cf268dba6aec37226ce9db6fb147e (diff)
downloadpoky-715456acb8aa2866eca4f04b667a12d070e18cfa.tar.gz
documentation: dev-manual - edits to the patching the kernel and model sections.
Made changes to try and clean up the process. (From yocto-docs rev: 9c4fbcb473dc594647ba8779162379a745f8f8d6) Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/dev-manual/dev-manual-common-tasks.xml')
-rw-r--r--documentation/dev-manual/dev-manual-common-tasks.xml72
1 files changed, 47 insertions, 25 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml
index 98e5e59393..5ba1ff0173 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -1623,7 +1623,15 @@
1623 <filename>calibrate.c</filename> source code file. 1623 <filename>calibrate.c</filename> source code file.
1624 Applying the patch and booting the modified image causes the added 1624 Applying the patch and booting the modified image causes the added
1625 messages to appear on the emulator's console. 1625 messages to appear on the emulator's console.
1626 </para> 1626 </para>
1627
1628 <para>
1629 The example assumes a clean build exists for the <filename>x86qemu</filename>
1630 machine in a Source Directory named <filename>poky</filename>.
1631 Furthermore, the <link linkend='build-directory'>Build Directory</link> is
1632 <filename>build</filename> and is located in <filename>poky</filename> and
1633 the kernel is based on the Linux 3.4 kernel.
1634 </para>
1627 1635
1628 <section id='create-a-layer-for-your-changes'> 1636 <section id='create-a-layer-for-your-changes'>
1629 <title>Create a Layer for your Changes</title> 1637 <title>Create a Layer for your Changes</title>
@@ -1635,7 +1643,7 @@
1635 $mkdir meta-mylayer 1643 $mkdir meta-mylayer
1636 </literallayout> 1644 </literallayout>
1637 Creating a directory that follows the Yocto Project layer naming 1645 Creating a directory that follows the Yocto Project layer naming
1638 conventions sets up the area for your layer. 1646 conventions sets up the area for your changes.
1639 The layer is where you place your configuration files, append 1647 The layer is where you place your configuration files, append
1640 files, and patch files. 1648 files, and patch files.
1641 To learn more about creating a layer and filling it with the 1649 To learn more about creating a layer and filling it with the
@@ -1658,20 +1666,18 @@
1658 <literallayout class='monospaced'> 1666 <literallayout class='monospaced'>
1659 ${TMPDIR}/work/${MACHINE}-poky-${TARGET_OS}/${PN}-${PV}-${PR} 1667 ${TMPDIR}/work/${MACHINE}-poky-${TARGET_OS}/${PN}-${PV}-${PR}
1660 </literallayout> 1668 </literallayout>
1661 Assuming a recent build for the <filename>qemux86</filename> machine 1669 For this example, the directory that
1662 based on the Linux 3.4 kernel, a 1670 holds the temporary source code is here:
1663 <link linkend='source-directory'>Source Directory</link> named <filename>poky</filename>, and
1664 the existence of a default <filename>build</filename> directory, the directory that
1665 holds the temporary source code would be here:
1666 <literallayout class='monospaced'> 1671 <literallayout class='monospaced'>
1667 ~/poky/build/tmp/work/qemux86-poky-linux/linux-yocto-3.4.11+git1+5bdc...85f-r4.3 1672 ~/poky/build/tmp/work/qemux86-poky-linux/linux-yocto-3.4.11+git1+5bdc...85f-r4.3
1668 </literallayout> 1673 </literallayout>
1669 Within the <filename>linux</filename> directory, you find the source directories. 1674 Within the <filename>linux</filename> directory, you find directories for
1675 the source.
1670 </para> 1676 </para>
1671 1677
1672 <para> 1678 <para>
1673 For this example, we are going to patch the <filename>init/calibrate.c</filename> file 1679 For this example, we are going to patch the <filename>init/calibrate.c</filename> file
1674 and add some simple console <filename>printk</filename> statements that we can 1680 by adding some simple console <filename>printk</filename> statements that we can
1675 see when we boot the image using QEMU. 1681 see when we boot the image using QEMU.
1676 </para> 1682 </para>
1677 </section> 1683 </section>
@@ -1686,11 +1692,11 @@
1686 </para> 1692 </para>
1687 1693
1688 <para> 1694 <para>
1689 To create the patch for the <filename>calibrate.c</filename>, follow the steps 1695 To create the patch for the <filename>calibrate.c</filename>, follow steps
1690 outlined in the 1696 3 through 12 outlined in the
1691 "<link linkend='using-a-git-workflow'>Using a Git Workflow</link>" 1697 "<link linkend='using-a-git-workflow'>Using a Git Workflow</link>"
1692 section. 1698 section.
1693 For the steps used to edit the source file, do the following: 1699 For step 6 (Edit the Files), do the following:
1694 </para> 1700 </para>
1695 1701
1696 <para> 1702 <para>
@@ -1737,16 +1743,30 @@
1737 <title>Get Your Layer Setup for the Build</title> 1743 <title>Get Your Layer Setup for the Build</title>
1738 1744
1739 <para> 1745 <para>
1740 At this point, you have a patch file in the same directory as your original 1746 At this point, you have a patch file in the kernel's source code directory.
1741 <filename>calibrate.c</filename>. 1747 The patch file is named according to the commit's summary line and ends
1742 Move it to your layer and place it in a separate folder having the same 1748 with <filename>.patch</filename>.
1743 name as the recipe, which is <filename>linux-yocto</filename> in this case. 1749 For this example, it is named <filename>0001-calibrate.c.patch</filename>.
1750 </para>
1751
1752 <para>
1753 You need to move the patch file to your layer next.
1754 The patch file needs to reside in the
1755 <filename>meta-mylayer/recipes-kernel/linux/linux-yocto</filename> directory.
1756 Create this directory path within your layer and move the patch file.
1757 This directory path mirrors that used by the main kernel recipe in
1758 the Source Directory (<filename>poky</filename>).
1759 <literallayout class='monospaced'>
1760 $ cd ~/poky/meta-mylayer
1761 $ mkdir recipes-kernel
1762 $ mkdir recipes-kernel/linux
1763 $ mkdir recipes-kernel/linux/linux-yocto
1764 </literallayout>
1744 </para> 1765 </para>
1745 1766
1746 <para> 1767 <para>
1747 Next, you need to set up your <filename>conf</filename> directory in your layer. 1768 Next, you need to create a <filename>conf</filename> directory in your layer
1748 Create the <filename>conf</filename> and create the <filename>layer.conf</filename> 1769 and within it create the <filename>layer.conf</filename> file.
1749 file.
1750 You can find information on this in the 1770 You can find information on this in the
1751 "<link linkend='creating-your-own-layer'>Creating Your Own Layer</link>" 1771 "<link linkend='creating-your-own-layer'>Creating Your Own Layer</link>"
1752 section. 1772 section.
@@ -1807,12 +1827,14 @@
1807 /home/scottrif/poky/meta-mylayer \ 1827 /home/scottrif/poky/meta-mylayer \
1808 " 1828 "
1809 </literallayout></para></listitem> 1829 </literallayout></para></listitem>
1810 <listitem><para><emphasis>Create a bbappend File:</emphasis> You need to have 1830 <listitem><para><emphasis>Create a bbappend File:</emphasis> You need to create
1811 an append file to the main 3.4 kernel recipe. 1831 an append file for the main 3.4 kernel recipe.
1812 Locate the append file in your <filename>meta-mylayer</filename> layer. 1832 Create the append file in the <filename>linux</filename> directory you
1813 It needs to be in a <filename>meta-mylayer/recipes-kernel/linux</filename> directory. 1833 created earlier within your layer.
1814 Create the directory and use the following for the append file. 1834 Assuming the patch file is named
1815 This example assumes patch file is named <filename>0001-documentation-calibrate.c.patch</filename>: 1835 <filename>0001-documentation-calibrate.c.patch</filename>, your append
1836 file, which must be named <filename>linux-yocto_3.4.bbappend</filename>,
1837 has these statements:
1816 <literallayout class='monospaced'> 1838 <literallayout class='monospaced'>
1817 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 1839 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
1818 1840