diff options
Diffstat (limited to 'meta/classes/kernel-yocto.bbclass')
-rw-r--r-- | meta/classes/kernel-yocto.bbclass | 71 |
1 files changed, 10 insertions, 61 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass index 4c52bca43a..15802fabdf 100644 --- a/meta/classes/kernel-yocto.bbclass +++ b/meta/classes/kernel-yocto.bbclass | |||
@@ -1,61 +1,5 @@ | |||
1 | S = "${WORKDIR}/linux" | 1 | S = "${WORKDIR}/linux" |
2 | 2 | ||
3 | # Determine which branch to fetch and build. Not all branches are in the | ||
4 | # upstream repo (but will be locally created after the fetchers run) so | ||
5 | # a fallback branch needs to be chosen. | ||
6 | # | ||
7 | # The default machine 'UNDEFINED'. If the machine is not set to a specific | ||
8 | # branch in this recipe or in a recipe extension, then we fallback to a | ||
9 | # branch that is always present 'standard'. This sets the KBRANCH variable | ||
10 | # and is used in the SRC_URI. The machine is then set back to ${MACHINE}, | ||
11 | # since futher processing will use that to create local branches | ||
12 | |||
13 | SRCPV_prepend = "${@yoctokernel_variables_fixup(d)}" | ||
14 | |||
15 | def yoctokernel_variables_fixup(d): | ||
16 | if d.getVar("PVFIXUPDONE", False) is "done": | ||
17 | return "" | ||
18 | |||
19 | import bb, re, string | ||
20 | |||
21 | version = bb.data.getVar("LINUX_VERSION", d, 1) | ||
22 | # 2.6.34 signifies the old-style tree, so we need some temporary | ||
23 | # conditional processing based on the kernel version. | ||
24 | if version == "2.6.34": | ||
25 | bb.data.setVar("KBRANCH", "${KMACHINE}-${LINUX_KERNEL_TYPE}", d) | ||
26 | bb.data.setVar("KMETA", "wrs_meta", d) | ||
27 | mach = bb.data.getVar("KMACHINE", d, 1) | ||
28 | if mach == "UNDEFINED": | ||
29 | bb.data.setVar("KBRANCH", "standard", d) | ||
30 | bb.data.setVar("KMACHINE", "${MACHINE}", d) | ||
31 | # track the global configuration on a bootstrapped BSP | ||
32 | bb.data.setVar("SRCREV_machine", "${SRCREV_meta}", d) | ||
33 | bb.data.setVar("BOOTSTRAP", bb.data.expand("${MACHINE}",d) + "-standard", d) | ||
34 | else: | ||
35 | # The branch for a build is: | ||
36 | # yocto/<kernel type>/${KMACHINE} or | ||
37 | # yocto/<kernel type>/${KMACHINE}/base | ||
38 | mach = bb.data.getVar("KMACHINE_" + bb.data.expand("${MACHINE}",d), d, 1) | ||
39 | if mach == None: | ||
40 | mach = bb.data.getVar("KMACHINE", d, 1) | ||
41 | |||
42 | bb.data.setVar("KBRANCH", mach, d) | ||
43 | bb.data.setVar("KMETA", "meta", d) | ||
44 | |||
45 | # drop the "/base" if it was on the KMACHINE | ||
46 | kmachine = mach.replace('/base','') | ||
47 | # drop everything but the last segment | ||
48 | kmachine = os.path.basename( kmachine ) | ||
49 | # and then write KMACHINE back | ||
50 | bb.data.setVar('KMACHINE_' + bb.data.expand("${MACHINE}",d), kmachine, d) | ||
51 | |||
52 | if mach == "UNDEFINED": | ||
53 | bb.data.setVar('KMACHINE_' + bb.data.expand("${MACHINE}",d), bb.data.expand("${MACHINE}",d), d) | ||
54 | bb.data.setVar("KBRANCH", "yocto/standard/base", d) | ||
55 | bb.data.setVar("BOOTSTRAP", "yocto/standard/" + bb.data.expand("${MACHINE}",d), d) | ||
56 | d.setVar("PVFIXUPDONE", "done") | ||
57 | return "" | ||
58 | |||
59 | do_patch() { | 3 | do_patch() { |
60 | cd ${S} | 4 | cd ${S} |
61 | if [ -f ${WORKDIR}/defconfig ]; then | 5 | if [ -f ${WORKDIR}/defconfig ]; then |
@@ -63,12 +7,11 @@ do_patch() { | |||
63 | fi | 7 | fi |
64 | 8 | ||
65 | kbranch=${KBRANCH} | 9 | kbranch=${KBRANCH} |
66 | if [ -n "${BOOTSTRAP}" ]; then | 10 | if [ -n "${YOCTO_KERNEL_EXTERNAL_BRANCH}" ]; then |
67 | # switch from a generic to a specific branch | 11 | # switch from a generic to a specific branch |
68 | kbranch=${BOOTSTRAP} | 12 | kbranch=${YOCTO_KERNEL_EXTERNAL_BRANCH} |
69 | fi | 13 | fi |
70 | 14 | ||
71 | |||
72 | # simply ensures that a branch of the right name has been created | 15 | # simply ensures that a branch of the right name has been created |
73 | createme ${ARCH} ${kbranch} ${defconfig} | 16 | createme ${ARCH} ${kbranch} ${defconfig} |
74 | if [ $? -ne 0 ]; then | 17 | if [ $? -ne 0 ]; then |
@@ -131,8 +74,14 @@ addtask kernel_checkout before do_patch after do_unpack | |||
131 | do_kernel_configme() { | 74 | do_kernel_configme() { |
132 | echo "[INFO] doing kernel configme" | 75 | echo "[INFO] doing kernel configme" |
133 | 76 | ||
77 | kbranch=${KBRANCH} | ||
78 | if [ -n "${YOCTO_KERNEL_EXTERNAL_BRANCH}" ]; then | ||
79 | # switch from a generic to a specific branch | ||
80 | kbranch=${YOCTO_KERNEL_EXTERNAL_BRANCH} | ||
81 | fi | ||
82 | |||
134 | cd ${S} | 83 | cd ${S} |
135 | configme --reconfig --output ${B} ${KBRANCH} ${MACHINE} | 84 | configme --reconfig --output ${B} ${kbranch} ${MACHINE} |
136 | if [ $? -ne 0 ]; then | 85 | if [ $? -ne 0 ]; then |
137 | echo "ERROR. Could not configure ${KMACHINE}-${LINUX_KERNEL_TYPE}" | 86 | echo "ERROR. Could not configure ${KMACHINE}-${LINUX_KERNEL_TYPE}" |
138 | exit 1 | 87 | exit 1 |
@@ -165,7 +114,7 @@ do_validate_branches() { | |||
165 | target_meta_head="${SRCREV_meta}" | 114 | target_meta_head="${SRCREV_meta}" |
166 | 115 | ||
167 | # nothing to do if bootstrapping | 116 | # nothing to do if bootstrapping |
168 | if [ -n "${BOOTSTRAP}" ]; then | 117 | if [ -n "${YOCTO_KERNEL_EXTERNAL_BRANCH}" ]; then |
169 | return | 118 | return |
170 | fi | 119 | fi |
171 | 120 | ||