Changeset 37047


Ignore:
Timestamp:
2013-06-27T21:58:20+02:00 (5 years ago)
Author:
florian
Message:

buildroot: build a second pass kernel if initramfs is enabled

If initramfs is enabled, build a second pass kernel containing the CPIO
rootfs, preliminary work to get non exclusive enabling of initramfs.

Signed-off-by: Florian Fainelli <florian@…>

Location:
trunk/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/kernel-build.mk

    r35320 r37047  
    3333define Kernel/CompileImage 
    3434        $(call Kernel/CompileImage/Default) 
     35        $(call Kernel/CompileImage/Initramfs) 
    3536endef 
    3637 
  • trunk/include/kernel-defaults.mk

    r37046 r37047  
    8484  endef 
    8585else 
    86   define Kernel/SetInitramfs 
     86endif 
     87 
     88define Kernel/SetNoInitramfs 
    8789        mv $(LINUX_DIR)/.config $(LINUX_DIR)/.config.old 
    8890        grep -v INITRAMFS $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config 
    8991        echo 'CONFIG_INITRAMFS_SOURCE=""' >> $(LINUX_DIR)/.config 
    90   endef 
    91 endif 
     92endef 
    9293 
    9394define Kernel/Configure/Default 
     
    101102        $(SCRIPT_DIR)/metadata.pl kconfig $(TMP_DIR)/.packageinfo $(TOPDIR)/.config > $(LINUX_DIR)/.config.override 
    102103        $(SCRIPT_DIR)/kconfig.pl 'm+' '+' $(LINUX_DIR)/.config.target /dev/null $(LINUX_DIR)/.config.override > $(LINUX_DIR)/.config 
    103         $(call Kernel/SetInitramfs) 
     104        $(call Kernel/SetNoInitramfs) 
    104105        rm -rf $(KERNEL_BUILD_DIR)/modules 
    105106        [ -d $(LINUX_DIR)/user_headers ] || $(MAKE) $(KERNEL_MAKEOPTS) INSTALL_HDR_PATH=$(LINUX_DIR)/user_headers headers_install 
    106107        $(SH_FUNC) grep '=[ym]' $(LINUX_DIR)/.config | LC_ALL=C sort | md5s > $(LINUX_DIR)/.vermagic 
     108endef 
     109 
     110define Kernel/Configure/Initramfs 
     111        $(call Kernel/SetInitramfs) 
    107112endef 
    108113 
     
    114119OBJCOPY_STRIP = -R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id 
    115120 
     121define Kernel/CopyImage 
     122        $(KERNEL_CROSS)objcopy -O binary $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(LINUX_KERNEL)$(1) 
     123        $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).elf 
     124endef 
     125 
    116126define Kernel/CompileImage/Default 
    117127        $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),,rm -f $(TARGET_DIR)/init) 
    118128        +$(MAKE) $(KERNEL_MAKEOPTS) $(subst ",,$(KERNELNAME)) 
    119129        #") 
    120         $(KERNEL_CROSS)objcopy -O binary $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(LINUX_KERNEL) 
    121         $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux.elf 
     130        $(call Kernel/CopyImage) 
    122131endef 
     132 
     133ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) 
     134define Kernel/CompileImage/Initramfs 
     135        $(call Kernel/Configure/Initramfs) 
     136        $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),,rm -f $(TARGET_DIR)/init) 
     137        +$(MAKE) $(KERNEL_MAKEOPTS) $(subst ",,$(KERNELNAME)) 
     138        #") 
     139        #") 
     140        $(call Kernel/CopyImage,-initramfs) 
     141endef 
     142else 
     143define Kernel/CompileImage/Initramfs 
     144endef 
     145endif 
    123146 
    124147define Kernel/Clean/Default 
Note: See TracChangeset for help on using the changeset viewer.