* [PATCH] IMote2 specific udev config
@ 2009-11-04 19:52 Jonathan Cameron
0 siblings, 0 replies; only message in thread
From: Jonathan Cameron @ 2009-11-04 19:52 UTC (permalink / raw)
To: openembedded-devel
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
---
local.rules adds some rules relevant to IIO subsystem for this
board (ensures consistent naming of certain character devices)
the init is required to up the number of inodes and avoid udev
falling over due to running out.
recipes/udev/udev-141/imote2/init | 81 ++++++++++++++++++++++++++++++
recipes/udev/udev-141/imote2/local.rules | 45 ++++++++++++++++
2 files changed, 126 insertions(+), 0 deletions(-)
diff --git a/recipes/udev/udev-141/imote2/init b/recipes/udev/udev-141/imote2/init
new file mode 100644
index 0000000..0599ee0
--- /dev/null
+++ b/recipes/udev/udev-141/imote2/init
@@ -0,0 +1,81 @@
+#!/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/default/udev ] && . /etc/default/udev
+[ -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 "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,nr_inodes=7454 -t tmpfs none "/dev"
+ mkdir -m 0755 /dev/pts
+ mkdir -m 1777 /dev/shm
+}
+
+if [ "$DEVCACHE" != "" ]; then
+ # Invalidate udev cache if the kernel or its bootargs/cmdline have changed
+ [ -x /bin/uname ] && /bin/uname -mrspv > /tmp/uname || touch /tmp/uname
+ [ -r /proc/cmdline ] && cat /proc/cmdline > /tmp/cmdline || touch /tmp/cmdline
+ [ -r /proc/atags ] && cat /proc/atags > /tmp/atags || touch /tmp/atags
+ if [ -e $DEVCACHE ] && \
+ cmp -s /tmp/uname /etc/udev/saved.uname && \
+ cmp -s /tmp/cmdline /etc/udev/saved.cmdline && \
+ cmp -s /tmp/atags /etc/udev/saved.atags; then
+ (cd /; tar xf $DEVCACHE)
+ not_first_boot=1
+ fi
+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=)&
+ if [ "$DEVCACHE" != "" ]; then
+ rm -f /tmp/uname
+ rm -f /tmp/cmdline
+ rm -f /tmp/atags
+ fi
+ else
+ /sbin/udevadm trigger
+ /sbin/udevadm settle
+ if [ "$DEVCACHE" != "" ]; then
+ echo -n "Populating dev cache"
+ (cd /; tar cf $DEVCACHE dev)
+ mv /tmp/uname /etc/udev/saved.uname
+ mv /tmp/cmdline /etc/udev/saved.cmdline
+ mv /tmp/atags /etc/udev/saved.atags
+ echo
+ fi
+ fi
+
+exit 0
diff --git a/recipes/udev/udev-141/imote2/local.rules b/recipes/udev/udev-141/imote2/local.rules
new file mode 100644
index 0000000..241156b
--- /dev/null
+++ b/recipes/udev/udev-141/imote2/local.rules
@@ -0,0 +1,45 @@
+# 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"
+
+#The first framebuffer is symlinked to /dev/fb
+KERNEL=="fb0", SYMLINK+="fb"
+
+# 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"
+
+KERNEL=="ring_event_line*", ID=="0-0034", NAME="iio/max1363_ring_event"
+KERNEL=="ring_access*", ID=="0-0034", NAME="iio/max1363_ring_access"
+
+KERNEL=="ring_event_line*", ID=="spi1.0", DRIVER=="lis3l02dq", NAME="iio/lis3l02dq_ring_event"
+KERNEL=="event_line*", ID=="spi1.0", DRIVER=="lis3l02dq", NAME="iio/lis3l02dq_event"
+KERNEL=="ring_access*", ID=="spi1.0", DRIVER=="lis3l02dq", NAME="iio/lis3l02dq_ring_access"
+
+KERNEL=="ring_event_line*", ID=="0-0035", NAME="iio/max1239_ring_event"
+KERNEL=="ring_access*", ID=="0-0035", NAME="iio/max1239_ring_access"
--
1.6.0.4
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2009-11-04 19:53 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-04 19:52 [PATCH] IMote2 specific udev config Jonathan Cameron
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.