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