diff --git a/defaultenv/bin/_boot_help b/defaultenv/bin/_boot_help new file mode 100644 index 0000000..e7f7f16 --- /dev/null +++ b/defaultenv/bin/_boot_help @@ -0,0 +1,18 @@ +#!/bin/sh + +echo "boot: boot [-m ] [-k ] [-r ] [-i ]" +echo "" +echo "options" +echo " - kernel nand, nor, nfs, tftp, disk" +echo " - rootfs nand, nor, net, disk" +echo " - ip dhcp, none, empty" +echo "" +echo "mode option" +echo " mode kernel rootfs" +echo " nand nand nand" +echo " nor nor nor" +echo " nfs nfs net" +echo " tftp fttp net" +echo " disk disk disk" +echo "" +echo "default mode are used from the /env/config" diff --git a/defaultenv/bin/boot b/defaultenv/bin/boot index 1120757..d37eca8 100644 --- a/defaultenv/bin/boot +++ b/defaultenv/bin/boot @@ -6,19 +6,35 @@ kernel_loc=tftp fi -if [ x$1 = xnand ]; then +while getopt "hk:r:i:m:" Option +do +if [ ${Option} = k ]; then + kernel_loc=${OPTARG} +elif [ ${Option} = r ]; then + rootfs_loc=${OPTARG} +elif [ ${Option} = i ]; then + ip=${OPTARG} +elif [ ${Option} = m ]; then + mode=${OPTARG} +else + . /env/bin/_boot_help + exit 0 +fi +done + +if [ x$mode = xnand ]; then rootfs_loc=nand kernel_loc=nand -elif [ x$1 = xnor ]; then +elif [ x$mode = xnor ]; then rootfs_loc=nor kernel_loc=nor -elif [ x$1 = xnfs ]; then +elif [ x$mode = xnfs ]; then rootfs_loc=net kernel_loc=nfs -elif [ x$1 = xtftp ]; then +elif [ x$mode = xtftp ]; then rootfs_loc=net kernel_loc=tftp -elif [ x$1 = xdisk ]; then +elif [ x$mode = xdisk ]; then rootfs_loc=disk kernel_loc=disk fi