meta-moblin: Add initial menlow support

This commit is contained in:
Richard Purdie 2008-12-30 17:15:49 +00:00
parent 459a7f4a34
commit c8a24cd002
23 changed files with 69393 additions and 3 deletions

View File

@ -12,3 +12,6 @@ PREFERRED_VERSION_atk ?= "1.24.0"
PREFERRED_VERSION_pixman ?= "0.12.0"
PREFERRED_VERSION_cairo ?= "1.8.2"
PREFERRED_VERSION_pango ?= "1.22.2"
SRCREV_pn-xf86-video-psb ?= "b6b3bba06fe5a3fe0b1bd6e31a7369dd83812bab"
SRCREV_pn-libdrm-psb = "aa96c0bbbba11d5bab28bb421a67c2264fad953a"
SRCREV_pn-linux-mid ?= "cb29ee2997ba598028e1ad4bbdd073deac2d057d"

View File

@ -0,0 +1,43 @@
#@TYPE: Machine
#@NAME: Netbook
#@DESCRIPTION: Machine configuration for Menlow platforms. Currently supported machines are the Compal JAX10
TARGET_ARCH = "i586"
PACKAGE_EXTRA_ARCHS = "x86"
include conf/machine/include/tune-atom.inc
MACHINE_FEATURES = "kernel26 screen keyboard pci usbhost ext2 ext3 x86 wifi \
acpi"
KERNEL_IMAGETYPE = "bzImage"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-mid"
PREFERRED_PROVIDER_virtual/libx11 ?= "libx11-trim"
PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xf86-lite-psb"
PREFERRED_PROVIDER_virtual/xserver-xf86 ?= "xserver-xf86-lite-psb"
XSERVER ?= "xserver-xf86-lite-psb \
xf86-input-mouse \
xf86-input-keyboard \
xf86-input-synaptics \
xf86-video-psb"
# mesa-dri-driver-i915"
#MACHINE_EXTRA_RDEPENDS = "rt2860"
MACHINE_EXTRA_RRECOMMENDS = "kernel-modules eee-acpi-scripts"
GUI_MACHINE_CLASS = "bigscreen"
IMAGE_ROOTFS_SIZE_ext3 = "500000"
IMAGE_FSTYPES ?= "ext3 jffs2 cpio.gz"
APPEND += "video=intelfb:mode=800x600,accel=0,hwcursor=0 vga=788 usbcore.autosuspend=1"
GLIBC_ADDONS = "nptl"
GLIBC_EXTRA_OECONF = "--with-tls"
EXTRA_OECONF_append_pn-matchbox-panel-2 = " --with-battery=acpi"

View File

@ -0,0 +1,84 @@
# Ubuntu config
CONFIG_BLK_DEV_GNBD=m
# Requires some headers from drivers/md
#CONFIG_BLK_DEV_DM_BBR=m
CONFIG_SND_BTSCO=m
CONFIG_INPUT_ACERHK=m
CONFIG_AVERATEC_5100P=m
CONFIG_PACKARDBELL_E5=m
CONFIG_LMPCM_USB=m
CONFIG_NOZOMI=m
CONFIG_NDISWRAPPER=m
CONFIG_NDISWRAPPER_WQ=y
#CONFIG_MOL=m
CONFIG_ASFS_FS=m
# Uses unexported functions from gfs2
CONFIG_GFS_FS=m
CONFIG_SQUASHFS=m
# CONFIG_UNION_FS is not set
CONFIG_USB_APPLEIR=m
CONFIG_GSPCA=m
CONFIG_USB_OV511_NEW=m
CONFIG_QUICKCAM=m
CONFIG_USB_UVCCAM=m
CONFIG_NET_ACX=m
CONFIG_IPW3945=m
CONFIG_IWLWIFI=m
CONFIG_USB_ATMEL=m
CONFIG_PRISM2_USB=m
CONFIG_IPW2100_FS_AMILO_M7400=m
CONFIG_LIRC_DEV=m
CONFIG_LIRC_ATIUSB=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_CMDIR=m
#CONFIG_LIRC_GPIO=m
CONFIG_LIRC_I2C=m
CONFIG_LIRC_IGORPLUGUSB=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC_IT87=m
CONFIG_LIRC_MCEUSB=m
CONFIG_LIRC_MCEUSB2=m
#CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_PVR150=m
CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_IGOR=m
CONFIG_LIRC_SIR=m
CONFIG_LIRC_STREAMZAP=m
CONFIG_LIRC_TTUSBIR=m
CONFIG_DRM_PSB=m
CONFIG_AMT_HECI=m
CONFIG_ET131X=m
CONFIG_STK11XX=m
CONFIG_MMC_SD8686=m
CONFIG_MMC_SD8688=m
CONFIG_WIMAX_I2400M=m
# CONFIG_DVB_SIANO_SMS1XXX is not set

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,25 @@
SECTION = "x11/base"
LICENSE = "MIT"
SRC_URI = "git://git.moblin.org/projects/libdrm.git/;protocol=git \
file://poulsbo_libdrm_update.patch;patch=1"
PROVIDES = "drm libdrm"
S = ${WORKDIR}/git
DEPENDS = "libpthread-stubs"
PR = "r2"
PV = "2.3.0+git${SRCREV}"
#PROVIDES = "libdrm"
COMPATIBLE_MACHINE = "menlow"
#DEFAULT_PREFERENCE_menlow = "5"
#PACKAGE_ARCH = "${MACHINE_ARCH}"
LEAD_SONAME = "libdrm.so"
inherit autotools pkgconfig
do_stage() {
autotools_stage_all
}

View File

@ -0,0 +1,26 @@
SRC_URI = "http://archive.ubuntu.com/ubuntu/pool/main/l/linux-ubuntu-modules-2.6.24/linux-ubuntu-modules-2.6.24_2.6.24-22.35.tar.gz \
file://menlow-config"
S = "${WORKDIR}/lum/ubuntu"
inherit module
export src="${S}"
do_configure_prepend () {
cp ${WORKDIR}/menlow-config ${S}/.config
}
do_compile() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
make -C ${STAGING_KERNEL_DIR} ARCH=i386 M=${S} modules
}
MODULE_PATH = "/lib/modules/${KERNEL_VERSION}"
do_install () {
install -d ${D}${MODULE_PATH}/kernel/drivers/char/drm/
install -m 644 ${S}/media/drm-poulsbo/drm.ko ${D}${MODULE_PATH}/kernel/drivers/char/drm/
install -m 644 ${S}/media/drm-poulsbo/psb.ko ${D}${MODULE_PATH}/kernel/drivers/char/drm/
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,11 @@
require linux-moblin.inc
PR = "r0"
DEFAULT_PREFERENCE = "-1"
DEFAULT_PREFERENCE_menlow = "100"
SRC_URI = "git://git.moblin.org/projects/kernel-mid-2.6.24.git;protocol=git \
file://defconfig-menlow"
S = "${WORKDIR}/git"

File diff suppressed because it is too large Load Diff

View File

@ -14,5 +14,4 @@ do_configure() {
}
COMPATIBLE_MACHINE = "netbook"
COMPATIBLE_MACHINE = "(netbook|menlow)"

View File

@ -50,6 +50,7 @@ SRC_URI = "${KERNELORG_MIRROR}pub/linux/kernel/v2.6/linux-2.6.27.tar.bz2 \
file://0041-r8169-8101e.patch;patch=1 \
file://0042-intelfb-945gme.patch;patch=1 \
file://0043-superreadahead-patch.patch;patch=1 \
file://defconfig-menlow \
file://defconfig-netbook"
S = "${WORKDIR}/linux-2.6.27"

View File

@ -0,0 +1,23 @@
Index: git/src/psb_driver.c
===================================================================
--- git.orig/src/psb_driver.c 2008-12-12 15:14:28.000000000 +0000
+++ git/src/psb_driver.c 2008-12-30 14:18:16.000000000 +0000
@@ -1326,7 +1326,7 @@
pScrn->pScreen = pScreen;
- psbDRILock(pScrn, 0);
+/* psbDRILock(pScrn, 0);*/
pPsb->front = psbScanoutCreate(pScrn, pScrn->bitsPerPixel >> 3,
pScrn->depth, pScrn->virtualX,
pScrn->virtualY, 0, -1, 0);
@@ -1489,7 +1489,9 @@
return psbEnterVT(pScreen->myNum, 0);
out_err_unlock:
+ /* Temporary Fix TBD
psbDRIUnlock(pScrn);
+ */
out_err:
psbRestoreHWState(pDevice);
return FALSE;

View File

@ -0,0 +1,32 @@
DESCRIPTION = "X driver"
HOMEPAGE = "http://www.x.org"
SECTION = "x11/drivers"
LICENSE = "MIT-X"
PE = "1"
PR = "r0"
DEPENDS = "virtual/xserver-xf86 xproto randrproto"
XORG_PN = "${PN}"
SRC_URI = "${XORG_MIRROR}/individual/driver/${XORG_PN}-${PV}.tar.bz2"
S = "${WORKDIR}/${XORG_PN}-${PV}"
FILES_${PN} += " ${libdir}/xorg/modules/drivers/*.so"
FILES_${PN}-dbg += " ${libdir}/xorg/modules/drivers/.debug"
inherit autotools pkgconfig
do_stage() {
autotools_stage_all
}
# AC_CHECK_FILE doesn't work when cross compiling, so we create a replacement
# macro that simply assumes the test succeeds.
do_configure_prepend () {
echo 'AC_DEFUN(CC_AC_CHECK_FILE, $2)' > configure.ac.new
sed 's/AC_CHECK_FILE/CC_AC_CHECK_FILE/g' configure.ac >> configure.ac.new
mv configure.ac.new configure.ac
}

View File

@ -0,0 +1,4 @@
include xf86-driver-common.inc
DEPENDS =+ "renderproto videoproto xextproto fontsproto"

View File

@ -0,0 +1,20 @@
require xf86-video-common.inc
DESCRIPTION = "X.Org X server -- PIntel i8xx, i9xx display driver"
DEPENDS += "virtual/libx11 libxvmc libdrm-psb dri2proto glproto \
virtual/libgl xineramaproto libpciaccess"
RDEPENDS += linux-psb-modules
PV = "0.2.6+git${SRCREV}"
PR = "r4"
SRC_URI = "git://git.moblin.org/projects/xf86-video-psb;protocol=git \
file://104_disable_locks.diff;patch=1"
S = "${WORKDIR}/git"
COMPATIBLE_HOST = '(i.86.*-linux)'
COMPATIBLE_MACHINE = "menlow"
EXTRA_OECONF = "--enable-dri --disable-static"

View File

@ -0,0 +1,45 @@
DESCRIPTION = "The X.Org X server"
HOMEPAGE = "http://www.x.org"
SECTION = "x11/base"
LICENSE = "MIT-X"
# xf86-*-* packages depend on an X server built with the xfree86 DDX
# so we have a virtual to represent that:
PROVIDES = "virtual/xserver-xf86"
# Other packages tend to just care that there is *an* X server:
PROVIDES += "virtual/xserver"
XORG_PN = "xorg-server"
SRC_URI = "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${PV}.tar.bz2 \
file://xorg.conf"
S = "${WORKDIR}/${XORG_PN}-${PV}"
inherit autotools pkgconfig
PACKAGES =+ "${PN}-utils"
FILES_${PN}-utils = "${bindir}/scanpci ${bindir}/pcitweak ${bindir}/ioport ${bindir}/in[bwl] ${bindir}/out[bwl] ${bindir}/mmap[rw] ${bindir}/gtf ${bindir}/getconfig ${bindir}/getconfig.pl"
FILES_${PN} = "${libdir}/X11/Options ${libdir}/X11/Cards ${libdir}/X11/getconfig ${libdir}/X11/etc ${libdir}/xserver/SecurityPolicy ${libdir}/xorg/modules/*.so ${libdir}/xorg/modules/*/*.so ${libdir}/xorg/modules/*/*/*.so /etc/X11 "
FILES_${PN}-doc += "${libdir}/X11/doc /usr/share/X11/xkb/compiled/README.compiled"
FILES_${PN}-dbg += "${libdir}/xorg/modules/.debug \
${libdir}/xorg/modules/*/.debug \
${libdir}/xorg/modules/*/*/.debug \
"
CONFFILES_${PN} += "${sysconfdir}/X11/xorg.conf"
SRC_URI += "file://macro_tweak.patch;patch=1"
do_stage() {
autotools_stage_all
}
do_install_append () {
install -d ${D}/${sysconfdir}/X11
install -m 0644 ${WORKDIR}/xorg.conf ${D}/${sysconfdir}/X11/
ln -sf ${datadir}/fonts/X11 ${D}/${libdir}/X11/fonts
}

View File

@ -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 = \

View File

@ -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,

View File

@ -0,0 +1,30 @@
Index: xorg-server-1.4/xorg-server.m4
===================================================================
--- xorg-server-1.4.orig/xorg-server.m4 2007-08-23 20:04:55.000000000 +0100
+++ xorg-server-1.4/xorg-server.m4 2008-12-26 23:59:53.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
Index: xorg-server-1.4/xorg-server.pc.in
===================================================================
--- xorg-server-1.4.orig/xorg-server.pc.in 2008-12-27 00:07:37.000000000 +0000
+++ xorg-server-1.4/xorg-server.pc.in 2008-12-27 00:08:39.000000000 +0000
@@ -8,5 +8,6 @@
Name: xorg-server
Description: Modular X.Org X Server
Version: @PACKAGE_VERSION@
-Cflags: -I${sdkdir} @PIXMAN_CFLAGS@
+Requires: pixman-1
+Cflags: -I${sdkdir}
Libs: -L${libdir}

View File

@ -0,0 +1,87 @@
Section "Files"
EndSection
#Section "InputDevice"
# Identifier "Generic Keyboard"
# Driver "kbd"
# Option "CoreKeyboard"
# Option "XkbRules" "xorg"
# Option "XkbModel" "pc105"
# Option "XkbLayout" "us"
#EndSection
#
#Section "InputDevice"
# Identifier "Configured Mouse"
# Driver "mouse"
# Option "CorePointer"
# Option "Device" "/dev/input/mice"
# Option "Protocol" "ImPS/2"
# Option "ZAxisMapping" "4 5"
# Option "Emulate3Buttons" "true"
#EndSection
#Section "InputDevice"
# Identifier "Synaptics Touchpad"
# Driver "synaptics"
# Option "SendCoreEvents" "true"
# Option "Device" "/dev/psaux"
# Option "Protocol" "auto-dev"
# Option "HorizEdgeScroll" "0"
#EndSection
#Section "InputDevice"
# Driver "wacom"
# Identifier "stylus"
# Option "Device" "/dev/input/wacom"
# Option "Type" "stylus"
# Option "ForceDevice" "ISDV4" # Tablet PC ONLY
#EndSection
#Section "InputDevice"
# Driver "wacom"
# Identifier "eraser"
# Option "Device" "/dev/input/wacom"
# Option "Type" "eraser"
# Option "ForceDevice" "ISDV4" # Tablet PC ONLY
#EndSection
#Section "InputDevice"
# Driver "wacom"
# Identifier "cursor"
# Option "Device" "/dev/input/wacom"
# Option "Type" "cursor"
# Option "ForceDevice" "ISDV4" # Tablet PC ONLY
#EndSection
Section "Device"
Identifier "PSB Graphics Controller"
Driver "psb"
# BusID "PCI:0:2:0"
EndSection
Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
EndSection
Section "Screen"
Identifier "Default Screen"
Device "PSB Graphics Controller"
Monitor "Generic Monitor"
DefaultDepth 24
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
# InputDevice "Generic Keyboard"
# InputDevice "Configured Mouse"
# Uncomment if you have a wacom tablet
# InputDevice "stylus" "SendCoreEvents"
# InputDevice "cursor" "SendCoreEvents"
# InputDevice "eraser" "SendCoreEvents"
# InputDevice "Synaptics Touchpad"
EndSection

View File

@ -0,0 +1,7 @@
require xserver-xf86-lite.inc
PR = "r4"
SRC_URI += "file://drmfix.patch;patch=1 \
file://libdri-xinerama-symbol.patch;patch=1 "

View File

@ -0,0 +1,37 @@
require xserver-xf86-common.inc
PROVIDES += "xserver-xf86-lite"
PROTO_DEPS = "randrproto renderproto fixesproto damageproto xextproto xproto xf86dgaproto xf86miscproto xf86rushproto xf86vidmodeproto xf86bigfontproto compositeproto recordproto resourceproto videoproto scrnsaverproto evieext trapproto xineramaproto fontsproto kbproto inputproto bigreqsproto xcmiscproto glproto"
LIB_DEPS = "mesa pixman libxfont xtrans libxau libxext libxdmcp libxt libdrm-psb libxkbfile libpciaccess openssl"
DEPENDS = "${PROTO_DEPS} ${LIB_DEPS}"
RDEPENDS = "hal xorg-minimal-fonts"
FILES_${PN} += "${bindir}/Xorg "
EXTRA_OECONF += "--disable-acfb \
--enable-aiglx=yes \
--enable-dri=yes \
--enable-glx=yes \
--enable-glx-tls=yes \
--disable-ccfb \
--disable-mcfb \
--disable-dga \
--disable-xinerama \
--disable-xf86misc \
--disable-xorgcfg \
--disable-record \
--disable-dmx \
--disable-xnest \
--disable-xvfb \
--enable-composite \
--sysconfdir=/etc/X11 \
--localstatedir=/var \
--with-pic \
--with-int10=x86emu \
--with-fontdir=/usr/share/fonts/X11 \
--with-xkb-output=/var/lib/xkb \
ac_cv_file__usr_share_sgml_X11_defs_ent=no"

View File

@ -13,7 +13,7 @@ SRC_URI = "http://folks.o-hand.com/sameo/rt2860/rt2860-1.7.0.0.tar.bz2 \
S = "${WORKDIR}/rt2860-1.7.0.0"
COMPATIBLE_MACHINE = "netbook"
COMPATIBLE_MACHINE = "(netbook|menlow)"
inherit module