Bruce, I'm looking at introducing a new kernel type, ktypes/tiny.
Tiny will define a core set of kernel policy options, such as proc, sys, devtmpfs, futex, epoll, elf bin format, etc. It will not enable any drivers, filesystems, debug options, or networking options by default. This would be the responsibility of the BSP to add a named feature implementing this. Taking a look at the ktypes we have now resulted in some questions: dvhart@envy:~/source/linux/linux-yocto-3.0/meta/cfg/kernel-cache/ktypes $ tree . ├── base │ ├── base.cfg │ ├── base.scc │ ├── hardware.cfg │ ├── hardware.kcf │ ├── non-hardware.cfg │ └── non-hardware.kcf ├── preempt-rt │ ├── preempt-rt.cfg │ └── preempt-rt.scc ├── standard │ ├── perf-force-include-of-stdbool.h.patch │ ├── perf-hard-code-NO_LIBPERL-NO_LIBPYTHON.patch │ ├── standard-patches.scc │ ├── standard.cfg │ ├── standard.scc │ └── x86-add-TIF_32BIT-compatibility-define.patch These form a hiearchy, each inheriting from the layer beneath like so: base/standard/preempt-rt As I dig into this I see that some policy is infact laid down by base, including things like: CONFIG_MODULES=y CONFIG_INET=y CONFIG_PREEMPT=y CONFIG_NFS_FS=y CONFIG_MSDOS_PARTITION=y These pull in the IP stack, the block layer, etc. Because of this, I can't really inherit from base for ktypes/tiny. I would like to inherit the hardware and non-hardware kcf files though, as well as any patches that might make their way into base. Which leads me to standard. I would like to see a much smaller set of config policy options set in base. Most likely these should be exactly what we agree on for tiny, and tiny wouldn't add any additional policy as it implements only what is required for a Yocto Project built kernel. NOTE: kernel version is 3.0+ $ cat base/base.scc | head -n 1 set_kernel_version 2.6.37 There are three patches in standard, only two of which (the perf ones) are listed in the standard.scc. As I believe any kernel we build should have these, I would like to see any global patches applied to base, leaving standard to define policy, and include named features. With these changes, I could add ktypes/tiny as follows: $ cat tiny/tiny.scc include ktypes/base branch tiny include features/xyz/xyz.scc include cfg/abc.scc Another point of interest is preempt-rt, as I can see people wanting to build tiny preempt-rt. I think the best approach here is to create ktypes/tiny/preempt-rt-tiny/preempt-rt-tiny.scc. Note: I believe this fails with .patch.patch $ cat features/rt/rt.scc | grep patch patch rt-apply-patch-3.0.10-rt27.patch.patch I'm working on a patch series that implements the suggestions I've made above. Bruce, do you have any issues with this approach? -- Darren Hart Intel Open Source Technology Center Yocto Project - Linux Kernel _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto