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>
This commit is contained in:
parent
8669fec353
commit
9753196c77
|
@ -0,0 +1,26 @@
|
|||
{{ if kernel_choice == "custom": }}
|
||||
{{ 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"}}
|
||||
|
||||
{{ if kernel_choice == "custom" and custom_kernel_remote == "y": }}
|
||||
{{ 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"}}
|
||||
|
||||
{{ if kernel_choice == "custom" and custom_kernel_remote == "n": }}
|
||||
{{ 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"}}
|
||||
|
||||
{{ if kernel_choice == "custom": }}
|
||||
{{ 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"}}
|
||||
|
||||
{{ if kernel_choice == "custom" and custom_kernel_need_kbranch == "y": }}
|
||||
{{ 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"}}
|
||||
|
||||
{{ if kernel_choice == "custom": }}
|
||||
{{ 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}"}}
|
||||
|
||||
{{ if kernel_choice == "custom": }}
|
||||
{{ 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"}}
|
||||
|
||||
{{ if kernel_choice == "custom": }}
|
||||
{{ 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"}}
|
||||
|
||||
{{ if kernel_choice == "custom": }}
|
||||
{{ 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:""}}
|
|
@ -0,0 +1,57 @@
|
|||
# This file was derived from the linux-yocto-custom.bb recipe in
|
||||
# oe-core.
|
||||
#
|
||||
# linux-yocto-custom.bb:
|
||||
#
|
||||
# A yocto-bsp-generated kernel recipe that uses the linux-yocto and
|
||||
# oe-core kernel classes to apply a subset of yocto kernel
|
||||
# management to git managed kernel repositories.
|
||||
#
|
||||
# Warning:
|
||||
#
|
||||
# Building this kernel without providing a defconfig or BSP
|
||||
# configuration will result in build or boot errors. This is not a
|
||||
# bug.
|
||||
#
|
||||
# Notes:
|
||||
#
|
||||
# patches: patches can be merged into to the source git tree itself,
|
||||
# added via the SRC_URI, or controlled via a BSP
|
||||
# configuration.
|
||||
#
|
||||
# example configuration addition:
|
||||
# SRC_URI += "file://smp.cfg"
|
||||
# example patch addition:
|
||||
# SRC_URI += "file://0001-linux-version-tweak.patch
|
||||
# example feature addition:
|
||||
# SRC_URI += "file://feature.scc"
|
||||
#
|
||||
|
||||
inherit kernel
|
||||
require recipes-kernel/linux/linux-yocto.inc
|
||||
|
||||
{{ if kernel_choice == "custom" and custom_kernel_remote == "y": }}
|
||||
SRC_URI = "{{=custom_kernel_remote_path}};protocol=git;bareclone=1"
|
||||
{{ if kernel_choice == "custom" and custom_kernel_remote == "n": }}
|
||||
SRC_URI = "git://{{=custom_kernel_local_path}};protocol=file;bareclone=1"
|
||||
|
||||
SRC_URI += "file://defconfig"
|
||||
|
||||
SRC_URI += "file://{{=machine}}.scc \
|
||||
file://{{=machine}}.cfg \
|
||||
file://user-config.cfg \
|
||||
file://user-patches.scc \
|
||||
"
|
||||
|
||||
{{ if kernel_choice == "custom" and custom_kernel_need_kbranch == "y" and custom_kernel_kbranch and custom_kernel_kbranch != "master": }}
|
||||
KBRANCH = "{{=custom_kernel_kbranch}}"
|
||||
|
||||
LINUX_VERSION ?= "{{=custom_kernel_linux_version}}"
|
||||
LINUX_VERSION_EXTENSION ?= "{{=custom_kernel_linux_version_extension}}"
|
||||
|
||||
SRCREV="{{=custom_kernel_srcrev}}"
|
||||
|
||||
PR = "r0"
|
||||
PV = "${LINUX_VERSION}+git${SRCPV}"
|
||||
|
||||
COMPATIBLE_MACHINE_{{=machine}} = "{{=machine}}"
|
|
@ -0,0 +1,4 @@
|
|||
#
|
||||
# Placeholder for custom default kernel configuration. yocto-bsp will
|
||||
# replace this file with a user-specified defconfig.
|
||||
#
|
|
@ -0,0 +1,8 @@
|
|||
#
|
||||
# Used by yocto-kernel to manage config options.
|
||||
#
|
||||
# yocto-kernel may change the contents of this file in any
|
||||
# way it sees fit, including removing comments like this,
|
||||
# so don't manually make any modifications you don't want
|
||||
# to lose.
|
||||
#
|
|
@ -0,0 +1,8 @@
|
|||
#
|
||||
# Used by yocto-kernel to manage patches.
|
||||
#
|
||||
# yocto-kernel may change the contents of this file in any
|
||||
# way it sees fit, including removing comments like this,
|
||||
# so don't manually make any modifications you don't want
|
||||
# to lose.
|
||||
#
|
|
@ -0,0 +1,3 @@
|
|||
#
|
||||
# A convenient place to add config options, nothing more.
|
||||
#
|
|
@ -0,0 +1,17 @@
|
|||
#
|
||||
# The top-level 'feature' for the {{=machine}} custom kernel.
|
||||
#
|
||||
# Essentially this is a convenient top-level container or starting
|
||||
# point for adding lower-level config fragements and features.
|
||||
#
|
||||
|
||||
# {{=machine}}.cfg in the linux-yocto-custom subdir is just a
|
||||
# convenient place for adding random config fragments.
|
||||
|
||||
kconf hardware {{=machine}}.cfg
|
||||
|
||||
# These are used by yocto-kernel to add config fragments and features.
|
||||
# Don't remove if you plan on using yocto-kernel with this BSP.
|
||||
|
||||
kconf hardware user-config.cfg
|
||||
include user-patches.scc
|
Loading…
Reference in New Issue