|
2014-01-05
, 15:15
|
Posts: 915 |
Thanked: 3,209 times |
Joined on Jan 2011
@ Germany
|
#3052
|
What does the "file /usr/sbin/gpartedbin" say (could you post the output)?
# file /usr/sbin/gpartedbin /usr/sbin/gpartedbin: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0x6b53240fd4b63aa95583556d7b4fa2ac9d200ae9, stripped
|
2014-01-05
, 15:41
|
Posts: 915 |
Thanked: 3,209 times |
Joined on Jan 2011
@ Germany
|
#3053
|
# create 2GB image file (adjust size if desired)
dd if=/dev/zero of=/path/to/image_file bs=1M count=2048
# format image file with ext2 (or ext3 etc.)
mkfs.ext2 /path/to/image_file
# mount image
mount -o loop /path/to/image_file /mountpoint
# install base system (if you ommit --arch debootstrap will use the host's architecture, armel on an N900, armhf on a Cubieboard2; chose the Debian mirror closest to your location [1])
debootstrap --arch=armhf wheezy /mountpoint http://ftp.de.debian.org/debian
# copy /etc/apt sources.list and /etc/apt/apt.conf (I don't want suggests and recommends [2]) from host system
cp /etc/apt/sources.list /mountpoint/etc/apt/
cp /etc/apt/apt.conf /mountpoint/etc/apt/
# In the image /var/run is a symlink to /run. For pulseaudio and dbus to work we need this to be swapped (the missing /mountpoint in the last line is not a typo)
rm -rf /mountpoint/var/run
mkdir /mountpoint/var/run
rm -rf /mountpoint/run
ln -s /var/run /mountpoint/run
# we also need directories for pulse and dbus in /var/run
mkdir /mountpoint/var/pulse
mkdir /mountpoint/var/dbus
# replace standard keyboard layout in the chroot with N900 keyboard (assuming you are already on the N900)
rm -rf /mountpoint/usr/share/X11/xkb/*
cp -r /usr/share/X11/xkb/* /mountpoint/usr/share/X11/xkb/
# chroot into image (everything after this step will happen in the chroot unless indicated otherwise)
mount -o bind /proc /mountpoint/proc
mount -o bind /sys /mountpoint/sys
mount -o bind /dev/pts /mountpoint/dev/pts
chroot /mountpoint
# update apt and install additional required packages (add any packages you like)
apt-get update
apt-get install locales lxde-core dbus-x11 roxterm-gtk2 lxde-icon-theme xserver-xephyr bash-completion sudo libgtkstylus pulseaudio
# fix this locales warning we just received (adjust the locale if you wish; info from here [3])
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales
# replace Debian's pulseaudio packages with recompiled ones, either from the provided archive or your own ones (see [4])
dpkg -i pulseaudio_2.0-6.1_armhf.deb libpulse0_2.0-6.1_armhf.deb
# make sure they won't be overwritten by future Debian updates (note: if you use synaptic you have to hold them there as well because synaptic doesn't care for what dpkg says)
echo pulseaudio hold |dpkg --set-selections
echo libpulse0:armhf hold |dpkg --set-selections
# also hold xkb-data (this is where the keyboard layout comes from)
echo xkb-data hold |dpkg --set-selections
# you'll need these binaries for keyboard focus in the chroot (take them from the provided archive, an existing image you have, or compile them on your own; sources are here [5][6])
/sbin/qobi-wmhint-fix
/usr/bin/set-focus
# if you use the provided armel binaries on a armhf image you'll need this symlink (see [7])
ln -s /lib/ld-linux-armhf.so.3 /lib/ld-linux.so.3
# additionally you'll need a script that starts lxde on $DISPLAY :1 (again, take it from the archive or an old image)
/usr/bin/startlxde1
# for an unknown reason I had to add export GTK_MODULES=libgtkstylus.so here although it's supposed to be set in debbie-sue on the host; both versions are in the archive; I believe the rest of the scripts aren't necessary anymore, but I included them nevertheless in the archive
|
2014-01-05
, 19:15
|
|
Posts: 5,028 |
Thanked: 8,613 times |
Joined on Mar 2011
|
#3054
|
By the way, while looking for glibc, libstdc++ and kernel combination bugs, I found interesting info - Maemo's default gcc's (4.2.1) libstdc++ (6.0.9) which is present on N900s has one known binary incomatibility with all older and newer versions - see [2] and relevant gcc bug report [3]. It's marked as fixed - I wonder if "our" 6.0.9 and gcc have this fix included by some patch or all "our" binaries are abi-incompatible with all other gcc/libstdc++ version That would make me a sad panda.
[1] http://stackoverflow.com/questions/6...active#tab-top
[2] http://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html search for "GCC 4.2.1: libstdc++.so.6.0.9" and read further note
[3] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33678
[4] https://sourceware.org/ml/libc-annou.../msg00001.html
[5] https://sourceware.org/ml/libc-alpha.../msg00160.html
|
2014-01-05
, 23:07
|
Posts: 915 |
Thanked: 3,209 times |
Joined on Jan 2011
@ Germany
|
#3055
|
Edit: I also wonder what "--enable-kernel=2.X.Y" was passed when glibc was being compiled. Anyone know how to check that, so Sulu could do that?
debian/sysdeps/linux.mk:MIN_KERNEL_SUPPORTED := 2.6.32 debian/debhelper.in/libc.preinst: if linux_compare_versions "$kernel_ver" lt 2.6.32 ports/sysdeps/unix/sysv/linux/tile/configure.in:arch_minimum_kernel=2.6.32 ports/sysdeps/unix/sysv/linux/tile/configure:arch_minimum_kernel=2.6.32
Edit2: I found out that GNU C Library 2.17 is compatible with kernels 2.6.16 upwards [4] while GNU C Library 2.18 doesn't even state that info in annoucement [5]...
|
2014-01-06
, 18:19
|
Posts: 915 |
Thanked: 3,209 times |
Joined on Jan 2011
@ Germany
|
#3056
|
ChangeLog.17: O_DSYNC to match 2.6.33+ kernels. ChangeLog.17: headers up to 2.6.30. ChangeLog.17: architectures have preadv/pwritev in 2.6.30. ChangeLog.17: have preadv/pwritev in 2.6.30. ChangeLog.17: preadv/pwritev in 2.6.30. ChangeLog.17: * version.h (VERSION): Set to 2.6.90. debian/debhelper.in/libc.preinst: # 2.6.32 kernel is needed. debian/debhelper.in/libc.preinst: vmin=2.6.32 ports/sysdeps/unix/sysv/linux/arm/kernel-features.h:/* Support for pselect6, ppoll and epoll_pwait was added in 2.6.32. */ ports/ChangeLog.arm: O_DSYNC to match 2.6.33+ kernels. ports/ChangeLog.arm: __ASSUME_PPOLL): Don't undefine for kernel 2.6.32 and later. sysdeps/unix/sysv/linux/sys/timex.h:/* These definitions from linux/timex.h as of 2.6.30. */ sysdeps/unix/sysv/linux/kernel-features.h:/* Support for the FUTEX_CLOCK_REALTIME flag was added in 2.6.29. */ sysdeps/unix/sysv/linux/kernel-features.h:/* Support for the AT_RANDOM auxiliary vector entry was added in 2.6.29. */ sysdeps/unix/sysv/linux/kernel-features.h:/* Support for preadv and pwritev was added in 2.6.30. */ sysdeps/unix/sysv/linux/kernel-features.h:/* Support for F_GETOWN_EX was introduced in 2.6.32. */ sysdeps/unix/sysv/linux/kernel-features.h:/* Support for the recvmmsg syscall was added in 2.6.33. */ sysdeps/unix/sysv/linux/kernel-features.h:/* statfs fills in f_flags since 2.6.36. */ sysdeps/unix/sysv/linux/kernel-features.h:/* prlimit64 is available in 2.6.36. */
2009-12-11 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/sh/bits/fcntl.h: Redefine O_SYNC and O_DSYNC to match 2.6.33+ kernels. * sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise. [..] 2009-04-20 Ulrich Drepper <drepper@redhat.com> [BZ #10086] * sysdeps/unix/sysv/linux/sys/timex.h: Add definitions from kernel headers up to 2.6.30. * po/ca.po: Update from translation team. [..] 2009-04-17 Ulrich Drepper <drepper@redhat.com> * malloc/malloc.c (malloc_info): Also output system memory information. * sysdeps/unix/sysv/linux/kernel-features.h: All supported architectures have preadv/pwritev in 2.6.30. * sysdeps/posix/preadv.c: Reading of zero bytes is no error. * sysdeps/posix/readv.c: Likewise. Reported by Markus Armbruster <armbru@redhat.com>. * malloc/hooks.c (top_check): Force hook value into register. [..] 2009-04-09 Ulrich Drepper <drepper@redhat.com> * sysdeps/x86_64/rawmemchr.S: New file. * stdio-common/vfprintf.c (vfprintf): Slightly more compact code. Simplified code and possible copy problem fixed. * sysdeps/unix/sysv/linux/preadv.c: Avoid prototype for static function if it is not defined. Add some necessary casts. * sysdeps/unix/sysv/linux/pwritev.c: Likewise. * sysdeps/unix/sysv/linux/kernel-features.h: SPARC and IA64 also have preadv/pwritev in 2.6.30. [..] 2007-05-17 Ulrich Drepper <drepper@redhat.com> Dummy files to prevent stub versions from being used. * sysdeps/x86_64/fpu/k_cosl.c: New file. * sysdeps/x86_64/fpu/k_rem_pio2l.c: New file. * sysdeps/x86_64/fpu/k_sinl.c: New file. * sysdeps/x86_64/fpu/k_tanl.c: New file. * version.h (VERSION): Set to 2.6.90.
/* Support for pselect6, ppoll and epoll_pwait was added in 2.6.32. */ #if __LINUX_KERNEL_VERSION < 0x020620 # undef __ASSUME_PSELECT # undef __ASSUME_PPOLL #endif
# The GNU libc requires a >= 2.6.26 kernel, except on m68k where a # 2.6.32 kernel is needed. if [ "$realarch" != m68k ] then vmin=2.6.26 else vmin=2.6.32 fi if linux_compare_versions "$kernel_ver" lt ${vmin} then echo WARNING: this version of the GNU libc requires kernel version echo ${vmin} or later. Please upgrade your kernel before installing echo glibc. kernel26_help exit 1 fi
2009-12-15 Joseph Myers <joseph@codesourcery.com> * sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Redefine O_SYNC and O_DSYNC to match 2.6.33+ kernels. [..] 2009-11-19 Joseph Myers <joseph@codesourcery.com> * sysdeps/unix/sysv/linux/arm/kernel-features.h (__ASSUME_PSELECT, __ASSUME_PPOLL): Don't undefine for kernel 2.6.32 and later.
/* Support for the FUTEX_CLOCK_REALTIME flag was added in 2.6.29. */ #if __LINUX_KERNEL_VERSION >= 0x02061d # define __ASSUME_FUTEX_CLOCK_REALTIME 1 #endif /* Support for the AT_RANDOM auxiliary vector entry was added in 2.6.29. */ #if __LINUX_KERNEL_VERSION >= 0x02061d # define __ASSUME_AT_RANDOM 1 #endif /* Support for preadv and pwritev was added in 2.6.30. */ #if __LINUX_KERNEL_VERSION >= 0x02061e # define __ASSUME_PREADV 1 # define __ASSUME_PWRITEV 1 #endif /* Support for F_GETOWN_EX was introduced in 2.6.32. */ #if __LINUX_KERNEL_VERSION >= 0x020620 # define __ASSUME_F_GETOWN_EX 1 #endif /* Support for the recvmmsg syscall was added in 2.6.33. */ #if __LINUX_KERNEL_VERSION >= 0x020621 # define __ASSUME_RECVMMSG 1 #endif /* statfs fills in f_flags since 2.6.36. */ #if __LINUX_KERNEL_VERSION >= 0x020624 # define __ASSUME_STATFS_F_FLAGS 1 #endif /* prlimit64 is available in 2.6.36. */ #if __LINUX_KERNEL_VERSION >= 0x020624 # define __ASSUME_PRLIMIT64 1 #endif
|
2014-01-06
, 18:25
|
Posts: 3,328 |
Thanked: 4,476 times |
Joined on May 2011
@ Poland
|
#3057
|
|
2014-01-06
, 18:54
|
Posts: 915 |
Thanked: 3,209 times |
Joined on Jan 2011
@ Germany
|
#3058
|
|
2014-01-07
, 18:43
|
Posts: 3,328 |
Thanked: 4,476 times |
Joined on May 2011
@ Poland
|
#3059
|
The Following User Says Thank You to marmistrz For This Useful Post: | ||
|
2014-04-13
, 22:03
|
|
Posts: 138 |
Thanked: 185 times |
Joined on Feb 2014
|
#3060
|
Tags |
beta, debian, easy debian, extras-devel, fremantle, i <3 qole, squeeze |
|
Here it is (wheezy/armhf image on the N900):
Thanks for all the updates, I don't see anything obvious in them either. What does the "file /usr/sbin/gpartedbin" say (could you post the output)? Maybe it doesn't support our kernel [1], which would be a suprise, but worth checking. On my virtual machine with a bit old Debian installation the minimal supported kernel for gparted is "2.6.26" which is quite close to N900's version...
By the way, while looking for glibc, libstdc++ and kernel combination bugs, I found interesting info - Maemo's default gcc's (4.2.1) libstdc++ (6.0.9) which is present on N900s has one known binary incomatibility with all older and newer versions - see [2] and relevant gcc bug report [3]. It's marked as fixed - I wonder if "our" 6.0.9 and gcc have this fix included by some patch or all "our" binaries are abi-incompatible with all other gcc/libstdc++ version That would make me a sad panda.
Edit: I also wonder what "--enable-kernel=2.X.Y" was passed when glibc was being compiled. Anyone know how to check that, so Sulu could do that?
Edit2: I found out that GNU C Library 2.17 is compatible with kernels 2.6.16 upwards [4] while GNU C Library 2.18 doesn't even state that info in annoucement [5]...
[1] http://stackoverflow.com/questions/6...active#tab-top
[2] http://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html search for "GCC 4.2.1: libstdc++.so.6.0.9" and read further note
[3] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33678
[4] https://sourceware.org/ml/libc-annou.../msg00001.html
[5] https://sourceware.org/ml/libc-alpha.../msg00160.html
Last edited by misiak; 2014-01-05 at 15:08.