diff options
| -rw-r--r-- | documentation/ref-manual/ref-variables.xml | 106 |
1 files changed, 28 insertions, 78 deletions
diff --git a/documentation/ref-manual/ref-variables.xml b/documentation/ref-manual/ref-variables.xml index 1135728fd2..a79d8e5bcb 100644 --- a/documentation/ref-manual/ref-variables.xml +++ b/documentation/ref-manual/ref-variables.xml | |||
| @@ -6085,92 +6085,42 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3" | |||
| 6085 | <glossdef> | 6085 | <glossdef> |
| 6086 | <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> | 6086 | <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> |
| 6087 | The machine as known by the kernel. | 6087 | The machine as known by the kernel. |
| 6088 | Sometimes the machine name used by the kernel does not match the machine name | 6088 | Sometimes the machine name used by the kernel does not |
| 6089 | used by the OpenEmbedded build system. | 6089 | match the machine name used by the OpenEmbedded build |
| 6090 | For example, the machine name that the OpenEmbedded build system understands as | 6090 | system. |
| 6091 | <filename>qemuarm</filename> goes by a different name in the Linux Yocto kernel. | 6091 | For example, the machine name that the OpenEmbedded build |
| 6092 | The kernel understands that machine as <filename>arm_versatile926ejs</filename>. | 6092 | system understands as |
| 6093 | For cases like these, the <filename>KMACHINE</filename> variable maps the | 6093 | <filename>core2-32-intel-common</filename> goes by a |
| 6094 | kernel machine name to the OpenEmbedded build system machine name. | 6094 | different name in the Linux Yocto kernel. |
| 6095 | The kernel understands that machine as | ||
| 6096 | <filename>intel-core2-32</filename>. | ||
| 6097 | For cases like these, the <filename>KMACHINE</filename> | ||
| 6098 | variable maps the kernel machine name to the OpenEmbedded | ||
| 6099 | build system machine name. | ||
| 6095 | </para> | 6100 | </para> |
| 6096 | 6101 | ||
| 6097 | <para> | 6102 | <para> |
| 6098 | Kernel machine names are initially defined in the | 6103 | These mappings between different names occur in the |
| 6099 | Yocto Linux Kernel's <filename>meta</filename> branch. | 6104 | Yocto Linux Kernel's <filename>meta</filename> branch. |
| 6100 | From the <filename>meta</filename> branch, look in | 6105 | As an example take a look in the |
| 6101 | the <filename>meta/cfg/kernel-cache/bsp/<bsp_name>/<bsp-name>-<kernel-type>.scc</filename> file. | 6106 | <filename>common/recipes-kernel/linux/linux-yocto_3.19.bbappend</filename> |
| 6102 | For example, from the <filename>meta</filename> branch in the | 6107 | file: |
| 6103 | <filename>linux-yocto-3.0</filename> kernel, the | ||
| 6104 | <filename>meta/cfg/kernel-cache/bsp/cedartrail/cedartrail-standard.scc</filename> file | ||
| 6105 | has the following: | ||
| 6106 | <literallayout class='monospaced'> | ||
| 6107 | define KMACHINE cedartrail | ||
| 6108 | define KTYPE standard | ||
| 6109 | define KARCH i386 | ||
| 6110 | |||
| 6111 | include ktypes/standard | ||
| 6112 | branch cedartrail | ||
| 6113 | |||
| 6114 | include cedartrail.scc | ||
| 6115 | </literallayout> | ||
| 6116 | You can see that the kernel understands the machine name for | ||
| 6117 | the Cedar Trail Board Support Package (BSP) as | ||
| 6118 | <filename>cedartrail</filename>. | ||
| 6119 | </para> | ||
| 6120 | |||
| 6121 | <para> | ||
| 6122 | If you look in the Cedar Trail BSP layer in the | ||
| 6123 | <filename>meta-intel</filename> | ||
| 6124 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-repositories'>Source Repositories</ulink> | ||
| 6125 | at <filename>meta-cedartrail/recipes-kernel/linux/linux-yocto_3.0.bbappend</filename>, | ||
| 6126 | you will find the following statements among others: | ||
| 6127 | <literallayout class='monospaced'> | ||
| 6128 | COMPATIBLE_MACHINE_cedartrail = "cedartrail" | ||
| 6129 | KMACHINE_cedartrail = "cedartrail" | ||
| 6130 | KBRANCH_cedartrail = "yocto/standard/cedartrail" | ||
| 6131 | KERNEL_FEATURES_append_cedartrail += "bsp/cedartrail/cedartrail-pvr-merge.scc" | ||
| 6132 | KERNEL_FEATURES_append_cedartrail += "cfg/efi-ext.scc" | ||
| 6133 | |||
| 6134 | COMPATIBLE_MACHINE_cedartrail-nopvr = "cedartrail" | ||
| 6135 | KMACHINE_cedartrail-nopvr = "cedartrail" | ||
| 6136 | KBRANCH_cedartrail-nopvr = "yocto/standard/cedartrail" | ||
| 6137 | KERNEL_FEATURES_append_cedartrail-nopvr += " cfg/smp.scc" | ||
| 6138 | </literallayout> | ||
| 6139 | The <filename>KMACHINE</filename> statements in the kernel's append file make sure that | ||
| 6140 | the OpenEmbedded build system and the Yocto Linux kernel understand the same machine | ||
| 6141 | names. | ||
| 6142 | </para> | ||
| 6143 | |||
| 6144 | <para> | ||
| 6145 | This append file uses two <filename>KMACHINE</filename> statements. | ||
| 6146 | The first is not really necessary but does ensure that the machine known to the | ||
| 6147 | OpenEmbedded build system as <filename>cedartrail</filename> maps to the machine | ||
| 6148 | in the kernel also known as <filename>cedartrail</filename>: | ||
| 6149 | <literallayout class='monospaced'> | ||
| 6150 | KMACHINE_cedartrail = "cedartrail" | ||
| 6151 | </literallayout> | ||
| 6152 | </para> | ||
| 6153 | |||
| 6154 | <para> | ||
| 6155 | The second statement is a good example of why the <filename>KMACHINE</filename> variable | ||
| 6156 | is needed. | ||
| 6157 | In this example, the OpenEmbedded build system uses the <filename>cedartrail-nopvr</filename> | ||
| 6158 | machine name to refer to the Cedar Trail BSP that does not support the proprietary | ||
| 6159 | PowerVR driver. | ||
| 6160 | The kernel, however, uses the machine name <filename>cedartrail</filename>. | ||
| 6161 | Thus, the append file must map the <filename>cedartrail-nopvr</filename> machine name to | ||
| 6162 | the kernel's <filename>cedartrail</filename> name: | ||
| 6163 | <literallayout class='monospaced'> | 6108 | <literallayout class='monospaced'> |
| 6164 | KMACHINE_cedartrail-nopvr = "cedartrail" | 6109 | LINUX_VERSION_core2-32-intel-common = "3.19.0" |
| 6110 | COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}" | ||
| 6111 | SRCREV_meta_core2-32-intel-common = "8897ef68b30e7426bc1d39895e71fb155d694974" | ||
| 6112 | SRCREV_machine_core2-32-intel-common = "43b9eced9ba8a57add36af07736344dcc383f711" | ||
| 6113 | KMACHINE_core2-32-intel-common = "intel-core2-32" | ||
| 6114 | KBRANCH_core2-32-intel-common = "standard/base" | ||
| 6115 | KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}" | ||
| 6165 | </literallayout> | 6116 | </literallayout> |
| 6117 | The <filename>KMACHINE</filename> statement says that | ||
| 6118 | the kernel understands the machine name as | ||
| 6119 | "intel-core2-32". | ||
| 6120 | However, the OpenEmbedded build system understands the | ||
| 6121 | machine as "core2-32-intel-common". | ||
| 6166 | </para> | 6122 | </para> |
| 6167 | 6123 | ||
| 6168 | <para> | ||
| 6169 | BSPs that ship with the Yocto Project release provide all mappings between the Yocto | ||
| 6170 | Project kernel machine names and the OpenEmbedded machine names. | ||
| 6171 | Be sure to use the <filename>KMACHINE</filename> if you create a BSP and the machine | ||
| 6172 | name you use is different than that used in the kernel. | ||
| 6173 | </para> | ||
| 6174 | </glossdef> | 6124 | </glossdef> |
| 6175 | </glossentry> | 6125 | </glossentry> |
| 6176 | 6126 | ||
