summaryrefslogtreecommitdiff
path: root/packaging/linux-kernel.spec
diff options
context:
space:
mode:
authorChanho Park <chanho61.park@samsung.com>2014-08-05 17:12:00 +0900
committerChanho Park <chanho61.park@samsung.com>2014-08-08 15:25:48 +0900
commit09a792573d495a7fd69253cf5ad469936c66d27e (patch)
tree4b1f26439030ca1ed24966893940436249ba13eb /packaging/linux-kernel.spec
parentbb4561606c081946c4f1fe3ecf4e2f0c54e0d549 (diff)
downloadlinux-3.10-09a792573d495a7fd69253cf5ad469936c66d27e.tar.gz
linux-3.10-09a792573d495a7fd69253cf5ad469936c66d27e.tar.bz2
linux-3.10-09a792573d495a7fd69253cf5ad469936c66d27e.zip
packaging: move modules from /boot/lib/modules to /boot/modules.img
The latest e2fsprogs have a functionality to make ext2/3/4 image from directory. It acts like genext2fs or mkext4fs of android tools. I took some patches for it from e2fsprogs next branch and it will be merged in next release. A mobile device tend to locate kernel image and modules in the same partition because it should be easily recovered when the partition was broken. Thus, I also located the modules image in the /boot partition instead of /lib/modules directory. This patch supports making the modules.img from obs/gbs build. Change-Id: I480837378e07bc327ac2379211893799bb452402 Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Diffstat (limited to 'packaging/linux-kernel.spec')
-rw-r--r--packaging/linux-kernel.spec40
1 files changed, 30 insertions, 10 deletions
diff --git a/packaging/linux-kernel.spec b/packaging/linux-kernel.spec
index 75afafbd57f..560432412f9 100644
--- a/packaging/linux-kernel.spec
+++ b/packaging/linux-kernel.spec
@@ -28,6 +28,7 @@ BuildRequires: flex
BuildRequires: bison
BuildRequires: libdw-devel
BuildRequires: python-devel
+BuildRequires: e2fsprogs >= 1.42.11
Provides: kernel = %{version}-%{release}
Provides: kernel-uname-r = %{fullVersion}
@@ -48,6 +49,15 @@ header files define structures and constants that are needed for
building most standard programs and are also needed for rebuilding the
glibc package.
+%package modules
+Summary: Kernel modules
+Group: System/Kernel
+Provides: kernel-modules = %{fullVersion}
+Provides: kernel-modules-uname-r = %{fullVersion}
+
+%description modules
+Kernel-modules includes the loadable kernel modules(.ko files).
+
%package devel
Summary: Prebuilt linux kernel for out-of-tree modules
Group: Development/System
@@ -95,7 +105,7 @@ QA_SKIP_BUILD_ROOT="DO_NOT_WANT"; export QA_SKIP_BUILD_ROOT
# 1. Destynation directories
mkdir -p %{buildroot}/usr/src/linux-kernel-build-%{fullVersion}
mkdir -p %{buildroot}/boot/
-mkdir -p %{buildroot}/boot/lib/modules/%{fullVersion}
+mkdir -p %{buildroot}/lib/modules/%{fullVersion}
# 2. Install uImage, System.map, ...
install -m 755 arch/arm/boot/uImage %{buildroot}/boot/
@@ -105,7 +115,7 @@ install -m 644 System.map %{buildroot}/boot/System.map-%{fullVersion}
install -m 644 .config %{buildroot}/boot/config-%{fullVersion}
# 3. Install modules
-make INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=%{buildroot}/boot/ modules_install
+make INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=%{buildroot} modules_install
# 4. Install kernel headers
make INSTALL_PATH=%{buildroot} INSTALL_MOD_PATH=%{buildroot} INSTALL_HDR_PATH=%{buildroot}/usr headers_install
@@ -159,12 +169,21 @@ rm -rf %{buildroot}/vmlinux*
find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion}/tools/perf/scripts/ -type f %{excluded_files} -exec chmod 755 {} \;
find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion}/scripts/ -type f %{excluded_files} -exec chmod 755 {} \;
find %{buildroot}/usr -type f ! -name "check-perf-tracei.pl" -name "*.sh" -name "*.pl" -exec chmod 755 {} \;
-find %{buildroot}/boot/lib/modules/ -name "*.ko" -type f -exec chmod 755 {} \;
+find %{buildroot}/lib/modules/ -name "*.ko" -type f -exec chmod 755 {} \;
# 8. Create symbolic links
-rm -f %{buildroot}/boot/lib/modules/%{fullVersion}/build
-rm -f %{buildroot}/boot/lib/modules/%{fullVersion}/source
-ln -sf /usr/src/linux-kernel-build-%{fullVersion} %{buildroot}/boot/lib/modules/%{fullVersion}/build
+rm -f %{buildroot}/lib/modules/%{fullVersion}/build
+rm -f %{buildroot}/lib/modules/%{fullVersion}/source
+ln -sf /usr/src/linux-kernel-build-%{fullVersion} %{buildroot}/lib/modules/%{fullVersion}/build
+
+# 9. Calculate modules.img size
+BIN_SIZE=`du -s %{buildroot}/lib/modules | awk {'printf $1;'}`
+let BIN_SIZE=${BIN_SIZE}+1024+512
+
+dd if=/dev/zero of=%{buildroot}/boot/modules.img count=${BIN_SIZE} bs=1024
+/usr/sbin/mke2fs -t ext4 -F -d %{buildroot}/lib/modules/ %{buildroot}/boot/modules.img
+
+rm -rf %{buildroot}/lib/modules/%{fullVersion}/kernel
%clean
rm -rf %{buildroot}
@@ -173,11 +192,14 @@ rm -rf %{buildroot}
%defattr (-, root, root)
/usr/include
+%files modules
+/boot/modules.img
+
%files devel
%defattr (-, root, root)
/usr/src/linux-kernel-build-%{fullVersion}
-/boot/lib/modules/%{fullVersion}/modules.*
-/boot/lib/modules/%{fullVersion}/build
+/lib/modules/%{fullVersion}/modules.*
+/lib/modules/%{fullVersion}/build
%files
%license COPYING
@@ -185,8 +207,6 @@ rm -rf %{buildroot}
/boot/*.dtb
/boot/System.map*
/boot/config*
-/boot/lib/modules/%{fullVersion}/kernel
-/boot/lib/modules/%{fullVersion}/modules.*
%files -n perf
%license COPYING