Adding a new Machine
- Find out which kernel version your custom kernel is (e.g. 2.6.27)
- Extract the diff: diff -Nurd linux-2.6.27/ linux-2.6.27-mymachine/ (this step is optional if you already have a diff)
- Add DEFAULT_PREFERENCE_mymachine = "1" and SRC_URI_append_mymachine = "file://mymachine.diff" to linux_2.6.27.bb
- Put defconfig in packages/linux/linux-2.6.27/mymachine/defconfig
If you really, really need to be special (which you really don't need, but companies seem to feel better when their name is plastered all over the place e.g. linux-mycompany_2.6.27.bb) you can create your own kernel recipe with the naming options you mentioned, then please use linux.inc to the basics working well. If even that is not special enough, then well, you are on your own.
By reusing a linux_2.6.xx recipe you can easily see what kind of patches other machines are applying and how issues with that kernel get solved.
Most of the time people that add new hardware to OE go through something like this (ARM example):
- Add mymachine.conf, linux-mymachine_2.6.xx.bb, openmymachine.conf<tt> distro
- Complain toolchain doesn't build, copy over versions from angstrom to get it fixed
- Complain their device doesn't boot, change defconfig to support EABI to get it fixed
- Complain NFS doesn't work, change defconfig to get that fixed
The toolchain problems wouldn't have been there if people had used an existing, working distro like angstrom, the kernel issues mentioned above are all handled automagically by linux.inc.
So people, please start by reusing existing things and creating your own stuff when need arises, not when NIH arises.
- Adding a new Machine, Chapter 5. Common Use-cases/tasks, OpenEmbedded User Manual