summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/linux/linux-yocto_git.bb
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@windriver.com>2010-11-15 11:25:58 -0500
committerSaul Wold <Saul.Wold@intel.com>2010-11-18 13:30:22 -0800
commitc70816cb9022dfedd78817bb1dfe20219fe2dd90 (patch)
tree764704dc00eacf53e7a276a0840a32c71160f27f /meta/recipes-kernel/linux/linux-yocto_git.bb
parent771d890d086534536ff4aa4a386f17e2b697c0be (diff)
downloadpoky-c70816cb9022dfedd78817bb1dfe20219fe2dd90.tar.gz
linux-wrs: rename to linux-yocto
The existing preferred yocto kernel wasn't named appropriately and needs to be updated. In keeping the changes small and isolated, this commit simply renames the recipe and some internal variables. Future commits will refactor the code into more usable blocks. Now that linuy-wrs has been renamed linux-yocto, we need to rename and update an board configurations and append files. Now that linux-wrs has been renamed linux-yocto, we need to update the SRCREVs to have the new name. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Diffstat (limited to 'meta/recipes-kernel/linux/linux-yocto_git.bb')
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_git.bb223
1 files changed, 223 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/linux-yocto_git.bb b/meta/recipes-kernel/linux/linux-yocto_git.bb
new file mode 100644
index 0000000000..ef005aefca
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-yocto_git.bb
@@ -0,0 +1,223 @@
1DESCRIPTION = "Yocto Kernel"
2SECTION = "kernel"
3LICENSE = "GPL"
4
5# Set this to 'preempt_rt' in the local.conf if you want a real time kernel
6LINUX_KERNEL_TYPE ?= standard
7SRCREV_FORMAT = "meta_machine"
8PV = "2.6.34+git${SRCPV}"
9
10# To use a staged, on-disk bare clone of a Wind River Kernel, use a
11# variant of the below
12# SRC_URI = "git://///path/to/kernel/default_kernel.git;fullclone=1"
13SRC_URI = "git://git.pokylinux.org/linux-2.6-windriver.git;protocol=git;fullclone=1;branch=${KBRANCH};name=machine \
14 git://git.pokylinux.org/linux-2.6-windriver.git;protocol=git;noclone=1;branch=wrs_meta;name=meta"
15
16# map the poky machine to a 'kernel machine'
17KMACHINE = "UNDEFINED"
18KMACHINE_qemux86 = "common_pc"
19KMACHINE_qemux86-64 = "common_pc_64"
20KMACHINE_qemuppc = "qemu_ppc32"
21KMACHINE_qemumips = "mti_malta32_be"
22KMACHINE_qemuarm = "arm_versatile_926ejs"
23KMACHINE_atom-pc = "atom-pc"
24KMACHINE_routerstationpro = "routerstationpro"
25KMACHINE_mpc8315e-rdb = "fsl-mpc8315e-rdb"
26KMACHINE_beagleboard = "beagleboard"
27
28# Determine which branch to fetch and build. Not all branches are in the
29# upstream repo (but will be locally created after the fetchers run) so
30# a fallback branch needs to be chosen.
31#
32# The default machine 'UNDEFINED'. If the machine is not set to a specific
33# branch in this recipe or in a recipe extension, then we fallback to a
34# branch that is always present 'standard'. This sets the KBRANCH variable
35# and is used in the SRC_URI. The machine is then set back to ${MACHINE},
36# since futher processing will use that to create local branches
37python __anonymous () {
38 import bb, re
39
40 bb.data.setVar("KBRANCH", "${KMACHINE}-${LINUX_KERNEL_TYPE}", d)
41 mach = bb.data.getVar("KMACHINE", d, 1)
42 if mach == "UNDEFINED":
43 bb.data.setVar("KBRANCH", "standard", d)
44 bb.data.setVar("KMACHINE", "${MACHINE}", d)
45 # track the global configuration on a bootstrapped BSP
46 bb.data.setVar("SRCREV_machine", "${SRCREV_meta}", d)
47 bb.data.setVar("BOOTSTRAP", "t", d)
48}
49
50COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64|atom-pc|routerstationpro|mpc8315e-rdb|beagleboard)"
51
52LINUX_VERSION = "v2.6.34"
53LINUX_VERSION_EXTENSION = "-wr-${LINUX_KERNEL_TYPE}"
54PR = "r13"
55
56S = "${WORKDIR}/linux"
57B = "${WORKDIR}/linux-${KMACHINE}-${LINUX_KERNEL_TYPE}-build"
58
59# functionality flags
60KERNEL_REVISION_CHECKING ?= "t"
61KERNEL_FEATURES=features/netfilter
62
63do_patch() {
64 cd ${S}
65 if [ -f ${WORKDIR}/defconfig ]; then
66 defconfig=${WORKDIR}/defconfig
67 fi
68
69 # simply ensures that a branch of the right name has been created
70 createme ${ARCH} ${KMACHINE}-${LINUX_KERNEL_TYPE} ${defconfig}
71 if [ $? -ne 0 ]; then
72 echo "ERROR. Could not create ${KMACHINE}-${LINUX_KERNEL_TYPE}"
73 exit 1
74 fi
75
76 # updates or generates the target description
77 if [ -n "${KERNEL_FEATURES}" ]; then
78 addon_features="--features ${KERNEL_FEATURES}"
79 fi
80 updateme ${addon_features} ${ARCH} ${WORKDIR}
81 if [ $? -ne 0 ]; then
82 echo "ERROR. Could not update ${KMACHINE}-${LINUX_KERNEL_TYPE}"
83 exit 1
84 fi
85
86 # executes and modifies the source tree as required
87 patchme ${KMACHINE}-${LINUX_KERNEL_TYPE}
88 if [ $? -ne 0 ]; then
89 echo "ERROR. Could not modify ${KMACHINE}-${LINUX_KERNEL_TYPE}"
90 exit 1
91 fi
92}
93
94validate_branches() {
95 branch_head=`git show-ref -s --heads ${KBRANCH}`
96 meta_head=`git show-ref -s --heads wrs_meta`
97 target_branch_head="${SRCREV_machine}"
98 target_meta_head="${SRCREV_meta}"
99
100 if [ -n "$target_branch_head" ] && [ "$branch_head" != "$target_branch_head" ]; then
101 if [ -n "${KERNEL_REVISION_CHECKING}" ]; then
102 git show ${target_branch_head} > /dev/null 2>&1
103 if [ $? -eq 0 ]; then
104 echo "Forcing branch ${KMACHINE}-${LINUX_KERNEL_TYPE} to ${target_branch_head}"
105 git branch -m ${KMACHINE}-${LINUX_KERNEL_TYPE} ${KMACHINE}-${LINUX_KERNEL_TYPE}-orig
106 git checkout -b ${KMACHINE}-${LINUX_KERNEL_TYPE} ${target_branch_head}
107 else
108 echo "ERROR ${target_branch_head} is not a valid commit ID."
109 echo "The kernel source tree may be out of sync"
110 exit 1
111 fi
112 fi
113 fi
114
115 if [ "$meta_head" != "$target_meta_head" ]; then
116 if [ -n "${KERNEL_REVISION_CHECKING}" ]; then
117 git show ${target_meta_head} > /dev/null 2>&1
118 if [ $? -eq 0 ]; then
119 echo "Forcing branch wrs_meta to ${target_meta_head}"
120 git branch -m wrs_meta wrs_meta-orig
121 git checkout -b wrs_meta ${target_meta_head}
122 else
123 echo "ERROR ${target_meta_head} is not a valid commit ID"
124 echo "The kernel source tree may be out of sync"
125 exit 1
126 fi
127 fi
128 fi
129}
130
131do_kernel_checkout() {
132 if [ -d ${WORKDIR}/.git/refs/remotes/origin ]; then
133 echo "Fixing up git directory for ${KMACHINE}-${LINUX_KERNEL_TYPE}"
134 rm -rf ${S}
135 mkdir ${S}
136 mv ${WORKDIR}/.git ${S}
137
138 if [ -e ${S}/.git/packed-refs ]; then
139 cd ${S}
140 rm -f .git/refs/remotes/origin/HEAD
141IFS='
142';
143
144 for r in `git show-ref | grep remotes`; do
145 ref=`echo $r | cut -d' ' -f1`;
146 b=`echo $r | cut -d'/' -f4`;
147 echo $ref > .git/refs/heads/$b
148 done
149 cd ..
150 else
151 mv ${S}/.git/refs/remotes/origin/* ${S}/.git/refs/heads
152 rmdir ${S}/.git/refs/remotes/origin
153 fi
154 fi
155 cd ${S}
156
157 # checkout and clobber and unimportant files
158 git checkout -f ${KBRANCH}
159
160 if [ -z "${BOOTSTRAP}" ]; then
161 validate_branches
162 fi
163
164 # this second checkout is intentional, we want to leave ourselves
165 # on the branch to be built, but validate_branches could have changed
166 # our initial checkout. So we do it a second time to be sure
167 git checkout -f ${KBRANCH}
168}
169do_kernel_checkout[dirs] = "${S}"
170
171addtask kernel_checkout before do_patch after do_unpack
172
173do_kernel_configme() {
174 echo "Doing kernel configme"
175
176 cd ${S}
177 configme --reconfig
178 if [ $? -ne 0 ]; then
179 echo "ERROR. Could not configure ${KMACHINE}-${LINUX_KERNEL_TYPE}"
180 exit 1
181 fi
182
183 echo "# CONFIG_WRNOTE is not set" >> ${B}/.config
184 echo "# Global settings from linux recipe" >> ${B}/.config
185 echo "CONFIG_LOCALVERSION="\"${LINUX_VERSION_EXTENSION}\" >> ${B}/.config
186}
187
188do_kernel_configcheck() {
189 echo "[INFO] validating kernel configuration"
190 cd ${B}/..
191 kconf_check ${B}/.config ${B} ${S} ${B} ${LINUX_VERSION} ${KMACHINE}-${LINUX_KERNEL_TYPE}
192}
193
194do_kernel_link_vmlinux() {
195 if [ ! -d "${B}/arch/${ARCH}/boot" ]; then
196 mkdir ${B}/arch/${ARCH}/boot
197 fi
198 cd ${B}/arch/${ARCH}/boot
199 ln -sf ../../../vmlinux
200}
201
202do_compile_perf() {
203 oe_runmake -C ${S}/tools/perf CC="${KERNEL_CC}" LD="${KERNEL_LD}" prefix=${prefix}
204}
205
206do_install_perf() {
207 oe_runmake -C ${S}/tools/perf CC="${KERNEL_CC}" LD="${KERNEL_LD}" prefix=${prefix} DESTDIR=${D} install
208}
209
210do_patch[depends] = "kern-tools-native:do_populate_sysroot"
211addtask kernel_configme before do_configure after do_patch
212addtask kernel_link_vmlinux after do_compile before do_install
213addtask kernel_configcheck after do_configure before do_compile
214
215inherit kernel
216
217# perf tasks
218addtask compile_perf after do_compile before do_install
219addtask install_perf after do_install before do_package do_deploy
220
221do_compile_perf[depends] = "virtual/libc:do_populate_sysroot"
222do_compile_perf[depends] =+ "elfutils:do_populate_sysroot"
223RDEPENDS_perf += "python perl elfutils"