# crosscompiling di un firmware per router in gentoo, come?

## icest0rm

Salve ragazzi...spero mi possiate aiutare, avevo già aperto un topic a riguardo nella sezione "Programming" ma nessuno mi ha risposto   :Crying or Very sad: 

praticamente vorrei provare a compilare un sorgente del mio router Linksys nella gentoo...

ho installato tutti i pacchetti descritti nel readme (binutils, uclibc, Gnu MP Library...), tranne per il fatto che loro dicono di usare Monta Vista Linux preview kit, ma non credo sia essenzile (smentite?)...

praticamente mi si arresta in compilazione con questo errore: 

```

../router/mipsel-uclibc/merge ram_zimage.bin target.squshfs 1

can not open the kernel file:ram_zimage.bin

make[1]: *** [upgrade] Error 255

make[1]: Leaving directory `/home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/image'

make: *** [upgrade] Error 2

which: no mipsel-uclibc-gcc in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/3.4.4:/usr/qt/3/bin:/usr/kde/3.4/sbin:/usr/kde/3.4/bin)

#(LINUXDIR)/scripts/cramfs/mkcramfs www/wag354gm/js/english /home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/image/en_lang.image

#(LINUXDIR)/scripts/cramfs/mkcramfs www/wag354gm/js/french /home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/image/fr_lang.image

#/home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/linux/linux/scripts/cramfs/mkcramfs www/wag354gm/js/german /home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/image/de_lang.image

#/home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/linux/linux/scripts/cramfs/mkcramfs www/wag354gm/js/sweden /home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/image/sw_lang.image

/home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/router/mipsel-uclibc/target/../mksquashfs www/wag354gm/js/english /home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/image/en_lang.image -noappend;\

/home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/router/mipsel-uclibc/target/../mksquashfs www/wag354gm/js/french /home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/image/fr_lang.image -noappend;\

/home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/router/mipsel-uclibc/target/../mksquashfs www/wag354gm/js/german /home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/image/de_lang.image -noappend;\

/home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/router/mipsel-uclibc/target/../mksquashfs www/wag354gm/js/sweden /home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/image/sw_lang.image -noappend;\

make -C /home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/image lang;

/bin/sh: /home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/router/mipsel-uclibc/target/../mksquashfs: No such file or directory

/bin/sh: /home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/router/mipsel-uclibc/target/../mksquashfs: No such file or directory

/bin/sh: /home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/router/mipsel-uclibc/target/../mksquashfs: No such file or directory

/bin/sh: /home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/router/mipsel-uclibc/target/../mksquashfs: No such file or directory

make[1]: Entering directory `/home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/image'chmod 644 *lang.image

chmod: cannot access `*lang.image': No such file or directory

make[1]: *** [lang] Error 1

make[1]: Leaving directory `/home/icest0rm/WAG354GV2-EU-v1_01_54-000/src/image'

make: *** [lang] Error 2 

```

da quel poco che ho capito leggendo qui e li però dovrei creare una toolchain per binutils...

infatti nel readme specificano anche di scegliere "mipsel-linux" come target...

allora ho cercato qualche documento e mi pareva di aver capito che quello che mi serviva era crossdev...ma come lo dovrei usare?

ho tentato con:

```
GeNt00 ~ # crossdev -t mipsel-linux-uclibc

* You need to set PORTDIR_OVERLAY in your make.conf.

* A standard setting is /usr/local/portage

GeNt00 ~ #
```

ma mi sono fermato qui prima di creare casini, sperando che qualcuno più esperto di me mi possa indicare verso la via giusta   :Very Happy: 

sperem!

grazie in anticipo   :Wink: 

Edit gutter: Per favore usiamo i bbcode

----------

## makoomba

beh, il messaggio è abbastanza chiaro.

nel make.conf devi impostare PORTDIR_OVERLAY=$dir

con $dir quello che vuoi, solitamente /usr/local/portage

----------

## icest0rm

 *makoomba wrote:*   

> beh, il messaggio è abbastanza chiaro.
> 
> nel make.conf devi impostare PORTDIR_OVERLAY=$dir
> 
> con $dir quello che vuoi, solitamente /usr/local/portage

 

certo fin qua c'ero   :Very Happy: 

ma rischio di combinare casini impostandolo?

il comando dato con crossdev è esatto?

non è che rischio di incasinare tutto quel poco di buono che ho fatto fino ad adesso creandomi un sistema usabile?   :Wink: 

----------

## makoomba

crossdev è uno strumento per developer e automatizza la creazione di un toolchain completo (o parziale) per l'architettura specificata.

ciò detto, non ho mai avuto l'esigenza di usarlo, quindi non so quale "impatto" possa avere sul sistema.

al limite, se proprio non vuoi rischiare, crei stage4, scompatti in una dir ,"chrutti" e usi crossdev

----------

## icest0rm

infatti l'ideale sarebbe che ci fosse qualcuno che l'ha già fatto che mi illustrasse i passaggi o un wiki  :Smile: 

----------

