diff options
author | Dave Reisner <dreisner@archlinux.org> | 2013-12-22 20:11:37 +0100 |
---|---|---|
committer | Dave Reisner <dreisner@archlinux.org> | 2013-12-22 20:29:08 +0100 |
commit | 2ce3a416c8714adedc3117e5247e6da364ddebc9 (patch) | |
tree | 59177141141a20169f62123d65e65dad462495a6 | |
parent | a22a830b4706c5e15fcf4561165fd10706ca9a54 (diff) | |
download | mkinitcpio-2ce3a416c8714adedc3117e5247e6da364ddebc9.tar.gz mkinitcpio-2ce3a416c8714adedc3117e5247e6da364ddebc9.tar.xz |
Add -l flag when using lz4 compression
This isn't documented, but it's needed since the kernel lz4 support is
based on the original streaming format and not the newer default. Use
-l to force the legacy codec.
Fixup lsinitcpio to support the older format, and, add a warning when
the newer format is detected. Who knows when this will be "resolved" ...
Upstream discussion: https://code.google.com/p/lz4/issues/detail?id=102
-rwxr-xr-x | lsinitcpio | 15 | ||||
-rwxr-xr-x | mkinitcpio | 3 |
2 files changed, 14 insertions, 4 deletions
@@ -91,10 +91,17 @@ detect_filetype() { return fi - if [[ $(hexdump -n 4 -e '"%x"' "$1") == '184d2204' ]]; then - echo 'lz4' - return - fi + case $(hexdump -n 4 -e '"%x"' "$1") in + 184d2204) + error 'Newer lz4 stream format detected! This may not boot!' + echo 'lz4' + return + ;; + 184c2102) + echo 'lz4 -l' + return + ;; + esac if [[ $(hexdump -n 3 -e '"%c"' "$1") == 'BZh' ]]; then echo 'bzip2' @@ -202,6 +202,9 @@ build_image() { xz) COMPRESSION_OPTIONS+=' --check=crc32' ;; + lz4) + COMPRESSION_OPTIONS+=' -l' + ;; esac cpio_opts=('-0' '-o' '-H' 'newc') |