Re: [PATCH -v1] MIPS: add support for gzip/bzip2/lzma compressed kernel images

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Mon, 2009-10-12 at 04:34 +0200, Ralf Baechle wrote:
> On Mon, Aug 10, 2009 at 04:49:14PM +0800, Wu Zhangjin wrote:
> 
> > This patch will help to generate smaller kernel images for linux-MIPS,
> > 
> > Here is the effect when using lzma:
> > 
> > $ ls -sh vmlinux
> > 7.1M vmlinux
> > $ ls -sh arch/mips/boot/compressed/vmlinuz
> > 1.5M arch/mips/boot/compressed/vmlinuz
> > 
> > Have tested the 32bit kernel on Qemu/Malta and 64bit kernel on FuLoong
> > Mini PC. both of them work well.
> 
>   ip27_defconfig:
> 
>   CHK     include/linux/compile.h
> (standard_in) 1: parse error
> (standard_in) 1: parse error
>   AS      arch/mips/boot/compressed/head.o
> arch/mips/boot/compressed/head.S: Assembler messages:
> arch/mips/boot/compressed/head.S:78: Error: Number (0xa800000000021bf0) larger than 32 bits
> make[1]: *** [arch/mips/boot/compressed/head.o] Error 1
> 

Seems something wrong in the Makefile, will fix it later, here it is:

[...]
/bin/sh: 0x0xa80000000001c000: value too great for base (error token is
"0x0xa80000000001c000")
  Building modules, stage 2.
  AS      arch/mips/boot/compressed/head.o
  CC      arch/mips/boot/compressed/decompress.o
  GZIP    arch/mips/boot/compressed/vmlinux.gz
  CC      arch/mips/boot/compressed/dbg.o
  MODPOST 137 modules
  CC      arch/mips/boot/compressed/dummy.o
arch/mips/boot/compressed/head.S: Assembler messages:
arch/mips/boot/compressed/head.S:47: Error: Number (0xa800000000021bf0)
larger than 32 bits
[...]

>   rm200_defconfig:
> 
> $ make
> [...]
>   IHEX2FW firmware/whiteheat.fw
>   IHEX2FW firmware/keyspan_pda/keyspan_pda.fw
>   IHEX2FW firmware/keyspan_pda/xircom_pgs.fw
> [ralf@h5 linux-queue]$ ll vmlinuz 
> lrwxrwxrwx 1 ralf ralf 33 2009-10-12 03:30 vmlinuz -> arch/mips/boot/compressed/vmlinuz*
> [ralf@h5 linux-queue]$ ll arch/mips/boot/compressed/vmlinuz 
> -rwxrwxr-x 1 ralf ralf 1675346 2009-10-12 03:30 arch/mips/boot/compressed/vmlinuz*
> [ralf@h5 linux-queue]$ make distclean
>   CLEAN   arch/mips/boot
> (standard_in) 1: parse error
> [...]
> 
> For rm200 we need an ECOFF zimage.
> 

Okay, will fix it later.

> malta_defconfig:
> 
> $ mkdir ../build-malta
> $ make O=../build-malta malta_defconfig
> [...]
> $ cd ../build-malta
> $ make
> [...]
> $ make distclean
> make -C /home/ralf/src/linux/linux-queue O=/home/ralf/src/linux/build-malta/. distclean
>   CLEAN   arch/mips/boot
> (standard_in) 1: parse error

This "parse error" will be fixed by tuning the Makefile via adding
something like " blabla 2>/dev/null".

> $
> 
> By default we generate a binary that is not ELF file for malta, so a
> compressed kernel should be in that format also.
> 
> $ make help
> [...]
> Architecture specific targets (mips):
>   install              - install kernel into /boot
>   vmlinux.ecoff        - ECOFF boot image
>   vmlinux.bin          - Raw binary boot image
>   vmlinux.srec         - SREC boot image
>   vmlinuz              - Compressed boot image
> [...]
> $ make vmlinuz
> make: *** No rule to make target `vmlinuz'.  Stop.
> $
> 

it should be

$ make zImage

will replace "vmlinuz - Compressed boot image" to "zImage - Compressed
boot image", or, fix "make vmlinuz" itself.

> > diff --git a/arch/mips/Makefile b/arch/mips/Makefile
> > index 861da51..300b996 100644
> > --- a/arch/mips/Makefile
> > +++ b/arch/mips/Makefile
> > @@ -709,7 +709,10 @@ vmlinux.64: vmlinux
> >  
> >  makeboot =$(Q)$(MAKE) $(build)=arch/mips/boot VMLINUX=$(vmlinux-32) $(1)
> >  
> > -all:	$(all-y)
> > +all:	$(all-y) zImage
> > +
> > +zImage: vmlinux
> > +	$(Q)$(MAKE) $(build)=arch/mips/boot/compressed $@ LOADADDR=$(load-y)
> 
> Several systems rely on the firmware for memory usage information.  With
> a compressed kernel this information will be inaccurate.  This is a
> somewhat hard problem to solve so I suggest to only enable compressed
> kernels on systems where they're known to work.

Okay, I will add a new kernel option for this, and also, the
DEBUG(dbg.[hc]) part will be selectable with a new kernel option too.

Thanks & Regards,
	Wu Zhangjin



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux