udev: only use devtmpfs for udev

Fix for bug: https://bugzilla.yoctoproject.org/show_bug.cgi?id=4632
Since udev 172, the 'mknod' logic was removed from udev. Yocto Dylan
is now using udev 182. This means /dev is now required to be a
devtmpfs filesystem (maintained by the kernel).    If the root
filesystem is a ramdisk,  the kernel's auto-mount of /dev doesn't
activate since there is no rootfs to actually mount...  The bug causes
an unusable system as /dev doesn't contain even basic nodes required
to even get a login prompt.

The Yocto  udev/init script mounts tmpfs if it does not detect tmpfs
or devtmpfs mounted at /dev.  This appears to be  outdated logic that
is no longer correct. I believe the Yocto udev init script should be
checking and mounting only 'devtmpfs' on dev.

(From OE-Core master rev: 31ab19ab69bc6504df01cac7ee0670ca78d247ab)

(From OE-Core rev: dba106b4fc1579185498b85f6e1ade494fcc588e)

Signed-off-by: Alex Olson <alex.olson+yocto@gmail.com>

[YOCTO #4632]

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alex Olson
2013-06-25 15:10:48 -05:00
committed by Richard Purdie
parent b5fccff7ab
commit 9cdb9ef7bd

View File

@@ -43,9 +43,9 @@ case "$1" in
echo "Halting..."
halt
fi
# mount the tmpfs on /dev, if not already done
LANG=C awk '$2 == "/dev" && ($3 == "tmpfs" || $3 == "devtmpfs") { exit 1 }' /proc/mounts && {
mount -n -o mode=0755 -t tmpfs none "/dev"
# mount the devtmpfs on /dev, if not already done
LANG=C awk '$2 == "/dev" && ($3 == "devtmpfs") { exit 1 }' /proc/mounts && {
mount -n -o mode=0755 -t devtmpfs none "/dev"
}
[ -e /dev/pts ] || mkdir -m 0755 /dev/pts
[ -e /dev/shm ] || mkdir -m 1777 /dev/shm