Revision: 5799
Author: pebender
Date: Sat Nov  7 13:25:49 2009
Log: - Changed Xorg init so that udev hotplug rather than MiniMyth init is  
used
   to enable/disable Xorg input (event) devices.


http://code.google.com/p/minimyth/source/detail?r=5799

Added:
   
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/mm_device_blacklist
   
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/rules.d/06-minimyth-xorg-evdev.rules
   
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/rules.d/07-minimyth-firmware.rules
   
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/rules.d/08-minimyth-mythtv.rules
Deleted:
   
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/rules.d/06-minimyth-firmware.rules
   
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/rules.d/07-minimyth-mythtv.rules
Modified:
  /trunk/gar-minimyth/html/minimyth/document-changelog.txt
   
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/X11/xorg.conf
   
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_LIRC.pm
   
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_X.pm
   
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/x.pm
   
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/rules.d/05-minimyth-detect-lirc.rules.disabled

=======================================
--- /dev/null
+++  
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/mm_device_blacklist
        
Sat Nov  7 13:25:49 2009
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+device_group=$1
+
+result='no'
+
+device_list=''
+if test ! "x${DEVNAME}" = "x" ; then
+    device_list="${device_list} /dev/${DEVNAME}"
+fi
+if test ! "x$DEVLINKS" = "x" ; then
+    device_list="${device_list} ${DEVLINKS}"
+fi
+
+blacklist_list=''
+if test -e "/lib/udev/mm_device_blacklist.d/${device_group}" ; then
+     
blacklist_list=`/bin/cat "/lib/udev/mm_device_blacklist.d/${device_group}"`
+    blacklist_list=`/bin/echo "${blacklist_list}"`
+fi
+
+for device_item in ${device_list} ; do
+    if echo " ${blacklist_list} " | grep -q " ${device_item} " ; then
+        result='yes'
+        break
+    fi
+done
+
+echo -n ${result}
+
+exit 0
=======================================
--- /dev/null
+++  
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/rules.d/06-minimyth-xorg-evdev.rules
       
Sat Nov  7 13:25:49 2009
@@ -0,0 +1,11 @@
+ENV{mm_device_owner}=="?*", GOTO="end"
+
+SUBSYSTEM!="input", GOTO="end"
+KERNEL=!"event*"    GOTO="end"
+PROGRAM="mm_device_blacklist x_event", RESULT=="yes", GOTO="end"
+
+ENV{x11_driver}="evdev"
+
+ENV{mm_device_owner}="xorg"
+
+LABEL="end"
=======================================
--- /dev/null
+++  
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/rules.d/07-minimyth-firmware.rules
         
Sat Nov  7 13:25:49 2009
@@ -0,0 +1,1 @@
+SUBSYSTEM=="firmware", ACTION=="add", RUN+="mm_firmware_load"
=======================================
--- /dev/null
+++  
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/rules.d/08-minimyth-mythtv.rules
   
Sat Nov  7 13:25:49 2009
@@ -0,0 +1,1 @@
+SUBSYSTEM=="block", RUN+="/lib/udev/mm_mythtv"
=======================================
---  
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/rules.d/06-minimyth-firmware.rules
         
Tue May  5 20:33:07 2009
+++ /dev/null
@@ -1,1 +0,0 @@
-SUBSYSTEM=="firmware", ACTION=="add", RUN+="mm_firmware_load"
=======================================
---  
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/rules.d/07-minimyth-mythtv.rules
   
Sat Jan 10 12:48:59 2009
+++ /dev/null
@@ -1,1 +0,0 @@
-SUBSYSTEM=="block", RUN+="/lib/udev/mm_mythtv"
=======================================
--- /trunk/gar-minimyth/html/minimyth/document-changelog.txt    Sat Nov  7  
06:25:17 2009
+++ /trunk/gar-minimyth/html/minimyth/document-changelog.txt    Sat Nov  7  
13:25:49 2009
@@ -18,8 +18,10 @@
      MythTV trunk:        version trunk.22658     trunk svn 22758.

  Improved init
-    - Separate Bluetooth init from Wiimote init.
-    - Separate D-Bus init from GTK init.
+    - Changed Xorg init so that udev hotplug rather than MiniMyth init is  
used
+      to enable/disable Xorg input (event) devices.
+    - Separated Bluetooth init from Wiimote init.
+    - Separated D-Bus init from GTK init.
      - Added MM_BLUETOOTH_DEVICE_LIST for specifying the Bluetooth devices  
to
        init.

=======================================
---  
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/X11/xorg.conf  
 
Tue Sep 15 11:50:29 2009
+++  
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/X11/xorg.conf  
 
Sat Nov  7 13:25:49 2009
@@ -30,8 +30,6 @@
      Load        "record"
  EndSection

-...@inputdevice_event@
-
  Section "Monitor"
      Identifier  "Monitor1"
      DisplaySize @X_DISPLAYSIZE_X@ @X_DISPLAYSIZE_Y@
@@ -142,7 +140,6 @@
  Section "ServerLayout"
      Identifier  "Layout1"
      Screen      "Screen1"
-    @SERVERLAYOUT_EVENT@
  EndSection

  Section "DRI"
=======================================
---  
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_LIRC.pm
       
Mon Jul 13 11:54:41 2009
+++  
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_LIRC.pm
       
Sat Nov  7 13:25:49 2009
@@ -38,14 +38,44 @@
  };
  $var_list{'MM_LIRC_DEVICE_BLACKLIST'} =
  {
-    value_default  => ''
+    value_default  => '',
+    extra          => sub
+    {
+        my $minimyth = shift;
+        my $name     = shift;
+
+        my $blacklist_dir   = q(/lib/udev/mm_device_blacklist);
+        my $blacklist_group = q(lirc);
+
+        if (-e qq($blacklist_dir/$blacklist_group))
+        {
+            unlink(qq($blacklist_dir/$blacklist_group));
+        }
+        if (-e qq($blacklist_dir/$blacklist_group~))
+        {
+            unlink(qq($blacklist_dir/$blacklist_group~));
+        }
+
+        if (open(FILE, '>', qq($blacklist_dir/$blacklist_group~)))
+        {
+            my @blacklist_list = split(/ +/, $minimyth->var_get($name));
+            foreach my $blacklist_item (@blacklist_list)
+            {
+                print FILE $blacklist_item . "\n"
+            }
+            close(FILE);
+            rename(qq($blacklist_dir/$blacklist_group~),  
qq($blacklist_dir/$blacklist_group));
+        }
+
+        return 1;
+    }
  };
  $var_list{'MM_LIRC_DRIVER'} =
  {
      value_default  => 'none',
      value_valid    => 'none|.+',
      value_obsolete => 'auto|mceusb2|mceusbnew',
-    value_none     => '',
+    value_none     => ''
  };
  $var_list{'MM_LIRC_DEVICE'} =
  {
=======================================
---  
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_X.pm
  
Wed Jun  3 22:17:35 2009
+++  
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_X.pm
  
Sat Nov  7 13:25:49 2009
@@ -27,70 +27,6 @@
          return $minimyth->detect_state_get('video', 0, 'driver');
      },
      value_valid   => '.+'
-};
-$var_list{'MM_X_EVENT_DEVICE_LIST'} =
-{
-    prerequisite   =>  
['MM_LIRC_DEVICE_LIST', 'MM_LIRC_LIRCMD_DEVICE', 
'MM_WIIMOTE_EVENT_DEVICE_LIST'],
-
-    value_default  => 'auto',
-    value_valid    => 'auto|.+',
-    value_auto     => sub
-    {
-        my $minimyth = shift;
-        my $name     = shift;
-
-        my @device_list;
-
-        # Get all udev detected event devices.
-        foreach my $item (@{$minimyth->detect_state_get('event')})
-        {
-            my $device = $minimyth->device_canonicalize($item->{'device'});
-            if ($device)
-            {
-                push(@device_list, $device);
-            }
-        }
-
-        # Add wiimote event devices.
-        if ($minimyth->var_get('MM_WIIMOTE_EVENT_DEVICE_LIST'))
-        {
-            foreach my $device (split(/ +/,  
$minimyth->var_get('MM_WIIMOTE_EVENT_DEVICE_LIST')))
-            {
-                push(@device_list, $device);
-            }
-        }
-
-        # Add LIRC mouse daemon event device.
-        if ($minimyth->var_get('MM_LIRC_LIRCM_DEVICE'))
-        {
-            push(@device_list, $minimyth->var_get('MM_LIRC_LIRCM_DEVICE'));
-        }
-
-        # Remove any duplicates.
-        {
-            my $prev = '';
-            @device_list = grep($_ ne $prev && (($prev) = $_),  
sort(@device_list));
-        }
-
-        # Remove any devices claimed by LIRC.
-        if ($minimyth->var_get('MM_LIRC_DEVICE_LIST'))
-        {
-            my @blacklist = ();
-            foreach my $item (split(/  +/,  
$minimyth->var_get('MM_LIRC_DEVICE_LIST')))
-            {
-                if ($item)
-                {
-                    my @item = split(/,/, $item);
-                    my $device = $minimyth->device_canonicalize($item[0]);
-                    push(@blacklist, $device);
-                }
-            }
-            my $blacklist_filter = join('|', @blacklist);
-            @device_list = grep(! /^($blacklist_filter)$/, @device_list);
-        }
-
-        return join(' ', @device_list);
-    }
  };
   
#===============================================================================
  #
=======================================
---  
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/x.pm 
 
Tue Sep 15 11:50:29 2009
+++  
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/x.pm 
 
Sat Nov  7 13:25:49 2009
@@ -329,34 +329,10 @@
      $mode_0 = '"' . $mode_0 . '"' if ($mode_0 ne '');
      $mode_1 = '"' . $mode_1 . '"' if ($mode_1 ne '');
      $mode_2 = '"' . $mode_2 . '"' if ($mode_2 ne '');
-
-    my $inputdevice_event  = '';
-    my $serverlayout_event = '';
-    {
-        my @inputdevice  = ();
-        my @serverlayout = ();
-        foreach my $device (split(/ +/,  
$minimyth->var_get('MM_X_EVENT_DEVICE_LIST')))
-        {
-            my $identifier = $device;
-
-            push(@inputdevice, qq(Section "InputDevice"));
-            push(@inputdevice, qq(    Identifier "$identifier"));
-            push(@inputdevice, qq(    Driver     "evdev"));
-            push(@inputdevice, qq(    Option     "Device" "$device"));
-            push(@inputdevice, qq(EndSection));
-            push(@inputdevice, qq());
-
-            push(@serverlayout,  
qq(InputDevice "$identifier" "SendCoreEvents"));
-        }
-        $inputdevice_event  = join("\n", @inputdevice);
-        $serverlayout_event = join("\n    ", @serverlayout);
-    }

      $minimyth->file_replace_variable(
          '/etc/X11/xorg.conf',
-        { '@INPUTDEVICE_EVENT@'  =>  
$inputdevice_event                     ,
-          '@SERVERLAYOUT_EVENT@' =>  
$serverlayout_event                    ,
-          '@MM_X_DRIVER@'        =>  
$minimyth->var_get('MM_X_DRIVER')      ,
+        { '@MM_X_DRIVER@'        =>  
$minimyth->var_get('MM_X_DRIVER')      ,
            '@MM_X_DEVICE_INTEL@'  =>  
$device_intel                          ,
            '@MM_X_DEVICE_NVIDIA@' =>  
$device_nvidia                         ,
            '@MM_X_DEVICE_VIA@'    =>  
$device_via                            ,
=======================================
---  
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/rules.d/05-minimyth-detect-lirc.rules.disabled
     
Mon Jul 27 22:56:23 2009
+++  
/trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/rules.d/05-minimyth-detect-lirc.rules.disabled
     
Sat Nov  7 13:25:49 2009
@@ -16,7 +16,12 @@
  # known, it cannot be added be included in mm_detect_state_lirc.  
Therefore, the
  # mm_detect script will prepend the LIRC device name to the state.
   
#-------------------------------------------------------------------------------
+ENV{mm_device_owner}=="*?", GOTO="end"
+
  ACTION!="add|change|remove", GOTO="end"
+
+PROGRAM="mm_device_blacklist lirc", RESULT=="yes", GOTO="end"
+
  KERNEL=="event[0-9]*",  SUBSYSTEM=="input", SUBSYSTEMS=="usb", GOTO="begin"
  KERNEL=="hiddev[0-9]*", SUBSYSTEM=="usb",   SUBSYSTEMS=="usb", GOTO="begin"
  KERNEL=="lirc[0-9]*",   SUBSYSTEM=="lirc",  SUBSYSTEMS=="i2c", GOTO="begin"
@@ -47,7 +52,9 @@

  LABEL="end-nonlirc"

+ENV{mm_detect_state_lirc}=="?*", ENV{mm_device_owner}="lirc"
+
  # The state has been set, so save it.
-ENV{mm_detect_state_lirc}=="?*", RUN+="/lib/udev/mm_detect lirc %k  
$env{mm_detect_state_lirc} state_prepend_devname"
+ENV{mm_device_owner}=="lirc", RUN+="/lib/udev/mm_detect lirc %k  
$env{mm_detect_state_lirc} state_prepend_devname"

  LABEL="end"

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"minimyth-commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/minimyth-commits?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to