summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--documentation/dev-manual/dev-manual-common-tasks.xml103
1 files changed, 63 insertions, 40 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml
index 63c915ccc8..1ba267a5cd 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -2461,34 +2461,47 @@
2461 <title>Adding a New Machine</title> 2461 <title>Adding a New Machine</title>
2462 2462
2463 <para> 2463 <para>
2464 Adding a new machine to the Yocto Project is a straightforward process. 2464 Adding a new machine to the Yocto Project is a straight forward
2465 This section provides information that gives you an idea of the changes you must make. 2465 process.
2466 The information covers adding machines similar to those the Yocto Project already supports. 2466 This section describes how to add machines that are similar
2467 Although well within the capabilities of the Yocto Project, adding a totally new architecture 2467 to those that the Yocto Project already supports.
2468 might require 2468 <note>
2469 changes to <filename>gcc/eglibc</filename> and to the site information, which is 2469 Although well within the capabilities of the Yocto Project,
2470 beyond the scope of this manual. 2470 adding a totally new architecture might require
2471 changes to <filename>gcc/eglibc</filename> and to the site
2472 information, which is beyond the scope of this manual.
2473 </note>
2471 </para> 2474 </para>
2472 2475
2473 <para> 2476 <para>
2474 For a complete example that shows how to add a new machine, 2477 For a complete example that shows how to add a new machine,
2475 see the 2478 see the
2476 "<ulink url='&YOCTO_DOCS_BSP_URL;#creating-a-new-bsp-layer-using-the-yocto-bsp-script'>Creating a New BSP Layer Using the yocto-bsp Script</ulink>" 2479 "<ulink url='&YOCTO_DOCS_BSP_URL;#creating-a-new-bsp-layer-using-the-yocto-bsp-script'>Creating a New BSP Layer Using the yocto-bsp Script</ulink>"
2477 in the Yocto Project Board Support Package (BSP) Developer's Guide. 2480 section in the Yocto Project Board Support Package (BSP) Developer's Guide.
2478 </para> 2481 </para>
2479 2482
2480 <section id="platdev-newmachine-conffile"> 2483 <section id="platdev-newmachine-conffile">
2481 <title>Adding the Machine Configuration File</title> 2484 <title>Adding the Machine Configuration File</title>
2482 2485
2483 <para> 2486 <para>
2484 To add a machine configuration, you need to add a <filename>.conf</filename> file 2487 To add a new machine, you need to add a new machine
2485 with details of the device being added to the <filename>conf/machine/</filename> file. 2488 configuration file to the layer's
2486 The name of the file determines the name the OpenEmbedded build system 2489 <filename>conf/machine</filename> directory.
2487 uses to reference the new machine. 2490 This configuration file provides details about the device
2491 you are adding.
2492 </para>
2493
2494 <para>
2495 The OpenEmbedded build system uses the root name of the
2496 machine configuration file to reference the new machine.
2497 For example, given a machine configuration file named
2498 <filename>crownbay.conf</filename>, the build system
2499 recognizes the machine as "crownbay".
2488 </para> 2500 </para>
2489 2501
2490 <para> 2502 <para>
2491 The most important variables to set in this file are as follows: 2503 The most important variables you must set in your machine
2504 configuration file are as follows:
2492 <itemizedlist> 2505 <itemizedlist>
2493 <listitem><para><filename><ulink url='&YOCTO_DOCS_REF_URL;#var-TARGET_ARCH'>TARGET_ARCH</ulink></filename> 2506 <listitem><para><filename><ulink url='&YOCTO_DOCS_REF_URL;#var-TARGET_ARCH'>TARGET_ARCH</ulink></filename>
2494 (e.g. "arm")</para></listitem> 2507 (e.g. "arm")</para></listitem>
@@ -2512,9 +2525,10 @@
2512 </para> 2525 </para>
2513 2526
2514 <para> 2527 <para>
2515 You can find full details on these variables in the reference section. 2528 You can find full details on these variables in the reference
2516 You can leverage many existing machine <filename>.conf</filename> files from 2529 section.
2517 <filename>meta/conf/machine/</filename>. 2530 You can leverage existing machine <filename>.conf</filename>
2531 files from <filename>meta-yocto-bsp/conf/machine/</filename>.
2518 </para> 2532 </para>
2519 </section> 2533 </section>
2520 2534
@@ -2522,37 +2536,46 @@
2522 <title>Adding a Kernel for the Machine</title> 2536 <title>Adding a Kernel for the Machine</title>
2523 2537
2524 <para> 2538 <para>
2525 The OpenEmbedded build system needs to be able to build a kernel for the machine. 2539 The OpenEmbedded build system needs to be able to build a kernel
2526 You need to either create a new kernel recipe for this machine, or extend an 2540 for the machine.
2527 existing recipe. 2541 You need to either create a new kernel recipe for this machine,
2528 You can find several kernel examples in the 2542 or extend an existing kernel recipe.
2529 Source Directory at <filename>meta/recipes-kernel/linux</filename> 2543 You can find several kernel recipe examples in the
2544 Source Directory at
2545 <filename>meta/recipes-kernel/linux</filename>
2530 that you can use as references. 2546 that you can use as references.
2531 </para> 2547 </para>
2532 2548
2533 <para> 2549 <para>
2534 If you are creating a new recipe, normal recipe-writing rules apply for setting 2550 If you are creating a new kernel recipe, normal recipe-writing
2535 up a 2551 rules apply for setting up a
2536 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'>SRC_URI</ulink></filename>. 2552 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'>SRC_URI</ulink></filename>.
2537 Thus, you need to specify any necessary patches and set 2553 Thus, you need to specify any necessary patches and set
2538 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-S'>S</ulink></filename> to point at the source code. 2554 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-S'>S</ulink></filename>
2539 You need to create a <filename>configure</filename> task that configures the 2555 to point at the source code.
2540 unpacked kernel with a defconfig. 2556 You need to create a <filename>do_configure</filename> task that
2541 You can do this by using a <filename>make defconfig</filename> command or, 2557 configures the unpacked kernel with a
2542 more commonly, by copying in a suitable <filename>defconfig</filename> file and then running 2558 <filename>defconfig</filename> file.
2559 You can do this by using a <filename>make defconfig</filename>
2560 command or, more commonly, by copying in a suitable
2561 <filename>defconfig</filename> file and then running
2543 <filename>make oldconfig</filename>. 2562 <filename>make oldconfig</filename>.
2544 By making use of <filename>inherit kernel</filename> and potentially some of the 2563 By making use of <filename>inherit kernel</filename> and
2545 <filename>linux-*.inc</filename> files, most other functionality is 2564 potentially some of the <filename>linux-*.inc</filename> files,
2546 centralized and the defaults of the class normally work well. 2565 most other functionality is centralized and the defaults of the
2566 class normally work well.
2547 </para> 2567 </para>
2548 2568
2549 <para> 2569 <para>
2550 If you are extending an existing kernel, it is usually a matter of adding a 2570 If you are extending an existing kernel recipe, it is usually
2551 suitable defconfig file. 2571 a matter of adding a suitable <filename>defconfig</filename>
2552 The file needs to be added into a location similar to defconfig files 2572 file.
2553 used for other machines in a given kernel. 2573 The file needs to be added into a location similar to
2574 <filename>defconfig</filename> files used for other machines
2575 in a given kernel recipe.
2554 A possible way to do this is by listing the file in the 2576 A possible way to do this is by listing the file in the
2555 <filename>SRC_URI</filename> and adding the machine to the expression in 2577 <filename>SRC_URI</filename> and adding the machine to the
2578 expression in
2556 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-COMPATIBLE_MACHINE'>COMPATIBLE_MACHINE</ulink></filename>: 2579 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-COMPATIBLE_MACHINE'>COMPATIBLE_MACHINE</ulink></filename>:
2557 <literallayout class='monospaced'> 2580 <literallayout class='monospaced'>
2558 COMPATIBLE_MACHINE = '(qemux86|qemumips)' 2581 COMPATIBLE_MACHINE = '(qemux86|qemumips)'
@@ -2587,7 +2610,7 @@
2587 </para> 2610 </para>
2588 2611
2589 <para> 2612 <para>
2590 Following is an example for qemuarm: 2613 Following is an example for "qemuarm" machine:
2591 <literallayout class='monospaced'> 2614 <literallayout class='monospaced'>
2592 HAVE_TOUCHSCREEN=1 2615 HAVE_TOUCHSCREEN=1
2593 HAVE_KEYBOARD=1 2616 HAVE_KEYBOARD=1
@@ -2714,8 +2737,7 @@
2714 2737
2715 <para> 2738 <para>
2716 Aside from this wiki page, several examples exist in the 2739 Aside from this wiki page, several examples exist in the
2717 <ulink url='&YOCTO_GIT_URL;/cgit.cgi/poky/tree/meta-skeleton'><filename>meta-skeleton</filename></ulink> 2740 <filename>meta-skeleton</filename> layer found in the
2718 layer found in the
2719 <link linkend='source-directory'>Source Directory</link>: 2741 <link linkend='source-directory'>Source Directory</link>:
2720 <itemizedlist> 2742 <itemizedlist>
2721 <listitem><para><filename>conf/multilib-example.conf</filename> 2743 <listitem><para><filename>conf/multilib-example.conf</filename>
@@ -2746,7 +2768,8 @@
2746 done using the 2768 done using the
2747 <ulink url='&YOCTO_DOCS_REF_URL;#var-BBCLASSEXTEND'><filename>BBCLASSEXTEND</filename></ulink> 2769 <ulink url='&YOCTO_DOCS_REF_URL;#var-BBCLASSEXTEND'><filename>BBCLASSEXTEND</filename></ulink>
2748 variable. 2770 variable.
2749 Eventually, all recipes will be covered and this list will be unneeded. 2771 Eventually, all recipes will be covered and this list will
2772 not be needed.
2750 </para> 2773 </para>
2751 2774
2752 <para> 2775 <para>