summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--documentation/kernel-dev/kernel-dev-common.xml94
1 files changed, 67 insertions, 27 deletions
diff --git a/documentation/kernel-dev/kernel-dev-common.xml b/documentation/kernel-dev/kernel-dev-common.xml
index dcce83fc0e..24feb94b79 100644
--- a/documentation/kernel-dev/kernel-dev-common.xml
+++ b/documentation/kernel-dev/kernel-dev-common.xml
@@ -468,7 +468,8 @@
468 <ulink url='&YOCTO_DOCS_REF_URL;#bitbake-term'>BitBake</ulink> 468 <ulink url='&YOCTO_DOCS_REF_URL;#bitbake-term'>BitBake</ulink>
469 append files (<filename>.bbappend</filename>) and provides a 469 append files (<filename>.bbappend</filename>) and provides a
470 convenient mechanism to create your own recipe files 470 convenient mechanism to create your own recipe files
471 (<filename>.bb</filename>). 471 (<filename>.bb</filename>) as well as store and use kernel
472 patch files.
472 For background information on working with layers, see the 473 For background information on working with layers, see the
473 "<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>Understanding and Creating Layers</ulink>" 474 "<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>Understanding and Creating Layers</ulink>"
474 section in the Yocto Project Development Manual. 475 section in the Yocto Project Development Manual.
@@ -485,8 +486,9 @@
485 </para> 486 </para>
486 487
487 <para> 488 <para>
488 Following is a detailed example showing how to create a layer 489 To better understand the layer you create for kernel development,
489 without the aid of tools for building the kernel: 490 the following section describes how to create a layer
491 without the aid of tools:
490 <orderedlist> 492 <orderedlist>
491 <listitem><para> 493 <listitem><para>
492 <emphasis>Create additional structure</emphasis>: 494 <emphasis>Create additional structure</emphasis>:
@@ -498,9 +500,10 @@
498 $ mkdir recipes-kernel/linux 500 $ mkdir recipes-kernel/linux
499 $ mkdir recipes-kernel/linux/linux-yocto 501 $ mkdir recipes-kernel/linux/linux-yocto
500 </literallayout> 502 </literallayout>
501 The <filename>conf</filename> directory holds your configuration files, while the 503 The <filename>conf</filename> directory holds your
502 <filename>recipes-kernel</filename> directory holds your append file and 504 configuration files, while the
503 your patch file. 505 <filename>recipes-kernel</filename> directory holds your
506 append file and eventual patch files.
504 </para></listitem> 507 </para></listitem>
505 <listitem><para> 508 <listitem><para>
506 <emphasis>Create the layer configuration file</emphasis>: 509 <emphasis>Create the layer configuration file</emphasis>:
@@ -519,29 +522,35 @@
519 BBFILE_PATTERN_mylayer = "^${LAYERDIR}/" 522 BBFILE_PATTERN_mylayer = "^${LAYERDIR}/"
520 BBFILE_PRIORITY_mylayer = "5" 523 BBFILE_PRIORITY_mylayer = "5"
521 </literallayout> 524 </literallayout>
522 Notice <filename>mylayer</filename> as part of the last three 525 Notice <filename>mylayer</filename> as part of the last
523 statements.</para></listitem> 526 three statements.
527 </para></listitem>
524 <listitem><para> 528 <listitem><para>
525 <emphasis>Create the kernel recipe append file</emphasis>: 529 <emphasis>Create the kernel recipe append file</emphasis>:
526 Move to the <filename>meta-mylayer/recipes-kernel/linux</filename> directory and create 530 Move to the
527 the <filename>linux-yocto_3.4.bbappend</filename> file as follows: 531 <filename>meta-mylayer/recipes-kernel/linux</filename>
532 directory and create the kernel's append file.
533 This example uses the
534 <filename>linux-yocto_4.12</filename> kernel.
535 Thus, the name of the append file is
536 <filename>linux-yocto_4.12.bbappend</filename>:
528 <literallayout class='monospaced'> 537 <literallayout class='monospaced'>
529 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 538 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
530 539
531 SRC_URI += "file://0001-calibrate-Add-printk-example.patch" 540 SRC_URI += "file://<replaceable>patch-file-one</replaceable>"
541 SRC_URI += "file://<replaceable>patch-file-two</replaceable>"
542 SRC_URI += "file://<replaceable>patch-file-three</replaceable>"
532 </literallayout> 543 </literallayout>
533 The <ulink url='&YOCTO_DOCS_REF_URL;#var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></ulink> 544 The
534 and <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink> 545 <ulink url='&YOCTO_DOCS_REF_URL;#var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></ulink>
535 statements enable the OpenEmbedded build system to find the patch file. 546 and
547 <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
548 statements enable the OpenEmbedded build system to find
549 patch files.
536 For more information on using append files, see the 550 For more information on using append files, see the
537 "<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files in Your Layer</ulink>" 551 "<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files in Your Layer</ulink>"
538 section in the Yocto Project Development Manual. 552 section in the Yocto Project Development Manual.
539 </para></listitem> 553 </para></listitem>
540 <listitem><para>
541 <emphasis>Put the patch file in your layer</emphasis>:
542 Move the <filename>0001-calibrate-Add-printk-example.patch</filename> file to
543 the <filename>meta-mylayer/recipes-kernel/linux/linux-yocto</filename>
544 directory.</para></listitem>
545 </orderedlist> 554 </orderedlist>
546 </para> 555 </para>
547 </section> 556 </section>
@@ -1371,16 +1380,47 @@
1371 </literallayout> 1380 </literallayout>
1372 </para></listitem> 1381 </para></listitem>
1373 <listitem><para> 1382 <listitem><para>
1374 <emphasis>Prepare Your Layer for Subsequent Builds:</emphasis> 1383 <emphasis>Make Changes to Use Patch Files During Subsequent Builds:</emphasis>
1375 In order for subsequent builds to pick up patches, the 1384 In order for subsequent builds to pick up patches, you
1376 patches need to be stored in a layer. 1385 need to make some changes in your layer.
1377 This example created the layer 1386 This example created the layer
1378 <filename>meta-mylayer</filename> earlier but left it 1387 <filename>meta-mylayer</filename> earlier with basically
1379 pretty much empty. 1388 just a <filename>bblayers.conf</filename> file.
1380 To get it ready for subsequent builds that automatically 1389 To get it ready for subsequent builds that automatically
1381 apply patches, follow the steps in the 1390 apply patches, you need to create an kernel recipe append
1382 "<link linkend='creating-and-preparing-a-layer'>Creating and Preparing a Layer</link>" 1391 file.</para>
1383 section. 1392
1393 <para>Move to the <filename>meta-mylayer</filename>
1394 directory and create some extra structure in your layer:
1395 <literallayout class='monospaced'>
1396 $ cd ~/poky/meta-mylayer
1397 $ mkdir recipes-kernel
1398 $ mkdir recipes-kernel/linux
1399 $ mkdir recipes-kernel/linux/linux-yocto
1400 </literallayout></para>
1401
1402 <para>In the
1403 <filename>recipes-kernel/linux/linux-yocto</filename>
1404 directory, create an append file named
1405 <filename>linux-yocto_4.12.bbappend</filename> with the
1406 following contents:
1407 <literallayout class='monospaced'>
1408 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
1409
1410 SRC_URI += "file://0001-calibrate.c-Added-some-printk-statements.patch"
1411 </literallayout>
1412 The
1413 <ulink url='&YOCTO_DOCS_REF_URL;var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></ulink>
1414 and
1415 <ulink url='&YOCTO_DOCS_REF_URL;var-SRC_URI'><filename>SRC_URI</filename></ulink>
1416 statements enable the OpenEmbedded build system to find
1417 the patch file.
1418 For more information on using append files, see the
1419 "<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files in Your Layer"</ulink>"
1420 section in the Yocto Project Development Manual.</para>
1421
1422 <para>Move the patch file you created in the earlier step
1423 to the TBD
1384 </para></listitem> 1424 </para></listitem>
1385 </orderedlist> 1425 </orderedlist>
1386 </para> 1426 </para>