CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors
udev: updated to 182. Added pre-accept4 patch. Related to FS#19 and FS#38
authorVictor Martinez <pitillo@ono.com>
Wed, 24 Oct 2012 16:32:02 +0000 (16:32 +0000)
committerVictor Martinez <pitillo@ono.com>
Wed, 24 Oct 2012 16:32:02 +0000 (16:32 +0000)
udev/.footprint [new file with mode: 0644]
udev/.md5sum [new file with mode: 0644]
udev/81-crux.rules [new file with mode: 0644]
udev/Pkgfile [new file with mode: 0644]
udev/README [new file with mode: 0644]
udev/pre-accept4-kernel.patch [new file with mode: 0644]
udev/start_udev [new file with mode: 0644]

diff --git a/udev/.footprint b/udev/.footprint
new file mode 100644 (file)
index 0000000..19c1cac
--- /dev/null
@@ -0,0 +1,67 @@
+drwxr-xr-x     root/root       etc/
+drwxr-xr-x     root/root       etc/udev/
+drwxr-xr-x     root/root       etc/udev/rules.d/
+-rw-r--r--     root/root       etc/udev/udev.conf
+drwxr-xr-x     root/root       lib/
+drwxr-xr-x     root/root       lib/firmware/
+lrwxrwxrwx     root/root       lib/libudev.so.0 -> libudev.so.0.13.1
+-rwxr-xr-x     root/root       lib/libudev.so.0.13.1
+drwxr-xr-x     root/root       lib/udev/
+-rwxr-xr-x     root/root       lib/udev/accelerometer
+-rwxr-xr-x     root/root       lib/udev/ata_id
+-rwxr-xr-x     root/root       lib/udev/cdrom_id
+-rwxr-xr-x     root/root       lib/udev/collect
+drwxr-xr-x     root/root       lib/udev/devices/
+drwxr-xr-x     root/root       lib/udev/devices/pts/
+drwxr-xr-x     root/root       lib/udev/devices/shm/
+-rwxr-xr-x     root/root       lib/udev/mtd_probe
+-rw-r--r--     root/root       lib/udev/rule_generator.functions
+drwxr-xr-x     root/root       lib/udev/rules.d/
+-rw-r--r--     root/root       lib/udev/rules.d/42-usb-hid-pm.rules
+-rw-r--r--     root/root       lib/udev/rules.d/50-udev-default.rules
+-rw-r--r--     root/root       lib/udev/rules.d/60-cdrom_id.rules
+-rw-r--r--     root/root       lib/udev/rules.d/60-persistent-alsa.rules
+-rw-r--r--     root/root       lib/udev/rules.d/60-persistent-input.rules
+-rw-r--r--     root/root       lib/udev/rules.d/60-persistent-serial.rules
+-rw-r--r--     root/root       lib/udev/rules.d/60-persistent-storage-tape.rules
+-rw-r--r--     root/root       lib/udev/rules.d/60-persistent-storage.rules
+-rw-r--r--     root/root       lib/udev/rules.d/60-persistent-v4l.rules
+-rw-r--r--     root/root       lib/udev/rules.d/61-accelerometer.rules
+-rw-r--r--     root/root       lib/udev/rules.d/75-cd-aliases-generator.rules
+-rw-r--r--     root/root       lib/udev/rules.d/75-net-description.rules
+-rw-r--r--     root/root       lib/udev/rules.d/75-persistent-net-generator.rules
+-rw-r--r--     root/root       lib/udev/rules.d/75-probe_mtd.rules
+-rw-r--r--     root/root       lib/udev/rules.d/75-tty-description.rules
+-rw-r--r--     root/root       lib/udev/rules.d/78-sound-card.rules
+-rw-r--r--     root/root       lib/udev/rules.d/80-drivers.rules
+-rw-r--r--     root/root       lib/udev/rules.d/81-crux.rules
+-rw-r--r--     root/root       lib/udev/rules.d/95-udev-late.rules
+-rwxr-xr-x     root/root       lib/udev/scsi_id
+-rwxr-xr-x     root/root       lib/udev/udevd
+-rwxr-xr-x     root/root       lib/udev/v4l_id
+-rwxr-xr-x     root/root       lib/udev/write_cd_rules
+-rwxr-xr-x     root/root       lib/udev/write_net_rules
+drwxr-xr-x     root/root       run/
+drwxr-xr-x     root/root       sbin/
+-rwxr-xr-x     root/root       sbin/start_udev
+-rwxr-xr-x     root/root       sbin/udevadm
+lrwxrwxrwx     root/root       sbin/udevd -> ../lib/udev/udevd
+drwxr-xr-x     root/root       usr/
+drwxr-xr-x     root/root       usr/include/
+-rw-r--r--     root/root       usr/include/libudev.h
+drwxr-xr-x     root/root       usr/lib/
+-rw-r--r--     root/root       usr/lib/libudev.a
+-rwxr-xr-x     root/root       usr/lib/libudev.la
+lrwxrwxrwx     root/root       usr/lib/libudev.so -> ../../lib/libudev.so.0.13.1
+drwxr-xr-x     root/root       usr/lib/pkgconfig/
+-rw-r--r--     root/root       usr/lib/pkgconfig/libudev.pc
+drwxr-xr-x     root/root       usr/man/
+drwxr-xr-x     root/root       usr/man/man7/
+-rw-r--r--     root/root       usr/man/man7/udev.7.gz
+drwxr-xr-x     root/root       usr/man/man8/
+-rw-r--r--     root/root       usr/man/man8/scsi_id.8.gz
+-rw-r--r--     root/root       usr/man/man8/udevadm.8.gz
+-rw-r--r--     root/root       usr/man/man8/udevd.8.gz
+drwxr-xr-x     root/root       usr/share/
+drwxr-xr-x     root/root       usr/share/pkgconfig/
+-rw-r--r--     root/root       usr/share/pkgconfig/udev.pc
diff --git a/udev/.md5sum b/udev/.md5sum
new file mode 100644 (file)
index 0000000..9a97b35
--- /dev/null
@@ -0,0 +1,4 @@
+ee21e150df6c804eef03a6cb2fc1cceb  81-crux.rules
+10e186b8329b3cb212faedc9ed76a809  pre-accept4-kernel.patch
+167288ed62db73b0b93b20506a08d064  start_udev
+023877e6cc0d907994b8c648beab542b  udev-182.tar.xz
diff --git a/udev/81-crux.rules b/udev/81-crux.rules
new file mode 100644 (file)
index 0000000..88d8bc9
--- /dev/null
@@ -0,0 +1,6 @@
+#
+# 81-crux.rules
+# 
+
+KERNEL=="fuse", ACTION=="add", RUN+="/bin/mount -t fusectl fusectl /sys/fs/fuse/connections"
+
diff --git a/udev/Pkgfile b/udev/Pkgfile
new file mode 100644 (file)
index 0000000..f149b25
--- /dev/null
@@ -0,0 +1,45 @@
+# Description: Userspace device management daemon
+# URL: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
+# Maintainer: CRUX System Team, core-ports at crux dot nu
+# Depends on: kmod
+
+name=udev
+version=182
+release=1
+source=(ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/$name-$version.tar.xz \
+        pre-accept4-kernel.patch 81-crux.rules start_udev)
+
+build() {
+  cd udev-$version
+
+  patch -p1 < $SRC/pre-accept4-kernel.patch
+  ./configure --prefix=/usr \
+              --sbindir=/sbin --bindir=/sbin \
+              --sysconfdir=/etc \
+              --with-rootlibdir=/lib \
+              --with-rootprefix= \
+              --libexecdir=/lib \
+              --mandir=/usr/man \
+              --disable-introspection \
+              --disable-gudev \
+              --disable-udev_acl \
+              --disable-keymap \
+              --enable-static \
+              --enable-rule_generator
+
+  make V=1
+  make install DESTDIR=$PKG
+
+  mkdir -p $PKG/lib/{firmware,udev/devices/{pts,shm}}
+  mkdir -p $PKG/{lib,sbin,run}
+    
+  # Symlink to udevd
+  ln -s ../lib/udev/udevd $PKG/sbin/udevd
+
+  # Add CRUX items
+  install -m 0755 $SRC/start_udev $PKG/sbin
+  install -m 0644 $SRC/81-crux.rules $PKG/lib/udev/rules.d
+
+  # Remove junk
+  rm -r $PKG/usr/share/{gtk-,}doc
+}
diff --git a/udev/README b/udev/README
new file mode 100644 (file)
index 0000000..422a574
--- /dev/null
@@ -0,0 +1,10 @@
+
+README for udev
+
+
+  Udev requires certain versions of the linux kernel to work.
+  If you're in troubles with the current udev port in the core
+  collection, consideer the fact of downgrade it.
+
+  Please read http://git.kernel.org/?p=linux/hotplug/udev.git;a=summary
+  to get more information.
diff --git a/udev/pre-accept4-kernel.patch b/udev/pre-accept4-kernel.patch
new file mode 100644 (file)
index 0000000..0fdd101
--- /dev/null
@@ -0,0 +1,41 @@
+diff -urN a/src/udev-ctrl.c b/src/udev-ctrl.c
+--- a/src/udev-ctrl.c   2011-10-09 17:10:32.000000000 -0600
++++ b/src/udev-ctrl.c   2011-10-25 15:11:09.000000000 -0600
+@@ -15,6 +15,7 @@
+ #include <stddef.h>
+ #include <string.h>
+ #include <unistd.h>
++#include <fcntl.h>
+ #include <sys/types.h>
+ #include <sys/poll.h>
+ #include <sys/socket.h>
+@@ -182,6 +183,7 @@
+         struct ucred ucred;
+         socklen_t slen;
+         const int on = 1;
++        int flgs;
+         conn = calloc(1, sizeof(struct udev_ctrl_connection));
+         if (conn == NULL)
+@@ -189,13 +191,19 @@
+         conn->refcount = 1;
+         conn->uctrl = uctrl;
+-        conn->sock = accept4(uctrl->sock, NULL, NULL, SOCK_CLOEXEC|SOCK_NONBLOCK);
++        //conn->sock = accept4(uctrl->sock, NULL, NULL, SOCK_CLOEXEC|SOCK_NONBLOCK);
++        conn->sock = accept(uctrl->sock, NULL, NULL);
+         if (conn->sock < 0) {
+                 if (errno != EINTR)
+                         err(uctrl->udev, "unable to receive ctrl connection: %m\n");
+                 goto err;
+         }
++        // Since we don't have accept4
++        flgs = fcntl(conn->sock, F_GETFL, NULL);
++        if(flgs >= 0) fcntl(conn->sock, F_SETFL, flgs | O_NONBLOCK);
++        fcntl(conn->sock, F_SETFD, FD_CLOEXEC);
++
+         /* check peer credential of connection */
+         slen = sizeof(ucred);
+         if (getsockopt(conn->sock, SOL_SOCKET, SO_PEERCRED, &ucred, &slen) < 0) {
+
diff --git a/udev/start_udev b/udev/start_udev
new file mode 100644 (file)
index 0000000..3319a4d
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+# - if /dev is not mounted - mount as a devtmpfs (CONFIG_DEVTMPFS=y) or tmpfs
+# - if /dev is mounted (e.g. due to handover from initramfs or
+#   CONFIG_DEVTMPFS_MOUNT=y), remount with specific options
+# - some video drivers require exec access in /dev, thus it's set here
+# - for completness, we add few sanity limits (2k non-empty files, 16k inodes)
+
+UDEVOPTS="exec,nosuid,noatime,mode=0755,nr_blocks=2048,nr_inodes=16384"
+if /bin/mountpoint -q /dev ; then
+       /bin/mount -n -o remount,${UDEVOPTS} dev /dev
+else
+       if /bin/sed -n '/devtmpfs/q1' /proc/filesystems ; then
+               UDEVFS=tmpfs
+       else
+               UDEVFS=devtmpfs
+       fi
+       /bin/mount -n -t $UDEVFS -o ${UDEVOPTS} dev /dev
+fi
+
+# make sure hotplugger is not set
+echo > /proc/sys/kernel/hotplug
+
+# since v155, udevd automatically copies /lib/udev/devices
+# and creates /proc/{kcore,self/fd/{0,1,2}} symlinks
+
+# launch udev daemon, make sure it's not running first
+test -z "$(/bin/pidof -s udevd)" && /sbin/udevd --daemon
+
+# coldplug devices and wait for the queue to be processed
+/sbin/udevadm trigger --type=subsystems --action=add
+/sbin/udevadm trigger --type=devices --action=add
+/sbin/udevadm settle
+
+# retry any failures
+/sbin/udevadm trigger --type=failed --action=add
+/sbin/udevadm settle