OpenEmbedded documentation day

Today was my OpenEmbedded documentation day — I wrote several parts of user-manual:

  • what is task-base and how to use it
  • how to create own distribution
  • how to add own machine into OE
  • how to create own image

For me part about task-base is most important because most of changes related to it was made by me so more and more people are asking what is it and how to use it. Now I can point them into OpenEmbedded documentation.

But what is this task-base at all and why we force everyone using it in OE? Let me start from beginning.

First we had task-bootstrap and BOOTSTRAP_* variables which listed needed tools, kernel modules and other packages. We used those in machine configs and distro configs. Some of distros got them better, some not so for example distro TGB told ‘we support WPA out-of-box’ but users started to report that they have problems with WPA-TKIP when WPA-PSK works. Adding one kernel module solved it. But then other distro maintainer had to make this list again (or copy from TGB config). Now each distro which has ‘wifi’ in DISTRO_FEATURES will get proper list of kernel modules and helper utils by default.

As a bonus we are able to cleanup machine and distro configs from all those BOOTSTRAP_* things so now we can have something like this:

TARGET_ARCH = "i686"
IPKG_EXTRA_ARCHS = "x86 i386 i486 i586"

PREFERRED_PROVIDER_virtual/kernel = "linux-x86"

MACHINE_FEATURES = "kernel26 pci alsa usbhost"

require conf/machine/include/tune-athlonmp.conf