On Tue, Sep 03, 2019 at 03:08:08PM +0200, Michael Olbrich wrote:
> On Tue, Sep 03, 2019 at 02:22:04PM +0200, Alexander Dahl wrote:
> > Hello Roland,
> > 
> > Am Dienstag, 3. September 2019, 14:00:17 CEST schrieb Roland Hieber:
> > > On Tue, Sep 03, 2019 at 01:50:25PM +0200, Alexander Dahl wrote:
> > > > After discussing these topics in IRC, it seemed reasonable to add some
> > > > explanation on how to create a new layer from scratch.
> > > 
> > > \o/ someone else did a task on my overlong todo list :D
> > 
> > Yes, and I just saw you already wrote a piece on that topic, but on your 
> > website, not in ptxdist documentation:
> > 
> > https://pengutronix.de/en/blog/2019-06-18-DistroKitLayer.html
> > 
> > o.O

Uhm. Thanks for reminding me ... ^^ Chris did most of the work though, I
only proof-read it.

> > > > +
> > > > +Creating a new Layer
> > > > +~~~~~~~~~~~~~~~~~~~~
> > > > +
> > > > +Adding new layers on top of an already existing BSP is easy:
> > > > +
> > > > +#. Create an empty folder, e.g. next to the existing BSP.
> > > > +#. The lower layer is just a folder named ``base`` (see layers_ above).
> > > > You +   may do one of the following (or something else you consider
> > > > convenient): +
> > > > +   - Create a symbolic link ``base`` to an outside laying BSP folder. 
> > > > For
> > > > +     an easy start, you can try this method with DistroKit_ for 
> > > > example:
> > > > +     ``$ ln -s ../DistroKit base``
> > > 
> > > We have done that too sometimes in the past, but if the config files in
> > > the base layer are not in the right versions, the MD5 sum in the config
> > > diffs in the inherited layer will not match. I think this should be
> > > mentioned here.
> > 
> > Sorry, I do not understand. :-/
> > 
> > > > +   - Use a Git submodule with a BSP in a folder ``base``.
> > > > +   - Copy over your whole existing BSP to a new subfolder ``base``.
> > > 
> > > Subtree merges are another possibility, although I've never done one.
> > 
> > Same here.
> > 
> > > > +
> > > > +#. If needed select **ptxconfig** and/or **platformconfig** after 
> > > > copying
> > > > +   that file from the lower layer to your new layer:
> > > > +
> > > > +.. code-block:: text
> > > > +
> > > > +   $ mkdir -p configs/platform-v7a
> > > > +   $ cp base/configs/platform-v7a/platformconfig configs/platform-v7a/
> > > > +   $ ptxdist platform configs/platform-v7a/platformconfig
> > > 
> > > I think you should be able to select the config from base/ directly
> > > without copying them? mol?
> > 
> > I did not try that. What is possible to select would be indeed an 
> > interesting 
> > piece in the docs! That question came up multiple times in IRC in the last 
> > days. ;-)
> 
> If there is just on platform, then ptxdist will just use that on if no
> selected_platformconfig exists. This is especially useful with layers,
> because it will then just pick the config from the first layer that has
> one.
> 
> This means, that you can start with just the base link. Then change
> something with 'ptxdist platformconfig'. PTXdist will create the
> platformconfig in your new layer and use it automatically.
> 
> The same works for the ptxconfig as well.

Hmm, this explanation does not match my experience...

    rhi@dude test-bsp $ p version
    2019.08.0
    
    rhi@dude test-bsp $ l
    lrwxrwxrwx  1 rhi ptx   10 Sep  3 14:58 base -> DistroKit/
    drwxr-xr-x 11 rhi ptx  232 Sep  3 15:03 DistroKit
    
    rhi@dude test-bsp $ l DistroKit/selected_*
    lrwxrwxrwx 1 rhi ptx  35 Sep  3 15:03 DistroKit/selected_platformconfig -> 
configs/platform-v7a/platformconfig
    lrwxrwxrwx 1 rhi ptx 118 Sep  3 15:03 DistroKit/selected_toolchain -> 
/opt/OSELAS.Toolchain-2018.12.0/arm-v7a-linux-gnueabihf/gcc-8.2.1-glibc-2.28-binutils-2.31.1-kernel-4.19-sanitized/bin
    
    rhi@dude test-bsp $ p menuconfig platform
    configuration written to .config
    
    *** End of the configuration.
    *** Execute 'ptxdist go' to build the project or try 'ptxdist help'.
    
    Saving 'test-bsp/DistroKit/configs/platform-v7a/platformconfig'.

Same for ptxdist menuconfig, which changes test-bsp/DistroKit/configs/ptxconfig
instead of configs/ptxconfig in the current layer. However, when I copy
base/configs/ptxconfig to configs/ptxconfig, and then do a menuconfig,
it is changed in the current layer.

 - Roland

-- 
Roland Hieber                     | r.hie...@pengutronix.de     |
Pengutronix e.K.                  | https://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim | Phone: +49-5121-206917-5086 |
Amtsgericht Hildesheim, HRA 2686  | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

Reply via email to