Difference between revisions of "Adding a new Machine"

From Openembedded.org
Jump to: navigation, search
(cat+)
m
Line 12: Line 12:
 
Most of the time people that add new hardware to OE go through something like this (ARM example):
 
Most of the time people that add new hardware to OE go through something like this (ARM example):
  
# Add <tt>mymachine.conf</tt>, <tt>linux-mymachine_2.6.xx.bb</tt>, <tt>openmymachine.conf<tt> distro
+
# Add <tt>mymachine.conf</tt>, <tt>linux-mymachine_2.6.xx.bb</tt>, <tt>openmymachine.conf</tt> distro
 
# Complain toolchain doesn't build, copy over versions from angstrom to get it fixed
 
# 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 their device doesn't boot, change defconfig to support EABI to get it fixed

Revision as of 02:42, 8 January 2009

General steps

  1. Find out which kernel version your custom kernel is (e.g. 2.6.27)
  2. Extract the diff: diff -Nurd linux-2.6.27/ linux-2.6.27-mymachine/ (this step is optional if you already have a diff)
  3. Add DEFAULT_PREFERENCE_mymachine = "1" and SRC_URI_append_mymachine = "file://mymachine.diff" to linux_2.6.27.bb
  4. 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):

  1. Add mymachine.conf, linux-mymachine_2.6.xx.bb, openmymachine.conf distro
  2. Complain toolchain doesn't build, copy over versions from angstrom to get it fixed
  3. Complain their device doesn't boot, change defconfig to support EABI to get it fixed
  4. 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.

See also