Difference between revisions of "Formilux"
From Ant-Computing
m |
m (→Build toolchain) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 41: | Line 41: | ||
linux-2.6.32 => distribué en .xz et non pas .bz2 | linux-2.6.32 => distribué en .xz et non pas .bz2 | ||
+ | |||
+ | gperf, bison, flex, texinfo, ncurses-devel, gcc, automake, libtool, glibc-static, gcc-c++, expat-devel | ||
[~]$ cd /tmp | [~]$ cd /tmp | ||
− | [/tmp]$ SOURCE=( | + | [/tmp]$ git clone http://master.formilux.org/git/dist/toolchain.git/ formilux-toolchain |
− | http://ftp.gnu.org/gnu/automake/automake-1.11.1.tar.bz2 | + | [~]$ cd $FLX_SRC_CACHE_DIRS |
− | https://ftp.gnu.org/gnu/binutils/binutils-2.23.2.tar.bz2 | + | [...]$ SOURCE=( |
− | http://gcc.cybermirror.org/infrastructure/cloog-ppl-0.15.11.tar.gz | + | http://ftp.gnu.org/gnu/automake/automake-1.11.1.tar.bz2:c2972c4d9b3e29c03d5f2af86249876f |
− | http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.19.0.tar.bz2 | + | https://ftp.gnu.org/gnu/binutils/binutils-2.23.2.tar.bz2:4f8fa651e35ef262edc01d60fb45702e |
− | http://sourceforge.net/ | + | http://gcc.cybermirror.org/infrastructure/cloog-ppl-0.15.11.tar.gz:060ae4df6fb8176e021b4d033a6c0b9e |
− | https://launchpad.net/gcc-linaro/4.7/4.7-2014.06/+download/gcc-linaro-4.7-2014.06.tar.bz2 | + | http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.19.0.tar.bz2:882e5420ec0ff5a19a9d027ec5094527 |
− | http://ftp.gnu.org/gnu/gdb/gdb-7.4.1.tar.bz2 | + | http://downloads.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz:dd7dab7a5fea97d2a6a43f511449b7cd |
− | + | https://launchpad.net/gcc-linaro/4.7/4.7-2014.06/+download/gcc-linaro-4.7-2014.06.tar.bz2:933b50b47f2cd820630a945e14c6d452 | |
− | http://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2 | + | http://ftp.gnu.org/gnu/gdb/gdb-7.4.1.tar.bz2:8854d34691087ec127d934692639855f |
− | http://www.mr511.de/software/libelf-0.8.13.tar.gz | + | http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.bz2:e67f791383077c5f6a6e91fabc7579a5 |
− | https://ftp.gnu.org/gnu/libtool/libtool-2.2.6b.tar.lzma | + | http://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2:dd60683d7057917e34630b4a787932e8 |
− | https://www.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/linux-2.6.32.62.tar. | + | http://www.mr511.de/software/libelf-0.8.13.tar.gz:4136d7b4c04df68b686570afa26988ac |
− | http://repository.timesys.com/buildsources/l/ltrace/ltrace-0.5.3/ltrace-0.5.3.tar.gz | + | https://ftp.gnu.org/gnu/libtool/libtool-2.2.6b.tar.lzma:a4b36980765003b47dd75ac9429f4f11 |
− | http://ftp.debian.org/debian/pool/main/l/ltrace/ltrace_0.5.3.orig.tar.gz | + | https://www.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/linux-2.6.32.62.tar.gz:844a422f3761887b8492a33c0535ebd4 |
− | + | http://repository.timesys.com/buildsources/l/ltrace/ltrace-0.5.3/ltrace-0.5.3.tar.gz:3fa7fe715ab879db08bd06d1d59fd90f | |
− | + | http://ftp.debian.org/debian/pool/main/l/ltrace/ltrace_0.5.3.orig.tar.gz:3fa7fe715ab879db08bd06d1d59fd90f | |
− | + | http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz:0d6acab8d214bd7d1fbbc593e83dd00d | |
− | [ | + | http://ftp.gnu.org/gnu/mpfr/mpfr-2.4.2.tar.bz2:89e59fe665e2b3ad44a6789f40b059a0 |
+ | http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz:8cb9c412e5f2d96bc6f459aa8c6282a1 | ||
+ | http://pkgs.fedoraproject.org/repo/pkgs/ppl/ppl-0.11.2.tar.bz2/c24429e6c3bc97d45976a63f40f489a1/ppl-0.11.2.tar.bz2:c24429e6c3bc97d45976a63f40f489a1 | ||
+ | http://www.uclibc.org/downloads/uClibc-0.9.33.2.tar.bz2:a338aaffc56f0f5040e6d9fa8a12eda1 | ||
+ | ) | ||
+ | [...]$ OUTPUT=$(for file in ${SOURCE[@]} ; do | ||
+ | md5=${file##*:} ; file=${file%:*} ; | ||
+ | echo "## ${file##*[/?]}" >&2 | ||
+ | [ -e ${file##*[/?]} ] || { curl -OL $file || touch ${file##*[/?]} ; } | ||
+ | echo "$md5 ${file##*[/?]}" | ||
+ | done) | ||
+ | [...]$ md5sum -c <<<"$OUTPUT" | ||
+ | [...]$ cd /tmp/formilux-toolchain | ||
[formilux-toolchain]$ UCLIBC_PREFERRED_VERSION=0.9.33.2 \ | [formilux-toolchain]$ UCLIBC_PREFERRED_VERSION=0.9.33.2 \ | ||
CT_VERSION=1.19.0 \ | CT_VERSION=1.19.0 \ | ||
Line 68: | Line 82: | ||
TC_SRC=$FLX_SRC_CACHE_DIRS \ | TC_SRC=$FLX_SRC_CACHE_DIRS \ | ||
TC_DST=$FLXTECHNO/tc \ | TC_DST=$FLXTECHNO/tc \ | ||
− | TC_TMP=/ | + | TC_TMP=$PWD/build \ |
./toolchain tc-all,uc-build \ | ./toolchain tc-all,uc-build \ | ||
$PWD/config/config-{x86_64-gcc47l_glibc218-linux-gnu,i586-gcc47l_glibc218-linux-gnu,arm-gcc47l_glibc218-linux-gnueabi,armv7nthf-gcc47l_glibc218-linux-gnueabi,armv7pj4bthf-gcc47l_glibc218-linux-gnueabi,mips-24kc_gcc47l_glibc218-linux-gnu} | $PWD/config/config-{x86_64-gcc47l_glibc218-linux-gnu,i586-gcc47l_glibc218-linux-gnu,arm-gcc47l_glibc218-linux-gnueabi,armv7nthf-gcc47l_glibc218-linux-gnueabi,armv7pj4bthf-gcc47l_glibc218-linux-gnueabi,mips-24kc_gcc47l_glibc218-linux-gnu} | ||
− | [toolchain]$ | + | [formilux-toolchain]$ |
− | + | ||
== Building firmware == | == Building firmware == | ||
=== Create Firmware Projet === | === Create Firmware Projet === |
Latest revision as of 22:35, 22 February 2015
Contents
Formilux - Linux Firmware Distro
Why Formilux
Toolchain / Build environment
Create Formilux project
[~]$ export FLXTECHNO=$HOME/.flx [~]$ mkdir $FLXTECHNO [~]$
Build Formilux Tools
[~]$ cd /tmp [/tmp]$ git clone http://master.formilux.org/git/dist/techno.git/ formilux-techno [/tmp]$ cd formilux-techno [formilux-techno]$ make install DEST=$FLXTECHNO [formilux-techno]$ cat > $FLXTECHNO/defaults <<EOF export FLXTECHNO=$FLXTECHNO export PATH=\$PATH:\$FLXTECHNO/bin export FLX_SRC_CACHE_DIRS=\$FLXTECHNO/cache-src EOF [techno]$ ln -s /tmp $FLXTECHNO/cache-src [techno]$ source $FLXTECHNO/defaults [techno]$
Build compatibility tools
make, gcc, yacc sudo sans mot de passe pour installer les droits sur la version compilée de sudo
[~]$ cd /tmp [/tmp]$ git clone http://master.formilux.org/git/dist/compat.git/ formilux-compat [/tmp]$ cd formilux-compat [formilux-compat]$ mkdir -p $FLXTECHNO/bin [formilux-compat]$ ./build.sh --install $FLXTECHNO/bin [formilux-compat]$
Build toolchain
linux-2.6.32 => distribué en .xz et non pas .bz2
gperf, bison, flex, texinfo, ncurses-devel, gcc, automake, libtool, glibc-static, gcc-c++, expat-devel
[~]$ cd /tmp [/tmp]$ git clone http://master.formilux.org/git/dist/toolchain.git/ formilux-toolchain [~]$ cd $FLX_SRC_CACHE_DIRS [...]$ SOURCE=( http://ftp.gnu.org/gnu/automake/automake-1.11.1.tar.bz2:c2972c4d9b3e29c03d5f2af86249876f https://ftp.gnu.org/gnu/binutils/binutils-2.23.2.tar.bz2:4f8fa651e35ef262edc01d60fb45702e http://gcc.cybermirror.org/infrastructure/cloog-ppl-0.15.11.tar.gz:060ae4df6fb8176e021b4d033a6c0b9e http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.19.0.tar.bz2:882e5420ec0ff5a19a9d027ec5094527 http://downloads.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz:dd7dab7a5fea97d2a6a43f511449b7cd https://launchpad.net/gcc-linaro/4.7/4.7-2014.06/+download/gcc-linaro-4.7-2014.06.tar.bz2:933b50b47f2cd820630a945e14c6d452 http://ftp.gnu.org/gnu/gdb/gdb-7.4.1.tar.bz2:8854d34691087ec127d934692639855f http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.bz2:e67f791383077c5f6a6e91fabc7579a5 http://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2:dd60683d7057917e34630b4a787932e8 http://www.mr511.de/software/libelf-0.8.13.tar.gz:4136d7b4c04df68b686570afa26988ac https://ftp.gnu.org/gnu/libtool/libtool-2.2.6b.tar.lzma:a4b36980765003b47dd75ac9429f4f11 https://www.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/linux-2.6.32.62.tar.gz:844a422f3761887b8492a33c0535ebd4 http://repository.timesys.com/buildsources/l/ltrace/ltrace-0.5.3/ltrace-0.5.3.tar.gz:3fa7fe715ab879db08bd06d1d59fd90f http://ftp.debian.org/debian/pool/main/l/ltrace/ltrace_0.5.3.orig.tar.gz:3fa7fe715ab879db08bd06d1d59fd90f http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz:0d6acab8d214bd7d1fbbc593e83dd00d http://ftp.gnu.org/gnu/mpfr/mpfr-2.4.2.tar.bz2:89e59fe665e2b3ad44a6789f40b059a0 http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz:8cb9c412e5f2d96bc6f459aa8c6282a1 http://pkgs.fedoraproject.org/repo/pkgs/ppl/ppl-0.11.2.tar.bz2/c24429e6c3bc97d45976a63f40f489a1/ppl-0.11.2.tar.bz2:c24429e6c3bc97d45976a63f40f489a1 http://www.uclibc.org/downloads/uClibc-0.9.33.2.tar.bz2:a338aaffc56f0f5040e6d9fa8a12eda1 ) [...]$ OUTPUT=$(for file in ${SOURCE[@]} ; do md5=${file##*:} ; file=${file%:*} ; echo "## ${file##*[/?]}" >&2 [ -e ${file##*[/?]} ] || { curl -OL $file || touch ${file##*[/?]} ; } echo "$md5 ${file##*[/?]}" done) [...]$ md5sum -c <<<"$OUTPUT" [...]$ cd /tmp/formilux-toolchain [formilux-toolchain]$ UCLIBC_PREFERRED_VERSION=0.9.33.2 \ CT_VERSION=1.19.0 \ PARALLEL=4 \ TC_SRC=$FLX_SRC_CACHE_DIRS \ TC_DST=$FLXTECHNO/tc \ TC_TMP=$PWD/build \ ./toolchain tc-all,uc-build \ $PWD/config/config-{x86_64-gcc47l_glibc218-linux-gnu,i586-gcc47l_glibc218-linux-gnu,arm-gcc47l_glibc218-linux-gnueabi,armv7nthf-gcc47l_glibc218-linux-gnueabi,armv7pj4bthf-gcc47l_glibc218-linux-gnueabi,mips-24kc_gcc47l_glibc218-linux-gnu} [formilux-toolchain]$