meta-intel: crownbay 1.8 emgd and 3.0 kernel upgrade
cover meta-intel: crownbay 1.8 emgd and 3.0 kernel upgrade
From: Tom Zanussi <[email protected]>
This patchset switches crownbay to the 3.0 kernel and upgrades emgd to 1.8. Both crownbay and crownbay-emgd were successfully built and boot tested.
One major change coming out of this patchset is that the emgd binary bits no longer have to be downloaded and extracted manually - the new emgd-driver-bin recipe takes care of that now.
However, after these changes the crownbay (but not the crownbay-noemgd) recipe will not build successfully unless the user overrides COMMERCIAL_LICENSE as mentioned in the README and recipe DESCRIPTION.
The following changes since commit bf39c131f326f958693a827e25c30f0c1769cc8e:
Darren Hart (1):
rt: simplify linux-yocto-rt.bbappend for all BSPs
are available in the git repository at:
git://git.yoctoproject.org/meta-intel.git tzanussi/crownbay-3.0-emgd
http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel/log/?h=tzanussi/crownbay-3.0-emgd
Tom Zanussi (6):
meta-crownbay: switch to linux-yocto 3.0 kernel
meta-crownbay: new recipe for emgd 1.8 driver binaries
meta-crownbay: select emgd 1.8
meta-crownbay: make the use of emgd-driver-bin COMMERCIAL
meta-crownbay: xorg.conf changes
meta-crownbay: update README
meta-crownbay/README | 207 ++++---------------- meta-crownbay/conf/layer.conf | 2 + meta-crownbay/conf/machine/crownbay-noemgd.conf | 2 + meta-crownbay/conf/machine/crownbay.conf | 4 +- .../xorg-xserver/emgd-driver-bin_1.8.bb | 36 ++++ .../xserver-xf86-config/crownbay/xorg.conf | 3 +- .../xorg-xserver/xserver-xf86-config_0.1.bbappend | 1 + .../recipes-kernel/linux/linux-yocto_3.0.bbappend | 15 ++ 8 files changed, 103 insertions(+), 167 deletions(-) create mode 100644 meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin_1.8.bb create mode 100644 meta-crownbay/recipes-kernel/linux/linux-yocto_3.0.bbappend
PATCH 1/6 meta-crownbay: switch to linux-yocto 3.0 kernel
From: Tom Zanussi <[email protected]>
Switch crownbay and crownbay-noemgd to the 3.0 kernel, lock it down, and update kernel SRCREVs.
--- meta-crownbay/conf/machine/crownbay-noemgd.conf | 2 ++ meta-crownbay/conf/machine/crownbay.conf | 2 ++ .../recipes-kernel/linux/linux-yocto_3.0.bbappend | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 0 deletions(-) create mode 100644 meta-crownbay/recipes-kernel/linux/linux-yocto_3.0.bbappend
meta-crownbay/conf/machine/crownbay-noemgd.conf +2 -0
@@ -12,6 +12,8 @@ MACHINE_FEATURES = "kernel26 screen keyboard pci usbhost ext2 ext3 x86 \ KERNEL_IMAGETYPE = "bzImage" PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" +PREFERRED_VERSION_linux-yocto = "3.0+git%" + PREFERRED_PROVIDER_linux-libc-headers ?= "linux-libc-headers-yocto" PREFERRED_PROVIDER_virtual/libx11 ?= "libx11-trim" PREFERRED_PROVIDER_virtual/libgl ?= "mesa-dri"
meta-crownbay/conf/machine/crownbay.conf +2 -0
@@ -12,6 +12,8 @@ MACHINE_FEATURES = "kernel26 screen keyboard pci usbhost ext2 ext3 x86 \ KERNEL_IMAGETYPE = "bzImage" PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" +PREFERRED_VERSION_linux-yocto = "3.0+git%" + PREFERRED_PROVIDER_linux-libc-headers ?= "linux-libc-headers-yocto" PREFERRED_PROVIDER_virtual/libx11 ?= "libx11-trim" PREFERRED_PROVIDER_virtual/libgl ?= "mesa-dri"
meta-crownbay/recipes-kernel/linux/linux-yocto_3.0.bbappend new file +15 -0
@@ -0,0 +1,15 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +COMPATIBLE_MACHINE_crownbay = "crownbay" +KMACHINE_crownbay = "yocto/standard/crownbay" +KERNEL_FEATURES_append_crownbay += " cfg/smp.scc" + +COMPATIBLE_MACHINE_crownbay-noemgd = "crownbay-noemgd" +KMACHINE_crownbay-noemgd = "yocto/standard/crownbay" +KERNEL_FEATURES_append_crownbay-noemgd += " cfg/smp.scc" + +SRCREV_machine_pn-linux-yocto_crownbay ?= "9a259cf4f6d404db2820642df755a295bbfb7fe7" +SRCREV_meta_pn-linux-yocto_crownbay ?= "fe8eac15e144a35a716cd32c9d2b296ecd5202ac" + +SRCREV_machine_pn-linux-yocto_crownbay-noemgd ?= "9a259cf4f6d404db2820642df755a295bbfb7fe7" +SRCREV_meta_pn-linux-yocto_crownbay-noemgd ?= "fe8eac15e144a35a716cd32c9d2b296ecd5202ac"
Signature · 1 line
1.7.0.4
PATCH 2/6 meta-crownbay: new recipe for emgd 1.8 driver binaries
From: Tom Zanussi <[email protected]>
This adds a new recipe for the emgd 1.8 driver binaries.
--- .../xorg-xserver/emgd-driver-bin_1.8.bb | 36 ++++++++++++++++++++ 1 files changed, 36 insertions(+), 0 deletions(-) create mode 100644 meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin_1.8.bb
meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin_1.8.bb new file +36 -0
@@ -0,0 +1,36 @@ +SUMMARY = "EMGD 1.8 xserver binaries" +DESCRIPTION = "EMGD 1.8 includes some userspace binaries that use non-free \ +licensing, which are now available via a non-click-through downloadable \ +tarball, and is what this recipe now uses. Since it is a non-free license, \ +this recipe is marked as 'commercial' and you need to add COMMERCIAL_LICENSE \ += \"\" in order to enable it in a build." +LICENSE = "Intel-binary-only" +PR = "r0" + +EMGD_LICDIR = "IEMGD_HEAD_Linux/License" +EMGD_RPMDIR = "IEMGD_HEAD_Linux/MeeGo1.2" + +LIC_FILES_CHKSUM = "file://${WORKDIR}/${EMGD_LICDIR}/License.txt;md5=b54f01caaf8483b3cb60c0c40f2bf22d" + +SRC_URI = "http://edc.intel.com/App_Shared/Downloads/Lin_EMGD_1_8_RC_2032.tgz" + +FILES_${PN} += "${libdir}/dri ${libdir}/xorg/modules/drivers" +FILES_${PN}-dbg += "${libdir}/xorg/modules/drivers/.debug ${libdir}/dri/.debug" + +S = "${WORKDIR}/${EMGD_RPMDIR}" + +do_install () { + rpm2cpio.sh ${S}/emgd-bin*.rpm | cpio -id + + install -d -m 0755 ${D}/${libdir}/dri + install -d -m 0755 ${D}/${libdir}/xorg/modules/drivers + install -m 0755 ${S}/usr/lib/*.so.* ${D}${libdir}/ + install -m 0755 ${S}/usr/lib/dri/* ${D}${libdir}/dri/ + install -m 0755 ${S}/usr/lib/xorg/modules/drivers/* ${D}${libdir}/xorg/modules/drivers/ + + ln -sf libEGl.so.1 ${D}${libdir}/libEGl.so + ln -sf libGLES_CM.so.1 ${D}${libdir}/libGLES_CM.so + ln -sf libGLESv2.so.2 ${D}${libdir}/libGLESv2.so +} + +LEAD_SONAME = "libEGL.so"
Signature · 1 line
1.7.0.4
PATCH 3/6 meta-crownbay: select emgd 1.8
In reply to [email protected]From: Tom Zanussi <[email protected]>
Change preferred version of emgd binaries to 1.8.
--- meta-crownbay/conf/machine/crownbay.conf | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
meta-crownbay/conf/machine/crownbay.conf +1 -1
@@ -28,7 +28,7 @@ XSERVER ?= "xserver-xf86-dri-lite \ xf86-video-vesa" PREFERRED_VERSION_xserver-xf86-dri-lite ?= "1.9.3" -PREFERRED_VERSION_emgd-driver-bin ?= "1.6" +PREFERRED_VERSION_emgd-driver-bin ?= "1.8" SERIAL_CONSOLE = "115200 ttyS0"
Signature · 1 line
1.7.0.4
PATCH 4/6 meta-crownbay: make the use of emgd-driver-bin COMMERCIAL
In reply to [email protected]From: Tom Zanussi <[email protected]>
The emgd-driver-bin recipe now automatically downloads and installs EMGD using the new click-through-free tarball, but since the binaries still fall under a non-free license, we need to prevent it from being accidentally installed in an image.
We therefore make sure it's labeled in the crownbay layer with 'COMMERCIAL_LICENSE'. In order to build a crownbay image, the user now needs to add a 'COMMERCIAL_LICENSE = ""' line to local.conf.
--- meta-crownbay/conf/layer.conf | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
meta-crownbay/conf/layer.conf +2 -0
@@ -10,3 +10,5 @@ BBFILES := "${BBFILES} ${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "crownbay" BBFILE_PATTERN_crownbay := "^${LAYERDIR}/" BBFILE_PRIORITY_crownbay = "6" + +COMMERCIAL_LICENSE += "emgd-driver-bin"
Signature · 1 line
1.7.0.4
PATCH 5/6 meta-crownbay: xorg.conf changes
In reply to [email protected]From: Tom Zanussi <[email protected]>
Update to the ced-generated xorg.conf for 1.8.
--- .../xserver-xf86-config/crownbay/xorg.conf | 3 ++- .../xorg-xserver/xserver-xf86-config_0.1.bbappend | 1 + 2 files changed, 3 insertions(+), 1 deletions(-)
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay/xorg.conf +2 -1
@@ -26,11 +26,12 @@ Section "Device" Option "ALL/1/General/PortOrder" "40000" Option "ALL/1/General/DisplayConfig" "1" Option "ALL/1/General/DisplayDetect" "1" + Option "ALL/1/General/TuningWA" "1" Option "ALL/1/Port/4/General/name" "lvds" Option "ALL/1/Port/4/General/EdidAvail" "3" Option "ALL/1/Port/4/General/EdidNotAvail" "1" Option "ALL/1/Port/4/General/Rotation" "0" - Option "ALL/1/Port/4/General/Edid" "1" + Option "ALL/1/Port/4/General/Edid" "0" EndSection Section "ServerLayout"
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend +1 -0
@@ -1,3 +1,4 @@ THISDIR := "${@os.path.dirname(bb.data.getVar('FILE', d, True))}" FILESPATH =. "${@base_set_filespath(["${THISDIR}/${PN}"], d)}:" +PR := "${PR}.1"
Signature · 1 line
1.7.0.4
PATCH 6/6 meta-crownbay: update README
In reply to [email protected]From: Tom Zanussi <[email protected]>
With the new emgd-driver-bin recipe, the extensive instructions on how to manually download and set up EMGD for the build are no longer necessary. Those instructions have been replaced with the simpler set of instructions now needed to build crownbay with EMGD.
Changes to reflect the new image names and a couple other minor cleanups are also included.
--- meta-crownbay/README | 207 ++++++++++---------------------------------------- 1 files changed, 42 insertions(+), 165 deletions(-)
meta-crownbay/README +42 -165
@@ -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.6 Gold Driver. +Embedded Media and Graphics Driver (EMGD) 1.8 Driver. Table of Contents =================
@@ -33,14 +33,20 @@ 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.6 graphics driver, while the one prefixed +Intel-proprietary EMGD 1.8 graphics driver, while the one prefixed with 'crownbay-noemgd' does not. -If you want to enable the layer that supports EMGD graphics add +If you want to enable the layer that supports EMGD graphics add the following to the local.conf file: MACHINE ?= "crownbay" +You also need to add the line: + + COMMERCIAL_LICENSE = "" + +to the local.conf file. + If you want to enable the layer that does not support EMGD graphics add the following to the local.conf file:
@@ -48,8 +54,8 @@ add the following to the local.conf file: You should then be able to build a crownbay image as such: - $ source poky-init-build-env - $ bitbake poky-image-sato-live + $ source oe-init-build-env + $ bitbake core-image-sato At the end of a successful build, you should have a live image that you can boot from a USB flash drive (see instructions on how to do
@@ -59,10 +65,11 @@ As an alternative to downloading the BSP tarball, you can also work directly from the meta-intel git repository. For each BSP in the 'meta-intel' repository, there are multiple branches, one corresponding to each major release starting with 'laverne' (0.90), in -addition to the latest code which tracks the current master. Instead -of extracting a BSP tarball at the top level of your yocto build tree, -you can equivalently check out the appropriate branch from the -meta-intel repository at the same location. +addition to the latest code which tracks the current master (note that +not all BSPs are present in every release). Instead of extracting +a BSP tarball at the top level of your yocto build tree, you can +equivalently check out the appropriate branch from the meta-intel +repository at the same location. II. Special notes for building the meta-crownbay BSP layer
@@ -70,182 +77,52 @@ II. Special notes for building the meta-crownbay BSP layer The meta-crownbay layer makes use of the proprietary Intel EMGD 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/emgd-driver-bin-1.6 directory, and -you can ignore the rest of this section. +building the "crownbay-noemgd" machine). -If you didn't get the BSP from the 'BSP Downloads' section of the -Yocto website, you have two choices: +As mentioned in Section I, you need to add the line: -- 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. + COMMERCIAL_LICENSE = "" -- 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. +to the local.conf file in order for the build to succeed. -The following subsections describe each option in detail. +The crownbay BSP COMMERCIAL_LICENSE default setting causes the build +to fail in order to prevent users from inadvertently creating and +possibly distributing images containing packages with non-free +licenses. Clearing the COMMERCIAL_LICENSE variable as shown above +essentially tells the build system that you're OK with the fact that +packages with non-free licenses such as EMGD will be installed in the +image. +Once you've done a build, you can examine the EMGD license(s) in the +IEMGD_HEAD_Linux/License directory of the emgd-driver-bin work +directory of the build. -IIa Downloading and extracting the binaries using the EMGD Linux tarball ------------------------------------------------------------------------- +Alternatively, you can examine the licenses before building by +downloading the EMGD 1.8 Driver and looking at the licenses in the +downloaded 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: +Here is the current link to the URL from which it can be downloaded: 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) +Operating System: MeeGo* 1.2 IVI Linux* (kernel 2.6.37, X.server 1.9, Mesa 7.9) -That will give you a large tar file: +That will give you a large .tgz file: -Lin_EMGD_1_6_RC_1922.tar +Lin_EMGD_1_8_RC_2032.tgz 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.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: Intel Atom Processor E6XX Series -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_6_GOLD_1922.zip - -Extract the files in the zip file, which will in turn give you a large -.exe file: - -IEMGD_1_6_GOLD_ALL_1922.exe - -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. - -When the installation completes, an application named "emgd-ced" will -be present in the install directory. Double-click to run it. - -Select the menu item: New Configuration - -In the tabbed page, make the following selections and/or enter the -specified data: - -Configuration File Name: myconfig -Platform Chipset: Intel Atom Processor E6xx -Port Devices: LVDS, sDVO - -Hit the 'Next' button. +The applicable Licenses are contained in the License directory under +IEMGD_HEAD_Linux. -On the next tabbed page, make the following selections and/or enter -the specified data: -Readable Port Name: portname0 -Encoder Configuration: Select sDVO Device: Internal LVDS - -Hit the 'Finish' button. - -Select the menu item: New Package - -In the tabbed page, make the following selections and/or enter the -specified data: - -Package File Name: mypackage -Configurations: selec myconfig.cnfg -Target OS: Linux operating System - -Hit the 'Finish' button. - -Select the menu item: Generate Installation - -This will create the EMGD installation package: - -Generating EMGD installation... - -The installation package should now be under the 'workspace' -subdirectory of the directory you installed to: - -workspace/installation/mypackage.pkg_installation/IEMGD_HEAD_Linux/IEMGD_HEAD_Linux.tgz - -This is the file you are interested in. Copy it to your Poky build -system, and uncompress/untar it: - -$ tar cvfz IEMGD_HEAD_Linux.tgz - -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. - ----- - -For reference, the EMGD Driver documentation is also available at the -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.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. - -April 2011 - - -II. Booting the images in /binary -================================= +III. Booting the images in /binary +================================== This BSP contains bootable live images, which can be used to directly boot Yocto off of a USB flash drive.
@@ -254,7 +131,7 @@ Under Linux, insert a USB flash drive. Assuming the USB flash drive takes device /dev/sdf, use dd to copy the live image to it. For example: -# dd if=poky-image-sato-live-crownbay-20101207053738.hddimg of=/dev/sdf +# dd if=core-image-sato-crownbay-20101207053738.hddimg of=/dev/sdf # sync # eject /dev/sdf
Signature · 1 line
1.7.0.4