[Balloon-svn] r1173 - in balloon/branches/menuconfig: kernel…

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: subversion@balloonboard.org
Date:  
To: balloon-svn
Subject: [Balloon-svn] r1173 - in balloon/branches/menuconfig: kernel package/kernel
Author: nick
Date: 2010-06-21 14:34:07 +0100 (Mon, 21 Jun 2010)
New Revision: 1173

Modified:
balloon/branches/menuconfig/kernel/Makefile
balloon/branches/menuconfig/package/kernel/kernel.mk
Log:
add option to add kernel modules to initramfs when building initrd kernel

Modified: balloon/branches/menuconfig/kernel/Makefile
===================================================================
--- balloon/branches/menuconfig/kernel/Makefile    2010-06-19 13:30:39 UTC (rev 1172)
+++ balloon/branches/menuconfig/kernel/Makefile    2010-06-21 13:34:07 UTC (rev 1173)
@@ -11,7 +11,6 @@
 #Actual kernel source dir in which build commands are run
 BUILD:=$(RES)/linux-$(KERNVER)


-
all: kernel-tools kernel installer modules

#check build environment (buildenv target)
@@ -25,6 +24,10 @@

CROSSOPTS:=CROSS_COMPILE=$(CROSSNAME)

+DEFCONFIGFILE:=arch/arm/configs/balloon3_defconfig
+MODULESDIR=lib/modules/$(KERNVER)-pxa270/kernel
+DEPMODVER:=$(shell /sbin/depmod --version | cut -d" " -f 2)
+
# CONFIG_OABI_COMPAT=yes is needed for buildroot r18662 to work -
# should be able to drop it at some point
ifeq ($(CROSSNAME), arm-linux-gnueabi-)
@@ -35,8 +38,6 @@
OABICONFIG:=\# CONFIG_OABI_COMPAT is not set
endif

-DEFCONFIGFILE:=arch/arm/configs/balloon3_defconfig
-
 $(BUILD)/.config: $(KERNSOURCES) $(RES)/unpacked-$(KERNVER).stamp $(RES)/quilt.stamp
     (cd $(BUILD) && $(CROSSOPTS) $(MAKE) $(MAKEOPTS) balloon3_defconfig)


@@ -49,11 +50,45 @@
     (cd $(BUILD) && $(CROSSOPTS) $(MAKE) $(MAKEOPTS) $(NOINITRAMFSOPTS)zImage)
     cp $(BUILD)/arch/arm/boot/zImage $(RES)/zImageBoot


-#installer version of kernel (including initrd)
-#$(RES)/zImageInitrd:  $(KERNSOURCES) $(RES)/zImageBoot $(BUILDDIR)/initrd/$(BUILDROOTIMAGEPATH)rootfs.arm.cpio
-#    cp -f $(BUILDINITRDDIR)/$(BUILDROOTIMAGEPATH)rootfs.arm.cpio $(BUILD)/usr/initramfs_data.cpio && \


-$(RES)/zImageInitrd:  $(RES)/zImageBoot $(RES)/rootfs.arm.cpio
+$(RES)/zImageInitrd:  $(RES)/zImageBoot $(RES)/modules.tgz $(BUILDINITRDDIR)/$(BUILDROOTIMAGEPATH)rootfs.arm.cpio
+    rm -rf $(RES)/rootfs.arm.cpio;
+ifeq ($(INITRD_MODULES),y)
+    rm -rf fakeme
+    rm -rf temp
+    mkdir temp
+    echo "\
+    cd temp; \
+    cpio -i -d -H newc -F $(BUILDINITRDDIR)/$(BUILDROOTIMAGEPATH)rootfs.arm.cpio --no-absolute-filenames; \
+    if [ -f $(CHECKOUT)/initrd/initrdmodules-$(KERNVER)$(VARIANT).list ]; then \
+        MODULES_LIST=$(CHECKOUT)/initrd/initrdmodules-$(KERNVER)$(VARIANT).list; \
+    else \
+        MODULES_LIST=$(CHECKOUT)/initrd/initrdmodules-$(KERNVER).list; \
+    fi; \
+    cat "\$$MODULES_LIST" | while read module; do \
+          echo \"Copying \$$module\"; \
+          mkdir -p $(MODULESDIR)/\$$module && \
+          rmdir $(MODULESDIR)/\$$module && \
+          cp -f $(RES)/modules/$(MODULESDIR)/\$$module $(MODULESDIR)/\$$module; \
+    done; " > fakeme
+    echo "/sbin/depmod -ae -b $(CHECKOUT)/kernel/temp -F $(BUILDDIR)/kernel/linux-$(KERNVER)/System.map $(KERNVER)-pxa270;" >> fakeme
+    echo "case $(DEPMODVER) in 3.*)" >> fakeme
+    echo "    if expr `echo $(DEPMODVER) | sed -e"s/3.//;s/[-~\.].*$$//"` \> 4 ;then" >> fakeme
+    echo "      sed -i -e"s_kernel_/lib/modules/$(KERNVER)-pxa270/kernel_g" lib/modules/$(KERNVER)-pxa270/modules.dep " >> fakeme
+    echo "    fi ;\
+        ;; \
+      4.*) " >> fakeme
+    echo "    sed -i -e"s_kernel_/lib/modules/$(KERNVER)-pxa270/kernel_g" $(BUILDDIR)/kernel/linux-$(KERNVER)/modules.dep " >> fakeme
+    echo "esac " >> fakeme
+    echo "chown -R root:root lib" >> fakeme
+    echo "find . | cpio -o -H newc  > $(RES)/rootfs.arm.cpio" >> fakeme
+    chmod +x fakeme
+    fakeroot ./fakeme
+    rm -rf temp
+    rm -rf fakeme
+else
+    cp -f $(BUILDINITRDDIR)/$(BUILDROOTIMAGEPATH)rootfs.arm.cpio $(RES)/rootfs.arm.cpio
+endif
     cp -f $(RES)/rootfs.arm.cpio $(BUILD)/usr/initramfs_data.cpio && \
     cp $(BUILD)/usr/initramfs_data.cpio $(BUILD)/usr/initramfs.cpio && \
     gzip -f $(BUILD)/usr/initramfs_data.cpio && \
@@ -61,9 +96,24 @@
     (cd $(BUILD) && $(CROSSOPTS) $(MAKE) $(MAKEOPTS) $(INITRAMFSOPTS) zImage)
     cp $(BUILD)/arch/arm/boot/zImage $(RES)/zImageInitrd


-$(RES)/rootfs.arm.cpio:
+$(BUILDINITRDDIR)/$(BUILDROOTIMAGEPATH)rootfs.arm.cpio:
     $(MAKE) -C $(CHECKOUT) initramfs
+
+$(RES)/rootfs.arm.cpiox: $(BUILDINITRDDIR)/$(BUILDROOTIMAGEPATH)rootfs.arm.cpio
     cp -f $(BUILDINITRDDIR)/$(BUILDROOTIMAGEPATH)rootfs.arm.cpio $(RES)/rootfs.arm.cpio
+ifeq ($(INITRD_MODULES),y)
+    echo "making initramfs with modules"
+    echo "rm -rf fakeme" > fakeme
+    echo "rm -rf temp" >> fakeme
+    echo "mkdir temp" >> fakeme
+    echo "cd temp" >> fakeme
+    echo "cpio -i -d -H newc -F $(RES)/rootfs.arm.cpio --no-absolute-filenames" >> fakeme
+    echo "rm -rf $(RES)/rootfs.arm.cpio" >> fakeme
+    echo "rm -rf lib/modules; tar -xvzf $(RES)/modules.tgz ; chown -R root:root lib/modules" >> fakeme
+    echo "find . | cpio -o -H newc  > $(RES)/rootfs.arm.cpio" >> fakeme
+    chmod +x fakeme
+#    fakeroot fakeme
+endif



# we could make another tarball as below, but currently direct copy of list in initrd build.

Modified: balloon/branches/menuconfig/package/kernel/kernel.mk
===================================================================
--- balloon/branches/menuconfig/package/kernel/kernel.mk    2010-06-19 13:30:39 UTC (rev 1172)
+++ balloon/branches/menuconfig/package/kernel/kernel.mk    2010-06-21 13:34:07 UTC (rev 1173)
@@ -20,7 +20,12 @@
 endif


 zImageInitrd:
+ifeq ($(BR2_INITRD_MODULES),y)
+    echo "make kernel initrd package with modules"
+    ($(MAKE) INITRD_MODULES=y $(MAKEOPTS) -C $(CHECKOUT)/kernel installer)
+else
     ($(MAKE) $(MAKEOPTS) -C $(CHECKOUT)/kernel installer)
+endif


zImageInitrd-clean: kernel-clean