107 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/lib/Kconfig
 | 
						|
+++ b/lib/Kconfig
 | 
						|
@@ -126,6 +126,10 @@ config DECOMPRESS_LZMA
 | 
						|
 config DECOMPRESS_LZMA_NEEDED
 | 
						|
 	 boolean
 | 
						|
 
 | 
						|
+config DECOMPRESS_LZO
 | 
						|
+	select LZO_DECOMPRESS
 | 
						|
+	tristate
 | 
						|
+
 | 
						|
 #
 | 
						|
 # Generic allocator support is selected if needed
 | 
						|
 #
 | 
						|
--- a/lib/Makefile
 | 
						|
+++ b/lib/Makefile
 | 
						|
@@ -81,6 +81,7 @@ obj-$(CONFIG_LZMA_DECOMPRESS) += lzma/
 | 
						|
 lib-$(CONFIG_DECOMPRESS_GZIP) += decompress_inflate.o
 | 
						|
 lib-$(CONFIG_DECOMPRESS_BZIP2) += decompress_bunzip2.o
 | 
						|
 lib-$(CONFIG_DECOMPRESS_LZMA) += decompress_unlzma.o
 | 
						|
+lib-$(CONFIG_DECOMPRESS_LZO) += decompress_unlzo.o
 | 
						|
 
 | 
						|
 obj-$(CONFIG_TEXTSEARCH) += textsearch.o
 | 
						|
 obj-$(CONFIG_TEXTSEARCH_KMP) += ts_kmp.o
 | 
						|
--- a/lib/decompress.c
 | 
						|
+++ b/lib/decompress.c
 | 
						|
@@ -9,6 +9,7 @@
 | 
						|
 #include <linux/decompress/bunzip2.h>
 | 
						|
 #include <linux/decompress/unlzma.h>
 | 
						|
 #include <linux/decompress/inflate.h>
 | 
						|
+#include <linux/decompress/unlzo.h>
 | 
						|
 
 | 
						|
 #include <linux/types.h>
 | 
						|
 #include <linux/string.h>
 | 
						|
@@ -22,6 +23,9 @@
 | 
						|
 #ifndef CONFIG_DECOMPRESS_LZMA
 | 
						|
 # define unlzma NULL
 | 
						|
 #endif
 | 
						|
+#ifndef CONFIG_DECOMPRESS_LZO
 | 
						|
+# define unlzo NULL
 | 
						|
+#endif
 | 
						|
 
 | 
						|
 static const struct compress_format {
 | 
						|
 	unsigned char magic[2];
 | 
						|
@@ -32,6 +36,7 @@ static const struct compress_format {
 | 
						|
 	{ {037, 0236}, "gzip", gunzip },
 | 
						|
 	{ {0x42, 0x5a}, "bzip2", bunzip2 },
 | 
						|
 	{ {0x5d, 0x00}, "lzma", unlzma },
 | 
						|
+	{ {0x89, 0x4c}, "lzo", unlzo },
 | 
						|
 	{ {0, 0}, NULL, NULL }
 | 
						|
 };
 | 
						|
 
 | 
						|
--- a/usr/Kconfig
 | 
						|
+++ b/usr/Kconfig
 | 
						|
@@ -72,6 +72,15 @@ config RD_LZMA
 | 
						|
 	  Support loading of a LZMA encoded initial ramdisk or cpio buffer
 | 
						|
 	  If unsure, say N.
 | 
						|
 
 | 
						|
+config RD_LZO
 | 
						|
+	bool "Support initial ramdisks compressed using LZO" if EMBEDDED
 | 
						|
+	default !EMBEDDED
 | 
						|
+	depends on BLK_DEV_INITRD && HAVE_KERNEL_LZO
 | 
						|
+	select DECOMPRESS_LZO
 | 
						|
+	help
 | 
						|
+	  Support loading of a LZO encoded initial ramdisk or cpio buffer
 | 
						|
+	  If unsure, say N.
 | 
						|
+
 | 
						|
 choice
 | 
						|
 	prompt "Built-in initramfs compression mode" if INITRAMFS_SOURCE!=""
 | 
						|
 	help
 | 
						|
@@ -108,16 +117,15 @@ config INITRAMFS_COMPRESSION_GZIP
 | 
						|
 	bool "Gzip"
 | 
						|
 	depends on RD_GZIP
 | 
						|
 	help
 | 
						|
-	  The old and tried gzip compression. Its compression ratio is
 | 
						|
-	  the poorest among the 3 choices; however its speed (both
 | 
						|
-	  compression and decompression) is the fastest.
 | 
						|
+	  The old and tried gzip compression. It provides a good balance
 | 
						|
+	  between compression ratio and decompression speed.
 | 
						|
 
 | 
						|
 config INITRAMFS_COMPRESSION_BZIP2
 | 
						|
 	bool "Bzip2"
 | 
						|
 	depends on RD_BZIP2
 | 
						|
 	help
 | 
						|
 	  Its compression ratio and speed is intermediate.
 | 
						|
-	  Decompression speed is slowest among the three.  The initramfs
 | 
						|
+	  Decompression speed is slowest among the four.  The initramfs
 | 
						|
 	  size is about 10% smaller with bzip2, in comparison to gzip.
 | 
						|
 	  Bzip2 uses a large amount of memory. For modern kernels you
 | 
						|
 	  will need at least 8MB RAM or more for booting.
 | 
						|
@@ -128,7 +136,15 @@ config INITRAMFS_COMPRESSION_LZMA
 | 
						|
 	help
 | 
						|
 	  The most recent compression algorithm.
 | 
						|
 	  Its ratio is best, decompression speed is between the other
 | 
						|
-	  two. Compression is slowest.	The initramfs size is about 33%
 | 
						|
+	  three. Compression is slowest. The initramfs size is about 33%
 | 
						|
 	  smaller with LZMA in comparison to gzip.
 | 
						|
 
 | 
						|
+config INITRAMFS_COMPRESSION_LZO
 | 
						|
+	bool "LZO"
 | 
						|
+	depends on RD_LZO
 | 
						|
+	help
 | 
						|
+	  Its compression ratio is the poorest among the four. The kernel
 | 
						|
+	  size is about about 10% bigger than gzip; however its speed
 | 
						|
+	  (both compression and decompression) is the fastest.
 | 
						|
+
 | 
						|
 endchoice
 |