diff options
author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2012-01-15 11:00:18 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-02-14 15:01:52 +0100 |
commit | 4b06ebc820aa9a46dfb73c7050b073d8224b4b70 (patch) | |
tree | 6b3388addb42700a7a4ff96b268733e9366c1c64 /defaultenv | |
parent | 9f5c1f2a99c5d417a1d332771c4dc7afb92bc50e (diff) | |
download | barebox-4b06ebc820aa9a46dfb73c7050b073d8224b4b70.tar.gz |
defaultenv/boot: add getopt option support to select boot mode
boot: boot [-m <mode>] [-k <kernel_option>] [-r <rootfs_option>] [-i <ip_mode>]
options
- kernel nand, nor, nfs, tftp, disk
- rootfs nand, nor, net, disk
- ip dhcp, none, empty
mode option
mode kernel rootfs
nand nand nand
nor nor nor
nfs nfs net
tftp fttp net
disk disk disk
default mode are used from the /env/config
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'defaultenv')
-rw-r--r-- | defaultenv/bin/_boot_help | 18 | ||||
-rw-r--r-- | defaultenv/bin/boot | 26 |
2 files changed, 39 insertions, 5 deletions
diff --git a/defaultenv/bin/_boot_help b/defaultenv/bin/_boot_help new file mode 100644 index 0000000000..e7f7f16f1f --- /dev/null +++ b/defaultenv/bin/_boot_help @@ -0,0 +1,18 @@ +#!/bin/sh + +echo "boot: boot [-m <mode>] [-k <kernel_option>] [-r <rootfs_option>] [-i <ip_mode>]" +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 11207573c6..d37eca86a5 100644 --- a/defaultenv/bin/boot +++ b/defaultenv/bin/boot @@ -6,19 +6,35 @@ if [ x$kernel_loc = xnet ]; then 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 |