Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] YAFFS2 support for buildroot
@ 2010-12-08 16:44 Robert Szentmihalyi
  2010-12-08 19:34 ` Thomas Petazzoni
  0 siblings, 1 reply; 5+ messages in thread
From: Robert Szentmihalyi @ 2010-12-08 16:44 UTC (permalink / raw)
  To: buildroot

Hi,

I am planning to add YAFFS2 support to buildroot.
Is anybody else interested in that or working on it already?

Would anybody care to give me a hint about what is the preferred way to add 
support for a new root filesystem to buildroot, so that a patch could 
eventually be accepted for inclusion?

Thanks for your support,
 Robert


-- 
Robert Szentmih?lyi
Technischer Leiter

Helvetica IT AG
Bahnhofstrasse 15
CH-8890 Flums SG

Tel +41 81 733 15 67
Fax +41 81 733 15 68
Mobil +41 79 252 97 80

Niederlassung Deutschland:
Leopoldstrasse 244
DE-80807 M?nchen

Tel +49 89 20 80 39 508

http://www.helvetica-it.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] YAFFS2 support for buildroot
  2010-12-08 16:44 [Buildroot] YAFFS2 support for buildroot Robert Szentmihalyi
@ 2010-12-08 19:34 ` Thomas Petazzoni
  2010-12-08 22:47   ` Robert Szentmihalyi
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2010-12-08 19:34 UTC (permalink / raw)
  To: buildroot

Hi Robert,

On Wed, 8 Dec 2010 17:44:10 +0100
Robert Szentmihalyi <robert.szentmihalyi@helvetica-it.com> wrote:

> I am planning to add YAFFS2 support to buildroot.
> Is anybody else interested in that or working on it already?

I am not personaly, and I haven't heard of any effort in this direction.

> Would anybody care to give me a hint about what is the preferred way to add 
> support for a new root filesystem to buildroot, so that a patch could 
> eventually be accepted for inclusion?

It depends on what you want to be able to do:

 1) Have Buildroot generate a YAFFS2 image for the filesystem

 2) Have Buildroot patch the kernel built to support YAFFS2

1) is fairly easy, 2) is much more complicated because we don't have
(yet ?) a proper infrastructure to handle third-party kernel patches in
a generic way (even though it'd be nice to support things like Xenomai).

For 1), what you have to do is :

 *) Create a package for the userspace yaffs tools. You can look in
    package/cramfs/cramfs.mk for an example. You need to do this so
    that Buildroot builds a host version of mkyaffs and installs it in
    $(HOST_DIR)/usr/bin.

 *) Create a new filesystem format in fs/yaffs/ by taking example on
    other filesystems.

If you need any other detail or clarification about this, do not
hesitate to ask.

Regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] YAFFS2 support for buildroot
  2010-12-08 19:34 ` Thomas Petazzoni
@ 2010-12-08 22:47   ` Robert Szentmihalyi
  2010-12-09 19:33     ` Thomas Petazzoni
  0 siblings, 1 reply; 5+ messages in thread
From: Robert Szentmihalyi @ 2010-12-08 22:47 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

thank you for your input.

On Mittwoch, 8. Dezember 2010, Thomas Petazzoni wrote:
> Hi Robert,
> 
> On Wed, 8 Dec 2010 17:44:10 +0100
> 
> Robert Szentmihalyi <robert.szentmihalyi@helvetica-it.com> wrote:
> > I am planning to add YAFFS2 support to buildroot.
> > Is anybody else interested in that or working on it already?
> 
> I am not personaly, and I haven't heard of any effort in this direction.
> 
> > Would anybody care to give me a hint about what is the preferred way to
> > add support for a new root filesystem to buildroot, so that a patch
> > could eventually be accepted for inclusion?
> 
> It depends on what you want to be able to do:
> 
>  1) Have Buildroot generate a YAFFS2 image for the filesystem
> 
>  2) Have Buildroot patch the kernel built to support YAFFS2

I have solved that with the attached script for now, which generates a patch 
against a given kernel which contains the yaffs2 code taken from the git 
repository plus a defconfig for our board. I place the generated patch in the 
buildroot directory and set BR2_LINUX_KERNEL_PATCH and 
BR2_LINUX_KERNEL_DEFCONFIG to make use of it.
This works at least until I have time to think up something better :-)


> 
> 1) is fairly easy, 2) is much more complicated because we don't have
> (yet ?) a proper infrastructure to handle third-party kernel patches in
> a generic way (even though it'd be nice to support things like Xenomai).
> 
> For 1), what you have to do is :
> 
>  *) Create a package for the userspace yaffs tools. You can look in
>     package/cramfs/cramfs.mk for an example. You need to do this so
>     that Buildroot builds a host version of mkyaffs and installs it in
>     $(HOST_DIR)/usr/bin.

I looked at cramfs.mk.
Is there a way to pull the sources from the yaffs git repository, or will I 
have to create a pseudo package and place it in the dl directory?
As I said, my goal is not just to make it work somehow, but to create a patch 
which can be submitted later, so that others can benefit from it.

> 
>  *) Create a new filesystem format in fs/yaffs/ by taking example on
>     other filesystems.

I did that and I added 
source "fs/yaffs2/Config.in"
to
fs/Config.in,
but the option does not appear under "target filesystem options".


What am I missing?

> 
> If you need any other detail or clarification about this, do not
> hesitate to ask.
> 
> Regards,
> 
> Thomas

Thanks for your help!

Regards,
 Robert

-- 
Robert Szentmih?lyi
Technischer Leiter

Helvetica IT AG
Bahnhofstrasse 15
CH-8890 Flums SG

Tel +41 81 733 15 67
Fax +41 81 733 15 68
Mobil +41 79 252 97 80

Niederlassung Deutschland:
Leopoldstrasse 244
DE-80807 M?nchen

Tel +49 89 20 80 39 508

http://www.helvetica-it.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mk_buildroot_patch.sh
Type: application/x-shellscript
Size: 1509 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20101208/fe84b90d/attachment.bin>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] YAFFS2 support for buildroot
  2010-12-08 22:47   ` Robert Szentmihalyi
@ 2010-12-09 19:33     ` Thomas Petazzoni
  2010-12-10 23:28       ` Robert Szentmihalyi
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2010-12-09 19:33 UTC (permalink / raw)
  To: buildroot

Hello Robert,

On Wed, 8 Dec 2010 23:47:55 +0100
Robert Szentmihalyi <robert.szentmihalyi@helvetica-it.com> wrote:

> I have solved that with the attached script for now, which generates
> a patch against a given kernel which contains the yaffs2 code taken
> from the git repository plus a defconfig for our board. I place the
> generated patch in the buildroot directory and set
> BR2_LINUX_KERNEL_PATCH and BR2_LINUX_KERNEL_DEFCONFIG to make use of
> it. This works at least until I have time to think up something
> better :-)

Ok. I haven't either thought on how to integrate well-known kernel
patches. This is probably a topic on which we will work on later.

> Is there a way to pull the sources from the yaffs git repository, or
> will I have to create a pseudo package and place it in the dl
> directory? As I said, my goal is not just to make it work somehow,
> but to create a patch which can be submitted later, so that others
> can benefit from it.

Yes, the GENTARGETS and AUTOTARGETS infrastructure can both pull
sources from a git repository. Something like :

YAFFSTOOLS_SITE = git://foobar.org
YAFFSTOOLS_VERSION = somegitcommitid

See http://buildroot.org/downloads/buildroot.html#generic-reference for
more details

> I did that and I added 
> source "fs/yaffs2/Config.in"
> to
> fs/Config.in,
> but the option does not appear under "target filesystem options".

Could you post what you have done exactly ? Because from this
description, it should just work.

Regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] YAFFS2 support for buildroot
  2010-12-09 19:33     ` Thomas Petazzoni
@ 2010-12-10 23:28       ` Robert Szentmihalyi
  0 siblings, 0 replies; 5+ messages in thread
From: Robert Szentmihalyi @ 2010-12-10 23:28 UTC (permalink / raw)
  To: buildroot

Hello Thomas,

On Donnerstag, 9. Dezember 2010, Thomas Petazzoni wrote:
> 
> Yes, the GENTARGETS and AUTOTARGETS infrastructure can both pull
> sources from a git repository. Something like :
> 
> YAFFSTOOLS_SITE = git://foobar.org
> YAFFSTOOLS_VERSION = somegitcommitid
> 
> See http://buildroot.org/downloads/buildroot.html#generic-reference for
> more details

The download now works and I have solved the other issues, but I still don't 
quite see how to effectively implement yaffstools.mk for building mkyaffsimage 
and mkyaffs2image.

How do I refer to the kernel directory?
I have attached my cuurent yaffstools.mk and the original Makefile from git.
Maybe you could have a look at it in case you have a few spare minutes :-)

> 
> > I did that and I added
> > source "fs/yaffs2/Config.in"
> > to
> > fs/Config.in,
> > but the option does not appear under "target filesystem options".
> 
> Could you post what you have done exactly ? Because from this
> description, it should just work.
> 

I have found the problem that caused this in the meantime.

Thanks for your help,
 Robert

-- 
Robert Szentmih?lyi
Technischer Leiter

Helvetica IT AG
Bahnhofstrasse 15
CH-8890 Flums SG

Tel +41 81 733 15 67
Fax +41 81 733 15 68
Mobil +41 79 252 97 80

Niederlassung Deutschland:
Leopoldstrasse 244
DE-80807 M?nchen

Tel +49 89 20 80 39 508

http://www.helvetica-it.com
-------------- next part --------------
#############################################################
#
# yaffs-utils
#
#############################################################

YAFFSTOOLS_SITE = git://www.aleph1.co.uk/yaffs2
YAFFSTOOLS_VERSION = 0e2c2639d6f9ac7b09c93550f9bfa03fdb734eef


define YAFFS_BUILD_CMDS
 $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" -C $(@D)
endef

define YAFFS_INSTALL_TARGET_CMDS
 install -D -m 755 $(@D)/mkyaffsimage $(TARGET_DIR)/usr/sbin/mkyaffsimage
 install -D -m 755 $(@D)/mkyaffs2image $(TARGET_DIR)/usr/sbin/mkyaffs2image
endef

define HOST_YAFFS_BUILD_CMDS
 $(HOST_MAKE_ENV) $(MAKE) CFLAGS="$(HOST_CFLAGS) -Wall -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS="$(HOST_LDFLAGS)" -C $(@D)
endef

define HOST_YAFFS_INSTALL_CMDS
 install -D -m 755 $(@D)/mkyaffsimage $(HOST_DIR)/usr/sbin/mkyaffsimage
 install -D -m 755 $(@D)/mkyaffs2image $(HOST_DIR)/usr/sbin/mkyaffs2image
endef

$(eval $(call GENTARGETS,package,yaffstools))
$(eval $(call GENTARGETS,package,yaffstools,host))
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Makefile
Type: text/x-makefile
Size: 1739 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20101211/e5349a99/attachment.bin>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-12-10 23:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-08 16:44 [Buildroot] YAFFS2 support for buildroot Robert Szentmihalyi
2010-12-08 19:34 ` Thomas Petazzoni
2010-12-08 22:47   ` Robert Szentmihalyi
2010-12-09 19:33     ` Thomas Petazzoni
2010-12-10 23:28       ` Robert Szentmihalyi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox