[yocto] [RFC] Binary Configuration support design

2013-07-18 Thread Venkata ramana gollamudi
Hi,
I have intiated few discussions earlier to support binary configuration 
tool,
   which allows configuration of post built binaries to generate custom image, 
without a need to rebuild from source.
 
It is being tracked under bug 3252.
Design to realize the same is updated in wiki. 
https://wiki.yoctoproject.org/wiki/Binary_configuration_support
Please go through it and provide comments, so that I can proceed to submit 
patches.

Regards,
Ramana
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] RFC: Post build configuration

2013-04-09 Thread Venkata ramana gollamudi
I agree that each product might have different connectivity and different 
configuration needs on the rootfs.

However current thoughts are based on
1) Some of the common configurations of YP are currently at build time in yocto 
project, but appying them doesnot require a rebuild. Such configuration can be 
allowed(or moved) at post build, So that they are applied before flashing or 
installing the image on different devices, without rebuilding.

2) YP can provide a configuration platform, so that various new configuration 
options/methods ranging from OS to applications can be added easily, inlining 
with package addition/modification in various OE layers. It can be a place 
holder of various configurations.

It can strengthen YP post build stage, saving rebuild effort, allowing it 
easily configurable and usable.



Regards,

Ramana


___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] RFC: Post build configuration

2013-03-29 Thread Venkata ramana gollamudi
This is in reference to my previous post regarding post build configuration, 
with few points re-iterating to set the ground.
 https://lists.yoctoproject.org/pipermail/yocto/2012-November/012867.html



Post build configuration and need for configuration platform/model:



There have been several discussions regarding need for image format, file 
system and disk configuration, network, users addition etc. Most are of these 
features are configurable in other distributions like opensuse, fedora during 
the image installation on the target. Considering the Embedded Linux 
distribution scenario, these features can be configured offline and the 
generated image can be directly deployed on the target.



Example configuration options that can be supported include
Configure the users/passwords
Configure the network
Configure the host name
Select the services to be started by default
Security related configuration
Configure image formats ramfs/ext3/... paritions,disk management etc
Serial port configuration
etc..

Also a userscenario include
Offline Binary Configuration, which allows a binary image customization 
before making a final target image. This case will be more evident in larger 
companies, where platform teams, product teams, application teams are 
distributed and Linux build from source will be owned and lab tested by a 
single team, like platform team. Other teams just configure to use it for 
product variants from same platform build.



As configuration needs and options vary based on packages/features selected 
during for the distribution, so there is a need for a configuration 
platform/model

1) which allows new configuration options can be added easily and each 
package/distribution knows how it can be configured, so that selection of 
package or feature will expose those configuration options to the user.

2) Tools like HOB and Webhob also need a clean configuration interface to 
configure the image.
3) This can be extended to support Generic configuration UI like kernel 
menuconfig.





Considering the above Post build configuration in mind, I like to put forward a 
model (high level flow) detailing

1. How the configuration functions/logic are maintained in poky?

2. How is configuration functions shipped along with image?

3. How configuration functions are used by configuration tool(s) to apply them 
over binary image, based on user configuration inputs?



1. How the configuration functions/logic are maintained in poky?

---



Various configuration functions supporting the distribution configuration 
needs are maintained in current poky layers.
a) Configuration functions include Image level and package level 
configuration functions. Where package level configuration functions kept along 
with package recipe(say pkgname_version.cfg).
b) Package level configuration functions can override the image level 
configuration functions.
Example: Useradd logic need to be different, if busybox is selected or 
if pwdutils package is selected.
c) Each layer can override configuration functions, just like bb files.
d) Menu Definition Information contains the metadata about configuration 
functions and their parameters allowing it to represent it in Generic UI, is 
also kept along with configuration functions. Menu definition Information can 
be represented in Menu Definition Language (MDL, say xml based).



2. How is configuration functions shipped along with image?

-

   Configuration Library (ConfigLib) is created from configuration functions 
and MDL (from step1) during the package build time. ConfigLib is based on build 
time packages and features selected. This configuration Library is added to 
package feed.



3. How configuration functions are used by configuration tool(s) to apply them 
over binary image, based on user input/need?

---

   New tool can be created or existing tool(s) can be extended to support Post 
build package selection, image generation and configuration. Its functionality 
includes

a) Selection of packages from package feed.
b) Install the selected packages to relocatable rootfs.
c) Copy configuration functions corresponding to selected packages from 
ConfigLib to SelectedConfigLib.
d) User can configure the image by
- Manually modifying offline configuration file (oct.conf)
- Using a generic configuration UI which generates offline 
configuration file (oct.conf)
e) Tool reads the offline configuration file(oct.conf) and maps the user 
configuration inputs to configuration functions in SelectedConfigLib.
   It applies the configuration options on the 

Re: [yocto] Need for offline binary configuration

2012-11-29 Thread Venkata ramana gollamudi
Added few more thoughts
Looking for possible options to implement Offline Configuration Tool 
requirement. please check and comment on it.

Configuration flow:

a) Task do_createconfig will generate data to configure. This serves as input 
for configuration UI in OCT.

b) OCT UI will read that config data(from step(a)) to show it in GUI. User 
configures using GUI inputs. Stores the user OCT configuration to OCT config 
file. (Note user can directly modify the OCT config file, if User is familier 
with it)

c) preinst, postinst, prerm, postrm, or a do_applyconfig(without bb files 
reparse), can read OCT config file content (using a library) and apply 
necessary changes.

Now we can look into possibility of using a specific configuration UI 
implementation or a generic configuration model or combination of both.

1) Using a specific configuration GUI implementation:
   do_createconfig generates the configuration information, in format like 
datafile/xml and OCT reads this config data and provides a GUI to modify or 
configure the features.

Pros: Detailed and complex GUIs can be supported which will be user friendly. 
Ex: User management, network management etc.
Cons: As UI is static, it has to be modified to support new configuration 
requirements
and UI modifications are generally complex.

2) A generic configuration model
   do_createconfig generates configuration information with presentation 
information included (like kconfig) and OCT reads this config information and 
provides a generic UI implementation to modify or config the data like 
menuconfig.

Pros: 
- Generic and dynamic UI allowing the config menus to be added from 
poky layers providing platform for configuration.
- New features can add new menus configuration options. Feature/package 
enable and disable can control the configurtion menus. 
- So configuration is shown only if feature/package is present/selected.
Cons: 
- Generic method of implementing can be complex, specifically for 
features where configuration is complex ex: User management, network 
configuration.
- Custom or specific UI will be more user friendly and gives more 
control to UI designer.

3) Combination of both
Complex features requiring more UI control can implement those features using 
the method(1) and also providing the plaform for generic UI implementation.
OCT displays both UI configurations.
Ex: Static Image level features like User management, network config can be 
implemented using method(1) 
Service configuration, file system type, hist size configure etc can be 
implemented using method(2).

Pros: Gives control to project to select the Complex and simple UIs.
  
Cons: Still needs a OCT UI change if method(1) feature need to be changed.
  Drawing a line between complex and simple UI features may not very 
straight forward.
  Adding dynamic Complex UI is not possible to be added from poky layers.

Decision to provide a generic configuration model is mainly based on how much 
we expect the configuration area to grow along with layers.
Image level features like user management, network management generally are not 
dynamic features, so having a specific/custom UI implementation looks fine for 
such features.

Regards,
Ramana
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] Need for offline binary configuration

2012-11-27 Thread Venkata ramana gollamudi
Looking for comments. Thanks

From: Bruce Ashfield [bruce.ashfi...@windriver.com]
Sent: Thursday, November 22, 2012 12:59 AM
To: Venkata ramana gollamudi
Cc: yocto@yoctoproject.org; Sanil kumar; Hatle, Mark; 'dvh...@linux.intel.com'
Subject: Re: [yocto] Need for offline binary configuration

On 12-11-21 11:29 AM, Venkata ramana gollamudi wrote:
 Reply inline

 -Original Message-
 From: Bruce Ashfield [mailto:bruce.ashfi...@windriver.com]
 Sent: Tuesday, November 20, 2012 8:53 PM
 To: Venkata ramana gollamudi
 Cc: yocto@yoctoproject.org; Sanil kumar; Hatle, Mark
 Subject: Re: [yocto] Need for offline binary configuration

 On 12-11-20 10:09 AM, Venkata ramana gollamudi wrote:
 Poky allows to build custom Linux for you, but we have cases where
 the post build customization is required, like user-addition, network
 configuration, service control. Even selecting the required packages
 can be a post build activity.

 The current model requires the image to be rebuilt to support these
 configuration.
 Offline Configuration tool (OCT), which allows a binary image
 customization before making a final target image. This case will be
 more evident in larger companies, where platform teams, product teams ,
 application teams are distributed and Linux build from source will be
 owned and lab tested by a single team, like platform team. Other teams
 just configure to use it for product variants from same platform build.

 Detailed use cases can be found in enhancement bug:3252

 OCT should work on the binary pool of compiled packages generated
 from poky.

 The basic operations that can be supported includes
 a) Select/deselect required packages from pool of binary packages
 into final target image.
 b) Provision to select external binary packages like ADT compiled
 applications as input and add them to final target image.
 c) Binary level Offline configuration can includes
 Configure the users/passwords
 Configure the network
 Configure the host name
 Select the services to be started by default
 Security related configuration
 Generate initrd in ramfs/ext3/... format
 etc..

 Considering the methods to support these in our current yocto model,
 following changes can be done.
 1) HOB can be the tool which can be extended to support these
   Poky can generate a binary package pool as one if its output and
 Hob can work on this package pool to select packages, configure and
 generate image.
 So HOB can support opening HOB in Binary(or OCT) mode i.e., without
 build options but only with binary package selection. Configuration GUI
 needs to be added to HOB.
 Note:HOB+OCT is together or separate, needs a bit more thought and
 overall organization as they will be intended for different users.

 Is there some overlap between this point and the other ongoing
 discussions
 about image construction, deployment and package management ?

 i.e. this thread:

 [OE-core] RFC: OE-Core image creation and deployment

 http://lists.linuxtogo.org/pipermail/openembedded-core/2012-
 July/026938.html

 These may already be coordinated, but I do see some common threads and
 it would be nice to make sure everything will work together and that we
 aren't duplicating effort!

 Cheers,

 Bruce


 Bruce, Thanks for the information. After your reply, I have gone through the 
 discussions and agree that binary pool is in similar lines. Great to see that 
 the realization happening in yocto1.4.
 Understood that package-feed can be used to generate the target image.

 Is there any RFC/mail/wiki available explaining how the configuration(like 
 fstype) during image generation will be realized?

Not that I know of. It is still under design last I heard, but MarkH is the
person to provide the details. He's out of the office at the moment, but
I'm sure that when he is back he can provide plenty of information.


 I am looking for post build configuration tool, which allows the product team 
 users also to configure users, network, services etc .

Agreed. I see this as something to start with, since it doesn't overlap
with the other efforts (that I know of), and when I first read your
email I thought it was the main focus. When you continued into image
creation and package selection, that's when I noted the overlap.

 Image type, file system and Partition configuration can be one of them.
 I expect the product team users who configures image and generates target 
 image, will have a little or no knowledge of bitbake, also needs easy 
 installation and less dependencies.

 Can look in this context, how HOB will fit into this scenario or needs a new 
 tool.

Keeping the number of tools low is a good thing, so hopefully it can fit
within the existing options.



 2) Binary package pool can be a minimal/partial sstate-cache, as
 complete sstate-cache is quite big and not required for product teams
 as they are not expected to build but just need

Re: [yocto] Need for offline binary configuration

2012-11-21 Thread Venkata ramana gollamudi
Reply inline

 -Original Message-
 From: Bruce Ashfield [mailto:bruce.ashfi...@windriver.com]
 Sent: Tuesday, November 20, 2012 8:53 PM
 To: Venkata ramana gollamudi
 Cc: yocto@yoctoproject.org; Sanil kumar; Hatle, Mark
 Subject: Re: [yocto] Need for offline binary configuration
 
 On 12-11-20 10:09 AM, Venkata ramana gollamudi wrote:
  Poky allows to build custom Linux for you, but we have cases where
 the post build customization is required, like user-addition, network
 configuration, service control. Even selecting the required packages
 can be a post build activity.
 
  The current model requires the image to be rebuilt to support these
 configuration.
  Offline Configuration tool (OCT), which allows a binary image
 customization before making a final target image. This case will be
 more evident in larger companies, where platform teams, product teams ,
 application teams are distributed and Linux build from source will be
 owned and lab tested by a single team, like platform team. Other teams
 just configure to use it for product variants from same platform build.
 
  Detailed use cases can be found in enhancement bug:3252
 
  OCT should work on the binary pool of compiled packages generated
 from poky.
 
  The basic operations that can be supported includes
  a) Select/deselect required packages from pool of binary packages
 into final target image.
  b) Provision to select external binary packages like ADT compiled
 applications as input and add them to final target image.
  c) Binary level Offline configuration can includes
 Configure the users/passwords
 Configure the network
 Configure the host name
 Select the services to be started by default
 Security related configuration
 Generate initrd in ramfs/ext3/... format
 etc..
 
  Considering the methods to support these in our current yocto model,
 following changes can be done.
  1) HOB can be the tool which can be extended to support these
   Poky can generate a binary package pool as one if its output and
 Hob can work on this package pool to select packages, configure and
 generate image.
  So HOB can support opening HOB in Binary(or OCT) mode i.e., without
 build options but only with binary package selection. Configuration GUI
 needs to be added to HOB.
  Note:HOB+OCT is together or separate, needs a bit more thought and
 overall organization as they will be intended for different users.
 
 Is there some overlap between this point and the other ongoing
 discussions
 about image construction, deployment and package management ?
 
 i.e. this thread:
 
[OE-core] RFC: OE-Core image creation and deployment
 
 http://lists.linuxtogo.org/pipermail/openembedded-core/2012-
 July/026938.html
 
 These may already be coordinated, but I do see some common threads and
 it would be nice to make sure everything will work together and that we
 aren't duplicating effort!
 
 Cheers,
 
 Bruce
 

Bruce, Thanks for the information. After your reply, I have gone through the 
discussions and agree that binary pool is in similar lines. Great to see that 
the realization happening in yocto1.4.
Understood that package-feed can be used to generate the target image.

Is there any RFC/mail/wiki available explaining how the configuration(like 
fstype) during image generation will be realized?

I am looking for post build configuration tool, which allows the product team 
users also to configure users, network, services etc .
Image type, file system and Partition configuration can be one of them.
I expect the product team users who configures image and generates target 
image, will have a little or no knowledge of bitbake, also needs easy 
installation and less dependencies.

Can look in this context, how HOB will fit into this scenario or needs a new 
tool.

 
  2) Binary package pool can be a minimal/partial sstate-cache, as
 complete sstate-cache is quite big and not required for product teams
 as they are not expected to build but just need to select and
 configure.
   I think it is sufficient to keep the minimal binaries from
 sstate-cache which are required to execute image.bbclass, do_rootfs
 task to generate image.

Point 2, No longer applicable as package-feed is a binary pool.

  3) Along with specific configuration UI implementation, a generic
 configuration model similar to kernel kconfig and menuconfig can be
 considered, in cases where more detailed offline configurations is
 required like detailed security configuration.

Point 3, still can be thought about.

 
  Regards,
  Ramana
  ___
  yocto mailing list
  yocto@yoctoproject.org
  https://lists.yoctoproject.org/listinfo/yocto
 

___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] Need for offline binary configuration

2012-11-20 Thread Venkata ramana gollamudi
Poky allows to build custom Linux for you, but we have cases where the post 
build customization is required, like user-addition, network configuration, 
service control. Even selecting the required packages can be a post build 
activity.

The current model requires the image to be rebuilt to support these 
configuration.
Offline Configuration tool (OCT), which allows a binary image customization 
before making a final target image. This case will be more evident in larger 
companies, where platform teams, product teams , application teams are 
distributed and Linux build from source will be owned and lab tested by a 
single team, like platform team. Other teams just configure to use it for 
product variants from same platform build.

Detailed use cases can be found in enhancement bug:3252

OCT should work on the binary pool of compiled packages generated from poky.

The basic operations that can be supported includes
a) Select/deselect required packages from pool of binary packages into final 
target image.
b) Provision to select external binary packages like ADT compiled applications 
as input and add them to final target image.
c) Binary level Offline configuration can includes 
  Configure the users/passwords
  Configure the network 
  Configure the host name 
  Select the services to be started by default
  Security related configuration
  Generate initrd in ramfs/ext3/... format
  etc..

Considering the methods to support these in our current yocto model, following 
changes can be done.
1) HOB can be the tool which can be extended to support these
Poky can generate a binary package pool as one if its output and Hob can 
work on this package pool to select packages, configure and generate image.
So HOB can support opening HOB in Binary(or OCT) mode i.e., without build 
options but only with binary package selection. Configuration GUI needs to be 
added to HOB.
Note:HOB+OCT is together or separate, needs a bit more thought and overall 
organization as they will be intended for different users. 
2) Binary package pool can be a minimal/partial sstate-cache, as complete 
sstate-cache is quite big and not required for product teams as they are not 
expected to build but just need to select and configure.
I think it is sufficient to keep the minimal binaries from sstate-cache 
which are required to execute image.bbclass, do_rootfs task to generate image. 
3) Along with specific configuration UI implementation, a generic configuration 
model similar to kernel kconfig and menuconfig can be considered, in cases 
where more detailed offline configurations is required like detailed security 
configuration.

Regards,
Ramana 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] How do you release distros produced with Yocto? How should I?

2012-10-04 Thread Venkata ramana gollamudi
On Tue, Oct 02, 2012 at 12:43:27PM -0400, Jerrod Peach wrote:
 I was thinking about doing something very close to that in actual Yocto,
 except I'd store only the revisions/branches that were different from what
 the bb file prescribed in local.conf.  I ran that idea by a couple of
 colleagues separately and they both immediately pointed out a concern: they
 didn't want to have two different places that could manage the revision of
 the package, i.e. local.conf and the package bb file.  They don't like how
 that works in the system we have today.  Instead, they wanted to branch all
 the metadata and have people update individual bb files with different
 revisions as necessary.  That leaves only one place to manage the revision:
 the package bb file.  Doing all that branching concerns me (it seems
 heavier-weight than it needs to be, at the very least), but I can't say
 specifically why branching the bb files is harmful.  If you guys can think
 of a reason why, let me know.  If you think it's reasonable, let me know
 that too.

We have solved this issue by adding OS_VERSION variable to local.conf
Lets say your product (OS) should be released in versions, Ex: 1.0 , 1.1 or 
1.1.1 etc.
Which is built from packages of different versions. So each package contains 
pkgname.inc and package_version.bb file.
revision number and patches are maintained in package_version.bb and all 
common part under package.inc.

Now the problem comes to mapping the package versions to your product(OS) 
version.
This is done having a file included into disto file listing out all the 
PREFERRED_VERSIONS and PREFERRED_PROVIDERS for all packages.
  ex: conf/disto/include/osversion_1.0.inc
And this is included to disto file like
  require conf/disto/include/osversion_${OS_VERSION}.inc

The file osversion_1.0.inc is freezed after your one version release.
Next version will add a new file osversion_1.1.inc overiding to pick all the 
required package version changes to make your product version.

This will allow you to release multiple product(OS) versions and clearly maps 
the package version, creating individual distributions.
You can even build older version product by just giving OS_VERSION=1.0 in 
local.conf
This eliminates branching all together.

Regards,
Ramana
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] mechanism to disable package management on target

2012-08-01 Thread Venkata ramana gollamudi
Hi,



Is there any mechanism to disable package management, so that my rootfs 
should not have any package management related packages like opkg etc.

 I found that one of the methods ipk/rpm/deb need to be mandatorily selected. 
Please suggest if any such method exists.



Regards,

Ramana


___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] Problem in downloading linux-yocto source behind proxy

2012-06-22 Thread Venkata ramana gollamudi
Hi,

We tried to build yocto release downloaded from autobuilder

http://autobuilder.yoctoproject.org/pub/nightly/20120621-3/yocto.tar.bz2

We work behind a http proxy and firewall setup from office network.

Previously we used to build by setting PREMIRRORS to
git://.*/.*   http://downloads.yoctoproject.org/mirror/sources/ 
\n \
as all the source is available in the above mentioned mirror path for 
every RC release.

1) But now we couldnot find linux-yocto source at (for 1.3M1RC1 or RC2 
release)
i.e 
http://downloads.yoctoproject.org/mirror/sources/git2_git.yoctoproject.org.linux-yocto-3.4.git.tar.gz

2) I remember that there was a discussion to enable readonly way of 
accessing git through http.
Is it currently available?

Please suggest some alternative mechanism.

Regards,
Ramana

___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto