but than I am having a bad time to discover how to install this famous gcc-4.7 .
Code: Select all
(Reading database ... 77652 files and directories currently installed.)
Preparing to replace linux-headers-3.10.21+ 3.10.21+-2 (using linux.deb) ...
Unpacking replacement linux-headers-3.10.21+ ...
dpkg: dependency problems prevent configuration of linux-headers-3.10.21+:
linux-headers-3.10.21+ depends on gcc-4.7; however:
Package gcc-4.7 is not installed.
dpkg: error processing linux-headers-3.10.21+ (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
linux-headers-3.10.21+
Code: Select all
From a268fbb86c6f06984895a81a412bed3df1686e27 Mon Sep 17 00:00:00 2001
From: Markus Hiienkari <markus@ragnarok.nblzone-210-197>
Date: Sat, 29 Dec 2012 02:20:38 +0200
Subject: [PATCH] builddeb + gcc-4.7 depedency
---
scripts/package/Makefile | 2 +-
scripts/package/builddeb | 112 +++++++++++++++++++++++++----------------------
2 files changed, 61 insertions(+), 53 deletions(-)
diff --git a/scripts/package/Makefile b/scripts/package/Makefile
index a4f31c9..0ebec358 100644
--- a/scripts/package/Makefile
+++ b/scripts/package/Makefile
@@ -87,7 +87,7 @@ quiet_cmd_builddeb = BUILDDEB
$(srctree)/scripts/package/builddeb
deb-pkg: FORCE
- $(MAKE) KBUILD_SRC=
+# $(MAKE) KBUILD_SRC=
$(call cmd,builddeb)
clean-dirs += $(objtree)/debian/
diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index acb8650..2008297 100644
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -43,7 +43,7 @@ create_package() {
mips*)
debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y .config && echo el) ;;
arm*)
- debarch=arm$(grep -q CONFIG_AEABI=y .config && echo el) ;;
+ debarch=armhf ;;
*)
echo "" >&2
echo "** ** ** WARNING ** ** **" >&2
@@ -62,7 +62,7 @@ create_package() {
fi
# Create the package
- dpkg-gencontrol -isp $forcearch -p$pname -P"$pdir"
+ dpkg-architecture -aarmhf -c dpkg-gencontrol -isp $forcearch -p$pname -P"$pdir" -DDepends=gcc-4.7
dpkg --build "$pdir" ..
}
@@ -92,49 +92,15 @@ rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir"
mkdir -m 755 -p "$tmpdir/DEBIAN"
mkdir -p "$tmpdir/lib" "$tmpdir/boot" "$tmpdir/usr/share/doc/$packagename"
mkdir -m 755 -p "$fwdir/DEBIAN"
-mkdir -p "$fwdir/lib/firmware/$version/" "$fwdir/usr/share/doc/$fwpackagename"
+mkdir -p "$fwdir/lib" "$fwdir/usr/share/doc/$fwpackagename"
mkdir -m 755 -p "$libc_headers_dir/DEBIAN"
mkdir -p "$libc_headers_dir/usr/share/doc/$libc_headers_packagename"
mkdir -m 755 -p "$kernel_headers_dir/DEBIAN"
mkdir -p "$kernel_headers_dir/usr/share/doc/$kernel_headers_packagename"
-mkdir -p "$kernel_headers_dir/lib/modules/$version/"
if [ "$ARCH" = "um" ] ; then
mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin"
fi
-# Build and install the kernel
-if [ "$ARCH" = "um" ] ; then
- $MAKE linux
- cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map"
- cp .config "$tmpdir/usr/share/doc/$packagename/config"
- gzip "$tmpdir/usr/share/doc/$packagename/config"
- cp $KBUILD_IMAGE "$tmpdir/usr/bin/linux-$version"
-else
- cp System.map "$tmpdir/boot/System.map-$version"
- cp .config "$tmpdir/boot/config-$version"
- # Not all arches include the boot path in KBUILD_IMAGE
- if [ -e $KBUILD_IMAGE ]; then
- cp $KBUILD_IMAGE "$tmpdir/boot/vmlinuz-$version"
- else
- cp arch/$ARCH/boot/$KBUILD_IMAGE "$tmpdir/boot/vmlinuz-$version"
- fi
-fi
-
-if grep -q '^CONFIG_MODULES=y' .config ; then
- INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_install
- rm -f "$tmpdir/lib/modules/$version/build"
- rm -f "$tmpdir/lib/modules/$version/source"
- if [ "$ARCH" = "um" ] ; then
- mv "$tmpdir/lib/modules/$version"/* "$tmpdir/usr/lib/uml/modules/$version/"
- rmdir "$tmpdir/lib/modules/$version"
- fi
-fi
-
-if [ "$ARCH" != "um" ]; then
- $MAKE headers_check KBUILD_SRC=
- $MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr"
-fi
-
# Install the maintainer scripts
# Note: hook scripts under /etc/kernel are also executed by official Debian
# kernel packages, as well as kernel packages built using make-kpkg
@@ -170,7 +136,8 @@ elif [ -n "$NAME" ]; then
else
name="Anonymous"
fi
-maintainer="$name <$email>"
+#maintainer="$name <$email>"
+maintainer="Markus Hiienkari <mhiienka@niksula.hut.fi>"
# Generate a simple changelog template
cat <<EOF > debian/changelog
@@ -243,21 +210,62 @@ EOF
fi
# Build header package
-(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl > "$objtree/debian/hdrsrcfiles")
-(cd $srctree; find arch/$SRCARCH/include include scripts -type f >> "$objtree/debian/hdrsrcfiles")
-(cd $objtree; find arch/$SRCARCH/include .config Module.symvers include scripts -type f >> "$objtree/debian/hdrobjfiles")
+(cd $srctree; find . -name Makefile -o -name Kconfig\* -o -name \*.pl > "$objtree/debian/hdrsrcfiles")
+(cd $srctree; find arch/$SRCARCH/include arch/$SRCARCH/tools arch/$SRCARCH/mach-bcm2708/include/mach include scripts -type f >> "$objtree/debian/hdrsrcfiles")
+#files needed for prepare
+echo "Kbuild" >> "$objtree/debian/hdrsrcfiles"
+echo "kernel/bounds.c" >> "$objtree/debian/hdrsrcfiles"
+echo "arch/arm/kernel/asm-offsets.c" >> "$objtree/debian/hdrsrcfiles"
+#(cd $objtree; find include scripts -type f >> "$objtree/debian/hdrobjfiles")
destdir=$kernel_headers_dir/usr/src/linux-headers-$version
mkdir -p "$destdir"
(cd $srctree; tar -c -f - -T "$objtree/debian/hdrsrcfiles") | (cd $destdir; tar -xf -)
-(cd $objtree; tar -c -f - -T "$objtree/debian/hdrobjfiles") | (cd $destdir; tar -xf -)
-ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build"
+#(cd $objtree; tar -c -f - -T "$objtree/debian/hdrobjfiles") | (cd $destdir; tar -xf -)
rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles"
-arch=$(dpkg --print-architecture)
+
+# additions for RPi
+mkdir -p "$kernel_headers_dir/lib/modules/$version"
+ln -sf /usr/src/linux-headers-$version $kernel_headers_dir/lib/modules/$version/build
+#rm "$destdir/Module.symvers"
+rm -r $destdir/include/generated
+rm -r $destdir/arch/arm/include/generated
+arch=armhf
+
+# postinst script to fetch newest Module.symvers from github & .config from /proc
+cat <<EOF > $kernel_headers_dir/DEBIAN/postinst
+#!/bin/sh
+
+ln -sf /usr/bin/gcc-4.7 /usr/bin/gcc
+wget -N -P /usr/src/linux-headers-$version https://github.com/raspberrypi/firmware/raw/master/extra/Module.symvers
+zcat /proc/config.gz > /usr/src/linux-headers-$version/.config
+make -C /usr/src/linux-headers-$version modules_prepare
+
+# always recompile dkms modules
+for dkmsmod in \`dkms status | cut -f1 -d, | sed s/_/-/g\`
+do
+ dpkg-reconfigure \$dkmsmod-dkms
+done
+EOF
+
+chmod 555 $kernel_headers_dir/DEBIAN/postinst
+
+# prerm script to remove generated files
+cat <<EOF > $kernel_headers_dir/DEBIAN/prerm
+#!/bin/sh
+
+#clean generated files
+if [ -d "/usr/src/linux-headers-$version" ]; then
+ make -C /usr/src/linux-headers-$version -i mrproper
+fi
+EOF
+
+chmod 555 $kernel_headers_dir/DEBIAN/prerm
cat <<EOF >> debian/control
Package: $kernel_headers_packagename
-Provides: linux-headers, linux-headers-2.6
+Provides: linux-headers
+Depends: gcc-4.7
Architecture: $arch
Description: Linux kernel headers for $KERNELRELEASE on $arch
This package provides kernel header files for $KERNELRELEASE on $arch
@@ -265,10 +273,14 @@ Description: Linux kernel headers for $KERNELRELEASE on $arch
This is useful for people who need to build external modules
EOF
+create_package "$kernel_headers_packagename" "$kernel_headers_dir"
+
+# only headers needed
+exit 0
+
# Do we have firmware? Move it out of the way and build it into a package.
if [ -e "$tmpdir/lib/firmware" ]; then
- mv "$tmpdir/lib/firmware"/* "$fwdir/lib/firmware/$version/"
- rmdir "$tmpdir/lib/firmware"
+ mv "$tmpdir/lib/firmware" "$fwdir/lib/"
cat <<EOF >> debian/control
@@ -292,11 +304,7 @@ Description: Linux support headers for userspace development
are used by the installed headers for GNU glibc and other system libraries.
EOF
-if [ "$ARCH" != "um" ]; then
- create_package "$kernel_headers_packagename" "$kernel_headers_dir"
- create_package "$libc_headers_packagename" "$libc_headers_dir"
-fi
-
+create_package "$libc_headers_packagename" "$libc_headers_dir"
create_package "$packagename" "$tmpdir"
exit 0
--
1.8.4.rc3
Bets regards Peps