~ce-hyperscale/ubuntu/trusty/flash-kernel/arm0429demo

« back to all changes in this revision

Viewing changes to initramfs-tools/hooks/flash_kernel_set_root

  • Committer: Package Import Robot
  • Author(s): Hector Oron
  • Date: 2012-03-11 14:51:15 UTC
  • mfrom: (0.4.13 sid)
  • Revision ID: package-import@ubuntu.com-20120311145115-i9c9esedpgwbhzw8
Tags: 3.0~rc.4
Upload to unstable 

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#!/bin/sh
2
2
 
3
 
# This code is covered by the GNU General Public License (GPLv2 or higher)
 
3
# This program is free software; you can redistribute it and/or
 
4
# modify it under the terms of the GNU General Public License
 
5
# as published by the Free Software Foundation; either version 2
 
6
# of the License, or (at your option) any later version.
 
7
#
 
8
# This program is distributed in the hope that it will be useful,
 
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
11
# GNU General Public License for more details.
 
12
#
 
13
# You should have received a copy of the GNU General Public License
 
14
# along with this program; if not, write to the Free Software
 
15
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
 
16
# USA.
4
17
 
5
18
PREREQ=""
6
19
 
9
22
}
10
23
 
11
24
pause_error() {
 
25
        local _ignored
 
26
 
12
27
        #exit 1 # won't work; initramfs-tools ignores hook script exit code
13
28
        echo "" >&2
14
29
        if [ "$DEBIAN_FRONTEND" = "noninteractive" ] ; then
15
30
                echo "Unable to abort; system will probably be broken!" >&2
16
31
        else
17
32
                echo "Press Ctrl-C to abort build, or Enter to continue" >&2
18
 
                read
 
33
                read _ignored
19
34
        fi
20
35
}
21
36
 
22
 
# Should we override the root device or merely provide a default root
23
 
# device?
24
 
root_type() {
25
 
        case "$1" in
26
 
                "Buffalo Linkstation Pro/Live")
27
 
                        echo "override"
28
 
                ;;
29
 
                "Buffalo/Revogear Kurobox Pro")
30
 
                        echo "override"
31
 
                ;;
32
 
                "D-Link DNS-323")
33
 
                        echo "override"
34
 
                ;;
35
 
                "GLAN Tank")
36
 
                        echo "override"
37
 
                ;;
38
 
                "HP Media Vault mv2120")
39
 
                        echo "override"
40
 
                ;;
41
 
                "Linksys NSLU2")
42
 
                        echo "default"
43
 
                ;;
44
 
                "QNAP TS-109/TS-209")
45
 
                        echo "override"
46
 
                ;;
47
 
                "QNAP TS-119/TS-219")
48
 
                        echo "override"
49
 
                ;;
50
 
                "QNAP TS-409")
51
 
                        echo "override"
52
 
                ;;
53
 
                "QNAP TS-41x")
54
 
                        echo "override"
55
 
                ;;
56
 
                "Marvell OpenRD Base Board")
57
 
                        echo "default"
58
 
                ;;
59
 
                "Marvell OpenRD Client Board")
60
 
                        echo "default"
61
 
                ;;
62
 
                "Marvell SheevaPlug Reference Board")
63
 
                        echo "default"
64
 
                ;;
65
 
                "Marvell eSATA SheevaPlug Reference Board")
66
 
                        echo "default"
67
 
                ;;
68
 
                "Thecus N2100")
69
 
                        echo "override"
70
 
                ;;
71
 
                "Lanner EM7210")
72
 
                        echo "override"
73
 
                ;;
74
 
                *)
75
 
                        echo
76
 
                ;;
77
 
        esac
78
 
}
79
 
 
80
37
case $1 in
81
38
prereqs)
82
39
        prereqs
84
41
        ;;
85
42
esac
86
43
 
 
44
FK_DIR="/usr/share/flash-kernel"
 
45
 
 
46
. "${FK_CHECKOUT:-$FK_DIR}/functions"
 
47
 
87
48
. /usr/share/initramfs-tools/hook-functions
88
49
 
89
 
# Only run this hook on some machines
90
 
machine=$(grep "^Hardware" /proc/cpuinfo | sed 's/Hardware\s*:\s*//')
91
 
if [ -z "$(root_type "$machine")" ]; then
92
 
        exit 0
93
 
fi
94
 
 
95
50
# Record the root filesystem device for use during boot
96
51
rootdev=$(egrep '^[^#   ]+[     ]+/[    ]' /etc/fstab | awk '{print $1}') || true
97
52
 
98
53
# Map LVM devices in the form of /dev/vg/lv to /dev/mapper/..., otherwise
99
54
# initramfs won't initialize them.
100
 
path=$(readlink -f $rootdev)
101
 
if echo "$path" | grep -q "^/dev/mapper/"; then
102
 
        rootdev=$path
 
55
if [ -n "$rootdev" ]; then
 
56
        path=$(readlink -f $rootdev)
 
57
        if echo "$path" | grep -q "^/dev/mapper/"; then
 
58
                rootdev=$path
 
59
        fi
103
60
fi
104
61
 
105
62
# Translate LABEL and UUID entries into a proper device name.
123
80
                ;;
124
81
                *)
125
82
                        echo "/etc/fstab parse error; cannot recognize root $rootdev" >&2
 
83
                        rootdev=/dev/sda2
 
84
                        echo "guessing that the root device is $rootdev" >&2
126
85
                ;;
127
86
        esac
128
87
fi
129
88
 
130
89
if [ ! -e "$rootdev" ]; then
131
 
        rootdev=/dev/sda2
132
 
        echo "Warning: /etc/fstab parse error; guessing that the root device is $rootdev" >&2
 
90
        echo "Warning: root device $rootdev does not exist" >&2
133
91
        pause_error
134
92
fi
135
 
case "$(root_type "$machine")" in
 
93
 
 
94
machine="$(get_cpuinfo_hardware)"
 
95
 
 
96
# Should we override the root device or merely provide a default root
 
97
# device?
 
98
blsr="$(get_machine_field "$machine" "Bootloader-sets-root")"
 
99
 
 
100
if [ "$blsr" = "no" ]; then
136
101
        # The boot loader doesn't pass root= on the command line, so
137
102
        # provide a default.
138
 
        "default")
139
 
                install -d $DESTDIR/conf/conf.d
140
 
                echo "ROOT=\"$rootdev\"" > $DESTDIR/conf/conf.d/default_root
141
 
        ;;
 
103
        install -d $DESTDIR/conf/conf.d
 
104
        echo "ROOT=\"$rootdev\"" > $DESTDIR/conf/conf.d/default_root
 
105
else
142
106
        # The boot loader passes a bogus root= (e.g. root=/dev/ram), so
143
107
        # override the command line parameter.
144
 
        "override")
145
 
                install -d $DESTDIR/conf
146
 
                echo "ROOT=\"$rootdev\"" >> $DESTDIR/conf/param.conf
147
 
        ;;
148
 
        # This shouldn't happen - only if a device from the case statement
149
 
        # above wasn't added here.
150
 
        *)
151
 
                echo "Device $machine not supported.  Please file a bug." >&2
152
 
                pause_error
153
 
        ;;
154
 
esac
 
108
        install -d $DESTDIR/conf
 
109
        echo "ROOT=\"$rootdev\"" >> $DESTDIR/conf/param.conf
 
110
fi
155
111
 
 
112
# vim:noexpandtab shiftwidth=8