All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] Add mkelfimage and support for generating kernel+initrd ELF payloads to OpenEmbedded
@ 2011-07-15 16:55 Raymond Danks
  2011-07-15 18:48 ` Paul Menzel
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Raymond Danks @ 2011-07-15 16:55 UTC (permalink / raw)
  To: openembedded-devel; +Cc: coreboot

On x86, and ELF image file may be stored as a coreboot payload.  This 
image file may be a kernel or a kernel+initrd.

Documentation on this has been started on the coreboot wiki:
http://www.coreboot.org/Mkelfimage

We have seen success using the mkelfimage utility to construct a 
kernel+initrd image using the micro-image OpenEmbedded image as an initrd.
http://www.se-eng.com/wiki/index.php/Open_Embedded_Setup

The first patch contains the meta files for the mkelfimage utility in 
OpenEmbedded.
---
  recipes/mkelfimage/files/no-stack-protector.patch |   11 +++++++++++
  recipes/mkelfimage/mkelfimage-native_git.bb       |   11 +++++++++++
  recipes/mkelfimage/mkelfimage.inc                 |    3 +++
  recipes/mkelfimage/mkelfimage_git.bb              |   17 +++++++++++++++++
  4 files changed, 42 insertions(+), 0 deletions(-)
  create mode 100644 recipes/mkelfimage/files/no-stack-protector.patch
  create mode 100644 recipes/mkelfimage/mkelfimage-native_git.bb
  create mode 100644 recipes/mkelfimage/mkelfimage.inc
  create mode 100644 recipes/mkelfimage/mkelfimage_git.bb

diff --git a/recipes/mkelfimage/files/no-stack-protector.patch 
b/recipes/mkelfimage/files/no-stack-protector.patch
new file mode 100644
index 0000000..135de8d
--- /dev/null
+++ b/recipes/mkelfimage/files/no-stack-protector.patch
@@ -0,0 +1,11 @@
+--- mkelfImage/Makefile.orig    2011-06-17 15:20:46.816870941 -0600
++++ mkelfImage/Makefile    2011-06-17 15:20:59.619382362 -0600
+@@ -14,7 +14,7 @@
+ pkglibdir = $(libdir)/$(PACKAGE)
+ pkgincludedir = $(includedir)/$(PACKAGE)
+
+-CPPFLAGS=-DVERSION='"$(VERSION)"' -DRELEASE_DATE='"$(RELEASE_DATE)"' 
-I include
++CPPFLAGS=-fno-stack-protector -DVERSION='"$(VERSION)"' 
-DRELEASE_DATE='"$(RELEASE_DATE)"' -I include $(CFLAGS) $(LDFLAGS)
+ HOST_CPPFLAGS=$(CPPFLAGS)
+ I386_CPPFLAGS=$(CPPFLAGS) -I arch/i386/include
+ IA64_CPPFLAGS=$(CPPFLAGS) -I arch/ia64/include
diff --git a/recipes/mkelfimage/mkelfimage-native_git.bb 
b/recipes/mkelfimage/mkelfimage-native_git.bb
new file mode 100644
index 0000000..e2f251e
--- /dev/null
+++ b/recipes/mkelfimage/mkelfimage-native_git.bb
@@ -0,0 +1,11 @@
+require mkelfimage_${PV}.bb
+inherit native
+
+do_stage () {
+    install -m 0755 objdir/sbin/mkelfImage ${STAGING_BINDIR}/
+}
+
+do_install () {
+    :
+}
+
diff --git a/recipes/mkelfimage/mkelfimage.inc 
b/recipes/mkelfimage/mkelfimage.inc
new file mode 100644
index 0000000..e06ed67
--- /dev/null
+++ b/recipes/mkelfimage/mkelfimage.inc
@@ -0,0 +1,3 @@
+LICENSE = "GPLv2"
+DESCRIPTION = "A utility to create ELF boot images from Linux kernel 
images"
+SECTION = "console/utils"
diff --git a/recipes/mkelfimage/mkelfimage_git.bb 
b/recipes/mkelfimage/mkelfimage_git.bb
new file mode 100644
index 0000000..7855f58
--- /dev/null
+++ b/recipes/mkelfimage/mkelfimage_git.bb
@@ -0,0 +1,17 @@
+require mkelfimage.inc
+
+SRCREV = "c045b4cc458a62dbb1dd99ae6a9343e52d1fe1e0"
+PV = "1.0.0+gitr${SRCPV}"
+PR = "r1"
+
+S = "${WORKDIR}/git/util/mkelfImage"
+
+SRC_URI = 
"git://review.coreboot.org/p/coreboot;protocol=http;branch=master \
+       file://no-stack-protector.patch"
+
+DEFAULT_PREFERENCE = "1"
+
+inherit autotools
+
+SRC_URI[md5sum] = "719b22bdd34431203f9349250c67c5e3"
+SRC_URI[sha256sum] = 
"9186e6e7302f38c1f77b763f0f14843fabc873ac7c81ede8ee094a47055668b5"
-- 
1.7.0.4




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

* Re: [PATCH 1/2] Add mkelfimage and support for generating kernel+initrd ELF payloads to OpenEmbedded
  2011-07-15 16:55 [PATCH 1/2] Add mkelfimage and support for generating kernel+initrd ELF payloads to OpenEmbedded Raymond Danks
@ 2011-07-15 18:48 ` Paul Menzel
  2011-07-15 21:25   ` Raymond Danks
  2011-07-15 23:04 ` [PATCH 1/2 v2] mkelfimage: Add version c045b4cc from Git (initial recipe) Raymond Danks
  2011-07-15 23:04 ` [PATCH 2/2 v2] conf/bitbake.conf: Add support for generating kernel+initrd ELF coreboot payloads Raymond Danks
  2 siblings, 1 reply; 5+ messages in thread
From: Paul Menzel @ 2011-07-15 18:48 UTC (permalink / raw)
  To: openembedded-devel, Raymond Danks; +Cc: coreboot

[-- Attachment #1: Type: text/plain, Size: 5324 bytes --]

Dear Raymond,


I am putting you in CC not knowing if you read the lists.


Am Freitag, den 15.07.2011, 10:55 -0600 schrieb Raymond Danks:

The correct commit summary is

	mkelfimage: Add version c045b4cc from Git (initial recipe)

> On x86, and ELF image file may be stored as a coreboot payload.  This 

s/and/an/

> image file may be a kernel or a kernel+initrd.
> 
> Documentation on this has been started on the coreboot wiki:
> http://www.coreboot.org/Mkelfimage
> 
> We have seen success using the mkelfimage utility to construct a 
> kernel+initrd image using the micro-image OpenEmbedded image as an initrd.
> http://www.se-eng.com/wiki/index.php/Open_Embedded_Setup

What is your build configuration for testing this recipe?

> The first patch contains the meta files for the mkelfimage utility in 
> OpenEmbedded.

Please remove that line above. The commit message should be describing
the commit only.

Unfortunately we cannot commit your patch, especially because your
Signed-off-by line is missing – you can add `-s` to the Git commands
`git commit` or `git format-patch` and your mailer mangled the patch by
automatic line breaks.

Please follow the commit policy [1] and it would be great if you could
send us a corrected patch [2].

> ---
>   recipes/mkelfimage/files/no-stack-protector.patch |   11 +++++++++++
>   recipes/mkelfimage/mkelfimage-native_git.bb       |   11 +++++++++++
>   recipes/mkelfimage/mkelfimage.inc                 |    3 +++
>   recipes/mkelfimage/mkelfimage_git.bb              |   17 +++++++++++++++++
>   4 files changed, 42 insertions(+), 0 deletions(-)
>   create mode 100644 recipes/mkelfimage/files/no-stack-protector.patch
>   create mode 100644 recipes/mkelfimage/mkelfimage-native_git.bb
>   create mode 100644 recipes/mkelfimage/mkelfimage.inc
>   create mode 100644 recipes/mkelfimage/mkelfimage_git.bb
> 
> diff --git a/recipes/mkelfimage/files/no-stack-protector.patch 
> b/recipes/mkelfimage/files/no-stack-protector.patch
> new file mode 100644
> index 0000000..135de8d
> --- /dev/null
> +++ b/recipes/mkelfimage/files/no-stack-protector.patch
> @@ -0,0 +1,11 @@
> +--- mkelfImage/Makefile.orig    2011-06-17 15:20:46.816870941 -0600
> ++++ mkelfImage/Makefile    2011-06-17 15:20:59.619382362 -0600

Please add a header describing this patch [3].

> +@@ -14,7 +14,7 @@
> + pkglibdir = $(libdir)/$(PACKAGE)
> + pkgincludedir = $(includedir)/$(PACKAGE)
> +
> +-CPPFLAGS=-DVERSION='"$(VERSION)"' -DRELEASE_DATE='"$(RELEASE_DATE)"' 
> -I include

Here you can see an automatic line break.

> ++CPPFLAGS=-fno-stack-protector -DVERSION='"$(VERSION)"' 
> -DRELEASE_DATE='"$(RELEASE_DATE)"' -I include $(CFLAGS) $(LDFLAGS)
> + HOST_CPPFLAGS=$(CPPFLAGS)
> + I386_CPPFLAGS=$(CPPFLAGS) -I arch/i386/include
> + IA64_CPPFLAGS=$(CPPFLAGS) -I arch/ia64/include

Please send that patch separately to the coreboot list if it is useful
for upstream. You should be able to use Gerrit and you also need a
Signed-off-by line [4].

> diff --git a/recipes/mkelfimage/mkelfimage-native_git.bb 
> b/recipes/mkelfimage/mkelfimage-native_git.bb
> new file mode 100644
> index 0000000..e2f251e
> --- /dev/null
> +++ b/recipes/mkelfimage/mkelfimage-native_git.bb
> @@ -0,0 +1,11 @@
> +require mkelfimage_${PV}.bb
> +inherit native
> +
> +do_stage () {

Please follow the style guide [5], i. e., no space before `()`.

> +    install -m 0755 objdir/sbin/mkelfImage ${STAGING_BINDIR}/
> +}

`do_stage ()` is deprecated [6].

> +
> +do_install () {
> +    :
> +}
> +
> diff --git a/recipes/mkelfimage/mkelfimage.inc 
> b/recipes/mkelfimage/mkelfimage.inc
> new file mode 100644
> index 0000000..e06ed67
> --- /dev/null
> +++ b/recipes/mkelfimage/mkelfimage.inc
> @@ -0,0 +1,3 @@
> +LICENSE = "GPLv2"
> +DESCRIPTION = "A utility to create ELF boot images from Linux kernel 
> images"
> +SECTION = "console/utils"

Please order those as in the style guide and please also add the
`HOMEPAGE` variable.

> diff --git a/recipes/mkelfimage/mkelfimage_git.bb 
> b/recipes/mkelfimage/mkelfimage_git.bb
> new file mode 100644
> index 0000000..7855f58
> --- /dev/null
> +++ b/recipes/mkelfimage/mkelfimage_git.bb
> @@ -0,0 +1,17 @@
> +require mkelfimage.inc
> +
> +SRCREV = "c045b4cc458a62dbb1dd99ae6a9343e52d1fe1e0"
> +PV = "1.0.0+gitr${SRCPV}"
> +PR = "r1"

We start with `r0`.

> +
> +S = "${WORKDIR}/git/util/mkelfImage"
> +
> +SRC_URI = 
> "git://review.coreboot.org/p/coreboot;protocol=http;branch=master \
> +       file://no-stack-protector.patch"
> +
> +DEFAULT_PREFERENCE = "1"

Not needed since this is the only recipe.

> +
> +inherit autotools
> +
> +SRC_URI[md5sum] = "719b22bdd34431203f9349250c67c5e3"
> +SRC_URI[sha256sum] = 
> "9186e6e7302f38c1f77b763f0f14843fabc873ac7c81ede8ee094a47055668b5"

Is that needed? There is no archive as far as I know.


Thanks,

Paul


[1] http://openembedded.org/index.php/Commit_Policy
[2] http://openembedded.org/index.php/How_to_submit_a_patch_to_OpenEmbedded
[3] http://openembedded.org/index.php/Commit_Patch_Message_Guidelines
[4] http://www.coreboot.org/Development_Guidelines
[5] http://openembedded.org/index.php/Styleguide
[6] http://openembedded.org/index.php/Legacy_staging

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

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

* Re: [PATCH 1/2] Add mkelfimage and support for generating kernel+initrd ELF payloads to OpenEmbedded
  2011-07-15 18:48 ` Paul Menzel
@ 2011-07-15 21:25   ` Raymond Danks
  0 siblings, 0 replies; 5+ messages in thread
From: Raymond Danks @ 2011-07-15 21:25 UTC (permalink / raw)
  To: Paul Menzel, openembedded-devel; +Cc: coreboot

Thanks Paul.  I am putting together new patches to address your feedback 
on style guide, mailer line-feed, and patch format/commit policy.

As far as the build configuration this was tested on is concerned, this 
is Ubuntu 10.04 x86_64-linux targeting i686-oe-linux using a one-off of 
the i686-generic.conf machine targeting a 4MB flash part.

Thanks again,
Ray

On 07/15/2011 12:48 PM, Paul Menzel wrote:
> Dear Raymond,
>
>
> I am putting you in CC not knowing if you read the lists.
>
>
> Am Freitag, den 15.07.2011, 10:55 -0600 schrieb Raymond Danks:
>
> The correct commit summary is
>
> 	mkelfimage: Add version c045b4cc from Git (initial recipe)
>
>> On x86, and ELF image file may be stored as a coreboot payload.  This
> s/and/an/
>
>> image file may be a kernel or a kernel+initrd.
>>
>> Documentation on this has been started on the coreboot wiki:
>> http://www.coreboot.org/Mkelfimage
>>
>> We have seen success using the mkelfimage utility to construct a
>> kernel+initrd image using the micro-image OpenEmbedded image as an initrd.
>> http://www.se-eng.com/wiki/index.php/Open_Embedded_Setup
> What is your build configuration for testing this recipe?
>
>> The first patch contains the meta files for the mkelfimage utility in
>> OpenEmbedded.
> Please remove that line above. The commit message should be describing
> the commit only.
>
> Unfortunately we cannot commit your patch, especially because your
> Signed-off-by line is missing – you can add `-s` to the Git commands
> `git commit` or `git format-patch` and your mailer mangled the patch by
> automatic line breaks.
>
> Please follow the commit policy [1] and it would be great if you could
> send us a corrected patch [2].
>
>> ---
>>    recipes/mkelfimage/files/no-stack-protector.patch |   11 +++++++++++
>>    recipes/mkelfimage/mkelfimage-native_git.bb       |   11 +++++++++++
>>    recipes/mkelfimage/mkelfimage.inc                 |    3 +++
>>    recipes/mkelfimage/mkelfimage_git.bb              |   17 +++++++++++++++++
>>    4 files changed, 42 insertions(+), 0 deletions(-)
>>    create mode 100644 recipes/mkelfimage/files/no-stack-protector.patch
>>    create mode 100644 recipes/mkelfimage/mkelfimage-native_git.bb
>>    create mode 100644 recipes/mkelfimage/mkelfimage.inc
>>    create mode 100644 recipes/mkelfimage/mkelfimage_git.bb
>>
>> diff --git a/recipes/mkelfimage/files/no-stack-protector.patch
>> b/recipes/mkelfimage/files/no-stack-protector.patch
>> new file mode 100644
>> index 0000000..135de8d
>> --- /dev/null
>> +++ b/recipes/mkelfimage/files/no-stack-protector.patch
>> @@ -0,0 +1,11 @@
>> +--- mkelfImage/Makefile.orig    2011-06-17 15:20:46.816870941 -0600
>> ++++ mkelfImage/Makefile    2011-06-17 15:20:59.619382362 -0600
> Please add a header describing this patch [3].
>
>> +@@ -14,7 +14,7 @@
>> + pkglibdir = $(libdir)/$(PACKAGE)
>> + pkgincludedir = $(includedir)/$(PACKAGE)
>> +
>> +-CPPFLAGS=-DVERSION='"$(VERSION)"' -DRELEASE_DATE='"$(RELEASE_DATE)"'
>> -I include
> Here you can see an automatic line break.
>
>> ++CPPFLAGS=-fno-stack-protector -DVERSION='"$(VERSION)"'
>> -DRELEASE_DATE='"$(RELEASE_DATE)"' -I include $(CFLAGS) $(LDFLAGS)
>> + HOST_CPPFLAGS=$(CPPFLAGS)
>> + I386_CPPFLAGS=$(CPPFLAGS) -I arch/i386/include
>> + IA64_CPPFLAGS=$(CPPFLAGS) -I arch/ia64/include
> Please send that patch separately to the coreboot list if it is useful
> for upstream. You should be able to use Gerrit and you also need a
> Signed-off-by line [4].
>
>> diff --git a/recipes/mkelfimage/mkelfimage-native_git.bb
>> b/recipes/mkelfimage/mkelfimage-native_git.bb
>> new file mode 100644
>> index 0000000..e2f251e
>> --- /dev/null
>> +++ b/recipes/mkelfimage/mkelfimage-native_git.bb
>> @@ -0,0 +1,11 @@
>> +require mkelfimage_${PV}.bb
>> +inherit native
>> +
>> +do_stage () {
> Please follow the style guide [5], i. e., no space before `()`.
>
>> +    install -m 0755 objdir/sbin/mkelfImage ${STAGING_BINDIR}/
>> +}
> `do_stage ()` is deprecated [6].
>
>> +
>> +do_install () {
>> +    :
>> +}
>> +
>> diff --git a/recipes/mkelfimage/mkelfimage.inc
>> b/recipes/mkelfimage/mkelfimage.inc
>> new file mode 100644
>> index 0000000..e06ed67
>> --- /dev/null
>> +++ b/recipes/mkelfimage/mkelfimage.inc
>> @@ -0,0 +1,3 @@
>> +LICENSE = "GPLv2"
>> +DESCRIPTION = "A utility to create ELF boot images from Linux kernel
>> images"
>> +SECTION = "console/utils"
> Please order those as in the style guide and please also add the
> `HOMEPAGE` variable.
>
>> diff --git a/recipes/mkelfimage/mkelfimage_git.bb
>> b/recipes/mkelfimage/mkelfimage_git.bb
>> new file mode 100644
>> index 0000000..7855f58
>> --- /dev/null
>> +++ b/recipes/mkelfimage/mkelfimage_git.bb
>> @@ -0,0 +1,17 @@
>> +require mkelfimage.inc
>> +
>> +SRCREV = "c045b4cc458a62dbb1dd99ae6a9343e52d1fe1e0"
>> +PV = "1.0.0+gitr${SRCPV}"
>> +PR = "r1"
> We start with `r0`.
>
>> +
>> +S = "${WORKDIR}/git/util/mkelfImage"
>> +
>> +SRC_URI =
>> "git://review.coreboot.org/p/coreboot;protocol=http;branch=master \
>> +       file://no-stack-protector.patch"
>> +
>> +DEFAULT_PREFERENCE = "1"
> Not needed since this is the only recipe.
>
>> +
>> +inherit autotools
>> +
>> +SRC_URI[md5sum] = "719b22bdd34431203f9349250c67c5e3"
>> +SRC_URI[sha256sum] =
>> "9186e6e7302f38c1f77b763f0f14843fabc873ac7c81ede8ee094a47055668b5"
> Is that needed? There is no archive as far as I know.
>
>
> Thanks,
>
> Paul
>
>
> [1] http://openembedded.org/index.php/Commit_Policy
> [2] http://openembedded.org/index.php/How_to_submit_a_patch_to_OpenEmbedded
> [3] http://openembedded.org/index.php/Commit_Patch_Message_Guidelines
> [4] http://www.coreboot.org/Development_Guidelines
> [5] http://openembedded.org/index.php/Styleguide
> [6] http://openembedded.org/index.php/Legacy_staging




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

* [PATCH 1/2 v2] mkelfimage: Add version c045b4cc from Git (initial recipe)
  2011-07-15 16:55 [PATCH 1/2] Add mkelfimage and support for generating kernel+initrd ELF payloads to OpenEmbedded Raymond Danks
  2011-07-15 18:48 ` Paul Menzel
@ 2011-07-15 23:04 ` Raymond Danks
  2011-07-15 23:04 ` [PATCH 2/2 v2] conf/bitbake.conf: Add support for generating kernel+initrd ELF coreboot payloads Raymond Danks
  2 siblings, 0 replies; 5+ messages in thread
From: Raymond Danks @ 2011-07-15 23:04 UTC (permalink / raw)
  To: openembedded-devel

On x86, and ELF image file may be stored as a coreboot payload.  This image file may be a kernel or a kernel+initrd.

Documentation on this has been started on the coreboot wiki:
http://www.coreboot.org/Mkelfimage

We have seen success using the mkelfimage utility to construct a kernel+initrd image using the micro-image OpenEmbedded image as an initrd.
http://www.se-eng.com/wiki/index.php/Open_Embedded_Setup

Build tested using Ubuntu 10.04 x86_64-linux targeting i686-oe-linux using a one-off of the i686-generic.conf machine targeting a 4MB flash part.

Signed-off-by: Raymond Danks <ray.danks@se-eng.com>
---
v2:
 * Updated meta files to adhere to StyleGuide
   - No need for separate target and native .bb files anymore.
   - Remove .inc
 * Document no-stack-protector.patch
 * Update commit summary and log.
 * Add Signed-off-by

 recipes/mkelfimage/files/no-stack-protector.patch |   17 +++++++++++++++++
 recipes/mkelfimage/mkelfimage_git.bb              |   18 ++++++++++++++++++
 2 files changed, 35 insertions(+), 0 deletions(-)
 create mode 100644 recipes/mkelfimage/files/no-stack-protector.patch
 create mode 100644 recipes/mkelfimage/mkelfimage_git.bb

diff --git a/recipes/mkelfimage/files/no-stack-protector.patch b/recipes/mkelfimage/files/no-stack-protector.patch
new file mode 100644
index 0000000..f81bf16
--- /dev/null
+++ b/recipes/mkelfimage/files/no-stack-protector.patch
@@ -0,0 +1,17 @@
+Gcc 4.1 comes with an SSP https://wiki.ubuntu.com/GccSsp
+
+This is disabled to work around '__stack_chk_fail' symbol not found failures in the mkelfimage build.
+
+http://www.coreboot.org/FAQ/Obsolete#How_do_I_fix_stack_chk_fail_errors.3F
+
+--- mkelfImage/Makefile.orig	2011-06-17 15:20:46.816870941 -0600
++++ mkelfImage/Makefile	2011-06-17 15:20:59.619382362 -0600
+@@ -14,7 +14,7 @@
+ pkglibdir = $(libdir)/$(PACKAGE)
+ pkgincludedir = $(includedir)/$(PACKAGE)
+ 
+-CPPFLAGS=-DVERSION='"$(VERSION)"' -DRELEASE_DATE='"$(RELEASE_DATE)"' -I include
++CPPFLAGS=-fno-stack-protector -DVERSION='"$(VERSION)"' -DRELEASE_DATE='"$(RELEASE_DATE)"' -I include $(CFLAGS) $(LDFLAGS)
+ HOST_CPPFLAGS=$(CPPFLAGS)
+ I386_CPPFLAGS=$(CPPFLAGS) -I arch/i386/include
+ IA64_CPPFLAGS=$(CPPFLAGS) -I arch/ia64/include
diff --git a/recipes/mkelfimage/mkelfimage_git.bb b/recipes/mkelfimage/mkelfimage_git.bb
new file mode 100644
index 0000000..2184f81
--- /dev/null
+++ b/recipes/mkelfimage/mkelfimage_git.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "A utility to create ELF boot images from Linux kernel images"
+HOMEPAGE = "http://www.coreboot.org/Mkelfimage"
+SECTION = "devel"
+LICENSE = "GPLv2"
+
+SRCREV = "c045b4cc458a62dbb1dd99ae6a9343e52d1fe1e0"
+PV = "1.0.0+gitr${SRCPV}"
+PR = "r0"
+
+SRC_URI = "git://review.coreboot.org/p/coreboot;protocol=http;branch=master \
+	   file://no-stack-protector.patch"
+
+S = "${WORKDIR}/git/util/mkelfImage"
+
+inherit autotools
+
+NATIVE_INSTALL_WORKS = "1"
+BBCLASSEXTEND = "native"
-- 
1.7.0.4




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

* [PATCH 2/2 v2] conf/bitbake.conf: Add support for generating kernel+initrd ELF coreboot payloads
  2011-07-15 16:55 [PATCH 1/2] Add mkelfimage and support for generating kernel+initrd ELF payloads to OpenEmbedded Raymond Danks
  2011-07-15 18:48 ` Paul Menzel
  2011-07-15 23:04 ` [PATCH 1/2 v2] mkelfimage: Add version c045b4cc from Git (initial recipe) Raymond Danks
@ 2011-07-15 23:04 ` Raymond Danks
  2 siblings, 0 replies; 5+ messages in thread
From: Raymond Danks @ 2011-07-15 23:04 UTC (permalink / raw)
  To: openembedded-devel

On x86, and ELF image file may be stored as a coreboot payload.  This image file may be a kernel or a kernel+initrd.

Documentation on this has been started on the coreboot wiki:
http://www.coreboot.org/Mkelfimage

We have seen success using the mkelfimage utility to construct a kernel+initrd image using the micro-image OpenEmbedded image as an initrd.
http://www.se-eng.com/wiki/index.php/Open_Embedded_Setup

To use, set a new type "elf" to IMAGE_FSTYPES in conf/local.conf on x86 targets:
IMAGE_FSTYPES = "cpio.gz elf"

You may also override the kernel parameters that are embedded in the elf file:
IMAGE_KERNELPARAMS = "ramdisk_size=32768 root=/dev/ram0 rw console="

The image binary ${TMPDIR}/deploy/images/${MACHINE}/*.elf may be added to the coreboot configuration in Kconfig (CONFIG_PAYLOAD_FILE)

Signed-off-by: Raymond Danks <ray.danks@se-eng.com>
---
v2:
 * Update commit summary and log.
   - Include test and usage steps.
 * Add Signed-off-by

 conf/bitbake.conf |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/conf/bitbake.conf b/conf/bitbake.conf
index 66dfaba..1ab72e1 100644
--- a/conf/bitbake.conf
+++ b/conf/bitbake.conf
@@ -375,6 +375,7 @@ IMAGE_BASENAME = "${PN}"
 IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
 IMAGE_LINK_NAME = "${IMAGE_BASENAME}-${MACHINE}"
 IMAGE_EXTRA_SPACE = 10240
+IMAGE_KERNELPARAMS = "ramdisk_size=32768 root=/dev/ram0 rw console="
 
 UBI_VOLNAME ?= "${MACHINE}-rootfs"
 
@@ -406,6 +407,7 @@ IMAGE_CMD_cpio.gz.u-boot = "type cpio >/dev/null; cd ${IMAGE_ROOTFS} && (find .
 IMAGE_CMD_cpio.lzma = "type cpio >/dev/null; cd ${IMAGE_ROOTFS} && (find . | cpio -o -H newc | xz --format=lzma -c ${XZ_COMPRESSION_LEVEL} --check=${XZ_INTEGRITY_CHECK} >${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.cpio.lzma) ${EXTRA_IMAGECMD}"
 IMAGE_CMD_ubi = "echo \[ubifs\] > ubinize.cfg ; echo mode=ubi >> ubinize.cfg ; echo image=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.ubifs.img >> ubinize.cfg ; echo vol_id=0 >> ubinize.cfg ; echo vol_type=dynamic >> ubinize.cfg ; echo vol_name=${UBI_VOLNAME} >> ubinize.cfg ; echo vol_flags=autoresize >> ubinize.cfg;mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.ubifs.img ${MKUBIFS_ARGS} && ubinize -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubi ${UBINIZE_ARGS} ubinize.cfg"
 IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.ubifs.img ${MKUBIFS_ARGS}"
+IMAGE_CMD_elf = "type cpio >/dev/null; cd ${IMAGE_ROOTFS} && (find . | cpio -o -H newc | gzip -c -9 >${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.cpio.gz) ; rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.elf ;  mkelfImage --append='${IMAGE_KERNELPARAMS}' --kernel=${STAGING_DIR}/${MACHINE}${HOST_VENDOR}-${HOST_OS}/kernel/bzImage --initrd=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.cpio.gz --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.elf ${EXTRA_IMAGECMD}"
 
 EXTRA_IMAGECMD = ""
 EXTRA_IMAGECMD_jffs2 = ""
@@ -440,6 +442,7 @@ IMAGE_DEPENDS_squashfs = "squashfs-tools-native"
 IMAGE_DEPENDS_squashfs-lzma = "squashfs-tools-native"
 IMAGE_DEPENDS_ubi = "mtd-utils-native"
 IMAGE_DEPENDS_ubifs = "mtd-utils-native"
+IMAGE_DEPENDS_elf = "virtual/kernel mkelfimage-native"
 
 EXTRA_IMAGEDEPENDS = ""
 
-- 
1.7.0.4




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

end of thread, other threads:[~2011-07-15 23:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-15 16:55 [PATCH 1/2] Add mkelfimage and support for generating kernel+initrd ELF payloads to OpenEmbedded Raymond Danks
2011-07-15 18:48 ` Paul Menzel
2011-07-15 21:25   ` Raymond Danks
2011-07-15 23:04 ` [PATCH 1/2 v2] mkelfimage: Add version c045b4cc from Git (initial recipe) Raymond Danks
2011-07-15 23:04 ` [PATCH 2/2 v2] conf/bitbake.conf: Add support for generating kernel+initrd ELF coreboot payloads Raymond Danks

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.