For myself I have altered the init script in initrd.gz to accept the kernel parameters
Code: Select all
# pupmode=NUMBER parameter to force PUPMODE ie 13 on hd install
[ $pmode ] && FPUPMODE=$pmode
[ $pupmode ] && FPUPMODE=$pupmode
[ $ppupmode ] && FPUPMODE=$ppupmode
FPUPMODE stands for FORCE_PUPMODE .
This function returns either 13 or 12 :
Code: Select all
_redefine12(){
case $FPUPMODE in 11|12|13) return $FPUPMODE;; esac
case $PMEDIA in *flash*) return 13;; esac
_check_removable "$PUPSAVE"
case $? in 1) [ "$PMEDIA" = usbhd ] || return 13;;esac
return 12
}
This function is used by above function :
Code: Select all
_check_removable(){
test "$*" || case $PUPMODE in 12) set - "$PUPSAVE";; 6) set - "$PDEV1";; esac
local DRVSAVE REMOVABLEDRVSAVE=0
DRVSAVE="`echo -n "$*" | cut -f 1 -d ',' | sed -e 's/[0-9]*$//' -e 's/p$//'`" #ex: sda 110126 mmcblk0p1 becomes mmcblk0
[ -f /sys/block/$DRVSAVE/removable ] && read REMOVABLEDRVSAVE </sys/block/$DRVSAVE/removable
return $REMOVABLEDRVSAVE
}
Here is the code that defines the final PUPMODE :
Code: Select all
case $PUPMODE in
# case 2,3,6,7 here
12) #4=puppy.sfs found, 8=${DISTRO_FILE_PREFIX}save.2fs found. total=12
_redefine12
PUPMODE=$?
[ "$PUPMODE" ] || PUPMODE=13 #precaution
;;
76|77) #v3.01 64+8+4 multisession cd.
PUPMODE=77 #yes, want tmpfs top layer.
;;
*) [ "$FPUPMODE" ] && PUPMODE=$FPUPMODE || PUPMODE=5;;
esac
And that kind of code structure works also to change PUPMODE from 2 to 3
in case of a normal HDD full install,
with the right function syntax at the right places.
«Give me GUI or Death» -- I give you [[Xx]term[inal]] [[Cc]on[s][ole]] .
Macpup user since 2010 on full installations.
People who want problems with Puppy boot frugal :P