pepslight
Posts: 22
Joined: Mon Nov 25, 2013 12:37 pm
Location: Deutschland

Getting trouble with this code

Thu Dec 05, 2013 9:44 pm

Hi Folks I am installing a driver for Using a snes Joystick on my raspberry pi via Gpio everything was going well, installing normal deb filles but than in one point I fall on one fille that needed a dependency gcc-4.7 :evil: I luckylly have all the links
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+
I am really really really noob in programation so please bit of tolerance :lol: I am having troublle because wen I am clicking to download the 0001-builddeb-gcc-4...> http://www.niksula.hut.fi/~mhiienka/Rpi ... aders-rpi/ I am opening a huge code file,

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
That's the thing I am opening this file and now I am completely stuck I just don't know what to do how to install if I don't manage this I won't manage to configure my drivers so if some one really cool could help me out I would be extremely thankful

Bets regards Peps

User avatar
rpdom
Posts: 17170
Joined: Sun May 06, 2012 5:17 am
Location: Chelmsford, Essex, UK

Re: Getting trouble with this code

Thu Dec 05, 2013 11:04 pm

Doesn't

Code: Select all

sudo apt-get install gcc-4.7
work for you? (skip the "sudo" if running as root)

pepslight
Posts: 22
Joined: Mon Nov 25, 2013 12:37 pm
Location: Deutschland

Re: Getting trouble with this code

Fri Dec 06, 2013 7:05 am

Hi there

Actually I tried but than I got another dependency problem it was missing the occ or something so molar I am really not sure of the name than I did so

Code: Select all

sudo apt-get -f gcc-4.7
but it didn't solve and I think this bunch of text filles are a modified version :( thanks all

Return to “Other programming languages”