diff options
author | Tom Zanussi <tom.zanussi@intel.com> | 2012-12-12 22:56:30 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-12-13 16:54:32 +0000 |
commit | 9753196c77d7b65ae172333a81c18d4dea34f2ca (patch) | |
tree | c6bf7f2366cfbe408819a2556c23132710582ea0 /scripts | |
parent | 8669fec353b2f0dbe2bcef4543e6b5fd922a2665 (diff) | |
download | poky-9753196c77d7b65ae172333a81c18d4dea34f2ca.tar.gz |
yocto-bsp: add custom kernel support
Add a template to support custom kernels via a custom kernel recipe
derived from linux-yocto-custom.bb.
(From meta-yocto rev: 98c7861ebdd40b1fc4d803701ad9fb979be54273)
Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
7 files changed, 123 insertions, 0 deletions
diff --git a/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/kernel-list.noinstall b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/kernel-list.noinstall new file mode 100644 index 0000000000..2c180cc0eb --- /dev/null +++ b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/kernel-list.noinstall | |||
@@ -0,0 +1,26 @@ | |||
1 | {{ if kernel_choice == "custom": }} | ||
2 | {{ input type:"boolean" name:"custom_kernel_remote" prio:"20" msg:"Is the custom kernel you'd like to use in a remote git repo? (y/n)" default:"y"}} | ||
3 | |||
4 | {{ if kernel_choice == "custom" and custom_kernel_remote == "y": }} | ||
5 | {{ input type:"edit-git-repo" name:"custom_kernel_remote_path" prio:"20" msg:"Please enter the full URI to the remote git repo (the default corresponds to linux-stable v3.4.21)" default:"git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git"}} | ||
6 | |||
7 | {{ if kernel_choice == "custom" and custom_kernel_remote == "n": }} | ||
8 | {{ input type:"edit-git-repo" name:"custom_kernel_local_path" prio:"20" msg:"You've indicated that you're not using a remote git repo. Please enter the full path to the local git repo you want to use (the default assumes a local linux-stable v3.4.21)" default:"/home/trz/yocto/kernels/linux-stable.git"}} | ||
9 | |||
10 | {{ if kernel_choice == "custom": }} | ||
11 | {{ input type:"boolean" name:"custom_kernel_need_kbranch" prio:"20" msg:"Do you need to use a specific (non-master) branch? (y/n)" default:"n"}} | ||
12 | |||
13 | {{ if kernel_choice == "custom" and custom_kernel_need_kbranch == "y": }} | ||
14 | {{ input type:"edit" name:"custom_kernel_kbranch" prio:"20" msg:"Please enter the branch you want to use (the default branch corresponds to the linux-stable 'linux-3.4.y' branch):" default:"linux-3.4.y"}} | ||
15 | |||
16 | {{ if kernel_choice == "custom": }} | ||
17 | {{ input type:"edit" name:"custom_kernel_srcrev" prio:"20" msg:"Please enter the SRCREV (commit id) you'd like to use (use '${AUTOREV}' to track the current HEAD):" default:"${AUTOREV}"}} | ||
18 | |||
19 | {{ if kernel_choice == "custom": }} | ||
20 | {{ input type:"edit" name:"custom_kernel_linux_version" prio:"20" msg:"Please enter the Linux version of the kernel you've specified:" default:"3.4.21"}} | ||
21 | |||
22 | {{ if kernel_choice == "custom": }} | ||
23 | {{ input type:"edit" name:"custom_kernel_linux_version_extension" prio:"20" msg:"Please enter a Linux version extension if you want (it will show up at the end of the kernel name shown by uname):" default:"-custom"}} | ||
24 | |||
25 | {{ if kernel_choice == "custom": }} | ||
26 | {{ input type:"edit-file" name:"custom_kernel_defconfig" prio:"20" msg:"It's recommended (but not required) that custom kernels be built using a defconfig. Please enter the full path to the defconfig for your kernel (NOTE: if you don't specify a defconfig the kernel probably won't build or boot):" default:""}} | ||
diff --git a/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom.bb b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom.bb new file mode 100644 index 0000000000..5471c93227 --- /dev/null +++ b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom.bb | |||
@@ -0,0 +1,57 @@ | |||
1 | # This file was derived from the linux-yocto-custom.bb recipe in | ||
2 | # oe-core. | ||
3 | # | ||
4 | # linux-yocto-custom.bb: | ||
5 | # | ||
6 | # A yocto-bsp-generated kernel recipe that uses the linux-yocto and | ||
7 | # oe-core kernel classes to apply a subset of yocto kernel | ||
8 | # management to git managed kernel repositories. | ||
9 | # | ||
10 | # Warning: | ||
11 | # | ||
12 | # Building this kernel without providing a defconfig or BSP | ||
13 | # configuration will result in build or boot errors. This is not a | ||
14 | # bug. | ||
15 | # | ||
16 | # Notes: | ||
17 | # | ||
18 | # patches: patches can be merged into to the source git tree itself, | ||
19 | # added via the SRC_URI, or controlled via a BSP | ||
20 | # configuration. | ||
21 | # | ||
22 | # example configuration addition: | ||
23 | # SRC_URI += "file://smp.cfg" | ||
24 | # example patch addition: | ||
25 | # SRC_URI += "file://0001-linux-version-tweak.patch | ||
26 | # example feature addition: | ||
27 | # SRC_URI += "file://feature.scc" | ||
28 | # | ||
29 | |||
30 | inherit kernel | ||
31 | require recipes-kernel/linux/linux-yocto.inc | ||
32 | |||
33 | {{ if kernel_choice == "custom" and custom_kernel_remote == "y": }} | ||
34 | SRC_URI = "{{=custom_kernel_remote_path}};protocol=git;bareclone=1" | ||
35 | {{ if kernel_choice == "custom" and custom_kernel_remote == "n": }} | ||
36 | SRC_URI = "git://{{=custom_kernel_local_path}};protocol=file;bareclone=1" | ||
37 | |||
38 | SRC_URI += "file://defconfig" | ||
39 | |||
40 | SRC_URI += "file://{{=machine}}.scc \ | ||
41 | file://{{=machine}}.cfg \ | ||
42 | file://user-config.cfg \ | ||
43 | file://user-patches.scc \ | ||
44 | " | ||
45 | |||
46 | {{ if kernel_choice == "custom" and custom_kernel_need_kbranch == "y" and custom_kernel_kbranch and custom_kernel_kbranch != "master": }} | ||
47 | KBRANCH = "{{=custom_kernel_kbranch}}" | ||
48 | |||
49 | LINUX_VERSION ?= "{{=custom_kernel_linux_version}}" | ||
50 | LINUX_VERSION_EXTENSION ?= "{{=custom_kernel_linux_version_extension}}" | ||
51 | |||
52 | SRCREV="{{=custom_kernel_srcrev}}" | ||
53 | |||
54 | PR = "r0" | ||
55 | PV = "${LINUX_VERSION}+git${SRCPV}" | ||
56 | |||
57 | COMPATIBLE_MACHINE_{{=machine}} = "{{=machine}}" | ||
diff --git a/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/defconfig b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/defconfig new file mode 100644 index 0000000000..c2745c5e1e --- /dev/null +++ b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/defconfig | |||
@@ -0,0 +1,4 @@ | |||
1 | # | ||
2 | # Placeholder for custom default kernel configuration. yocto-bsp will | ||
3 | # replace this file with a user-specified defconfig. | ||
4 | # | ||
diff --git a/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/user-config.cfg b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/user-config.cfg new file mode 100644 index 0000000000..17c8b503da --- /dev/null +++ b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/user-config.cfg | |||
@@ -0,0 +1,8 @@ | |||
1 | # | ||
2 | # Used by yocto-kernel to manage config options. | ||
3 | # | ||
4 | # yocto-kernel may change the contents of this file in any | ||
5 | # way it sees fit, including removing comments like this, | ||
6 | # so don't manually make any modifications you don't want | ||
7 | # to lose. | ||
8 | # | ||
diff --git a/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/user-patches.scc b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/user-patches.scc new file mode 100644 index 0000000000..7a598d9118 --- /dev/null +++ b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/user-patches.scc | |||
@@ -0,0 +1,8 @@ | |||
1 | # | ||
2 | # Used by yocto-kernel to manage patches. | ||
3 | # | ||
4 | # yocto-kernel may change the contents of this file in any | ||
5 | # way it sees fit, including removing comments like this, | ||
6 | # so don't manually make any modifications you don't want | ||
7 | # to lose. | ||
8 | # | ||
diff --git a/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/{{=machine}}.cfg b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/{{=machine}}.cfg new file mode 100644 index 0000000000..95170b12eb --- /dev/null +++ b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/{{=machine}}.cfg | |||
@@ -0,0 +1,3 @@ | |||
1 | # | ||
2 | # A convenient place to add config options, nothing more. | ||
3 | # | ||
diff --git a/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/{{=machine}}.scc b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/{{=machine}}.scc new file mode 100644 index 0000000000..8b94e588a4 --- /dev/null +++ b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/{{=machine}}.scc | |||
@@ -0,0 +1,17 @@ | |||
1 | # | ||
2 | # The top-level 'feature' for the {{=machine}} custom kernel. | ||
3 | # | ||
4 | # Essentially this is a convenient top-level container or starting | ||
5 | # point for adding lower-level config fragements and features. | ||
6 | # | ||
7 | |||
8 | # {{=machine}}.cfg in the linux-yocto-custom subdir is just a | ||
9 | # convenient place for adding random config fragments. | ||
10 | |||
11 | kconf hardware {{=machine}}.cfg | ||
12 | |||
13 | # These are used by yocto-kernel to add config fragments and features. | ||
14 | # Don't remove if you plan on using yocto-kernel with this BSP. | ||
15 | |||
16 | kconf hardware user-config.cfg | ||
17 | include user-patches.scc | ||