summaryrefslogtreecommitdiffstats
path: root/documentation
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2012-05-04 17:17:28 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-05-31 21:22:28 +0100
commita5fe09c6aae3c765cc293d83588300d9a4b39871 (patch)
treefd5bc7b91a8efe09a6e3f9cacc6f622a14d9cb26 /documentation
parent2072256b057db1e237dec9330b7a8ad21b586cc1 (diff)
downloadpoky-a5fe09c6aae3c765cc293d83588300d9a4b39871.tar.gz
documentation/dev-manual/dev-manual-kernel-appendix.xml: Kernel example fixed
Due to a bug (2256) the example that changes the kernel configuration through menuconfig did not work. I have re-written the section to now start with the default behavior of CONFIG_SMP=y and then have the user change the configuration to where it is not set. The changes include the reversing of the flow and the work-around needed due to bug 2256. (From yocto-docs rev: 2eaaafab0390d1108b212b9cfb7ca8365e0f39a9) Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation')
-rw-r--r--documentation/dev-manual/dev-manual-kernel-appendix.xml78
1 files changed, 57 insertions, 21 deletions
diff --git a/documentation/dev-manual/dev-manual-kernel-appendix.xml b/documentation/dev-manual/dev-manual-kernel-appendix.xml
index 7ee0e706be..db6629da2f 100644
--- a/documentation/dev-manual/dev-manual-kernel-appendix.xml
+++ b/documentation/dev-manual/dev-manual-kernel-appendix.xml
@@ -509,8 +509,8 @@
509 <title>Changing the Kernel Configuration</title> 509 <title>Changing the Kernel Configuration</title>
510 510
511 <para> 511 <para>
512 This example changes the default behavior, which is "off", of the Symmetric 512 This example changes the default behavior, which is "on", of the Symmetric
513 Multi-processing Support (<filename>CONFIG_SMP</filename>) to "on". 513 Multi-processing Support (<filename>CONFIG_SMP</filename>) to "off".
514 It is a simple example that demonstrates how to reconfigure the kernel. 514 It is a simple example that demonstrates how to reconfigure the kernel.
515 </para> 515 </para>
516 516
@@ -533,7 +533,7 @@
533 you can get them through tarball extraction or by 533 you can get them through tarball extraction or by
534 cloning the <filename>poky</filename> Git repository. 534 cloning the <filename>poky</filename> Git repository.
535 This example uses <filename>poky</filename> as the root directory of the 535 This example uses <filename>poky</filename> as the root directory of the
536 local Yocto Project files Git repository. 536 local <link linkend='yocto-project-files'>Yocto Project Files</link> Git repository.
537 See the bulleted item 537 See the bulleted item
538 "<link linkend='local-yp-release'>Yocto Project Release</link>" 538 "<link linkend='local-yp-release'>Yocto Project Release</link>"
539 for information on how to get these files. 539 for information on how to get these files.
@@ -616,11 +616,11 @@
616 <title>Examining the Default&nbsp;&nbsp;<filename>CONFIG_SMP</filename> Behavior</title> 616 <title>Examining the Default&nbsp;&nbsp;<filename>CONFIG_SMP</filename> Behavior</title>
617 617
618 <para> 618 <para>
619 By default, <filename>CONFIG_SMP</filename> supports single processor machines. 619 By default, <filename>CONFIG_SMP</filename> supports multiple processor machines.
620 To see this default setting from within the QEMU emulator, boot your image using 620 To see this default setting from within the QEMU emulator, boot your image using
621 the emulator as follows: 621 the emulator as follows:
622 <literallayout class='monospaced'> 622 <literallayout class='monospaced'>
623 $ runqemu qemux86 qemuparams="-smp 2" 623 $ runqemu qemux86 qemuparams="-smp 4"
624 </literallayout> 624 </literallayout>
625 </para> 625 </para>
626 626
@@ -628,12 +628,26 @@
628 Login to the machine using <filename>root</filename> with no password. 628 Login to the machine using <filename>root</filename> with no password.
629 After logging in, enter the following command to see how many processors are 629 After logging in, enter the following command to see how many processors are
630 being supported in the emulator. 630 being supported in the emulator.
631 The emulator reports support for a single processor: 631 The emulator reports support for the number of processors you specified using
632 the <filename>-smp</filename> option, four in this case:
632 <literallayout class='monospaced'> 633 <literallayout class='monospaced'>
633 # cat /proc/cpuinfo | grep processor 634 # cat /proc/cpuinfo | grep processor
634 processor : 0 635 processor : 0
636 processor : 1
637 processor : 2
638 processor : 3
635 # 639 #
636 </literallayout> 640 </literallayout>
641 To check the setting for <filename>CONFIG_SMP</filename>, you can use the
642 following command:
643 <literallayout class='monospaced'>
644 zcat /proc/config.gz | grep CONFIG_SMP
645 </literallayout>
646 The console returns the following showing that multi-processor machine support
647 is set:
648 <literallayout class='monospaced'>
649 CONFIG_SMP=y
650 </literallayout>
637 Logout of the emulator using the <filename>exit</filename> command and 651 Logout of the emulator using the <filename>exit</filename> command and
638 then close it down. 652 then close it down.
639 </para> 653 </para>
@@ -662,11 +676,21 @@
662 kernel. 676 kernel.
663 The Yocto Project build environment recognizes this kernel as 677 The Yocto Project build environment recognizes this kernel as
664 <filename>linux-yocto</filename>. 678 <filename>linux-yocto</filename>.
665 Thus, the following command from the shell in which you previously sourced the 679 Thus, the following commands from the shell in which you previously sourced the
666 environment initialization script launches <filename>menuconfig</filename>: 680 environment initialization script cleans the shared state memory and the
681 <ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink>
682 directory and then builds and launches <filename>menuconfig</filename>:
667 <literallayout class='monospaced'> 683 <literallayout class='monospaced'>
684 $ bitbake linux-yocto -c cleansstate
668 $ bitbake linux-yocto -c menuconfig 685 $ bitbake linux-yocto -c menuconfig
669 </literallayout> 686 </literallayout>
687 <note>
688 Due to a bug in the release, it is necessary to clean the shared state memory
689 in order for configurations made using <filename>menuconfig</filename> to take
690 effect.
691 For information on the bug, see
692 <ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=2256'></ulink>
693 </note>
670 </para> 694 </para>
671 695
672 <para> 696 <para>
@@ -675,7 +699,7 @@
675 You can find it at <filename>Processor Type and Features</filename>. 699 You can find it at <filename>Processor Type and Features</filename>.
676 The configuration selection is 700 The configuration selection is
677 <filename>Symmetric Multi-processing Support</filename>. 701 <filename>Symmetric Multi-processing Support</filename>.
678 After using the arrow keys to highlight this selection, press "y" to select it. 702 After using the arrow keys to highlight this selection, press "n" to turn it off.
679 Then, exit out and save your selections. 703 Then, exit out and save your selections.
680 </para> 704 </para>
681 705
@@ -684,22 +708,25 @@
684 is updated. 708 is updated.
685 This is the file that the build system uses to configure the Linux Yocto kernel 709 This is the file that the build system uses to configure the Linux Yocto kernel
686 when it is built. 710 when it is built.
687 You can find and examine this file in the Yocto Project files Git repository in 711 You can find and examine this file in the Yocto Project Files Git repository in
688 the build directory. 712 the build directory.
689 This example uses the following. 713 This example uses the following:
690 Note that this example directory is artificially split and many of the characters
691 in the actually filename are omitted in order to make it more
692 readable:
693 <literallayout class='monospaced'> 714 <literallayout class='monospaced'>
694 ~/poky/build/tmp/work/qemux86-poky-linux/linux-yocto-2.6.37+git1+84f... 715 ~/poky/build/tmp/work/qemux86-poky-linux/linux-yocto-3.2.11+git1+84f...
695 ...r20/linux-qemux86-standard-build 716 ...656ed30-r1/linux-qemux86-standard-build
696 </literallayout> 717 </literallayout>
718 <note>
719 The previous example directory is artificially split and many of the characters
720 in the actual filename are omitted in order to make it more readable.
721 Also, depending on the kernel you are using, the exact pathname might differ
722 slightly.
723 </note>
697 </para> 724 </para>
698 725
699 <para> 726 <para>
700 Within the <filename>.config</filename> file, you can see the following setting: 727 Within the <filename>.config</filename> file, you can see the following setting:
701 <literallayout class='monospaced'> 728 <literallayout class='monospaced'>
702 CONFIG_SMP=y 729 # CONFIG_SMP is not set
703 </literallayout> 730 </literallayout>
704 </para> 731 </para>
705 732
@@ -735,9 +762,9 @@
735 </para> 762 </para>
736 763
737 <para> 764 <para>
738 Now run the QEMU emulator: 765 Now run the QEMU emulator and pass it the same multi-processor option as before:
739 <literallayout class='monospaced'> 766 <literallayout class='monospaced'>
740 $ runqemu qemux86 qemuparams="-smp 2" 767 $ runqemu qemux86 qemuparams="-smp 4"
741 </literallayout> 768 </literallayout>
742 </para> 769 </para>
743 770
@@ -747,13 +774,22 @@
747 <literallayout class='monospaced'> 774 <literallayout class='monospaced'>
748 # cat /proc/cpuinfo | grep processor 775 # cat /proc/cpuinfo | grep processor
749 processor : 0 776 processor : 0
750 processor : 1
751 # 777 #
752 </literallayout> 778 </literallayout>
753 </para> 779 </para>
754 780
755 <para> 781 <para>
756 From the output, you can see that you have successfully reconfigured the kernel. 782 From the output, you can see that the kernel no longer supports multi-processor systems.
783 The output indicates support for a single processor. You can verify the
784 <filename>CONFIG_SMP</filename> setting by using this command:
785 <literallayout class='monospaced'>
786 zcat /proc/config.gz | grep CONFIG_SMP
787 </literallayout>
788 The console returns the following output:
789 <literallayout class='monospaced'>
790 # CONFIG_SMP is not set
791 </literallayout>
792 You have successfully reconfigured the kernel.
757 </para> 793 </para>
758 </section> 794 </section>
759 </section> 795 </section>