]> pilppa.org Git - familiar-h63xx-build.git/blob - org.handhelds.familiar/packages/altboot/files/spitz/altboot-menu/25-bootHDD3
OE tree imported from monotone branch org.openembedded.oz354fam083 at revision 8b12e3...
[familiar-h63xx-build.git] / org.handhelds.familiar / packages / altboot / files / spitz / altboot-menu / 25-bootHDD3
1 # !/bin/sh
2 #
3 # Copyright Matthias Hentges (c) 2005
4 #
5 # License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the GPL)
6
7
8 # This file will teach you how to implement your own scripts while using existing altboot
9 # code.
10
11 # /sbin/init.altboot searches /etc/altboot-menu for scripts. It will only list scripts which
12 # return a title when run with the "title" parameter. 
13 # Script which do not return a title will never be shown in the boot menu!
14
15 M_TITLE="Boot from images on HDD3"
16
17 # The "title" parameter is implemented at the end of this script so it will never be reached
18 # and the script will simply be ignored by altboot.
19
20
21 # The die() function aborts the boot if something goes wrong and sets STDIN / STDERR / STDOUT
22 # correctly.
23 die() {
24         echo "ERROR: $1" >/dev/tty0
25         exec $SH_SHELL </dev/tty0 >/dev/tty0 2>&1
26 }
27
28 # This function is activated by init.altboot by calling this script with the "run" option
29 run_module() {
30
31         # altboot.func contains re-useable code. If you intend to use check_target (see below)
32         # you must keep this line. If not, delete it.
33         test -e /etc/altboot.func && . /etc/altboot.func || die "ERROR: /etc/altboot.func not found. Check your installation!"  
34
35
36         # The only thing you'll have to do is get your medium mounted.
37         # The following lines mount a SD card on 2.4-series kernels on a Zaurus
38         
39         ##########################################
40         
41         
42         echo -n "Mounting rootfs rw..." >/dev/tty0
43         mount -o remount,rw / >/dev/tty0 2>&1 && echo ok  >/dev/tty0|| die "mount -o remount,rw / failed"
44
45         #echo -n "Generating device files..." >/dev/tty0
46         #/etc/init.d/devices start && echo ok  >/dev/tty0|| die "FAILED"
47
48         cardmgr -o < /dev/tty0 > /dev/tty0 2>&1 || echo "cardmgr -o failed!"
49
50         check_fs $HDD3_DEVICE $HDD3_TYPE
51
52         echo -n "Mounting $HDD3_MOUNTPOINT..."  >/dev/tty0
53         if [ "$HDD3_TYPE" = "" ]; then
54                 HDD3_TYPE="auto"
55         fi
56         /bin/mount -t $HDD3_TYPE -o defaults,noatime $HDD3_DEVICE $HDD3_MOUNTPOINT >/dev/null 2>&1 && echo ok  >/dev/tty0|| die "/bin/mount -t auto -o defaults,noatime $HDD3_DEVICE $HDD3_MOUNTPOINT failed"
57                 
58         echo ""
59
60         # Give the SD and CF mounting some time. This is a must for SD                  
61         sleep 2
62         ##########################################      
63         
64         # Once the medium (be it a CF or SD card, or even a NFS drive) is mounted somewhere,
65         # just call check_target with the mountpoint as parameter.
66         # check_target searches the medium for a real filesystem and loop-images and
67         # asks the user what to boot if there are several choices.
68         
69         # Check for a real fs and loop-images.
70         check_target "$HDD3_MOUNTPOINT" >/dev/tty0
71         
72         # Done :)
73                 
74 }
75
76
77 case "$1" in
78 title)  echo "$M_TITLE";;
79 run)    run_module "$2";;
80 esac