[PATCH] add support for loading lzma compressed kernels
Simon Horman
horms at verge.net.au
Tue Nov 17 22:55:18 EST 2009
On Tue, Nov 17, 2009 at 03:23:15PM +0100, Florian Fainelli wrote:
> On Tuesday 17 November 2009 15:08:29 Florian Fainelli wrote:
> > Hello Simon,
> >
> > On Tuesday 17 November 2009 04:04:38 Simon Horman wrote:
> > > On Mon, Nov 16, 2009 at 12:53:06AM +0100, Florian Fainelli wrote:
> > > > Hi Eric,
> > > >
> > > > This patch allows one to load a lzma compressed kernel using kexec -l.
> > > > As I wanted the lzma code to be very similar to the existing
> > > > zlib slurp_decompress I took lzread and associated routines
> > > > from the cpio lzma support. Tested on my x86 laptop using the
> > > > following commands:
> > > >
> > > > lzma e bzImage bzImage.lzma
> > > > kexec -l bzImage.lzma
> > > >
> > > > Having lzma support is particularly useful on some embedded
> > > > systems on which we have the kernel already lzma compressed
> > > > and available on a mtd partition.
> > > >
> > > > Signed-off-by: Florian Fainelli <florian at openwrt.org>
> > >
> > > Should lzma_code_ be lzma_code. The former doesn't seem to work with
> > > liblzma 4.999.9beta+20091016-1 from Debian.
> >
> > You are right it's actually lzma_code (without the trailing _).
> >
> > > > + AC_MSG_NOTICE([lzma support disabled])))
> > >
> > > The trailing "fi" line appears to be missing.
> >
> > Fixed too.
> > [snip]
> >
> > > Does this imply that zlib compression isn't supported if
> > > lzma compression support is enabled?
> >
> > Indeed, we might want to support both at runtime. Would you agree with the
> > following proposal:
> >
> > - rename slurp_decompress_file to zlib/lzma_decompress_file
> > - in case gzopen fails, do not die, but return NULL
> > - test the return value of zlib_decompress_file and try
> > lzma_decompress_file
Something along those lines sounds entirely reasonable to me.
> We would also have to modify the call sites of slurp_decompress file this might
> become pretty heavy if we support more decompression algorithms. What do you
> think?
Perhaps slurp_decompress could be a wrapper which tries each algorithm in
turn as necessary?
Also, I'd like to get rid of the #ifdef around what is currently
slurp_decompress_file() if possible. My idea would be to move
zlib_decompress_file and lzma_decompress_file into, for instance
zlib.c and lzma.c respectively and have zlib.h and lzma.h provide
more-or-less null functions for the case where the algorithm
in question isn't supported.
More information about the kexec
mailing list