diff -ur initrd.gz.1/sbin/init initrd.gz.2/sbin/init --- initrd.gz.1/sbin/init 2007-07-19 11:02:59.000000000 +0200 +++ initrd.gz.2/sbin/init 2007-08-07 20:11:40.000000000 +0200 @@ -9,6 +9,9 @@ KERNVER="`uname -r`" NTFSDEV="" +echo "QPM=$QPM" +sleep 1 + #Boot param PMEDIA= usbflash|usbhd|usbcd|ideflash|idehd|idecd|idezip|satahd|scsihd|scsicd # ...good, as will know exactly what drivers to load and where to look. #v2.15 allow 'PMEDIA=cd' a subset, could be ide, sata, usb or scsi cd drive. @@ -1065,6 +1068,7 @@ #note: aes and cryptoloop modules may be loaded in loadpupsavefunc. ########################################################### +if [ "$QPM" ]; then # QEMU-Puppy-on-Metal mode #locate all partitions... PCPARTSALL="`probepart_init -k 2> /dev/null`" @@ -1197,6 +1201,8 @@ esac #...exit with PDEV1= boot device name. +fi # QPM + #total ram, less any shared video... PCRAMSIZE=`free | head -n 2 | tail -n 1 | tr -s " " | cut -f 3 -d " "` SIZEFILLK=`expr $PCRAMSIZE \/ 2` #half of ram. @@ -1246,6 +1252,8 @@ SAVEFILE="`echo -n "$PUPSAVE" | cut -f 3 -d ','`" fi +if [ "$QPM" ]; then # QEMU-Puppy-on-Metal mode + #decide on an appropriate PUPMODE... PUPMODE=1 #using tmpfs. [ "$DEV1PUP" = "yes" ] && PUPMODE=`expr $PUPMODE + 2` #PDEV1 has full h.d. puppy installation. @@ -1868,6 +1876,55 @@ echo "SATADRIVES='$SATADRIVES'" >> /pup_rw/etc/rc.d/PUPSTATE fi +else # QPM + +PCRAMSIZE=`free | head -n 2 | tail -n 1 | tr -s " " | cut -f 3 -d " "` +SIZEFILLK=`expr $PCRAMSIZE \/ 2` #half of ram. + +PUPMODE=13 +PDEV1= +FSTYPE= +PUPSFS= +PUPSAVE= +PMEDIA= +SATADRIVES= + +echo -n "Mounting /dev/hda..." >/dev/console +mount -t ext3 -o noatime,rw /dev/hda /pup_ro1 +check_status $? +echo -n "Mounting /dev/hdb..." >/dev/console +mount -r -t squashfs -o noatime /dev/hdb /pup_ro2 +check_status $? +echo -n "Mounting /dev/hdc..." >/dev/console +mount -r -t squashfs -o noatime /dev/hdc /pup_ro3 +check_status $? +echo -n "Mounting /dev/hdd..." >/dev/console +mount -r -t squashfs -o noatime /dev/hdd /pup_ro4 +check_status $? +echo -n "Mounting tmpfs..." >/dev/console +mount -t tmpfs -o size=${SIZEFILLK}k tmpfs /pup_rw +check_status $? + +sync +echo -n "Creating unionfs..." >/dev/console +zcat /modules/${KERNVER}/unionfs.ko.gz | insmod - +mount -t unionfs -o dirs=/pup_rw=rw:/pup_ro1=ro:/pup_ro2=ro:/pup_ro3=ro:/pup_ro4=ro none /pup_new +check_status $? + +mkdir -p /pup_rw/etc/rc.d +mkdir /pup_rw/initrd 2>/dev/null + +echo "QPM=$QPM" > /pup_rw/etc/rc.d/PUPSTATE +echo "PUPMODE=$PUPMODE" >> /pup_rw/etc/rc.d/PUPSTATE +echo "PDEV1='$PDEV1'" >> /pup_rw/etc/rc.d/PUPSTATE +echo "DEV1FS='$FSTYPE'" >> /pup_rw/etc/rc.d/PUPSTATE +echo "PUPSFS='$PUPSFS'" >> /pup_rw/etc/rc.d/PUPSTATE +echo "PUPSAVE='$PUPSAVE'" >> /pup_rw/etc/rc.d/PUPSTATE +echo "PMEDIA='$PMEDIA'" >> /pup_rw/etc/rc.d/PUPSTATE +echo "SATADRIVES='$SATADRIVES'" >> /pup_rw/etc/rc.d/PUPSTATE + +fi # QPM + #want to launch dnotify from init script as it is pristine... #/sbin/launchpupsafe &