aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-bsp
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-bsp')
-rwxr-xr-xcommon/recipes-bsp/grub/grub-1.98/40_custom9
-rw-r--r--common/recipes-bsp/grub/grub-1.98/grub-install.in.patch13
-rw-r--r--common/recipes-bsp/grub/grub-1.98/uninit-shdr-fix.patch31
-rw-r--r--common/recipes-bsp/grub/grub_1.98.bb45
4 files changed, 98 insertions, 0 deletions
diff --git a/common/recipes-bsp/grub/grub-1.98/40_custom b/common/recipes-bsp/grub/grub-1.98/40_custom
new file mode 100755
index 00000000..30dad39a
--- /dev/null
+++ b/common/recipes-bsp/grub/grub-1.98/40_custom
@@ -0,0 +1,9 @@
+#!/bin/sh
+exec tail -n +3 $0
+# This file provides an easy way to add custom menu entries. Simply type the
+# menu entries you want to add after this comment. Be careful not to change
+# the 'exec tail' line above.
+menuentry "Yocto Linux" {
+ set root=(hd0,1)
+ linux /boot/vmlinuz root=__ROOTFS__ rw __VIDEO_MODE__ __VGA_MODE__ quiet
+}
diff --git a/common/recipes-bsp/grub/grub-1.98/grub-install.in.patch b/common/recipes-bsp/grub/grub-1.98/grub-install.in.patch
new file mode 100644
index 00000000..ac964193
--- /dev/null
+++ b/common/recipes-bsp/grub/grub-1.98/grub-install.in.patch
@@ -0,0 +1,13 @@
+Index: grub-1.98/util/grub-install.in
+===================================================================
+--- grub-1.98.orig/util/grub-install.in 2011-01-25 23:47:05.587521825 -0600
++++ grub-1.98/util/grub-install.in 2011-01-25 23:47:23.867521822 -0600
+@@ -306,7 +306,7 @@
+
+ if [ "x${devabstraction_module}" = "x" ] ; then
+ if [ x"${install_device}" != x ]; then
+- if echo "${install_device}" | grep -qx "(.*)" ; then
++ if echo "${install_device}" | grep -q "(.*)" ; then
+ install_drive="${install_device}"
+ else
+ install_drive="`$grub_probe --target=drive --device ${install_device}`"
diff --git a/common/recipes-bsp/grub/grub-1.98/uninit-shdr-fix.patch b/common/recipes-bsp/grub/grub-1.98/uninit-shdr-fix.patch
new file mode 100644
index 00000000..67af594b
--- /dev/null
+++ b/common/recipes-bsp/grub/grub-1.98/uninit-shdr-fix.patch
@@ -0,0 +1,31 @@
+Index: grub-1.98/loader/i386/bsdXX.c
+===================================================================
+--- grub-1.98.orig/loader/i386/bsdXX.c 2011-01-25 00:12:14.967535179 -0600
++++ grub-1.98/loader/i386/bsdXX.c 2011-01-25 00:13:16.387535169 -0600
+@@ -80,7 +80,7 @@
+ {
+ Elf_Ehdr e;
+ Elf_Shdr *s;
+- char *shdr;
++ char *shdr = NULL;
+ grub_addr_t curload, module;
+ grub_err_t err;
+
+@@ -148,7 +148,7 @@
+ {
+ Elf_Ehdr e;
+ Elf_Shdr *s;
+- char *shdr;
++ char *shdr = NULL;
+ grub_addr_t curload, module;
+ grub_err_t err;
+
+@@ -223,7 +223,7 @@
+ grub_err_t err;
+ Elf_Ehdr e;
+ Elf_Shdr *s;
+- char *shdr;
++ char *shdr = NULL;
+ unsigned symoff, stroff, symsize, strsize;
+ grub_addr_t curload;
+ grub_freebsd_addr_t symstart, symend, symentsize, dynamic;
diff --git a/common/recipes-bsp/grub/grub_1.98.bb b/common/recipes-bsp/grub/grub_1.98.bb
new file mode 100644
index 00000000..b9d04fc5
--- /dev/null
+++ b/common/recipes-bsp/grub/grub_1.98.bb
@@ -0,0 +1,45 @@
+SUMMARY = "GRUB2 is the next-generation GRand Unified Bootloader"
+
+DESCRIPTION = "GRUB2 is the next generaion of a GPLed bootloader \
+intended to unify bootloading across x86 operating systems. In \
+addition to loading the Linux kernel, it implements the Multiboot \
+standard, which allows for flexible loading of multiple boot images."
+
+HOMEPAGE = "http://www.gnu.org/software/grub/"
+SECTION = "bootloaders"
+PRIORITY = "optional"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+RDEPENDS = "diffutils"
+PR = "r0"
+
+SRC_URI = "ftp://alpha.gnu.org/gnu/grub/grub-${PV}.tar.gz \
+ file://uninit-shdr-fix.patch;apply=yes \
+ file://grub-install.in.patch;apply=yes \
+ file://40_custom"
+
+inherit autotools
+inherit gettext
+
+EXTRA_OECONF = "--with-platform=pc --target=i386"
+
+do_configure() {
+ oe_runconf
+}
+
+python __anonymous () {
+ import re
+ host = bb.data.getVar('HOST_SYS', d, 1)
+ if not re.match('x86.64.*-linux', host):
+ raise bb.parse.SkipPackage("incompatible with host %s" % host)
+}
+
+do_install_append () {
+ install -m 0755 ${WORKDIR}/40_custom ${D}${sysconfdir}/grub.d/40_custom
+}
+
+FILES_${PN}-doc = "${datadir}"
+FILES_${PN} = "/usr /etc"
+