From 7376f027c39716561b513a70f6e7f86fb14df178 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Tue, 20 Dec 2011 13:00:05 +0000 Subject: udev: drop 145 version The 164 version has been the default version for some time and as we don't have any clear reasoning to keep 145 around, we're removing it now. Some files were also removed as 164 recipe provides specific versions of it and thus those were going to be unused. Signed-off-by: Otavio Salvador --- meta/recipes-core/udev/files/fix-alignment.patch | 26 - meta/recipes-core/udev/files/init | 212 ------ meta/recipes-core/udev/files/local.rules | 22 - meta/recipes-core/udev/files/noasmlinkage.patch | 39 -- meta/recipes-core/udev/files/permissions.rules | 81 --- meta/recipes-core/udev/files/tmpfs.patch | 17 - meta/recipes-core/udev/files/udev.rules | 98 --- meta/recipes-core/udev/files/udev_network_queue.sh | 35 - meta/recipes-core/udev/files/udevsynthesize.patch | 778 --------------------- meta/recipes-core/udev/files/udevsynthesize.sh | 51 -- meta/recipes-core/udev/udev-145/enable-gudev.patch | 50 -- meta/recipes-core/udev/udev-145/init | 59 -- meta/recipes-core/udev/udev-145/local.rules | 33 - meta/recipes-core/udev/udev-145/noasmlinkage.patch | 50 -- meta/recipes-core/udev/udev-145/permissions.rules | 131 ---- meta/recipes-core/udev/udev-145/run.rules | 14 - meta/recipes-core/udev/udev-145/udev.rules | 116 --- meta/recipes-core/udev/udev-145/unbreak.patch | 26 - meta/recipes-core/udev/udev.inc | 72 -- meta/recipes-core/udev/udev_145.bb | 55 -- 20 files changed, 1965 deletions(-) delete mode 100644 meta/recipes-core/udev/files/fix-alignment.patch delete mode 100755 meta/recipes-core/udev/files/init delete mode 100644 meta/recipes-core/udev/files/local.rules delete mode 100644 meta/recipes-core/udev/files/noasmlinkage.patch delete mode 100644 meta/recipes-core/udev/files/permissions.rules delete mode 100644 meta/recipes-core/udev/files/tmpfs.patch delete mode 100644 meta/recipes-core/udev/files/udev.rules delete mode 100644 meta/recipes-core/udev/files/udev_network_queue.sh delete mode 100644 meta/recipes-core/udev/files/udevsynthesize.patch delete mode 100644 meta/recipes-core/udev/files/udevsynthesize.sh delete mode 100644 meta/recipes-core/udev/udev-145/enable-gudev.patch delete mode 100644 meta/recipes-core/udev/udev-145/init delete mode 100644 meta/recipes-core/udev/udev-145/local.rules delete mode 100644 meta/recipes-core/udev/udev-145/noasmlinkage.patch delete mode 100644 meta/recipes-core/udev/udev-145/permissions.rules delete mode 100644 meta/recipes-core/udev/udev-145/run.rules delete mode 100644 meta/recipes-core/udev/udev-145/udev.rules delete mode 100644 meta/recipes-core/udev/udev-145/unbreak.patch delete mode 100644 meta/recipes-core/udev/udev.inc delete mode 100644 meta/recipes-core/udev/udev_145.bb (limited to 'meta/recipes-core') diff --git a/meta/recipes-core/udev/files/fix-alignment.patch b/meta/recipes-core/udev/files/fix-alignment.patch deleted file mode 100644 index dfe21b6e9..000000000 --- a/meta/recipes-core/udev/files/fix-alignment.patch +++ /dev/null @@ -1,26 +0,0 @@ -Upstream-Status: Pending - -diff --git a/udev_rules_parse.c b/udev_rules_parse.c ---- a/udev_rules_parse.c -+++ b/udev_rules_parse.c -@@ -241,6 +241,7 @@ static int add_to_rules(struct udev_rule - int valid; - char *linepos; - char *attr; -+ size_t padding; - int retval; - - /* get all the keys */ -@@ -506,6 +507,11 @@ static int add_to_rules(struct udev_rule - - /* grow buffer and add rule */ - rule_size = sizeof(struct udev_rule) + rule->bufsize; -+ padding = (sizeof(size_t) - rule_size % sizeof(size_t)) % sizeof(size_t); -+ dbg("add %zi padding bytes", padding); -+ rule_size += padding; -+ rule->bufsize += padding; -+ - rules->buf = realloc(rules->buf, rules->bufsize + rule_size); - if (!rules->buf) { - err("realloc failed"); - diff --git a/meta/recipes-core/udev/files/init b/meta/recipes-core/udev/files/init deleted file mode 100755 index 8cbab188f..000000000 --- a/meta/recipes-core/udev/files/init +++ /dev/null @@ -1,212 +0,0 @@ -#!/bin/sh -e - -UDEVSTART=/sbin/udevstart - -# defaults -tmpfs_size="10M" -udev_root="/dev" - -[ -x $UDEVSTART ] || exit 0 - -. /etc/udev/udev.conf - -############################################################################## - -# we need to unmount /dev/pts/ and remount it later over the tmpfs -unmount_devpts() { - if mountpoint -q /dev/pts/; then - umount -l /dev/pts/ - fi - - if mountpoint -q /dev/shm/; then - umount -l /dev/shm/ - fi -} - -# mount a tmpfs over /dev, if somebody did not already do it -mount_tmpfs() { - if grep -E -q "^[^[:space:]]+ /dev tmpfs" /proc/mounts; then - return 0 - fi - - # /dev/.static/dev/ is used by MAKEDEV to access the real /dev/ directory. - # /etc/udev/ is recycled as a temporary mount point because it's the only - # directory which is guaranteed to be available. - mount -n -o bind /dev /etc/udev - - if ! mount -n -o size=$tmpfs_size,mode=0755 -t tmpfs tmpfs /dev; then - umount /etc/udev - echo "udev requires tmpfs support, not started." - exit 1 - fi - - # using ln to test if /dev works, because touch is in /usr/bin/ - if ln -s test /dev/test-file; then - rm /dev/test-file - else - echo "udev requires tmpfs support, not started." - umount /etc/udev - umount /dev - exit 1 - fi - - mkdir -p /dev/.static/dev - chmod 700 /dev/.static/ - # The mount options in busybox are non-standard... - if test -x /bin/mount.util-linux - then - /bin/mount.util-linux --move /etc/udev /dev/.static/dev - elif test -x /bin/busybox - then - busybox mount -n -o move /etc/udev /dev/.static/dev - else - echo "udev requires an identifiable mount command, not started." - umount /etc/udev - umount /dev - exit 1 - fi -} - -# I hate this hack. -- Md -make_extra_nodes() { - [ -e /etc/udev/links.conf ] || return 0 - grep '^[^#]' /etc/udev/links.conf | \ - while read type name arg1; do - [ "$type" -a "$name" -a ! -e "/dev/$name" -a ! -L "/dev/$name" ] ||continue - case "$type" in - L) ln -s $arg1 /dev/$name ;; - D) mkdir -p /dev/$name ;; - M) mknod -m 600 /dev/$name $arg1 ;; - *) echo "links.conf: unparseable line ($type $name $arg1)" ;; - esac - done -} - -# this function is duplicated in preinst, postinst and d-i -supported_kernel() { - case "$(uname -r)" in - 2.[012345].*|2.6.[0-9]|2.6.[0-9][!0-9]*) return 1 ;; - 2.6.1[01]|2.6.1[01][!0-9]*) return 1 ;; - esac - return 0 -} - -# shell version of /usr/bin/tty -my_tty() { - [ -x /bin/readlink ] || return 0 - [ -e /proc/self/fd/0 ] || return 0 - readlink --silent /proc/self/fd/0 || true -} - -warn_if_interactive() { - if [ "$RUNLEVEL" = "S" -a "$PREVLEVEL" = "N" ]; then - return 0 - fi - - TTY=$(my_tty) - if [ -z "$TTY" -o "$TTY" = "/dev/console" ]; then - return 0 - fi - - printf "\n\n\nIt has been detected that the command\n\n\t$0 $*\n\n" - printf "has been run from an interactive shell.\n" - printf "It will probably not do what you expect, so this script will wait\n" - printf "60 seconds before continuing. Press ^C to stop it.\n" - printf "RUNNING THIS COMMAND IS HIGHLY DISCOURAGED!\n\n\n\n" - sleep 60 -} - -############################################################################## - -if ! supported_kernel; then - echo "udev requires a kernel >= 2.6.12, not started." - exit 1 -fi - -if [ ! -e /proc/filesystems ]; then - echo "udev requires a mounted procfs, not started." - exit 1 -fi - -if ! grep -q '[[:space:]]tmpfs$' /proc/filesystems; then - echo "udev requires tmpfs support, not started." - exit 1 -fi - -if [ ! -d /sys/class/ ]; then - echo "udev requires a mounted sysfs, not started." - exit 1 -fi - -if [ ! -e /proc/sys/kernel/hotplug ] && [ ! -e /sys/kernel/uevent_helper ]; then - echo "udev requires hotplug support, not started." - exit 1 -fi - -############################################################################## - -# When modifying this script, do not forget that between the time that -# the new /dev has been mounted and udevstart 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/.udevdb" ]; then - if mountpoint -q /dev/; then - TMPFS_MOUNTED=1 - else - echo ".udevdb already exists on the old $udev_root!" - fi - fi - warn_if_interactive - - #echo /sbin/udevsend > /proc/sys/kernel/hotplug - if [ -e /sys/kernel/uevent_helper ] ; then - echo "" > /sys/kernel/uevent_helper - else - echo "" > /proc/sys/kernel/hotplug - fi - udevsend - if [ "$UDEV_DISABLED" = "yes" ]; then - echo "udev disabled on the kernel command line, not started." - exit 0 - fi - - if [ ! "$TMPFS_MOUNTED" ]; then - unmount_devpts - mount_tmpfs - [ -d /proc/1 ] || mount -n /proc - # if this directory is not present /dev will not be updated by udev - mkdir /dev/.udevdb/ - echo "Creating initial device nodes..." - udevstart - fi - make_extra_nodes - ;; - stop) - warn_if_interactive - start-stop-daemon --stop --exec /sbin/udevd --quiet - unmount_devpts - if [ -d /dev/.static/dev/ ]; then - umount -l /dev/.static/dev/ || true - fi - echo "Unmounting /dev..." - # unmounting with -l should never fail - if ! umount -l /dev; then - exit 1 - fi - ;; - restart|force-reload) - start-stop-daemon --stop --exec /sbin/udevd --quiet - log_begin_msg "Recreating device nodes..." - udevstart - make_extra_nodes - log_end_msg 0 - ;; - *) - echo "Usage: /etc/init.d/udev {start|stop|restart|force-reload}" - exit 1 - ;; -esac - -exit 0 diff --git a/meta/recipes-core/udev/files/local.rules b/meta/recipes-core/udev/files/local.rules deleted file mode 100644 index 5f2efbeb0..000000000 --- a/meta/recipes-core/udev/files/local.rules +++ /dev/null @@ -1,22 +0,0 @@ -# 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" diff --git a/meta/recipes-core/udev/files/noasmlinkage.patch b/meta/recipes-core/udev/files/noasmlinkage.patch deleted file mode 100644 index 4173fc5c2..000000000 --- a/meta/recipes-core/udev/files/noasmlinkage.patch +++ /dev/null @@ -1,39 +0,0 @@ -Upstream-Status: Inappropriate [embedded] - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- udev-062/udev.c~noasmlinkage.patch -+++ udev-062/udev.c -@@ -54,7 +54,7 @@ - } - #endif - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - switch (signum) { - case SIGALRM: ---- udev-062/udevd.c~noasmlinkage.patch -+++ udev-062/udevd.c -@@ -639,7 +639,7 @@ - return msg; - } - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - int rc; - ---- udev-062/udevstart.c~noasmlinkage.patch -+++ udev-062/udevstart.c -@@ -323,7 +323,7 @@ - exec_list(&device_list); - } - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - switch (signum) { - case SIGALRM: diff --git a/meta/recipes-core/udev/files/permissions.rules b/meta/recipes-core/udev/files/permissions.rules deleted file mode 100644 index 86d771276..000000000 --- a/meta/recipes-core/udev/files/permissions.rules +++ /dev/null @@ -1,81 +0,0 @@ -# default permissions for block devices -SUBSYSTEM=="block", GROUP="disk" -SUBSYSTEM=="block", SYSFS{removable}=="1", GROUP="floppy" - -# IDE devices -BUS=="ide", KERNEL=="hd[a-z]", SYSFS{removable}="1", \ - PROGRAM="/bin/cat /proc/ide/%k/media", RESULT=="cdrom*", GROUP="cdrom" -BUS=="ide", KERNEL=="ht[0-9]*", GROUP="tape" -BUS=="ide", KERNEL=="nht[0-9]*", GROUP="tape" - -# SCSI devices -BUS=="scsi", SYSFS{type}=="1", GROUP="tape" -BUS=="scsi", SYSFS{type}=="5", GROUP="cdrom" -BUS=="scsi", SYSFS{type}=="6", GROUP="scanner" - -# USB devices -BUS=="usb", KERNEL=="legousbtower*", MODE="0666" -BUS=="usb", KERNEL=="lp[0-9]*", GROUP="lp" - -# serial devices -SUBSYSTEM=="tty", GROUP="dialout" -SUBSYSTEM=="capi", GROUP="dialout" -SUBSYSTEM=="slamr", 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="0444" -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=="nvram", GROUP="nvram" -KERNEL=="rtc", MODE="0660", GROUP="audio" - -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=="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]*", MODE="0664" -KERNEL=="js[0-9]*", MODE="0664" - -# AOE character devices -SUBSYSTEM=="aoe", MODE="0220", GROUP="disk" -SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440" - diff --git a/meta/recipes-core/udev/files/tmpfs.patch b/meta/recipes-core/udev/files/tmpfs.patch deleted file mode 100644 index aa4a4f6c9..000000000 --- a/meta/recipes-core/udev/files/tmpfs.patch +++ /dev/null @@ -1,17 +0,0 @@ -Upstream-Status: Inappropriate [embedded] - -# -# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher -# - ---- udev-031/extras/start_udev~tmpfs 2004-09-10 17:10:03.000000000 -0400 -+++ udev-031/extras/start_udev 2004-09-11 15:18:15.560789160 -0400 -@@ -85,7 +85,7 @@ - fi - - echo "mounting... ramfs at $udev_root" --mount -n -t ramfs none $udev_root -+mount -n -t ramfs none $udev_root || mount -n -t tmpfs none $udev_root - - # propogate /udev from /sys - echo "Creating initial udev device nodes:" diff --git a/meta/recipes-core/udev/files/udev.rules b/meta/recipes-core/udev/files/udev.rules deleted file mode 100644 index 5c566f6ce..000000000 --- a/meta/recipes-core/udev/files/udev.rules +++ /dev/null @@ -1,98 +0,0 @@ -# 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 -# - -# SCSI devices -BUS=="scsi", KERNEL=="sr[0-9]*", NAME="scd%n", SYMLINK+="sr%n" - -# USB devices -BUS=="usb", KERNEL=="auer[0-9]*", NAME="usb/%k" -BUS=="usb", KERNEL=="cpad[0-9]*", NAME="usb/%k" -BUS=="usb", KERNEL=="dabusb*", NAME="usb/%k" -BUS=="usb", KERNEL=="hiddev*", NAME="usb/%k" -BUS=="usb", KERNEL=="legousbtower*", NAME="usb/%k" -BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k" -BUS=="usb", KERNEL=="ttyUSB*", SYSFS{product}=="Palm Handheld*", \ - SYMLINK+="pilot" - -# usbfs-like devices -SUBSYSTEM=="usb_device", \ - PROGRAM="/bin/sh -c 'export X=%k; export X=$${X#usbdev}; export B=$${X%%%%.*}; export D=$${X#*.}; echo bus/usb/$$B/$$D'", SYMLINK+="%c" - -# serial devices -KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20" -KERNEL=="capi[0-9]*", NAME="capi/%n" - -# video devices -KERNEL=="card[0-9]*", NAME="dri/%k" - -# misc devices -KERNEL=="hw_random", NAME="hwrng" -KERNEL=="tun", NAME="net/%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=="buzzer", NAME="misc/buzzer" - -# 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" - -# 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+="/sbin/firmware_helper" diff --git a/meta/recipes-core/udev/files/udev_network_queue.sh b/meta/recipes-core/udev/files/udev_network_queue.sh deleted file mode 100644 index 05e08e9d1..000000000 --- a/meta/recipes-core/udev/files/udev_network_queue.sh +++ /dev/null @@ -1,35 +0,0 @@ -#! /bin/sh -# -# Copyright Matthias Hentges (c) 2006 -# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license) -# -# Filename: udev_network_queue.sh -# Date: 03-May-06 - -do_start() { - if test -e /dev/udev_network_queue - then - echo "Activating queued NICs..." - for NIC in `cat /dev/udev_network_queue` - do - export INTERFACE="$NIC" ; export ACTION=add - /etc/udev/scripts/network.sh - done - echo "" - else - echo "No NICs queued" - fi -} - -do_stop() { - /bin/true -} - -case "$1" in -start) do_start;; -stop) do_stop;; -restart) do_stop - do_start;; -*) echo "Usage: `basename $0` [ start | stop | restart ]" - exit 0;; -esac diff --git a/meta/recipes-core/udev/files/udevsynthesize.patch b/meta/recipes-core/udev/files/udevsynthesize.patch deleted file mode 100644 index 5122ea2b2..000000000 --- a/meta/recipes-core/udev/files/udevsynthesize.patch +++ /dev/null @@ -1,778 +0,0 @@ -Upstream-Status: Inappropriate [distribution] - ---- udev-081/udevsynthesize.c.orig 2006-01-29 12:22:45.000000000 +0100 -+++ udev-081/udevsynthesize.c 2006-01-29 12:22:40.000000000 +0100 -@@ -0,0 +1,763 @@ -+/* -+ * udevcoldplug.c -+ * -+ * Copyright (C) 2005 SUSE Linux Products GmbH -+ * -+ * Author: -+ * Kay Sievers -+ * -+ * Synthesize kernel events from sysfs information and pass them -+ * to the udevd daemon. -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation version 2 of the License. -+ * -+ * This program is distributed in the hope that it will be useful, but -+ * WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License along -+ * with this program; if not, write to the Free Software Foundation, Inc., -+ * 675 Mass Ave, Cambridge, MA 02139, USA. -+ * -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "udev_libc_wrapper.h" -+#include "udev.h" -+#include "udevd.h" -+#include "udev_version.h" -+#include "logging.h" -+ -+#include "list.h" -+ -+#ifndef DT_DIR -+#define DT_DIR 4 -+#endif -+ -+static const char *udev_log_str; -+static int udevd_sock = -1; -+ -+#ifdef USE_LOG -+void log_message(int priority, const char *format, ...) -+{ -+ va_list args; -+ -+ if (priority > udev_log_priority) -+ return; -+ -+ va_start(args, format); -+ vsyslog(priority, format, args); -+ va_end(args); -+} -+#endif -+ -+struct device { -+ struct list_head node; -+ struct udevd_msg msg; -+ size_t bufpos; -+ char *path; -+}; -+ -+static dev_t read_devt(const char *path) -+{ -+ char filename[PATH_SIZE]; -+ char majorminor[64]; -+ unsigned int major, minor; -+ ssize_t count; -+ int fd; -+ -+ snprintf(filename, sizeof(filename), "%s/%s", path, "dev"); -+ filename[sizeof(filename)-1] = '\0'; -+ -+ fd = open(filename, O_RDONLY); -+ if (fd < 0) -+ return 0; -+ -+ count = read(fd, majorminor, sizeof(majorminor)); -+ close(fd); -+ majorminor[count] = '\0'; -+ if (sscanf(majorminor, "%u:%u", &major, &minor) != 2) -+ return 0; -+ dbg("found major=%d, minor=%d", major, minor); -+ -+ return makedev(major, minor); -+} -+ -+static ssize_t read_file(const char *directory, const char *file, char *str, size_t len) -+{ -+ char filename[PATH_SIZE]; -+ ssize_t count; -+ int fd; -+ -+ memset(filename, 0, sizeof(filename)); -+ snprintf(filename, sizeof(filename), "%s/%s", directory, file); -+ filename[sizeof(filename)-1] = '\0'; -+ -+ fd = open(filename, O_RDONLY); -+ if (fd < 0) -+ return -1; -+ -+ count = read(fd, str, len-1); -+ close(fd); -+ -+ if (count > (ssize_t)len) -+ count = len; -+ str[count-1] = '\0'; -+ -+ return count; -+} -+ -+static ssize_t read_link(const char *directory, const char *file, char *str, size_t size) -+{ -+ char filename[PATH_SIZE]; -+ char target[PATH_SIZE]; -+ int len; -+ char *back; -+ char *strip; -+ int level = 1; -+ -+ snprintf(filename, sizeof(filename), "%s/%s", directory, file); -+ filename[sizeof(filename)-1] = '\0'; -+ -+ len = readlink(filename, target, sizeof(target)-1); -+ if (len < 0) -+ return -1; -+ target[len] = '\0'; -+ -+ back = target; -+ while (strncmp(back, "../", 3) == 0) { -+ back += 3; -+ level++; -+ } -+ while(level--) { -+ strip = strrchr(filename, '/'); -+ if (!strip) -+ return -1; -+ strip[0] = '\0'; -+ } -+ -+ snprintf(str, size, "%s/%s", filename, back); -+ str[size-1] = '\0'; -+ -+ return len; -+} -+ -+static char *add_env_key(struct device *device, const char *key, const char *value) -+{ -+ size_t pos = device->bufpos; -+ device->bufpos += sprintf(&device->msg.envbuf[device->bufpos], "%s=%s", key, value)+1; -+ return &device->msg.envbuf[pos]; -+} -+ -+static struct device *device_create(const char *path, const char *subsystem, dev_t devt) -+{ -+ struct device *device; -+ const char *devpath = &path[strlen(sysfs_path)]; -+ char target[PATH_SIZE]; -+ -+ device = malloc(sizeof(struct device)); -+ if (device == NULL) { -+ dbg("error malloc"); -+ return NULL; -+ } -+ memset(device, 0x00, sizeof(struct device)); -+ -+ device->path = add_env_key(device, "DEVPATH", devpath); -+ device->path += strlen("DEVPATH="); -+ add_env_key(device, "SUBSYSTEM", subsystem); -+ add_env_key(device, "ACTION", "add"); -+ add_env_key(device, "UDEV_COLDPLUG", "1"); -+ -+ if (major(devt)) { -+ char number[32]; -+ sprintf(number, "%u", major(devt)); -+ add_env_key(device, "MAJOR", number); -+ sprintf(number, "%u", minor(devt)); -+ add_env_key(device, "MINOR", number); -+ } -+ -+ if (strncmp(devpath, "/block/", strlen("/block/")) == 0 || -+ strncmp(devpath, "/class/", strlen("/class/")) == 0) { -+ char physpath[PATH_SIZE]; -+ -+ if (read_link(path, "device", physpath, sizeof(physpath)) > (ssize_t)strlen(sysfs_path)) { -+ add_env_key(device, "PHYSDEVPATH", &physpath[strlen(sysfs_path)]); -+ if (read_link(physpath, "driver", target, sizeof(target)) > (ssize_t)strlen(sysfs_path)) { -+ char *pos = strrchr(target, '/'); -+ if (pos) -+ add_env_key(device, "PHYSDEVDRIVER", &pos[1]); -+ } -+ if (read_link(physpath, "bus", target, sizeof(target)) > (ssize_t)strlen(sysfs_path)) { -+ char *pos = strrchr(target, '/'); -+ if (pos) -+ add_env_key(device, "PHYSDEVBUS", &pos[1]); -+ } -+ } -+ } else if (strncmp(devpath, "/devices/", strlen("/devices/")) == 0) { -+ if (read_link(path, "driver", target, sizeof(target)) > (ssize_t)strlen(sysfs_path)) { -+ char *pos = strrchr(target, '/'); -+ if (pos) -+ add_env_key(device, "PHYSDEVDRIVER", &pos[1]); -+ } -+ if (read_link(path, "bus", target, sizeof(target)) > (ssize_t)strlen(sysfs_path)) { -+ char *pos = strrchr(target, '/'); -+ if (pos) -+ add_env_key(device, "PHYSDEVBUS", &pos[1]); -+ } -+ } -+ -+ return device; -+} -+ -+static int device_list_insert(struct list_head *device_list, struct device *device) -+{ -+ struct device *loop_device; -+ -+ dbg("insert: '%s'", device->path); -+ -+ /* sort files in lexical order */ -+ list_for_each_entry(loop_device, device_list, node) -+ if (strcmp(loop_device->path, device->path) > 0) -+ break; -+ -+ list_add_tail(&device->node, &loop_device->node); -+ -+ return 0; -+} -+ -+static int add_device_udevd(struct device *device) -+{ -+ size_t msg_len; -+ struct sockaddr_un saddr; -+ socklen_t addrlen; -+ int retval; -+ -+ memset(&saddr, 0x00, sizeof(struct sockaddr_un)); -+ saddr.sun_family = AF_LOCAL; -+ /* use abstract namespace for socket path */ -+ strcpy(&saddr.sun_path[1], UDEVD_SOCK_PATH); -+ addrlen = offsetof(struct sockaddr_un, sun_path) + strlen(saddr.sun_path+1) + 1; -+ -+ strcpy(device->msg.magic, UDEV_MAGIC); -+ device->msg.type = UDEVD_UEVENT_UDEVSEND; -+ -+ msg_len = offsetof(struct udevd_msg, envbuf) + device->bufpos; -+ dbg("msg_len=%i", msg_len); -+ -+ retval = sendto(udevd_sock, &device->msg, msg_len, 0, (struct sockaddr *)&saddr, addrlen); -+ if (retval < 0) -+ return -1; -+ -+ return 0; -+} -+ -+static void exec_list(struct list_head *device_list, const char *first[], const char *last[]) -+{ -+ struct device *loop_device; -+ struct device *tmp_device; -+ int i; -+ -+ /* handle the "first" type devices first */ -+ if (first) -+ list_for_each_entry_safe(loop_device, tmp_device, device_list, node) { -+ for (i = 0; first[i] != NULL; i++) { -+ if (strncmp(loop_device->path, first[i], strlen(first[i])) == 0) { -+ add_device_udevd(loop_device); -+ list_del(&loop_device->node); -+ free(loop_device); -+ break; -+ } -+ } -+ } -+ -+ /* handle the devices we are allowed to, excluding the "last" type devices */ -+ if (last) -+ list_for_each_entry_safe(loop_device, tmp_device, device_list, node) { -+ int found = 0; -+ for (i = 0; last[i] != NULL; i++) { -+ if (strncmp(loop_device->path, last[i], strlen(last[i])) == 0) { -+ found = 1; -+ break; -+ } -+ } -+ if (found) -+ continue; -+ -+ add_device_udevd(loop_device); -+ list_del(&loop_device->node); -+ free(loop_device); -+ } -+ -+ /* handle the rest of the devices */ -+ list_for_each_entry_safe(loop_device, tmp_device, device_list, node) { -+ add_device_udevd(loop_device); -+ list_del(&loop_device->node); -+ free(loop_device); -+ } -+} -+ -+static int udev_scan_class(void) -+{ -+ char base[PATH_SIZE]; -+ DIR *dir; -+ struct dirent *dent; -+ LIST_HEAD(device_list); -+ -+ /* we want /dev/null and /dev/console first */ -+ const char *first[] = { -+ "/class/mem", -+ "/class/tty", -+ NULL, -+ }; -+ -+ snprintf(base, sizeof(base), "%s/class", sysfs_path); -+ base[sizeof(base)-1] = '\0'; -+ -+ dir = opendir(base); -+ if (!dir) -+ return -1; -+ -+ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) { -+ char dirname[PATH_SIZE]; -+ DIR *dir2; -+ struct dirent *dent2; -+ -+ if (dent->d_name[0] == '.') -+ continue; -+ -+ snprintf(dirname, sizeof(dirname), "%s/%s", base, dent->d_name); -+ dirname[sizeof(dirname)-1] = '\0'; -+ -+ dir2 = opendir(dirname); -+ if (!dir2) -+ continue; -+ for (dent2 = readdir(dir2); dent2 != NULL; dent2 = readdir(dir2)) { -+ char dirname2[PATH_SIZE]; -+ struct device *device; -+ dev_t devt; -+ -+ if (dent2->d_name[0] == '.') -+ continue; -+ if (dent2->d_type != DT_DIR) -+ continue; -+ -+ snprintf(dirname2, sizeof(dirname2), "%s/%s", dirname, dent2->d_name); -+ dirname2[sizeof(dirname2)-1] = '\0'; -+ devt = read_devt(dirname2); -+ device = device_create(dirname2, dent->d_name, devt); -+ -+ if (strcmp(dent->d_name, "net") == 0 || -+ strcmp(dent->d_name, "bluetooth") == 0) { -+ add_env_key(device, "INTERFACE", dent2->d_name); -+ } else if (strcmp(dent->d_name, "pcmcia_socket") == 0 && -+ strlen(dent->d_name) > 14) { -+ add_env_key(device, "SOCKET_NO", -+ dent2->d_name + 14); -+ } -+ -+ device_list_insert(&device_list, device); -+ } -+ closedir(dir2); -+ } -+ closedir(dir); -+ exec_list(&device_list, first, NULL); -+ -+ return 0; -+} -+ -+static int udev_scan_block(void) -+{ -+ char base[PATH_SIZE]; -+ DIR *dir; -+ struct dirent *dent; -+ LIST_HEAD(device_list); -+ -+ /* dm wants to have the block devices around before it */ -+ const char *last[] = { -+ "/block/dm", -+ NULL, -+ }; -+ -+ snprintf(base, sizeof(base), "%s/block", sysfs_path); -+ base[sizeof(base)-1] = '\0'; -+ -+ dir = opendir(base); -+ if (!dir) -+ return -1; -+ -+ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) { -+ char dirname[PATH_SIZE]; -+ struct device *device; -+ struct dirent *dent2; -+ DIR *dir2; -+ dev_t devt; -+ -+ if (dent->d_name[0] == '.') -+ continue; -+ if (dent->d_type != DT_DIR) -+ continue; -+ -+ snprintf(dirname, sizeof(dirname), "%s/%s", base, dent->d_name); -+ dirname[sizeof(dirname)-1] = '\0'; -+ devt = read_devt(dirname); -+ if (major(devt)) { -+ device = device_create(dirname, "block", devt); -+ device_list_insert(&device_list, device); -+ } -+ -+ /* look for partitions */ -+ dir2 = opendir(dirname); -+ if (!dir2) -+ continue; -+ for (dent2 = readdir(dir2); dent2 != NULL; dent2 = readdir(dir2)) { -+ char dirname2[PATH_SIZE]; -+ -+ if (dent2->d_name[0] == '.') -+ continue; -+ if (dent2->d_type != DT_DIR) -+ continue; -+ -+ snprintf(dirname2, sizeof(dirname2), "%s/%s", dirname, dent2->d_name); -+ dirname2[sizeof(dirname2)-1] = '\0'; -+ devt = read_devt(dirname2); -+ if (major(devt)) { -+ device = device_create(dirname2, "block", devt); -+ device_list_insert(&device_list, device); -+ continue; -+ } -+ } -+ closedir(dir2); -+ } -+ closedir(dir); -+ exec_list(&device_list, NULL, last); -+ -+ return 0; -+} -+ -+static int pci_handler(struct device *device) -+{ -+ char path[PATH_SIZE]; -+ char value[PATH_SIZE]; -+ char vendor[PATH_SIZE]; -+ char product[PATH_SIZE]; -+ const char *name; -+ -+ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path); -+ path[sizeof(path)-1] = '\0'; -+ -+ if (read_file(path, "modalias", value, sizeof(value)) > 0) -+ add_env_key(device, "MODALIAS", value); -+ -+ name = strrchr(device->path, '/'); -+ if (name) -+ add_env_key(device, "PCI_SLOT_NAME", &name[1]); -+ -+ if (read_file(path, "class", value, sizeof(value)) > 0) -+ add_env_key(device, "PCI_CLASS", &value[2]); -+ -+ if (read_file(path, "vendor", vendor, sizeof(vendor)) > 0 && -+ read_file(path, "device", product, sizeof(product)) > 0) { -+ snprintf(value, sizeof(value), "%s:%s", &vendor[2], &product[2]); -+ path[sizeof(value)-1] = '\0'; -+ add_env_key(device, "PCI_ID", value); -+ } -+ -+ if (read_file(path, "subsystem_vendor", vendor, sizeof(vendor)) > 0 && -+ read_file(path, "subsystem_device", product, sizeof(product)) > 0) { -+ snprintf(value, sizeof(value), "%s:%s", &vendor[2], &product[2]); -+ path[sizeof(value)-1] = '\0'; -+ add_env_key(device, "PCI_SUBSYS_ID", value); -+ } -+ -+ return 0; -+} -+ -+static int usb_handler(struct device *device) -+{ -+ char path[PATH_SIZE]; -+ char value[PATH_SIZE]; -+ char str1[PATH_SIZE]; -+ char str2[PATH_SIZE]; -+ char str3[PATH_SIZE]; -+ unsigned int int1; -+ unsigned int int2; -+ unsigned int int3; -+ char *pos; -+ -+ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path); -+ path[sizeof(path)-1] = '\0'; -+ -+ /* device events have : in their directory name */ -+ pos = strrchr(path, '/'); -+ if (!strchr(pos, ':')) -+ return 0; /* and do not have other variables */ -+ -+ if (read_file(path, "modalias", value, sizeof(value)) > 0) -+ add_env_key(device, "MODALIAS", value); -+ -+ if (read_file(path, "bInterfaceClass", str1, sizeof(str1)) > 0 && -+ read_file(path, "bInterfaceSubClass", str2, sizeof(str2)) > 0 && -+ read_file(path, "bInterfaceProtocol", str3, sizeof(str3)) > 0) { -+ int1 = (int) strtol(str1, NULL, 16); -+ int2 = (int) strtol(str2, NULL, 16); -+ int3 = (int) strtol(str3, NULL, 16); -+ snprintf(value, sizeof(value), "%u/%u/%u", int1, int2, int3); -+ path[sizeof(value)-1] = '\0'; -+ add_env_key(device, "INTERFACE", value); -+ } -+ -+ /* move to the parent directory */ -+ pos[0] = '\0'; -+ -+ if (read_file(path, "idVendor", str1, sizeof(str1)) > 0 && -+ read_file(path, "idProduct", str2, sizeof(str2)) > 0 && -+ read_file(path, "bcdDevice", str3, sizeof(str3)) > 0) { -+ int1 = (int) strtol(str1, NULL, 16); -+ int2 = (int) strtol(str2, NULL, 16); -+ int3 = (int) strtol(str3, NULL, 16); -+ snprintf(value, sizeof(value), "%x/%x/%x", int1, int2, int3); -+ path[sizeof(value)-1] = '\0'; -+ add_env_key(device, "PRODUCT", value); -+ } -+ -+ if (read_file(path, "bDeviceClass", str1, sizeof(str1)) > 0 && -+ read_file(path, "bDeviceSubClass", str2, sizeof(str2)) > 0 && -+ read_file(path, "bDeviceProtocol", str3, sizeof(str3)) > 0) { -+ int1 = (int) strtol(str1, NULL, 16); -+ int2 = (int) strtol(str2, NULL, 16); -+ int3 = (int) strtol(str3, NULL, 16); -+ snprintf(value, sizeof(value), "%u/%u/%u", int1, int2, int3); -+ path[sizeof(value)-1] = '\0'; -+ add_env_key(device, "TYPE", value); -+ } -+ -+ if (read_file(path, "devnum", str2, sizeof(str2)) > 0) { -+ pos = strrchr(path, 'b'); -+ int1 = (int) strtol(pos + 1, NULL, 16); -+ int2 = (int) strtol(str2, NULL, 16); -+ snprintf(value, sizeof(value), -+ "/proc/bus/usb/%03d/%03d", int1, int2); -+ path[sizeof(value)-1] = '\0'; -+ add_env_key(device, "DEVICE", value); -+ } -+ -+ return 0; -+} -+ -+static int serio_handler(struct device *device) -+{ -+ char path[PATH_SIZE]; -+ char value[PATH_SIZE]; -+ -+ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path); -+ path[sizeof(path)-1] = '\0'; -+ -+ if (read_file(path, "modalias", value, sizeof(value)) > 0) -+ add_env_key(device, "MODALIAS", value); -+ -+ if (read_file(path, "id/type", value, sizeof(value)) > 0) -+ add_env_key(device, "SERIO_TYPE", value); -+ -+ if (read_file(path, "id/proto", value, sizeof(value)) > 0) -+ add_env_key(device, "SERIO_PROTO", value); -+ -+ if (read_file(path, "id/id", value, sizeof(value)) > 0) -+ add_env_key(device, "SERIO_ID", value); -+ -+ if (read_file(path, "id/extra", value, sizeof(value)) > 0) -+ add_env_key(device, "SERIO_EXTRA", value); -+ -+ return 0; -+} -+ -+static int ccw_handler(struct device *device) -+{ -+ char path[PATH_SIZE]; -+ char value[PATH_SIZE], *tmp; -+ -+ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path); -+ path[sizeof(path)-1] = '\0'; -+ -+ if (read_file(path, "modalias", value, sizeof(value)) > 0) -+ add_env_key(device, "MODALIAS", value); -+ -+ if (read_file(path, "cutype", value, sizeof(value)) > 0) { -+ value[4] = 0; -+ tmp = &value[5]; -+ add_env_key(device, "CU_TYPE", value); -+ add_env_key(device, "CU_MODEL", tmp); -+ } -+ -+ if (read_file(path, "devtype", value, sizeof(value)) > 0) { -+ if (value[0] == 'n') { -+ add_env_key(device, "DEV_TYPE", "0000"); -+ add_env_key(device, "DEV_MODEL", "00"); -+ } -+ else { -+ value[4] = 0; -+ tmp = &value[5]; -+ add_env_key(device, "DEV_TYPE", value); -+ add_env_key(device, "DEV_MODEL", tmp); -+ } -+ } -+ -+ return 0; -+} -+ -+static int modalias_handler(struct device *device) -+{ -+ char path[PATH_SIZE]; -+ char value[PATH_SIZE]; -+ -+ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path); -+ path[sizeof(path)-1] = '\0'; -+ -+ if (read_file(path, "modalias", value, sizeof(value)) > 0) -+ add_env_key(device, "MODALIAS", value); -+ -+ return 0; -+} -+ -+static int udev_scan_bus(const char *bus, int bus_handler(struct device *device)) -+{ -+ char base[PATH_SIZE]; -+ DIR *dir; -+ struct dirent *dent; -+ LIST_HEAD(device_list); -+ -+ snprintf(base, sizeof(base), "%s/bus/%s/devices", sysfs_path, bus); -+ base[sizeof(base)-1] = '\0'; -+ -+ dir = opendir(base); -+ if (!dir) -+ return -1; -+ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) { -+ char devpath[PATH_SIZE]; -+ struct device *device; -+ -+ if (dent->d_name[0] == '.') -+ continue; -+ -+ if (read_link(base, dent->d_name, devpath, sizeof(devpath)) < 0) -+ continue; -+ -+ device = device_create(devpath, bus, makedev(0, 0)); -+ if (bus_handler) { -+ if (bus_handler(device) < 0) { -+ dbg("'%s' bus handler skipped event", devpath); -+ free(device); -+ continue; -+ } -+ } -+ -+ device_list_insert(&device_list, device); -+ } -+ closedir(dir); -+ exec_list(&device_list, NULL, NULL); -+ -+ return 0; -+} -+ -+static int udev_scan_devices(void) -+{ -+ char base[PATH_SIZE]; -+ DIR *dir; -+ struct dirent *dent; -+ -+ snprintf(base, sizeof(base), "%s/bus", sysfs_path); -+ base[sizeof(base)-1] = '\0'; -+ -+ dir = opendir(base); -+ if (!dir) -+ return -1; -+ -+ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) { -+ if (dent->d_name[0] == '.') -+ continue; -+ if (dent->d_type != DT_DIR) -+ continue; -+ -+ /* add bus specific env values */ -+ if (strcmp(dent->d_name, "pci") == 0) -+ udev_scan_bus("pci", pci_handler); -+ else if (strcmp(dent->d_name, "usb") == 0) -+ udev_scan_bus("usb", usb_handler); -+ else if (strcmp(dent->d_name, "serio") == 0) -+ udev_scan_bus("serio", serio_handler); -+ else if (strcmp(dent->d_name, "ccw") == 0) -+ udev_scan_bus("ccw", ccw_handler); -+ else -+ udev_scan_bus(dent->d_name, modalias_handler); -+ } -+ closedir(dir); -+ -+ return 0; -+} -+ -+int main(int argc, char *argv[], char *envp[]) -+{ -+ LIST_HEAD(device_list); -+ int i; -+ -+ logging_init("udevcoldplug"); -+ udev_config_init(); sysfs_init(); -+ dbg("version %s", UDEV_VERSION); -+ -+ udev_log_str = getenv("UDEV_LOG"); -+ -+ /* disable all logging if not explicitely requested */ -+ if (udev_log_str == NULL) -+ udev_log_priority = 0; -+ -+ for (i = 1 ; i < argc; i++) { -+ char *arg = argv[i]; -+ -+ if (strcmp(arg, "help") == 0 || strcmp(arg, "--help") == 0 || strcmp(arg, "-h") == 0) { -+ printf("Usage: udevcoldplug \n" -+ " --help print this help text\n\n"); -+ exit(0); -+ } else { -+ fprintf(stderr, "unknown option\n\n"); -+ exit(1); -+ } -+ } -+ -+ udevd_sock = socket(AF_LOCAL, SOCK_DGRAM, 0); -+ if (udevd_sock < 0) { -+ err("error getting socket"); -+ return 1; -+ } -+ -+ /* create nodes for already available devices */ -+ udev_scan_class(); -+ udev_scan_block(); -+ -+ /* synthesize events for bus devices -+ * may load modules or configure the device */ -+ udev_scan_devices(); -+ -+ if (udevd_sock >= 0) -+ close(udevd_sock); -+ logging_close(); -+ -+ return 0; -+} ---- udev-081/Makefile -+++ udev-081/Makefile -@@ -58,6 +58,7 @@ PROGRAMS = \ - udevmonitor \ - udevinfo \ - udevtest \ -+ udevsynthesize \ - udevstart - - HEADERS = \ diff --git a/meta/recipes-core/udev/files/udevsynthesize.sh b/meta/recipes-core/udev/files/udevsynthesize.sh deleted file mode 100644 index d58217c14..000000000 --- a/meta/recipes-core/udev/files/udevsynthesize.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh -e - -load_input_modules() { - for module in mousedev evdev joydev; do - modprobe -q $module || true - done -} - -if [ ! -e /sys/class/mem/null/uevent ]; then # <= 2.6.14 - /lib/udev/udevsynthesize - load_input_modules - exit 0 -fi - -# replace $IFS with something which is not likely to appear in a sysfs path, -# because some buggy drivers have spaces in their names -oldifs="$IFS" -IFS="|" - -for file in /sys/bus/*/devices/*/uevent /sys/class/*/*/uevent \ - /sys/block/*/uevent /sys/block/*/*/uevent; do - case "$file" in - */device/uevent) ;; # skip followed device symlinks - */\*/*) ;; - - */class/mem/*) # for /dev/null - first="$first${IFS}$file" ;; - - */block/md[0-9]*) - last="$last${IFS}$file" ;; - - *) - default="$default${IFS}$file" ;; - esac -done - -for file in $first${IFS}$default${IFS}$last; do - [ "$file" ] || continue - echo 'add' > "$file" || true -done - -IFS="$oldifs" - -case "$(uname -r)" in - 2.6.1[0-5]|2.6.1[0-5][!0-9]*) # <= 2.6.15 - load_input_modules - ;; -esac - -exit 0 - diff --git a/meta/recipes-core/udev/udev-145/enable-gudev.patch b/meta/recipes-core/udev/udev-145/enable-gudev.patch deleted file mode 100644 index 8ee402b13..000000000 --- a/meta/recipes-core/udev/udev-145/enable-gudev.patch +++ /dev/null @@ -1,50 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -Index: udev-145/configure.ac -=================================================================== ---- udev-145.orig/configure.ac 2010-01-29 14:41:29.000000000 +0000 -+++ udev-145/configure.ac 2010-01-29 14:41:54.000000000 +0000 -@@ -49,16 +49,17 @@ - AC_ARG_ENABLE([extras], - AS_HELP_STRING([--disable-extras], [disable extras with external dependencies]), - [], [enable_extras=yes]) -+ -+ PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.7.0 gobject-2.0 >= 2.7.0]) -+ AC_SUBST([GLIB_CFLAGS]) -+ AC_SUBST([GLIB_LIBS]) -+ - if test "x$enable_extras" = xyes; then - AC_PATH_PROG([GPERF], [gperf]) - if test -z "$GPERF"; then - AC_MSG_ERROR([gperf is needed]) - fi - -- PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.7.0 gobject-2.0 >= 2.7.0]) -- AC_SUBST([GLIB_CFLAGS]) -- AC_SUBST([GLIB_LIBS]) -- - AC_CHECK_LIB([acl], [acl_init], [:], AC_MSG_ERROR([libacl not found])) - AC_CHECK_HEADER([acl/libacl.h], [:], AC_MSG_ERROR([libacl header not found])) - -Index: udev-145/extras/Makefile.am -=================================================================== ---- udev-145.orig/extras/Makefile.am 2010-01-29 14:43:56.000000000 +0000 -+++ udev-145/extras/Makefile.am 2010-01-29 14:44:11.000000000 +0000 -@@ -12,7 +12,8 @@ - rule_generator \ - scsi_id \ - usb_id \ -- v4l_id -+ v4l_id \ -+ gudev - - if ENABLE_EXTRAS - SUBDIRS += \ -@@ -20,6 +21,5 @@ - usb-db \ - hid2hci \ - keymap \ -- modem-modeswitch \ -- gudev -+ modem-modeswitch - endif diff --git a/meta/recipes-core/udev/udev-145/init b/meta/recipes-core/udev/udev-145/init deleted file mode 100644 index eb5e50758..000000000 --- a/meta/recipes-core/udev/udev-145/init +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/sh -e - -### BEGIN INIT INFO -# Provides: udev -# Required-Start: mountvirtfs -# Required-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Start udevd, populate /dev and load drivers. -### END INIT INFO - -export TZ=/etc/localtime - -[ -d /sys/class ] || exit 1 -[ -r /proc/mounts ] || exit 1 -[ -x /sbin/udevd ] || exit 1 -[ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf - -kill_udevd() { - if [ -x /sbin/pidof ]; then - pid=`/sbin/pidof -x udevd` - [ -n "$pid" ] && kill $pid - fi -} - -export ACTION=add -# propagate /dev from /sys -echo -n "Starting udev" - -# mount the tmpfs on /dev, if not already done -LANG=C awk "\$2 == \"/dev\" && \$4 == \"tmpfs\" { exit 1 }" /proc/mounts && { - mount -n -o mode=0755 -t tmpfs none "/dev" - mkdir -m 0755 /dev/pts - mkdir -m 1777 /dev/shm -} - -if [ -e /etc/dev.tar ]; then - (cd /; tar xf /etc/dev.tar) - not_first_boot=1 -fi - -# make_extra_nodes -kill_udevd > "/dev/null" 2>&1 - - # trigger the sorted events - echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug - /sbin/udevd -d - - /sbin/udevadm control --env=STARTUP=1 - if [ "$not_first_boot" != "" ];then - /sbin/udevadm trigger --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus --subsystem-nomatch=graphics --subsystem-nomatch=backlight --subsystem-nomatch=video4linux --subsystem-nomatch=platform - (/sbin/udevadm settle --timeout=3; /sbin/udevadm control --env=STARTUP=)& - else - /sbin/udevadm trigger - /sbin/udevadm settle - fi - -echo -exit 0 diff --git a/meta/recipes-core/udev/udev-145/local.rules b/meta/recipes-core/udev/udev-145/local.rules deleted file mode 100644 index dab319b43..000000000 --- a/meta/recipes-core/udev/udev-145/local.rules +++ /dev/null @@ -1,33 +0,0 @@ -# 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 -# Need to use ../ so the eventX can find the parent inputX modalias which is a directory above -SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{../modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0" - diff --git a/meta/recipes-core/udev/udev-145/noasmlinkage.patch b/meta/recipes-core/udev/udev-145/noasmlinkage.patch deleted file mode 100644 index 6d22b1d68..000000000 --- a/meta/recipes-core/udev/udev-145/noasmlinkage.patch +++ /dev/null @@ -1,50 +0,0 @@ -Upstream-Status: Inappropriate [legacy version] - -Index: udev-141/udev/test-udev.c -=================================================================== ---- udev-141.orig/udev/test-udev.c 2008-10-24 09:07:24.000000000 +0100 -+++ udev-141/udev/test-udev.c 2009-04-14 15:34:01.000000000 +0100 -@@ -30,7 +30,7 @@ - - #include "udev.h" - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - switch (signum) { - case SIGALRM: -Index: udev-141/udev/udevadm-monitor.c -=================================================================== ---- udev-141.orig/udev/udevadm-monitor.c 2009-03-29 19:07:01.000000000 +0100 -+++ udev-141/udev/udevadm-monitor.c 2009-04-14 15:34:01.000000000 +0100 -@@ -35,7 +35,7 @@ - - static int udev_exit; - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - if (signum == SIGINT || signum == SIGTERM) - udev_exit = 1; -Index: udev-141/udev/udevd.c -=================================================================== ---- udev-141.orig/udev/udevd.c 2009-03-29 19:07:01.000000000 +0100 -+++ udev-141/udev/udevd.c 2009-04-14 15:34:56.000000000 +0100 -@@ -172,7 +172,7 @@ - udev_event_unref(event); - } - --static void asmlinkage event_sig_handler(int signum) -+static void event_sig_handler(int signum) - { - if (signum == SIGALRM) - exit(1); -@@ -583,7 +583,7 @@ - return 0; - } - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - switch (signum) { - case SIGINT: diff --git a/meta/recipes-core/udev/udev-145/permissions.rules b/meta/recipes-core/udev/udev-145/permissions.rules deleted file mode 100644 index 205b73329..000000000 --- a/meta/recipes-core/udev/udev-145/permissions.rules +++ /dev/null @@ -1,131 +0,0 @@ -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}=="3", ATTRS{vendor}=="HP", GROUP="scanner" -SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="Epson", GROUP="scanner" -SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="EPSON", GROUP="scanner" -SUBSYSTEMS=="scsi", ATTRS{type}=="4", GROUP="cdrom" -SUBSYSTEMS=="scsi", ATTRS{type}=="5", GROUP="cdrom" -SUBSYSTEMS=="scsi", ATTRS{type}=="6", GROUP="scanner" -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=="nvram", GROUP="nvram" -KERNEL=="rtc|rtc[0-9]*", GROUP="audio" -KERNEL=="tpm*", MODE="0600", OWNER="tss", GROUP="tss" -KERNEL=="fuse", GROUP="fuse" -KERNEL=="kqemu", MODE="0666" -KERNEL=="kvm", GROUP="kvm" -KERNEL=="tun", MODE="0666", - -KERNEL=="cdemu[0-9]*", GROUP="cdrom" -KERNEL=="pktcdvd[0-9]*", GROUP="cdrom" -KERNEL=="pktcdvd", MODE="0644" - -KERNEL=="uverbs*", GROUP="rdma" -KERNEL=="ucm*", GROUP="rdma" -KERNEL=="rdma_ucm", GROUP="rdma" - -# 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/recipes-core/udev/udev-145/run.rules b/meta/recipes-core/udev/udev-145/run.rules deleted file mode 100644 index 75d71375b..000000000 --- a/meta/recipes-core/udev/udev-145/run.rules +++ /dev/null @@ -1,14 +0,0 @@ -# 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/recipes-core/udev/udev-145/udev.rules b/meta/recipes-core/udev/udev-145/udev.rules deleted file mode 100644 index a19d4a0bf..000000000 --- a/meta/recipes-core/udev/udev-145/udev.rules +++ /dev/null @@ -1,116 +0,0 @@ -# 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/recipes-core/udev/udev-145/unbreak.patch b/meta/recipes-core/udev/udev-145/unbreak.patch deleted file mode 100644 index ef45c093e..000000000 --- a/meta/recipes-core/udev/udev-145/unbreak.patch +++ /dev/null @@ -1,26 +0,0 @@ -Upstream-Status: Inappropriate [legacy version] - -Index: udev-141/extras/volume_id/lib/Makefile.am -=================================================================== ---- udev-141.orig/extras/volume_id/lib/Makefile.am 2009-05-17 23:36:16.000000000 +0100 -+++ udev-141/extras/volume_id/lib/Makefile.am 2009-05-17 23:36:26.000000000 +0100 -@@ -54,19 +54,6 @@ - -version-info $(VOLID_LT_CURRENT):$(VOLID_LT_REVISION):$(VOLID_LT_AGE) \ - -export-symbols $(top_srcdir)/extras/volume_id/lib/exported_symbols - --# move devel files to $(prefix)$(libdir_name) if needed --install-data-hook: -- rm $(DESTDIR)$(rootlibdir)/libvolume_id.la -- if test "$(prefix)" != "$(exec_prefix)"; then \ -- mkdir -p $(DESTDIR)$(prefix)/$(libdir_name); \ -- mv $(DESTDIR)$(rootlibdir)/libvolume_id.a $(DESTDIR)$(prefix)/$(libdir_name)/; \ -- so_img_name=$$(readlink $(DESTDIR)$(rootlibdir)/libvolume_id.so); \ -- rm $(DESTDIR)$(rootlibdir)/libvolume_id.so; \ -- so_img_rel_target_prefix=$$(echo $(prefix)/$(libdir_name) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \ -- ln -sf $$so_img_rel_target_prefix$(exec_prefix)/$(libdir_name)/$$so_img_name \ -- $(DESTDIR)$(prefix)/$(libdir_name)/libvolume_id.so; \ -- fi -- - EXTRA_DIST = \ - exported_symbols - diff --git a/meta/recipes-core/udev/udev.inc b/meta/recipes-core/udev/udev.inc deleted file mode 100644 index eb096eee9..000000000 --- a/meta/recipes-core/udev/udev.inc +++ /dev/null @@ -1,72 +0,0 @@ -SUMMARY = "/dev/ and hotplug management daemon" -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.0+ & LGPLv2.1+" - -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://udev-cache \ - file://init" - -UDEV_DEVFS_RULES ?= "0" - -PACKAGES =+ "udev-utils libvolume-id udev-cache" -FILES_udev-utils = "${usrbindir}/udevinfo ${usrbindir}/udevtest" -FILES_libvolume-id = "${base_libdir}/libvolume_id.so.*" -FILES_udev-cache = "${sysconfdir}/init.d/udev-cache" - -RRECOMMENDS_${PN} += "udev-extraconf udev-cache" - -inherit update-rc.d autotools pkgconfig - -INITSCRIPT_PACKAGES = "udev udev-cache" -INITSCRIPT_NAME_udev = "udev" -INITSCRIPT_PARAMS_udev = "start 04 S ." -INITSCRIPT_NAME_udev-cache = "udev-cache" -INITSCRIPT_PARAMS_udev-cache = "start 36 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 = "" -FILES_${PN} += "${usrbindir}/* ${usrsbindir}/*" -FILES_${PN}-dbg += "${usrbindir}/.debug ${usrsbindir}/.debug" -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 -m 0755 ${WORKDIR}/udev-cache ${D}${sysconfdir}/init.d/udev-cache - - 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 -} diff --git a/meta/recipes-core/udev/udev_145.bb b/meta/recipes-core/udev/udev_145.bb deleted file mode 100644 index b2e229424..000000000 --- a/meta/recipes-core/udev/udev_145.bb +++ /dev/null @@ -1,55 +0,0 @@ -RPROVIDES_${PN} = "hotplug" - -PR = "r11" - -SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \ - file://enable-gudev.patch \ - file://run.rules \ - " - -require udev.inc - -INITSCRIPT_PARAMS = "start 03 S ." - -FILES_${PN} += "${base_libdir}/udev/*" -FILES_${PN}-dbg += "${base_libdir}/udev/.debug" -UDEV_EXTRAS = "extras/firmware/ extras/scsi_id/ extras/volume_id/" - -EXTRA_OECONF = "--with-udev-prefix= --disable-extras --disable-introspection" - -DEPENDS += "glib-2.0" - -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 -m 0755 ${WORKDIR}/udev-cache ${D}${sysconfdir}/init.d/udev-cache - - install -d ${D}${sysconfdir}/udev/rules.d/ - - cp ${S}/rules/rules.d/* ${D}${sysconfdir}/udev/rules.d/ - cp ${S}/rules/packages/* ${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}/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 - - # Remove some default rules that don't work well on embedded devices - #rm ${D}${sysconfdir}/udev/rules.d/60-persistent-input.rules - #rm ${D}${sysconfdir}/udev/rules.d/60-persistent-storage.rules - #rm ${D}${sysconfdir}/udev/rules.d/60-persistent-storage-tape.rules - - 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/ -} - -- cgit v1.2.3