]> git.pld-linux.org Git - projects/geninitrd.git/blobdiff - geninitrd
Use kernel ready compression settings for xz.
[projects/geninitrd.git] / geninitrd
index 1a2a8c62a616aaf780ff092ede3184582101e19c..f08fdd63d1c9b1c999f0ca75ab26df4a634870ec 100755 (executable)
--- a/geninitrd
+++ b/geninitrd
@@ -47,7 +47,7 @@ usage() {
        uname_r=$(uname -r)
        echo "usage: $PROGRAM [--version] [-v] [-f] [--ifneeded] [--preload <module>]"
        echo "       [--with=<module>] [--image-version] [--fstab=<fstab>] [--nocompress]"
-       echo "       [--compress=yes|lzma|bzip2|gzip]"
+       echo "       [--compress=yes|xz|lzma|bzip2|gzip]"
        echo "       [--initrdfs=rom|initramfs|ext2|cram] [--modules-conf=<modules.conf>]"
        echo "       [--with-bootsplash] [--without-bootsplash]"
        echo "       [--with-fbsplash] [--without-fbsplash]"
@@ -790,7 +790,7 @@ sym_exists() {
 find_compressor() {
        local mode="$1"
        # the best compressor list
-       local compressors='lzma bzip2 gzip'
+       local compressors='xz lzma bzip2 gzip'
 
        # a specified one, take it
        if ! is_yes "$mode"; then
@@ -802,9 +802,13 @@ find_compressor() {
        local c prog map=/boot/System.map-$kernel
        for c in $compressors; do
                case $c in
+               xz)
+                       sym=unxz
+                       prog=/usr/bin/xz
+                       ;;
                lzma)
                        sym=unlzma
-                       prog=/usr/bin/lzma
+                       prog=/usr/bin/xz
                        ;;
                bzip2)
                        sym=bzip2
@@ -1327,8 +1331,12 @@ if ! is_no "$COMPRESS"; then
        # TODO: the image name (specified from kernel.spec) already contains
        # extension, which is .gz most of the time.
        case "$compressor" in
+       xz)
+               # don't use -9 here since kernel won't understand it
+               xz --format=xz --check=crc32 --lzma2=preset=6e,dict=1MiB < "$IMAGE" > "$tmp"
+               ;;
        lzma)
-               lzma -9 < "$IMAGE" > "$tmp"
+               xz --format=lzma -9 < "$IMAGE" > "$tmp"
                ;;
        bzip2)
                bzip2 -9 < "$IMAGE" > "$tmp"
This page took 0.027792 seconds and 4 git commands to generate.