Difference between revisions of "Formilux"

From Ant-Computing
Jump to: navigation, search
m (Build toolchain)
m (Build toolchain)
Line 42: Line 42:
 
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++
  
  [~]$ cd /tmp
 
  [/tmp]$ SOURCE=(
 
      http://ftp.gnu.org/gnu/automake/automake-1.11.1.tar.bz2
 
      https://ftp.gnu.org/gnu/binutils/binutils-2.23.2.tar.bz2
 
      http://gcc.cybermirror.org/infrastructure/cloog-ppl-0.15.11.tar.gz
 
      http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.19.0.tar.bz2
 
      http://sourceforge.net/projects/expat/files/expat/2.1.0/expat-2.1.0.tar.gz/download
 
      https://launchpad.net/gcc-linaro/4.7/4.7-2014.06/+download/gcc-linaro-4.7-2014.06.tar.bz2
 
      http://ftp.gnu.org/gnu/gdb/gdb-7.4.1.tar.bz2
 
      https://launchpad.net/glibc/head/2.18/+download/glibc-2.18.tar.gz
 
      http://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2
 
      http://www.mr511.de/software/libelf-0.8.13.tar.gz
 
      https://ftp.gnu.org/gnu/libtool/libtool-2.2.6b.tar.lzma
 
      https://www.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/linux-2.6.32.62.tar.xz
 
      http://repository.timesys.com/buildsources/l/ltrace/ltrace-0.5.3/ltrace-0.5.3.tar.gz
 
      http://ftp.debian.org/debian/pool/main/l/ltrace/ltrace_0.5.3.orig.tar.gz
 
      http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz
 
      http://ftp.gnu.org/gnu/mpfr/mpfr-2.4.2.tar.bz2
 
      http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz
 
  [/tmp]$
 
  
   [~]$ git clone http://master.formilux.org/git/dist/toolchain.git/ formilux-toolchain
+
   [~]$ cd /tmp
   [~]$ cd formilux-toolchain
+
  [/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://sourceforge.net/projects/expat/files/expat/2.1.0/expat-2.1.0.tar.gz/download?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 \
 
   [formilux-toolchain]$ UCLIBC_PREFERRED_VERSION=0.9.33.2 \
 
         CT_VERSION=1.19.0 \
 
         CT_VERSION=1.19.0 \
Line 71: Line 82:
 
         TC_SRC=$FLX_SRC_CACHE_DIRS \
 
         TC_SRC=$FLX_SRC_CACHE_DIRS \
 
         TC_DST=$FLXTECHNO/tc \
 
         TC_DST=$FLXTECHNO/tc \
         TC_TMP=/var/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 ===

Revision as of 19:09, 21 February 2015

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++


 [~]$ 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://sourceforge.net/projects/expat/files/expat/2.1.0/expat-2.1.0.tar.gz/download?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]$

Building firmware

Create Firmware Projet