Sophie

Sophie

distrib > Mageia > 1 > i586 > media > core-updates-src > by-pkgid > 9a6d783d97b0b9277535bc9097680dab > files > 13

mkinitrd-6.0.93-23.1.mga1.src.rpm

From 4926e516a43e9ce8e1c2c87d7fff133d6014b599 Mon Sep 17 00:00:00 2001
From: Pascal Terjan <pterjan@mandriva.com>
Date: Wed, 30 Sep 2009 16:52:06 +0200
Subject: [PATCH] Detect devtmpfs support at boot time

We can't know for target kernel

Signed-off-by: Pascal Terjan <pterjan@mandriva.com>
---
 mkinitrd |   78 ++++++++++++++++++-------------------------------------------
 1 files changed, 23 insertions(+), 55 deletions(-)

diff --git a/mkinitrd b/mkinitrd
index f939a24..287570f 100755
--- a/mkinitrd
+++ b/mkinitrd
@@ -62,7 +62,6 @@ GRAPHICSMODS=""
 DRM_WHITELIST="i915"
 PREMODS=""
 DMRAIDS=""
-NODEVTMPFS=1
 ncryptodevs=0
 ncryptoparts=0
 ncryptolvs=0
@@ -1265,9 +1264,6 @@ 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
@@ -1319,34 +1315,6 @@ for MODULE in $resmods $resolved ; do
     installmodule $MODULE
 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/urandom c 1 9
-mknod $MNTIMAGE/dev/systty c 4 0
-if ! echo "$(uname -m)" | grep -q "s390"; then 
-  for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 ; do
-    mknod $MNTIMAGE/dev/tty$i c 4 $i
-  done
-fi
-for i in 0 1 2 3 ; do
-    mknod $MNTIMAGE/dev/ttyS$i c 4 $(($i + 64))
-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"
     if [ -f /etc/mdadm.conf ]; then
@@ -1574,29 +1542,19 @@ 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
+echo Trying to use devtmpfs (ignore errors)
+mount -o mode=0755 -t devtmpfs /dev /dev
+cond -ne 0 /bin/init_devs
 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
+cat > $MNTIMAGE/bin/init_devs <<EOF
+#!/bin/nash
+
+mount -o mode=0755 -t tmpfs /dev /dev
 
-if [ $NODEVTMPFS -eq 1 ]; then
-cemit << EOF
 echo Creating initial device nodes
 mknod /dev/null c 1 3
 mknod /dev/zero c 1 5
@@ -1614,14 +1572,24 @@ EOF
 # (yay, fbcon bugs!)
 if ! echo "$(uname -m)" | grep -q "s390"; then 
     for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 ; do
-        emit "mknod /dev/tty$i c 4 $i"
-    done
+        echo "mknod /dev/tty$i c 4 $i"
+    done >> $MNTIMAGE/bin/init_devs
 fi
 
 for i in 0 1 2 3 ; do
-    emit "mknod /dev/ttyS$i c 4 $(($i + 64))"
-done
-fi #NODEVTMPFS
+    echo "mknod /dev/ttyS$i c 4 $(($i + 64))"
+done >> $MNTIMAGE/bin/init_devs
+
+chmod +x $MNTIMAGE/bin/init_devs
+
+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 [ -x /usr/libexec/plymouth/plymouth-populate-initrd ]; then
     emit "/bin/plymouthd --attach-to-session"
-- 
1.7.1