<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>1678</bug_id>
          
          <creation_ts>2011-10-14 12:12:13 +0000</creation_ts>
          <short_desc>kernel usability scripts</short_desc>
          <delta_ts>2012-04-04 13:47:24 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>6</classification_id>
          <classification>Yocto Project Subprojects</classification>
          <product>Kernel</product>
          <component>kernel-tooling</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard>(P2)(QA Testing Completed) Done</status_whiteboard>
          <keywords></keywords>
          <priority>Medium</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>1.2 M4</target_milestone>
          
          <blocked>1610</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tom Zanussi">tom.zanussi</reporter>
          <assigned_to name="Tom Zanussi">tom.zanussi</assigned_to>
          <cc>dvhart</cc>
    
    <cc>jiajun.xu</cc>
    
    <cc>sgw</cc>
    
    <cc>song.liu</cc>
    
    <cc>yp.kernel.watcher</cc>
    
    <cc>yp.watcher</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>---</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>16880</commentid>
    <comment_count>0</comment_count>
    <who name="Tom Zanussi">tom.zanussi</who>
    <bug_when>2011-10-14 12:12:13 +0000</bug_when>
    <thetext>Here&apos;s a dump of my slides on this topic.  Basically my idea was to have 3
scripts to cover the 3 most common use cases for dealing with the kernel in
BSPs:

- creating a new BSP
- setting config items
- patching the kernel

It&apos;s become apparent that people have a hard time dealing with the kernel, and
Yocto adds another level of confusion to that, with machine and meta branches
in recipes, git, etc.  Dealing with the kernel is a big part of dealing with
BSPs
Creating BSPs is also error-prone, and a lot of it boilerplate.  So we should
make it all easy if we can for users who just want to get Yocto running on
their board.

Create a script or wizard to start a BSP with.  Allow it to take a few
parameters: the name and architecture of the new machine, what it&apos;s based on
e.g standard, base, preempt-rt, etc, and any others that make sense.  This
would create a meta-machine layer in userspace.  It would also create and point
to a local clone of the repo.  Within that clone, it would create the machine
branch.  It would also create the necessary meta branch items.  At this point
everything is ready to go – the user can proceed to build an image.

The other thing that BSP maintainers need to do a lot of is enable and disable
config items.  Assuming you know the config items to set, you should be able to
simply have them added to the BSP, committed to the meta branch, and have a
rebuild pick them up.

The third common use case is applying a patch to the kernel.  Again, assuming
the patch is good, you should be able to add them to the machine branch, have
them committed, and have a rebuild pick them up.

Sometimes a combination of patch + config item is necessary, that can be done
as a combination of the above.  

All of the above should be doable without knowing a thing about git, or the
Yocto kernel or even about Yocto.  Basically: I have this board, I have this
config option that Google tells me enables the CDROM drive, I want to try that
without having to read anything.  Anything above and beyond that involves
reading something or using the other Yocto tools like Hob, in case there&apos;s a
need to add some userspace changes.

Speaking of which, should it be designed to integrate with Hob in some way?
Initial implementation would probably just be 3 command-line scripts e.g.
makebsp, configbsp, patchbsp.

I&apos;m assuming Python would be the best choice, but could be done as shell
scripts, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17024</commentid>
    <comment_count>1</comment_count>
    <who name="Tom Zanussi">tom.zanussi</who>
    <bug_when>2011-11-01 09:01:43 +0000</bug_when>
    <thetext>Moving this to milestone 2, swapping with 1660 to keep the hardware-related BSP stuff together in the first milestone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17903</commentid>
    <comment_count>2</comment_count>
    <who name="Jiajun Xu">jiajun.xu</who>
    <bug_when>2011-12-30 22:29:14 +0000</bug_when>
    <thetext>I think for the feature, QA needs to use these script to do BSP modify. We will design detailed cases after these scripts are finished.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18167</commentid>
    <comment_count>3</comment_count>
    <who name="Tom Zanussi">tom.zanussi</who>
    <bug_when>2012-01-16 06:51:01 +0000</bug_when>
    <thetext>Moved to M3 - this is a bigger job than originally planned but is on track for completion the first week of M3 or so.

Here is a detailed description of what&apos;s being implemented:

http://www.mail-archive.com/yocto@yoctoproject.org/msg03555.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>19221</commentid>
    <comment_count>4</comment_count>
    <who name="Tom Zanussi">tom.zanussi</who>
    <bug_when>2012-03-19 15:21:10 +0000</bug_when>
    <thetext>Developement is complete and version 2 has been submitted - all input from version 1 was addressed.

This should be pulled into M4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>19638</commentid>
    <comment_count>5</comment_count>
    <who name="Tom Zanussi">tom.zanussi</who>
    <bug_when>2012-03-29 22:59:09 +0000</bug_when>
    <thetext>Included in 1.2 M4, poky commit: 5a6ded1355156557635004fdde2c01feec436be2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>19854</commentid>
    <comment_count>6</comment_count>
    <who name="Jiajun Xu">jiajun.xu</who>
    <bug_when>2012-04-04 13:47:24 +0000</bug_when>
    <thetext>QA tested the yocto-bsp/kernel in 1.2 M4 RC1, it could work.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>