diff options
Diffstat (limited to 'documentation/ref-manual/ref-variables.xml')
-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 | ||