From: <ch...@us...> - 2007-11-13 06:39:35
|
Revision: 700 http://ipcop.svn.sourceforge.net/ipcop/?rev=700&view=rev Author: chepati Date: 2007-11-12 22:39:39 -0800 (Mon, 12 Nov 2007) Log Message: ----------- Fixing mke2fs that I broke by removing /etc/mtab. Also, /etc is now writable, so don't worry about writing to /etc/mtab Modified Paths: -------------- ipcop/trunk/config/install/init Modified: ipcop/trunk/config/install/init =================================================================== --- ipcop/trunk/config/install/init 2007-11-13 05:48:47 UTC (rev 699) +++ ipcop/trunk/config/install/init 2007-11-13 06:39:39 UTC (rev 700) @@ -12,9 +12,12 @@ # How long (in seconds) should we wait for the scsi bus scsi_wait_time=3 +# Create a blank /etc/mtab so mke2fs doesn't fail +> /etc/mtab + # Mount /proc first so we know in what mode we booted echo -ne "Mounting /proc ... " -mount -n -t proc proc /proc +mount -t proc proc /proc echo "Done" # Now check what mode= and root= we passed to the kernel @@ -29,7 +32,7 @@ done echo -ne "Mounting /sys ... " -mount -n -t sysfs sysfs /sys +mount -t sysfs sysfs /sys echo "Done" echo -ne "Silencing kernel ... " @@ -82,7 +85,7 @@ echo "Running in normal mode" echo -ne "Mounting real rootfs ... " - mount -n -t ext3 $root /harddisk + mount -t ext3 $root /harddisk echo "Done" echo -ne "Stopping udevd daemon ... " This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ch...@us...> - 2007-11-14 09:35:49
|
Revision: 708 http://ipcop.svn.sourceforge.net/ipcop/?rev=708&view=rev Author: chepati Date: 2007-11-14 01:35:54 -0800 (Wed, 14 Nov 2007) Log Message: ----------- Mount the root device read only so that when we switch root and do fsck we don't get a warning and pause the init process. Eventually I'll mode the fsck inside the initramfs and make it mandatory on every boot. Or is this a good idea? Modified Paths: -------------- ipcop/trunk/config/install/init Modified: ipcop/trunk/config/install/init =================================================================== --- ipcop/trunk/config/install/init 2007-11-14 07:26:40 UTC (rev 707) +++ ipcop/trunk/config/install/init 2007-11-14 09:35:54 UTC (rev 708) @@ -89,7 +89,7 @@ echo "Running in normal mode" echo -ne "Mounting real rootfs ... " - mount -t ext3 $root /harddisk + mount -o ro -t ext3 $root /harddisk echo "Done" echo -ne "Stopping udevd daemon ... " This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ch...@us...> - 2007-12-10 22:49:46
|
Revision: 870 http://ipcop.svn.sourceforge.net/ipcop/?rev=870&view=rev Author: chepati Date: 2007-12-10 14:49:51 -0800 (Mon, 10 Dec 2007) Log Message: ----------- Fixed case and a few word choices Modified Paths: -------------- ipcop/trunk/config/install/init Modified: ipcop/trunk/config/install/init =================================================================== --- ipcop/trunk/config/install/init 2007-12-10 20:11:59 UTC (rev 869) +++ ipcop/trunk/config/install/init 2007-12-10 22:49:51 UTC (rev 870) @@ -25,6 +25,7 @@ ;; root=*) root=${i#root=} + ;; esac done @@ -70,7 +71,7 @@ echo -ne "Loading module $module ... " /sbin/modprobe $module - # scsi bus sometimes takes a few minutes to scan all devices + # scsi bus sometimes takes a few seconds to scan all devices if [ x"$module" == x"sd_mod" ]; then scsi_wait=yes fi @@ -107,9 +108,12 @@ echo "Now switching root ... " exec switch_root /harddisk /sbin/init elif [ x"$mode" == x"install" ]; then - echo -ne "Running discover ... " - /bin/discover --data-path=linux/module/name bridge network | /bin/grep -v "^$" | /bin/uniq > /tmp/modules-found.txt + echo -ne "Trying to discover hardware ... " + /bin/discover --data-path=linux/module/name bridge network | /bin/grep -v "^$" | /bin/uniq > \ + /tmp/modules-found.txt + for module in `cat /tmp/modules-found.txt`; do + echo -n "$module " /sbin/modprobe $module done This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ch...@us...> - 2007-12-18 06:10:01
|
Revision: 906 http://ipcop.svn.sourceforge.net/ipcop/?rev=906&view=rev Author: chepati Date: 2007-12-17 22:10:06 -0800 (Mon, 17 Dec 2007) Log Message: ----------- Remove commented out discover -- hardware detection is now done by the installer Modified Paths: -------------- ipcop/trunk/config/install/init Modified: ipcop/trunk/config/install/init =================================================================== --- ipcop/trunk/config/install/init 2007-12-18 02:44:14 UTC (rev 905) +++ ipcop/trunk/config/install/init 2007-12-18 06:10:06 UTC (rev 906) @@ -126,16 +126,6 @@ echo "Now switching root ... " exec switch_root /harddisk /sbin/init elif [ x"${mode}" == x"install" ]; then -# echo -ne "Trying to discover hardware ... " -# /bin/discover --data-path=linux/module/name bridge network | /bin/grep -v "^$" | /bin/uniq > \ -# /tmp/modules-found.txt -# -# for module in `cat /tmp/modules-found.txt`; do -# echo -n "${module} " -# /sbin/modprobe ${module} -# done - -# echo "Done" echo "Running in install mode" exec busybox init else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ch...@us...> - 2008-03-26 06:32:29
|
Revision: 1232 http://ipcop.svn.sourceforge.net/ipcop/?rev=1232&view=rev Author: chepati Date: 2008-03-25 23:32:35 -0700 (Tue, 25 Mar 2008) Log Message: ----------- Made all shell variable names capitalized. Now it's also possible to pass init= parameter. ext3 is no longer hardcoded. These haven't been tested yet, but they should work. Modified Paths: -------------- ipcop/trunk/config/install/init Modified: ipcop/trunk/config/install/init =================================================================== --- ipcop/trunk/config/install/init 2008-03-26 06:00:22 UTC (rev 1231) +++ ipcop/trunk/config/install/init 2008-03-26 06:32:35 UTC (rev 1232) @@ -4,32 +4,41 @@ # normal: we boot into ipcop # install: this is when we perform an installation # rescue: when we boot to fix a broken ipcop -mode=install +MODE=install # Define color for messages BOLD="\\033[1;39m" NORMAL="\\033[0;39m" # Should we wait for the scsi bus to detect all devices -scsi_wait=no +SCSI_WAIT=no # How long (in seconds) should we wait for the scsi bus -scsi_wait_time=3 +SCSI_WAIT_TIME=3 +# The filesystem type of the rootfs +ROOT_FSTYPE=ext3 + +# The default init. Can be overwritten by passing init=<something> to the kernel +INIT=/sbin/init + # Mount /proc first so we know in what mode we booted echo -ne "Mounting /proc ... " mount -n -t proc proc /proc echo "Done" -# Now check what mode= and root= we passed to the kernel +# Now check what mode=, root=, and init= parameters we passed to the kernel for i in $(cat /proc/cmdline); do case ${i} in mode=*) - mode=${i#mode=} + MODE=${i#mode=} ;; root=*) - root=${i#root=} + ROOT=${i#root=} ;; + init=*) + INIT=${i#init=} + ;; esac done @@ -79,13 +88,13 @@ echo "Done" # We store all needed modules in /etc/modules.conf so we don't hardcode any modules here -for module in `cat /etc/modules.conf`; do - echo -ne "Loading module ${module} ... " - /sbin/modprobe ${module} +for MODULE in `cat /etc/modules.conf`; do + echo -ne "Loading module ${MODULE} ... " + /sbin/modprobe ${MODULE} # scsi bus sometimes takes a few seconds to scan all devices - if [ x"${module}" == x"sd_mod" ]; then - scsi_wait=yes + if [ x"${MODULE}" == x"sd_mod" ]; then + SCSI_WAIT=yes fi echo "Done" @@ -110,24 +119,24 @@ sed -i -e "s,CURRENT_TTY,${CURRENT_TTY},g" /etc/inittab # If we loaded sd_mod, wait 3 seconds -if [ x"${scsi_wait}" == x"yes" ]; then - echo -ne "Giving the scsi bus ${scsi_wait_time} seconds to scan all devices ... " - sleep ${scsi_wait_time} +if [ x"${SCSI_WAIT}" == x"yes" ]; then + echo -ne "Giving the scsi bus ${SCSI_WAIT_TIME} seconds to scan all devices ... " + sleep ${SCSI_WAIT_TIME} echo "Done" fi -if [ x"${mode}" == x"normal" ]; then +if [ x"${MODE}" == x"normal" ]; then echo "Running in normal mode" - #if [ test ! -b ${root} ]; then - # echo -ne "Waiting for ${root} " - # count=30 - # while [ test ! -b ${root} -a $count -ge 0 ] + #if [ test ! -b ${ROOT} ]; then + # echo -ne "Waiting for ${ROOT} " + # COUNT=30 + # while [ test ! -b ${ROOT} -a ${COUNT} -ge 0 ] # do # echo -ne "." && sleep 1 - # count=`expr $count - 1` + # COUNT=`expr ${COUNT} - 1` # done - # if [ test -b ${root} ]; then + # if [ test -b ${ROOT} ]; then # echo "Done" # else # echo "Error" @@ -135,7 +144,7 @@ #fi echo -ne "Mounting real rootfs ... " - mount -o ro -t ext3 ${root} /harddisk + mount -o ro -t ${ROOT_FSTYPE} ${ROOT} /harddisk echo "Done" echo -ne "Stopping udevd daemon ... " @@ -151,8 +160,8 @@ echo "Done" echo "Now switching root ... " - exec switch_root /harddisk /sbin/init -elif [ x"${mode}" == x"install" ]; then + exec switch_root /harddisk ${INIT} +elif [ x"${MODE}" == x"install" ]; then echo "Running in install mode" export PS1="[${BOLD}install-`uname -m`${NORMAL}] :\w $ " exec busybox init This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ch...@us...> - 2008-04-21 01:13:43
|
Revision: 1327 http://ipcop.svn.sourceforge.net/ipcop/?rev=1327&view=rev Author: chepati Date: 2008-04-20 18:13:49 -0700 (Sun, 20 Apr 2008) Log Message: ----------- Enabled Olaf's test if the rootfs block device was available and moved some stuff into functions so in case the device is not available we 'gracefully' fall into rescue mode. Also, not depmod runs inly in install mode. Modified Paths: -------------- ipcop/trunk/config/install/init Modified: ipcop/trunk/config/install/init =================================================================== --- ipcop/trunk/config/install/init 2008-04-21 01:11:12 UTC (rev 1326) +++ ipcop/trunk/config/install/init 2008-04-21 01:13:49 UTC (rev 1327) @@ -46,6 +46,85 @@ # The default init. Can be overwritten by passing init=<something> to the kernel INIT=/sbin/init + + +######################################################################################################### +# This is the function we invoke when booting ipcop normally, ie from a hard drive installation # +######################################################################################################### +start_normal_mode() +{ + echo "Running in normal mode" + + if [ ! -b ${ROOT} ]; then + echo -ne "Waiting for ${ROOT} " + COUNT=30 + + while [ ! -b ${ROOT} -a ${COUNT} -ge 0 ] + do + echo -ne "." && sleep 1 + COUNT=$[ ${COUNT} - 1 ] + done + + if [ -b ${ROOT} ]; then + echo "Done" + else + echo "Error" + # Something's very wrong, go into rescue mode + start_rescue_mode + fi + fi + + echo -ne "Mounting real rootfs ... " + mount -o ro -t ${ROOT_FSTYPE} ${ROOT} /harddisk + echo "Done" + + echo -ne "Stopping udevd daemon ... " + killall udevd + echo "Done" + + echo -ne "Stopping syslogd daemon ... " + killall syslogd + echo "Done" + + echo -ne "Unmounting /sys ... " + umount /sys + echo "Done" + + echo "Now switching root ... " + exec switch_root /harddisk ${INIT} +} + + + +######################################################################################################### +# This is the function we invoke when installing ipcop # +######################################################################################################### +start_install_mode() +{ + echo "Running in install mode" + export PS1="[${BOLD}install-`uname -m`${NORMAL}] :\w $ " + exec busybox init +} + + + +######################################################################################################### +# This is the function we invoke when starting ipcop in rescue/export mode # +######################################################################################################### +start_rescue_mode() +{ + echo "Running in rescue mode" + export PS1="[${BOLD}rescue-`uname -m`${NORMAL}] :\w $ " + # Create an alias while in rescue (ie expert) mode + #alias start-installer="/bin/iowrap /dev/${CURRENT_TTY} /bin/ash --login -c /bin/installer" + + # We need this trick so we don't start the installer + sed -i "s, -c /bin/installer,,g" /etc/inittab + exec busybox init +} + + + # Mount /proc first so we know in what mode we booted echo -ne "Mounting /proc ... " mount -n -t proc proc /proc @@ -93,16 +172,18 @@ # Create a link from /proc/mounts to /etc/mtab so mke2fs doesn't fail ln -sf /proc/mounts /etc/mtab -# Run depmod to build modules.alias file for hardware detection -# We only do this on fairly modern machines. For older machines we fall back to using the -# included static modules dependencies files. -case ${MACHINE} in - i686|x86_64|ppc|ppc64|sparc64) - echo -ne "Generating module dependencies. This may take some time ... " - depmod -a - echo "Done" - ;; -esac +if [ x"${MODE}" == x"install" ]; then + # Run depmod to build modules.alias file for hardware detection + # We only do this on fairly modern machines. For older machines we fall back to using the + # included static modules dependencies files. + case ${MACHINE} in + i686|x86_64|ppc|ppc64|sparc64) + echo -ne "Generating module dependencies. This may take some time ... " + depmod -a + echo "Done" + ;; + esac +fi # This is important and it eliminates the need to use udevstart to discover new # devices after we've loaded a module. And since we're including LFS udev rules @@ -160,53 +241,19 @@ echo "Done" fi -if [ x"${MODE}" == x"normal" ]; then - echo "Running in normal mode" - #if [ test ! -b ${ROOT} ]; then - # echo -ne "Waiting for ${ROOT} " - # COUNT=30 - # while [ test ! -b ${ROOT} -a ${COUNT} -ge 0 ] - # do - # echo -ne "." && sleep 1 - # COUNT=`expr ${COUNT} - 1` - # done - # if [ test -b ${ROOT} ]; then - # echo "Done" - # else - # echo "Error" - # fi - #fi - echo -ne "Mounting real rootfs ... " - mount -o ro -t ${ROOT_FSTYPE} ${ROOT} /harddisk - echo "Done" - - echo -ne "Stopping udevd daemon ... " - killall udevd - echo "Done" - - echo -ne "Stopping syslogd daemon ... " - killall syslogd - echo "Done" - - echo -ne "Unmounting /sys ... " - umount /sys - echo "Done" - - echo "Now switching root ... " - exec switch_root /harddisk ${INIT} -elif [ x"${MODE}" == x"install" ]; then - echo "Running in install mode" - export PS1="[${BOLD}install-`uname -m`${NORMAL}] :\w $ " - exec busybox init -else - echo "Running in rescue mode" - export PS1="[${BOLD}rescue-`uname -m`${NORMAL}] :\w $ " - # Create an alias while in rescue (ie expert) mode - #alias start-installer="/bin/iowrap /dev/${CURRENT_TTY} /bin/ash --login -c /bin/installer" - - # We need this trick so we don't start the installer - sed -i "s, -c /bin/installer,,g" /etc/inittab - exec busybox init -fi +case ${MODE} in + normal) + start_normal_mode + ;; + install) + start_install_mode + ;; + rescue|expert) + start_rescue_mode + ;; + *) + start_rescue_mode + ;; +esac This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ow...@us...> - 2008-05-12 08:06:58
|
Revision: 1355 http://ipcop.svn.sourceforge.net/ipcop/?rev=1355&view=rev Author: owes Date: 2008-05-12 01:07:04 -0700 (Mon, 12 May 2008) Log Message: ----------- Hopefully and finally properly wait for the / parition to come online. This shoudl remove the need for waiting when sd_mod is loaded. Run depmod always, since we are in initramfs (limited number of modules) this takes a very short time. Probably better to run depmod once when initramfs is created. Modified Paths: -------------- ipcop/trunk/config/install/init Modified: ipcop/trunk/config/install/init =================================================================== --- ipcop/trunk/config/install/init 2008-05-12 05:09:26 UTC (rev 1354) +++ ipcop/trunk/config/install/init 2008-05-12 08:07:04 UTC (rev 1355) @@ -34,12 +34,6 @@ BOLD="\\033[1;39m" NORMAL="\\033[0;39m" -# Should we wait for the scsi bus to detect all devices -SCSI_WAIT=no - -# How long (in seconds) should we wait for the scsi bus -SCSI_WAIT_TIME=3 - # The filesystem type of the rootfs ROOT_FSTYPE=ext3 @@ -62,16 +56,16 @@ while [ ! -b ${ROOT} -a ${COUNT} -ge 0 ] do echo -ne "." && sleep 1 - COUNT=$[ ${COUNT} - 1 ] + COUNT=$(( ${COUNT} - 1 )) done - if [ -b ${ROOT} ]; then - echo "Done" - else + if [ ! -b ${ROOT} ]; then echo "Error" # Something's very wrong, go into rescue mode start_rescue_mode fi + + echo "Done" fi echo -ne "Mounting real rootfs ... " @@ -172,18 +166,9 @@ # Create a link from /proc/mounts to /etc/mtab so mke2fs doesn't fail ln -sf /proc/mounts /etc/mtab -if [ x"${MODE}" == x"install" ]; then - # Run depmod to build modules.alias file for hardware detection - # We only do this on fairly modern machines. For older machines we fall back to using the - # included static modules dependencies files. - case ${MACHINE} in - i686|x86_64|ppc|ppc64|sparc64) - echo -ne "Generating module dependencies. This may take some time ... " - depmod -a - echo "Done" - ;; - esac -fi +echo -ne "Generating module dependencies ... " +depmod -a +echo "Done" # This is important and it eliminates the need to use udevstart to discover new # devices after we've loaded a module. And since we're including LFS udev rules @@ -207,12 +192,6 @@ for MODULE in `cat /etc/modules.conf`; do echo -ne "Loading module ${MODULE} ... " /sbin/modprobe ${MODULE} - - # scsi bus sometimes takes a few seconds to scan all devices - if [ x"${MODULE}" == x"sd_mod" ]; then - SCSI_WAIT=yes - fi - echo "Done" done @@ -234,15 +213,6 @@ # Now that we know what our tty is, fix /etc/inittab sed -i -e "s,CURRENT_TTY,${CURRENT_TTY},g" /etc/inittab -# If we loaded sd_mod, wait 3 seconds -if [ x"${SCSI_WAIT}" == x"yes" ]; then - echo -ne "Giving the scsi bus ${SCSI_WAIT_TIME} seconds to scan all devices ... " - sleep ${SCSI_WAIT_TIME} - echo "Done" -fi - - - case ${MODE} in normal) start_normal_mode This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ow...@us...> - 2008-01-22 13:50:38
|
Revision: 1019 http://ipcop.svn.sourceforge.net/ipcop/?rev=1019&view=rev Author: owes Date: 2008-01-22 05:50:42 -0800 (Tue, 22 Jan 2008) Log Message: ----------- Would be good to wait variable time for drive (especially USB stick) to settle. But it does not look that ash and myself will become friends. Modified Paths: -------------- ipcop/trunk/config/install/init Modified: ipcop/trunk/config/install/init =================================================================== --- ipcop/trunk/config/install/init 2008-01-21 21:50:09 UTC (rev 1018) +++ ipcop/trunk/config/install/init 2008-01-22 13:50:42 UTC (rev 1019) @@ -119,6 +119,21 @@ if [ x"${mode}" == x"normal" ]; then echo "Running in normal mode" + #if [ test ! -b ${root} ]; then + # echo -ne "Waiting for ${root} " + # count=30 + # while [ test ! -b ${root} -a $count -ge 0 ] + # do + # echo -ne "." && sleep 1 + # count=`expr $count - 1` + # done + # if [ test -b ${root} ]; then + # echo "Done" + # else + # echo "Error" + # fi + #fi + echo -ne "Mounting real rootfs ... " mount -o ro -t ext3 ${root} /harddisk echo "Done" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ow...@us...> - 2008-05-18 19:33:58
|
Revision: 1367 http://ipcop.svn.sourceforge.net/ipcop/?rev=1367&view=rev Author: owes Date: 2008-05-18 12:24:56 -0700 (Sun, 18 May 2008) Log Message: ----------- Add LABEL= and UUID= as root= parameter Modified Paths: -------------- ipcop/trunk/config/install/init Modified: ipcop/trunk/config/install/init =================================================================== --- ipcop/trunk/config/install/init 2008-05-18 19:23:28 UTC (rev 1366) +++ ipcop/trunk/config/install/init 2008-05-18 19:24:56 UTC (rev 1367) @@ -51,7 +51,7 @@ if [ ! -b ${ROOT} ]; then echo -ne "Waiting for ${ROOT} " - COUNT=30 + COUNT=15 while [ ! -b ${ROOT} -a ${COUNT} -ge 0 ] do @@ -60,12 +60,12 @@ done if [ ! -b ${ROOT} ]; then - echo "Error" + echo " Error" # Something's very wrong, go into rescue mode start_rescue_mode fi - echo "Done" + echo " Done" fi echo -ne "Mounting real rootfs ... " @@ -132,6 +132,14 @@ ;; root=*) ROOT=${i#root=} + case $ROOT in + LABEL=*) + ROOT="/dev/disk/by-label/${ROOT#LABEL=}" + ;; + UUID=*) + ROOT="/dev/disk/by-uuid/${ROOT#UUID=}" + ;; + esac ;; init=*) INIT=${i#init=} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |