2014-02-28

Distro Super Test – Raspberry Pi Edition


3. Distro Super Test – Raspberry Pi Edition             20130503
http://www.linuxuser.co.uk/reviews/distro-super-test-pi-edition
SliTaz 4
A tiny distro supposedly for use on desktop and on server
Overall Score
4/10
SliTaz has a place as a very fast web server, but that is unfortunately all it can do without serious work
>So that's why I tried to move from Raspbian to SliTaz.

Have any idea?
SliTaz 4
A tiny distro supposedly for use on desktop and on server
With the smallest image in the test, SliTaz is quick to download, install and boot. In fact, it shows off on startup that it took only three seconds to get to the command line – the fastest in this test. SliTaz is in its fourth version, released in the middle of last year. As an independent distro, not based on anything else, it is one of the genuine few that support hard float operations without being based on Raspbian. Clocking in at only 500MB on the SD card, it’s certainly a feat to have this fully working system on the Pi.
That low storage footprint comes at a price, though: there isn’t much to SliTaz. Coming with a grand total of 17 packages pre-installed, it’s an incredibly lightweight system that the developers themselves admit is meant to eke the max out of the Pi. The problem is, while the full SliTaz repos have a decent selection of packages, the Pi version only has 268. These are mostly utilities, and you can’t install a desktop environment from the repos. However, there is access to Xorg, and all the tools needed to compile it yourself. SliTaz has its own package manager, tazpkg, with a good search function to find what packages are available in lieu of a graphical manager. While you can also search the website for packages, you can’t filter by what’s available on Pi or not.
SliTaz on Pi then is very focused on being used as some kind of headless server, and admittedly thanks to the lack of packages it is fast, and it will draw very little power. The problem is, something like Arch is basically as fast, and the repositories are full of software that will allow you to also make it into a server. Also, you can also very easily turn Arch into a desktop system, something that SliTaz is very noticeably lacking.
SliTaz definitely has its place, and as a server it is quick to set up and has a lower footprint than the others. It just lacks the flexibility inherent in the Raspberry Pi itself.
Overall Score
4/10
SliTaz has a place as a very fast web server, but that is unfortunately all it can do without serious work

Slitaz -- arch / cook.conf


2b. Can you post a full cook.conf for this? The cook.conf from arm.balinor.net/slitaz/armhf/ seems to be only for cross-compilation.
1. Fixed. Thanks.
http://arm.balinor.net/slitaz/armhf/packages/cookutils-2.0-armhf.tazpkg

# Target host architecture type (Glibc doesn't support i386 anymore).
ARCH="arm"

2. SliTaz arm
2013-03-25 15:24 : cookutils-3.1.4-arm.tazpkg

cookutils-3.2-arm.tazpkg 2014-Feb-18 23:46:38
http://cook.slitaz.org/cross/arm/packages/cookutils-3.2-arm.tazpkg

cook.conf
http://cook.slitaz.org/cross/arm/cooker.cgi?download=../wok/cookutils/taz/cookutils-3.2/fs/etc/slitaz/cook.conf

# Target host architecture type (Glibc doesn't support i386 anymore).
ARCH="i486"

Slitaz -- cross

cross
slitaz-arm-toolchain-20120519.tar.bz2 *
slitaz-arm-toolchain-20120529.tar.bz2 **
slitaz-arm-toolchain-20140212.tar.bz2 ***
slitaz-arm-toolchain-armhf-20120630.tar.bz2
http://forum.slitaz.org/topic/chroot/page/3#post-27117
># wget http://mirror.slitaz.org/packages/cross/

SliTaz uses the sysroot method


1. cross howto
tux@slitaz:~$ cross howto | head
SYNOPSIS
cross [command|package] package
DESCRIPTION
Cross is a tool to build a cross toolchain on SliTaz GNU/Linux. The
ARM platform is actually supported and a x86_64 toolchain is on the
stove
COMMANDS
2. Cross - Help build a cross toolchain on SliTaz.
cookutils changeset 361:e7e7979eb49d
http://hg.slitaz.org/cookutils/rev/e7e7979eb49d
Add cross (let have a cross toolchain builder)
author Christophe Lincoln <pankso@slitaz.org>
date Wed May 09 22:15:39 2012 +0200 (21 months ago ago)
[..]
diff -r c75f13234af0 -r e7e7979eb49d cross
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cross Wed May 09 22:15:39 2012 +0200
@@ -0,0 +1,272 @@
+#!/bin/sh
+#
+# Cross - Help build a cross toolchain on SliTaz.
+#
+# Copyright 2012 (C) SliTaz GNU/Linux - BSD License
+# Author: Christophe Lincoln <pankso@slitaz.org>
3. Create a prebuilt cross toolchain tarball.
http://hg.slitaz.org/cookutils/file/3f5c9e87f05d/cross
448 gen-prebuilt)
449 # Create a prebuilt cross toolchain tarball.
450 init_compile
451 date=$(date "+%Y%m%d")
452 package="slitaz-$ARCH-toolchain-$date"
453 tarball="$package.tar.bz2"
4. SliTaz uses the sysroot method
( 1). cook.conf
http://hg.slitaz.org/cookutils/file/3f5c9e87f05d/cook.conf
51 # SliTaz uses the sysroot method, this tells GCC to consider dir as the root
52 # of a tree that contains a (subset of) the root filesystem of the target
53 # operating system. Target system headers, libraries and run-time object
54 # files will be searched in there. Cook will use the tools and sysroot in
55 # the CROSS_TREE for cross compiling. Example: CROSS_TREE="/cross/$ARCH"
(2). Cook log
http://cook.slitaz.org/cross/arm/cooker.cgi?pkg=linux
Cook: linux 3.2.53
================================================================================
arm sysroot: /cross/arm/sysroot
Adding /cross/arm/tools/bin to PATH
Using cross-tools: arm-slitaz-linux-gnueabi-
QA: checking package receipt...
QA: unable to reach: http://www.kernel.org/
Checking build dependencies...
Using packages DB: /cross/arm/sysroot/var/lib/tazpkg
Extracting: linux-3.2.53.tar.xz
Executing: compile_rules
CFLAGS : -march=armv6 -O2
Compiling: arm Kernel
(3). slitaz-arm-toolchain-20120519.tar.bz2 * (deprecated)
http://mirror.slitaz.org/packages/cross/slitaz-cross-arm-toolchain-20120519.tar.bz2

--prefix=/usr/cross/arm --libexec=/usr/cross/arm/lib

(4).
slitaz-arm-toolchain-20120529.tar.bz2 **
slitaz-arm-toolchain-20140212.tar.bz2 ***
slitaz-arm-toolchain-armhf-20120630.tar.bz2

--prefix=/cross/arm/tools --libexec=/cross/arm/tools/lib --sysroot=/cross/arm/sysroot

2014-02-25

Slitaz armhf compatibility


Slitaz armhf compatibility 
-march=armv6
-mfpu=vfp
-mfloat-abi=hard
2. Raspbian:
32 bit hardfp toolchain:gcc-4.6.3
eglibc-2.13
3. Slitaz armhf:
slitaz-arm-toolchain-armhf-20120630.tar.bz2
32 bit hardfp toolchain:gcc-4.6.3
eglibc-2.13
--with-arch=armv6 --with-fpu=vfp --with-float=hard

1. tightvnc convert from Raspbian
http://archive.raspbian.org/raspbian/pool/main/t/tightvnc/tightvncserver_1.3.9-6.4_armhf.deb

TightVNC/Qt5
http://alanyih.blogspot.tw/2013/02/slitaz-raspitightvncqt5.html


2. Qt5/qmake convert from twolife's Raspbian repository
http://twolife.be/raspbian/pool/qt/

Qt5-qmake/qtfm
http://alanyih.blogspot.tw/2013/02/slitaz-armhf-qt5-qmakeqtfm.html
5.
tux@slitaz:~$ tazpkg list | grep qt
libqt5 5.0.0-0rpi1 misc
libqt5-compositor 5.0.0~29-0rpi1 misc
libqt5-declarative 5.0.0-0rpi1 misc
libqt5-declarative-bin 5.0.0-0rpi1 misc
libqt5-dev-bin 5.0.0-0rpi1 misc
libqt5-graphicaleffects 5.0.0-0rpi1 misc
libqt5-multimedia 5.0.0-0rpi1 misc
libqt5-script 5.0.0-0rpi1 misc
libqt5-svg 5.0.0-0rpi1 misc
libqt5-tools 5.0.0-0rpi1 misc
libqt5-tools-bin 5.0.0-0rpi1 misc
libqt5-v8 5.0.0-0rpi1 misc
libqt5-xmlpatterns 5.0.0-0rpi1 misc
libqtwebkit5 5.0.0-0rpi1 misc
libqtwebkit5-bin 5.0.0-0rpi1 misc
qt5-demos-base 5 misc
qt5-demos-compositor 5.0.0~29-0rpi1 misc
qt5-qmake 5.0.0-0rpi1 misc
3.
root@slitaz:/tmp/qtfm-5.5# ls -l Makefile
-rw-r--r-- 1 root root 232653 Jan 13 03:57 Makefile
root@slitaz:/tmp/qtfm-5.5# head -21 Makefile
#############################################################################
# Makefile for building: qtfm
# Generated by qmake (3.0) (Qt 5.0.0) on: Sun Jan 13 03:57:53 2013
timestamps?

2014-02-24

Raspi cross-toolchain

Raspi cross-toolchain

I. RaspberryPi toolchain
1. History for tools/arm-bcm2708


I'm confused. Are you trying to tell me their version of glibc and gcc won't work with Slitaz? Or just trying to point at the compiler options to use?


I. timestamps: Jun 30, 2012
1. RaspberryPi
1. History for tools/arm-bcm2708
Feb 03, 2012
Add 64 bit hardfp toolchain
3aba47b6f6004755d8b51cd042c4e6c9be64e2ad


2.
R-Pi softfp toolchain: gcc-4.5.1


64 bit hardfp toolchain:gcc-4.5.1


2. Raspbian:
32 bit hardfp toolchain:gcc-4.6.3
eglibc-2.13


3. Slitaz armhf:
slitaz-arm-toolchain-armhf-20120630.tar.bz2
32 bit hardfp toolchain:gcc-4.6.3
eglibc-2.13


4. SliTaz arm:
slitaz-arm-toolchain-20120519.tar.bz2 *
slitaz-arm-toolchain-20120529.tar.bz2 **
slitaz-arm-toolchain-20140212.tar.bz2 ***
32 bit softfp toolchain:gcc-4.6.3
eglibc-2.13


II. Receipt for: glibc-base


III. Installed files by: glibc-base
http://cook.slitaz.org/cross/arm/cooker.cgi?files=glibc-base

2014-02-19

Raspbian-hardfp

Raspbian-hardfp
was enough? Also, I don't want -mfloat-abi=hard
I have otherwise no interest in Raspbian. Only Slitaz.

IMHO Raspbian is the best option for the Raspberry Pi.


1. Raspbian packages
1. Raspbian packages
http://raspbian.org/
The initial build of over 35,000 Raspbian packages, optimized for best performance on the Raspberry Pi,
2. What is Raspbian?
http://raspbian.org/RaspbianFAQ#What_is_Raspbian.3F
2. Big News! Official Raspbian Image Released
http://raspbian.org/

The Raspberry Pi Foundation has produced and released their own recommended image of Raspbian.

3. Distro Super Test – Raspberry Pi Edition
MAY 3 by Rob Zwetsloot
http://www.linuxuser.co.uk/reviews/distro-super-test-pi-edition
We pit six Raspberry Pi operating systems against one another to find out which one is the king of the tiny computer distros
[..]
Raspbian
Your first port of call to get a Raspberry Pi going
[..]
Overall Score
9/10
Raspbian is a fantastic tool for teaching, general coding and all manner of home- grown projects. Definitely the best distro for beginners
[..] 
SliTaz 4
A tiny distro supposedly for use on desktop and on server
[..]
Overall Score
4/10
SliTaz has a place as a very fast web server, but that is unfortunately all it can do without serious work
[..]
And the winner is…
Raspbian
A lot of these distros seemed to go back and forth between being as lightweight or as customisable as possible, or trying to offer a full desktop experience on the Pi. Raspbian goes the extra mile and not only supplies a great desktop experience, but is also heavily tied into the Raspberry Pi community. With access to learning modules and the Pi Store, it’s excellent for teaching computing, as well as for using in a headless state for a quick and easy-to-use server.
4. RPi Distributions
http://elinux.org/RPi_Distributions

5. RaspberryPi
https://wiki.debian.org/RaspberryPi
Can I put Debian on my Rasberry Pi?
Yes.
Debian armel will work, but will not make best use of the floating point hardware. Debian armhf will not work (see below).
If you know you need hardfloat support, your best bet is to use Raspbian - which is (mostly) Debian armhf rebuilt by members of Debian for the RPi's ARMv6+VFP2 ARM variant.
[..]
The CPU in the Raspberry Pi implements the ARMv6 ISA (with VFP2) and is thus incompatible with the Debian armhf port baseline of ARMv7+VFP3 and ARM hardware-floating-point ports for other distributions, which all have the same baseline. It is compatible with Debian armel (armv4t, soft(emulated) FP), but floating-point tasks will be slow when running the Debian armel port.

Slitaz-arm

Slitaz-arm

So that way didn't work in the end? (Or rather, if they DID get eglibc working in the end, why isn't it in the repo
http://cook.slitaz.org/cross/arm/packages/
?)

1. Summary
http://cook.slitaz.org/cross/arm/

Running command : Not running
Wok revision : 15854
[..]

Packages: 78 in the wok - 77 cooked - 1 unbuilt - Server date: 2014-02-18 14:07 CET
[..]

Latest cook
2014-01-28 20:07 : busybox-1.22.1-arm.tazpkg
2013-03-25 15:25 : tcc-0.9.25-arm.tazpkg
2013-03-25 15:25 : util-linux-whereis-2.21.1-arm.tazpkg
2013-03-25 15:25 : util-linux-mkfs-2.21.1-arm.tazpkg
2013-03-25 15:25 : dropbear-2012.55-arm.tazpkg
2013-03-25 15:24 : slitaz-base-files-5.4-arm.tazpkg
2013-03-25 15:24 : slitaz-boot-scripts-5.3.1-arm.tazpkg
2013-03-25 15:24 : cookutils-3.1.4-arm.tazpkg
[..]

2. Cross Toolchain
http://cook.slitaz.org/cross/arm/toolchain.cgi

Target host : arm
C Compiler : arm-slitaz-linux-gnueabi-gcc
CFLAGS : -march=armv6 -O2

Packages log: binutils eglibc gcc-final gcc-static linux-headers

testsuite.log

[COMPILING] arm-slitaz-linux-gnueabi-gcc -v -Wall -o test.out test.c
Using built-in specs.
COLLECT_GCC=arm-slitaz-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/cross/arm/tools/lib/gcc/arm-slitaz-linux-gnueabi/4.6.3/lto-wrapper
Target: arm-slitaz-linux-gnueabi
Configured with: ../gcc-4.6.3/configure --prefix=/cross/arm/tools --libexec=/cross/arm/tools/lib --target=arm-slitaz-linux-gnueabi --enable-shared --enable-c99 --enable-long-long --enable-__cxa_atexit --with-system-zlib --enable-plugin --disable-multilib --disable-libssp --disable-checking --disable-werror --with-pkgversion=SliTaz --with-bugurl=https://bugs.slitaz.org/ --with-sysroot=/cross/arm/sysroot --enable-languages=c,c++
Thread model: posix
gcc version 4.6.3 (SliTaz)
[..]

compile.log

Compile start: Tue Feb 11 23:01:52 CET 2014
Compile end : Wed Feb 12 01:00:06 CET 2014
Build time : 7094s ~ 118m

2014-02-16

slitaz-armhf-cross-toolchain VS. RaspberryPi-toolchain

slitaz-armhf-cross-toolchain VS. RaspberryPi-toolchain

1c. How does arm-slitaz-linux-gnueabi-* compare to other cross compilers such as arm-bcm2708-linux-gnueabi from
https://github.com/raspberrypi/tools/tree/master/arm-bcm2708
slitaz-armhf-cross-toolchain
slitaz-arm-toolchain-armhf-20120630.tar.bz2
Target: arm-slitaz-linux-gnueabi
--with-sysroot=/cross/arm/sysroot --with-arch=armv6 --with-fpu=vfp --with-float=hard

-march=armv6
-mfpu=vfp
-mfloat-abi=hard

These settings produce code with armv6 specific instructions, vector floating point instructions and specify the ARM EABI where floating point values are to be passed in floating point registers.


I. RaspberryPi toolchain
1. History for tools/arm-bcm2708
https://github.com/raspberrypi/tools/commits/master/arm-bcm2708
Jan 31, 2014
Update linaro gcc toolchain to: gcc-linaro-arm-linux-gnueabihf-raspbi… …
Aug 29, 2012
Add latest linaro gcc toolchain: gcc-linaro-arm-linux-gnueabihf-raspb… …
Aug 09, 2012
Rebuild with CT_KERNEL_VERSION=3.1.9
Jul 23, 2012
Rebuild toolchains with glibc 2.13 to match Wheezy image
3d08213d83341b274857c03b2e0795bffcd59715
Jul 21, 2012
Switch to 32-bit versions of gcc 4.7.1 for softfp and hardfp
ea20f345ee105aa89cce11bbcea0525940c38c93
Feb 03, 2012
Add 64 bit hardfp toolchain
3aba47b6f6004755d8b51cd042c4e6c9be64e2ad
Feb 01, 2012
Initial add of R-Pi toolchain
8740395dd92933bfc6ae1da88fd1492f7f194426

2.
R-Pi softfp toolchain
https://github.com/raspberrypi/tools/tree/3aba47b6f6004755d8b51cd042c4e6c9be64e2ad/arm-bcm2708/linux-x86/lib/gcc/arm-bcm2708-linux-gnueabi/4.5.1

64 bit hardfp toolchain
https://github.com/raspberrypi/tools/tree/3aba47b6f6004755d8b51cd042c4e6c9be64e2ad/arm-bcm2708/x86-linux64-cross-arm-linux-hardfp/lib/gcc/arm-bcm2708hardfp-linux-gnueabi/4.5.1


II. Raspbian
1. Raspbian packages
http://raspbian.org/
The initial build of over 35,000 Raspbian packages, optimized for best performance on the Raspberry Pi, was completed in June of 2012.
2. What is Raspbian?
http://raspbian.org/RaspbianFAQ#What_is_Raspbian.3F
Raspbian is an unofficial port of Debian wheezy armhf with compilation settings adjusted to produce code that uses "hardware floating point", the "hard float" ABI and will run on the Raspberry Pi.
The port is necessary because the official Debian wheezy armhf release is compatible only with versions of the ARM architecture later than the one used on the Raspberry Pi (ARMv7-A CPUs and higher, vs the Raspberry Pi's ARMv6 CPU).
The Debian squeeze image issued by the Raspberry Pi foundation was based on debian armel which uses software floating point and the "soft float" ABI. The foundation used the existing Debian port for less capable ARM devices. Therefore, it did not use of the Pi's processor's floating point hardware - reducing the Pi's performance during floating point intensive applications - or the advanced instructions of the ARMv6 CPU.
3. What compilation options should be set Raspbian code?
http://raspbian.org/RaspbianFAQ#What_compilation_options_should_be_set_Raspbian_code.3F
The compiler tools included in the Raspbian repository are, by default, pre-configured to produce code compatible with Raspbian. However, if you are looking to port compiler tools over to Raspbian, the settings required for most GNU tools are as follows:

-march=armv6
-mfpu=vfp
-mfloat-abi=hard

These settings produce code with armv6 specific instructions, vector floating point instructions and specify the ARM EABI where floating point values are to be passed in floating point registers. Additional information can be found in the Debian hard float documents.
http://wiki.debian.org/ArmHardFloatPort

2014-02-10

Slitaz -- armhf toolchain



cross-compile VS. native compile

1. cross-compile:
slitaz-armhf-cross-toolchain
slitaz-arm-toolchain-armhf-20120630.tar.bz2

Target: arm-slitaz-linux-gnueabi
--with-sysroot=/cross/arm/sysroot --with-arch=armv6 --with-fpu=vfp --with-float=hard

http://forum.slitaz.org/topic/chroot#post-18038
Chrooting to: /home/slitaz/cooking/arm/chroot
[..]
3.
root@slitaz:/# arm-slitaz-linux-gnueabi-gcc -v
Using built-in specs.
COLLECT_GCC=arm-slitaz-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/cross/arm/tools/lib/gcc/arm-slitaz-linux-gnueabi/4.6.3/lto-wrapper
Target: arm-slitaz-linux-gnueabi
Configured with: ../gcc-4.6.3/configure --prefix=/cross/arm/tools --libexec=/cross/arm/tools/lib --target=arm-slitaz-linux-gnueabi --enable-shared --enable-c99 --enable-long-long --enable-__cxa_atexit --with-system-zlib --enable-plugin --disable-multilib --disable-libssp --disable-checking --disable-werror --with-pkgversion=SliTaz --with-bugurl=https://bugs.slitaz.org/ --with-sysroot=/cross/arm/sysroot --with-arch=armv6 --with-fpu=vfp --with-float=hard --enable-languages=c,c++
Thread model: posix
gcc version 4.6.3 (SliTaz)
2. native compile:
http://forum.slitaz.org/topic/chroot/page/3#post-26286
Compiling with qemu-arm-static chroot
Target: arm-slitaz-linux-gnueabi
--build=arm-slitaz-linux-gnueabi --host=arm-slitaz-linux-gnueabi
[..]
3.
root@slitaz:/# gcc -v
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-slitaz-linux-gnueabi/4.6.3/lto-wrapper
Target: arm-slitaz-linux-gnueabi
Configured with: /home/slitaz/wok/gcc/source/gcc-4.6.3/configure --prefix=/usr --libexecdir=/usr/lib --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long --enable-__cxa_atexit --with-system-zlib --enable-plugin --disable-multilib --disable-libssp --disable-checking --disable-werror --disable-bootstrap --enable-clocale=gnu --enable-lto --enable-threads=posix --with-arch=armv6 --with-fpu=vfp --with-float=hard --with-pkgversion=SliTaz --build=arm-slitaz-linux-gnueabi --host=arm-slitaz-linux-gnueabi
Thread model: posix
gcc version 4.6.3 (SliTaz)