[paketler-commits] r12479 - in stable/pardus-1/system/base/mkinitramfs: . files

paketler-uludag at uludag.org.tr paketler-uludag at uludag.org.tr
24 Eyl 2006 Paz 03:33:51 EEST


Author: onur
Date: Sun Sep 24 03:33:51 2006
New Revision: 12479

Modified:
   stable/pardus-1/system/base/mkinitramfs/files/config.patch
   stable/pardus-1/system/base/mkinitramfs/files/init
   stable/pardus-1/system/base/mkinitramfs/files/mkinitramfs
   stable/pardus-1/system/base/mkinitramfs/pspec.xml
Log:
hadi kimse boot edemesin



Modified: stable/pardus-1/system/base/mkinitramfs/files/config.patch
=================================================================
--- stable/pardus-1/system/base/mkinitramfs/files/config.patch	(original)
+++ stable/pardus-1/system/base/mkinitramfs/files/config.patch	Sun Sep 24 03:33:51 2006
@@ -1,5 +1,5 @@
---- /dev/null	2006-06-13 18:02:46.262572712 +0300
-+++ .config	2006-06-13 14:59:32.000000000 +0300
+--- /dev/null	2006-09-20 23:51:11.292240456 +0300
++++ .config	2006-09-20 21:32:25.340057320 +0300
 @@ -0,0 +1,610 @@
 +#
 +# Automatically generated make config: don't edit
@@ -113,7 +113,7 @@
 +# CONFIG_CAL is not set
 +CONFIG_CAT=y
 +# CONFIG_CHGRP is not set
-+# CONFIG_CHMOD is not set
++CONFIG_CHMOD=y
 +# CONFIG_CHOWN is not set
 +CONFIG_CHROOT=y
 +# CONFIG_CMP is not set
@@ -166,7 +166,7 @@
 +CONFIG_PWD=y
 +# CONFIG_REALPATH is not set
 +CONFIG_RM=y
-+# CONFIG_RMDIR is not set
++CONFIG_RMDIR=y
 +CONFIG_SEQ=y
 +CONFIG_SHA1SUM=y
 +CONFIG_SLEEP=y
@@ -186,8 +186,8 @@
 +# CONFIG_FEATURE_TEST_64 is not set
 +CONFIG_TOUCH=y
 +CONFIG_TR=y
-+# CONFIG_FEATURE_TR_CLASSES is not set
-+# CONFIG_FEATURE_TR_EQUIV is not set
++CONFIG_FEATURE_TR_CLASSES=y
++CONFIG_FEATURE_TR_EQUIV=y
 +CONFIG_TRUE=y
 +# CONFIG_TTY is not set
 +CONFIG_UNAME=y
@@ -420,9 +420,9 @@
 +# CONFIG_DEVFSD_VERBOSE is not set
 +# CONFIG_EJECT is not set
 +# CONFIG_LAST is not set
-+# CONFIG_LESS is not set
-+# CONFIG_FEATURE_LESS_BRACKETS is not set
-+# CONFIG_FEATURE_LESS_FLAGS is not set
++CONFIG_LESS=y
++CONFIG_FEATURE_LESS_BRACKETS=y
++CONFIG_FEATURE_LESS_FLAGS=y
 +# CONFIG_FEATURE_LESS_FLAGCS is not set
 +# CONFIG_FEATURE_LESS_MARKS is not set
 +# CONFIG_FEATURE_LESS_REGEXP is not set

Modified: stable/pardus-1/system/base/mkinitramfs/files/init
=================================================================
--- stable/pardus-1/system/base/mkinitramfs/files/init	(original)
+++ stable/pardus-1/system/base/mkinitramfs/files/init	Sun Sep 24 03:33:51 2006
@@ -1,34 +1,146 @@
 #!/bin/sh
+#
+# Simple init script that should handle both 
+# livecd/tmpfs boot and hdd boot
+#
+
+PATH=/usr/sbin:/usr/bin:/sbin:/bin
+ROOT_LINKS='bin sbin lib boot usr opt'
+ROOT_TREES='etc root home var'
+LOOP="pardus.img"
+CDROOT=0
+QUIET=0
+ROOT_DEVICE=''
+IMG_DEVICES="hd?"
+
+
+fall2sh() {
+    echo "$*"
+    /bin/sh
+}
+
+probe_devices() {
+    /bin/coolplug 1> /dev/null 2>&1
+}
+
+parse_cmdline() {
+    for x in `cat /proc/cmdline`; do
+        case "${x}" in
+            [0123456Ss])
+                LEVEL=${x}
+            ;;
+            mudur=*livecd*)
+                CDROOT=1
+            ;;
+            root=*)
+                ROOT_DEVICE=`echo ${x}|cut -f2 -d=`
+            ;;
+            init=*)
+                INIT=`echo ${x}|cut -f2 -d=`
+            ;;
+            quiet)
+                QUIET=1
+            ;;
+        esac
+    done
+}
+
+findcdmount() {
+    if [ "$#" -gt "0" ]
+    then
+        for x in $*
+        do
+            mount -r ${x} /newroot/mnt/cdrom > /dev/null 2>&1
+
+            if [ "$?" = '0' ]
+            then
+                # Check for cdroot image
+                if [ -e /newroot/mnt/cdrom/${LOOP} ]
+                then
+                    ROOT_DEVICE="${x}"
+                    break
+                else
+                    umount /newroot/mnt/cdrom
+                fi
+            fi
+        done
+    fi
+}
+
+manage_tmpfs() {
+    mount -t tmpfs tmpfs /newroot
+
+    for d in dev mnt mnt/cdrom mnt/livecd tmp sys proc
+    do
+        mkdir -p "/newroot/${d}"
+    done
+
+    mv /dev/* /newroot/dev/
+}
+
+mount_cdroot() {
+    cd /newroot
+    # Loop type squashfs
+    mount -o bind /newroot/dev /dev
+    mount -t squashfs -o loop,ro /newroot/mnt/cdrom/${LOOP} /newroot/mnt/livecd
+
+    if [ "$?" != '0' ]
+    then
+        fall2sh "Could not mount root image"
+    fi
+    FS_LOCATION='mnt/livecd'
+    umount /dev
+
+    for x in ${ROOT_LINKS}
+    do
+        ln -s "${FS_LOCATION}/${x}" "${x}"
+    done
+
+    chmod 1777 tmp
+    (cd /newroot/${FS_LOCATION}; cp -a ${ROOT_TREES} /newroot)
+}
+
+# ----- main -------
+mount -n -t proc proc /proc > /dev/null 2>&1
+mount -n -t sysfs sys /sys > /dev/null 2>&1
 
-# mount proc and sys
-mount -n -t proc proc /proc
-mount -n -t sysfs sys /sys
+parse_cmdline
 
-# probe hardware and insert needed modules
-/bin/coolplug 1> /dev/null 2>&1
+# Shall be decided later
+# [ -n "$QUIET" ] && echo '0' > /proc/sys/kernel/printk
 
-# Prepare for switch root
-echo 0x0100 > /proc/sys/kernel/real-root-dev
-ROOT_DEVICE=`cat /proc/cmdline | awk -Froot= '{print $2}' | awk '{print $1}'`
+probe_devices
 
-#check for any change to default runlevel
-for x in `cat /proc/cmdline`; do
-    case "${x}" in
-        [0123456Ss])
-            LEVEL=${x}
-        ;;
-    esac
-done
+echo 0x0100 > /proc/sys/kernel/real-root-dev
 
-INIT=`cat /proc/cmdline | awk -Finit= '{print $2}' | awk '{print $1}'`
-[ "${INIT}" == "" ] && INIT="/sbin/init";
+if [ "${CDROOT}" -eq '1' ]
+then
+    ROOT_DEVICE=''
+    manage_tmpfs
+    findcdmount "/newroot/dev/${IMG_DEVICES}"
+
+    if [ "${ROOT_DEVICE}" == "" ]
+    then
+        fall2sh "Could not find mount media"
+    fi
+
+    mount_cdroot
+else
+    # mount real root
+    if [ ! -b "${ROOT_DEVICE}" ]
+    then
+        fall2sh "Could not find boot device"
+    else
+        mount -t auto -n -o ro $ROOT_DEVICE /newroot
+    fi
+fi
 
-# mount real root
-mount -t auto -n -o ro $ROOT_DEVICE /newroot
+umount -n /sys
+umount -n /proc
 
-# umount pseudo fs
-umount /sys
-umount /proc
+[ "${INIT}" == "" ] && INIT="/sbin/init";
 
-# switch_root and pass init arguments
+# just to make sure, may not be necessary
+[ ! -e /newroot/dev/console ] && mknod /newroot/dev/console c 5 1
 exec /bin/switch_root -c /dev/console /newroot ${INIT} ${LEVEL}
+

Modified: stable/pardus-1/system/base/mkinitramfs/files/mkinitramfs
=================================================================
--- stable/pardus-1/system/base/mkinitramfs/files/mkinitramfs	(original)
+++ stable/pardus-1/system/base/mkinitramfs/files/mkinitramfs	Sun Sep 24 03:33:51 2006
@@ -401,7 +401,13 @@
 mknod $MOUNT_IMAGE/dev/tty c 5 0
 mknod $MOUNT_IMAGE/dev/tty1 c 4 0
 mknod $MOUNT_IMAGE/dev/ram0 b 1 0
-mknod $MOUNT_IMAGE/dev/loop0 b 7 0
+
+# loopback devices, we need lots
+mkdir $MOUNT_IMAGE/dev/loop
+for i in `seq 0 7`; do
+    mknod "$MOUNT_IMAGE/dev/loop/$i" b 7 "$i"
+    ln -s "loop/$i" "$MOUNT_IMAGE/dev/loop$i"
+done
 
 # Install busybox and init script
 cp -a /sbin/busybox $MOUNT_IMAGE/bin/busybox

Modified: stable/pardus-1/system/base/mkinitramfs/pspec.xml
=================================================================
--- stable/pardus-1/system/base/mkinitramfs/pspec.xml	(original)
+++ stable/pardus-1/system/base/mkinitramfs/pspec.xml	Sun Sep 24 03:33:51 2006
@@ -19,14 +19,13 @@
             <Patch>config.patch</Patch>
         </Patches>
     </Source>
-    
+
     <Package>
         <Name>mkinitramfs</Name>
         <Conflicts>
             <Package>mkinitrd</Package>
         </Conflicts>
         <RuntimeDependencies>
-            <Dependency versionFrom="0.73">udev</Dependency>
             <Dependency>coolplug</Dependency>
         </RuntimeDependencies>
         <Files>
@@ -40,6 +39,13 @@
     </Package>
 
     <History>
+        <Update release="11">
+            <Date>2006-09-24</Date>
+            <Version>0.2</Version>
+            <Comment>Tidy up + add cdboot functions</Comment>
+            <Name>Onur Küçük</Name>
+            <Email>onur at pardus.org.tr</Email>
+        </Update>
         <Update release="10">
             <Date>2006-08-22</Date>
             <Version>0.1</Version>


Paketler-commits mesaj listesiyle ilgili daha fazla bilgi