Qnap [ ToolChain x86 ] [ Debian 7.x based ] Cross compile Qnap

QoolBox

Représentant QNAP
2 Janvier 2014
10 559
163
153
50
France
www.qnap.com
Voici deux toolchains basés que j'ai créé sur un Debian 7 x86 (32bit) avec crosstool-ng en exlclusivité pour Cachem
ils vous permettrons de compiler les sources afin de les faire tourner sur vos NAS Qnap (Intel)

Les deux sont basés sur un glibc 2.6.1, binutils 1.19.1 seul GCC diffère

http://www.positiv-it.fr/QNAP/APP/i686-Qnap424-linux-gnu-binutils2191-glibc261.tgz (GCC 4.2.4)

http://www.positiv-it.fr/QNAP/APP/i686-Qnap436-linux-gnu-binutils2191-glibc261.tgz (GCC 4.3.6)

note d'installation :

installer votre Debian 7 x86 (i386)
créer un repertoire /data
décompresser un des toolchain dans /data
créez dans votre $HOME (généralement /root) un fichier .bash_profile

remplissez le avec le code suivant :

Code:
HOST=i686-Qnap436-linux-gnu
export HOST

TOOLCHAIN_PATH=/data/x-tools/i686-Qnap436-linux-gnu
export TOOLCHAIN_PATH

OPT_PATH=/opt
export OPT_PATH

PATH=$PATH:$HOME/bin:${TOOLCHAIN_PATH}/bin:${TOOLCHAIN_PATH}/i686-Qnap436-linux-gnu/bin
export PATH

compilez vos applications en utilisant le prefix suivant :

PREFIX=/share/CACHEDEV1_DATA/.qpkg/$NOM_DE_L_APPLI

en en host utiliser ${HOST}

example : (Generic mais peux varier selon les sources à compiler, le code doit être adapté aux sources et certaines fonctions peuvent nécessiter un export préalable)

Code:
CXX=${HOST}-g++                 \
LD=${HOST}-ld                   \
AS=${HOST}-as                   \
AR=${HOST}-ar                   \
CC=${HOST}-gcc \
PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig"  \
CFLAGS="-O2 -I$PREFIX/include" \
CXXFLAGS="-O2 -I$PREFIX/include"     \
CPPFLAGS="-O2 -I$PREFIX/include "     \
LDFLAGS="-L$PREFIX/lib -Wl,-rpath,$PREFIX/lib" \
./configure \
--prefix=$PREFIX \
--host=${HOST} \
--bindir=$PREFIX/bin \
--sbindir=$PREFIX/bin \
--libexecdir=$PREFIX/libexec \
--libdir=$PREFIX/lib \
--datadir=$PREFIX/share \
--datarootdir=$PREFIX/share \
--sysconfdir=$PREFIX/etc \
--sharedstatedir=$PREFIX/com \
--localstatedir=$PREFIX/var \
--includedir=$PREFIX/include \
--oldincludedir=$PREFIX/include \
--infodir=$PREFIX/share/info \
--localedir=$PREFIX/share/locale \

étant limité par la glibc 2.6.1, je ne peux pas créer un ToolChain avec un gcc supérieur à la version 4.3.6 (je crois les doigts pour que la R&D de Qnap l'upgrade car elle date vraiment)

;)
 
Salut,

Finalement, ce toolchain me semble incontournable. Je l'ai essayé et le NAS ne bronche plus avec son Glibc limité à 2.6.

Merci pour ce boulot!