diff options
11 files changed, 145 insertions, 0 deletions
diff --git a/meta-kernel-dev/README b/meta-kernel-dev/README new file mode 100644 index 0000000..4f58404 --- /dev/null +++ b/meta-kernel-dev/README @@ -0,0 +1,27 @@ +meta-kernel-dev + +What is it ? +------------ + +A gathering place for extensions to the linux-yocto (or really +any) kernel recipes that faciliate the creation and development +of kernel features, BSPs or configuration. + +What does it do? +---------------- + +Currently this is mainly additions to the kernel recipes to: + + - Use a local clone vs a remote clone + - Use AUTOREV to track the HEAD of branches vs a specific revision + - Ensure that the $MACHINE is compatible with the yocto kernel + - disables branch/revision checking + - controls the naming of the linux build dirs via BB_LOCALCOUNT_OVERRIDE + and LOCALCOUNT + +What will be added to it ? +-------------------------- + + - Tools specifically related to kernel development if they are + unique and don't belong in the main layers. + diff --git a/meta-kernel-dev/conf/checksums.ini b/meta-kernel-dev/conf/checksums.ini new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/meta-kernel-dev/conf/checksums.ini diff --git a/meta-kernel-dev/conf/include/revisions.inc b/meta-kernel-dev/conf/include/revisions.inc new file mode 100644 index 0000000..252b89e --- /dev/null +++ b/meta-kernel-dev/conf/include/revisions.inc @@ -0,0 +1,10 @@ +#SRCREV_machine_pn-linux-yocto_qemuarm ?= "4f4177b4bea5b8858acc1eeb788d80b7af0df962" +#SRCREV_machine_pn-linux-yocto_qemumips ?= "81f3cd467b9d51fa1dfa2d5939337cc756ae8061" +#SRCREV_machine_pn-linux-yocto_qemuppc ?= "9ac0daee43dd19d8bea828cf79450c9748ae0daa" +#SRCREV_machine_pn-linux-yocto_qemux86 ?= "0431115c9d720fee5bb105f6a7411efb4f851d26" +#SRCREV_machine_pn-linux-yocto_qemux86-64 ?= "0431115c9d720fee5bb105f6a7411efb4f851d26" +#SRCREV_machine_pn-linux-yocto_emenlow ?= "aae69fdf104b0a9d7b3710f808aac6ab303490f7" +#SRCREV_machine_pn-linux-yocto_atom-pc ?= "0431115c9d720fee5bb105f6a7411efb4f851d26" +#SRCREV_machine_pn-linux-yocto_routerstationpro ?= "2ec2edaf256dd8500ee3d4763fee6ca3ecd6da4b" +#SRCREV_machine_pn-linux-yocto_mpc8315e-rdb ?= "986e6eb66c26007cee7916d5d12f4756e6b5436f" +#SRCREV_machine_pn-linux-yocto_beagleboard ?= "0431115c9d720fee5bb105f6a7411efb4f851d26" diff --git a/meta-kernel-dev/conf/layer.conf b/meta-kernel-dev/conf/layer.conf new file mode 100644 index 0000000..33f1ca5 --- /dev/null +++ b/meta-kernel-dev/conf/layer.conf @@ -0,0 +1,10 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH := "${BBPATH}:${LAYERDIR}" + +# We have a packages directory, add to BBFILES +BBFILES := "${BBFILES} ${LAYERDIR}/packages/*/*.bb \ + ${LAYERDIR}/packages/*/*.bbappend" + +BB_ENV_EXTRAWHITE := "KSRC" + +require conf/include/revisions.inc diff --git a/meta-kernel-dev/conf/machine/example.conf b/meta-kernel-dev/conf/machine/example.conf new file mode 100644 index 0000000..5279e51 --- /dev/null +++ b/meta-kernel-dev/conf/machine/example.conf @@ -0,0 +1,15 @@ +MACHINE_FEATURES = "kernel26 screen keyboard pci usbhost ext2 ext3 x86 \ + acpi serial usbgadget" + +KERNEL_IMAGETYPE = "bzImage" + +PREFERRED_PROVIDER_virtual/kernel = "linux-yocto" +PREFERRED_PROVIDER_linux-libc-headers ?= "linux-libc-headers-yocto" + +SERIAL_CONSOLE = "115200 ttyS0" + +MACHINE_EXTRA_RRECOMMENDS = "kernel-modules eee-acpi-scripts" + +IMAGE_ROOTFS_SIZE_ext3 = "2000000" + +IMAGE_FSTYPES ?= "ext3 cpio.gz" diff --git a/meta-kernel-dev/packages/kern-tools-native/kern-tools-native_git.bbappend b/meta-kernel-dev/packages/kern-tools-native/kern-tools-native_git.bbappend new file mode 100644 index 0000000..5abaa05 --- /dev/null +++ b/meta-kernel-dev/packages/kern-tools-native/kern-tools-native_git.bbappend @@ -0,0 +1,8 @@ +# if working on kernel tools, point this at your local repo + +SRCREV=${AUTOREV} +BB_LOCALCOUNT_OVERRIDE = "1" +LOCALCOUNT = "0" + +# ksrc ?= /path/to/wr-kernel-tools +# SRC_URI = "git://${ksrc}" diff --git a/meta-kernel-dev/packages/linux-libc-headers/linux-libc-headers-yocto_git.bbappend b/meta-kernel-dev/packages/linux-libc-headers/linux-libc-headers-yocto_git.bbappend new file mode 100644 index 0000000..6c42576 --- /dev/null +++ b/meta-kernel-dev/packages/linux-libc-headers/linux-libc-headers-yocto_git.bbappend @@ -0,0 +1,6 @@ +# If headers specific to the development kernel must be exported +# point ksrc to the same location as the linux-yocto_git recipe. +# KSRC ?= /path/to/kernel/tree + +SRC_URI = "git://${KSRC};fullclone=1;branch=${KBRANCH};name=machine \ + git://${KSRC};noclone=1;branch=meta;name=meta" diff --git a/meta-kernel-dev/packages/linux/linux-yocto-rt_stablegit.bbappend b/meta-kernel-dev/packages/linux/linux-yocto-rt_stablegit.bbappend new file mode 100644 index 0000000..686499c --- /dev/null +++ b/meta-kernel-dev/packages/linux/linux-yocto-rt_stablegit.bbappend @@ -0,0 +1,22 @@ +FILESEXTRAPATHS := "${THISDIR}/${PN}" + +COMPATIBLE_MACHINE = ${MACHINE} + +# It is often nice to have a local clone of the kernel repos, to +# allow patches to be staged, branches created, etc. Modify +# KSRC to point to your local clone as appropriate. +# KSRC ?= /path/to/your/bare/clone/yocto-kernell + +# KMACHINE is the branch to be built, or alternatively +# KBRANCH can be directly set. + +# KBRANCH ?= "${KMACHINE}-${LINUX_KERNEL_TYPE}" + +SRC_URI = "git://${KSRC};fullclone=1;branch=${KBRANCH};name=machine \ + git://${KSRC};noclone=1;branch=wrs_meta;name=meta" + +KERNEL_REVISION_CHECKING= +SRCREV=${AUTOREV} +BB_LOCALCOUNT_OVERRIDE = "1" +LOCALCOUNT = "0" + diff --git a/meta-kernel-dev/packages/linux/linux-yocto-stable_git.bbappend b/meta-kernel-dev/packages/linux/linux-yocto-stable_git.bbappend new file mode 100644 index 0000000..686499c --- /dev/null +++ b/meta-kernel-dev/packages/linux/linux-yocto-stable_git.bbappend @@ -0,0 +1,22 @@ +FILESEXTRAPATHS := "${THISDIR}/${PN}" + +COMPATIBLE_MACHINE = ${MACHINE} + +# It is often nice to have a local clone of the kernel repos, to +# allow patches to be staged, branches created, etc. Modify +# KSRC to point to your local clone as appropriate. +# KSRC ?= /path/to/your/bare/clone/yocto-kernell + +# KMACHINE is the branch to be built, or alternatively +# KBRANCH can be directly set. + +# KBRANCH ?= "${KMACHINE}-${LINUX_KERNEL_TYPE}" + +SRC_URI = "git://${KSRC};fullclone=1;branch=${KBRANCH};name=machine \ + git://${KSRC};noclone=1;branch=wrs_meta;name=meta" + +KERNEL_REVISION_CHECKING= +SRCREV=${AUTOREV} +BB_LOCALCOUNT_OVERRIDE = "1" +LOCALCOUNT = "0" + diff --git a/meta-kernel-dev/packages/linux/linux-yocto/.keep_me b/meta-kernel-dev/packages/linux/linux-yocto/.keep_me new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/meta-kernel-dev/packages/linux/linux-yocto/.keep_me diff --git a/meta-kernel-dev/packages/linux/linux-yocto_git.bbappend b/meta-kernel-dev/packages/linux/linux-yocto_git.bbappend new file mode 100644 index 0000000..5776d24 --- /dev/null +++ b/meta-kernel-dev/packages/linux/linux-yocto_git.bbappend @@ -0,0 +1,25 @@ +FILESEXTRAPATHS := "${THISDIR}/${PN}" + +COMPATIBLE_MACHINE = ${MACHINE} + +# It is often nice to have a local clone of the kernel repos, to +# allow patches to be staged, branches created, etc. Modify + +# KSRC to point to your local clone as appropriate. +# KSRC ?= /path/to/your/bare/clone/yocto-kernel + +# KMACHINE is the branch to build +# KMACHINE_<MACHINE> ?= "yocto/${LINUX_KERNEL_TYPE}/${KMACHINE}" + +# KERNEL_FEATURES are features to be added to the kernel, and must +# point to configurations stored on the 'meta' branch of the kernel +# that is being built. +# KERNEL_FEATURES ?= <FOO> + +SRC_URI = "git://${KSRC};fullclone=1;branch=${KBRANCH};name=machine \ + git://${KSRC};noclone=1;branch=meta;name=meta" + +KERNEL_REVISION_CHECKING= +SRCREV=${AUTOREV} +BB_LOCALCOUNT_OVERRIDE = "1" +LOCALCOUNT = "0" |