]>
Commit | Line | Data |
---|---|---|
4002d77a LDM |
1 | #!/bin/bash |
2 | ||
3 | set -e | |
4 | ||
184a0707 | 5 | ROOTFS_PRISTINE=$1 |
4002d77a | 6 | ROOTFS=$2 |
184a0707 LDM |
7 | MODULE_PLAYGROUND=$3 |
8 | CONFIG_H=$4 | |
3d38e322 | 9 | SYSCONFDIR=$5 |
184a0707 LDM |
10 | |
11 | # create rootfs from rootfs-pristine | |
12 | ||
13 | create_rootfs() { | |
14 | rm -rf "$ROOTFS" | |
15 | mkdir -p $(dirname "$ROOTFS") | |
16 | cp -r "$ROOTFS_PRISTINE" "$ROOTFS" | |
17 | find "$ROOTFS" -type d -exec chmod +w {} \; | |
18 | find "$ROOTFS" -type f -name .gitignore -exec rm -f {} \; | |
9d1fb317 MS |
19 | if [ "$MODULE_DIRECTORY" != "/lib/modules" ] ; then |
20 | sed -i -e "s|/lib/modules|$MODULE_DIRECTORY|g" $(find "$ROOTFS" -name \*.txt -o -name \*.conf -o -name \*.dep) | |
21 | sed -i -e "s|$MODULE_DIRECTORY/external|/lib/modules/external|g" $(find "$ROOTFS" -name \*.txt -o -name \*.conf -o -name \*.dep) | |
22 | for i in "$ROOTFS"/*/lib/modules/* "$ROOTFS"/*/*/lib/modules/* ; do | |
23 | version="$(basename $i)" | |
24 | [ $version != 'external' ] || continue | |
25 | mod="$(dirname $i)" | |
26 | lib="$(dirname $mod)" | |
27 | up="$(dirname $lib)$MODULE_DIRECTORY" | |
28 | mkdir -p "$up" | |
29 | mv "$i" "$up" | |
30 | done | |
31 | fi | |
3d38e322 LDM |
32 | |
33 | if [ "$SYSCONFDIR" != "/etc" ]; then | |
34 | find "$ROOTFS" -type d -name etc -printf "%h\n" | while read -r e; do | |
35 | mkdir -p "$(dirname $e/$SYSCONFDIR)" | |
36 | mv $e/{etc,$SYSCONFDIR} | |
37 | done | |
38 | fi | |
184a0707 | 39 | } |
1921c370 LDM |
40 | |
41 | feature_enabled() { | |
42 | local feature=$1 | |
43 | grep KMOD_FEATURES $CONFIG_H | head -n 1 | grep -q \+$feature | |
44 | } | |
4002d77a LDM |
45 | |
46 | declare -A map | |
47 | map=( | |
9d1fb317 MS |
48 | ["test-depmod/search-order-simple$MODULE_DIRECTORY/4.4.4/kernel/crypto/"]="mod-simple.ko" |
49 | ["test-depmod/search-order-simple$MODULE_DIRECTORY/4.4.4/updates/"]="mod-simple.ko" | |
50 | ["test-depmod/search-order-same-prefix$MODULE_DIRECTORY/4.4.4/foo/"]="mod-simple.ko" | |
51 | ["test-depmod/search-order-same-prefix$MODULE_DIRECTORY/4.4.4/foobar/"]="mod-simple.ko" | |
52 | ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko" | |
53 | ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko" | |
54 | ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-c.ko"]="mod-loop-c.ko" | |
55 | ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-d.ko"]="mod-loop-d.ko" | |
56 | ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-e.ko"]="mod-loop-e.ko" | |
57 | ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-f.ko"]="mod-loop-f.ko" | |
58 | ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-g.ko"]="mod-loop-g.ko" | |
59 | ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-h.ko"]="mod-loop-h.ko" | |
60 | ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-i.ko"]="mod-loop-i.ko" | |
61 | ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-j.ko"]="mod-loop-j.ko" | |
62 | ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-k.ko"]="mod-loop-k.ko" | |
63 | ["test-depmod/search-order-external-first$MODULE_DIRECTORY/4.4.4/foo/"]="mod-simple.ko" | |
64 | ["test-depmod/search-order-external-first$MODULE_DIRECTORY/4.4.4/foobar/"]="mod-simple.ko" | |
df492f5c | 65 | ["test-depmod/search-order-external-first/lib/modules/external/"]="mod-simple.ko" |
9d1fb317 MS |
66 | ["test-depmod/search-order-external-last$MODULE_DIRECTORY/4.4.4/foo/"]="mod-simple.ko" |
67 | ["test-depmod/search-order-external-last$MODULE_DIRECTORY/4.4.4/foobar/"]="mod-simple.ko" | |
df492f5c | 68 | ["test-depmod/search-order-external-last/lib/modules/external/"]="mod-simple.ko" |
9d1fb317 MS |
69 | ["test-depmod/search-order-override$MODULE_DIRECTORY/4.4.4/foo/"]="mod-simple.ko" |
70 | ["test-depmod/search-order-override$MODULE_DIRECTORY/4.4.4/override/"]="mod-simple.ko" | |
71 | ["test-dependencies$MODULE_DIRECTORY/4.0.20-kmod/kernel/fs/foo/"]="mod-foo-b.ko" | |
72 | ["test-dependencies$MODULE_DIRECTORY/4.0.20-kmod/kernel/"]="mod-foo-c.ko" | |
73 | ["test-dependencies$MODULE_DIRECTORY/4.0.20-kmod/kernel/lib/"]="mod-foo-a.ko" | |
74 | ["test-dependencies$MODULE_DIRECTORY/4.0.20-kmod/kernel/fs/"]="mod-foo.ko" | |
1669be85 LDM |
75 | ["test-init/"]="mod-simple.ko" |
76 | ["test-remove/"]="mod-simple.ko" | |
9d1fb317 MS |
77 | ["test-modprobe/show-depends$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko" |
78 | ["test-modprobe/show-depends$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko" | |
79 | ["test-modprobe/show-depends$MODULE_DIRECTORY/4.4.4/kernel/mod-simple.ko"]="mod-simple.ko" | |
068729e3 | 80 | ["test-modprobe/show-exports/mod-loop-a.ko"]="mod-loop-a.ko" |
9d1fb317 MS |
81 | ["test-modprobe/softdep-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko" |
82 | ["test-modprobe/softdep-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko" | |
83 | ["test-modprobe/install-cmd-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko" | |
84 | ["test-modprobe/install-cmd-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko" | |
85 | ["test-modprobe/force$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko" | |
86 | ["test-modprobe/oldkernel$MODULE_DIRECTORY/3.3.3/kernel/"]="mod-simple.ko" | |
87 | ["test-modprobe/oldkernel-force$MODULE_DIRECTORY/3.3.3/kernel/"]="mod-simple.ko" | |
88 | ["test-modprobe/alias-to-none$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko" | |
89 | ["test-modprobe/module-param-kcmdline$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko" | |
df492f5c | 90 | ["test-modprobe/external/lib/modules/external/"]="mod-simple.ko" |
883d931d GS |
91 | ["test-modprobe/module-from-abspath/home/foo/"]="mod-simple.ko" |
92 | ["test-modprobe/module-from-relpath/home/foo/"]="mod-simple.ko" | |
9d1fb317 MS |
93 | ["test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko" |
94 | ["test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko" | |
95 | ["test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko" | |
96 | ["test-depmod/modules-outdir$MODULE_DIRECTORY/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko" | |
97 | ["test-depmod/modules-outdir$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko" | |
98 | ["test-depmod/modules-outdir$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko" | |
77fdc664 LDM |
99 | ["test-modinfo/mod-simple-i386.ko"]="mod-simple-i386.ko" |
100 | ["test-modinfo/mod-simple-x86_64.ko"]="mod-simple-x86_64.ko" | |
101 | ["test-modinfo/mod-simple-sparc64.ko"]="mod-simple-sparc64.ko" | |
3f0eb43b LDM |
102 | ["test-modinfo/mod-simple-sha1.ko"]="mod-simple.ko" |
103 | ["test-modinfo/mod-simple-sha256.ko"]="mod-simple.ko" | |
dec99048 | 104 | ["test-modinfo/mod-simple-pkcs7.ko"]="mod-simple.ko" |
df492f5c | 105 | ["test-modinfo/external/lib/modules/external/mod-simple.ko"]="mod-simple.ko" |
9d1fb317 MS |
106 | ["test-tools/insert$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko" |
107 | ["test-tools/remove$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko" | |
4002d77a LDM |
108 | ) |
109 | ||
2a38870e | 110 | gzip_array=( |
9d1fb317 | 111 | "test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/block/cciss.ko" |
fd71604d LDM |
112 | ) |
113 | ||
114 | xz_array=( | |
9d1fb317 | 115 | "test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/scsi_mod.ko" |
2a38870e LDM |
116 | ) |
117 | ||
2e4ef3da | 118 | zstd_array=( |
9d1fb317 | 119 | "test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/hpsa.ko" |
2e4ef3da TM |
120 | ) |
121 | ||
3f0eb43b LDM |
122 | attach_sha256_array=( |
123 | "test-modinfo/mod-simple-sha256.ko" | |
124 | ) | |
125 | ||
126 | attach_sha1_array=( | |
127 | "test-modinfo/mod-simple-sha1.ko" | |
128 | ) | |
129 | ||
dec99048 YK |
130 | attach_pkcs7_array=( |
131 | "test-modinfo/mod-simple-pkcs7.ko" | |
132 | ) | |
133 | ||
184a0707 LDM |
134 | create_rootfs |
135 | ||
3cee67dd | 136 | for k in "${!map[@]}"; do |
4002d77a LDM |
137 | dst=${ROOTFS}/$k |
138 | src=${MODULE_PLAYGROUND}/${map[$k]} | |
139 | ||
3cee67dd DR |
140 | if [[ $dst = */ ]]; then |
141 | install -d "$dst" | |
142 | install -t "$dst" "$src" | |
d9ab7abe | 143 | else |
3cee67dd | 144 | install -D "$src" "$dst" |
d9ab7abe | 145 | fi |
4002d77a | 146 | done |
2a38870e LDM |
147 | |
148 | # start poking the final rootfs... | |
149 | ||
1921c370 LDM |
150 | # compress modules with each format if feature is enabled |
151 | if feature_enabled ZLIB; then | |
152 | for m in "${gzip_array[@]}"; do | |
153 | gzip "$ROOTFS/$m" | |
154 | done | |
155 | fi | |
156 | ||
fd71604d LDM |
157 | if feature_enabled XZ; then |
158 | for m in "${xz_array[@]}"; do | |
159 | xz "$ROOTFS/$m" | |
160 | done | |
161 | fi | |
162 | ||
1921c370 LDM |
163 | if feature_enabled ZSTD; then |
164 | for m in "${zstd_array[@]}"; do | |
165 | zstd --rm $ROOTFS/$m | |
166 | done | |
167 | fi | |
2e4ef3da | 168 | |
3f0eb43b | 169 | for m in "${attach_sha1_array[@]}"; do |
3cee67dd | 170 | cat "${MODULE_PLAYGROUND}/dummy.sha1" >>"${ROOTFS}/$m" |
3f0eb43b LDM |
171 | done |
172 | ||
173 | for m in "${attach_sha256_array[@]}"; do | |
3cee67dd | 174 | cat "${MODULE_PLAYGROUND}/dummy.sha256" >>"${ROOTFS}/$m" |
3f0eb43b | 175 | done |
dec99048 YK |
176 | |
177 | for m in "${attach_pkcs7_array[@]}"; do | |
3cee67dd | 178 | cat "${MODULE_PLAYGROUND}/dummy.pkcs7" >>"${ROOTFS}/$m" |
dec99048 | 179 | done |
184a0707 LDM |
180 | |
181 | touch testsuite/stamp-rootfs |