diff options
| -rw-r--r-- | meta/classes/kernel-yocto.bbclass | 71 | ||||
| -rw-r--r-- | meta/conf/distro/include/poky-default-revisions.inc | 2 | ||||
| -rw-r--r-- | meta/recipes-kernel/linux/linux-yocto-stable_git.bb | 10 | ||||
| -rw-r--r-- | meta/recipes-kernel/linux/linux-yocto.inc | 4 | ||||
| -rw-r--r-- | meta/recipes-kernel/linux/linux-yocto_git.bb | 4 |
5 files changed, 22 insertions, 69 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 | ||
diff --git a/meta/conf/distro/include/poky-default-revisions.inc b/meta/conf/distro/include/poky-default-revisions.inc index 9abc4a55b4..951b3aa6d1 100644 --- a/meta/conf/distro/include/poky-default-revisions.inc +++ b/meta/conf/distro/include/poky-default-revisions.inc | |||
| @@ -59,7 +59,7 @@ SRCREV_pn-gypsy ??= "147" | |||
| 59 | SRCREV_pn-inputproto ??= "7203036522ba9d4b224d282d6afc2d0b947711ee" | 59 | SRCREV_pn-inputproto ??= "7203036522ba9d4b224d282d6afc2d0b947711ee" |
| 60 | SRCREV_pn-inputproto-native ??= "7203036522ba9d4b224d282d6afc2d0b947711ee" | 60 | SRCREV_pn-inputproto-native ??= "7203036522ba9d4b224d282d6afc2d0b947711ee" |
| 61 | SRCREV_pn-inputproto-nativesdk ??= "7203036522ba9d4b224d282d6afc2d0b947711ee" | 61 | SRCREV_pn-inputproto-nativesdk ??= "7203036522ba9d4b224d282d6afc2d0b947711ee" |
| 62 | SRCREV_pn-kern-tools-native ??= "fde7ef8fa8043607752563b9b7908f487eb2f7dd" | 62 | SRCREV_pn-kern-tools-native ??= "4f13a46499261ea181fdc13db5459067df08aca7" |
| 63 | SRCREV_pn-libdrm ??= "3f3c5be6f908272199ccf53f108b1124bfe0a00e" | 63 | SRCREV_pn-libdrm ??= "3f3c5be6f908272199ccf53f108b1124bfe0a00e" |
| 64 | SRCREV_pn-libfakekey ??= "e8c2e412ea4a417afc1f30e32cb7bdc508b1dccc" | 64 | SRCREV_pn-libfakekey ??= "e8c2e412ea4a417afc1f30e32cb7bdc508b1dccc" |
| 65 | SRCREV_pn-libgdbus ??= "aeab6e3c0185b271ca343b439470491b99cc587f" | 65 | SRCREV_pn-libgdbus ??= "aeab6e3c0185b271ca343b439470491b99cc587f" |
diff --git a/meta/recipes-kernel/linux/linux-yocto-stable_git.bb b/meta/recipes-kernel/linux/linux-yocto-stable_git.bb index d4bee77c21..3c1e669733 100644 --- a/meta/recipes-kernel/linux/linux-yocto-stable_git.bb +++ b/meta/recipes-kernel/linux/linux-yocto-stable_git.bb | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | inherit kernel | 1 | inherit kernel |
| 2 | require linux-yocto.inc | 2 | require linux-yocto.inc |
| 3 | 3 | ||
| 4 | KMACHINE = "common_pc" | ||
| 4 | KMACHINE_qemux86 = "common_pc" | 5 | KMACHINE_qemux86 = "common_pc" |
| 5 | KMACHINE_qemux86-64 = "common_pc_64" | 6 | KMACHINE_qemux86-64 = "common_pc_64" |
| 6 | KMACHINE_qemuppc = "qemu_ppc32" | 7 | KMACHINE_qemuppc = "qemu_ppc32" |
| @@ -14,20 +15,19 @@ KMACHINE_beagleboard = "beagleboard" | |||
| 14 | LINUX_VERSION ?= "2.6.34" | 15 | LINUX_VERSION ?= "2.6.34" |
| 15 | LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE_EXTENSION}" | 16 | LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE_EXTENSION}" |
| 16 | 17 | ||
| 18 | KMETA = wrs_meta | ||
| 19 | KBRANCH = ${KMACHINE}-${LINUX_KERNEL_TYPE_EXTENSION} | ||
| 20 | |||
| 17 | PR = "r1" | 21 | PR = "r1" |
| 18 | PV = "${LINUX_VERSION}+git${SRCPV}" | 22 | PV = "${LINUX_VERSION}+git${SRCPV}" |
| 19 | SRCREV_FORMAT = "meta_machine" | 23 | SRCREV_FORMAT = "meta_machine" |
| 20 | 24 | ||
| 21 | COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64|atom-pc|routerstationpro|mpc8315e-rdb|beagleboard)" | 25 | COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64|atom-pc|routerstationpro|mpc8315e-rdb|beagleboard)" |
| 22 | 26 | ||
| 23 | # this performs a fixup on the SRCREV for new/undefined BSPs | 27 | # this performs a fixup on historical kernel types with embedded _'s |
| 24 | python __anonymous () { | 28 | python __anonymous () { |
| 25 | import bb, re, string | 29 | import bb, re, string |
| 26 | 30 | ||
| 27 | rev = bb.data.getVar("SRCREV_machine", d, 1) | ||
| 28 | if rev == "standard": | ||
| 29 | bb.data.setVar("SRCREV_machine", "${SRCREV_meta}", d) | ||
| 30 | |||
| 31 | kerntype = string.replace(bb.data.expand("${LINUX_KERNEL_TYPE}", d), "_", "-") | 31 | kerntype = string.replace(bb.data.expand("${LINUX_KERNEL_TYPE}", d), "_", "-") |
| 32 | bb.data.setVar("LINUX_KERNEL_TYPE_EXTENSION", kerntype, d) | 32 | bb.data.setVar("LINUX_KERNEL_TYPE_EXTENSION", kerntype, d) |
| 33 | } | 33 | } |
diff --git a/meta/recipes-kernel/linux/linux-yocto.inc b/meta/recipes-kernel/linux/linux-yocto.inc index 3ad849e46e..03935fa702 100644 --- a/meta/recipes-kernel/linux/linux-yocto.inc +++ b/meta/recipes-kernel/linux/linux-yocto.inc | |||
| @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" | |||
| 7 | # A KMACHINE is the mapping of a yocto $MACHINE to what is built | 7 | # A KMACHINE is the mapping of a yocto $MACHINE to what is built |
| 8 | # by the kernel. This is typically the branch that should be built, | 8 | # by the kernel. This is typically the branch that should be built, |
| 9 | # and it can be specific to the machine or shared | 9 | # and it can be specific to the machine or shared |
| 10 | KMACHINE = "UNDEFINED" | 10 | # KMACHINE = "UNDEFINED" |
| 11 | 11 | ||
| 12 | # Set this to 'preempt_rt' in the local.conf if you want a real time kernel | 12 | # Set this to 'preempt_rt' in the local.conf if you want a real time kernel |
| 13 | LINUX_KERNEL_TYPE ?= standard | 13 | LINUX_KERNEL_TYPE ?= standard |
| @@ -19,4 +19,4 @@ addtask kernel_configme before do_configure after do_patch | |||
| 19 | # Pick up shared functions | 19 | # Pick up shared functions |
| 20 | inherit kernel-yocto | 20 | inherit kernel-yocto |
| 21 | 21 | ||
| 22 | B = "${WORKDIR}/linux-${KMACHINE}-${LINUX_KERNEL_TYPE}-build" | 22 | B = "${WORKDIR}/linux-${MACHINE}-${LINUX_KERNEL_TYPE}-build" |
diff --git a/meta/recipes-kernel/linux/linux-yocto_git.bb b/meta/recipes-kernel/linux/linux-yocto_git.bb index cc52397006..75c6fb1653 100644 --- a/meta/recipes-kernel/linux/linux-yocto_git.bb +++ b/meta/recipes-kernel/linux/linux-yocto_git.bb | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | inherit kernel | 1 | inherit kernel |
| 2 | require linux-yocto.inc | 2 | require linux-yocto.inc |
| 3 | 3 | ||
| 4 | KMACHINE = "yocto/standard/base" | ||
| 4 | KMACHINE_qemux86 = "yocto/standard/common-pc/base" | 5 | KMACHINE_qemux86 = "yocto/standard/common-pc/base" |
| 5 | KMACHINE_qemux86-64 = "yocto/standard/common-pc-64/base" | 6 | KMACHINE_qemux86-64 = "yocto/standard/common-pc-64/base" |
| 6 | KMACHINE_qemuppc = "yocto/standard/qemu-ppc32" | 7 | KMACHINE_qemuppc = "yocto/standard/qemu-ppc32" |
| @@ -11,6 +12,9 @@ KMACHINE_routerstationpro = "yocto/standard/routerstationpro" | |||
| 11 | KMACHINE_mpc8315e-rdb = "yocto/standard/fsl-mpc8315e-rdb" | 12 | KMACHINE_mpc8315e-rdb = "yocto/standard/fsl-mpc8315e-rdb" |
| 12 | KMACHINE_beagleboard = "yocto/standard/beagleboard" | 13 | KMACHINE_beagleboard = "yocto/standard/beagleboard" |
| 13 | 14 | ||
| 15 | KBRANCH = ${KMACHINE} | ||
| 16 | KMETA = meta | ||
| 17 | |||
| 14 | LINUX_VERSION ?= "2.6.37" | 18 | LINUX_VERSION ?= "2.6.37" |
| 15 | LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE}" | 19 | LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE}" |
| 16 | PR = "r15" | 20 | PR = "r15" |
