View Single Post
Posts: 1 | Thanked: 4 times | Joined on Oct 2017
#3269
Originally Posted by sulu View Post

1)
As mentioned in [2] we need to patch glibc to accept Fremantle's 2.6.28 kernel. You'll need an armhf/armel system running at least kernel 2.6.32 to do all this, so doing it on the N900 itself is no longer an option.
I did all of this on my Cubieboard2, which took about 6 hours. Once you have an image running you can create new patched glibc packages on the N900 (if the watchdog doesn't kill it).
I would strongly advise against using qemu, at least if you're over 40 and want it done before you retire.
If you need newer glibc packages and can't create them on your own drop me a note and I'll build them. But it may take a week or so.

a)
On a Debian Jessie armhf (or armel) system get the glibc sources
Code:
apt-get source glibc
b)
change into the created folder and apply the following changes:

This is what dpkg-source recorded of my changes:
Code:
Description: decrease min kernel version to 2.6.28 for Fremantle compatibility

--- glibc-2.19.orig/ports/sysdeps/unix/sysv/linux/tile/configure
+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/configure
@@ -1,4 +1,4 @@
 # This file is generated from configure.ac by Autoconf.  DO NOT EDIT!
  # Local configure fragment for sysdeps/unix/sysv/linux/tile.

-arch_minimum_kernel=2.6.32
+arch_minimum_kernel=2.6.28
--- glibc-2.19.orig/ports/sysdeps/unix/sysv/linux/tile/configure.ac
+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/configure.ac
@@ -1,4 +1,4 @@
 GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 # Local configure fragment for sysdeps/unix/sysv/linux/tile.

-arch_minimum_kernel=2.6.32
+arch_minimum_kernel=2.6.28
Additionally the testsuite checks have to be ignored during the package generation because some of them will fail:
Code:
# diff -u libc6/glibc-2.19/debian/testsuite-checking/compare.sh.orig libc6/glibc-2.19/debian/testsuite-checking/compare.sh
--- libc6/glibc-2.19/debian/testsuite-checking/compare.sh.orig	2014-11-09 14:43:46.809977508 +0000
+++ libc6/glibc-2.19/debian/testsuite-checking/compare.sh
@@ -41,5 +41,5 @@
 
 rm -f $expected $results
 # This would be a lovely place to exit 0 if you wanted to disable hard failures
-#exit 0
+exit 0
 exit $rv
c)
We need to tell dpkg that we changed the sources:
Code:
dpkg-source --commit
This will ask you to specify a name for the patch (chose whatever you like) and bring up the standard editor to provide a description for it.

d)
Now you can build the packages
Code:
debuild -us -uc
I found out that these instructions almost work still, in addition to the above changes, I also had to change these files:
Code:
--- debian/debhelper.in/libc.preinst.orig       2017-10-08 11:32:18.123876676 +0200
+++ debian/debhelper.in/libc.preinst    2017-10-08 11:33:07.583800072 +0200
@@ -357,11 +357,11 @@
         # sanity checking for the appropriate kernel on each architecture.
         kernel_ver=`uname -r`
 
-        # The GNU libc requires a >= 2.6.32 kernel, found in squeeze/lucid/RHEL6
-        if linux_compare_versions "$kernel_ver" lt 2.6.32
+        # The GNU libc requires a >= 2.6.28 kernel, found in squeeze/lucid/RHEL6
+        if linux_compare_versions "$kernel_ver" lt 2.6.28
         then
             echo WARNING: this version of the GNU libc requires kernel version
-            echo 2.6.32 or later.  Please upgrade your kernel before installing
+            echo 2.6.28 or later.  Please upgrade your kernel before installing
             echo glibc.
             kernel26_help

--- debian/sysdeps/linux.mk.orig        2017-10-08 11:32:00.903903345 +0200
+++ debian/sysdeps/linux.mk     2017-10-08 11:32:39.073844230 +0200
@@ -1,5 +1,5 @@
 # When changing this, make sure to update debian/debhelper.in/libc.preinst!
-MIN_KERNEL_SUPPORTED := 2.6.32
+MIN_KERNEL_SUPPORTED := 2.6.28
in both files you need to change "2.6.32" into "2.6.28". Then you can build, and have firefox/iceweasel version 45.9.0esr-1~deb8u1

Oh, I'm doing the build on a Raspberry3, and it took close to 6 hours, so it's nice getting it right the first time.
 

The Following 4 Users Say Thank You to klausade For This Useful Post: