diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/Makefile.lib | 14 | ||||
-rw-r--r-- | scripts/bin_size | 10 | ||||
-rw-r--r-- | scripts/gen_initramfs_list.sh | 18 |
3 files changed, 36 insertions, 6 deletions
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index e06365775bdf..3b949a354470 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib | |||
@@ -186,3 +186,17 @@ quiet_cmd_gzip = GZIP $@ | |||
186 | cmd_gzip = gzip -f -9 < $< > $@ | 186 | cmd_gzip = gzip -f -9 < $< > $@ |
187 | 187 | ||
188 | 188 | ||
189 | # Bzip2 | ||
190 | # --------------------------------------------------------------------------- | ||
191 | |||
192 | # Bzip2 does not include size in file... so we have to fake that | ||
193 | size_append=$(CONFIG_SHELL) $(srctree)/scripts/bin_size | ||
194 | |||
195 | quiet_cmd_bzip2 = BZIP2 $@ | ||
196 | cmd_bzip2 = (bzip2 -9 < $< && $(size_append) $<) > $@ || (rm -f $@ ; false) | ||
197 | |||
198 | # Lzma | ||
199 | # --------------------------------------------------------------------------- | ||
200 | |||
201 | quiet_cmd_lzma = LZMA $@ | ||
202 | cmd_lzma = (lzma -9 -c $< && $(size_append) $<) >$@ || (rm -f $@ ; false) | ||
diff --git a/scripts/bin_size b/scripts/bin_size new file mode 100644 index 000000000000..43e1b360cee6 --- /dev/null +++ b/scripts/bin_size | |||
@@ -0,0 +1,10 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | if [ $# = 0 ] ; then | ||
4 | echo Usage: $0 file | ||
5 | fi | ||
6 | |||
7 | size_dec=`stat -c "%s" $1` | ||
8 | size_hex_echo_string=`printf "%08x" $size_dec | | ||
9 | sed 's/\(..\)\(..\)\(..\)\(..\)/\\\\x\4\\\\x\3\\\\x\2\\\\x\1/g'` | ||
10 | /bin/echo -ne $size_hex_echo_string | ||
diff --git a/scripts/gen_initramfs_list.sh b/scripts/gen_initramfs_list.sh index 5f3415f28736..3eea8f15131b 100644 --- a/scripts/gen_initramfs_list.sh +++ b/scripts/gen_initramfs_list.sh | |||
@@ -5,7 +5,7 @@ | |||
5 | # Released under the terms of the GNU GPL | 5 | # Released under the terms of the GNU GPL |
6 | # | 6 | # |
7 | # Generate a cpio packed initramfs. It uses gen_init_cpio to generate | 7 | # Generate a cpio packed initramfs. It uses gen_init_cpio to generate |
8 | # the cpio archive, and gzip to pack it. | 8 | # the cpio archive, and then compresses it. |
9 | # The script may also be used to generate the inputfile used for gen_init_cpio | 9 | # The script may also be used to generate the inputfile used for gen_init_cpio |
10 | # This script assumes that gen_init_cpio is located in usr/ directory | 10 | # This script assumes that gen_init_cpio is located in usr/ directory |
11 | 11 | ||
@@ -16,8 +16,8 @@ usage() { | |||
16 | cat << EOF | 16 | cat << EOF |
17 | Usage: | 17 | Usage: |
18 | $0 [-o <file>] [-u <uid>] [-g <gid>] {-d | <cpio_source>} ... | 18 | $0 [-o <file>] [-u <uid>] [-g <gid>] {-d | <cpio_source>} ... |
19 | -o <file> Create gzipped initramfs file named <file> using | 19 | -o <file> Create compressed initramfs file named <file> using |
20 | gen_init_cpio and gzip | 20 | gen_init_cpio and compressor depending on the extension |
21 | -u <uid> User ID to map to user ID 0 (root). | 21 | -u <uid> User ID to map to user ID 0 (root). |
22 | <uid> is only meaningful if <cpio_source> is a | 22 | <uid> is only meaningful if <cpio_source> is a |
23 | directory. "squash" forces all files to uid 0. | 23 | directory. "squash" forces all files to uid 0. |
@@ -225,6 +225,7 @@ cpio_list= | |||
225 | output="/dev/stdout" | 225 | output="/dev/stdout" |
226 | output_file="" | 226 | output_file="" |
227 | is_cpio_compressed= | 227 | is_cpio_compressed= |
228 | compr="gzip -9 -f" | ||
228 | 229 | ||
229 | arg="$1" | 230 | arg="$1" |
230 | case "$arg" in | 231 | case "$arg" in |
@@ -233,11 +234,15 @@ case "$arg" in | |||
233 | echo "deps_initramfs := \\" | 234 | echo "deps_initramfs := \\" |
234 | shift | 235 | shift |
235 | ;; | 236 | ;; |
236 | "-o") # generate gzipped cpio image named $1 | 237 | "-o") # generate compressed cpio image named $1 |
237 | shift | 238 | shift |
238 | output_file="$1" | 239 | output_file="$1" |
239 | cpio_list="$(mktemp ${TMPDIR:-/tmp}/cpiolist.XXXXXX)" | 240 | cpio_list="$(mktemp ${TMPDIR:-/tmp}/cpiolist.XXXXXX)" |
240 | output=${cpio_list} | 241 | output=${cpio_list} |
242 | echo "$output_file" | grep -q "\.gz$" && compr="gzip -9 -f" | ||
243 | echo "$output_file" | grep -q "\.bz2$" && compr="bzip2 -9 -f" | ||
244 | echo "$output_file" | grep -q "\.lzma$" && compr="lzma -9 -f" | ||
245 | echo "$output_file" | grep -q "\.cpio$" && compr="cat" | ||
241 | shift | 246 | shift |
242 | ;; | 247 | ;; |
243 | esac | 248 | esac |
@@ -274,7 +279,7 @@ while [ $# -gt 0 ]; do | |||
274 | esac | 279 | esac |
275 | done | 280 | done |
276 | 281 | ||
277 | # If output_file is set we will generate cpio archive and gzip it | 282 | # If output_file is set we will generate cpio archive and compress it |
278 | # we are carefull to delete tmp files | 283 | # we are carefull to delete tmp files |
279 | if [ ! -z ${output_file} ]; then | 284 | if [ ! -z ${output_file} ]; then |
280 | if [ -z ${cpio_file} ]; then | 285 | if [ -z ${cpio_file} ]; then |
@@ -287,7 +292,8 @@ if [ ! -z ${output_file} ]; then | |||
287 | if [ "${is_cpio_compressed}" = "compressed" ]; then | 292 | if [ "${is_cpio_compressed}" = "compressed" ]; then |
288 | cat ${cpio_tfile} > ${output_file} | 293 | cat ${cpio_tfile} > ${output_file} |
289 | else | 294 | else |
290 | cat ${cpio_tfile} | gzip -f -9 - > ${output_file} | 295 | (cat ${cpio_tfile} | ${compr} - > ${output_file}) \ |
296 | || (rm -f ${output_file} ; false) | ||
291 | fi | 297 | fi |
292 | [ -z ${cpio_file} ] && rm ${cpio_tfile} | 298 | [ -z ${cpio_file} ] && rm ${cpio_tfile} |
293 | fi | 299 | fi |