[yocto] Building your own UI

jfabernathy jfabernathy at gmail.com
Tue Feb 7 13:54:59 PST 2012


On 02/07/2012 01:54 PM, Joshua Lock wrote:
> On 07/02/12 07:57, James Abernathy wrote:
>> This may be a dumb question, but I'll ask anyway.
>> Suppose you have a project where you need a very custom user interface.
>> Not just a series of applications that appear on a desktop like you see
>> in sato, or Gnome, or KDE.  Basically your application becomes the UI.
>> I can see 2 approaches to this:
>>
>>  1. Start with core-image-minimal and add the packages you need to
>>     support GFX, X11, and your application plus dependencies.
>>  2. Take core-image-sato and change the applications to be your subtasks
>>     , and the look-and-feel of the desktop.
>>
>> What are the considerations of both approaches?
>
> A key selling point of the Yocto approach is to provide a highly 
> customised OS for your target application, rather than taking an 
> existing solution and stripping it back.
>
> 2. is the antithesis of the Yocto approach if you don't want/need the 
> Sato UI.
>
> The intention is that the core metadata should provide sufficient 
> granularity through the defined images and tasks to get people started.
>
> I'd recommend something like 1. only taking core-image-core (horrible 
> name I know) if you want an X based OS.
>
I built core-image-core and it works and is basic. So it's not a really 
small Sato???

> We no doubt need more documentation in this area, and Hob is designed 
> to help here.
>
>
>> Is one better, or easier than the other?
>
> Creating your own image is better in that you only build and ship what 
> you need. Arguably building atop a custom image is easier, but you 
> lose control.
>
>> How would you do this in Yocto?
>
> You might consider creating a custom image by starting with 
> core-image-minimal and adding IMAGE_FEATURES and IMAGE_INSTALL entries 
> to provide the core functionality you desire.
>
> $ less foo.bb
> # a noddy example image, base of a NAS OS
>
> # start with core-image-minimal
> require recipes-core/images/core-image-minimal.bb
>
> IMAGE_FEATURES += "package-management nfs-server ssh-server-dropbear"
> IMAGE_INSTALL += "my-custom-nas-app"
>
I have difficulty understanding the difference in IMAGE_FEATURES and 
IMAGE_INSTALL.  To me IMAGE_INSTALL is clear I've used that in a 
core-image-sato.bbappend file in an image directory in my own recipes-xx 
directory.  I see how IMAGE_FEATURES is uses in the core-image-core:

IMAGE_FEATURES += "apps-console-core ${X11_IMAGE_FEATURES}"

But I have no idea what ${X11_IMAGE_FEATURES} is or how to find where 
it's defined.  The apps-console-core is define in the Poky Refernce manual:

http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html#ref-features-image

However, I'm not sure were to find it's definition in the many recipes.

Jim A

>> Where do you look for information you need to accomplish this?
>
> Mostly by following examples in the existing metadata at the moment, 
> see the comment above about hob and documentation.
>
> Cheers,
> Joshua




More information about the yocto mailing list