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