Motorola Mobility Confidential Restricted.

Build IIPs

When building IIPs the following is a normal workflow:

  1. Build the parts to be included in the IIP(s). This is done using the development tools provided in a KreaTV SDK.
  2. Decide on how to divide the parts (see below) into one or more IIPs.

For each IIP do the following:

  1. Combine the parts into a data directory.
  2. Write installation scripts.
  3. Decide on the dependencies for the IIP.
  4. If needed, write an uninstallation script.
  5. Run the iip_build command to build the IIP.

Divide into IIPs

There a number of things to consider when dividing your things into one or more IIPs:

Target architecture

Different parts of what you have built may have different requirements on the architecture of the IP-STB. Some parts may be for a specific processor (same as toolchain) while other parts may work on all kinds of IP-STBs. It may then be a good idea to create two different IIPs, one holding platform independant scripts and XML files, and one holding the platform specific binaries and libraries.

Atomic

It is desirable to be able to use the IIPs in different configurations. All IIPs should be "atomic" to make sure that you only get what you want when installing an IIP in a boot image, i.e. they should only contain one part that can work on its own. Don't put several applications into one IIP.

It is however possible to use IIP parameters to only install parts of an IIP. It can then be a good idea to gather things with common characteristics into one IIP. The kreatv-option-streamclients is a good example of such an IIP. It it is almost never desirable to have all possible stream clients available in one boot image, but it would not be a good idea to have 14 different IIPs either.

Installation order

In some cases the order in which parts are installed is important. Then put the different parts in different IIPs.

Finalization

A special feature of the IIP concept called finalization can also be used to make an IIP install after all normal IIPs. The finalization IIP has the complete rootdisk to work on.

The kreatv-option-harddrive IIP has a dependency to kreatv-option-usb. The USB support is however only needed if IIP parameter usb is defined for kreatv-option-harddrive. We do not want unused stuff in our rootdisk. This is solved by having harddrive IIP installation script writing a temporary file in the rootdisk build directory. This file is then read by kreatv-finalize-harddrive IIP installation script which takes care of removing the USB support if it is not wanted.