From b5927393d103af9b8b2da80e8636b8aa52f80755 Mon Sep 17 00:00:00 2001 From: Dave Reisner Date: Mon, 2 Sep 2013 19:16:58 -0400 Subject: lsinitcpio: add support for lz4 compressed image Note that this requires a very recent version of lz4 utilities as it uses lz4, and not the original lz4c tool, in order to be command line API compliant with other compression tools. See upstream discussions: https://code.google.com/p/lz4/issues/detail?id=83 Signed-off-by: Dave Reisner --- PKGBUILD | 1 + lsinitcpio | 7 ++++++- mkinitcpio.conf | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/PKGBUILD b/PKGBUILD index 440e691..89613a4 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -14,6 +14,7 @@ makedepends=('asciidoc' 'git' 'sed') optdepends=('xz: Use lzma or xz compression for the initramfs image' 'bzip2: Use bzip2 compression for the initramfs image' 'lzop: Use lzo compression for the initramfs image' + 'lz4: Use lz4 compression for the initramfs image' 'mkinitcpio-nfs-utils: Support for root filesystem on NFS') backup=(etc/mkinitcpio.conf) diff --git a/lsinitcpio b/lsinitcpio index c1c5e21..5f19326 100755 --- a/lsinitcpio +++ b/lsinitcpio @@ -69,7 +69,7 @@ size_to_human() { } detect_filetype() { - case $(hexdump -n 6 -e '"%c"' "$1") in + case $(hexdump -n 6 -e '"%c"' "$1") in '070701') # no compression return @@ -90,6 +90,11 @@ detect_filetype() { return fi + if [[ $(hexdump -n 4 -e '"%x"' "$1") == '184d2204' ]]; then + echo 'lz4' + return + fi + if [[ $(hexdump -n 3 -e '"%c"' "$1") == 'BZh' ]]; then echo 'bzip2' return diff --git a/mkinitcpio.conf b/mkinitcpio.conf index 7616809..c4d5e06 100644 --- a/mkinitcpio.conf +++ b/mkinitcpio.conf @@ -59,6 +59,7 @@ HOOKS="base udev autodetect modconf block filesystems keyboard fsck" #COMPRESSION="lzma" #COMPRESSION="xz" #COMPRESSION="lzop" +#COMPRESSION="lz4" # COMPRESSION_OPTIONS # Additional options for the compressor -- cgit v1.2.3-24-g4f1b