summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2012-08-12 19:37:32 +0800
committerSascha Hauer <s.hauer@pengutronix.de>2012-09-04 09:08:39 +0200
commit94fd74dda7d905b37b61310ebd7281891d718241 (patch)
tree5778ff84f65f5ef24d0074fc01785f388f4d28f0
parent173fa8fe4c86d7589ca1e1e2ab0d314bfe611d30 (diff)
downloadbarebox-94fd74dda7d905b37b61310ebd7281891d718241.tar.gz
barebox-94fd74dda7d905b37b61310ebd7281891d718241.tar.xz
command/mount: add autodetection support
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
-rw-r--r--arch/arm/boards/crystalfontz-cfa10036/env/init/automount2
-rw-r--r--arch/arm/boards/mioa701/env/bin/sdcard_override2
-rw-r--r--arch/arm/boards/pcm049/env/bin/nand_bootstrap2
-rw-r--r--arch/arm/boards/phycard-a-xl2/env/bin/nand_bootstrap2
-rw-r--r--commands/mount.c18
-rw-r--r--defaultenv-2/base/init/automount6
6 files changed, 22 insertions, 10 deletions
diff --git a/arch/arm/boards/crystalfontz-cfa10036/env/init/automount b/arch/arm/boards/crystalfontz-cfa10036/env/init/automount
index fe67e55c5a..668775d89b 100644
--- a/arch/arm/boards/crystalfontz-cfa10036/env/init/automount
+++ b/arch/arm/boards/crystalfontz-cfa10036/env/init/automount
@@ -6,4 +6,4 @@ if [ "$1" = menu ]; then
fi
mkdir -p /mnt/disk0.1
-automount -d /mnt/disk0.1 '[ -e /dev/disk0.1 ] && mount /dev/disk0.1 fat /mnt/disk0.1'
+automount -d /mnt/disk0.1 '[ -e /dev/disk0.1 ] && mount /dev/disk0.1 /mnt/disk0.1'
diff --git a/arch/arm/boards/mioa701/env/bin/sdcard_override b/arch/arm/boards/mioa701/env/bin/sdcard_override
index 4b2ad51343..ab83534135 100644
--- a/arch/arm/boards/mioa701/env/bin/sdcard_override
+++ b/arch/arm/boards/mioa701/env/bin/sdcard_override
@@ -8,7 +8,7 @@
mci0.probe=1
if [ $mci0.probe = 1 ]; then
mkdir /sdcard
- mount /dev/disk0.0 fat /sdcard
+ mount /dev/disk0.0 /sdcard
if [ -f /sdcard/barebox.env ]; then
loadenv /sdcard/barebox.env /env.sd
/env.sd/bin/init
diff --git a/arch/arm/boards/pcm049/env/bin/nand_bootstrap b/arch/arm/boards/pcm049/env/bin/nand_bootstrap
index acd00dc904..f8873fabe2 100644
--- a/arch/arm/boards/pcm049/env/bin/nand_bootstrap
+++ b/arch/arm/boards/pcm049/env/bin/nand_bootstrap
@@ -4,7 +4,7 @@ echo "copying barebox to nand..."
mci0.probe=1
mkdir mnt
-mount /dev/disk0.0 fat /mnt
+mount /dev/disk0.0 /mnt
if [ $? != 0 ]; then
echo "failed to mount mmc card"
exit 1
diff --git a/arch/arm/boards/phycard-a-xl2/env/bin/nand_bootstrap b/arch/arm/boards/phycard-a-xl2/env/bin/nand_bootstrap
index acd00dc904..f8873fabe2 100644
--- a/arch/arm/boards/phycard-a-xl2/env/bin/nand_bootstrap
+++ b/arch/arm/boards/phycard-a-xl2/env/bin/nand_bootstrap
@@ -4,7 +4,7 @@ echo "copying barebox to nand..."
mci0.probe=1
mkdir mnt
-mount /dev/disk0.0 fat /mnt
+mount /dev/disk0.0 /mnt
if [ $? != 0 ]; then
echo "failed to mount mmc card"
exit 1
diff --git a/commands/mount.c b/commands/mount.c
index b32faef709..5b12ad4d96 100644
--- a/commands/mount.c
+++ b/commands/mount.c
@@ -29,11 +29,14 @@
#include <command.h>
#include <fs.h>
#include <errno.h>
+#include <getopt.h>
static int do_mount(int argc, char *argv[])
{
+ int opt;
int ret = 0;
struct fs_device_d *fsdev;
+ char *type = NULL;
if (argc == 1) {
for_each_fs_device(fsdev) {
@@ -45,10 +48,18 @@ static int do_mount(int argc, char *argv[])
return 0;
}
- if (argc != 4)
+ while ((opt = getopt(argc, argv, "t:")) > 0) {
+ switch (opt) {
+ case 't':
+ type = optarg;
+ break;
+ }
+ }
+
+ if (argc < optind + 2)
return COMMAND_ERROR_USAGE;
- if ((ret = mount(argv[1], argv[2], argv[3]))) {
+ if ((ret = mount(argv[optind], type, argv[optind + 1]))) {
perror("mount");
return 1;
}
@@ -56,8 +67,9 @@ static int do_mount(int argc, char *argv[])
}
BAREBOX_CMD_HELP_START(mount)
-BAREBOX_CMD_HELP_USAGE("mount [<device> <fstype> <mountpoint>]\n")
+BAREBOX_CMD_HELP_USAGE("mount [[-t <fstype] <device> <mountpoint>]\n")
BAREBOX_CMD_HELP_SHORT("Mount a filesystem of a given type to a mountpoint.\n")
+BAREBOX_CMD_HELP_SHORT("If no fstpye is specified detected it.\n")
BAREBOX_CMD_HELP_SHORT("If no argument is given, list mounted filesystems.\n")
BAREBOX_CMD_HELP_END
diff --git a/defaultenv-2/base/init/automount b/defaultenv-2/base/init/automount
index 7b533094ff..fe56d920e7 100644
--- a/defaultenv-2/base/init/automount
+++ b/defaultenv-2/base/init/automount
@@ -8,15 +8,15 @@ fi
# automount tftp server based on $eth0.serverip
mkdir -p /mnt/tftp
-automount /mnt/tftp 'ifup eth0 && mount $eth0.serverip tftp /mnt/tftp'
+automount /mnt/tftp 'ifup eth0 && mount -t tftp $eth0.serverip /mnt/tftp'
# automount nfs server example
#nfshost=somehost
#mkdir -p /mnt/${nfshost}
-#automount /mnt/$nfshost "ifup eth0 && mount ${nfshost}:/tftpboot nfs /mnt/${nfshost}"
+#automount /mnt/$nfshost "ifup eth0 && mount -t nfs ${nfshost}:/tftpboot /mnt/${nfshost}"
# FAT on usb disk example
#mkdir -p /mnt/fat
-#automount -d /mnt/fat 'usb && [ -e /dev/disk0.0 ] && mount /dev/disk0.0 fat /mnt/fat'
+#automount -d /mnt/fat 'usb && [ -e /dev/disk0.0 ] && mount /dev/disk0.0 /mnt/fat'