Use linux-libc-headers-2.6.31/udev-124
authorChang.H.S <jhs@dev3>
Tue, 27 Nov 2012 07:22:59 +0000 (16:22 +0900)
committerChang.H.S <jhs@dev3>
Tue, 27 Nov 2012 07:22:59 +0000 (16:22 +0900)
33 files changed:
Makefile
meta-openvuplus/conf/distro/vuplus.conf
meta-openvuplus/recipes-core/udev/udev-124/40-od-devfs-compatibility.rules [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/41-od-linux-2.6.18-misc.rules [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/42-od-oled-compatibility.rules [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/default [new file with mode: 0755]
meta-openvuplus/recipes-core/udev/udev-124/devfs-udev.rules [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/flags.patch [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/init [new file with mode: 0755]
meta-openvuplus/recipes-core/udev/udev-124/libvolume-id-soname.patch [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/links.conf [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/local.rules [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/mount.blacklist [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/mount.sh [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/mtd-exclude-persistent.patch [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/network.sh [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/noasmlinkage.patch [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/permissions.rules [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/run.rules [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/series [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/udev.rules [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/udevtrigger_add_devname_filtering.patch [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-124/vol_id_ld.patch [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev-182/init [deleted file]
meta-openvuplus/recipes-core/udev/udev_124.bb [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev_124.inc [new file with mode: 0644]
meta-openvuplus/recipes-core/udev/udev_182.bbappend [deleted file]
meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers-2.6.31/0001-implement-TIF_RESTORE_SIGMASK-support-and-enable-the.patch [new file with mode: 0644]
meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers-2.6.31/dvbapi-5.3.patch [new file with mode: 0644]
meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers.inc [deleted file]
meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers/connector-msg-size-fix.patch [deleted file]
meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.31.bb [new file with mode: 0644]
meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers_3.1.1.bb [deleted file]

index bf19056..645aff5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -29,7 +29,7 @@
 # This only sets the default value. All platforms now use a shared build
 # directory. Run "MACHINE=vuultimo bitbake vuplus-image" to build an image
 # for the vuultimo, if it is not the default.
-MACHINE ?= vusolo2
+MACHINE ?= bm750
 
 MULTI_TEMPORARILY ?=
 
index 3a0e6b3..76fb9da 100644 (file)
@@ -33,13 +33,13 @@ PREFERRED_VERSION_pango ?= "1.28.4"
 
 PREFERRED_VERSION_wpa-supplicant ?= "0.7.3"
 
-#PREFERRED_VERSION_linux-libc-headers = "2.6.31"
-#PREFERRED_VERSION_linux-libc-headers-nativesdk = "2.6.31"
-PREFERRED_VERSION_linux-libc-headers = "3.1.1"
-PREFERRED_VERSION_linux-libc-headers-nativesdk = "3.1.1"
+PREFERRED_VERSION_linux-libc-headers = "2.6.31"
+PREFERRED_VERSION_linux-libc-headers-nativesdk = "2.6.31"
+#PREFERRED_VERSION_linux-libc-headers = "3.1.1"
+#PREFERRED_VERSION_linux-libc-headers-nativesdk = "3.1.1"
 
 # chang : udev_182 is not working with linux-libc-headers_2.6.31.
-#PREFERRED_VERSION_udev ?= "124"
+PREFERRED_VERSION_udev ?= "124"
 
 PREFERRED_PROVIDER_jpeg = "jpeg"
 PREFERRED_PROVIDER_jpeg-native = "jpeg-native"
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/40-od-devfs-compatibility.rules b/meta-openvuplus/recipes-core/udev/udev-124/40-od-devfs-compatibility.rules
new file mode 100644 (file)
index 0000000..4499cf1
--- /dev/null
@@ -0,0 +1,19 @@
+# There are a number of modifiers that are allowed to be used in some
+# of the different fields. They provide the following subsitutions:
+#
+# %n the "kernel number" of the device.
+#    For example, 'sda3' has a "kernel number" of '3'
+# %e the smallest number for that name which does not matches an existing node
+# %k the kernel name for the device
+# %M the kernel major number for the device
+# %m the kernel minor number for the device
+# %b the bus id for the device
+# %c the string returned by the PROGRAM
+# %s{filename} the content of a sysfs attribute
+# %% the '%' char itself
+#
+
+KERNEL=="i2c-[0-9]*",          SYMLINK+="i2c/%n"
+KERNEL=="fb[0-9]*",            SYMLINK+="fb/%n"
+KERNEL=="mtdblock[0-9]*",      SYMLINK+="mtdblock/%n"
+KERNEL=="tty[0-9]*",           SYMLINK+="vc/%n"
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/41-od-linux-2.6.18-misc.rules b/meta-openvuplus/recipes-core/udev/udev-124/41-od-linux-2.6.18-misc.rules
new file mode 100644 (file)
index 0000000..e0cff14
--- /dev/null
@@ -0,0 +1,24 @@
+# There are a number of modifiers that are allowed to be used in some
+# of the different fields. They provide the following subsitutions:
+#
+# %n the "kernel number" of the device.
+#    For example, 'sda3' has a "kernel number" of '3'
+# %e the smallest number for that name which does not matches an existing node
+# %k the kernel name for the device
+# %M the kernel major number for the device
+# %m the kernel minor number for the device
+# %b the bus id for the device
+# %c the string returned by the PROGRAM
+# %s{filename} the content of a sysfs attribute
+# %% the '%' char itself
+#
+
+KERNEL=="fp0",                 NAME="dbox/fp0"
+KERNEL=="oled0",               NAME="dbox/oled0"
+KERNEL=="lcd0",                        NAME="dbox/lcd0"
+KERNEL=="hsm0",                        NAME="misc/hsm0"
+KERNEL=="vtuner0",             NAME="misc/vtuner0"
+KERNEL=="vtuner1",             NAME="misc/vtuner1"
+KERNEL=="pvr",                 NAME="misc/pvr"
+KERNEL=="dp",                  NAME="misc/dp"
+
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/42-od-oled-compatibility.rules b/meta-openvuplus/recipes-core/udev/udev-124/42-od-oled-compatibility.rules
new file mode 100644 (file)
index 0000000..bf501bf
--- /dev/null
@@ -0,0 +1,16 @@
+# There are a number of modifiers that are allowed to be used in some
+# of the different fields. They provide the following subsitutions:
+#
+# %n the "kernel number" of the device.
+#    For example, 'sda3' has a "kernel number" of '3'
+# %e the smallest number for that name which does not matches an existing node
+# %k the kernel name for the device
+# %M the kernel major number for the device
+# %m the kernel minor number for the device
+# %b the bus id for the device
+# %c the string returned by the PROGRAM
+# %s{filename} the content of a sysfs attribute
+# %% the '%' char itself
+#
+
+KERNEL=="*oled0",              SYMLINK+="dbox/lcd0"
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/default b/meta-openvuplus/recipes-core/udev/udev-124/default
new file mode 100755 (executable)
index 0000000..d0050b8
--- /dev/null
@@ -0,0 +1,4 @@
+# Default for /etc/init.d/udev
+
+# Comment this out to disable device cache
+#DEVCACHE="/etc/dev.tar"
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/devfs-udev.rules b/meta-openvuplus/recipes-core/udev/udev-124/devfs-udev.rules
new file mode 100644 (file)
index 0000000..0ba1ad4
--- /dev/null
@@ -0,0 +1,108 @@
+# The use of these rules is not recommended or supported.
+# In a world where devices can come and go at any time, the devfs scheme
+# of simple device enumeration does not help _anything_. Just forget about
+# it. Use custom rules to name your device or look at the persistent device
+# naming scheme, which is implemented for disks and add your subsystem.
+
+# ide block devices
+BUS="ide", KERNEL="hd*", PROGRAM="/etc/udev/ide-devfs.sh %k %b %n", NAME="%k", SYMLINK="%c{1} %c{2}"
+
+# md block devices
+KERNEL="md[0-9]*", NAME="md/%n"
+
+# floppy devices
+KERNEL="fd[0-9]*", NAME="floppy/%n"
+
+# tty devices
+KERNEL="tty[0-9]*",    NAME="vc/%n", SYMLINK="%k"
+KERNEL="ttyS[0-9]*",   NAME="tts/%n", SYMLINK="%k"
+KERNEL="ttyUSB[0-9]*", NAME="tts/USB%n"
+
+# vc devices
+KERNEL="vcs",        NAME="vcc/0"
+KERNEL="vcs[0-9]*",  NAME="vcc/%n"
+KERNEL="vcsa",       NAME="vcc/a0"
+KERNEL="vcsa[0-9]*", NAME="vcc/a%n"
+
+# v4l devices
+KERNEL="video[0-9]*", NAME="v4l/video%n"
+KERNEL="radio[0-9]*", NAME="v4l/radio%n"
+KERNEL="vbi[0-9]*",   NAME="v4l/vbi%n"
+KERNEL="vtx[0-9]*",   NAME="v4l/vtx%n"
+
+# dm devices (ignore them)
+KERNEL="dm-[0-9]*", NAME=""
+
+# i2c devices
+KERNEL="i2c-[0-9]*", NAME="i2c/%n", SYMLINK="%k"
+
+# loop devices
+KERNEL="loop[0-9]*", NAME="loop/%n", SYMLINK="%k"
+
+# ramdisks
+KERNEL="ram[0-9]*", NAME="rd/%n", SYMLINK="%k"
+
+# framebuffer devices
+KERNEL="fb[0-9]*", NAME="fb/%n", SYMLINK="%k"
+
+# misc
+KERNEL="rtc",     NAME="misc/%k", SYMLINK="%k"
+KERNEL="psaux",   NAME="misc/%k", SYMLINK="%k"
+KERNEL="agpgart", NAME="misc/%k", SYMLINK="%k"
+KERNEL="rtc",     NAME="misc/%k", SYMLINK="%k"
+KERNEL="psaux",   NAME="misc/%k", SYMLINK="%k"
+KERNEL="uinput",  NAME="misc/%k", SYMLINK="%k"
+
+# alsa devices
+KERNEL="controlC[0-9]*", NAME="snd/%k"
+KERNEL="hw[CD0-9]*",     NAME="snd/%k"
+KERNEL="pcm[CD0-9cp]*",  NAME="snd/%k"
+KERNEL="midi[CD0-9]*",   NAME="snd/%k"
+KERNEL="timer",          NAME="snd/%k"
+KERNEL="seq",            NAME="snd/%k"
+
+# oss devices
+KERNEL="audio*",     NAME="sound/%k", SYMLINK="%k"
+KERNEL="dmmidi",     NAME="sound/%k", SYMLINK="%k"
+KERNEL="dsp*",       NAME="sound/%k", SYMLINK="%k"
+KERNEL="midi*",      NAME="sound/%k", SYMLINK="%k"
+KERNEL="mixer*",     NAME="sound/%k", SYMLINK="%k"
+KERNEL="sequencer*", NAME="sound/%k", SYMLINK="%k"
+
+# input devices
+KERNEL="mice",   NAME="input/%k"
+KERNEL="mouse*", NAME="input/%k"
+KERNEL="event*", NAME="input/%k"
+KERNEL="js*",    NAME="input/%k"
+KERNEL="ts*",   NAME="input/%k"
+
+# USB devices
+KERNEL="hiddev*",      NAME="usb/%k"
+KERNEL="auer*",                NAME="usb/%k"
+KERNEL="legousbtower*",        NAME="usb/%k"
+KERNEL="dabusb*",      NAME="usb/%k"
+BUS="usb", KERNEL="lp[0-9]*",  NAME="usb/%k"
+
+# netlink devices
+KERNEL="route",                NAME="netlink/%k"
+KERNEL="skip",         NAME="netlink/%k"
+KERNEL="usersock",     NAME="netlink/%k"
+KERNEL="fwmonitor",    NAME="netlink/%k"
+KERNEL="tcpdiag",      NAME="netlink/%k"
+KERNEL="nflog",                NAME="netlink/%k"
+KERNEL="xfrm",         NAME="netlink/%k"
+KERNEL="arpd",         NAME="netlink/%k"
+KERNEL="route6",       NAME="netlink/%k"
+KERNEL="ip6_fw",       NAME="netlink/%k"
+KERNEL="dnrtmsg",      NAME="netlink/%k"
+KERNEL="tap*",         NAME="netlink/%k"
+
+# CAPI devices
+KERNEL="capi",         NAME="capi20", SYMLINK="isdn/capi20"
+KERNEL="capi*",                NAME="capi/%n"
+
+# Network devices
+KERNEL="tun",          NAME="net/%k"
+
+# raw devices
+KERNEL="raw[0-9]*",     NAME="raw/%k" 
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/flags.patch b/meta-openvuplus/recipes-core/udev/udev-124/flags.patch
new file mode 100644 (file)
index 0000000..13f20eb
--- /dev/null
@@ -0,0 +1,56 @@
+---
+ Makefile |   16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+Index: udev-115/Makefile
+===================================================================
+--- udev-115.orig/Makefile     2007-08-24 01:29:54.000000000 +0200
++++ udev-115/Makefile  2007-09-20 17:21:45.000000000 +0200
+@@ -112,39 +112,39 @@
+ AR = $(CROSS_COMPILE)ar
+ RANLIB = $(CROSS_COMPILE)ranlib
+-CFLAGS                += -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
++override CFLAGS       = -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
+ WARNINGS      = -Wstrict-prototypes -Wsign-compare -Wshadow \
+                 -Wchar-subscripts -Wmissing-declarations -Wnested-externs \
+                 -Wpointer-arith -Wcast-align -Wsign-compare -Wmissing-prototypes
+-CFLAGS                += $(WARNINGS)
++override CFLAGS       += $(WARNINGS)
+ LDFLAGS += -Wl,-warn-common,--as-needed
+ OPTFLAGS = -Os
+-CFLAGS += $(OPTFLAGS)
++override CFLAGS += $(OPTFLAGS)
+ ifeq ($(strip $(USE_LOG)),true)
+-      CFLAGS += -DUSE_LOG
++      override CFLAGS += -DUSE_LOG
+ endif
+ # if DEBUG is enabled, then we do not strip
+ ifeq ($(strip $(DEBUG)),true)
+-      CFLAGS  += -DDEBUG
++      override CFLAGS  += -DDEBUG
+ endif
+ ifeq ($(strip $(USE_GCOV)),true)
+-      CFLAGS += -fprofile-arcs -ftest-coverage
++      override CFLAGS += -fprofile-arcs -ftest-coverage
+       LDFLAGS += -fprofile-arcs
+ endif
+ ifeq ($(strip $(USE_SELINUX)),true)
+       UDEV_OBJS += udev_selinux.o
+       LIB_OBJS += -lselinux -lsepol
+-      CFLAGS += -DUSE_SELINUX
++      override CFLAGS += -DUSE_SELINUX
+ endif
+ ifeq ($(strip $(USE_STATIC)),true)
+-      CFLAGS += -DUSE_STATIC
++      override CFLAGS += -DUSE_STATIC
+       LDFLAGS += -static
+ endif
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/init b/meta-openvuplus/recipes-core/udev/udev-124/init
new file mode 100755 (executable)
index 0000000..e8b2cc5
--- /dev/null
@@ -0,0 +1,177 @@
+#!/bin/sh -e
+### BEGIN INIT INFO
+# Provides:          udev
+# Required-Start:    mountkernfs
+# Required-Stop:
+# Default-Start:     S
+# Default-Stop:
+# Short-Description: Start udevd, populate /dev and load drivers.
+### END INIT INFO
+
+# This script is based on Debian's.
+
+COLDPLUG=no
+COLDPLUG_TARBALL="/lib/udev/devices.tar.gz"
+
+for x in $(cat /proc/cmdline); do
+        case $x in
+        coldplug)
+               COLDPLUG=yes
+                ;;
+        esac
+done
+
+# we need to unmount /dev/pts/ and remount it later over the tmpfs
+unmount_devpts() {
+  if mountpoint -q /dev/pts/; then
+    umount -n -l /dev/pts/
+  fi
+
+  if mountpoint -q /dev/shm/; then
+    umount -n -l /dev/shm/
+  fi
+}
+
+# mount a tmpfs over /dev, if somebody did not already do it
+mount_tmpfs() {
+  if grep -q "/dev tmpfs" /proc/mounts; then
+    return
+  fi
+
+  if ! mount -n -o size=$tmpfs_size,mode=0755 -t tmpfs udev /dev; then
+    echo "udev requires tmpfs support, not started."
+    exit 1
+  fi
+
+  return 0
+}
+
+create_dev_makedev() {
+  if [ -e /sbin/MAKEDEV ]; then
+    ln -sf /sbin/MAKEDEV /dev/MAKEDEV
+  else
+    ln -sf /bin/true /dev/MAKEDEV
+  fi
+}
+
+make_extra_nodes() {
+  ret=1
+  if [ "$(echo /lib/udev/devices/*)" != "/lib/udev/devices/*" ]; then
+    cp -a /lib/udev/devices/* /$1/
+    ret=0
+  fi
+
+  [ -e /etc/udev/links.conf ] || return $ret
+
+  grep '^[^#]' /etc/udev/links.conf | \
+  while read type name arg1; do
+    [ "$type" -a "$name" -a ! -e "/$1/$name" -a ! -L "/$1/$name" ] || continue
+    case "$type" in
+      L) ln -s $arg1 /$1/$name ;;
+      D) mkdir -p /$1/$name ;;
+      M) mknod -m 600 /$1/$name $arg1 ;;
+      *) echo "links.conf: unparseable line ($type $name $arg1)" >&2 ;;
+    esac
+  done
+
+  return $ret
+}
+
+##############################################################################
+
+[ -x /sbin/udevd ] || exit 0
+
+PATH="/sbin:/bin"
+
+# defaults
+tmpfs_size="2M"
+udev_root="/dev"
+
+if [ -e /etc/udev/udev.conf ]; then
+  . /etc/udev/udev.conf
+fi
+
+##############################################################################
+
+# When modifying this script, do not forget that between the time that the
+# new /dev has been mounted and udevadm trigger has been run there will be
+# no /dev/null. This also means that you cannot use the "&" shell command.
+
+case "$1" in
+    start)
+    if [ -e "$udev_root/.udev/" ]; then
+       if mountpoint -q $udev_root/; then
+           TMPFS_MOUNTED=1
+       else
+           echo ".udev/ already exists on the static $udev_root!"
+       fi
+    fi
+
+    echo > /sys/kernel/uevent_helper
+
+    if [ -z "$TMPFS_MOUNTED" ]; then
+       unmount_devpts
+       mount_tmpfs
+    else
+       # and clean up the database of the initramfs udev
+       rm -rf /dev/.udev/
+    fi
+
+    # /dev/null must be created before udevd is started
+    if ! make_extra_nodes "$udev_root"; then
+       COLDPLUG=yes
+    fi
+    if [ ! -f "$COLDPLUG_TARBALL" ]; then
+       COLDPLUG=yes
+    fi
+
+    # if this directory is not present /dev will not be updated by udev
+    mkdir -p /dev/.udev/db/
+
+    echo "Startting the hotplug events dispatcher"
+    udevd --daemon
+
+    mkdir -p /dev/.udev/queue/ /dev/.udev/rules.d/
+
+    create_dev_makedev
+
+    if [ $COLDPLUG != "no" ]; then
+        echo "Synthesizing the initial hotplug events"
+        udevadm trigger
+
+        # wait for the udevd childs to finish
+        echo "Waiting for /dev to be fully populated"
+        if udevadm settle; then
+            echo 'done'
+        else
+            echo 'timeout'
+        fi
+    fi
+
+    ;;
+
+    stop)
+    echo "Stopping the hotplug events dispatcher"
+    start-stop-daemon --stop --name udevd --quiet --oknodo
+    ;;
+
+    restart)
+    echo "Stopping the hotplug events dispatcher"
+    start-stop-daemon --stop --name udevd --quiet --oknodo
+
+    echo "Startting the hotplug events dispatcher"
+    udevd --daemon
+    ;;
+
+    reload|force-reload)
+    udevadm control --reload_rules
+    ;;
+
+    *)
+    echo "Usage: /etc/init.d/udev {start|stop|restart|reload|force-reload}"
+    exit 1
+    ;;
+esac
+
+exit 0
+
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/libvolume-id-soname.patch b/meta-openvuplus/recipes-core/udev/udev-124/libvolume-id-soname.patch
new file mode 100644 (file)
index 0000000..56365a4
--- /dev/null
@@ -0,0 +1,12 @@
+diff -uNr udev-124-orig/extras/volume_id/lib/Makefile udev-124/extras/volume_id/lib/Makefile
+--- udev-124-orig/extras/volume_id/lib/Makefile        2008-06-12 01:24:30.000000000 -0400
++++ udev-124/extras/volume_id/lib/Makefile     2009-01-14 23:32:42.000000000 -0500
+@@ -113,7 +113,7 @@
+ ifeq ($(libdir),$(usrlibdir))
+       ln -sf $(SHLIB) $(DESTDIR)$(usrlibdir)/libvolume_id.so
+ else
+-      ln -sf $(libdir)/$(SHLIB) $(DESTDIR)$(usrlibdir)/libvolume_id.so
++      ln -sf ../..$(libdir)/$(SHLIB) $(DESTDIR)$(usrlibdir)/libvolume_id.so
+ endif
+       $(INSTALL) -d $(DESTDIR)$(usrlibdir)/pkgconfig
+       $(INSTALL_DATA) libvolume_id.pc $(DESTDIR)$(usrlibdir)/pkgconfig/libvolume_id.pc
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/links.conf b/meta-openvuplus/recipes-core/udev/udev-124/links.conf
new file mode 100644 (file)
index 0000000..a9f8b58
--- /dev/null
@@ -0,0 +1,24 @@
+# This file does not exist. Please do not ask the debian maintainer about it.
+# You may use it to do strange and wonderful things, at your risk.
+
+L fd           /proc/self/fd
+L stdin                /proc/self/fd/0
+L stdout       /proc/self/fd/1
+L stderr       /proc/self/fd/2
+L core         /proc/kcore
+L sndstat      /proc/asound/oss/sndstat
+L MAKEDEV      /sbin/MAKEDEV
+
+D pts
+D shm
+
+M null         c   1 3
+M console      c   5 1
+
+# Hic sunt leones.
+M ppp          c 108 0
+D loop
+M loop/0       b 7 0
+D net
+M net/tun      c 10 200
+
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/local.rules b/meta-openvuplus/recipes-core/udev/udev-124/local.rules
new file mode 100644 (file)
index 0000000..9e0479b
--- /dev/null
@@ -0,0 +1,32 @@
+# There are a number of modifiers that are allowed to be used in some
+# of the different fields. They provide the following subsitutions:
+#
+# %n the "kernel number" of the device.
+#    For example, 'sda3' has a "kernel number" of '3'
+# %e the smallest number for that name which does not matches an existing node
+# %k the kernel name for the device
+# %M the kernel major number for the device
+# %m the kernel minor number for the device
+# %b the bus id for the device
+# %c the string returned by the PROGRAM
+# %s{filename} the content of a sysfs attribute
+# %% the '%' char itself
+#
+
+# Media automounting
+#SUBSYSTEM=="block", ACTION=="add"    RUN+="/etc/udev/scripts/mount.sh"
+#SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh"
+
+# Handle network interface setup
+SUBSYSTEM=="net", ACTION=="add" RUN+="/etc/udev/scripts/network.sh"
+SUBSYSTEM=="net", ACTION=="remove" RUN+="/etc/udev/scripts/network.sh"
+
+# The first rtc device is symlinked to /dev/rtc
+KERNEL=="rtc0", SYMLINK+="rtc"
+
+# Try and modprobe for drivers for new hardware
+ACTION=="add", DEVPATH=="/devices/*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}"
+
+# Create a symlink to any touchscreen input device
+SUBSYSTEM=="input", KERNEL=="event[0-9]*", SYSFS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0"
+SUBSYSTEM=="input", KERNEL=="event[0-9]*", SYSFS{modalias}=="ads7846", SYMLINK+="input/touchscreen0"
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/mount.blacklist b/meta-openvuplus/recipes-core/udev/udev-124/mount.blacklist
new file mode 100644 (file)
index 0000000..d3ebb17
--- /dev/null
@@ -0,0 +1,3 @@
+/dev/loop
+/dev/ram
+/dev/mtdblock
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/mount.sh b/meta-openvuplus/recipes-core/udev/udev-124/mount.sh
new file mode 100644 (file)
index 0000000..be8b3df
--- /dev/null
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+# Called from udev
+# Attemp to mount any added block devices 
+# and remove any removed devices
+#
+
+MOUNT="/bin/mount"
+PMOUNT="/usr/bin/pmount"
+UMOUNT="/bin/umount"
+name="`basename "$DEVNAME"`"
+
+for line in `cat /etc/udev/mount.blacklist | grep -v ^#`
+do
+       if ( echo "$DEVNAME" | grep -q "$line" )
+       then
+               logger "udev/mount.sh" "[$DEVNAME] is blacklisted, ignoring"
+               exit 0
+       fi
+done
+
+automount() {  
+       ! test -d "/media/$name" && mkdir -p "/media/$name"
+       
+       if ! $MOUNT -t auto -o sync $DEVNAME "/media/$name"
+       then
+               #logger "mount.sh/automount" "$MOUNT -t auto $DEVNAME \"/media/$name\" failed!"
+               rm_dir "/media/$name"
+       else
+               logger "mount.sh/automount" "Auto-mount of [/media/$name] successful"
+               touch "/tmp/.automount-$name"
+       fi
+}
+       
+rm_dir() {
+       # We do not want to rm -r populated directories
+       if test "`find "$1" | wc -l | tr -d " "`" -lt 2 -a -d "$1"
+       then
+               ! test -z "$1" && rm -r "$1"
+       else
+               logger "mount.sh/automount" "Not removing non-empty directory [$1]"
+       fi
+}
+
+if [ "$ACTION" = "add" ] && [ -n "$DEVNAME" ]; then
+       if [ -x "$PMOUNT" ]; then
+               $PMOUNT $DEVNAME 2> /dev/null
+       elif [ -x $MOUNT ]; then
+               $MOUNT $DEVNAME 2> /dev/null
+       fi
+       
+       # If the device isn't mounted at this point, it isn't configured in fstab
+       # 20061107: Small correction: The rootfs partition may be called just "rootfs" and not by
+       #           its true device name so this would break. If the rootfs is mounted on two places
+       #           during boot, it confuses the heck out of fsck. So Im auto-adding the root-partition
+       #           to /etc/udev/mount.blacklist via postinst 
+
+       cat /proc/mounts | awk '{print $1}' | grep -q "^$DEVNAME$" || automount 
+       
+fi
+
+
+
+if [ "$ACTION" = "remove" ] && [ -x "$UMOUNT" ] && [ -n "$DEVNAME" ]; then
+       for mnt in `cat /proc/mounts | grep "$DEVNAME" | cut -f 2 -d " " `
+       do
+               $UMOUNT $mnt
+       done
+       
+       # Remove empty directories from auto-mounter
+       test -e "/tmp/.automount-$name" && rm_dir "/media/$name"
+fi
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/mtd-exclude-persistent.patch b/meta-openvuplus/recipes-core/udev/udev-124/mtd-exclude-persistent.patch
new file mode 100644 (file)
index 0000000..204b7b4
--- /dev/null
@@ -0,0 +1,13 @@
+Copyright (c) 2009 MontaVista Software, Inc.  All rights reserved.
+
+--- a/etc/udev/rules.d/60-persistent-storage.rules     2008-06-12 07:24:30.000000000 +0200
++++ b/etc/udev/rules.d/60-persistent-storage.rules     2009-08-18 11:39:23.595063264 +0200
+@@ -10,7 +10,7 @@
+ SUBSYSTEM!="block", GOTO="persistent_storage_end"
+ # skip rules for inappropriate block devices
+-KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-*|md*", GOTO="persistent_storage_end"
++KERNEL=="ram*|loop*|fd*|mtd*|nbd*|gnbd*|dm-*|md*|btibm*", GOTO="persistent_storage_end"
+ # never access non-cdrom removable ide devices, the drivers are causing event loops on open()
+ KERNEL=="hd*[!0-9]", ATTR{removable}=="1", DRIVERS=="ide-cs|ide-floppy", GOTO="persistent_storage_end"
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/network.sh b/meta-openvuplus/recipes-core/udev/udev-124/network.sh
new file mode 100644 (file)
index 0000000..182c26d
--- /dev/null
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+# udevd does clearenv(). Export shell PATH to children.
+export PATH
+
+# Do not run when pcmcia-cs is installed
+test -x /sbin/cardctl && exit 0
+
+# We get two "add" events for hostap cards due to wifi0
+echo "$INTERFACE" | grep -q wifi && exit 0
+
+
+# Check if /etc/init.d/network has been run yet to see if we are 
+# called by starting /etc/rcS.d/S03udev and not by hotplugging a device
+#
+# At this stage, network interfaces should not be brought up
+# automatically because:
+# a)   /etc/init.d/network has not been run yet (security issue)
+# b)   /var has not been populated yet so /etc/resolv,conf points to 
+#      oblivion, making the network unusable
+#
+
+spoofp="`grep ^spoofprotect /etc/network/options`"
+if test -z "$spoofp"
+then
+       # This is the default from /etc/init.d/network
+       spoofp_val=yes
+else
+       spoofp_val=${spoofp#spoofprotect=}
+fi
+
+test "$spoofp_val" = yes && spoofp_val=1 || spoofp_val=0
+
+# I think it is safe to assume that "lo" will always be there ;)
+if test "`cat /proc/sys/net/ipv4/conf/lo/rp_filter`" != "$spoofp_val" -a -n "$spoofp_val"
+then
+       echo "$INTERFACE" >> /dev/udev_network_queue    
+       exit 0
+fi
+
+#
+# Code taken from pcmcia-cs:/etc/pcmcia/network
+#
+
+# if this interface has an entry in /etc/network/interfaces, let ifupdown
+# handle it
+if grep -q "iface \+$INTERFACE" /etc/network/interfaces; then
+  case $ACTION in
+    add)
+       ifconfig | grep -q "^$INTERFACE" || ifup $INTERFACE
+       ;;
+    remove)
+       ifdown $INTERFACE
+       ;;
+  esac
+  
+  exit 0
+fi
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/noasmlinkage.patch b/meta-openvuplus/recipes-core/udev/udev-124/noasmlinkage.patch
new file mode 100644 (file)
index 0000000..d58a7ea
--- /dev/null
@@ -0,0 +1,45 @@
+diff -pru udev-124.orig/test-udev.c udev-124/test-udev.c
+--- udev-124.orig/test-udev.c  2008-06-12 06:24:30.000000000 +0100
++++ udev-124/test-udev.c       2008-07-07 14:43:37.000000000 +0100
+@@ -46,7 +46,7 @@ void log_message(int priority, const cha
+ }
+ #endif
+-static void asmlinkage sig_handler(int signum)
++static void sig_handler(int signum)
+ {
+       switch (signum) {
+               case SIGALRM:
+diff -pru udev-124.orig/udevd.c udev-124/udevd.c
+--- udev-124.orig/udevd.c      2008-06-12 06:24:30.000000000 +0100
++++ udev-124/udevd.c   2008-07-07 14:43:58.000000000 +0100
+@@ -87,7 +87,7 @@ void log_message(int priority, const cha
+ #endif
+-static void asmlinkage udev_event_sig_handler(int signum)
++static void udev_event_sig_handler(int signum)
+ {
+       if (signum == SIGALRM)
+               exit(1);
+@@ -798,7 +798,7 @@ static struct udevd_uevent_msg *get_netl
+       return msg;
+ }
+-static void asmlinkage sig_handler(int signum)
++static void sig_handler(int signum)
+ {
+       switch (signum) {
+               case SIGINT:
+diff -pru udev-124.orig/udevmonitor.c udev-124/udevmonitor.c
+--- udev-124.orig/udevmonitor.c        2008-06-12 06:24:30.000000000 +0100
++++ udev-124/udevmonitor.c     2008-07-07 14:44:24.000000000 +0100
+@@ -97,7 +97,7 @@ static int init_uevent_netlink_sock(void
+       return 0;
+ }
+-static void asmlinkage sig_handler(int signum)
++static void sig_handler(int signum)
+ {
+       if (signum == SIGINT || signum == SIGTERM)
+               udev_exit = 1;
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/permissions.rules b/meta-openvuplus/recipes-core/udev/udev-124/permissions.rules
new file mode 100644 (file)
index 0000000..940d163
--- /dev/null
@@ -0,0 +1,119 @@
+ACTION!="add", GOTO="permissions_end"
+
+# workarounds needed to synchronize with sysfs
+# only needed for kernels < v2.6.18-rc1
+ENV{PHYSDEVPATH}!="?*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus"
+SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*",    WAIT_FOR_SYSFS="ioerr_cnt"
+# only needed for kernels < 2.6.16
+SUBSYSTEM=="net",                              WAIT_FOR_SYSFS="address"
+# only needed for kernels < 2.6.17
+SUBSYSTEM=="net", ENV{DRIVER}=="?*",           WAIT_FOR_SYSFS="device/driver"
+
+# devices needed to load the drivers providing them
+KERNEL=="tun",                                 OPTIONS+="ignore_remove"
+KERNEL=="ppp",                                 OPTIONS+="ignore_remove"
+KERNEL=="loop[0-9]*",                          OPTIONS+="ignore_remove"
+
+# default permissions for block devices
+SUBSYSTEM=="block",                            GROUP="disk"
+# the aacraid driver is broken and reports that disks removable (see #404927)
+SUBSYSTEM=="block", ATTRS{removable}=="1", \
+       DRIVERS!="aacraid",                     GROUP="floppy"
+# all block devices on these buses are "removable"
+SUBSYSTEM=="block", SUBSYSTEMS=="usb|ieee1394|mmc|pcmcia", GROUP="floppy"
+
+# IDE devices
+KERNEL=="hd[a-z]|pcd[0-9]*",                   DRIVERS=="ide-cdrom|pcd", \
+       IMPORT{program}="cdrom_id --export $tempnode"
+ENV{ID_CDROM}=="?*",                           GROUP="cdrom"
+KERNEL=="ht[0-9]*",                            GROUP="tape"
+KERNEL=="nht[0-9]*",                           GROUP="tape"
+
+# SCSI devices
+KERNEL=="sr[0-9]*", IMPORT{program}="cdrom_id --export $tempnode"
+SUBSYSTEMS=="scsi", ATTRS{type}=="1",                          GROUP="tape"
+SUBSYSTEMS=="scsi", ATTRS{type}=="4",                          GROUP="cdrom"
+SUBSYSTEMS=="scsi", ATTRS{type}=="5",                          GROUP="cdrom"
+SUBSYSTEMS=="scsi", ATTRS{type}=="8",                          GROUP="tape"
+
+# USB devices
+KERNEL=="legousbtower*",       MODE="0666"
+KERNEL=="lp[0-9]*", SUBSYSTEMS=="usb",         GROUP="lp"
+
+# usbfs-like devices
+SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \
+                               MODE="0664"
+
+# iRiver music players
+SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",  GROUP="plugdev", \
+       ATTRS{idVendor}=="4102", ATTRS{idProduct}=="10[01][135789]"
+
+# serial devices
+SUBSYSTEM=="tty",                              GROUP="dialout"
+SUBSYSTEM=="capi",                             GROUP="dialout"
+SUBSYSTEM=="slamr",                            GROUP="dialout"
+SUBSYSTEM=="zaptel",                           GROUP="dialout"
+
+# vc devices (all members of the tty subsystem)
+KERNEL=="ptmx",                        MODE="0666",    GROUP="root"
+KERNEL=="console",             MODE="0600",    GROUP="root"
+KERNEL=="tty",                 MODE="0666",    GROUP="root"
+KERNEL=="tty[0-9]*",                           GROUP="root"
+KERNEL=="pty*",                        MODE="0666",    GROUP="tty"
+
+# video devices
+SUBSYSTEM=="video4linux",                      GROUP="video"
+SUBSYSTEM=="drm",                              GROUP="video"
+SUBSYSTEM=="dvb",                              GROUP="video"
+SUBSYSTEM=="em8300",                           GROUP="video"
+SUBSYSTEM=="graphics",                         GROUP="video"
+SUBSYSTEM=="nvidia",                           GROUP="video"
+
+# misc devices
+KERNEL=="random",              MODE="0666"
+KERNEL=="urandom",             MODE="0666"
+KERNEL=="mem",                 MODE="0640",    GROUP="kmem"
+KERNEL=="kmem",                        MODE="0640",    GROUP="kmem"
+KERNEL=="port",                        MODE="0640",    GROUP="kmem"
+KERNEL=="full",                        MODE="0666"
+KERNEL=="null",                        MODE="0666"
+KERNEL=="zero",                        MODE="0666"
+KERNEL=="inotify",             MODE="0666"
+KERNEL=="sgi_fetchop",         MODE="0666"
+KERNEL=="sonypi",              MODE="0666"
+KERNEL=="agpgart",                             GROUP="video"
+KERNEL=="rtc|rtc[0-9]*",                       GROUP="audio"
+KERNEL=="kqemu",               MODE="0666"
+KERNEL=="tun",                 MODE="0666",
+
+KERNEL=="cdemu[0-9]*",                         GROUP="cdrom"
+KERNEL=="pktcdvd[0-9]*",                       GROUP="cdrom"
+KERNEL=="pktcdvd",             MODE="0644"
+
+# printers and parallel devices
+SUBSYSTEM=="printer",                          GROUP="lp"
+SUBSYSTEM=="ppdev",                            GROUP="lp"
+KERNEL=="irlpt*",                              GROUP="lp"
+KERNEL=="pt[0-9]*",                            GROUP="tape"
+KERNEL=="pht[0-9]*",                           GROUP="tape"
+
+# sound devices
+SUBSYSTEM=="sound",                            GROUP="audio"
+
+# ieee1394 devices       
+KERNEL=="raw1394",                             GROUP="disk"
+KERNEL=="dv1394*",                             GROUP="video"
+KERNEL=="video1394*",                          GROUP="video"
+
+# input devices
+KERNEL=="event[0-9]*", ATTRS{name}=="*dvb*|*DVB*|* IR *" \
+                               MODE="0664",    GROUP="video"
+KERNEL=="js[0-9]*",            MODE="0664"
+KERNEL=="lirc[0-9]*",                          GROUP="video"
+
+# AOE character devices
+SUBSYSTEM=="aoe",              MODE="0220",    GROUP="disk"
+SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440"
+
+LABEL="permissions_end"
+
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/run.rules b/meta-openvuplus/recipes-core/udev/udev-124/run.rules
new file mode 100644 (file)
index 0000000..75d7137
--- /dev/null
@@ -0,0 +1,14 @@
+# debugging monitor
+RUN+="socket:/org/kernel/udev/monitor"
+
+# run a command on remove events
+ACTION=="remove", ENV{REMOVE_CMD}!="", RUN+="$env{REMOVE_CMD}"
+
+# ignore the events generated by virtual consoles
+KERNEL=="ptmx",                OPTIONS+="last_rule"
+KERNEL=="console",     OPTIONS+="last_rule"
+KERNEL=="tty"  ,       OPTIONS+="last_rule"
+KERNEL=="tty[0-9]*",   OPTIONS+="last_rule"
+KERNEL=="pty*",                OPTIONS+="last_rule"
+SUBSYSTEM=="vc",       OPTIONS+="last_rule"
+
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/series b/meta-openvuplus/recipes-core/udev/udev-124/series
new file mode 100644 (file)
index 0000000..a77b0dc
--- /dev/null
@@ -0,0 +1,6 @@
+noasmlinkage.patch -p1
+flags.patch -p1
+vol_id_ld.patch -p1
+udevtrigger_add_devname_filtering.patch -p1
+libvolume-id-soname.patch -p1
+mtd-exclude-persistent.patch -p1
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/udev.rules b/meta-openvuplus/recipes-core/udev/udev-124/udev.rules
new file mode 100644 (file)
index 0000000..67326ee
--- /dev/null
@@ -0,0 +1,116 @@
+# There are a number of modifiers that are allowed to be used in some
+# of the different fields. They provide the following subsitutions:
+#
+# %n the "kernel number" of the device.
+#    For example, 'sda3' has a "kernel number" of '3'
+# %e the smallest number for that name which does not matches an existing node
+# %k the kernel name for the device
+# %M the kernel major number for the device
+# %m the kernel minor number for the device
+# %b the bus id for the device
+# %c the string returned by the PROGRAM
+# %s{filename} the content of a sysfs attribute
+# %% the '%' char itself
+#
+
+# workaround for devices which do not report media changes
+SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", \
+       ENV{ID_MODEL}=="IOMEGA_ZIP*",   NAME="%k", OPTIONS+="all_partitions"
+SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTRS{media}=="floppy", \
+       OPTIONS+="all_partitions"
+
+# SCSI devices
+SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*",        NAME="scd%n", SYMLINK+="sr%n"
+
+# USB devices
+SUBSYSTEMS=="usb", KERNEL=="auer[0-9]*",       NAME="usb/%k"
+SUBSYSTEMS=="usb", KERNEL=="cpad[0-9]*",       NAME="usb/%k"
+SUBSYSTEMS=="usb", KERNEL=="dabusb*",          NAME="usb/%k"
+SUBSYSTEMS=="usb", KERNEL=="hiddev*",          NAME="usb/%k"
+SUBSYSTEMS=="usb", KERNEL=="legousbtower*",    NAME="usb/%k"
+SUBSYSTEMS=="usb", KERNEL=="lp[0-9]*",         NAME="usb/%k"
+SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", \
+       ATTRS{product}=="Palm Handheld*|Handspring Visor|palmOne Handheld", \
+                                       SYMLINK+="pilot"
+
+# usbfs-like devices
+SUBSYSTEM=="usb_device",       PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", ACTION=="add", \
+                               NAME="%c"
+SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",  NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}"
+
+# serial devices
+KERNEL=="capi",                        NAME="capi20", SYMLINK+="isdn/capi20"
+KERNEL=="capi[0-9]*",          NAME="capi/%n"
+
+# video devices
+KERNEL=="dvb*",                        PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}", ACTION=="add", \
+                               NAME="%c"
+KERNEL=="card[0-9]*",          NAME="dri/%k"
+
+# misc devices
+KERNEL=="hw_random",           NAME="hwrng"
+KERNEL=="tun",                 NAME="net/%k"
+KERNEL=="evtchn",              NAME="xen/%k"
+
+KERNEL=="cdemu[0-9]*",         NAME="cdemu/%n"
+KERNEL=="pktcdvd[0-9]*",       NAME="pktcdvd/%n"
+KERNEL=="pktcdvd",             NAME="pktcdvd/control"
+
+KERNEL=="cpu[0-9]*",           NAME="cpu/%n/cpuid"
+KERNEL=="msr[0-9]*",           NAME="cpu/%n/msr"
+KERNEL=="microcode",           NAME="cpu/microcode"
+
+KERNEL=="umad*",               NAME="infiniband/%k"
+KERNEL=="issm*",               NAME="infiniband/%k"
+KERNEL=="uverbs*",             NAME="infiniband/%k"
+KERNEL=="ucm*",                        NAME="infiniband/%k"
+KERNEL=="rdma_ucm",            NAME="infiniband/%k"
+
+# ALSA devices
+KERNEL=="controlC[0-9]*",      NAME="snd/%k"
+KERNEL=="hwC[D0-9]*",          NAME="snd/%k"
+KERNEL=="pcmC[D0-9cp]*",       NAME="snd/%k"
+KERNEL=="midiC[D0-9]*",                NAME="snd/%k"
+KERNEL=="timer",               NAME="snd/%k"
+KERNEL=="seq",                 NAME="snd/%k"
+
+# ieee1394 devices       
+KERNEL=="dv1394*",             NAME="dv1394/%n"
+KERNEL=="video1394*",          NAME="video1394/%n"
+
+# input devices
+KERNEL=="mice",                        NAME="input/%k"
+KERNEL=="mouse[0-9]*",         NAME="input/%k"
+KERNEL=="event[0-9]*",         NAME="input/%k"
+KERNEL=="js[0-9]*",            NAME="input/%k"
+KERNEL=="ts[0-9]*",            NAME="input/%k"
+KERNEL=="uinput",              NAME="input/%k"
+
+# Zaptel
+KERNEL=="zapctl",              NAME="zap/ctl"
+KERNEL=="zaptimer",            NAME="zap/timer"
+KERNEL=="zapchannel",          NAME="zap/channel"
+KERNEL=="zappseudo",           NAME="zap/pseudo"
+KERNEL=="zap[0-9]*",           NAME="zap/%n"
+
+# AOE character devices
+SUBSYSTEM=="aoe", KERNEL=="discover",  NAME="etherd/%k"
+SUBSYSTEM=="aoe", KERNEL=="err",       NAME="etherd/%k"
+SUBSYSTEM=="aoe", KERNEL=="interfaces",        NAME="etherd/%k"
+SUBSYSTEM=="aoe", KERNEL=="revalidate",        NAME="etherd/%k"
+
+# device mapper creates its own device nodes, so ignore these
+KERNEL=="dm-[0-9]*",           OPTIONS+="ignore_device"
+KERNEL=="device-mapper",       NAME="mapper/control"
+
+KERNEL=="rfcomm[0-9]*", NAME="%k", GROUP="users", MODE="0660"
+
+# Firmware Helper
+#ACTION=="add", SUBSYSTEM=="firmware", RUN+="/lib/udev/firmware.sh"
+
+# Samsung UARTS
+KERNEL=="s3c2410_serial[0-9]",   NAME="ttySAC%n"
+
+# MXC UARTs
+KERNEL=="ttymxc[0-4]",   NAME="ttymxc%n"
+
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/udevtrigger_add_devname_filtering.patch b/meta-openvuplus/recipes-core/udev/udev-124/udevtrigger_add_devname_filtering.patch
new file mode 100644 (file)
index 0000000..5182542
--- /dev/null
@@ -0,0 +1,99 @@
+diff -pru udev-124.orig/udevtrigger.c udev-124/udevtrigger.c
+--- udev-124.orig/udevtrigger.c        2008-06-12 06:24:30.000000000 +0100
++++ udev-124/udevtrigger.c     2008-07-07 15:10:09.000000000 +0100
+@@ -42,6 +42,8 @@ static int dry_run;
+ LIST_HEAD(device_list);
+ LIST_HEAD(filter_subsystem_match_list);
+ LIST_HEAD(filter_subsystem_nomatch_list);
++LIST_HEAD(filter_kernel_match_list);
++LIST_HEAD(filter_kernel_nomatch_list);
+ LIST_HEAD(filter_attr_match_list);
+ LIST_HEAD(filter_attr_nomatch_list);
+ static int sock = -1;
+@@ -331,6 +333,26 @@ static int attr_match(const char *path, 
+       return 0;
+ }
++static int kernel_filtered(const char *kernel)
++{
++      struct name_entry *loop_name;
++
++      /* skip devices matching the prohibited kernel device names */
++      list_for_each_entry(loop_name, &filter_kernel_nomatch_list, node)
++              if (fnmatch(loop_name->name, kernel, 0) == 0)
++                      return 1;
++
++      /* skip devices not matching the listed kernel device names */
++      if (!list_empty(&filter_kernel_match_list)) {
++              list_for_each_entry(loop_name, &filter_kernel_match_list, node)
++                      if (fnmatch(loop_name->name, kernel, 0) == 0)
++                              return 0;
++              return 1;
++      }
++
++      return 0;
++}
++
+ static int attr_filtered(const char *path)
+ {
+       struct name_entry *loop_name;
+@@ -409,6 +431,9 @@ static void scan_subsystem(const char *s
+                                       if (dent2->d_name[0] == '.')
+                                               continue;
++                                      if (kernel_filtered(dent2->d_name))
++                                              continue;
++
+                                       strlcpy(dirname2, dirname, sizeof(dirname2));
+                                       strlcat(dirname2, "/", sizeof(dirname2));
+                                       strlcat(dirname2, dent2->d_name, sizeof(dirname2));
+@@ -465,6 +490,9 @@ static void scan_block(void)
+                                       if (!strcmp(dent2->d_name,"device"))
+                                               continue;
++                                      if (kernel_filtered(dent2->d_name))
++                                              continue;
++
+                                       strlcpy(dirname2, dirname, sizeof(dirname2));
+                                       strlcat(dirname2, "/", sizeof(dirname2));
+                                       strlcat(dirname2, dent2->d_name, sizeof(dirname2));
+@@ -576,6 +604,8 @@ int udevtrigger(int argc, char *argv[], 
+               { "subsystem-nomatch", 1, NULL, 'S' },
+               { "attr-match", 1, NULL, 'a' },
+               { "attr-nomatch", 1, NULL, 'A' },
++              { "kernel-match", 1, NULL, 'k' },
++              { "kernel-nomatch", 1, NULL, 'K' },
+               { "env", 1, NULL, 'e' },
+               {}
+       };
+@@ -622,6 +652,12 @@ int udevtrigger(int argc, char *argv[], 
+               case 'A':
+                       name_list_add(&filter_attr_nomatch_list, optarg, 0);
+                       break;
++              case 'k':
++                      name_list_add(&filter_kernel_match_list, optarg, 0);
++                      break;
++              case 'K':
++                      name_list_add(&filter_kernel_nomatch_list, optarg, 0);
++                      break;
+               case 'h':
+                       printf("Usage: udevadm trigger OPTIONS\n"
+                              "  --verbose                       print the list of devices while running\n"
+@@ -632,6 +668,8 @@ int udevtrigger(int argc, char *argv[], 
+                              "  --env=<KEY>=<value>             pass an additional key (works only with --socket=)\n"
+                              "  --subsystem-match=<subsystem>   trigger devices from a matching subystem\n"
+                              "  --subsystem-nomatch=<subsystem> exclude devices from a matching subystem\n"
++                             "  --kernel-match=<subsystem>      trigger devices from a matching kernel device name\n"
++                             "  --kernel-nomatch=<subsystem>    exclude devices from a matching kernel device name\n"
+                              "  --attr-match=<file[=<value>]>   trigger devices with a matching sysfs\n"
+                              "                                  attribute\n"
+                              "  --attr-nomatch=<file[=<value>]> exclude devices with a matching sysfs\n"
+@@ -701,6 +739,8 @@ int udevtrigger(int argc, char *argv[], 
+ exit:
+       name_list_cleanup(&filter_subsystem_match_list);
+       name_list_cleanup(&filter_subsystem_nomatch_list);
++      name_list_cleanup(&filter_kernel_match_list);
++      name_list_cleanup(&filter_kernel_nomatch_list);
+       name_list_cleanup(&filter_attr_match_list);
+       name_list_cleanup(&filter_attr_nomatch_list);
diff --git a/meta-openvuplus/recipes-core/udev/udev-124/vol_id_ld.patch b/meta-openvuplus/recipes-core/udev/udev-124/vol_id_ld.patch
new file mode 100644 (file)
index 0000000..11126ee
--- /dev/null
@@ -0,0 +1,17 @@
+---
+ extras/volume_id/Makefile |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: udev-115/extras/volume_id/Makefile
+===================================================================
+--- udev-115.orig/extras/volume_id/Makefile    2007-09-20 18:17:59.000000000 +0200
++++ udev-115/extras/volume_id/Makefile 2007-09-20 18:18:08.000000000 +0200
+@@ -44,7 +44,7 @@
+ ifeq ($(strip $(VOLUME_ID_STATIC)),true)
+       $(Q) $(LD) $(LDFLAGS) -o $@ $@.o $(LIBUDEV) lib/libvolume_id.a $(LIB_OBJS)
+ else
+-      $(Q) $(LD) $(LDFLAGS) -o $@ $@.o $(LIBUDEV) -Llib -lvolume_id $(LIB_OBJS)
++      $(Q) $(LD) -Llib $(LDFLAGS) -o $@ $@.o $(LIBUDEV) -lvolume_id $(LIB_OBJS)
+ endif
+ # man pages
diff --git a/meta-openvuplus/recipes-core/udev/udev-182/init b/meta-openvuplus/recipes-core/udev/udev-182/init
deleted file mode 100644 (file)
index 45e1fc3..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh
-
-### BEGIN INIT INFO
-# Provides:          udev
-# Required-Start:    mountvirtfs
-# Required-Stop:     
-# Default-Start:     S
-# Default-Stop:
-# Short-Description: Start udevd, populate /dev (symlinks only) and load drivers.
-### END INIT INFO
-
-export TZ=/etc/localtime
-
-[ -d /sys/class ] || exit 1
-[ -r /proc/mounts ] || exit 1
-[ -x /lib/udev/udevd ] || exit 1
-[ -f /etc/default/udev ] && . /etc/default/udev
-[ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf
-
-kill_udevd() {
-        pid=`pidof -x udevd`
-        [ -n "$pid" ] && kill $pid
-}
-
-export ACTION=add
-
-echo "Starting udev"
-
-if [ ! -e "/lib/modules/$(uname -r)"/modules.dep ] ; then
-       mkdir -p /lib/modules/$(uname -r)
-       depmod -ae
-fi
-
-# make_extra_nodes
-kill_udevd > "/dev/null" 2>&1
-
-# trigger the sorted events
-echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
-/lib/udev/udevd -d
-
-/usr/bin/udevadm control --env STARTUP=1
-/usr/bin/udevadm trigger --action=add
-#/usr/bin/udevadm settle
-
-exit 0
diff --git a/meta-openvuplus/recipes-core/udev/udev_124.bb b/meta-openvuplus/recipes-core/udev/udev_124.bb
new file mode 100644 (file)
index 0000000..f3060da
--- /dev/null
@@ -0,0 +1,74 @@
+DESCRIPTION = "udev is a daemon which dynamically creates and removes device nodes from \
+/dev/, handles hotplug events and loads drivers at boot time. It replaces \
+the hotplug package and requires a kernel not older than 2.6.12."
+RPROVIDES_${PN} = "hotplug"
+PR = "r31"
+
+SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \
+          file://noasmlinkage.patch;patch=1 \
+          file://flags.patch;patch=1 \
+          file://vol_id_ld.patch;patch=1 \
+          file://udevtrigger_add_devname_filtering.patch;patch=1 \
+          file://libvolume-id-soname.patch;patch=1 \
+          file://mtd-exclude-persistent.patch;patch=1 \
+          file://mount.blacklist \
+          file://run.rules \
+          file://default \
+          file://local.rules \
+          "
+
+SRC_URI_append_vuplus = " \
+       file://40-od-devfs-compatibility.rules \
+       file://42-od-oled-compatibility.rules \
+       file://41-od-linux-2.6.18-misc.rules \
+"
+
+require udev_124.inc
+
+INITSCRIPT_PARAMS = "start 04 S ."
+
+FILES_${PN} += "${base_libdir}/udev/*"
+FILES_${PN}-dbg += "${base_libdir}/udev/.debug"
+UDEV_EXTRAS = "extras/firmware/ extras/scsi_id/ extras/volume_id/"
+EXTRA_OEMAKE += "libudevdir=/lib/udev libdir=${base_libdir} prefix="
+
+do_install () {
+       install -d ${D}${usrsbindir} \
+                  ${D}${sbindir}
+       oe_runmake 'DESTDIR=${D}' INSTALL=install install
+       install -d ${D}${sysconfdir}/init.d
+       install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev
+
+       install -d ${D}${sysconfdir}/default
+       install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/udev
+
+       install -d ${D}${sysconfdir}/udev/rules.d/
+
+       install -m 0644 ${WORKDIR}/mount.blacklist     ${D}${sysconfdir}/udev/
+       install -m 0644 ${WORKDIR}/local.rules         ${D}${sysconfdir}/udev/rules.d/local.rules
+       install -m 0644 ${WORKDIR}/permissions.rules   ${D}${sysconfdir}/udev/rules.d/permissions.rules
+       install -m 0644 ${WORKDIR}/run.rules          ${D}${sysconfdir}/udev/rules.d/run.rules
+       install -m 0644 ${WORKDIR}/udev.rules          ${D}${sysconfdir}/udev/rules.d/udev.rules
+       install -m 0644 ${WORKDIR}/links.conf          ${D}${sysconfdir}/udev/links.conf
+       if [ "${UDEV_DEVFS_RULES}" = "1" ]; then
+               install -m 0644 ${WORKDIR}/devfs-udev.rules ${D}${sysconfdir}/udev/rules.d/devfs-udev.rules
+       fi
+
+       touch ${D}${sysconfdir}/udev/saved.uname
+       touch ${D}${sysconfdir}/udev/saved.cmdline
+       touch ${D}${sysconfdir}/udev/saved.atags
+
+       install -d ${D}${sysconfdir}/udev/scripts/
+
+       install -m 0755 ${WORKDIR}/mount.sh ${D}${sysconfdir}/udev/scripts/mount.sh
+       install -m 0755 ${WORKDIR}/network.sh ${D}${sysconfdir}/udev/scripts
+
+       install -d ${D}${base_libdir}/udev/
+}
+
+do_install_append() {
+       install -m 0644 ${WORKDIR}/??-od-*.rules ${D}${sysconfdir}/udev/rules.d/
+}
+
+SRC_URI[md5sum] = "2ea9229208154229c5d6df6222f74ad7"
+SRC_URI[sha256sum] = "cc9f58ff58fbd3f5868e1f1e368e3c93e1f441afd0ac1dcbd5d01a9ce5b5b0d7"
diff --git a/meta-openvuplus/recipes-core/udev/udev_124.inc b/meta-openvuplus/recipes-core/udev/udev_124.inc
new file mode 100644 (file)
index 0000000..32e59a2
--- /dev/null
@@ -0,0 +1,67 @@
+DESCRIPTION ?= "udev is a program which dynamically creates and removes device nodes from \
+/dev/. It responds to /sbin/hotplug device events and requires a 2.6 kernel."
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI += " \
+          file://udev.rules \
+          file://devfs-udev.rules \
+          file://links.conf \
+           file://permissions.rules \
+          file://mount.sh \
+          file://network.sh \
+          file://local.rules \
+           file://init"
+
+inherit update-rc.d autotools pkgconfig
+
+PARALLEL_MAKE = ""
+UDEV_DEVFS_RULES ?= "0"
+PKG_libvolume-id-dev = "libvolume-id-dev"
+
+INITSCRIPT_NAME = "udev"
+INITSCRIPT_PARAMS = "start 04 S ."
+
+export CROSS = "${TARGET_PREFIX}"
+export HOSTCC = "${BUILD_CC}"
+export udevdir ?= "/dev"
+export usrbindir := "${bindir}"
+export usrsbindir := "${sbindir}"
+export etcdir = "${sysconfdir}"
+LD = "${CC}"
+bindir = "/bin"
+sbindir = "/sbin"
+
+UDEV_EXTRAS = "<override me>"
+EXTRA_OEMAKE = "-e \
+               'EXTRAS=${UDEV_EXTRAS}' \
+               'STRIP=echo'"
+
+do_install () {
+       install -d ${D}${usrsbindir} \
+                  ${D}${sbindir}
+       oe_runmake 'DESTDIR=${D}' INSTALL=install install
+       install -d ${D}${sysconfdir}/init.d
+       install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev
+
+       install -d ${D}${sysconfdir}/udev/rules.d/
+
+       install -m 0644 ${WORKDIR}/local.rules         ${D}${sysconfdir}/udev/rules.d/local.rules
+       install -m 0644 ${WORKDIR}/permissions.rules   ${D}${sysconfdir}/udev/rules.d/permissions.rules
+       install -m 0644 ${WORKDIR}/udev.rules          ${D}${sysconfdir}/udev/rules.d/udev.rules
+       if [ "${UDEV_DEVFS_RULES}" = "1" ]; then
+               install -m 0644 ${WORKDIR}/devfs-udev.rules ${D}${sysconfdir}/udev/rules.d/devfs-udev.rules
+       fi
+
+       install -d ${D}${sysconfdir}/udev/scripts/
+
+       install -m 0755 ${WORKDIR}/mount.sh ${D}${sysconfdir}/udev/scripts/mount.sh
+       install -m 0755 ${WORKDIR}/network.sh ${D}${sysconfdir}/udev/scripts
+}
+
+PACKAGES =+ "udev-utils libvolume-id libvolume-id-dev"
+FILES_libvolume-id-dev = "${includedir}/libvolume_id.h ${libdir}/libvolume_id.a ${libdir}/libvolume_id.so ${libdir}/pkgconfig/libvolume_id.pc"
+FILES_udev-utils = "${usrbindir}/udevinfo ${sbindir}/udevadm ${usrbindir}/udevtest"
+FILES_libvolume-id = "${base_libdir}/libvolume_id.so.*"
+FILES_${PN} += "${usrbindir}/* ${usrsbindir}/udevd"
+FILES_${PN}-dbg += "${usrbindir}/.debug ${usrsbindir}/.debug"
diff --git a/meta-openvuplus/recipes-core/udev/udev_182.bbappend b/meta-openvuplus/recipes-core/udev/udev_182.bbappend
deleted file mode 100644 (file)
index 7f533e4..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-PR .= "-dream1"
-
-SRC_URI += " \
-       file://init \
-"
-
-inherit update-rc.d
-
-INITSCRIPT_NAME = "udev"
-INITSCRIPT_PARAMS = "start 03 S ."
-
-do_install_append () {
-       rm ${D}${sysconfdir}/udev/rules.d/*.rules || /bin/true
-       install -d ${D}${sysconfdir}/init.d
-       install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev
-}
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/${P}:"
diff --git a/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers-2.6.31/0001-implement-TIF_RESTORE_SIGMASK-support-and-enable-the.patch b/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers-2.6.31/0001-implement-TIF_RESTORE_SIGMASK-support-and-enable-the.patch
new file mode 100644 (file)
index 0000000..1dee314
--- /dev/null
@@ -0,0 +1,429 @@
+Path: news.gmane.org!not-for-mail
+From: Mikael Pettersson <mikpe@it.uu.se>
+Newsgroups: gmane.linux.ports.arm.kernel
+Subject: [PATCH][v3] ARM support for
+       TIF_RESTORE_SIGMASK/pselect6/ppoll/epoll_pwait
+Date: Sat, 15 Aug 2009 13:09:28 +0200 (MEST)
+Lines: 362
+Approved: news@gmane.org
+Message-ID: <200908151109.n7FB9Sbs000150@pilspetsen.it.uu.se>
+NNTP-Posting-Host: lo.gmane.org
+Mime-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+X-Trace: ger.gmane.org 1250334940 22899 80.91.229.12 (15 Aug 2009 11:15:40 GMT)
+X-Complaints-To: usenet@ger.gmane.org
+NNTP-Posting-Date: Sat, 15 Aug 2009 11:15:40 +0000 (UTC)
+To: linux-arm-kernel@lists.arm.linux.org.uk
+Original-X-From: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.arm.linux.org.uk Sat Aug 15 13:15:33 2009
+Return-path: <linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.arm.linux.org.uk>
+Envelope-to: linux-arm-kernel@m.gmane.org
+Original-Received: from zeniv.linux.org.uk ([195.92.253.2])
+       by lo.gmane.org with esmtp (Exim 4.50)
+       id 1McHER-0000U2-PG
+       for linux-arm-kernel@m.gmane.org; Sat, 15 Aug 2009 13:15:31 +0200
+Original-Received: from [2002:4e20:1eda:1:201:3dff:fe00:156] (helo=lists.arm.linux.org.uk)
+       by ZenIV.linux.org.uk with esmtpsa (Exim 4.69 #1 (Red Hat Linux))
+       id 1McH9u-0005LV-3W; Sat, 15 Aug 2009 11:10:57 +0000
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+       d=arm.linux.org.uk; s=lists; h=Date:Message-Id:From:To:Subject:
+       List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:
+       List-Subscribe:MIME-Version:Content-Type:
+       Content-Transfer-Encoding; bh=RVq9hPAexlUcptd3h6j5nomOyoEIjcDWAP
+       VeJtlhsa4=; b=HAoqRMC9svNzKlR0f938E0cRlLoJZvG2aSun171woWZAClu/Ud
+       IYN0iD2vm4eF+kYQkTYD6PGFCMbNnugmZe6gCpS0QhijoKyOzRBdykQHJuOLQtLE
+       q9KJzp24cQ/vwsV2+O1OqcmIFboIg2L5JQaUuv0djS7OkdspH0ysmi1lg=
+Original-Received: from [::1] (helo=lists.arm.linux.org.uk)
+       by lists.arm.linux.org.uk with esmtp (Exim 4.69)
+       (envelope-from <linux-arm-kernel-bounces@lists.arm.linux.org.uk>)
+       id 1McH9o-0002us-34; Sat, 15 Aug 2009 12:10:44 +0100
+Original-Received: from aun.it.uu.se ([130.238.12.36] ident=root)
+       by lists.arm.linux.org.uk with esmtps (TLSv1:AES256-SHA:256)
+       (Exim 4.69) (envelope-from <mikpe@user.it.uu.se>) id 1McH8h-0002uj-Ck
+       for linux-arm-kernel@lists.arm.linux.org.uk;
+       Sat, 15 Aug 2009 12:09:35 +0100
+Original-Received: from pilspetsen.it.uu.se (daemon@pilspetsen.it.uu.se [130.238.18.39])
+       by aun.it.uu.se (8.13.6/8.13.6) with ESMTP id n7FB9S04005839
+       for <linux-arm-kernel@lists.arm.linux.org.uk>;
+       Sat, 15 Aug 2009 13:09:28 +0200 (MEST)
+Original-Received: (from mikpe@localhost)
+       by pilspetsen.it.uu.se (8.13.8+Sun/8.13.7) id n7FB9Sbs000150
+       for linux-arm-kernel@lists.arm.linux.org.uk;
+       Sat, 15 Aug 2009 13:09:28 +0200 (MEST)
+X-BeenThere: linux-arm-kernel@lists.arm.linux.org.uk
+X-Mailman-Version: 2.1.9
+Precedence: list
+List-Id: ARM Linux kernel discussions <linux-arm-kernel.lists.arm.linux.org.uk>
+List-Unsubscribe: <http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel>,
+       <mailto:linux-arm-kernel-request@lists.arm.linux.org.uk?subject=unsubscribe>
+List-Archive: <http://lists.arm.linux.org.uk/lurker/list/linux-arm-kernel.html>
+List-Post: <mailto:linux-arm-kernel@lists.arm.linux.org.uk>
+List-Help: <mailto:linux-arm-kernel-request@lists.arm.linux.org.uk?subject=help>
+List-Subscribe: <http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel>,
+       <mailto:linux-arm-kernel-request@lists.arm.linux.org.uk?subject=subscribe>
+Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.arm.linux.org.uk
+Xref: news.gmane.org gmane.linux.ports.arm.kernel:64340
+Archived-At: <http://permalink.gmane.org/gmane.linux.ports.arm.kernel/64340>
+
+This patch adds support for TIF_RESTORE_SIGMASK to ARM's signal handling,
+which allows to hook up the pselect6, ppoll, and epoll_pwait syscalls on ARM.
+
+Tested here with eabi userspace and a test program with a deliberate race
+between a child's exit and the parent's sigprocmask/select sequence.
+Using sys_pselect6() instead of sigprocmask/select reliably prevents the race.
+
+The other arch's support for TIF_RESTORE_SIGMASK has evolved over time:
+
+In 2.6.16:
+- add TIF_RESTORE_SIGMASK which parallels TIF_SIGPENDING
+- test both when checking for pending signal [bad, changed later]
+- reimplement sys_sigsuspend() to use current->saved_sigmask,
+  TIF_RESTORE_SIGMASK [changed later], and -ERESTARTNOHAND;
+  ditto for sys_rt_sigsuspend(), but drop private code and
+  use common code via __ARCH_WANT_SYS_RT_SIGSUSPEND;
+- there are now no "extra" calls to do_signal() so its oldset
+  parameter is always &current->blocked so need not be passed,
+  also its return value is changed to void
+- change handle_signal() to return 0/-errno
+- change do_signal() to honor TIF_RESTORE_SIGMASK:
+  + get oldset from current->saved_sigmask if TIF_RESTORE_SIGMASK is set
+  + if handle_signal() was successful then clear TIF_RESTORE_SIGMASK
+  + if no signal was delivered and TIF_RESTORE_SIGMASK is set then
+    clear it and restore the sigmask
+- hook up sys_pselect6() and sys_ppoll()
+
+In 2.6.19:
+- hook up sys_epoll_pwait()
+
+In 2.6.26:
+- allow archs to override how TIF_RESTORE_SIGMASK is implemented;
+  default set_restore_sigmask() sets both TIF_RESTORE_SIGMASK and
+  TIF_SIGPENDING; archs need now just test TIF_SIGPENDING again
+  when checking for pending signal work; some archs now implement
+  TIF_RESTORE_SIGMASK as a secondary/non-atomic thread flag bit
+- call set_restore_sigmask() in sys_sigsuspend() instead of setting
+  TIF_RESTORE_SIGMASK
+
+In 2.6.29-rc:
+- kill sys_pselect7() which no arch wanted
+
+So for 2.6.31-rc6/ARM this patch does the following:
+- Add TIF_RESTORE_SIGMASK. Use the generic set_restore_sigmask()
+  which sets both TIF_SIGPENDING and TIF_RESTORE_SIGMASK, so
+  TIF_RESTORE_SIGMASK need not claim one of the scarce low thread
+  flags, and existing TIF_SIGPENDING and _TIF_WORK_MASK tests need
+  not be extended for TIF_RESTORE_SIGMASK.
+- sys_sigsuspend() is reimplemented to use current->saved_sigmask and
+  set_restore_sigmask(), making it identical to most other archs.
+- The private code for sys_rt_sigsuspend() is removed, instead generic
+  code supplies it via __ARCH_WANT_SYS_RT_SIGSUSPEND.
+- sys_sigsuspend() and sys_rt_sigsuspend() no longer need a pt_regs
+  parameter, so their assembly code wrappers are removed.
+- handle_signal() is changed to return 0 on success or -errno.
+- The oldset parameter to do_signal() is now redundant and removed,
+  and the return value is now also redundant so it's changed to void.
+- do_signal() is changed to honor TIF_RESTORE_SIGMASK:
+  + get oldset from current->saved_sigmask if TIF_RESTORE_SIGMASK is set
+  + if handle_signal() was successful then clear TIF_RESTORE_SIGMASK
+  + if no signal was delivered and TIF_RESTORE_SIGMASK is set then
+    clear it and restore the sigmask
+- Hook up sys_pselect6, sys_ppoll, and sys_epoll_pwait.
+
+Signed-off-by: Mikael Pettersson
+---
+Changes from previous versions:
+
+v2 (only posted as incremental diff against v1):
+- moved sigmask restoration in no-signal-delivered case into
+  "if (syscall)" block for extra protection against exception
+  path also invoking do_signal()
+v3 (this version):
+- moved oldset initialisation into "if (signr > 0)" block,
+  as requested by Russell
+
+ arch/arm/include/asm/thread_info.h |    2 
+ arch/arm/include/asm/unistd.h      |    7 +--
+ arch/arm/kernel/calls.S            |   10 ++--
+ arch/arm/kernel/entry-common.S     |   10 ----
+ arch/arm/kernel/signal.c           |   86 +++++++++++++++----------------------
+ 5 files changed, 48 insertions(+), 67 deletions(-)
+
+diff -rupN linux-2.6.31-rc6/arch/arm/include/asm/thread_info.h linux-2.6.31-rc6.arm-restore-sigmask-v3/arch/arm/include/asm/thread_info.h
+--- linux-2.6.31-rc6/arch/arm/include/asm/thread_info.h        2009-08-14 11:11:10.000000000 +0200
++++ linux-2.6.31-rc6.arm-restore-sigmask-v3/arch/arm/include/asm/thread_info.h 2009-08-14 11:26:44.000000000 +0200
+@@ -140,6 +140,7 @@ extern void vfp_sync_state(struct thread
+ #define TIF_USING_IWMMXT      17
+ #define TIF_MEMDIE            18
+ #define TIF_FREEZE            19
++#define TIF_RESTORE_SIGMASK   20
+ #define _TIF_SIGPENDING               (1 << TIF_SIGPENDING)
+ #define _TIF_NEED_RESCHED     (1 << TIF_NEED_RESCHED)
+@@ -147,6 +148,7 @@ extern void vfp_sync_state(struct thread
+ #define _TIF_POLLING_NRFLAG   (1 << TIF_POLLING_NRFLAG)
+ #define _TIF_USING_IWMMXT     (1 << TIF_USING_IWMMXT)
+ #define _TIF_FREEZE           (1 << TIF_FREEZE)
++#define _TIF_RESTORE_SIGMASK  (1 << TIF_RESTORE_SIGMASK)
+ /*
+  * Change these and you break ASM code in entry-common.S
+diff -rupN linux-2.6.31-rc6/arch/arm/include/asm/unistd.h linux-2.6.31-rc6.arm-restore-sigmask-v3/arch/arm/include/asm/unistd.h
+--- linux-2.6.31-rc6/arch/arm/include/asm/unistd.h     2009-08-14 11:11:10.000000000 +0200
++++ linux-2.6.31-rc6.arm-restore-sigmask-v3/arch/arm/include/asm/unistd.h      2009-08-14 11:26:44.000000000 +0200
+@@ -360,8 +360,8 @@
+ #define __NR_readlinkat                       (__NR_SYSCALL_BASE+332)
+ #define __NR_fchmodat                 (__NR_SYSCALL_BASE+333)
+ #define __NR_faccessat                        (__NR_SYSCALL_BASE+334)
+-                                      /* 335 for pselect6 */
+-                                      /* 336 for ppoll */
++#define __NR_pselect6                 (__NR_SYSCALL_BASE+335)
++#define __NR_ppoll                    (__NR_SYSCALL_BASE+336)
+ #define __NR_unshare                  (__NR_SYSCALL_BASE+337)
+ #define __NR_set_robust_list          (__NR_SYSCALL_BASE+338)
+ #define __NR_get_robust_list          (__NR_SYSCALL_BASE+339)
+@@ -372,7 +372,7 @@
+ #define __NR_vmsplice                 (__NR_SYSCALL_BASE+343)
+ #define __NR_move_pages                       (__NR_SYSCALL_BASE+344)
+ #define __NR_getcpu                   (__NR_SYSCALL_BASE+345)
+-                                      /* 346 for epoll_pwait */
++#define __NR_epoll_pwait              (__NR_SYSCALL_BASE+346)
+ #define __NR_kexec_load                       (__NR_SYSCALL_BASE+347)
+ #define __NR_utimensat                        (__NR_SYSCALL_BASE+348)
+ #define __NR_signalfd                 (__NR_SYSCALL_BASE+349)
+@@ -432,6 +432,7 @@
+ #define __ARCH_WANT_SYS_SIGPENDING
+ #define __ARCH_WANT_SYS_SIGPROCMASK
+ #define __ARCH_WANT_SYS_RT_SIGACTION
++#define __ARCH_WANT_SYS_RT_SIGSUSPEND
+ #if !defined(CONFIG_AEABI) || defined(CONFIG_OABI_COMPAT)
+ #define __ARCH_WANT_SYS_TIME
+diff -rupN linux-2.6.31-rc6/arch/arm/kernel/calls.S linux-2.6.31-rc6.arm-restore-sigmask-v3/arch/arm/kernel/calls.S
+--- linux-2.6.31-rc6/arch/arm/kernel/calls.S   2009-08-14 11:11:10.000000000 +0200
++++ linux-2.6.31-rc6.arm-restore-sigmask-v3/arch/arm/kernel/calls.S    2009-08-14 11:26:44.000000000 +0200
+@@ -81,7 +81,7 @@
+               CALL(sys_ni_syscall)            /* was sys_ssetmask */
+ /* 70 */      CALL(sys_setreuid16)
+               CALL(sys_setregid16)
+-              CALL(sys_sigsuspend_wrapper)
++              CALL(sys_sigsuspend)
+               CALL(sys_sigpending)
+               CALL(sys_sethostname)
+ /* 75 */      CALL(sys_setrlimit)
+@@ -188,7 +188,7 @@
+               CALL(sys_rt_sigpending)
+               CALL(sys_rt_sigtimedwait)
+               CALL(sys_rt_sigqueueinfo)
+-              CALL(sys_rt_sigsuspend_wrapper)
++              CALL(sys_rt_sigsuspend)
+ /* 180 */     CALL(ABI(sys_pread64, sys_oabi_pread64))
+               CALL(ABI(sys_pwrite64, sys_oabi_pwrite64))
+               CALL(sys_chown16)
+@@ -344,8 +344,8 @@
+               CALL(sys_readlinkat)
+               CALL(sys_fchmodat)
+               CALL(sys_faccessat)
+-/* 335 */     CALL(sys_ni_syscall)            /* eventually pselect6 */
+-              CALL(sys_ni_syscall)            /* eventually ppoll */
++/* 335 */     CALL(sys_pselect6)
++              CALL(sys_ppoll)
+               CALL(sys_unshare)
+               CALL(sys_set_robust_list)
+               CALL(sys_get_robust_list)
+@@ -355,7 +355,7 @@
+               CALL(sys_vmsplice)
+               CALL(sys_move_pages)
+ /* 345 */     CALL(sys_getcpu)
+-              CALL(sys_ni_syscall)            /* eventually epoll_pwait */
++              CALL(sys_epoll_pwait)
+               CALL(sys_kexec_load)
+               CALL(sys_utimensat)
+               CALL(sys_signalfd)
+diff -rupN linux-2.6.31-rc6/arch/arm/kernel/entry-common.S linux-2.6.31-rc6.arm-restore-sigmask-v3/arch/arm/kernel/entry-common.S
+--- linux-2.6.31-rc6/arch/arm/kernel/entry-common.S    2009-08-14 11:11:10.000000000 +0200
++++ linux-2.6.31-rc6.arm-restore-sigmask-v3/arch/arm/kernel/entry-common.S     2009-08-14 11:26:44.000000000 +0200
+@@ -373,16 +373,6 @@ sys_clone_wrapper:
+               b       sys_clone
+ ENDPROC(sys_clone_wrapper)
+-sys_sigsuspend_wrapper:
+-              add     r3, sp, #S_OFF
+-              b       sys_sigsuspend
+-ENDPROC(sys_sigsuspend_wrapper)
+-
+-sys_rt_sigsuspend_wrapper:
+-              add     r2, sp, #S_OFF
+-              b       sys_rt_sigsuspend
+-ENDPROC(sys_rt_sigsuspend_wrapper)
+-
+ sys_sigreturn_wrapper:
+               add     r0, sp, #S_OFF
+               b       sys_sigreturn
+diff -rupN linux-2.6.31-rc6/arch/arm/kernel/signal.c linux-2.6.31-rc6.arm-restore-sigmask-v3/arch/arm/kernel/signal.c
+--- linux-2.6.31-rc6/arch/arm/kernel/signal.c  2009-08-14 11:11:10.000000000 +0200
++++ linux-2.6.31-rc6.arm-restore-sigmask-v3/arch/arm/kernel/signal.c   2009-08-14 11:26:44.000000000 +0200
+@@ -47,57 +47,22 @@ const unsigned long sigreturn_codes[7] =
+       MOV_R7_NR_RT_SIGRETURN, SWI_SYS_RT_SIGRETURN, SWI_THUMB_RT_SIGRETURN,
+ };
+-static int do_signal(sigset_t *oldset, struct pt_regs * regs, int syscall);
+-
+ /*
+  * atomically swap in the new signal mask, and wait for a signal.
+  */
+-asmlinkage int sys_sigsuspend(int restart, unsigned long oldmask, old_sigset_t mask, struct pt_regs *regs)
++asmlinkage int sys_sigsuspend(int restart, unsigned long oldmask, old_sigset_t mask)
+ {
+-      sigset_t saveset;
+-
+       mask &= _BLOCKABLE;
+       spin_lock_irq(&current->sighand->siglock);
+-      saveset = current->blocked;
++      current->saved_sigmask = current->blocked;
+       siginitset(&current->blocked, mask);
+       recalc_sigpending();
+       spin_unlock_irq(&current->sighand->siglock);
+-      regs->ARM_r0 = -EINTR;
+-
+-      while (1) {
+-              current->state = TASK_INTERRUPTIBLE;
+-              schedule();
+-              if (do_signal(&saveset, regs, 0))
+-                      return regs->ARM_r0;
+-      }
+-}
+-
+-asmlinkage int
+-sys_rt_sigsuspend(sigset_t __user *unewset, size_t sigsetsize, struct pt_regs *regs)
+-{
+-      sigset_t saveset, newset;
+-
+-      /* XXX: Don't preclude handling different sized sigset_t's. */
+-      if (sigsetsize != sizeof(sigset_t))
+-              return -EINVAL;
+-
+-      if (copy_from_user(&newset, unewset, sizeof(newset)))
+-              return -EFAULT;
+-      sigdelsetmask(&newset, ~_BLOCKABLE);
+-
+-      spin_lock_irq(&current->sighand->siglock);
+-      saveset = current->blocked;
+-      current->blocked = newset;
+-      recalc_sigpending();
+-      spin_unlock_irq(&current->sighand->siglock);
+-      regs->ARM_r0 = -EINTR;
+-      while (1) {
+-              current->state = TASK_INTERRUPTIBLE;
+-              schedule();
+-              if (do_signal(&saveset, regs, 0))
+-                      return regs->ARM_r0;
+-      }
++      current->state = TASK_INTERRUPTIBLE;
++      schedule();
++      set_restore_sigmask();
++      return -ERESTARTNOHAND;
+ }
+ asmlinkage int 
+@@ -545,7 +510,7 @@ static inline void setup_syscall_restart
+ /*
+  * OK, we're invoking a handler
+  */   
+-static void
++static int
+ handle_signal(unsigned long sig, struct k_sigaction *ka,
+             siginfo_t *info, sigset_t *oldset,
+             struct pt_regs * regs, int syscall)
+@@ -596,7 +561,7 @@ handle_signal(unsigned long sig, struct 
+       if (ret != 0) {
+               force_sigsegv(sig, tsk);
+-              return;
++              return ret;
+       }
+       /*
+@@ -610,6 +575,7 @@ handle_signal(unsigned long sig, struct 
+       recalc_sigpending();
+       spin_unlock_irq(&tsk->sighand->siglock);
++      return 0;
+ }
+ /*
+@@ -621,7 +587,7 @@ handle_signal(unsigned long sig, struct 
+  * the kernel can handle, and then we build all the user-level signal handling
+  * stack-frames in one go after that.
+  */
+-static int do_signal(sigset_t *oldset, struct pt_regs *regs, int syscall)
++static void do_signal(struct pt_regs *regs, int syscall)
+ {
+       struct k_sigaction ka;
+       siginfo_t info;
+@@ -634,7 +600,7 @@ static int do_signal(sigset_t *oldset, s
+        * if so.
+        */
+       if (!user_mode(regs))
+-              return 0;
++              return;
+       if (try_to_freeze())
+               goto no_signal;
+@@ -643,9 +609,24 @@ static int do_signal(sigset_t *oldset, s
+       signr = get_signal_to_deliver(&info, &ka, regs, NULL);
+       if (signr > 0) {
+-              handle_signal(signr, &ka, &info, oldset, regs, syscall);
++              sigset_t *oldset;
++
++              if (test_thread_flag(TIF_RESTORE_SIGMASK))
++                      oldset = &current->saved_sigmask;
++              else
++                      oldset = &current->blocked;
++              if (handle_signal(signr, &ka, &info, oldset, regs, syscall) == 0) {
++                      /*
++                       * A signal was successfully delivered; the saved
++                       * sigmask will have been stored in the signal frame,
++                       * and will be restored by sigreturn, so we can simply
++                       * clear the TIF_RESTORE_SIGMASK flag.
++                       */
++                      if (test_thread_flag(TIF_RESTORE_SIGMASK))
++                              clear_thread_flag(TIF_RESTORE_SIGMASK);
++              }
+               single_step_set(current);
+-              return 1;
++              return;
+       }
+  no_signal:
+@@ -697,14 +678,21 @@ static int do_signal(sigset_t *oldset, s
+                   regs->ARM_r0 == -ERESTARTNOINTR) {
+                       setup_syscall_restart(regs);
+               }
++
++              /* If there's no signal to deliver, we just put the saved sigmask
++               * back.
++               */
++              if (test_thread_flag(TIF_RESTORE_SIGMASK)) {
++                      clear_thread_flag(TIF_RESTORE_SIGMASK);
++                      sigprocmask(SIG_SETMASK, &current->saved_sigmask, NULL);
++              }
+       }
+       single_step_set(current);
+-      return 0;
+ }
+ asmlinkage void
+ do_notify_resume(struct pt_regs *regs, unsigned int thread_flags, int syscall)
+ {
+       if (thread_flags & _TIF_SIGPENDING)
+-              do_signal(&current->blocked, regs, syscall);
++              do_signal(regs, syscall);
+ }
+
+-------------------------------------------------------------------
+List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
+FAQ:        http://www.arm.linux.org.uk/mailinglists/faq.php
+Etiquette:  http://www.arm.linux.org.uk/mailinglists/etiquette.php
+
diff --git a/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers-2.6.31/dvbapi-5.3.patch b/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers-2.6.31/dvbapi-5.3.patch
new file mode 100644 (file)
index 0000000..876801e
--- /dev/null
@@ -0,0 +1,190 @@
+diff --git a/include/linux/dvb/audio.h b/include/linux/dvb/audio.h
+index fec66bd..24cca40 100644
+--- a/include/linux/dvb/audio.h
++++ b/include/linux/dvb/audio.h
+@@ -24,7 +24,7 @@
+ #ifndef _DVBAUDIO_H_
+ #define _DVBAUDIO_H_
+-#include <linux/types.h>
++#include <asm/types.h>
+ typedef enum {
+       AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */
+diff --git a/include/linux/dvb/dmx.h b/include/linux/dvb/dmx.h
+index fef9437..698fe94 100644
+--- a/include/linux/dvb/dmx.h
++++ b/include/linux/dvb/dmx.h
+@@ -24,7 +24,7 @@
+ #ifndef _DVBDMX_H_
+ #define _DVBDMX_H_
+-#include <linux/types.h>
++#include <asm/types.h>
+ #ifdef __KERNEL__
+ #include <linux/time.h>
+ #else
+@@ -151,5 +151,7 @@ struct dmx_stc {
+ #define DMX_GET_CAPS             _IOR('o', 48, dmx_caps_t)
+ #define DMX_SET_SOURCE           _IOW('o', 49, dmx_source_t)
+ #define DMX_GET_STC              _IOWR('o', 50, struct dmx_stc)
++#define DMX_ADD_PID              _IOW('o', 51, __u16)
++#define DMX_REMOVE_PID           _IOW('o', 52, __u16)
+ #endif /*_DVBDMX_H_*/
+diff --git a/include/linux/dvb/frontend.h b/include/linux/dvb/frontend.h
+index 51c8d2d..0de9dc2 100644
+--- a/include/linux/dvb/frontend.h
++++ b/include/linux/dvb/frontend.h
+@@ -26,7 +26,7 @@
+ #ifndef _DVBFRONTEND_H_
+ #define _DVBFRONTEND_H_
+-#include <linux/types.h>
++#include <asm/types.h>
+ typedef enum fe_type {
+       FE_QPSK,
+@@ -62,6 +62,7 @@ typedef enum fe_caps {
+       FE_CAN_8VSB                     = 0x200000,
+       FE_CAN_16VSB                    = 0x400000,
+       FE_HAS_EXTENDED_CAPS            = 0x800000,   /* We need more bitspace for newer APIs, indicate this. */
++      FE_CAN_TURBO_FEC                = 0x8000000,  /* frontend supports "turbo fec modulation" */
+       FE_CAN_2G_MODULATION            = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */
+       FE_NEEDS_BENDING                = 0x20000000, /* not supported anymore, don't use (frontend requires frequency bending) */
+       FE_CAN_RECOVER                  = 0x40000000, /* frontend can recover from a cable unplug automatically */
+@@ -173,14 +174,21 @@ typedef enum fe_modulation {
+ typedef enum fe_transmit_mode {
+       TRANSMISSION_MODE_2K,
+       TRANSMISSION_MODE_8K,
+-      TRANSMISSION_MODE_AUTO
++      TRANSMISSION_MODE_AUTO,
++      TRANSMISSION_MODE_4K,
++      TRANSMISSION_MODE_1K,
++      TRANSMISSION_MODE_16K,
++      TRANSMISSION_MODE_32K,
+ } fe_transmit_mode_t;
+ typedef enum fe_bandwidth {
+       BANDWIDTH_8_MHZ,
+       BANDWIDTH_7_MHZ,
+       BANDWIDTH_6_MHZ,
+-      BANDWIDTH_AUTO
++      BANDWIDTH_AUTO,
++      BANDWIDTH_5_MHZ,
++      BANDWIDTH_10_MHZ,
++      BANDWIDTH_1_712_MHZ,
+ } fe_bandwidth_t;
+@@ -189,7 +197,10 @@ typedef enum fe_guard_interval {
+       GUARD_INTERVAL_1_16,
+       GUARD_INTERVAL_1_8,
+       GUARD_INTERVAL_1_4,
+-      GUARD_INTERVAL_AUTO
++      GUARD_INTERVAL_AUTO,
++      GUARD_INTERVAL_1_128,
++      GUARD_INTERVAL_19_128,
++      GUARD_INTERVAL_19_256,
+ } fe_guard_interval_t;
+@@ -268,15 +279,44 @@ struct dvb_frontend_event {
+ #define DTV_FE_CAPABILITY     16
+ #define DTV_DELIVERY_SYSTEM   17
+-#define DTV_API_VERSION                               35
+-#define DTV_API_VERSION                               35
+-#define DTV_CODE_RATE_HP                      36
+-#define DTV_CODE_RATE_LP                      37
+-#define DTV_GUARD_INTERVAL                    38
+-#define DTV_TRANSMISSION_MODE                 39
+-#define DTV_HIERARCHY                         40
++/* ISDB-T and ISDB-Tsb */
++#define DTV_ISDBT_PARTIAL_RECEPTION   18
++#define DTV_ISDBT_SOUND_BROADCASTING  19
+-#define DTV_MAX_COMMAND                               DTV_HIERARCHY
++#define DTV_ISDBT_SB_SUBCHANNEL_ID    20
++#define DTV_ISDBT_SB_SEGMENT_IDX      21
++#define DTV_ISDBT_SB_SEGMENT_COUNT    22
++
++#define DTV_ISDBT_LAYERA_FEC                  23
++#define DTV_ISDBT_LAYERA_MODULATION           24
++#define DTV_ISDBT_LAYERA_SEGMENT_COUNT                25
++#define DTV_ISDBT_LAYERA_TIME_INTERLEAVING    26
++
++#define DTV_ISDBT_LAYERB_FEC                  27
++#define DTV_ISDBT_LAYERB_MODULATION           28
++#define DTV_ISDBT_LAYERB_SEGMENT_COUNT                29
++#define DTV_ISDBT_LAYERB_TIME_INTERLEAVING    30
++
++#define DTV_ISDBT_LAYERC_FEC                  31
++#define DTV_ISDBT_LAYERC_MODULATION           32
++#define DTV_ISDBT_LAYERC_SEGMENT_COUNT                33
++#define DTV_ISDBT_LAYERC_TIME_INTERLEAVING    34
++
++#define DTV_API_VERSION               35
++
++#define DTV_CODE_RATE_HP      36
++#define DTV_CODE_RATE_LP      37
++#define DTV_GUARD_INTERVAL    38
++#define DTV_TRANSMISSION_MODE 39
++#define DTV_HIERARCHY         40
++
++#define DTV_ISDBT_LAYER_ENABLED       41
++
++#define DTV_ISDBS_TS_ID               42
++
++#define DTV_DVBT2_PLP_ID      43
++
++#define DTV_MAX_COMMAND                               DTV_DVBT2_PLP_ID
+ typedef enum fe_pilot {
+       PILOT_ON,
+@@ -308,6 +348,7 @@ typedef enum fe_delivery_system {
+       SYS_DMBTH,
+       SYS_CMMB,
+       SYS_DAB,
++      SYS_DVBT2,
+ } fe_delivery_system_t;
+ struct dtv_cmds_h {
+diff --git a/include/linux/dvb/net.h b/include/linux/dvb/net.h
+index f451e7e..59ed3fe 100644
+--- a/include/linux/dvb/net.h
++++ b/include/linux/dvb/net.h
+@@ -24,7 +24,7 @@
+ #ifndef _DVBNET_H_
+ #define _DVBNET_H_
+-#include <linux/types.h>
++#include <asm/types.h>
+ struct dvb_net_if {
+       __u16 pid;
+diff --git a/include/linux/dvb/version.h b/include/linux/dvb/version.h
+index 25b823b..1421cc8 100644
+--- a/include/linux/dvb/version.h
++++ b/include/linux/dvb/version.h
+@@ -24,6 +24,6 @@
+ #define _DVBVERSION_H_
+ #define DVB_API_VERSION 5
+-#define DVB_API_VERSION_MINOR 0
++#define DVB_API_VERSION_MINOR 3
+ #endif /*_DVBVERSION_H_*/
+diff --git a/include/linux/dvb/video.h b/include/linux/dvb/video.h
+index 1d750c0..3fccd5d 100644
+--- a/include/linux/dvb/video.h
++++ b/include/linux/dvb/video.h
+@@ -137,7 +137,7 @@ struct video_event {
+ #define VIDEO_EVENT_FRAME_RATE_CHANGED        2
+ #define VIDEO_EVENT_DECODER_STOPPED   3
+ #define VIDEO_EVENT_VSYNC             4
+-      __kernel_time_t timestamp;
++      time_t timestamp;
+       union {
+               video_size_t size;
+               unsigned int frame_rate;        /* in frames per 1000sec */
diff --git a/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers.inc b/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
deleted file mode 100644 (file)
index 83b4604..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-DESCRIPTION = "Sanitized set of kernel headers for the C library's use."
-SECTION = "devel"
-LICENSE = "GPLv2"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
-
-python __anonymous () {
-    major = d.getVar("PV",True).split('.')[0]
-    if major == "3":
-       d.setVar("HEADER_FETCH_VER", "3.0")
-    else:
-       d.setVar("HEADER_FETCH_VER", "2.6")
-}
-
-SRC_URI = "http://archive.vuplus.com/download/kernel/linux-${KV}_${SRCREV}.tar.bz2"
-
-S = "${WORKDIR}/linux-${PV}"
-
-set_arch() {
-       case ${TARGET_ARCH} in
-               alpha*)   ARCH=alpha ;;
-               arm*)     ARCH=arm ;;
-               cris*)    ARCH=cris ;;
-               hppa*)    ARCH=parisc ;;
-               i*86*)    ARCH=i386 ;;
-               ia64*)    ARCH=ia64 ;;
-               mips*)    ARCH=mips ;;
-               m68k*)    ARCH=m68k ;;
-               powerpc*) ARCH=powerpc ;;
-               s390*)    ARCH=s390 ;;
-               sh*)      ARCH=sh ;;
-               sparc64*) ARCH=sparc64 ;;
-               sparc*)   ARCH=sparc ;;
-               x86_64*)  ARCH=x86_64 ;;
-               avr32*)   ARCH=avr32 ;;
-               bfin*)    ARCH=blackfin ;;
-               microblaze*) ARCH=microblaze ;;
-       esac
-}
-
-do_configure() {
-       set_arch
-       oe_runmake allnoconfig ARCH=$ARCH
-}
-
-do_compile () {
-}
-
-do_install() {
-       set_arch
-       oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix} ARCH=$ARCH
-       # Kernel should not be exporting this header
-       rm -f ${D}${exec_prefix}/include/scsi/scsi.h
-
-       # The ..install.cmd conflicts between various configure runs
-       find ${D}${includedir} -name ..install.cmd | xargs rm -f
-}
-
-BBCLASSEXTEND = "nativesdk"
-
-#DEPENDS = "cross-linkage"
-RDEPENDS_${PN}-dev = ""
-RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
-
-INHIBIT_DEFAULT_DEPS = "1"
-DEPENDS += "unifdef-native"
diff --git a/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers/connector-msg-size-fix.patch b/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers/connector-msg-size-fix.patch
deleted file mode 100644 (file)
index 5d531d6..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-Currently default header is linux-libc-header, which leads the dismatch
-with wrs kernel.
-
-The different headers for same file cause trouble between kerenl module and
-user level binary. E.g. segfault in v86d due to different
-CONNECTOR_MAX_MSG_SIZE in connector.h from the one used by uvesafb.
-
-This fix is work around to sync with wrs kernel headers, and should be removed
-after switching to linux-libc-headers-wrs.
-
-[BUGID #279] fixed by this.
-
-Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
-
-Index: linux-2.6.34/include/linux/connector.h
-===================================================================
---- linux-2.6.34.orig/include/linux/connector.h        2010-09-30 14:15:25.000000000 +0800
-+++ linux-2.6.34/include/linux/connector.h     2010-09-30 14:15:43.000000000 +0800
-@@ -48,7 +48,7 @@
- /*
-  * Maximum connector's message size.
-  */
--#define CONNECTOR_MAX_MSG_SIZE                16384
-+#define CONNECTOR_MAX_MSG_SIZE                65536
- /*
-  * idx and val are unique identifiers which 
diff --git a/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.31.bb b/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.31.bb
new file mode 100644 (file)
index 0000000..0bbc5e7
--- /dev/null
@@ -0,0 +1,64 @@
+DESCRIPTION = "Sanitized set of 2.6 kernel headers for the C library's use."
+SECTION = "devel"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
+
+PR = "r0"
+
+DEPENDS += "unifdef-native"
+RDEPENDS_${PN}-dev = ""
+RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPV})"
+
+INHIBIT_DEFAULT_DEPS = "1"
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
+           file://0001-implement-TIF_RESTORE_SIGMASK-support-and-enable-the.patch;patch=1 \
+           file://dvbapi-5.3.patch;patch=1;pnum=1 \
+"
+
+SRC_URI[md5sum] = "84c077a37684e4cbfa67b18154390d8a"
+SRC_URI[sha256sum] = "0acd83f7b85db7ee18c2b0b7505e1ba6fd722c36f49a8870a831c851660e3512"
+  
+S = "${WORKDIR}/linux-${PV}"
+
+set_arch() {
+       case ${TARGET_ARCH} in
+               alpha*)   ARCH=alpha ;;
+               arm*)     ARCH=arm ;;
+               cris*)    ARCH=cris ;;
+               hppa*)    ARCH=parisc ;;
+               i*86*)    ARCH=i386 ;;
+               ia64*)    ARCH=ia64 ;;
+               mips*)    ARCH=mips ;;
+               m68k*)    ARCH=m68k ;;
+               powerpc*) ARCH=powerpc ;;
+               s390*)    ARCH=s390 ;;
+               sh*)      ARCH=sh ;;
+               sparc64*) ARCH=sparc64 ;;
+               sparc*)   ARCH=sparc ;;
+               x86_64*)  ARCH=x86_64 ;;
+               avr32*)   ARCH=avr32 ;;
+                bfin*)    ARCH=blackfin ;;
+       esac
+}
+
+do_configure() {
+       set_arch
+       oe_runmake allnoconfig ARCH=$ARCH
+}
+
+do_compile () {
+}
+
+do_install() {
+       set_arch
+       oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix} ARCH=$ARCH
+       # Kernel should not be exporting this header
+       rm -rf ${D}${includedir}/scsi
+
+       # The ..install.cmd conflicts between various configure runs
+       #find ${D}${includedir} -name ..install.cmd | xargs rm -f
+}
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers_3.1.1.bb b/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers_3.1.1.bb
deleted file mode 100644 (file)
index 4806ec5..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-require linux-libc-headers.inc
-
-KV = "3.1.1"
-SRCREV = "r2"
-
-SRC_URI[md5sum] = "4dc3ac322453abbfaade7020cddea205"
-SRC_URI[sha256sum] = "1d18eb39677a23eace6b27ee25656c25f21b57be7e77a2adcdd15c76d1c3e875"