CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors
New port eudev 1.8
[crossrootfs.git] / udev / start_udev
index 1be7ce90bec54fcf162456dd49d318edcb9af963..d8f4b26fce9e6a6c72a3df6d832330355dead79d 100644 (file)
@@ -1,17 +1,32 @@
 #!/bin/sh
 
-# mount /dev as a tmpfs; note: some video drivers require exec access in /dev
-/bin/mount -n -t tmpfs udev /dev -o exec,nosuid,mode=0755
+# - if /dev is not mounted - mount as a devtmpfs (CONFIG_DEVTMPFS=y)
+# - 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)
 
-# unset hotplugger
+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
+       /bin/mount -n -t devtmpfs -o ${UDEVOPTS} dev /dev
+fi
+
+# mount /run directory
+/bin/mount -n -t tmpfs -o mode=0755,nosuid,nodev,exec tmpfs /run
+
+# make sure hotplugger is not set
 echo > /proc/sys/kernel/hotplug
 
-# populate /dev with static nodes and directories
-/bin/cp -a /lib/udev/devices/* /dev/
+# since v155, udevd automatically copies /lib/udev/devices
+# and creates /proc/{kcore,self/fd/{0,1,2}} symlinks
 
-# launch udev daemon
-/sbin/udevd --daemon
+# 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
+/sbin/udevadm trigger --type=subsystems --action=add
+/sbin/udevadm trigger --type=devices --action=add
 /sbin/udevadm settle
+