From 23579549c57ee85a7ccd9346293694f7951975f9 Mon Sep 17 00:00:00 2001 From: Frederic Crozat <fcrozat@mandriva.com> Date: Tue, 22 Sep 2009 14:00:50 +0200 Subject: [PATCH] devtmpfs support --- mkinitrd | 32 +++++++++++++++++++++++++++++++- 1 files changed, 31 insertions(+), 1 deletions(-) diff --git a/mkinitrd b/mkinitrd index 03e50e9..f8b60b8 100755 --- a/mkinitrd +++ b/mkinitrd @@ -62,6 +62,7 @@ GRAPHICSMODS="" DRM_WHITELIST="i915" PREMODS="" DMRAIDS="" +NODEVTMPFS=1 ncryptodevs=0 ncryptoparts=0 ncryptolvs=0 @@ -1264,6 +1265,9 @@ if [ -z "$MNTIMAGE" -o -z "$IMAGE" ]; then exit 1 fi +grep -q devtmpfs /proc/filesystems +NODEVTMPFS=$? + mkdir -p $MNTIMAGE mkdir -p $MNTIMAGE/lib/firmware mkdir -p $MNTIMAGE/lib/modules/$kernel @@ -1282,6 +1286,7 @@ vecho "Building initrd in $MNTIMAGE" inst /sbin/nash "$MNTIMAGE" /bin/nash inst /sbin/modprobe "$MNTIMAGE" /bin/modprobe inst /sbin/rmmod "$MNTIMAGE" /bin/rmmod +inst /bin/ln "$MNTIMAGE" if [ -e /etc/fstab.sys ]; then inst /etc/fstab.sys "$MNTIMAGE" @@ -1316,12 +1321,15 @@ done # mknod'ing the devices instead of copying them works both with and # without devfs... +if [ $NODEVTMPFS -eq 1 ]; then mkdir $MNTIMAGE/dev/mapper mknod $MNTIMAGE/dev/ram0 b 1 0 mknod $MNTIMAGE/dev/ram1 b 1 1 ln -sf ram1 $MNTIMAGE/dev/ram +fi #NODEVTMPFS +if [ $NODEVTMPFS -eq 1 ]; then mknod $MNTIMAGE/dev/null c 1 3 mknod $MNTIMAGE/dev/zero c 1 5 mknod $MNTIMAGE/dev/systty c 4 0 @@ -1336,6 +1344,7 @@ done mknod $MNTIMAGE/dev/tty c 5 0 mknod $MNTIMAGE/dev/console c 5 1 mknod $MNTIMAGE/dev/ptmx c 5 2 +fi #NODEVTMPFS if [ -n "$raiddevices" ]; then inst /sbin/mdadm "$MNTIMAGE" @@ -1562,12 +1571,31 @@ setquiet echo Mounting proc filesystem echo Mounting sysfs filesystem mount -t sysfs /sys /sys +EOF + +if [ $NODEVTMPFS -ne 1 ]; then +cemit << EOF +echo Creating /dev +mount -t devtmpfs /dev /dev +EOF +else +cemit << EOF echo Creating /dev mount -o mode=0755 -t tmpfs /dev /dev +EOF +fi #NODEVTMPFS + +cemit << EOF +/bin/ln -s ram1 /dev/ram mkdir /dev/pts mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts mkdir /dev/shm mkdir /dev/mapper +/bin/ln -s fb0 /dev/fb +EOF + +if [ $NODEVTMPFS -eq 1 ]; then +cemit << EOF echo Creating initial device nodes mknod /dev/null c 1 3 mknod /dev/zero c 1 5 @@ -1575,7 +1603,7 @@ mknod /dev/systty c 4 0 mknod /dev/tty c 5 0 mknod /dev/console c 5 1 mknod /dev/ptmx c 5 2 -mknod /dev/fb c 29 0 +mknod /dev/fb0 c 29 0 mknod /dev/hvc0 c 229 0 EOF @@ -1591,6 +1619,8 @@ fi for i in 0 1 2 3 ; do emit "mknod /dev/ttyS$i c 4 $(($i + 64))" done +fi #NODEVTMPFS + if [ -x /usr/libexec/plymouth/plymouth-populate-initrd ]; then emit "/bin/plymouthd --attach-to-session" fi -- 1.7.1