1
- #! /bin/bash
1
+ #! /bin/bash -xv
2
2
# mkcard.sh v0.3.beagleboard-validation-scripts.1
3
3
# (c) Copyright 2009 Graeme Gregory <[email protected] >
4
4
# Licensed under terms of GPLv2
@@ -14,68 +14,79 @@ LOCALSRC=/media/mmcblk0
14
14
WGETSRC=http://www.beagleboard.org/~arago/xm-testing
15
15
DST=/media/target
16
16
17
- function do_clean {
18
- dd if=/dev/zero of=$DRIVE bs=1024 count=1024
19
- }
20
-
21
- function do_format {
22
- for tool in sfdisk mkfs.vfat mke2fs; do
17
+ for tool in dd sfdisk partx mkfs.vfat mke2fs; do
23
18
if ! type $tool > /dev/null 2>&1 ; then
24
19
echo " ERROR: \" $tool \" not found."
25
20
echo " Try 'opkg install dosfstools e2fsprogs e2fsprogs-mke2fs'"
26
21
exit 2
27
22
fi
28
23
done
24
+
25
+ function do_clean {
26
+ sleep 3
27
+ umount ${DRIVE} 1
28
+ umount ${DRIVE} 2
29
+ umount ${DRIVE} p1
30
+ umount ${DRIVE} p2
31
+ dd if=/dev/zero of=$DRIVE bs=1024 count=1024
32
+ }
33
+
34
+ function do_format {
29
35
SIZE=` fdisk -l $DRIVE | grep Disk | awk ' {print $5}' `
30
36
echo DISK SIZE - $SIZE bytes
31
37
CYLINDERS=` echo $SIZE /255/63/512 | bc`
32
38
echo CYLINDERS - $CYLINDERS
39
+ sync
40
+ sleep 3
33
41
{
34
42
echo ,9,0x0C,*
35
43
echo ,,,-
36
44
} | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE
37
- sync
38
- sleep 1
45
+ partx /dev/sda
39
46
if [ -b ${DRIVE} 1 ]; then
40
- umount ${DRIVE} 1
41
- mkfs.vfat -F 32 -n " boot" ${DRIVE} 1
47
+ DRIVE1=${DRIVE} 1
42
48
else
43
49
if [ -b ${DRIVE} p1 ]; then
44
- umount ${DRIVE} p1
45
- mkfs.vfat -F 32 -n " boot" ${DRIVE} p1
50
+ DRIVE1=${DRIVE} p1
46
51
else
47
52
echo " Cant find boot partition in ${DRIVE} (1|p1)"
48
53
exit -1
49
54
fi
50
55
fi
56
+ echo " Found first partition at ${DRIVE1} "
57
+ umount ${DRIVE1}
58
+ dd if=/dev/zero of=${DRIVE1} bs=512 count=1
59
+ mkfs.vfat -F 32 -n " boot" ${DRIVE1}
51
60
if [ -b ${DRIVE} 2 ]; then
52
- umount ${DRIVE} 2
53
- mke2fs -j -L " rootfs" ${DRIVE} 2
61
+ DRIVE2=${DRIVE} 2
54
62
else
55
63
if [ -b ${DRIVE} p2 ]; then
56
- umount ${DRIVE} p2
57
- mke2fs -j -L " rootfs" ${DRIVE} p2
64
+ DRIVE2=${DRIVE} 2
58
65
else
59
66
echo " Cant find rootfs partition in ${DRIVE} (2|p2)"
60
67
exit -1
61
68
fi
62
69
fi
70
+ echo " Found second partition at ${DRIVE2} "
71
+ umount ${DRIVE2}
72
+ mke2fs -j -L " rootfs" ${DRIVE2}
63
73
}
64
74
65
75
function do_mount {
66
- sync
67
- mkdir -p ${DST} p1
68
- mkdir -p ${DST} p2
69
- mount ${DRIVE} p1 ${DST} p1
70
- mount ${DRIVE} p2 ${DST} p2
76
+ umount ${DRIVE1}
77
+ umount ${DRIVE2}
78
+ mkdir -p ${DST} -1
79
+ mkdir -p ${DST} -2
80
+ mount ${DRIVE1} ${DST} -1
81
+ mount ${DRIVE2} ${DST} -2
71
82
}
72
83
73
84
function do_copy {
74
85
if [ " x$MLO " = " x" ]; then
75
86
MLO=${SRC} p1/MLO
76
87
fi ;
77
88
if [ -e $MLO ]; then
78
- cp -v $MLO ${DST} p1 /MLO
89
+ cp -v $MLO ${DST} -1 /MLO
79
90
else
80
91
echo " Cannot find MLO at $MLO "
81
92
exit -1
@@ -84,7 +95,7 @@ if [ "x$UBOOT" = "x" ]; then
84
95
UBOOT=${SRC} p1/u-boot.bin
85
96
fi ;
86
97
if [ -e $UBOOT ]; then
87
- cp -v $UBOOT ${DST} p1 /u-boot.bin
98
+ cp -v $UBOOT ${DST} -1 /u-boot.bin
88
99
else
89
100
echo " Cannot find u-boot.bin at $UBOOT "
90
101
exit -1
@@ -93,7 +104,7 @@ if [ "x$UIMAGE" = "x" ]; then
93
104
UIMAGE=${SRC} p1/uImage
94
105
fi ;
95
106
if [ -e $UIMAGE ]; then
96
- cp -v $UIMAGE ${DST} p1 /uImage
107
+ cp -v $UIMAGE ${DST} -1 /uImage
97
108
else
98
109
echo " Cannot find uImage at $UIMAGE "
99
110
exit -1
@@ -102,18 +113,18 @@ if [ "x$BOOTSCR" = "x" ]; then
102
113
BOOTSCR=${SRC} p1/boot.scr
103
114
fi ;
104
115
if [ -e $BOOTSCR ]; then
105
- cp -v $BOOTSCR ${DST} p1 /boot.scr
116
+ cp -v $BOOTSCR ${DST} -1 /boot.scr
106
117
fi
107
118
if [ " x$RAMDISK " != " x" && -e $RAMDISK ]; then
108
- cp -v $RAMDISK ${DST} p1 /ramdisk.gz
119
+ cp -v $RAMDISK ${DST} -1 /ramdisk.gz
109
120
fi
110
121
if [ " x$USERSCR " != " x" && -e $USERSCR ]; then
111
- cp -v $USERSCR ${DST} p1 /user.scr
122
+ cp -v $USERSCR ${DST} -1 /user.scr
112
123
fi
113
124
}
114
125
115
- do_clean
126
+ # do_clean
116
127
do_format
117
- # do_mount
128
+ do_mount
118
129
# do_wget
119
130
# do_copy
0 commit comments