All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] meta-intel: emgd updrade
@ 2011-06-01 19:55 tom.zanussi
  2011-06-01 19:55 ` [PATCH 1/6] meta-crownbay: new recipe for emgd 1.6 driver binaries tom.zanussi
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: tom.zanussi @ 2011-06-01 19:55 UTC (permalink / raw)
  To: yocto

From: Tom Zanussi <tom.zanussi@intel.com>

This patchset upgrades emgd to 1.6 Gold.

The following changes since commit e94dba8309874a82a570db60223d18b2c723c3a5:
  Darren Hart (1):
        linux-yocto*: correct FILESEXTRAPATHS assignment in all layers

are available in the git repository at:

  git://git.yoctoproject.org/meta-intel.git tzanussi/emgd-1.6-upgrade
  http://git.yoctoproject.org/cgit.cgi//log/?h=tzanussi/emgd-1.6-upgrade

Tom Zanussi (6):
  meta-crownbay: new recipe for emgd 1.6 driver binaries
  meta-intel: add xserver-xf86-dri-lite_1.9.3 to common
  meta-crownbay: add common to BBFILES
  meta-crownbay: update crownbay.conf
  meta-crownbay: remove obsolete graphics recipes
  meta-crownbay: update README with new build instructions.

 .../cache-xkbcomp-output-for-fast-start-up.patch   |  358 ++++++++++++++++++++
 .../xserver-xf86-dri-lite/crosscompile.patch       |   20 ++
 .../xserver-xf86-dri-lite/doublefix.patch          |   13 +
 .../xserver-xf86-dri-lite/drmfix.patch             |   13 +
 .../xserver-xf86-dri-lite/fix_macros.patch         |   17 +-
 .../xserver-xf86-dri-lite/fix_macros1.patch        |   22 ++
 .../fix_open_max_preprocessor_error.patch          |    0
 .../libdri-xinerama-symbol.patch                   |   50 +++
 .../xserver-xf86-dri-lite/macro_tweak.patch        |   28 ++
 .../xserver-xf86-dri-lite}/nodolt.patch            |    0
 .../xorg-server-disable-dri_sarea.patch            |   12 +
 .../xorg-server-enable-dri2.patch                  |   23 ++
 .../xserver-1.5.0-bg-none-root.patch               |  156 +++++++++
 .../xserver-DRI2Swapbuffer.patch                   |  179 ++++++++++
 .../xserver-xf86-dri-lite/xserver-boottime.patch   |   38 ++
 .../xserver-xf86-dri-lite/xserver-no-root-2.patch  |  105 ++++++
 .../xorg-xserver/xserver-xf86-dri-lite_1.9.3.bb    |   19 +
 meta-crownbay/README                               |   95 +++++-
 meta-crownbay/conf/layer.conf                      |    4 +-
 meta-crownbay/conf/machine/crownbay.conf           |   12 +-
 .../xorg-xserver/emgd-driver-bin_1.6.bb            |   25 ++
 .../xorg-xserver/xserver-xf86-emgd-bin_1.7.99.2.bb |   90 -----
 .../xserver-xf86-emgd/crosscompile.patch           |   19 -
 .../xorg-xserver/xserver-xf86-emgd_1.7.99.2.bb     |   25 --
 24 files changed, 1157 insertions(+), 166 deletions(-)
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch
 rename meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/macro_tweak.patch => common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch (56%)
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch
 rename {meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd => common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite}/fix_open_max_preprocessor_error.patch (100%)
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/macro_tweak.patch
 rename {meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd => common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite}/nodolt.patch (100%)
 create mode 100755 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch
 create mode 100755 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_1.9.3.bb
 create mode 100644 meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin-1.6/.gitignore
 create mode 100644 meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin_1.6.bb
 delete mode 100644 meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd-bin_1.7.99.2.bb
 delete mode 100644 meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/crosscompile.patch
 delete mode 100644 meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd_1.7.99.2.bb



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

* [PATCH 1/6] meta-crownbay: new recipe for emgd 1.6 driver binaries
  2011-06-01 19:55 [PATCH 0/6] meta-intel: emgd updrade tom.zanussi
@ 2011-06-01 19:55 ` tom.zanussi
  2011-06-01 19:55 ` [PATCH 2/6] meta-intel: add xserver-xf86-dri-lite_1.9.3 to common tom.zanussi
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: tom.zanussi @ 2011-06-01 19:55 UTC (permalink / raw)
  To: yocto

From: Tom Zanussi <tom.zanussi@intel.com>

This adds a new recipe for the emgd 1.6 driver binaries.  For emgd
1.6, the layout of the binaries has changed, making them easier to
install, and we also take the opportunity to sanitize the naming and
make it more apparent that these are the emgd driver bits
corresponding to a particular emgd release, 1.6 in this case.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
---
 .../xorg-xserver/emgd-driver-bin_1.6.bb            |   25 ++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)
 create mode 100644 meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin-1.6/.gitignore
 create mode 100644 meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin_1.6.bb

diff --git a/meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin-1.6/.gitignore b/meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin-1.6/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin_1.6.bb b/meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin_1.6.bb
new file mode 100644
index 0000000..4d5d1e2
--- /dev/null
+++ b/meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin_1.6.bb
@@ -0,0 +1,25 @@
+SUMMARY = "EMGD 1.6 xserver binaries"
+DESCRIPTION = "EMGD 1.6 includes some userspace binaries that use non-free licensing.  Intel Open Source Technology Center unfortunately has no power to change that, but tries to make their use as painless as possible.  Please see the README in meta-crownbay/ for instructions on the (simple) manual steps necessary to make the necessary binaries available to this recipe.  Please do that before building an image."
+
+LICENSE = "Intel-binary-only"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/License.txt;md5=b54f01caaf8483b3cb60c0c40f2bf22d"
+PR = "r0"
+
+FILESPATH = "${FILE_DIRNAME}/emgd-driver-bin-1.6"
+
+FILES_${PN} = "${libdir}/*.so.* ${libdir}/dri ${libdir}/xorg/modules/drivers"
+
+SRC_URI = "file://lib \
+           file://License.txt"
+
+S = "${WORKDIR}"
+
+do_install () {
+	install -d -m 0755 ${D}/${libdir}/dri ${D}/${libdir}/xorg/modules/drivers
+
+	cp -PR	${S}/lib/lib*					${D}${libdir}
+	install -m 0755	${S}/lib/xorg/modules/drivers/*		${D}${libdir}/xorg/modules/drivers/
+	install -m 0755	${S}/lib/dri/*				${D}${libdir}/dri/
+}
+
+LEAD_SONAME = "libEGL.so"
-- 
1.7.0.4



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

* [PATCH 2/6] meta-intel: add xserver-xf86-dri-lite_1.9.3 to common
  2011-06-01 19:55 [PATCH 0/6] meta-intel: emgd updrade tom.zanussi
  2011-06-01 19:55 ` [PATCH 1/6] meta-crownbay: new recipe for emgd 1.6 driver binaries tom.zanussi
@ 2011-06-01 19:55 ` tom.zanussi
  2011-06-01 20:21   ` Darren Hart
  2011-06-01 19:55 ` [PATCH 3/6] meta-crownbay: add common to BBFILES tom.zanussi
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 11+ messages in thread
From: tom.zanussi @ 2011-06-01 19:55 UTC (permalink / raw)
  To: yocto

From: Tom Zanussi <tom.zanussi@intel.com>

emgd 1.6 requires xserver 1.9.3, which is no longer in meta, and it
needs to be shared by multiple BSPs, so add it to common.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
---
 .../cache-xkbcomp-output-for-fast-start-up.patch   |  358 ++++++++++++++++++++
 .../xserver-xf86-dri-lite/crosscompile.patch       |   20 ++
 .../xserver-xf86-dri-lite/doublefix.patch          |   13 +
 .../xserver-xf86-dri-lite/drmfix.patch             |   13 +
 .../xserver-xf86-dri-lite/fix_macros.patch         |   21 ++
 .../xserver-xf86-dri-lite/fix_macros1.patch        |   22 ++
 .../fix_open_max_preprocessor_error.patch          |   13 +
 .../libdri-xinerama-symbol.patch                   |   50 +++
 .../xserver-xf86-dri-lite/macro_tweak.patch        |   28 ++
 .../xserver-xf86-dri-lite/nodolt.patch             |   12 +
 .../xorg-server-disable-dri_sarea.patch            |   12 +
 .../xorg-server-enable-dri2.patch                  |   23 ++
 .../xserver-1.5.0-bg-none-root.patch               |  156 +++++++++
 .../xserver-DRI2Swapbuffer.patch                   |  179 ++++++++++
 .../xserver-xf86-dri-lite/xserver-boottime.patch   |   38 ++
 .../xserver-xf86-dri-lite/xserver-no-root-2.patch  |  105 ++++++
 .../xorg-xserver/xserver-xf86-dri-lite_1.9.3.bb    |   19 +
 17 files changed, 1082 insertions(+), 0 deletions(-)
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/macro_tweak.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/nodolt.patch
 create mode 100755 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch
 create mode 100755 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch
 create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_1.9.3.bb

diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch
new file mode 100644
index 0000000..b121bba
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch
@@ -0,0 +1,358 @@
+From 0f70ba9d3412b17ac4e08e33e1be3c226c06ea54 Mon Sep 17 00:00:00 2001
+From: Yan Li <yan.i.li@intel.com>
+Date: Tue, 12 May 2009 17:49:07 +0800
+Subject: [PATCH] XKB: cache xkbcomp output for fast start-up v5 for 1.6.1
+Organization: Intel
+
+xkbcomp outputs will be cached in files with hashed keymap as
+names. This saves boot time for around 1s on commodity netbooks.
+
+Signed-off-by: Yan Li <yan.i.li@intel.com>
+---
+ configure.ac        |    6 +-
+ xkb/README.compiled |    8 +-
+ xkb/ddxLoad.c       |  192 +++++++++++++++++++++++++++++++++++++++++---------
+ 3 files changed, 164 insertions(+), 42 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4c4c797..7a5020a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -476,9 +476,9 @@ AC_ARG_WITH(default-font-path, AS_HELP_STRING([--with-default-font-path=PATH], [
+ AC_ARG_WITH(xkb-path,         AS_HELP_STRING([--with-xkb-path=PATH], [Path to XKB base dir (default: ${datadir}/X11/xkb)]),
+ 				[ XKBPATH="$withval" ],
+ 				[ XKBPATH="${datadir}/X11/xkb" ])
+-AC_ARG_WITH(xkb-output,       AS_HELP_STRING([--with-xkb-output=PATH], [Path to XKB output dir (default: ${datadir}/X11/xkb/compiled)]),
++AC_ARG_WITH(xkb-output,       AS_HELP_STRING([--with-xkb-output=PATH], [Path to XKB output dir (default: ${localstatedir}/cache/xkb)]),
+ 				[ XKBOUTPUT="$withval" ],
+-				[ XKBOUTPUT="compiled" ])
++				[ XKBOUTPUT="${localstatedir}/cache/xkb" ])
+ AC_ARG_WITH(serverconfig-path, AS_HELP_STRING([--with-serverconfig-path=PATH],
+ 				   [Directory where ancillary server config files are installed (default: ${libdir}/xorg)]),
+ 				[ SERVERCONFIG="$withval" ],
+@@ -1757,7 +1757,7 @@ AC_DEFINE_DIR(XKB_BIN_DIRECTORY, bindir, [Path to XKB bin dir])
+ XKBOUTPUT_FIRSTCHAR=`echo $XKBOUTPUT | cut -b 1`
+ 
+ if [[ x$XKBOUTPUT_FIRSTCHAR != x/ ]] ; then
+-   XKBOUTPUT="$XKB_BASE_DIRECTORY/$XKBOUTPUT"
++   AC_MSG_ERROR([xkb-output must be an absolute path.])
+ fi
+ 
+ # XKM_OUTPUT_DIR (used in code) must end in / or file names get hosed
+diff --git a/xkb/README.compiled b/xkb/README.compiled
+index 71caa2f..a4a2ae0 100644
+--- a/xkb/README.compiled
++++ b/xkb/README.compiled
+@@ -4,10 +4,10 @@ current keymap and/or any scratch keymaps used by clients.  The X server
+ or some other tool might destroy or replace the files in this directory,
+ so it is not a safe place to store compiled keymaps for long periods of
+ time.  The default keymap for any server is usually stored in:
+-     X<num>-default.xkm
+-where <num> is the display number of the server in question, which makes
+-it possible for several servers *on the same host* to share the same 
+-directory.
++     server-<SHA1>.xkm
++
++where <SHA1> is the SHA1 hash of keymap source, so that compiled
++keymap of different keymap sources are stored in different files.
+ 
+ Unless the X server is modified, sharing this directory between servers on
+ different hosts could cause problems.
+diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c
+index 4d5dfb6..60a68af 100644
+--- a/xkb/ddxLoad.c
++++ b/xkb/ddxLoad.c
+@@ -32,6 +32,12 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ #include <xkb-config.h>
+ #endif
+ 
++#ifdef HAVE_SHA1_IN_LIBMD /* Use libmd for SHA1 */
++# include <sha1.h>
++#else /* Use OpenSSL's libcrypto */
++# include <stddef.h>  /* buggy openssl/sha.h wants size_t */
++# include <openssl/sha.h>
++#endif
+ #include <stdio.h>
+ #include <ctype.h>
+ #define	NEED_EVENTS 1
+@@ -46,24 +52,13 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ #define	XKBSRV_NEED_FILE_FUNCS
+ #include <xkbsrv.h>
+ #include <X11/extensions/XI.h>
++#include <errno.h>
+ #include "xkb.h"
+ 
+ #if defined(CSRG_BASED) || defined(linux) || defined(__GNU__)
+ #include <paths.h>
+ #endif
+ 
+-	/*
+-	 * If XKM_OUTPUT_DIR specifies a path without a leading slash, it is
+-	 * relative to the top-level XKB configuration directory.
+-	 * Making the server write to a subdirectory of that directory
+-	 * requires some work in the general case (install procedure
+-	 * has to create links to /var or somesuch on many machines),
+-	 * so we just compile into /usr/tmp for now.
+-	 */
+-#ifndef XKM_OUTPUT_DIR
+-#define	XKM_OUTPUT_DIR	"compiled/"
+-#endif
+-
+ #define	PRE_ERROR_MSG "\"The XKEYBOARD keymap compiler (xkbcomp) reports:\""
+ #define	ERROR_PREFIX	"\"> \""
+ #define	POST_ERROR_MSG1 "\"Errors from xkbcomp are not fatal to the X server\""
+@@ -179,6 +174,45 @@ OutputDirectory(
+ }
+ 
+ static Bool    	
++Sha1Asc(char sha1Asc[SHA_DIGEST_LENGTH*2+1], const char * input)
++{
++    int i;
++    unsigned char sha1[SHA_DIGEST_LENGTH];
++
++#ifdef HAVE_SHA1_IN_LIBMD /* Use libmd for SHA1 */
++    SHA1_CTX ctx;
++
++    SHA1Init (&ctx);
++    SHA1Update (&ctx, input, strlen(input));
++    SHA1Final (sha1, &ctx);
++#else /* Use OpenSSL's libcrypto */
++    SHA_CTX ctx;
++    int success;
++
++    success = SHA1_Init (&ctx);
++    if (! success)
++	return BadAlloc;
++
++    success = SHA1_Update (&ctx, input, strlen(input));
++    if (! success)
++	return BadAlloc;
++
++    success = SHA1_Final (sha1, &ctx);
++    if (! success)
++	return BadAlloc;
++#endif
++
++    /* convert sha1 to sha1_asc */
++    for(i=0; i<SHA_DIGEST_LENGTH; ++i) {
++        sprintf(sha1Asc+i*2, "%02X", sha1[i]);
++    }
++
++    return Success;
++}
++
++/* call xkbcomp and compile XKB keymap, return xkm file name in
++   nameRtrn */
++static Bool
+ XkbDDXCompileKeymapByNames(	XkbDescPtr		xkb,
+ 				XkbComponentNamesPtr	names,
+ 				unsigned		want,
+@@ -187,7 +221,11 @@ XkbDDXCompileKeymapByNames(	XkbDescPtr		xkb,
+ 				int			nameRtrnLen)
+ {
+     FILE *	out;
+-    char	*buf = NULL, keymap[PATH_MAX], xkm_output_dir[PATH_MAX];
++    char *	buf = NULL, xkmfile[PATH_MAX], xkm_output_dir[PATH_MAX];
++    char *	tmpXkmFile = NULL;
++    char *	canonicalXkmFileName = NULL;
++    char	sha1Asc[SHA_DIGEST_LENGTH*2+1], xkbKeyMapBuf[100*1024];
++    int	ret, result;
+ 
+     const char	*emptystring = "";
+     const char	*xkbbasedirflag = emptystring;
+@@ -198,16 +236,70 @@ XkbDDXCompileKeymapByNames(	XkbDescPtr		xkb,
+     /* WIN32 has no popen. The input must be stored in a file which is
+        used as input for xkbcomp. xkbcomp does not read from stdin. */
+     char tmpname[PATH_MAX];
+-    const char *xkmfile = tmpname;
++    const char *xkbfile = tmpname;
+ #else
+-    const char *xkmfile = "-";
++    const char *xkbfile = "-";
+ #endif
+ 
+-    snprintf(keymap, sizeof(keymap), "server-%s", display);
++    /* Write keymap source (xkbfile) to memory buffer `xkbKeyMapBuf',
++       of which SHA1 is generated and used as result xkm file name  */
++    memset(xkbKeyMapBuf, 0, sizeof(xkbKeyMapBuf));
++    out = fmemopen(xkbKeyMapBuf, sizeof(xkbKeyMapBuf), "w");
++    if (NULL == out) {
++        ErrorF("[xkb] Open xkbKeyMapBuf for writing failed\n");
++        return False;
++    }
++    ret = XkbWriteXKBKeymapForNames(out, names, xkb, want, need);
++    if (fclose(out) !=0)
++    {
++        ErrorF("[xkb] XkbWriteXKBKeymapForNames error, perhaps xkbKeyMapBuf is too small\n");
++        return False;
++    }
++#ifdef DEBUG
++    if (xkbDebugFlags) {
++       ErrorF("[xkb] XkbDDXCompileKeymapByNames compiling keymap:\n");
++       fputs(xkbKeyMapBuf, stderr);
++    }
++#endif
++    if (!ret) {
++        ErrorF("[xkb] Generating XKB Keymap failed, giving up compiling keymap\n");
++        return False;
++    }
++
++    DebugF("[xkb] computing SHA1 of keymap\n");
++    if (Success == Sha1Asc(sha1Asc, xkbKeyMapBuf)) {
++        snprintf(xkmfile, sizeof(xkmfile), "server-%s", sha1Asc);
++    }
++    else {
++        ErrorF("[xkb] Computing SHA1 of keymap failed, "
++               "using display name instead as xkm file name\n");
++        snprintf(xkmfile, sizeof(xkmfile), "server-%s", display);
++    }
+ 
+-    XkbEnsureSafeMapName(keymap);
++    XkbEnsureSafeMapName(xkmfile);
+     OutputDirectory(xkm_output_dir, sizeof(xkm_output_dir));
+ 
++    /* set nameRtrn, fail if it's too small */
++    if ((strlen(xkmfile)+1 > nameRtrnLen) && nameRtrn) {
++        ErrorF("[xkb] nameRtrn too small to hold xkmfile name\n");
++        return False;
++    }
++    strncpy(nameRtrn, xkmfile, nameRtrnLen);
++
++    /* if the xkm file already exists, reuse it */
++    canonicalXkmFileName = Xprintf("%s%s.xkm", xkm_output_dir, xkmfile);
++    if (access(canonicalXkmFileName, R_OK) == 0) {
++        /* yes, we can reuse the old xkm file */
++        LogMessage(X_INFO, "XKB: reuse xkmfile %s\n", canonicalXkmFileName);
++        result = True;
++        goto _ret;
++    }
++    LogMessage(X_INFO, "XKB: generating xkmfile %s\n", canonicalXkmFileName);
++
++    /* continue to call xkbcomp to compile the keymap. to avoid race
++       condition, we compile it to a tmpfile then rename it to
++       xkmfile */
++
+ #ifdef WIN32
+     strcpy(tmpname, Win32TempDir());
+     strcat(tmpname, "\\xkb_XXXXXX");
+@@ -230,19 +322,30 @@ XkbDDXCompileKeymapByNames(	XkbDescPtr		xkb,
+ 	}
+     }
+ 
++    if ( (tmpXkmFile = tempnam(xkm_output_dir, NULL)) == NULL ) {
++        ErrorF("[xkb] Can't generate temp xkm file name");
++        result = False;
++        goto _ret;
++    }
++
+     buf = Xprintf("\"%s%sxkbcomp\" -w %d %s -xkm \"%s\" "
+-		  "-em1 %s -emp %s -eml %s \"%s%s.xkm\"",
++		  "-em1 %s -emp %s -eml %s \"%s\"",
+ 		  xkbbindir, xkbbindirsep,
+ 		  ( (xkbDebugFlags < 2) ? 1 :
+ 		    ((xkbDebugFlags > 10) ? 10 : (int)xkbDebugFlags) ),
+-		  xkbbasedirflag, xkmfile,
++		  xkbbasedirflag, xkbfile,
+ 		  PRE_ERROR_MSG, ERROR_PREFIX, POST_ERROR_MSG1,
+-		  xkm_output_dir, keymap);
++		  tmpXkmFile);
+ 
+     if (xkbbasedirflag != emptystring) {
+ 	xfree(xkbbasedirflag);
+     }
+     
++    /* there's a potential race condition between calling tempnam()
++       and invoking xkbcomp to write the result file (potential temp
++       file name conflicts), but since xkbcomp is a standalone
++       program, we have to live with this */
++
+ #ifndef WIN32
+     out= Popen(buf,"w");
+ #else
+@@ -250,31 +353,43 @@ XkbDDXCompileKeymapByNames(	XkbDescPtr		xkb,
+ #endif
+     
+     if (out!=NULL) {
+-#ifdef DEBUG
+-    if (xkbDebugFlags) {
+-       ErrorF("[xkb] XkbDDXCompileKeymapByNames compiling keymap:\n");
+-       XkbWriteXKBKeymapForNames(stderr,names,xkb,want,need);
++        /* write XKBKeyMapBuf to xkbcomp */
++        if (EOF==fputs(xkbKeyMapBuf, out))
++        {
++            ErrorF("[xkb] Sending keymap to xkbcomp failed\n");
++            result = False;
++            goto _ret;
+     }
+-#endif
+-	XkbWriteXKBKeymapForNames(out,names,xkb,want,need);
+ #ifndef WIN32
+ 	if (Pclose(out)==0)
+ #else
+ 	if (fclose(out)==0 && System(buf) >= 0)
+ #endif
+ 	{
++        /* xkbcomp success */
+             if (xkbDebugFlags)
+                 DebugF("[xkb] xkb executes: %s\n",buf);
+-	    if (nameRtrn) {
+-		strncpy(nameRtrn,keymap,nameRtrnLen);
+-		nameRtrn[nameRtrnLen-1]= '\0';
++
++            /* if canonicalXkmFileName already exists now, we simply
++               overwrite it, this is OK */
++            ret = rename(tmpXkmFile, canonicalXkmFileName);
++            if (0 != ret) {
++                ErrorF("[xkb] Can't rename %s to %s, error: %s\n",
++                       tmpXkmFile, canonicalXkmFileName,
++                       strerror(errno));
++
++                /* in case of error, don't unlink tmpXkmFile, leave it
++                   for debugging */
++
++                result = False;
++                goto _ret;
+ 	    }
+-            if (buf != NULL)
+-                xfree (buf);
+-	    return True;
++
++            result = True;
++            goto _ret;
+ 	}
+ 	else
+-	    LogMessage(X_ERROR, "Error compiling keymap (%s)\n", keymap);
++           LogMessage(X_ERROR, "Error compiling keymap (%s)\n", xkbfile);
+ #ifdef WIN32
+         /* remove the temporary file */
+         unlink(tmpname);
+@@ -289,9 +404,17 @@ XkbDDXCompileKeymapByNames(	XkbDescPtr		xkb,
+     }
+     if (nameRtrn)
+ 	nameRtrn[0]= '\0';
++    result = False;
++
++_ret:
++    if (tmpXkmFile)
++        free(tmpXkmFile);
++    if (canonicalXkmFileName)
++        xfree(canonicalXkmFileName);
+     if (buf != NULL)
+         xfree (buf);
+-    return False;
++
++    return result;
+ }
+ 
+ static FILE *
+@@ -375,7 +498,6 @@ unsigned	missing;
+ 	DebugF("Loaded XKB keymap %s, defined=0x%x\n",fileName,(*xkbRtrn)->defined);
+     }
+     fclose(file);
+-    (void) unlink (fileName);
+     return (need|want)&(~missing);
+ }
+ 
+-- 
+1.5.6.5
+
diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch
new file mode 100644
index 0000000..8b82de2
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch
@@ -0,0 +1,20 @@
+diff --git a/configure.ac b/configure.ac
+index b3b752c..600500b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -523,13 +523,9 @@ dnl Uses --default-font-path if set, otherwise checks for /etc/X11/fontpath.d,
+ dnl otherwise uses standard subdirectories of FONTROOTDIR. When cross
+ dnl compiling, assume default font path uses standard FONTROOTDIR directories.
+ DEFAULT_FONT_PATH="${FONTMISCDIR}/,${FONTTTFDIR}/,${FONTOTFDIR}/,${FONTTYPE1DIR}/,${FONT100DPIDIR}/,${FONT75DPIDIR}/"
+-if test "$cross_compiling" != yes; then
+-	AC_CHECK_FILE([${sysconfdir}/X11/fontpath.d],
+-		[DEFAULT_FONT_PATH='catalogue:${sysconfdir}/X11/fontpath.d'],
+-		[case $host_os in
++		case $host_os in
+ 			darwin*) DEFAULT_FONT_PATH="${DEFAULT_FONT_PATH},/Library/Fonts,/System/Library/Fonts" ;;
+-		esac])
+-fi
++		esac
+ AC_ARG_WITH(default-font-path, AS_HELP_STRING([--with-default-font-path=PATH], [Comma separated list of font dirs]),
+ 				[ FONTPATH="$withval" ],
+ 				[ FONTPATH="${DEFAULT_FONT_PATH}" ])
diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch
new file mode 100644
index 0000000..092a712
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch
@@ -0,0 +1,13 @@
+Index: xorg-server-1.6.0/hw/xfree86/common/Makefile.am
+===================================================================
+--- xorg-server-1.6.0.orig/hw/xfree86/common/Makefile.am	2010-02-01 14:04:53.247789918 +0000
++++ xorg-server-1.6.0/hw/xfree86/common/Makefile.am	2010-02-01 14:05:27.787817002 +0000
+@@ -46,7 +46,7 @@
+ sdk_HEADERS = compiler.h fourcc.h xf86.h xf86Module.h xf86Opt.h \
+               xf86PciInfo.h xf86Priv.h xf86Privstr.h xf86Resources.h \
+               xf86cmap.h xf86fbman.h xf86str.h xf86RAC.h xf86Xinput.h xisb.h \
+-              $(XVSDKINCS) xorgVersion.h \
++              xorgVersion.h \
+               xf86sbusBus.h xf86xv.h xf86xvmc.h xf86xvpriv.h
+ 
+ DISTCLEANFILES = xf86Build.h
diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch
new file mode 100644
index 0000000..a62a767
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch
@@ -0,0 +1,13 @@
+Index: xorg-server-1.4/hw/xfree86/os-support/linux/Makefile.am
+===================================================================
+--- xorg-server-1.4.orig/hw/xfree86/os-support/linux/Makefile.am	2007-08-23 21:04:53.000000000 +0200
++++ xorg-server-1.4/hw/xfree86/os-support/linux/Makefile.am	2008-03-13 18:27:23.000000000 +0100
+@@ -41,7 +41,7 @@
+ 
+ AM_CFLAGS = -DUSESTDRES -DHAVE_SYSV_IPC $(DIX_CFLAGS) $(XORG_CFLAGS) $(PLATFORM_DEFINES)
+ 
+-INCLUDES = $(XORG_INCS) $(PLATFORM_INCLUDES) -I/usr/include/drm # FIXME this last part is crack
++INCLUDES = $(XORG_INCS) $(PLATFORM_INCLUDES) $(LIBDRM_CFLAGS)
+ 
+ # FIXME: These need to be added to the build
+ LNX_EXTRA_SRCS = \
diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch
new file mode 100644
index 0000000..eed491b
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch
@@ -0,0 +1,21 @@
+We need to insert the sysroot path into compiler commandlines for this
+kind of variable use, otherwise we're looking into /usr/include/.
+
+RP - 26/11/09
+
+Index: git/xorg-server.m4
+===================================================================
+--- git.orig/xorg-server.m4	2009-11-10 12:04:34.000000000 +0000
++++ git/xorg-server.m4	2009-11-27 00:05:02.000000000 +0000
+@@ -28,9 +28,10 @@
+ # Checks for the $1 define in xorg-server.h (from the sdk).  If it
+ # is defined, then add $1 to $REQUIRED_MODULES.
+ 
++m4_pattern_allow([^PKG_CONFIG_SYSROOT_DIR$])
+ AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
+ 	SAVE_CFLAGS="$CFLAGS"
+-	CFLAGS="$CFLAGS -I`pkg-config --variable=sdkdir xorg-server`"
++	CFLAGS="$CFLAGS -I$PKG_CONFIG_SYSROOT_DIR`pkg-config --variable=sdkdir xorg-server`"
+ 	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include "xorg-server.h"
+ #if !defined $1
diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch
new file mode 100644
index 0000000..94852f0
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch
@@ -0,0 +1,22 @@
+We need to insert the sysroot path into compiler commandlines for this
+kind of variable use, otherwise we're looking into /usr/include/.
+
+RP - 26/11/09
+
+Index: git/xorg-server.m4
+===================================================================
+--- git.orig/xorg-server.m4	2010-02-05 10:00:55.000000000 +0000
++++ git/xorg-server.m4	2010-02-05 10:02:12.000000000 +0000
+@@ -28,10 +28,11 @@
+ # Checks for the $1 define in xorg-server.h (from the sdk).  If it
+ # is defined, then add $1 to $REQUIRED_MODULES.
+ 
++m4_pattern_allow([^PKG_CONFIG_SYSROOT_DIR$])
+ AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
+ 	AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+ 	SAVE_CFLAGS="$CFLAGS"
+-	CFLAGS="$CFLAGS -I`$PKG_CONFIG --variable=sdkdir xorg-server`"
++	CFLAGS="$CFLAGS -I$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=sdkdir xorg-server`"
+ 	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include "xorg-server.h"
+ #if !defined $1
diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch
new file mode 100644
index 0000000..565832e
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch
@@ -0,0 +1,13 @@
+Index: git/os/osdep.h
+===================================================================
+--- git.orig/os/osdep.h	2008-10-07 18:38:21.000000000 +0100
++++ git/os/osdep.h	2008-10-07 18:39:36.000000000 +0100
+@@ -92,7 +92,7 @@
+  * like sysconf(_SC_OPEN_MAX) is not supported.
+  */
+ 
+-#if OPEN_MAX <= 256
++#if 0
+ #define MAXSOCKS (OPEN_MAX - 1)
+ #else
+ #define MAXSOCKS 256
diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch
new file mode 100644
index 0000000..db29da9
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch
@@ -0,0 +1,50 @@
+Index: xorg-server-1.5.0/hw/xfree86/dri/dri.c
+===================================================================
+--- xorg-server-1.5.0.orig/hw/xfree86/dri/dri.c	2008-09-24 17:43:04.000000000 +0100
++++ xorg-server-1.5.0/hw/xfree86/dri/dri.c	2008-09-24 17:46:38.000000000 +0100
+@@ -73,10 +73,6 @@
+ 
+ #define PCI_BUS_NO_DOMAIN(bus) ((bus) & 0xffu)
+ 
+-#if !defined(PANORAMIX)
+-extern Bool noPanoramiXExtension;
+-#endif
+-
+ static int DRIEntPrivIndex = -1;
+ static DevPrivateKey DRIScreenPrivKey = &DRIScreenPrivKey;
+ static DevPrivateKey DRIWindowPrivKey = &DRIWindowPrivKey;
+@@ -307,7 +303,6 @@
+     drm_context_t *       reserved;
+     int                 reserved_count;
+     int                 i;
+-    Bool                xineramaInCore = FALSE;
+     DRIEntPrivPtr       pDRIEntPriv;
+     ScrnInfoPtr         pScrn = xf86Screens[pScreen->myNum];
+     DRIContextFlags	flags    = 0;
+@@ -320,20 +315,13 @@
+ 	return FALSE;
+     }
+ 
+-    /*
+-     * If Xinerama is on, don't allow DRI to initialise.  It won't be usable
+-     * anyway.
+-     */
+-    if (xf86LoaderCheckSymbol("noPanoramiXExtension"))
+-	xineramaInCore = TRUE;
+-
+-    if (xineramaInCore) {
+-	if (!noPanoramiXExtension) {
+-	    DRIDrvMsg(pScreen->myNum, X_WARNING,
+-		"Direct rendering is not supported when Xinerama is enabled\n");
+-	    return FALSE;
+-	}
++#if defined(PANORAMIX)
++    if (!noPanoramiXExtension) {
++        DRIDrvMsg(pScreen->myNum, X_WARNING,
++            "Direct rendering is not supported when Xinerama is enabled\n");
++        return FALSE;
+     }
++#endif
+ 
+     if (!DRIOpenDRMMaster(pScrn, pDRIInfo->SAREASize,
+ 			  pDRIInfo->busIdString,
diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/macro_tweak.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/macro_tweak.patch
new file mode 100644
index 0000000..cd408c7
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/macro_tweak.patch
@@ -0,0 +1,28 @@
+This is the revised version of files/macro_tweak.patch for
+xorg-server 1.8.99.904.
+
+the files/macro_tweak.patch can not removed now since it is used by
+xserver-kdrive-1.7.99.2 and xserver-xf86-lite_1.7.99.2. Once they
+are all upgraded to 1.8.99.904, the the files/macro_tweak.patch
+can be safely replace by this patch.
+
+Signed-off-by: Yu Ke <ke.yu@intel.com>
+
+diff --git a/xorg-server.m4 b/xorg-server.m4
+index bdecf62..040fdb8 100644
+--- a/xorg-server.m4
++++ b/xorg-server.m4
+@@ -28,10 +28,12 @@ dnl
+ # Checks for the $1 define in xorg-server.h (from the sdk).  If it
+ # is defined, then add $1 to $REQUIRED_MODULES.
+ 
++m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
++
+ AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
+ 	AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+ 	SAVE_CFLAGS="$CFLAGS"
+-	CFLAGS="$CFLAGS -I`$PKG_CONFIG --variable=sdkdir xorg-server`"
++	CFLAGS="$CFLAGS -I$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=sdkdir xorg-server`"
+ 	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include "xorg-server.h"
+ #if !defined $1
diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/nodolt.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/nodolt.patch
new file mode 100644
index 0000000..6b34032
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/nodolt.patch
@@ -0,0 +1,12 @@
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac	2009-01-15 20:35:31.000000000 +0000
++++ git/configure.ac	2009-01-15 20:35:38.000000000 +0000
+@@ -62,7 +62,6 @@
+ AC_LIBTOOL_WIN32_DLL
+ AC_DISABLE_STATIC
+ AC_PROG_LIBTOOL
+-DOLT
+ AC_PROG_MAKE_SET
+ PKG_PROG_PKG_CONFIG
+ AC_PROG_LEX
diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch
new file mode 100755
index 0000000..3d2fa16
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch
@@ -0,0 +1,12 @@
+diff -urN xorg-server-1.5.99.1/hw/xfree86/dri2/dri2.c xorg-server-1.5.99.1.new/hw/xfree86/dri2/dri2.c
+--- xorg-server-1.5.99.1/hw/xfree86/dri2/dri2.c	2008-09-01 03:26:37.000000000 +0800
++++ xorg-server-1.5.99.1.new/hw/xfree86/dri2/dri2.c	2008-09-18 00:28:16.000000000 +0800
+@@ -39,7 +39,7 @@
+ #include "scrnintstr.h"
+ #include "windowstr.h"
+ #include "dri2.h"
+-#include <GL/internal/dri_sarea.h>
++//#include <GL/internal/dri_sarea.h>
+ 
+ #include "xf86.h"
+ 
diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch
new file mode 100755
index 0000000..7ff3658
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch
@@ -0,0 +1,23 @@
+commit 67b9b3a77a8b86eef03af36a0f4be3a07411efee
+Author: Eric Anholt <eric@anholt.net>
+Date:   Thu Sep 11 16:18:17 2008 -0700
+
+    Enable DRI2 build.
+
+diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
+index eff2c31..98d7ec8 100644
+--- a/hw/xfree86/Makefile.am
++++ b/hw/xfree86/Makefile.am
+@@ -4,9 +4,9 @@ if DRI
+ DRI_SUBDIR = dri
+ endif
+ 
+-#if DRI2
+-#DRI2_SUBDIR = dri2
+-#endif
++if DRI2
++DRI2_SUBDIR = dri2
++endif
+ 
+ if XF86UTILS
+ XF86UTILS_SUBDIR = utils
diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch
new file mode 100644
index 0000000..ef53689
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch
@@ -0,0 +1,156 @@
+From a3e15680da24cb8259f6a83dee0c930dab024290 Mon Sep 17 00:00:00 2001
+From: Kristian <krh@redhat.com>
+Date: Fri, 15 Aug 2008 15:15:14 +1000
+Subject: [PATCH] Add nr for background=none root
+
+---
+ dix/globals.c                |    1 +
+ dix/window.c                 |   22 ++++++++++++----------
+ hw/xfree86/common/xf86Init.c |   11 +++++++++++
+ hw/xfree86/common/xf86str.h  |    5 ++++-
+ include/opaque.h             |    1 +
+ os/utils.c                   |    3 +++
+ 6 files changed, 32 insertions(+), 11 deletions(-)
+
+diff --git a/dix/globals.c b/dix/globals.c
+index 973dc43..dbd76bb 100644
+--- a/dix/globals.c
++++ b/dix/globals.c
+@@ -141,6 +141,7 @@ FontPtr defaultFont;   /* not declared in dix.h to avoid including font.h in
+ CursorPtr rootCursor;
+ Bool party_like_its_1989 = FALSE;
+ Bool whiteRoot = FALSE;
++Bool bgNoneRoot = FALSE;
+ 
+ int cursorScreenDevPriv[MAXSCREENS];
+ 
+diff --git a/dix/window.c b/dix/window.c
+index c31fa87..8bb178d 100644
+--- a/dix/window.c
++++ b/dix/window.c
+@@ -482,23 +482,24 @@ InitRootWindow(WindowPtr pWin)
+     pWin->cursorIsNone = FALSE;
+     pWin->optional->cursor = rootCursor;
+     rootCursor->refcnt++;
+-
++    pWin->backingStore = defaultBackingStore;
++    pWin->forcedBS = (defaultBackingStore != NotUseful);
+ 
+     if (party_like_its_1989) {
+         MakeRootTile(pWin);
+         backFlag |= CWBackPixmap;
++        pScreen->ChangeWindowAttributes(pWin, backFlag);
++    } else if (bgNoneRoot) {
++	/* nothing, handled in xf86CreateRootWindow */
+     } else {
+ 	if (whiteRoot)
+             pWin->background.pixel = pScreen->whitePixel;
+         else
+             pWin->background.pixel = pScreen->blackPixel;
+         backFlag |= CWBackPixel;
+-    } 
+ 
+-    pWin->backingStore = defaultBackingStore;
+-    pWin->forcedBS = (defaultBackingStore != NotUseful);
+-    /* We SHOULD check for an error value here XXX */
+-    (*pScreen->ChangeWindowAttributes)(pWin, backFlag);
++        pScreen->ChangeWindowAttributes(pWin, backFlag);
++    }
+ 
+     MapWindow(pWin, serverClient);
+ }
+diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
+index 236c00b..083a6ac 100644
+--- a/hw/xfree86/common/xf86Init.c
++++ b/hw/xfree86/common/xf86Init.c
+@@ -79,6 +79,7 @@
+ #ifdef RENDER
+ #include "picturestr.h"
+ #endif
++#include "xace.h"
+ 
+ #include "globals.h"
+ 
+@@ -328,6 +329,7 @@ xf86CreateRootWindow(WindowPtr pWin)
+   int ret = TRUE;
+   int err = Success;
+   ScreenPtr pScreen = pWin->drawable.pScreen;
++  ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+   RootWinPropPtr pProp;
+   CreateWindowProcPtr CreateWindow = (CreateWindowProcPtr)
+       dixLookupPrivate(&pScreen->devPrivates, xf86CreateRootWindowKey);
+@@ -381,6 +383,15 @@ xf86CreateRootWindow(WindowPtr pWin)
+     }
+   }
+ 
++  if (bgNoneRoot && pScrn->canDoBGNoneRoot || 1) {
++      pWin->backgroundState = XaceBackgroundNoneState(pWin);
++      pWin->background.pixel = pScreen->whitePixel;
++      pScreen->ChangeWindowAttributes(pWin, CWBackPixmap | CWBorderPixel | CWCursor | CWBackingStore);
++  } else {
++      pWin->background.pixel = pScreen->blackPixel;
++      pScreen->ChangeWindowAttributes(pWin, CWBackPixel | CWBorderPixel | CWCursor | CWBackingStore);
++  }
++
+ #ifdef DEBUG
+   ErrorF("xf86CreateRootWindow() returns %d\n", ret);
+ #endif
+diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h
+index 904c369..8c38f69 100644
+--- a/hw/xfree86/common/xf86str.h
++++ b/hw/xfree86/common/xf86str.h
+@@ -531,7 +531,7 @@ typedef struct _confdrirec {
+ } confDRIRec, *confDRIPtr;
+ 
+ /* These values should be adjusted when new fields are added to ScrnInfoRec */
+-#define NUM_RESERVED_INTS		16
++#define NUM_RESERVED_INTS		15
+ #define NUM_RESERVED_POINTERS		15
+ #define NUM_RESERVED_FUNCS		11
+ 
+@@ -959,6 +959,9 @@ typedef struct _ScrnInfoRec {
+     ClockRangesPtr	clockRanges;
+     int			adjustFlags;
+ 
++    /* -nr support */
++    int			canDoBGNoneRoot;
++
+     /*
+      * These can be used when the minor ABI version is incremented.
+      * The NUM_* parameters must be reduced appropriately to keep the
+diff --git a/include/opaque.h b/include/opaque.h
+index 07a0715..be1577b 100644
+--- a/include/opaque.h
++++ b/include/opaque.h
+@@ -71,6 +71,7 @@ extern Bool defeatAccessControl;
+ extern long maxBigRequestSize;
+ extern Bool party_like_its_1989;
+ extern Bool whiteRoot;
++extern Bool bgNoneRoot;
+ 
+ extern Bool CoreDump;
+ 
+diff --git a/os/utils.c b/os/utils.c
+index b100949..c41b45b 100644
+--- a/os/utils.c
++++ b/os/utils.c
+@@ -515,6 +515,7 @@ void UseMsg(void)
+ #endif
+     ErrorF("-nolisten string       don't listen on protocol\n");
+     ErrorF("-noreset               don't reset after last client exists\n");
++    ErrorF("-nr                    create root window with no background\n");
+     ErrorF("-reset                 reset after last client exists\n");
+     ErrorF("-p #                   screen-saver pattern duration (minutes)\n");
+     ErrorF("-pn                    accept failure to listen on all ports\n");
+@@ -859,6 +860,8 @@ ProcessCommandLine(int argc, char *argv[])
+ 	    defaultBackingStore = WhenMapped;
+         else if ( strcmp( argv[i], "-wr") == 0)
+             whiteRoot = TRUE;
++        else if ( strcmp( argv[i], "-nr") == 0)
++            bgNoneRoot = TRUE;
+         else if ( strcmp( argv[i], "-maxbigreqsize") == 0) {
+              if(++i < argc) {
+                  long reqSizeArg = atol(argv[i]);
+-- 
+1.5.3.4
+
diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch
new file mode 100644
index 0000000..2754170
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch
@@ -0,0 +1,179 @@
+diff --git a/glx/glxdri2.c b/glx/glxdri2.c
+index 146ea82..3b5338b 100644
+--- a/glx/glxdri2.c
++++ b/glx/glxdri2.c
+@@ -70,6 +70,7 @@ struct __GLXDRIscreen {
+ 
+     const __DRIcoreExtension *core;
+     const __DRIdri2Extension *dri2;
++    const __DRI2flushExtension *flush;	
+     const __DRIcopySubBufferExtension *copySubBuffer;
+     const __DRIswapControlExtension *swapControl;
+     const __DRItexBufferExtension *texBuffer;
+@@ -135,10 +136,14 @@ __glXDRIdrawableCopySubBuffer(__GLXdrawable *drawable,
+ static GLboolean
+ __glXDRIdrawableSwapBuffers(__GLXdrawable *drawable)
+ {
+-    __GLXDRIdrawable *private = (__GLXDRIdrawable *) drawable;
++    __GLXDRIdrawable *priv = (__GLXDRIdrawable *) drawable;
++    __GLXDRIscreen *screen = priv->screen;
++
++    if (!DRI2SwapBuffers(drawable->pDraw))
++		return FALSE;
+ 
+-    __glXDRIdrawableCopySubBuffer(drawable, 0, 0,
+-				  private->width, private->height);
++    if (screen->flush->flushInvalidate)
++	(*screen->flush->flushInvalidate)(priv->driDrawable);
+ 
+     return TRUE;
+ }
+diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
+index 580383d..23e6467 100644
+--- a/hw/xfree86/dri2/dri2.c
++++ b/hw/xfree86/dri2/dri2.c
+@@ -70,6 +70,7 @@ typedef struct _DRI2Screen {
+     DRI2CreateBufferProcPtr	 CreateBuffer;
+     DRI2DestroyBufferProcPtr	 DestroyBuffer;
+     DRI2CopyRegionProcPtr	 CopyRegion;
++    DRI2SwapBuffersProcPtr	 SwapBuffers;	
+ 
+     HandleExposuresProcPtr       HandleExposures;
+ } DRI2ScreenRec, *DRI2ScreenPtr;
+@@ -422,6 +423,49 @@ DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
+     return Success;
+ }
+ 
++Bool
++DRI2SwapBuffers(DrawablePtr pDraw)
++{
++    DRI2ScreenPtr   ds = DRI2GetScreen(pDraw->pScreen);
++    DRI2DrawablePtr pPriv;
++    DRI2BufferPtr   pDestBuffer, pSrcBuffer;
++    int		    i;
++
++    pPriv = DRI2GetDrawable(pDraw);
++    if (pPriv == NULL)
++	return FALSE;
++
++    pDestBuffer = NULL;
++    pSrcBuffer = NULL;
++    for (i = 0; i < pPriv->bufferCount; i++)
++    {
++	if (pPriv->buffers[i]->attachment == DRI2BufferFrontLeft)
++	    pDestBuffer = (DRI2BufferPtr) pPriv->buffers[i];
++	if (pPriv->buffers[i]->attachment == DRI2BufferBackLeft)
++	    pSrcBuffer = (DRI2BufferPtr) pPriv->buffers[i];
++    }
++    if (pSrcBuffer == NULL || pDestBuffer == NULL)
++	return FALSE;
++
++    if (ds->SwapBuffers) {
++	if ((*ds->SwapBuffers)(pDraw, pDestBuffer, pSrcBuffer))
++	    return TRUE;
++    }
++
++    BoxRec box;
++    RegionRec region;
++
++    box.x1 = 0;
++    box.y1 = 0;
++    box.x2 = pDraw->width;
++    box.y2 = pDraw->height;
++    REGION_INIT(drawable->pDraw->pScreen, &region, &box, 0);
++    if (DRI2CopyRegion(pDraw, &region, DRI2BufferFrontLeft, DRI2BufferBackLeft) != Success)
++	return FALSE;
++
++    return TRUE;
++}
++
+ void
+ DRI2DestroyDrawable(DrawablePtr pDraw)
+ {
+@@ -538,6 +582,9 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
+     }
+     ds->CopyRegion     = info->CopyRegion;
+ 
++    if (info->version >= 3)
++	ds->SwapBuffers    = info->SwapBuffers;
++
+     dixSetPrivate(&pScreen->devPrivates, dri2ScreenPrivateKey, ds);
+ 
+     xf86DrvMsg(pScreen->myNum, X_INFO, "[DRI2] Setup complete\n");
+diff --git a/hw/xfree86/dri2/dri2.h b/hw/xfree86/dri2/dri2.h
+index f369267..e2784dd 100644
+--- a/hw/xfree86/dri2/dri2.h
++++ b/hw/xfree86/dri2/dri2.h
+@@ -67,6 +67,10 @@ typedef void		(*DRI2CopyRegionProcPtr)(DrawablePtr pDraw,
+ 						 DRI2BufferPtr pDestBuffer,
+ 						 DRI2BufferPtr pSrcBuffer);
+ 
++typedef Bool		(*DRI2SwapBuffersProcPtr)(DrawablePtr pDraw,
++						  DRI2BufferPtr pFrontBuffer,
++						  DRI2BufferPtr pBackBuffer);
++
+ typedef void		(*DRI2WaitProcPtr)(WindowPtr pWin,
+ 					   unsigned int sequence);
+ 
+@@ -90,6 +94,7 @@ typedef struct {
+     DRI2CreateBuffersProcPtr	CreateBuffers;
+     DRI2DestroyBuffersProcPtr	DestroyBuffers;
+     DRI2CopyRegionProcPtr	CopyRegion;
++    DRI2SwapBuffersProcPtr	SwapBuffers;	
+     DRI2WaitProcPtr		Wait;
+ 
+     /**
+@@ -153,4 +158,6 @@ extern _X_EXPORT DRI2Buffer2Ptr *DRI2GetBuffersWithFormat(DrawablePtr pDraw,
+ 	int *width, int *height, unsigned int *attachments, int count,
+ 	int *out_count);
+ 
++extern _X_EXPORT Bool DRI2SwapBuffers(DrawablePtr pDraw);
++
+ #endif
+diff --git a/hw/xfree86/dri2/dri2ext.c b/hw/xfree86/dri2/dri2ext.c
+index 3c06174..67b419b 100644
+--- a/hw/xfree86/dri2/dri2ext.c
++++ b/hw/xfree86/dri2/dri2ext.c
+@@ -81,7 +81,7 @@ ProcDRI2QueryVersion(ClientPtr client)
+     rep.length = 0;
+     rep.sequenceNumber = client->sequence;
+     rep.majorVersion = 1;
+-    rep.minorVersion = 1;
++    rep.minorVersion = 2;
+ 
+     if (client->swapped) {
+     	swaps(&rep.sequenceNumber, n);
+@@ -323,6 +323,24 @@ ProcDRI2CopyRegion(ClientPtr client)
+ }
+ 
+ static int
++ProcDRI2SwapBuffers(ClientPtr client)
++{
++    REQUEST(xDRI2SwapBuffersReq);
++    DrawablePtr pDrawable;
++    int status;
++
++    REQUEST_SIZE_MATCH(xDRI2SwapBuffersReq);
++
++    if (!validDrawable(client, stuff->drawable, &pDrawable, &status))
++	return status;
++
++    if (!DRI2SwapBuffers(pDrawable))
++	return BadAlloc;
++
++    return client->noClientException;
++}
++
++static int
+ ProcDRI2Dispatch (ClientPtr client)
+ {
+     REQUEST(xReq);
+@@ -350,6 +368,8 @@ ProcDRI2Dispatch (ClientPtr client)
+ 	return ProcDRI2CopyRegion(client);
+     case X_DRI2GetBuffersWithFormat:
+ 	return ProcDRI2GetBuffersWithFormat(client);
++    case X_DRI2SwapBuffers:
++	return ProcDRI2SwapBuffers(client);	
+     default:
+ 	return BadRequest;
+     }
diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch
new file mode 100644
index 0000000..efc85a4
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch
@@ -0,0 +1,38 @@
+diff --git a/os/log.c b/os/log.c
+index 0860847..2c46f1a 100644
+--- a/os/log.c
++++ b/os/log.c
+@@ -255,6 +255,33 @@ LogVWrite(int verb, const char *f, va_list args)
+     static char tmpBuffer[1024];
+     int len = 0;
+ 
++    struct timeval time;
++    time_t tv_sec;
++    suseconds_t tv_usec;
++    static Bool first = TRUE;
++    static time_t start_tv_sec;
++    static suseconds_t start_usec;
++    int diff_sec, diff_usec;
++
++    gettimeofday(&time, NULL);
++    tv_sec = time.tv_sec;
++    tv_usec = time.tv_usec;
++    if (first == TRUE) {
++        start_tv_sec = tv_sec;
++        start_usec = tv_usec;
++        first = FALSE;
++    }
++    diff_sec = (int)difftime(tv_sec, start_tv_sec);
++    diff_usec = (tv_usec - start_usec);
++    if (diff_usec < 0) {
++        diff_sec--;
++        diff_usec += 1000000;
++    }
++    sprintf(tmpBuffer, "[%d sec: %06d usec]", diff_sec , diff_usec);
++    len = strlen(tmpBuffer);
++    if (logFile)
++          fwrite(tmpBuffer, len, 1, logFile);
++
+     /*
+      * Since a va_list can only be processed once, write the string to a
+      * buffer, and then write the buffer out to the appropriate output
diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch
new file mode 100644
index 0000000..afc94dc
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch
@@ -0,0 +1,105 @@
+diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c
+index 7f40857..cf58c01 100644
+--- a/hw/xfree86/os-support/linux/lnx_init.c
++++ b/hw/xfree86/os-support/linux/lnx_init.c
+@@ -49,6 +49,7 @@ static Bool KeepTty = FALSE;
+ static int VTnum = -1;
+ static Bool VTSwitch = TRUE;
+ static Bool ShareVTs = FALSE;
++Bool NoHwAccess = FALSE;
+ static int activeVT = -1;
+ 
+ static int vtPermSave[4];
+@@ -80,9 +81,11 @@ saveVtPerms(void)
+ static void
+ restoreVtPerms(void)
+ {
+-    /* Set the terminal permissions back to before we started. */
+-    chown("/dev/tty0", vtPermSave[0], vtPermSave[1]);
+-    chown(vtname, vtPermSave[2], vtPermSave[3]);
++    if (geteuid() == 0) {
++	 /* Set the terminal permissions back to before we started. */
++	 (void)chown("/dev/tty0", vtPermSave[0], vtPermSave[1]);
++	 (void)chown(vtname, vtPermSave[2], vtPermSave[3]);
++    }
+ }
+ 
+ static void *console_handler;
+@@ -210,20 +213,22 @@ xf86OpenConsole(void)
+ 	        xf86Msg(X_WARNING,
+ 		        "xf86OpenConsole: Could not save ownership of VT\n");
+ 
+-	    /* change ownership of the vt */
+-	    if (chown(vtname, getuid(), getgid()) < 0)
+-	        xf86Msg(X_WARNING,"xf86OpenConsole: chown %s failed: %s\n",
+-		        vtname, strerror(errno));
+-
+-	    /*
+-	     * the current VT device we're running on is not "console", we want
+-	     * to grab all consoles too
+-	     *
+-	     * Why is this needed??
+-	     */
+-	    if (chown("/dev/tty0", getuid(), getgid()) < 0)
+-	        xf86Msg(X_WARNING,"xf86OpenConsole: chown /dev/tty0 failed: %s\n",
+-                    strerror(errno));
++	    if (geteuid() == 0) {
++		    /* change ownership of the vt */
++		    if (chown(vtname, getuid(), getgid()) < 0)
++			    xf86Msg(X_WARNING,"xf86OpenConsole: chown %s failed: %s\n",
++				    vtname, strerror(errno));
++
++		    /*
++		     * the current VT device we're running on is not
++		     * "console", we want to grab all consoles too
++		     *
++		     * Why is this needed??
++		     */
++		    if (chown("/dev/tty0", getuid(), getgid()) < 0)
++			    xf86Msg(X_WARNING,"xf86OpenConsole: chown /dev/tty0 failed: %s\n",
++				    strerror(errno));
++	    }
+         }
+ 
+ 	/*
+@@ -433,6 +438,11 @@ xf86ProcessArgument(int argc, char *argv[], int i)
+                 ShareVTs = TRUE;
+                 return(1);
+         }
++	if (!strcmp(argv[i], "-nohwaccess"))
++	{
++		NoHwAccess = TRUE;
++		return(1);
++	}
+ 	if ((argv[i][0] == 'v') && (argv[i][1] == 't'))
+ 	{
+ 		if (sscanf(argv[i], "vt%2d", &VTnum) == 0)
+@@ -454,5 +464,6 @@ xf86UseMsg()
+ 	ErrorF("don't detach controlling tty (for debugging only)\n");
+         ErrorF("-novtswitch            don't immediately switch to new VT\n");
+         ErrorF("-sharevts              share VTs with another X server\n");
++	ErrorF("-nohwaccess            don't access hardware ports directly\n");
+ 	return;
+ }
+diff --git a/hw/xfree86/os-support/linux/lnx_video.c b/hw/xfree86/os-support/linux/lnx_video.c
+index 688106a..34a845b 100644
+--- a/hw/xfree86/os-support/linux/lnx_video.c
++++ b/hw/xfree86/os-support/linux/lnx_video.c
+@@ -51,6 +51,7 @@
+ #define MAP_FAILED ((void *)-1)
+ #endif
+ 
++extern Bool NoHwAccess;
+ static Bool ExtendedEnabled = FALSE;
+ 
+ #ifdef __ia64__
+@@ -509,6 +510,9 @@ xf86EnableIO(void)
+ 	int fd;
+ 	unsigned int ioBase_phys;
+ #endif
++	/* Fake it... */
++	if (NoHwAccess)
++		return TRUE;
+ 
+ 	if (ExtendedEnabled)
+ 		return TRUE;
diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_1.9.3.bb b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_1.9.3.bb
new file mode 100644
index 0000000..81d70bc
--- /dev/null
+++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_1.9.3.bb
@@ -0,0 +1,19 @@
+require recipes-graphics/xorg-xserver/xserver-xf86-dri-lite.inc
+
+PROTO_DEPS += "xf86driproto dri2proto"
+
+DEPENDS += "font-util"
+
+PE = "1"
+PR = "r0"
+
+SRC_URI += "file://nodolt.patch \
+            file://crosscompile.patch"
+
+# Misc build failure for master HEAD
+SRC_URI += "file://fix_open_max_preprocessor_error.patch"
+
+SRC_URI[md5sum] = "5bef6839a76d029204ab31aa2fcb5201"
+SRC_URI[sha256sum] = "864831f51e841ff37f2445d1c85b86b559c8860a435fb496aead4f256a2b141d"
+
+EXTRA_OECONF += "--enable-dri --enable-dri2 --enable-dga"
-- 
1.7.0.4



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

* [PATCH 3/6] meta-crownbay: add common to BBFILES
  2011-06-01 19:55 [PATCH 0/6] meta-intel: emgd updrade tom.zanussi
  2011-06-01 19:55 ` [PATCH 1/6] meta-crownbay: new recipe for emgd 1.6 driver binaries tom.zanussi
  2011-06-01 19:55 ` [PATCH 2/6] meta-intel: add xserver-xf86-dri-lite_1.9.3 to common tom.zanussi
@ 2011-06-01 19:55 ` tom.zanussi
  2011-06-01 19:56 ` [PATCH 4/6] meta-crownbay: update crownbay.conf tom.zanussi
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: tom.zanussi @ 2011-06-01 19:55 UTC (permalink / raw)
  To: yocto

From: Tom Zanussi <tom.zanussi@intel.com>

Add common to BBFILES so crownbay can find recipes it needs from
there.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
---
 meta-crownbay/conf/layer.conf |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/meta-crownbay/conf/layer.conf b/meta-crownbay/conf/layer.conf
index d15579d..4ffeb2c 100644
--- a/meta-crownbay/conf/layer.conf
+++ b/meta-crownbay/conf/layer.conf
@@ -3,7 +3,9 @@ BBPATH := "${BBPATH}:${LAYERDIR}"
 
 # We have a recipes directory, add to BBFILES
 BBFILES := "${BBFILES} ${LAYERDIR}/recipes-*/*/*.bb \
-	${LAYERDIR}/recipes-*/*/*.bbappend"
+	${LAYERDIR}/recipes-*/*/*.bbappend \
+	${LAYERDIR}/../common/recipes-*/*/*.bb \
+	${LAYERDIR}/../common/recipes-*/*/*.bbappend"
 
 BBFILE_COLLECTIONS_append_crownbay += "crownbay"
 BBFILE_PATTERN_crownbay := "^${LAYERDIR}/"
-- 
1.7.0.4



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

* [PATCH 4/6] meta-crownbay: update crownbay.conf
  2011-06-01 19:55 [PATCH 0/6] meta-intel: emgd updrade tom.zanussi
                   ` (2 preceding siblings ...)
  2011-06-01 19:55 ` [PATCH 3/6] meta-crownbay: add common to BBFILES tom.zanussi
@ 2011-06-01 19:56 ` tom.zanussi
  2011-06-01 19:56 ` [PATCH 5/6] meta-crownbay: remove obsolete graphics recipes tom.zanussi
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: tom.zanussi @ 2011-06-01 19:56 UTC (permalink / raw)
  To: yocto

From: Tom Zanussi <tom.zanussi@intel.com>

Update to reflect new graphics recipes.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
---
 meta-crownbay/conf/machine/crownbay.conf |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/meta-crownbay/conf/machine/crownbay.conf b/meta-crownbay/conf/machine/crownbay.conf
index 48742be..e35334d 100644
--- a/meta-crownbay/conf/machine/crownbay.conf
+++ b/meta-crownbay/conf/machine/crownbay.conf
@@ -17,18 +17,18 @@ PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
 PREFERRED_PROVIDER_linux-libc-headers ?= "linux-libc-headers-yocto"
 PREFERRED_PROVIDER_virtual/libx11 ?= "libx11-trim"
 PREFERRED_PROVIDER_virtual/libgl  ?= "mesa-dri"
-PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xf86-emgd"
-PREFERRED_PROVIDER_virtual/xserver-xf86 ?= "xserver-xf86-emgd"
-XSERVER ?= "xserver-xf86-emgd \
-           xserver-xf86-emgd-bin \
+PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xf86-dri-lite"
+PREFERRED_PROVIDER_virtual/xserver-xf86 ?= "xserver-xf86-dri-lite"
+XSERVER ?= "xserver-xf86-dri-lite \
+           emgd-driver-bin \
            xf86-input-mouse \
            xf86-input-keyboard \
            xf86-input-evdev \
            xf86-input-synaptics \
            xf86-video-vesa"
 
-PREFERRED_VERSION_xserver-xf86-emgd ?= "1.7.99.2"
-PREFERRED_VERSION_xserver-xf86-emgd-bin ?= "1.7.99.2"
+PREFERRED_VERSION_xserver-xf86-dri-lite ?= "1.9.3"
+PREFERRED_VERSION_emgd-driver-bin ?= "1.6"
 
 SERIAL_CONSOLE = "115200 ttyS0"
 
-- 
1.7.0.4



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

* [PATCH 5/6] meta-crownbay: remove obsolete graphics recipes
  2011-06-01 19:55 [PATCH 0/6] meta-intel: emgd updrade tom.zanussi
                   ` (3 preceding siblings ...)
  2011-06-01 19:56 ` [PATCH 4/6] meta-crownbay: update crownbay.conf tom.zanussi
@ 2011-06-01 19:56 ` tom.zanussi
  2011-06-01 19:56 ` [PATCH 6/6] meta-crownbay: update README with new build instructions tom.zanussi
  2011-06-01 20:27 ` [PATCH 0/6] meta-intel: emgd updrade Darren Hart
  6 siblings, 0 replies; 11+ messages in thread
From: tom.zanussi @ 2011-06-01 19:56 UTC (permalink / raw)
  To: yocto

From: Tom Zanussi <tom.zanussi@intel.com>

With the emgd 1.6 upgrade, we no longer need these.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
---
 .../xorg-xserver/xserver-xf86-emgd-bin_1.7.99.2.bb |   90 --------------------
 .../xserver-xf86-emgd/crosscompile.patch           |   19 ----
 .../fix_open_max_preprocessor_error.patch          |   13 ---
 .../xserver-xf86-emgd/macro_tweak.patch            |   18 ----
 .../xorg-xserver/xserver-xf86-emgd/nodolt.patch    |   12 ---
 .../xorg-xserver/xserver-xf86-emgd_1.7.99.2.bb     |   25 ------
 6 files changed, 0 insertions(+), 177 deletions(-)
 delete mode 100644 meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd-bin_1.7.99.2.bb
 delete mode 100644 meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/crosscompile.patch
 delete mode 100644 meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/fix_open_max_preprocessor_error.patch
 delete mode 100644 meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/macro_tweak.patch
 delete mode 100644 meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/nodolt.patch
 delete mode 100644 meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd_1.7.99.2.bb

diff --git a/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd-bin_1.7.99.2.bb b/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd-bin_1.7.99.2.bb
deleted file mode 100644
index 9506872..0000000
--- a/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd-bin_1.7.99.2.bb
+++ /dev/null
@@ -1,90 +0,0 @@
-SUMMARY = "EMGD 1.5 xserver binaries"
-DESCRIPTION = "EMGD 1.5 includes some userspace binaries that use non-free licensing.  Intel Open Source Technology Center unfortunately has no power to change that, but tries to make their use as painless as possible.  Please see the README.before.building in meta-crownbay/recipes/xorg-xerver for instructions on the (simple) manual steps necessary to make the necessary binaries available to this recipe.  Please do that before building an image."
-
-LICENSE = "Intel-binary-only"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/License.txt;md5=95c4d031b83ab803f3f2401b04ecfbcd"
-PR = "r0"
-
-FILESPATH = "${FILE_DIRNAME}/xserver-xf86-emgd-bin"
-
-FILES_${PN} = "${libdir}/*.so.* ${libdir}/dri ${libdir}/xorg/modules/drivers"
-
-SRC_URI = "file://emgd_dri.so \
-           file://emgd_drv.so \
-           file://emgd_drv_video.so \
-           file://libEGL.so \
-           file://libGLES_CM.so \
-           file://libGLESv2.so \
-           file://libIMGegl.so \
-           file://libOpenVG.so \
-           file://libOpenVGU.so \
-           file://libPVROGL.so \
-           file://libPVRScopeServices.so \
-           file://libXegd_escape.so.2.0.0 \
-           file://libglslcompiler.so \
-           file://libpvr2d.so \
-           file://libpvrPVR2D_DRIWSEGL.so \
-           file://libsrv_init.so \
-           file://libsrv_um.so \
-           file://libva-x11.so.1.0.1 \
-           file://libva.so.1.0.1 \
-           file://License.txt"
-
-S = "${WORKDIR}"
-
-do_install () {
-	install -d -m 0755 ${D}/${libdir}/dri ${D}/${libdir}/xorg/modules/drivers
-
-	install -m 0755	${S}/emgd_dri.so			${D}${libdir}/dri/emgd_dri.so.1.1.15.3082
-	ln -sf		emgd_dri.so.1.1.15.3082			${D}${libdir}/dri/emgd_dri.so
-
-	install -m 0755	${S}/emgd_drv.so			${D}${libdir}/xorg/modules/drivers/emgd_drv.so
-	install -m 0755	${S}/emgd_drv_video.so			${D}${libdir}/xorg/modules/drivers/emgd_drv_video.so
-
-	install -m 0755	${S}/libEGL.so				${D}${libdir}/libEGL.so.1.1.15.3082
-	ln -sf		libEGL.so.1.1.15.3082			${D}${libdir}/libEGL.so
-
-	install -m 0755	${S}/libGLES_CM.so			${D}${libdir}/libGLES_CM.so.1.1.15.3082
-	ln -sf		libGLES_CM.so.1.1.15.3082		${D}${libdir}/libGLES_CM.so
-
-	install -m 0755	${S}/libGLESv2.so			${D}${libdir}/libGLESv2.so.1.1.15.3082
-	ln -sf		libGLESv2.so.1.1.15.3082		${D}${libdir}/libGLESv2.so
-
-	install -m 0755	${S}/libIMGegl.so			${D}${libdir}/libIMGegl.so.1.1.15.3082
-	ln -sf		libIMGegl.so.1.1.15.3082		${D}${libdir}/libIMGegl.so
-
-	install -m 0755	${S}/libOpenVG.so			${D}${libdir}/libOpenVG.so.1.1.15.3082
-	ln -sf		libOpenVG.so.1.1.15.3082		${D}${libdir}/libOpenVG.so
-
-	install -m 0755	${S}/libOpenVGU.so			${D}${libdir}/libOpenVGU.so.1.1.15.3082
-	ln -sf		libOpenVG.so.1.1.15.3082		${D}${libdir}/libOpenVGU.so
-
-	install -m 0755	${S}/libPVROGL.so			${D}${libdir}/libPVROGL.so.1.1.15.3082
-	ln -sf		libPVROGL.so.1.1.15.3082		${D}${libdir}/libPVROGL.so
-
-	install -m 0755	${S}/libPVRScopeServices.so		${D}${libdir}/libPVRScopeServices.so.1.1.15.3082
-	ln -sf		libPVRScopeServices.so.1.1.15.3082	${D}${libdir}/libPVRScopeServices.so
-
-	install -m 0755	${S}/libXegd_escape.so.2.0.0		${D}${libdir}/libXegd_escape.so.2.0.0
-
-	install -m 0755	${S}/libglslcompiler.so			${D}${libdir}/libglslcompiler.so.1.1.15.3082
-	ln -sf		libglslcompiler.so.1.1.15.3082		${D}${libdir}/libglslcompiler.so
-
-	install -m 0755	${S}/libpvr2d.so			${D}${libdir}/libpvr2d.so.1.1.15.3082
-	ln -sf		libpvr2d.so.1.1.15.3082			${D}${libdir}/libpvr2d.so
-
-	install -m 0755	${S}/libpvrPVR2D_DRIWSEGL.so		${D}${libdir}/libpvrPVR2D_DRIWSEGL.so.1.1.15.3082
-	ln -sf		libpvrPVR2D_DRIWSEGL.so.1.1.15.3082	${D}${libdir}/libpvrPVR2D_DRIWSEGL.so
-
-	install -m 0755	${S}/libsrv_init.so			${D}${libdir}/libsrv_init.so.1.1.15.3082
-	ln -sf		libsrv_init.so.1.1.15.3082		${D}${libdir}/libsrv_init.so
-
-	install -m 0755	${S}/libsrv_um.so			${D}${libdir}/libsrv_um.so.1.1.15.3082
-	ln -sf		libsrv_um.so.1.1.15.3082		${D}${libdir}/libsrv_um.so
-
-	install -m 0755	${S}/libva-x11.so.1.0.1			${D}${libdir}/libva-x11.so.1.0.1
-
-	install -m 0755	${S}/libva.so.1.0.1			${D}${libdir}/libva.so.1.0.1
-}
-
-LEAD_SONAME = "libEGL.so"
diff --git a/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/crosscompile.patch b/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/crosscompile.patch
deleted file mode 100644
index 2341e40..0000000
--- a/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/crosscompile.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Index: xorg-server-1.7.99.2/configure.ac
-===================================================================
---- xorg-server-1.7.99.2.orig/configure.ac	2010-01-29 16:38:49.000000000 +0000
-+++ xorg-server-1.7.99.2/configure.ac	2010-01-29 16:42:39.000000000 +0000
-@@ -503,14 +503,10 @@
- 
- dnl Uses --default-font-path if set, otherwise checks for /etc/X11/fontpath.d,
- dnl otherwise uses standard subdirectories of FONTROOTDIR
--AC_CHECK_FILE([${sysconfdir}/X11/fontpath.d],
--	[DEFAULT_FONT_PATH='catalogue:${sysconfdir}/X11/fontpath.d'],
--	[
- 		DEFAULT_FONT_PATH="${FONTMISCDIR}/,${FONTTTFDIR}/,${FONTOTFDIR}/,${FONTTYPE1DIR}/,${FONT100DPIDIR}/,${FONT75DPIDIR}/"
- 		case $host_os in
- 			darwin*)    DEFAULT_FONT_PATH="${DEFAULT_FONT_PATH},/Library/Fonts,/System/Library/Fonts" ;;
- 		esac
--	])
- AC_ARG_WITH(default-font-path, AS_HELP_STRING([--with-default-font-path=PATH], [Comma separated list of font dirs]),
- 				[ FONTPATH="$withval" ],
- 				[ FONTPATH="${DEFAULT_FONT_PATH}" ])
diff --git a/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/fix_open_max_preprocessor_error.patch b/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/fix_open_max_preprocessor_error.patch
deleted file mode 100644
index 565832e..0000000
--- a/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/fix_open_max_preprocessor_error.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: git/os/osdep.h
-===================================================================
---- git.orig/os/osdep.h	2008-10-07 18:38:21.000000000 +0100
-+++ git/os/osdep.h	2008-10-07 18:39:36.000000000 +0100
-@@ -92,7 +92,7 @@
-  * like sysconf(_SC_OPEN_MAX) is not supported.
-  */
- 
--#if OPEN_MAX <= 256
-+#if 0
- #define MAXSOCKS (OPEN_MAX - 1)
- #else
- #define MAXSOCKS 256
diff --git a/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/macro_tweak.patch b/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/macro_tweak.patch
deleted file mode 100644
index 6998adf..0000000
--- a/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/macro_tweak.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Index: xorg-server-1.5.0/xorg-server.m4
-===================================================================
---- xorg-server-1.5.0.orig/xorg-server.m4	2007-05-29 20:36:51.000000000 +0100
-+++ xorg-server-1.5.0/xorg-server.m4	2008-11-04 23:56:55.000000000 +0000
-@@ -28,9 +28,12 @@
- # Checks for the $1 define in xorg-server.h (from the sdk).  If it
- # is defined, then add $1 to $REQUIRED_MODULES.
- 
-+m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
-+
- AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
-+	PKG_PROG_PKG_CONFIG
- 	SAVE_CFLAGS="$CFLAGS"
--	CFLAGS="$CFLAGS -I`pkg-config --variable=sdkdir xorg-server`"
-+	CFLAGS="$CFLAGS -I$PKG_CONFIG_SYSROOT_DIR`pkg-config --variable=sdkdir xorg-server`"
- 	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
- #include "xorg-server.h"
- #if !defined $1
diff --git a/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/nodolt.patch b/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/nodolt.patch
deleted file mode 100644
index 6b34032..0000000
--- a/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd/nodolt.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: git/configure.ac
-===================================================================
---- git.orig/configure.ac	2009-01-15 20:35:31.000000000 +0000
-+++ git/configure.ac	2009-01-15 20:35:38.000000000 +0000
-@@ -62,7 +62,6 @@
- AC_LIBTOOL_WIN32_DLL
- AC_DISABLE_STATIC
- AC_PROG_LIBTOOL
--DOLT
- AC_PROG_MAKE_SET
- PKG_PROG_PKG_CONFIG
- AC_PROG_LEX
diff --git a/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd_1.7.99.2.bb b/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd_1.7.99.2.bb
deleted file mode 100644
index 01f0a24..0000000
--- a/meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd_1.7.99.2.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-require recipes-graphics/xorg-xserver/xserver-xf86-dri-lite.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=3dd2bbe3563837f80ed8926b06c1c353"
-
-PROTO_DEPS += "xf86driproto dri2proto"
-
-DEPENDS += "font-util"
-
-PE = "1"
-PR = "r0"
-
-SRC_URI += "file://nodolt.patch \
-            file://crosscompile.patch"
-
-# Misc build failure for master HEAD
-SRC_URI += "file://fix_open_max_preprocessor_error.patch"
-
-SRC_URI[md5sum] = "cafc4e2d4ef6cf6e47f3e7dffeb3346a"
-SRC_URI[sha256sum] = "a89f13b166b412930fe418ff50032dd2cde8bb181d8b47b5ca6f848d218fdcf2"
-
-RDEPENDS_${PN} += "xserver-xf86-emgd-bin mesa-dri"
-
-COMPATIBLE_MACHINE = "crownbay"
-
-EXTRA_OECONF += "--enable-dga --enable-dri --enable-dri2"
-- 
1.7.0.4



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

* [PATCH 6/6] meta-crownbay: update README with new build instructions.
  2011-06-01 19:55 [PATCH 0/6] meta-intel: emgd updrade tom.zanussi
                   ` (4 preceding siblings ...)
  2011-06-01 19:56 ` [PATCH 5/6] meta-crownbay: remove obsolete graphics recipes tom.zanussi
@ 2011-06-01 19:56 ` tom.zanussi
  2011-06-01 20:26   ` Darren Hart
  2011-06-01 20:27 ` [PATCH 0/6] meta-intel: emgd updrade Darren Hart
  6 siblings, 1 reply; 11+ messages in thread
From: tom.zanussi @ 2011-06-01 19:56 UTC (permalink / raw)
  To: yocto

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 7247 bytes --]

From: Tom Zanussi <tom.zanussi@intel.com>

EMGD 1.6 added a new non-clickthrough Linux tarball download; this
changes the README to make use of it and also updates new directory
naming, etc.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
---
 meta-crownbay/README |   95 ++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 77 insertions(+), 18 deletions(-)

diff --git a/meta-crownbay/README b/meta-crownbay/README
index bb1e0c3..89056ed 100644
--- a/meta-crownbay/README
+++ b/meta-crownbay/README
@@ -6,7 +6,7 @@ The Crown Bay platform consists of the Intel Atom Z6xx processor,
 plus the Intel EG20T Platform Controller Hub (Tunnel Creek + Topcliff).
 
 It also supports the E6xx embedded on-chip graphics via the Intel
-Embedded Media and Graphics Driver (EMGD) 1.5 Gold Driver.
+Embedded Media and Graphics Driver (EMGD) 1.6 Gold Driver.
 
 Table of Contents
 =================
@@ -33,7 +33,7 @@ bblayers.conf e.g.:
 The meta-crownbay layer contains support for two different machine
 configurations. These configurations are identical except for the fact
 that the one prefixed with 'crownbay' makes use of the
-Intel-proprietary EMGD 1.5 graphics driver, while the one prefixed
+Intel-proprietary EMGD 1.6 graphics driver, while the one prefixed
 with 'crownbay-noemgd' does not.
 
 If you want to enable the layer that supports EMGD graphics add
@@ -73,19 +73,71 @@ userspace drivers when building the "crownbay" machine (but not when
 building the "crownbay-noemgd" machine).  If you got the BSP from the
 'BSP Downloads' section of the Yocto website, the EMGD binaries needed
 to perform the build will already be present in the BSP, located in
-the recipes-graphics/xorg-xserver/xserver-xf86-emgd-bin directory, and
+the recipes-graphics/xorg-xserver/emgd-driver-bin-1.6 directory, and
 you can ignore the rest of this section.
 
 If you didn't get the BSP from the 'BSP Downloads' section of the
-Yocto website, you'll need to download the a Windows executable from
-the official EMGD website, extract the binaries from it, and copy them
-to the proper location in the meta-crownbay layer.
+Yocto website, you have two choices:
+
+- You can download a tarball containing an rpm that contains the
+  binaries and extract the binaries from that, and copy them to the
+  proper location in the meta-crownbay layer.
+
+- You can download a Windows executable from the official EMGD
+  website, extract the binaries from it, and copy them to the proper
+  location in the meta-crownbay layer.
+
+The following subsections describe each option in detail.
+
+
+IIa Downloading and extracting the binaries using the EMGD Linux tarball
+------------------------------------------------------------------------
+
+The first step of the process is to download the EMGD 1.6 Gold Driver.
+Here is the current link to the URL which it can be downloaded from:
+
+http://edc.intel.com/Software/Downloads/EMGD/
+
+In the Download Now tab, select:
+
+Intel® architecture-based product: Linux Tar Ball
+Operating System: MeeGo 1.0 IVI Linux (kernel 2.6.33.3, X.server 1.8.0)
+
+That will give you a large tar file:
+
+Lin_EMGD_1_6_RC_1922.tar
+
+Extract the files in the tar file, which will in turn give you a
+directory named IEMGD_HEAD_Linux.
+
+The binaries are contained in an rpm file; you can extract the
+binaries from the rpm file using rpm2cpio and cpio:
+
+$ cd IEMGD_HEAD_Linux/MeeGo1.2
+$ rpm2cpio emgd-bin-1922-1.6.i586.rpm > emgd-bin-1922-1.6.i586.cpio
+$ mkdir extracted; cd extracted
+$ cpio -idv < ../poky-image-minimal-initramfs-emenlow.cpio
+
+Finally, you can copy the xorg-xserver binaries to the
+emgd-driver-bin-1.6 directory in the meta-crownbay layer:
+
+$ cp -a usr/lib meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin-1.6
+
+You also need to copy the IEMGD License.txt file to the same directory:
+
+$ cp IEMGD_HEAD_Linux/License/License.txt meta-crownbay/recipes/xorg-xserver/emgd-driver-bin-1.6
+
+At this point, you should be able to build meta-crownbay images as usual.
+
+
+IIb Extracting the binaries using the graphical ced application
+---------------------------------------------------------------
 
 These steps require that you run a graphical application in Windows.
 Windows 7 was used for these instructions, but it shouldn't matter
 which version of Windows you use.
 
-The first step of the process is to download the EMGD 1.5 Gold Driver.
+The first step of the process is to download the EMGD 1.6 Gold Driver.
 Here is the current link to the URL which it can be downloaded from:
 
 http://edc.intel.com/Software/Downloads/EMGD/
@@ -97,14 +149,14 @@ Operating System: MeeGo 1.0 IVI Linux (kernel 2.6.33.3, X.server 1.8.0)
 
 That will give you a large zip file:
 
-IEMGD_1_5_GOLD_ALL_1742.zip
+IEMGD_1_6_GOLD_1922.zip
 
 Extract the files in the zip file, which will in turn give you a large
 .exe file:
 
-IEMGD_1_5_GOLD_ALL_1742.exe
+IEMGD_1_6_GOLD_ALL_1922.exe
 
-Run IEMGD_1_5_GOLD_ALL_1742.exe to install, accept licenses, etc.
+Run IEMGD_1_6_GOLD_ALL_1922.exe to install, accept licenses, etc.
 
 If it says to install watcom, follow the instructions to do that.
 
@@ -157,32 +209,39 @@ system, and uncompress/untar it:
 
 $ tar cvfz IEMGD_HEAD_Linux.tgz
 
-Finally, copy Xorg-xserver binaries in the Meego1.0 driver directory
-to the xserver-xf86-emgd-bin directory in the meta-crownbay layer:
+The binaries are contained in an rpm file; you can extract the
+binaries from the rpm file using rpm2cpio and cpio:
+
+$ cd IEMGD_HEAD_Linux/MeeGo1.2
+$ rpm2cpio emgd-bin-1922-1.6.i586.rpm > emgd-bin-1922-1.6.i586.cpio
+$ mkdir extracted; cd extracted
+$ cpio -idv < ../poky-image-minimal-initramfs-emenlow.cpio
+
+Finally, you can copy the xorg-xserver binaries to the
+emgd-driver-bin-1.6 directory in the meta-crownbay layer:
 
-$ cp IEMGD_HEAD_Linux/MeeGo1.0/driver/Xorg-xserver-1.7.99/* meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd-bin
+$ cp -a usr/lib meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin-1.6
 
 You also need to copy the IEMGD License.txt file to the same directory:
 
-$ cp IEMGD_HEAD_Linux/License/License.txt meta-crownbay/recipes/xorg-xserver/xserver-xf86-emgd-bin
+$ cp IEMGD_HEAD_Linux/License/License.txt meta-crownbay/recipes/xorg-xserver/emgd-driver-bin-1.6
 
 At this point, you should be able to build meta-crownbay images as usual.
 
 ----
 
 For reference, the EMGD Driver documentation is also available at the
-above link (it's also part of the installation).
+above link.
 
 The specific text of the document is:
 
 User Guide: Intel® Embedded Media and Graphics Driver, EFI Video
-Driver, EPOG, and Video BIOS v1.5 for Windows* XP and Linux* Provides
+Driver, EPOG, and Video BIOS v1.6 for Windows* XP and Linux* Provides
 installation requirements/procedures & describes the vbios/firmware,
 configuration options, & functionality of Intel® EMGD under Windows* &
 Linux*. Refer to guide for details.
 
-File Type/Size: PDF 3,340KB
-Version: 008 : October 2010
+April 2011
 
 
 II. Booting the images in /binary
-- 
1.7.0.4



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

* Re: [PATCH 2/6] meta-intel: add xserver-xf86-dri-lite_1.9.3 to common
  2011-06-01 19:55 ` [PATCH 2/6] meta-intel: add xserver-xf86-dri-lite_1.9.3 to common tom.zanussi
@ 2011-06-01 20:21   ` Darren Hart
  0 siblings, 0 replies; 11+ messages in thread
From: Darren Hart @ 2011-06-01 20:21 UTC (permalink / raw)
  To: tom.zanussi; +Cc: yocto

Hi Tom,

A quick glance suggests most of these patches need the upstream status
fields added to them.

http://wiki.yoctoproject.org/wiki/Best_Known_Methods_%28BKMs%29_for_Package_Updating#Patch_Comments

Per Saul's email to the poky list on 04/05/2011 "Patch Comments and
Upstream-Status"

--
Darren

On 06/01/2011 12:55 PM, tom.zanussi@intel.com wrote:
> From: Tom Zanussi <tom.zanussi@intel.com>
> 
> emgd 1.6 requires xserver 1.9.3, which is no longer in meta, and it
> needs to be shared by multiple BSPs, so add it to common.
> 
> Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
> ---
>  .../cache-xkbcomp-output-for-fast-start-up.patch   |  358 ++++++++++++++++++++
>  .../xserver-xf86-dri-lite/crosscompile.patch       |   20 ++
>  .../xserver-xf86-dri-lite/doublefix.patch          |   13 +
>  .../xserver-xf86-dri-lite/drmfix.patch             |   13 +
>  .../xserver-xf86-dri-lite/fix_macros.patch         |   21 ++
>  .../xserver-xf86-dri-lite/fix_macros1.patch        |   22 ++
>  .../fix_open_max_preprocessor_error.patch          |   13 +
>  .../libdri-xinerama-symbol.patch                   |   50 +++
>  .../xserver-xf86-dri-lite/macro_tweak.patch        |   28 ++
>  .../xserver-xf86-dri-lite/nodolt.patch             |   12 +
>  .../xorg-server-disable-dri_sarea.patch            |   12 +
>  .../xorg-server-enable-dri2.patch                  |   23 ++
>  .../xserver-1.5.0-bg-none-root.patch               |  156 +++++++++
>  .../xserver-DRI2Swapbuffer.patch                   |  179 ++++++++++
>  .../xserver-xf86-dri-lite/xserver-boottime.patch   |   38 ++
>  .../xserver-xf86-dri-lite/xserver-no-root-2.patch  |  105 ++++++
>  .../xorg-xserver/xserver-xf86-dri-lite_1.9.3.bb    |   19 +
>  17 files changed, 1082 insertions(+), 0 deletions(-)
>  create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch
>  create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch
>  create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch
>  create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch
>  create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch
>  create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch
>  create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch
>  create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch
>  create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/macro_tweak.patch
>  create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/nodolt.patch
>  create mode 100755 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch
>  create mode 100755 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch
>  create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch
>  create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch
>  create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch
>  create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch
>  create mode 100644 common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_1.9.3.bb
> 
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch
> new file mode 100644
> index 0000000..b121bba
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch
> @@ -0,0 +1,358 @@
> +From 0f70ba9d3412b17ac4e08e33e1be3c226c06ea54 Mon Sep 17 00:00:00 2001
> +From: Yan Li <yan.i.li@intel.com>
> +Date: Tue, 12 May 2009 17:49:07 +0800
> +Subject: [PATCH] XKB: cache xkbcomp output for fast start-up v5 for 1.6.1
> +Organization: Intel
> +
> +xkbcomp outputs will be cached in files with hashed keymap as
> +names. This saves boot time for around 1s on commodity netbooks.
> +
> +Signed-off-by: Yan Li <yan.i.li@intel.com>
> +---
> + configure.ac        |    6 +-
> + xkb/README.compiled |    8 +-
> + xkb/ddxLoad.c       |  192 +++++++++++++++++++++++++++++++++++++++++---------
> + 3 files changed, 164 insertions(+), 42 deletions(-)
> +
> +diff --git a/configure.ac b/configure.ac
> +index 4c4c797..7a5020a 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -476,9 +476,9 @@ AC_ARG_WITH(default-font-path, AS_HELP_STRING([--with-default-font-path=PATH], [
> + AC_ARG_WITH(xkb-path,         AS_HELP_STRING([--with-xkb-path=PATH], [Path to XKB base dir (default: ${datadir}/X11/xkb)]),
> + 				[ XKBPATH="$withval" ],
> + 				[ XKBPATH="${datadir}/X11/xkb" ])
> +-AC_ARG_WITH(xkb-output,       AS_HELP_STRING([--with-xkb-output=PATH], [Path to XKB output dir (default: ${datadir}/X11/xkb/compiled)]),
> ++AC_ARG_WITH(xkb-output,       AS_HELP_STRING([--with-xkb-output=PATH], [Path to XKB output dir (default: ${localstatedir}/cache/xkb)]),
> + 				[ XKBOUTPUT="$withval" ],
> +-				[ XKBOUTPUT="compiled" ])
> ++				[ XKBOUTPUT="${localstatedir}/cache/xkb" ])
> + AC_ARG_WITH(serverconfig-path, AS_HELP_STRING([--with-serverconfig-path=PATH],
> + 				   [Directory where ancillary server config files are installed (default: ${libdir}/xorg)]),
> + 				[ SERVERCONFIG="$withval" ],
> +@@ -1757,7 +1757,7 @@ AC_DEFINE_DIR(XKB_BIN_DIRECTORY, bindir, [Path to XKB bin dir])
> + XKBOUTPUT_FIRSTCHAR=`echo $XKBOUTPUT | cut -b 1`
> + 
> + if [[ x$XKBOUTPUT_FIRSTCHAR != x/ ]] ; then
> +-   XKBOUTPUT="$XKB_BASE_DIRECTORY/$XKBOUTPUT"
> ++   AC_MSG_ERROR([xkb-output must be an absolute path.])
> + fi
> + 
> + # XKM_OUTPUT_DIR (used in code) must end in / or file names get hosed
> +diff --git a/xkb/README.compiled b/xkb/README.compiled
> +index 71caa2f..a4a2ae0 100644
> +--- a/xkb/README.compiled
> ++++ b/xkb/README.compiled
> +@@ -4,10 +4,10 @@ current keymap and/or any scratch keymaps used by clients.  The X server
> + or some other tool might destroy or replace the files in this directory,
> + so it is not a safe place to store compiled keymaps for long periods of
> + time.  The default keymap for any server is usually stored in:
> +-     X<num>-default.xkm
> +-where <num> is the display number of the server in question, which makes
> +-it possible for several servers *on the same host* to share the same 
> +-directory.
> ++     server-<SHA1>.xkm
> ++
> ++where <SHA1> is the SHA1 hash of keymap source, so that compiled
> ++keymap of different keymap sources are stored in different files.
> + 
> + Unless the X server is modified, sharing this directory between servers on
> + different hosts could cause problems.
> +diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c
> +index 4d5dfb6..60a68af 100644
> +--- a/xkb/ddxLoad.c
> ++++ b/xkb/ddxLoad.c
> +@@ -32,6 +32,12 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
> + #include <xkb-config.h>
> + #endif
> + 
> ++#ifdef HAVE_SHA1_IN_LIBMD /* Use libmd for SHA1 */
> ++# include <sha1.h>
> ++#else /* Use OpenSSL's libcrypto */
> ++# include <stddef.h>  /* buggy openssl/sha.h wants size_t */
> ++# include <openssl/sha.h>
> ++#endif
> + #include <stdio.h>
> + #include <ctype.h>
> + #define	NEED_EVENTS 1
> +@@ -46,24 +52,13 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
> + #define	XKBSRV_NEED_FILE_FUNCS
> + #include <xkbsrv.h>
> + #include <X11/extensions/XI.h>
> ++#include <errno.h>
> + #include "xkb.h"
> + 
> + #if defined(CSRG_BASED) || defined(linux) || defined(__GNU__)
> + #include <paths.h>
> + #endif
> + 
> +-	/*
> +-	 * If XKM_OUTPUT_DIR specifies a path without a leading slash, it is
> +-	 * relative to the top-level XKB configuration directory.
> +-	 * Making the server write to a subdirectory of that directory
> +-	 * requires some work in the general case (install procedure
> +-	 * has to create links to /var or somesuch on many machines),
> +-	 * so we just compile into /usr/tmp for now.
> +-	 */
> +-#ifndef XKM_OUTPUT_DIR
> +-#define	XKM_OUTPUT_DIR	"compiled/"
> +-#endif
> +-
> + #define	PRE_ERROR_MSG "\"The XKEYBOARD keymap compiler (xkbcomp) reports:\""
> + #define	ERROR_PREFIX	"\"> \""
> + #define	POST_ERROR_MSG1 "\"Errors from xkbcomp are not fatal to the X server\""
> +@@ -179,6 +174,45 @@ OutputDirectory(
> + }
> + 
> + static Bool    	
> ++Sha1Asc(char sha1Asc[SHA_DIGEST_LENGTH*2+1], const char * input)
> ++{
> ++    int i;
> ++    unsigned char sha1[SHA_DIGEST_LENGTH];
> ++
> ++#ifdef HAVE_SHA1_IN_LIBMD /* Use libmd for SHA1 */
> ++    SHA1_CTX ctx;
> ++
> ++    SHA1Init (&ctx);
> ++    SHA1Update (&ctx, input, strlen(input));
> ++    SHA1Final (sha1, &ctx);
> ++#else /* Use OpenSSL's libcrypto */
> ++    SHA_CTX ctx;
> ++    int success;
> ++
> ++    success = SHA1_Init (&ctx);
> ++    if (! success)
> ++	return BadAlloc;
> ++
> ++    success = SHA1_Update (&ctx, input, strlen(input));
> ++    if (! success)
> ++	return BadAlloc;
> ++
> ++    success = SHA1_Final (sha1, &ctx);
> ++    if (! success)
> ++	return BadAlloc;
> ++#endif
> ++
> ++    /* convert sha1 to sha1_asc */
> ++    for(i=0; i<SHA_DIGEST_LENGTH; ++i) {
> ++        sprintf(sha1Asc+i*2, "%02X", sha1[i]);
> ++    }
> ++
> ++    return Success;
> ++}
> ++
> ++/* call xkbcomp and compile XKB keymap, return xkm file name in
> ++   nameRtrn */
> ++static Bool
> + XkbDDXCompileKeymapByNames(	XkbDescPtr		xkb,
> + 				XkbComponentNamesPtr	names,
> + 				unsigned		want,
> +@@ -187,7 +221,11 @@ XkbDDXCompileKeymapByNames(	XkbDescPtr		xkb,
> + 				int			nameRtrnLen)
> + {
> +     FILE *	out;
> +-    char	*buf = NULL, keymap[PATH_MAX], xkm_output_dir[PATH_MAX];
> ++    char *	buf = NULL, xkmfile[PATH_MAX], xkm_output_dir[PATH_MAX];
> ++    char *	tmpXkmFile = NULL;
> ++    char *	canonicalXkmFileName = NULL;
> ++    char	sha1Asc[SHA_DIGEST_LENGTH*2+1], xkbKeyMapBuf[100*1024];
> ++    int	ret, result;
> + 
> +     const char	*emptystring = "";
> +     const char	*xkbbasedirflag = emptystring;
> +@@ -198,16 +236,70 @@ XkbDDXCompileKeymapByNames(	XkbDescPtr		xkb,
> +     /* WIN32 has no popen. The input must be stored in a file which is
> +        used as input for xkbcomp. xkbcomp does not read from stdin. */
> +     char tmpname[PATH_MAX];
> +-    const char *xkmfile = tmpname;
> ++    const char *xkbfile = tmpname;
> + #else
> +-    const char *xkmfile = "-";
> ++    const char *xkbfile = "-";
> + #endif
> + 
> +-    snprintf(keymap, sizeof(keymap), "server-%s", display);
> ++    /* Write keymap source (xkbfile) to memory buffer `xkbKeyMapBuf',
> ++       of which SHA1 is generated and used as result xkm file name  */
> ++    memset(xkbKeyMapBuf, 0, sizeof(xkbKeyMapBuf));
> ++    out = fmemopen(xkbKeyMapBuf, sizeof(xkbKeyMapBuf), "w");
> ++    if (NULL == out) {
> ++        ErrorF("[xkb] Open xkbKeyMapBuf for writing failed\n");
> ++        return False;
> ++    }
> ++    ret = XkbWriteXKBKeymapForNames(out, names, xkb, want, need);
> ++    if (fclose(out) !=0)
> ++    {
> ++        ErrorF("[xkb] XkbWriteXKBKeymapForNames error, perhaps xkbKeyMapBuf is too small\n");
> ++        return False;
> ++    }
> ++#ifdef DEBUG
> ++    if (xkbDebugFlags) {
> ++       ErrorF("[xkb] XkbDDXCompileKeymapByNames compiling keymap:\n");
> ++       fputs(xkbKeyMapBuf, stderr);
> ++    }
> ++#endif
> ++    if (!ret) {
> ++        ErrorF("[xkb] Generating XKB Keymap failed, giving up compiling keymap\n");
> ++        return False;
> ++    }
> ++
> ++    DebugF("[xkb] computing SHA1 of keymap\n");
> ++    if (Success == Sha1Asc(sha1Asc, xkbKeyMapBuf)) {
> ++        snprintf(xkmfile, sizeof(xkmfile), "server-%s", sha1Asc);
> ++    }
> ++    else {
> ++        ErrorF("[xkb] Computing SHA1 of keymap failed, "
> ++               "using display name instead as xkm file name\n");
> ++        snprintf(xkmfile, sizeof(xkmfile), "server-%s", display);
> ++    }
> + 
> +-    XkbEnsureSafeMapName(keymap);
> ++    XkbEnsureSafeMapName(xkmfile);
> +     OutputDirectory(xkm_output_dir, sizeof(xkm_output_dir));
> + 
> ++    /* set nameRtrn, fail if it's too small */
> ++    if ((strlen(xkmfile)+1 > nameRtrnLen) && nameRtrn) {
> ++        ErrorF("[xkb] nameRtrn too small to hold xkmfile name\n");
> ++        return False;
> ++    }
> ++    strncpy(nameRtrn, xkmfile, nameRtrnLen);
> ++
> ++    /* if the xkm file already exists, reuse it */
> ++    canonicalXkmFileName = Xprintf("%s%s.xkm", xkm_output_dir, xkmfile);
> ++    if (access(canonicalXkmFileName, R_OK) == 0) {
> ++        /* yes, we can reuse the old xkm file */
> ++        LogMessage(X_INFO, "XKB: reuse xkmfile %s\n", canonicalXkmFileName);
> ++        result = True;
> ++        goto _ret;
> ++    }
> ++    LogMessage(X_INFO, "XKB: generating xkmfile %s\n", canonicalXkmFileName);
> ++
> ++    /* continue to call xkbcomp to compile the keymap. to avoid race
> ++       condition, we compile it to a tmpfile then rename it to
> ++       xkmfile */
> ++
> + #ifdef WIN32
> +     strcpy(tmpname, Win32TempDir());
> +     strcat(tmpname, "\\xkb_XXXXXX");
> +@@ -230,19 +322,30 @@ XkbDDXCompileKeymapByNames(	XkbDescPtr		xkb,
> + 	}
> +     }
> + 
> ++    if ( (tmpXkmFile = tempnam(xkm_output_dir, NULL)) == NULL ) {
> ++        ErrorF("[xkb] Can't generate temp xkm file name");
> ++        result = False;
> ++        goto _ret;
> ++    }
> ++
> +     buf = Xprintf("\"%s%sxkbcomp\" -w %d %s -xkm \"%s\" "
> +-		  "-em1 %s -emp %s -eml %s \"%s%s.xkm\"",
> ++		  "-em1 %s -emp %s -eml %s \"%s\"",
> + 		  xkbbindir, xkbbindirsep,
> + 		  ( (xkbDebugFlags < 2) ? 1 :
> + 		    ((xkbDebugFlags > 10) ? 10 : (int)xkbDebugFlags) ),
> +-		  xkbbasedirflag, xkmfile,
> ++		  xkbbasedirflag, xkbfile,
> + 		  PRE_ERROR_MSG, ERROR_PREFIX, POST_ERROR_MSG1,
> +-		  xkm_output_dir, keymap);
> ++		  tmpXkmFile);
> + 
> +     if (xkbbasedirflag != emptystring) {
> + 	xfree(xkbbasedirflag);
> +     }
> +     
> ++    /* there's a potential race condition between calling tempnam()
> ++       and invoking xkbcomp to write the result file (potential temp
> ++       file name conflicts), but since xkbcomp is a standalone
> ++       program, we have to live with this */
> ++
> + #ifndef WIN32
> +     out= Popen(buf,"w");
> + #else
> +@@ -250,31 +353,43 @@ XkbDDXCompileKeymapByNames(	XkbDescPtr		xkb,
> + #endif
> +     
> +     if (out!=NULL) {
> +-#ifdef DEBUG
> +-    if (xkbDebugFlags) {
> +-       ErrorF("[xkb] XkbDDXCompileKeymapByNames compiling keymap:\n");
> +-       XkbWriteXKBKeymapForNames(stderr,names,xkb,want,need);
> ++        /* write XKBKeyMapBuf to xkbcomp */
> ++        if (EOF==fputs(xkbKeyMapBuf, out))
> ++        {
> ++            ErrorF("[xkb] Sending keymap to xkbcomp failed\n");
> ++            result = False;
> ++            goto _ret;
> +     }
> +-#endif
> +-	XkbWriteXKBKeymapForNames(out,names,xkb,want,need);
> + #ifndef WIN32
> + 	if (Pclose(out)==0)
> + #else
> + 	if (fclose(out)==0 && System(buf) >= 0)
> + #endif
> + 	{
> ++        /* xkbcomp success */
> +             if (xkbDebugFlags)
> +                 DebugF("[xkb] xkb executes: %s\n",buf);
> +-	    if (nameRtrn) {
> +-		strncpy(nameRtrn,keymap,nameRtrnLen);
> +-		nameRtrn[nameRtrnLen-1]= '\0';
> ++
> ++            /* if canonicalXkmFileName already exists now, we simply
> ++               overwrite it, this is OK */
> ++            ret = rename(tmpXkmFile, canonicalXkmFileName);
> ++            if (0 != ret) {
> ++                ErrorF("[xkb] Can't rename %s to %s, error: %s\n",
> ++                       tmpXkmFile, canonicalXkmFileName,
> ++                       strerror(errno));
> ++
> ++                /* in case of error, don't unlink tmpXkmFile, leave it
> ++                   for debugging */
> ++
> ++                result = False;
> ++                goto _ret;
> + 	    }
> +-            if (buf != NULL)
> +-                xfree (buf);
> +-	    return True;
> ++
> ++            result = True;
> ++            goto _ret;
> + 	}
> + 	else
> +-	    LogMessage(X_ERROR, "Error compiling keymap (%s)\n", keymap);
> ++           LogMessage(X_ERROR, "Error compiling keymap (%s)\n", xkbfile);
> + #ifdef WIN32
> +         /* remove the temporary file */
> +         unlink(tmpname);
> +@@ -289,9 +404,17 @@ XkbDDXCompileKeymapByNames(	XkbDescPtr		xkb,
> +     }
> +     if (nameRtrn)
> + 	nameRtrn[0]= '\0';
> ++    result = False;
> ++
> ++_ret:
> ++    if (tmpXkmFile)
> ++        free(tmpXkmFile);
> ++    if (canonicalXkmFileName)
> ++        xfree(canonicalXkmFileName);
> +     if (buf != NULL)
> +         xfree (buf);
> +-    return False;
> ++
> ++    return result;
> + }
> + 
> + static FILE *
> +@@ -375,7 +498,6 @@ unsigned	missing;
> + 	DebugF("Loaded XKB keymap %s, defined=0x%x\n",fileName,(*xkbRtrn)->defined);
> +     }
> +     fclose(file);
> +-    (void) unlink (fileName);
> +     return (need|want)&(~missing);
> + }
> + 
> +-- 
> +1.5.6.5
> +
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch
> new file mode 100644
> index 0000000..8b82de2
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch
> @@ -0,0 +1,20 @@
> +diff --git a/configure.ac b/configure.ac
> +index b3b752c..600500b 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -523,13 +523,9 @@ dnl Uses --default-font-path if set, otherwise checks for /etc/X11/fontpath.d,
> + dnl otherwise uses standard subdirectories of FONTROOTDIR. When cross
> + dnl compiling, assume default font path uses standard FONTROOTDIR directories.
> + DEFAULT_FONT_PATH="${FONTMISCDIR}/,${FONTTTFDIR}/,${FONTOTFDIR}/,${FONTTYPE1DIR}/,${FONT100DPIDIR}/,${FONT75DPIDIR}/"
> +-if test "$cross_compiling" != yes; then
> +-	AC_CHECK_FILE([${sysconfdir}/X11/fontpath.d],
> +-		[DEFAULT_FONT_PATH='catalogue:${sysconfdir}/X11/fontpath.d'],
> +-		[case $host_os in
> ++		case $host_os in
> + 			darwin*) DEFAULT_FONT_PATH="${DEFAULT_FONT_PATH},/Library/Fonts,/System/Library/Fonts" ;;
> +-		esac])
> +-fi
> ++		esac
> + AC_ARG_WITH(default-font-path, AS_HELP_STRING([--with-default-font-path=PATH], [Comma separated list of font dirs]),
> + 				[ FONTPATH="$withval" ],
> + 				[ FONTPATH="${DEFAULT_FONT_PATH}" ])
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch
> new file mode 100644
> index 0000000..092a712
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch
> @@ -0,0 +1,13 @@
> +Index: xorg-server-1.6.0/hw/xfree86/common/Makefile.am
> +===================================================================
> +--- xorg-server-1.6.0.orig/hw/xfree86/common/Makefile.am	2010-02-01 14:04:53.247789918 +0000
> ++++ xorg-server-1.6.0/hw/xfree86/common/Makefile.am	2010-02-01 14:05:27.787817002 +0000
> +@@ -46,7 +46,7 @@
> + sdk_HEADERS = compiler.h fourcc.h xf86.h xf86Module.h xf86Opt.h \
> +               xf86PciInfo.h xf86Priv.h xf86Privstr.h xf86Resources.h \
> +               xf86cmap.h xf86fbman.h xf86str.h xf86RAC.h xf86Xinput.h xisb.h \
> +-              $(XVSDKINCS) xorgVersion.h \
> ++              xorgVersion.h \
> +               xf86sbusBus.h xf86xv.h xf86xvmc.h xf86xvpriv.h
> + 
> + DISTCLEANFILES = xf86Build.h
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch
> new file mode 100644
> index 0000000..a62a767
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch
> @@ -0,0 +1,13 @@
> +Index: xorg-server-1.4/hw/xfree86/os-support/linux/Makefile.am
> +===================================================================
> +--- xorg-server-1.4.orig/hw/xfree86/os-support/linux/Makefile.am	2007-08-23 21:04:53.000000000 +0200
> ++++ xorg-server-1.4/hw/xfree86/os-support/linux/Makefile.am	2008-03-13 18:27:23.000000000 +0100
> +@@ -41,7 +41,7 @@
> + 
> + AM_CFLAGS = -DUSESTDRES -DHAVE_SYSV_IPC $(DIX_CFLAGS) $(XORG_CFLAGS) $(PLATFORM_DEFINES)
> + 
> +-INCLUDES = $(XORG_INCS) $(PLATFORM_INCLUDES) -I/usr/include/drm # FIXME this last part is crack
> ++INCLUDES = $(XORG_INCS) $(PLATFORM_INCLUDES) $(LIBDRM_CFLAGS)
> + 
> + # FIXME: These need to be added to the build
> + LNX_EXTRA_SRCS = \
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch
> new file mode 100644
> index 0000000..eed491b
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch
> @@ -0,0 +1,21 @@
> +We need to insert the sysroot path into compiler commandlines for this
> +kind of variable use, otherwise we're looking into /usr/include/.
> +
> +RP - 26/11/09
> +
> +Index: git/xorg-server.m4
> +===================================================================
> +--- git.orig/xorg-server.m4	2009-11-10 12:04:34.000000000 +0000
> ++++ git/xorg-server.m4	2009-11-27 00:05:02.000000000 +0000
> +@@ -28,9 +28,10 @@
> + # Checks for the $1 define in xorg-server.h (from the sdk).  If it
> + # is defined, then add $1 to $REQUIRED_MODULES.
> + 
> ++m4_pattern_allow([^PKG_CONFIG_SYSROOT_DIR$])
> + AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
> + 	SAVE_CFLAGS="$CFLAGS"
> +-	CFLAGS="$CFLAGS -I`pkg-config --variable=sdkdir xorg-server`"
> ++	CFLAGS="$CFLAGS -I$PKG_CONFIG_SYSROOT_DIR`pkg-config --variable=sdkdir xorg-server`"
> + 	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
> + #include "xorg-server.h"
> + #if !defined $1
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch
> new file mode 100644
> index 0000000..94852f0
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch
> @@ -0,0 +1,22 @@
> +We need to insert the sysroot path into compiler commandlines for this
> +kind of variable use, otherwise we're looking into /usr/include/.
> +
> +RP - 26/11/09
> +
> +Index: git/xorg-server.m4
> +===================================================================
> +--- git.orig/xorg-server.m4	2010-02-05 10:00:55.000000000 +0000
> ++++ git/xorg-server.m4	2010-02-05 10:02:12.000000000 +0000
> +@@ -28,10 +28,11 @@
> + # Checks for the $1 define in xorg-server.h (from the sdk).  If it
> + # is defined, then add $1 to $REQUIRED_MODULES.
> + 
> ++m4_pattern_allow([^PKG_CONFIG_SYSROOT_DIR$])
> + AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
> + 	AC_REQUIRE([PKG_PROG_PKG_CONFIG])
> + 	SAVE_CFLAGS="$CFLAGS"
> +-	CFLAGS="$CFLAGS -I`$PKG_CONFIG --variable=sdkdir xorg-server`"
> ++	CFLAGS="$CFLAGS -I$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=sdkdir xorg-server`"
> + 	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
> + #include "xorg-server.h"
> + #if !defined $1
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch
> new file mode 100644
> index 0000000..565832e
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch
> @@ -0,0 +1,13 @@
> +Index: git/os/osdep.h
> +===================================================================
> +--- git.orig/os/osdep.h	2008-10-07 18:38:21.000000000 +0100
> ++++ git/os/osdep.h	2008-10-07 18:39:36.000000000 +0100
> +@@ -92,7 +92,7 @@
> +  * like sysconf(_SC_OPEN_MAX) is not supported.
> +  */
> + 
> +-#if OPEN_MAX <= 256
> ++#if 0
> + #define MAXSOCKS (OPEN_MAX - 1)
> + #else
> + #define MAXSOCKS 256
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch
> new file mode 100644
> index 0000000..db29da9
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch
> @@ -0,0 +1,50 @@
> +Index: xorg-server-1.5.0/hw/xfree86/dri/dri.c
> +===================================================================
> +--- xorg-server-1.5.0.orig/hw/xfree86/dri/dri.c	2008-09-24 17:43:04.000000000 +0100
> ++++ xorg-server-1.5.0/hw/xfree86/dri/dri.c	2008-09-24 17:46:38.000000000 +0100
> +@@ -73,10 +73,6 @@
> + 
> + #define PCI_BUS_NO_DOMAIN(bus) ((bus) & 0xffu)
> + 
> +-#if !defined(PANORAMIX)
> +-extern Bool noPanoramiXExtension;
> +-#endif
> +-
> + static int DRIEntPrivIndex = -1;
> + static DevPrivateKey DRIScreenPrivKey = &DRIScreenPrivKey;
> + static DevPrivateKey DRIWindowPrivKey = &DRIWindowPrivKey;
> +@@ -307,7 +303,6 @@
> +     drm_context_t *       reserved;
> +     int                 reserved_count;
> +     int                 i;
> +-    Bool                xineramaInCore = FALSE;
> +     DRIEntPrivPtr       pDRIEntPriv;
> +     ScrnInfoPtr         pScrn = xf86Screens[pScreen->myNum];
> +     DRIContextFlags	flags    = 0;
> +@@ -320,20 +315,13 @@
> + 	return FALSE;
> +     }
> + 
> +-    /*
> +-     * If Xinerama is on, don't allow DRI to initialise.  It won't be usable
> +-     * anyway.
> +-     */
> +-    if (xf86LoaderCheckSymbol("noPanoramiXExtension"))
> +-	xineramaInCore = TRUE;
> +-
> +-    if (xineramaInCore) {
> +-	if (!noPanoramiXExtension) {
> +-	    DRIDrvMsg(pScreen->myNum, X_WARNING,
> +-		"Direct rendering is not supported when Xinerama is enabled\n");
> +-	    return FALSE;
> +-	}
> ++#if defined(PANORAMIX)
> ++    if (!noPanoramiXExtension) {
> ++        DRIDrvMsg(pScreen->myNum, X_WARNING,
> ++            "Direct rendering is not supported when Xinerama is enabled\n");
> ++        return FALSE;
> +     }
> ++#endif
> + 
> +     if (!DRIOpenDRMMaster(pScrn, pDRIInfo->SAREASize,
> + 			  pDRIInfo->busIdString,
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/macro_tweak.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/macro_tweak.patch
> new file mode 100644
> index 0000000..cd408c7
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/macro_tweak.patch
> @@ -0,0 +1,28 @@
> +This is the revised version of files/macro_tweak.patch for
> +xorg-server 1.8.99.904.
> +
> +the files/macro_tweak.patch can not removed now since it is used by
> +xserver-kdrive-1.7.99.2 and xserver-xf86-lite_1.7.99.2. Once they
> +are all upgraded to 1.8.99.904, the the files/macro_tweak.patch
> +can be safely replace by this patch.
> +
> +Signed-off-by: Yu Ke <ke.yu@intel.com>
> +
> +diff --git a/xorg-server.m4 b/xorg-server.m4
> +index bdecf62..040fdb8 100644
> +--- a/xorg-server.m4
> ++++ b/xorg-server.m4
> +@@ -28,10 +28,12 @@ dnl
> + # Checks for the $1 define in xorg-server.h (from the sdk).  If it
> + # is defined, then add $1 to $REQUIRED_MODULES.
> + 
> ++m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
> ++
> + AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
> + 	AC_REQUIRE([PKG_PROG_PKG_CONFIG])
> + 	SAVE_CFLAGS="$CFLAGS"
> +-	CFLAGS="$CFLAGS -I`$PKG_CONFIG --variable=sdkdir xorg-server`"
> ++	CFLAGS="$CFLAGS -I$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=sdkdir xorg-server`"
> + 	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
> + #include "xorg-server.h"
> + #if !defined $1
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/nodolt.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/nodolt.patch
> new file mode 100644
> index 0000000..6b34032
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/nodolt.patch
> @@ -0,0 +1,12 @@
> +Index: git/configure.ac
> +===================================================================
> +--- git.orig/configure.ac	2009-01-15 20:35:31.000000000 +0000
> ++++ git/configure.ac	2009-01-15 20:35:38.000000000 +0000
> +@@ -62,7 +62,6 @@
> + AC_LIBTOOL_WIN32_DLL
> + AC_DISABLE_STATIC
> + AC_PROG_LIBTOOL
> +-DOLT
> + AC_PROG_MAKE_SET
> + PKG_PROG_PKG_CONFIG
> + AC_PROG_LEX
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch
> new file mode 100755
> index 0000000..3d2fa16
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch
> @@ -0,0 +1,12 @@
> +diff -urN xorg-server-1.5.99.1/hw/xfree86/dri2/dri2.c xorg-server-1.5.99.1.new/hw/xfree86/dri2/dri2.c
> +--- xorg-server-1.5.99.1/hw/xfree86/dri2/dri2.c	2008-09-01 03:26:37.000000000 +0800
> ++++ xorg-server-1.5.99.1.new/hw/xfree86/dri2/dri2.c	2008-09-18 00:28:16.000000000 +0800
> +@@ -39,7 +39,7 @@
> + #include "scrnintstr.h"
> + #include "windowstr.h"
> + #include "dri2.h"
> +-#include <GL/internal/dri_sarea.h>
> ++//#include <GL/internal/dri_sarea.h>
> + 
> + #include "xf86.h"
> + 
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch
> new file mode 100755
> index 0000000..7ff3658
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch
> @@ -0,0 +1,23 @@
> +commit 67b9b3a77a8b86eef03af36a0f4be3a07411efee
> +Author: Eric Anholt <eric@anholt.net>
> +Date:   Thu Sep 11 16:18:17 2008 -0700
> +
> +    Enable DRI2 build.
> +
> +diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
> +index eff2c31..98d7ec8 100644
> +--- a/hw/xfree86/Makefile.am
> ++++ b/hw/xfree86/Makefile.am
> +@@ -4,9 +4,9 @@ if DRI
> + DRI_SUBDIR = dri
> + endif
> + 
> +-#if DRI2
> +-#DRI2_SUBDIR = dri2
> +-#endif
> ++if DRI2
> ++DRI2_SUBDIR = dri2
> ++endif
> + 
> + if XF86UTILS
> + XF86UTILS_SUBDIR = utils
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch
> new file mode 100644
> index 0000000..ef53689
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch
> @@ -0,0 +1,156 @@
> +From a3e15680da24cb8259f6a83dee0c930dab024290 Mon Sep 17 00:00:00 2001
> +From: Kristian <krh@redhat.com>
> +Date: Fri, 15 Aug 2008 15:15:14 +1000
> +Subject: [PATCH] Add nr for background=none root
> +
> +---
> + dix/globals.c                |    1 +
> + dix/window.c                 |   22 ++++++++++++----------
> + hw/xfree86/common/xf86Init.c |   11 +++++++++++
> + hw/xfree86/common/xf86str.h  |    5 ++++-
> + include/opaque.h             |    1 +
> + os/utils.c                   |    3 +++
> + 6 files changed, 32 insertions(+), 11 deletions(-)
> +
> +diff --git a/dix/globals.c b/dix/globals.c
> +index 973dc43..dbd76bb 100644
> +--- a/dix/globals.c
> ++++ b/dix/globals.c
> +@@ -141,6 +141,7 @@ FontPtr defaultFont;   /* not declared in dix.h to avoid including font.h in
> + CursorPtr rootCursor;
> + Bool party_like_its_1989 = FALSE;
> + Bool whiteRoot = FALSE;
> ++Bool bgNoneRoot = FALSE;
> + 
> + int cursorScreenDevPriv[MAXSCREENS];
> + 
> +diff --git a/dix/window.c b/dix/window.c
> +index c31fa87..8bb178d 100644
> +--- a/dix/window.c
> ++++ b/dix/window.c
> +@@ -482,23 +482,24 @@ InitRootWindow(WindowPtr pWin)
> +     pWin->cursorIsNone = FALSE;
> +     pWin->optional->cursor = rootCursor;
> +     rootCursor->refcnt++;
> +-
> ++    pWin->backingStore = defaultBackingStore;
> ++    pWin->forcedBS = (defaultBackingStore != NotUseful);
> + 
> +     if (party_like_its_1989) {
> +         MakeRootTile(pWin);
> +         backFlag |= CWBackPixmap;
> ++        pScreen->ChangeWindowAttributes(pWin, backFlag);
> ++    } else if (bgNoneRoot) {
> ++	/* nothing, handled in xf86CreateRootWindow */
> +     } else {
> + 	if (whiteRoot)
> +             pWin->background.pixel = pScreen->whitePixel;
> +         else
> +             pWin->background.pixel = pScreen->blackPixel;
> +         backFlag |= CWBackPixel;
> +-    } 
> + 
> +-    pWin->backingStore = defaultBackingStore;
> +-    pWin->forcedBS = (defaultBackingStore != NotUseful);
> +-    /* We SHOULD check for an error value here XXX */
> +-    (*pScreen->ChangeWindowAttributes)(pWin, backFlag);
> ++        pScreen->ChangeWindowAttributes(pWin, backFlag);
> ++    }
> + 
> +     MapWindow(pWin, serverClient);
> + }
> +diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
> +index 236c00b..083a6ac 100644
> +--- a/hw/xfree86/common/xf86Init.c
> ++++ b/hw/xfree86/common/xf86Init.c
> +@@ -79,6 +79,7 @@
> + #ifdef RENDER
> + #include "picturestr.h"
> + #endif
> ++#include "xace.h"
> + 
> + #include "globals.h"
> + 
> +@@ -328,6 +329,7 @@ xf86CreateRootWindow(WindowPtr pWin)
> +   int ret = TRUE;
> +   int err = Success;
> +   ScreenPtr pScreen = pWin->drawable.pScreen;
> ++  ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
> +   RootWinPropPtr pProp;
> +   CreateWindowProcPtr CreateWindow = (CreateWindowProcPtr)
> +       dixLookupPrivate(&pScreen->devPrivates, xf86CreateRootWindowKey);
> +@@ -381,6 +383,15 @@ xf86CreateRootWindow(WindowPtr pWin)
> +     }
> +   }
> + 
> ++  if (bgNoneRoot && pScrn->canDoBGNoneRoot || 1) {
> ++      pWin->backgroundState = XaceBackgroundNoneState(pWin);
> ++      pWin->background.pixel = pScreen->whitePixel;
> ++      pScreen->ChangeWindowAttributes(pWin, CWBackPixmap | CWBorderPixel | CWCursor | CWBackingStore);
> ++  } else {
> ++      pWin->background.pixel = pScreen->blackPixel;
> ++      pScreen->ChangeWindowAttributes(pWin, CWBackPixel | CWBorderPixel | CWCursor | CWBackingStore);
> ++  }
> ++
> + #ifdef DEBUG
> +   ErrorF("xf86CreateRootWindow() returns %d\n", ret);
> + #endif
> +diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h
> +index 904c369..8c38f69 100644
> +--- a/hw/xfree86/common/xf86str.h
> ++++ b/hw/xfree86/common/xf86str.h
> +@@ -531,7 +531,7 @@ typedef struct _confdrirec {
> + } confDRIRec, *confDRIPtr;
> + 
> + /* These values should be adjusted when new fields are added to ScrnInfoRec */
> +-#define NUM_RESERVED_INTS		16
> ++#define NUM_RESERVED_INTS		15
> + #define NUM_RESERVED_POINTERS		15
> + #define NUM_RESERVED_FUNCS		11
> + 
> +@@ -959,6 +959,9 @@ typedef struct _ScrnInfoRec {
> +     ClockRangesPtr	clockRanges;
> +     int			adjustFlags;
> + 
> ++    /* -nr support */
> ++    int			canDoBGNoneRoot;
> ++
> +     /*
> +      * These can be used when the minor ABI version is incremented.
> +      * The NUM_* parameters must be reduced appropriately to keep the
> +diff --git a/include/opaque.h b/include/opaque.h
> +index 07a0715..be1577b 100644
> +--- a/include/opaque.h
> ++++ b/include/opaque.h
> +@@ -71,6 +71,7 @@ extern Bool defeatAccessControl;
> + extern long maxBigRequestSize;
> + extern Bool party_like_its_1989;
> + extern Bool whiteRoot;
> ++extern Bool bgNoneRoot;
> + 
> + extern Bool CoreDump;
> + 
> +diff --git a/os/utils.c b/os/utils.c
> +index b100949..c41b45b 100644
> +--- a/os/utils.c
> ++++ b/os/utils.c
> +@@ -515,6 +515,7 @@ void UseMsg(void)
> + #endif
> +     ErrorF("-nolisten string       don't listen on protocol\n");
> +     ErrorF("-noreset               don't reset after last client exists\n");
> ++    ErrorF("-nr                    create root window with no background\n");
> +     ErrorF("-reset                 reset after last client exists\n");
> +     ErrorF("-p #                   screen-saver pattern duration (minutes)\n");
> +     ErrorF("-pn                    accept failure to listen on all ports\n");
> +@@ -859,6 +860,8 @@ ProcessCommandLine(int argc, char *argv[])
> + 	    defaultBackingStore = WhenMapped;
> +         else if ( strcmp( argv[i], "-wr") == 0)
> +             whiteRoot = TRUE;
> ++        else if ( strcmp( argv[i], "-nr") == 0)
> ++            bgNoneRoot = TRUE;
> +         else if ( strcmp( argv[i], "-maxbigreqsize") == 0) {
> +              if(++i < argc) {
> +                  long reqSizeArg = atol(argv[i]);
> +-- 
> +1.5.3.4
> +
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch
> new file mode 100644
> index 0000000..2754170
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch
> @@ -0,0 +1,179 @@
> +diff --git a/glx/glxdri2.c b/glx/glxdri2.c
> +index 146ea82..3b5338b 100644
> +--- a/glx/glxdri2.c
> ++++ b/glx/glxdri2.c
> +@@ -70,6 +70,7 @@ struct __GLXDRIscreen {
> + 
> +     const __DRIcoreExtension *core;
> +     const __DRIdri2Extension *dri2;
> ++    const __DRI2flushExtension *flush;	
> +     const __DRIcopySubBufferExtension *copySubBuffer;
> +     const __DRIswapControlExtension *swapControl;
> +     const __DRItexBufferExtension *texBuffer;
> +@@ -135,10 +136,14 @@ __glXDRIdrawableCopySubBuffer(__GLXdrawable *drawable,
> + static GLboolean
> + __glXDRIdrawableSwapBuffers(__GLXdrawable *drawable)
> + {
> +-    __GLXDRIdrawable *private = (__GLXDRIdrawable *) drawable;
> ++    __GLXDRIdrawable *priv = (__GLXDRIdrawable *) drawable;
> ++    __GLXDRIscreen *screen = priv->screen;
> ++
> ++    if (!DRI2SwapBuffers(drawable->pDraw))
> ++		return FALSE;
> + 
> +-    __glXDRIdrawableCopySubBuffer(drawable, 0, 0,
> +-				  private->width, private->height);
> ++    if (screen->flush->flushInvalidate)
> ++	(*screen->flush->flushInvalidate)(priv->driDrawable);
> + 
> +     return TRUE;
> + }
> +diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
> +index 580383d..23e6467 100644
> +--- a/hw/xfree86/dri2/dri2.c
> ++++ b/hw/xfree86/dri2/dri2.c
> +@@ -70,6 +70,7 @@ typedef struct _DRI2Screen {
> +     DRI2CreateBufferProcPtr	 CreateBuffer;
> +     DRI2DestroyBufferProcPtr	 DestroyBuffer;
> +     DRI2CopyRegionProcPtr	 CopyRegion;
> ++    DRI2SwapBuffersProcPtr	 SwapBuffers;	
> + 
> +     HandleExposuresProcPtr       HandleExposures;
> + } DRI2ScreenRec, *DRI2ScreenPtr;
> +@@ -422,6 +423,49 @@ DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
> +     return Success;
> + }
> + 
> ++Bool
> ++DRI2SwapBuffers(DrawablePtr pDraw)
> ++{
> ++    DRI2ScreenPtr   ds = DRI2GetScreen(pDraw->pScreen);
> ++    DRI2DrawablePtr pPriv;
> ++    DRI2BufferPtr   pDestBuffer, pSrcBuffer;
> ++    int		    i;
> ++
> ++    pPriv = DRI2GetDrawable(pDraw);
> ++    if (pPriv == NULL)
> ++	return FALSE;
> ++
> ++    pDestBuffer = NULL;
> ++    pSrcBuffer = NULL;
> ++    for (i = 0; i < pPriv->bufferCount; i++)
> ++    {
> ++	if (pPriv->buffers[i]->attachment == DRI2BufferFrontLeft)
> ++	    pDestBuffer = (DRI2BufferPtr) pPriv->buffers[i];
> ++	if (pPriv->buffers[i]->attachment == DRI2BufferBackLeft)
> ++	    pSrcBuffer = (DRI2BufferPtr) pPriv->buffers[i];
> ++    }
> ++    if (pSrcBuffer == NULL || pDestBuffer == NULL)
> ++	return FALSE;
> ++
> ++    if (ds->SwapBuffers) {
> ++	if ((*ds->SwapBuffers)(pDraw, pDestBuffer, pSrcBuffer))
> ++	    return TRUE;
> ++    }
> ++
> ++    BoxRec box;
> ++    RegionRec region;
> ++
> ++    box.x1 = 0;
> ++    box.y1 = 0;
> ++    box.x2 = pDraw->width;
> ++    box.y2 = pDraw->height;
> ++    REGION_INIT(drawable->pDraw->pScreen, &region, &box, 0);
> ++    if (DRI2CopyRegion(pDraw, &region, DRI2BufferFrontLeft, DRI2BufferBackLeft) != Success)
> ++	return FALSE;
> ++
> ++    return TRUE;
> ++}
> ++
> + void
> + DRI2DestroyDrawable(DrawablePtr pDraw)
> + {
> +@@ -538,6 +582,9 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
> +     }
> +     ds->CopyRegion     = info->CopyRegion;
> + 
> ++    if (info->version >= 3)
> ++	ds->SwapBuffers    = info->SwapBuffers;
> ++
> +     dixSetPrivate(&pScreen->devPrivates, dri2ScreenPrivateKey, ds);
> + 
> +     xf86DrvMsg(pScreen->myNum, X_INFO, "[DRI2] Setup complete\n");
> +diff --git a/hw/xfree86/dri2/dri2.h b/hw/xfree86/dri2/dri2.h
> +index f369267..e2784dd 100644
> +--- a/hw/xfree86/dri2/dri2.h
> ++++ b/hw/xfree86/dri2/dri2.h
> +@@ -67,6 +67,10 @@ typedef void		(*DRI2CopyRegionProcPtr)(DrawablePtr pDraw,
> + 						 DRI2BufferPtr pDestBuffer,
> + 						 DRI2BufferPtr pSrcBuffer);
> + 
> ++typedef Bool		(*DRI2SwapBuffersProcPtr)(DrawablePtr pDraw,
> ++						  DRI2BufferPtr pFrontBuffer,
> ++						  DRI2BufferPtr pBackBuffer);
> ++
> + typedef void		(*DRI2WaitProcPtr)(WindowPtr pWin,
> + 					   unsigned int sequence);
> + 
> +@@ -90,6 +94,7 @@ typedef struct {
> +     DRI2CreateBuffersProcPtr	CreateBuffers;
> +     DRI2DestroyBuffersProcPtr	DestroyBuffers;
> +     DRI2CopyRegionProcPtr	CopyRegion;
> ++    DRI2SwapBuffersProcPtr	SwapBuffers;	
> +     DRI2WaitProcPtr		Wait;
> + 
> +     /**
> +@@ -153,4 +158,6 @@ extern _X_EXPORT DRI2Buffer2Ptr *DRI2GetBuffersWithFormat(DrawablePtr pDraw,
> + 	int *width, int *height, unsigned int *attachments, int count,
> + 	int *out_count);
> + 
> ++extern _X_EXPORT Bool DRI2SwapBuffers(DrawablePtr pDraw);
> ++
> + #endif
> +diff --git a/hw/xfree86/dri2/dri2ext.c b/hw/xfree86/dri2/dri2ext.c
> +index 3c06174..67b419b 100644
> +--- a/hw/xfree86/dri2/dri2ext.c
> ++++ b/hw/xfree86/dri2/dri2ext.c
> +@@ -81,7 +81,7 @@ ProcDRI2QueryVersion(ClientPtr client)
> +     rep.length = 0;
> +     rep.sequenceNumber = client->sequence;
> +     rep.majorVersion = 1;
> +-    rep.minorVersion = 1;
> ++    rep.minorVersion = 2;
> + 
> +     if (client->swapped) {
> +     	swaps(&rep.sequenceNumber, n);
> +@@ -323,6 +323,24 @@ ProcDRI2CopyRegion(ClientPtr client)
> + }
> + 
> + static int
> ++ProcDRI2SwapBuffers(ClientPtr client)
> ++{
> ++    REQUEST(xDRI2SwapBuffersReq);
> ++    DrawablePtr pDrawable;
> ++    int status;
> ++
> ++    REQUEST_SIZE_MATCH(xDRI2SwapBuffersReq);
> ++
> ++    if (!validDrawable(client, stuff->drawable, &pDrawable, &status))
> ++	return status;
> ++
> ++    if (!DRI2SwapBuffers(pDrawable))
> ++	return BadAlloc;
> ++
> ++    return client->noClientException;
> ++}
> ++
> ++static int
> + ProcDRI2Dispatch (ClientPtr client)
> + {
> +     REQUEST(xReq);
> +@@ -350,6 +368,8 @@ ProcDRI2Dispatch (ClientPtr client)
> + 	return ProcDRI2CopyRegion(client);
> +     case X_DRI2GetBuffersWithFormat:
> + 	return ProcDRI2GetBuffersWithFormat(client);
> ++    case X_DRI2SwapBuffers:
> ++	return ProcDRI2SwapBuffers(client);	
> +     default:
> + 	return BadRequest;
> +     }
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch
> new file mode 100644
> index 0000000..efc85a4
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch
> @@ -0,0 +1,38 @@
> +diff --git a/os/log.c b/os/log.c
> +index 0860847..2c46f1a 100644
> +--- a/os/log.c
> ++++ b/os/log.c
> +@@ -255,6 +255,33 @@ LogVWrite(int verb, const char *f, va_list args)
> +     static char tmpBuffer[1024];
> +     int len = 0;
> + 
> ++    struct timeval time;
> ++    time_t tv_sec;
> ++    suseconds_t tv_usec;
> ++    static Bool first = TRUE;
> ++    static time_t start_tv_sec;
> ++    static suseconds_t start_usec;
> ++    int diff_sec, diff_usec;
> ++
> ++    gettimeofday(&time, NULL);
> ++    tv_sec = time.tv_sec;
> ++    tv_usec = time.tv_usec;
> ++    if (first == TRUE) {
> ++        start_tv_sec = tv_sec;
> ++        start_usec = tv_usec;
> ++        first = FALSE;
> ++    }
> ++    diff_sec = (int)difftime(tv_sec, start_tv_sec);
> ++    diff_usec = (tv_usec - start_usec);
> ++    if (diff_usec < 0) {
> ++        diff_sec--;
> ++        diff_usec += 1000000;
> ++    }
> ++    sprintf(tmpBuffer, "[%d sec: %06d usec]", diff_sec , diff_usec);
> ++    len = strlen(tmpBuffer);
> ++    if (logFile)
> ++          fwrite(tmpBuffer, len, 1, logFile);
> ++
> +     /*
> +      * Since a va_list can only be processed once, write the string to a
> +      * buffer, and then write the buffer out to the appropriate output
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch
> new file mode 100644
> index 0000000..afc94dc
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch
> @@ -0,0 +1,105 @@
> +diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c
> +index 7f40857..cf58c01 100644
> +--- a/hw/xfree86/os-support/linux/lnx_init.c
> ++++ b/hw/xfree86/os-support/linux/lnx_init.c
> +@@ -49,6 +49,7 @@ static Bool KeepTty = FALSE;
> + static int VTnum = -1;
> + static Bool VTSwitch = TRUE;
> + static Bool ShareVTs = FALSE;
> ++Bool NoHwAccess = FALSE;
> + static int activeVT = -1;
> + 
> + static int vtPermSave[4];
> +@@ -80,9 +81,11 @@ saveVtPerms(void)
> + static void
> + restoreVtPerms(void)
> + {
> +-    /* Set the terminal permissions back to before we started. */
> +-    chown("/dev/tty0", vtPermSave[0], vtPermSave[1]);
> +-    chown(vtname, vtPermSave[2], vtPermSave[3]);
> ++    if (geteuid() == 0) {
> ++	 /* Set the terminal permissions back to before we started. */
> ++	 (void)chown("/dev/tty0", vtPermSave[0], vtPermSave[1]);
> ++	 (void)chown(vtname, vtPermSave[2], vtPermSave[3]);
> ++    }
> + }
> + 
> + static void *console_handler;
> +@@ -210,20 +213,22 @@ xf86OpenConsole(void)
> + 	        xf86Msg(X_WARNING,
> + 		        "xf86OpenConsole: Could not save ownership of VT\n");
> + 
> +-	    /* change ownership of the vt */
> +-	    if (chown(vtname, getuid(), getgid()) < 0)
> +-	        xf86Msg(X_WARNING,"xf86OpenConsole: chown %s failed: %s\n",
> +-		        vtname, strerror(errno));
> +-
> +-	    /*
> +-	     * the current VT device we're running on is not "console", we want
> +-	     * to grab all consoles too
> +-	     *
> +-	     * Why is this needed??
> +-	     */
> +-	    if (chown("/dev/tty0", getuid(), getgid()) < 0)
> +-	        xf86Msg(X_WARNING,"xf86OpenConsole: chown /dev/tty0 failed: %s\n",
> +-                    strerror(errno));
> ++	    if (geteuid() == 0) {
> ++		    /* change ownership of the vt */
> ++		    if (chown(vtname, getuid(), getgid()) < 0)
> ++			    xf86Msg(X_WARNING,"xf86OpenConsole: chown %s failed: %s\n",
> ++				    vtname, strerror(errno));
> ++
> ++		    /*
> ++		     * the current VT device we're running on is not
> ++		     * "console", we want to grab all consoles too
> ++		     *
> ++		     * Why is this needed??
> ++		     */
> ++		    if (chown("/dev/tty0", getuid(), getgid()) < 0)
> ++			    xf86Msg(X_WARNING,"xf86OpenConsole: chown /dev/tty0 failed: %s\n",
> ++				    strerror(errno));
> ++	    }
> +         }
> + 
> + 	/*
> +@@ -433,6 +438,11 @@ xf86ProcessArgument(int argc, char *argv[], int i)
> +                 ShareVTs = TRUE;
> +                 return(1);
> +         }
> ++	if (!strcmp(argv[i], "-nohwaccess"))
> ++	{
> ++		NoHwAccess = TRUE;
> ++		return(1);
> ++	}
> + 	if ((argv[i][0] == 'v') && (argv[i][1] == 't'))
> + 	{
> + 		if (sscanf(argv[i], "vt%2d", &VTnum) == 0)
> +@@ -454,5 +464,6 @@ xf86UseMsg()
> + 	ErrorF("don't detach controlling tty (for debugging only)\n");
> +         ErrorF("-novtswitch            don't immediately switch to new VT\n");
> +         ErrorF("-sharevts              share VTs with another X server\n");
> ++	ErrorF("-nohwaccess            don't access hardware ports directly\n");
> + 	return;
> + }
> +diff --git a/hw/xfree86/os-support/linux/lnx_video.c b/hw/xfree86/os-support/linux/lnx_video.c
> +index 688106a..34a845b 100644
> +--- a/hw/xfree86/os-support/linux/lnx_video.c
> ++++ b/hw/xfree86/os-support/linux/lnx_video.c
> +@@ -51,6 +51,7 @@
> + #define MAP_FAILED ((void *)-1)
> + #endif
> + 
> ++extern Bool NoHwAccess;
> + static Bool ExtendedEnabled = FALSE;
> + 
> + #ifdef __ia64__
> +@@ -509,6 +510,9 @@ xf86EnableIO(void)
> + 	int fd;
> + 	unsigned int ioBase_phys;
> + #endif
> ++	/* Fake it... */
> ++	if (NoHwAccess)
> ++		return TRUE;
> + 
> + 	if (ExtendedEnabled)
> + 		return TRUE;
> diff --git a/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_1.9.3.bb b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_1.9.3.bb
> new file mode 100644
> index 0000000..81d70bc
> --- /dev/null
> +++ b/common/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_1.9.3.bb
> @@ -0,0 +1,19 @@
> +require recipes-graphics/xorg-xserver/xserver-xf86-dri-lite.inc
> +
> +PROTO_DEPS += "xf86driproto dri2proto"
> +
> +DEPENDS += "font-util"
> +
> +PE = "1"
> +PR = "r0"
> +
> +SRC_URI += "file://nodolt.patch \
> +            file://crosscompile.patch"
> +
> +# Misc build failure for master HEAD
> +SRC_URI += "file://fix_open_max_preprocessor_error.patch"
> +
> +SRC_URI[md5sum] = "5bef6839a76d029204ab31aa2fcb5201"
> +SRC_URI[sha256sum] = "864831f51e841ff37f2445d1c85b86b559c8860a435fb496aead4f256a2b141d"
> +
> +EXTRA_OECONF += "--enable-dri --enable-dri2 --enable-dga"

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel


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

* Re: [PATCH 6/6] meta-crownbay: update README with new build instructions.
  2011-06-01 19:56 ` [PATCH 6/6] meta-crownbay: update README with new build instructions tom.zanussi
@ 2011-06-01 20:26   ` Darren Hart
  0 siblings, 0 replies; 11+ messages in thread
From: Darren Hart @ 2011-06-01 20:26 UTC (permalink / raw)
  To: tom.zanussi; +Cc: yocto

Hi Tom,

If you haven't already, I would suggest running the README changes past
Scott R, even if you commit this first. Getting Scott involved should
help keep our documentation precise, correct from a tech writing point
of view, as well as help keep it consistent throughout the project.

--
Darren

On 06/01/2011 12:56 PM, tom.zanussi@intel.com wrote:
> From: Tom Zanussi <tom.zanussi@intel.com>
> 
> EMGD 1.6 added a new non-clickthrough Linux tarball download; this
> changes the README to make use of it and also updates new directory
> naming, etc.
> 
> Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
> ---
>  meta-crownbay/README |   95 ++++++++++++++++++++++++++++++++++++++++---------
>  1 files changed, 77 insertions(+), 18 deletions(-)
> 
> diff --git a/meta-crownbay/README b/meta-crownbay/README
> index bb1e0c3..89056ed 100644
> --- a/meta-crownbay/README
> +++ b/meta-crownbay/README
> @@ -6,7 +6,7 @@ The Crown Bay platform consists of the Intel Atom Z6xx processor,
>  plus the Intel EG20T Platform Controller Hub (Tunnel Creek + Topcliff).
>  
>  It also supports the E6xx embedded on-chip graphics via the Intel
> -Embedded Media and Graphics Driver (EMGD) 1.5 Gold Driver.
> +Embedded Media and Graphics Driver (EMGD) 1.6 Gold Driver.
>  
>  Table of Contents
>  =================
> @@ -33,7 +33,7 @@ bblayers.conf e.g.:
>  The meta-crownbay layer contains support for two different machine
>  configurations. These configurations are identical except for the fact
>  that the one prefixed with 'crownbay' makes use of the
> -Intel-proprietary EMGD 1.5 graphics driver, while the one prefixed
> +Intel-proprietary EMGD 1.6 graphics driver, while the one prefixed
>  with 'crownbay-noemgd' does not.
>  
>  If you want to enable the layer that supports EMGD graphics add
> @@ -73,19 +73,71 @@ userspace drivers when building the "crownbay" machine (but not when
>  building the "crownbay-noemgd" machine).  If you got the BSP from the
>  'BSP Downloads' section of the Yocto website, the EMGD binaries needed
>  to perform the build will already be present in the BSP, located in
> -the recipes-graphics/xorg-xserver/xserver-xf86-emgd-bin directory, and
> +the recipes-graphics/xorg-xserver/emgd-driver-bin-1.6 directory, and
>  you can ignore the rest of this section.
>  
>  If you didn't get the BSP from the 'BSP Downloads' section of the
> -Yocto website, you'll need to download the a Windows executable from
> -the official EMGD website, extract the binaries from it, and copy them
> -to the proper location in the meta-crownbay layer.
> +Yocto website, you have two choices:
> +
> +- You can download a tarball containing an rpm that contains the
> +  binaries and extract the binaries from that, and copy them to the
> +  proper location in the meta-crownbay layer.
> +
> +- You can download a Windows executable from the official EMGD
> +  website, extract the binaries from it, and copy them to the proper
> +  location in the meta-crownbay layer.
> +
> +The following subsections describe each option in detail.
> +
> +
> +IIa Downloading and extracting the binaries using the EMGD Linux tarball
> +------------------------------------------------------------------------
> +
> +The first step of the process is to download the EMGD 1.6 Gold Driver.
> +Here is the current link to the URL which it can be downloaded from:
> +
> +http://edc.intel.com/Software/Downloads/EMGD/
> +
> +In the Download Now tab, select:
> +
> +Intel® architecture-based product: Linux Tar Ball
> +Operating System: MeeGo 1.0 IVI Linux (kernel 2.6.33.3, X.server 1.8.0)
> +
> +That will give you a large tar file:
> +
> +Lin_EMGD_1_6_RC_1922.tar
> +
> +Extract the files in the tar file, which will in turn give you a
> +directory named IEMGD_HEAD_Linux.
> +
> +The binaries are contained in an rpm file; you can extract the
> +binaries from the rpm file using rpm2cpio and cpio:
> +
> +$ cd IEMGD_HEAD_Linux/MeeGo1.2
> +$ rpm2cpio emgd-bin-1922-1.6.i586.rpm > emgd-bin-1922-1.6.i586.cpio
> +$ mkdir extracted; cd extracted
> +$ cpio -idv < ../poky-image-minimal-initramfs-emenlow.cpio
> +
> +Finally, you can copy the xorg-xserver binaries to the
> +emgd-driver-bin-1.6 directory in the meta-crownbay layer:
> +
> +$ cp -a usr/lib meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin-1.6
> +
> +You also need to copy the IEMGD License.txt file to the same directory:
> +
> +$ cp IEMGD_HEAD_Linux/License/License.txt meta-crownbay/recipes/xorg-xserver/emgd-driver-bin-1.6
> +
> +At this point, you should be able to build meta-crownbay images as usual.
> +
> +
> +IIb Extracting the binaries using the graphical ced application
> +---------------------------------------------------------------
>  
>  These steps require that you run a graphical application in Windows.
>  Windows 7 was used for these instructions, but it shouldn't matter
>  which version of Windows you use.
>  
> -The first step of the process is to download the EMGD 1.5 Gold Driver.
> +The first step of the process is to download the EMGD 1.6 Gold Driver.
>  Here is the current link to the URL which it can be downloaded from:
>  
>  http://edc.intel.com/Software/Downloads/EMGD/
> @@ -97,14 +149,14 @@ Operating System: MeeGo 1.0 IVI Linux (kernel 2.6.33.3, X.server 1.8.0)
>  
>  That will give you a large zip file:
>  
> -IEMGD_1_5_GOLD_ALL_1742.zip
> +IEMGD_1_6_GOLD_1922.zip
>  
>  Extract the files in the zip file, which will in turn give you a large
>  .exe file:
>  
> -IEMGD_1_5_GOLD_ALL_1742.exe
> +IEMGD_1_6_GOLD_ALL_1922.exe
>  
> -Run IEMGD_1_5_GOLD_ALL_1742.exe to install, accept licenses, etc.
> +Run IEMGD_1_6_GOLD_ALL_1922.exe to install, accept licenses, etc.
>  
>  If it says to install watcom, follow the instructions to do that.
>  
> @@ -157,32 +209,39 @@ system, and uncompress/untar it:
>  
>  $ tar cvfz IEMGD_HEAD_Linux.tgz
>  
> -Finally, copy Xorg-xserver binaries in the Meego1.0 driver directory
> -to the xserver-xf86-emgd-bin directory in the meta-crownbay layer:
> +The binaries are contained in an rpm file; you can extract the
> +binaries from the rpm file using rpm2cpio and cpio:
> +
> +$ cd IEMGD_HEAD_Linux/MeeGo1.2
> +$ rpm2cpio emgd-bin-1922-1.6.i586.rpm > emgd-bin-1922-1.6.i586.cpio
> +$ mkdir extracted; cd extracted
> +$ cpio -idv < ../poky-image-minimal-initramfs-emenlow.cpio
> +
> +Finally, you can copy the xorg-xserver binaries to the
> +emgd-driver-bin-1.6 directory in the meta-crownbay layer:
>  
> -$ cp IEMGD_HEAD_Linux/MeeGo1.0/driver/Xorg-xserver-1.7.99/* meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-emgd-bin
> +$ cp -a usr/lib meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin-1.6
>  
>  You also need to copy the IEMGD License.txt file to the same directory:
>  
> -$ cp IEMGD_HEAD_Linux/License/License.txt meta-crownbay/recipes/xorg-xserver/xserver-xf86-emgd-bin
> +$ cp IEMGD_HEAD_Linux/License/License.txt meta-crownbay/recipes/xorg-xserver/emgd-driver-bin-1.6
>  
>  At this point, you should be able to build meta-crownbay images as usual.
>  
>  ----
>  
>  For reference, the EMGD Driver documentation is also available at the
> -above link (it's also part of the installation).
> +above link.
>  
>  The specific text of the document is:
>  
>  User Guide: Intel® Embedded Media and Graphics Driver, EFI Video
> -Driver, EPOG, and Video BIOS v1.5 for Windows* XP and Linux* Provides
> +Driver, EPOG, and Video BIOS v1.6 for Windows* XP and Linux* Provides
>  installation requirements/procedures & describes the vbios/firmware,
>  configuration options, & functionality of Intel® EMGD under Windows* &
>  Linux*. Refer to guide for details.
>  
> -File Type/Size: PDF 3,340KB
> -Version: 008 : October 2010
> +April 2011
>  
>  
>  II. Booting the images in /binary
> 
> 
> 
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel


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

* Re: [PATCH 0/6] meta-intel: emgd updrade
  2011-06-01 19:55 [PATCH 0/6] meta-intel: emgd updrade tom.zanussi
                   ` (5 preceding siblings ...)
  2011-06-01 19:56 ` [PATCH 6/6] meta-crownbay: update README with new build instructions tom.zanussi
@ 2011-06-01 20:27 ` Darren Hart
  2011-06-02 13:26   ` Tom Zanussi
  6 siblings, 1 reply; 11+ messages in thread
From: Darren Hart @ 2011-06-01 20:27 UTC (permalink / raw)
  To: tom.zanussi; +Cc: yocto



On 06/01/2011 12:55 PM, tom.zanussi@intel.com wrote:
> From: Tom Zanussi <tom.zanussi@intel.com>
> 
> This patchset upgrades emgd to 1.6 Gold.
> 
> The following changes since commit e94dba8309874a82a570db60223d18b2c723c3a5:
>   Darren Hart (1):
>         linux-yocto*: correct FILESEXTRAPATHS assignment in all layers
> 
> are available in the git repository at:
> 
>   git://git.yoctoproject.org/meta-intel.git tzanussi/emgd-1.6-upgrade
>   http://git.yoctoproject.org/cgit.cgi//log/?h=tzanussi/emgd-1.6-upgrade
> 
> Tom Zanussi (6):
>   meta-crownbay: new recipe for emgd 1.6 driver binaries
>   meta-intel: add xserver-xf86-dri-lite_1.9.3 to common
>   meta-crownbay: add common to BBFILES
>   meta-crownbay: update crownbay.conf
>   meta-crownbay: remove obsolete graphics recipes
>   meta-crownbay: update README with new build instructions.

With the exception of the patch upstream fields and giving Scott R a
chance to review the README, these look good to me. With those addressed:

Acked-by: Darren Hart <dvhart@linux.intel.com>

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel


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

* Re: [PATCH 0/6] meta-intel: emgd updrade
  2011-06-01 20:27 ` [PATCH 0/6] meta-intel: emgd updrade Darren Hart
@ 2011-06-02 13:26   ` Tom Zanussi
  0 siblings, 0 replies; 11+ messages in thread
From: Tom Zanussi @ 2011-06-02 13:26 UTC (permalink / raw)
  To: Darren Hart; +Cc: yocto@yoctoproject.org

On Wed, 2011-06-01 at 13:27 -0700, Darren Hart wrote:
> 
> On 06/01/2011 12:55 PM, tom.zanussi@intel.com wrote:
> > From: Tom Zanussi <tom.zanussi@intel.com>
> > 
> > This patchset upgrades emgd to 1.6 Gold.
> > 
> > The following changes since commit e94dba8309874a82a570db60223d18b2c723c3a5:
> >   Darren Hart (1):
> >         linux-yocto*: correct FILESEXTRAPATHS assignment in all layers
> > 
> > are available in the git repository at:
> > 
> >   git://git.yoctoproject.org/meta-intel.git tzanussi/emgd-1.6-upgrade
> >   http://git.yoctoproject.org/cgit.cgi//log/?h=tzanussi/emgd-1.6-upgrade
> > 
> > Tom Zanussi (6):
> >   meta-crownbay: new recipe for emgd 1.6 driver binaries
> >   meta-intel: add xserver-xf86-dri-lite_1.9.3 to common
> >   meta-crownbay: add common to BBFILES
> >   meta-crownbay: update crownbay.conf
> >   meta-crownbay: remove obsolete graphics recipes
> >   meta-crownbay: update README with new build instructions.
> 
> With the exception of the patch upstream fields and giving Scott R a
> chance to review the README, these look good to me. With those addressed:
> 
> Acked-by: Darren Hart <dvhart@linux.intel.com>
> 

Hi Darren,

Thanks for your comments.  I've addressed them and pushed the result to
master.

Thanks,

Tom



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

end of thread, other threads:[~2011-06-02 13:28 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-01 19:55 [PATCH 0/6] meta-intel: emgd updrade tom.zanussi
2011-06-01 19:55 ` [PATCH 1/6] meta-crownbay: new recipe for emgd 1.6 driver binaries tom.zanussi
2011-06-01 19:55 ` [PATCH 2/6] meta-intel: add xserver-xf86-dri-lite_1.9.3 to common tom.zanussi
2011-06-01 20:21   ` Darren Hart
2011-06-01 19:55 ` [PATCH 3/6] meta-crownbay: add common to BBFILES tom.zanussi
2011-06-01 19:56 ` [PATCH 4/6] meta-crownbay: update crownbay.conf tom.zanussi
2011-06-01 19:56 ` [PATCH 5/6] meta-crownbay: remove obsolete graphics recipes tom.zanussi
2011-06-01 19:56 ` [PATCH 6/6] meta-crownbay: update README with new build instructions tom.zanussi
2011-06-01 20:26   ` Darren Hart
2011-06-01 20:27 ` [PATCH 0/6] meta-intel: emgd updrade Darren Hart
2011-06-02 13:26   ` Tom Zanussi

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.