Re: [PATCH 2/2] Export initial ramdisk compression config

From: Rob Landley
Date: Wed Sep 25 2013 - 12:56:51 EST


On 09/24/2013 02:41:54 PM, P J P wrote:
Hello Andrew,

Thank you so much for reviewing these patches.

+-- On Mon, 23 Sep 2013, Andrew Morton wrote --+
| It's a bit confusing whether all this appiles to initrd, to initramfs
| or to both. Can you please clarify all this and be sure that it's all
| consistent?

IIUC, we no longer use initrd block device images. Instead we use initramfs
which is a cpio(1) archive image. Both mkinitrd(8) & dracut(8) are invoked
from /sbin/new-kernel-pkg tool. And mkinitrd(8) is nothing but a wrapper
around dracut(8) these days.

$ find . -name "Makefile*" | xargs grep new-kernel-pkg
$ grep -r new-kernel-pkg scripts
$

Ah, so it's an out of tree bespoke Red Hat tool. No wonder I couldn't find it.

Looking at the dracut(8) tool, it seems it can easily support any number of
compression tools, for it already has options --gzip, --bzip2, --xz & --lzma.
Adding --lzo, --lz4 etc won't be much difficult.

You're reimplemented the posix "pax" command?

| - Can we avoid having to update dracut each time a new compression
| scheme is added? I assume your dracut changes will just exec
| "$INITRD_COMPRESS -d", so as long as any new decompression
| application uses the expected -d argument in the expected way, it
| should work seamlessly?

Yes, dracut(8) has | --compress=$INITRD_COMPRESS | option which could be
used to pass compression program to dracut(8).

$ grep -r INITRD_COMPRESS linux
$

Is this what you're currently doing, or the change you're requesting in the kernel?

Not sure if dracut(8) expects
an absolute path or just the program name. But to use this option, we'll need
to patch /sbin/new-kernel-pkg tool.

Alternatively, dracut(8) could be patched to recognise and read
$INITRD_COMPRESS variable and internally it can define precedence order
between environment variable, command-line options and default fall-back
option.

How does your code get called?

Rob--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/