View previous topic :: View next topic |
Author |
Message |
canduc17 l33t
Joined: 11 Oct 2005 Posts: 795 Location: Ferrara, Italy
|
Posted: Tue Apr 17, 2007 9:37 am Post subject: [Distcc] Hai voglia a seguire le guide... |
|
|
Ciao, sto cercando di far andare distcc su tre mie macchine.
Una è un AMD 64 Mobile 800 MHz, un AMD AThlon XP 1100 MHz e l'ultima un altro AMD Athlon XP 1800MHz.
Per far andare il tutto ho utilizzato le guide Gentoo Linux e Distcc e DistCC Cross-compiling Guide.
I miei tre computer sono tutti e tre collegati ad un router che usa dhcp, sempre nell'ordine gli indirizzi che assegna sono 192.168.1.5, 192.168.1.4, 192.168.1.2.
Perciò ho configurato così /etc/conf.d/distcc su tutte e tre le macchine: Code: | # /etc/conf.d/distccd: config file for /etc/init.d/distccd
DISTCCD_OPTS="--allow 192.168.1.2/24 --allow 192.168.1.4/24 --allow 192.168.1.5/24"
# this is the distccd executable
DISTCCD_EXEC="/usr/bin/distccd"
# this is where distccd will store its pid file
DISTCCD_PIDFILE="/var/run/distccd/distccd.pid"
# set this option to run distccd with extra parameters
# Default port is 3632. For most people the default is okay.
DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632"
# Logging
# You can change some logging options here:
# --log-file FILE
# --log-level LEVEL [critical,error,warning, notice, info, debug]
#
# Leaving --log-file blank will log to syslog
# example: --log-file /dev/null --log-level warning
# example: --log-level critical
DISTCCD_OPTS="${DISTCCD_OPTS} --log-level critical"
# SECURITY NOTICE:
# It is HIGHLY recomended that you use the --listen option
# for increased security. You can specify an IP to permit connections
# from or a CIDR mask
# --listen accepts only a single IP
# --allow is now mandatory as of distcc-2.18.
# example: --allow 192.168.0.0/24
# example: --allow 192.168.0.5 --allow 192.168.0.150
# example: --listen 192.168.0.2
DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.0.0/24"
#DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.0.2"
# set this for niceness
# Default is 15
DISTCCD_NICE="15" | ed ho anche dato su tutte e tre le macchine il comando: Code: | /usr/bin/distcc-config --set-hosts "192.168.1.2 192.168.1.4 192.168.1.5" |
Seguendo le istruzioni della guida sul cross-compiling per l'Athlon XP 1100MHz, ho ottenuto: Code: | candesktop canduc # cd /usr/lib/distcc/bin
candesktop bin # ls -l
totale 4
lrwxrwxrwx 1 root root 25 17 apr 10:38 c++ -> i386-pc-linux-gnu-wrapper
lrwxrwxrwx 1 root root 25 17 apr 10:38 cc -> i386-pc-linux-gnu-wrapper
lrwxrwxrwx 1 root root 25 17 apr 10:38 g++ -> i386-pc-linux-gnu-wrapper
lrwxrwxrwx 1 root root 25 17 apr 10:38 gcc -> i386-pc-linux-gnu-wrapper
lrwxrwxrwx 1 root root 15 17 apr 10:09 i386-pc-linux-gnu-c++ -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 17 apr 10:09 i386-pc-linux-gnu-g++ -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 17 apr 10:09 i386-pc-linux-gnu-gcc -> /usr/bin/distcc
-rwxr-xr-x 1 root root 72 17 apr 10:37 i386-pc-linux-gnu-wrapper | dove i386-pc-linux-gnu-wrapper è questo file: Code: | #!/bin/bash
exec /usr/lib/distcc/bin/i386-pc-linux-gnu-g${0:$[-2]} "$@" |
Naturalmente ho anche modificato /etc/make.conf in tutte e tre le macchine: Code: | ...
MAKEOPTS="-j4"
FEATURES="distcc"
... |
Quando però faccio partire una compilazione da questo Athlon mi compaiono errori come questo: Code: | distcc[22185] (dcc_pump_sendfile) ERROR: sendfile failed: Connection reset by peer
distcc[22185] (dcc_readx) ERROR: unexpected eof on fd4
distcc[22185] (dcc_r_token_int) ERROR: read failed while waiting for token "DONE"
distcc[22185] Warning: failed to distribute kmime_charfreq.cpp to 192.168.1.5, running locally instead
distcc[22146] (dcc_writex) ERROR: failed to write: Connection reset by peer
distcc[22146] Warning: failed to distribute kmime_codecs.cpp to 192.168.1.2, running locally instead
distcc[22191] (dcc_writex) ERROR: failed to write: Connection reset by peer
distcc[22191] Warning: failed to distribute kmime_mdn.cpp to 192.168.1.2, running locally instead | e la compilazione non viene distribuita tra le macchine.
Da notare che non ho installato firewall di nessun tipo e che queste macchine di norma non collaborano in rete (non ho configurato samba o cose simili).
Il dominio di tutte e tre però è identico.
Dov'è la magagna questa volta?! _________________ A cow enters a supermarket, does an handstand and dies. (Public toilet graffito) |
|
Back to top |
|
|
IlGab Guru
Joined: 26 Nov 2004 Posts: 486
|
Posted: Tue Apr 17, 2007 11:35 am Post subject: |
|
|
La pinghi ? La porta è aperta sulle altre macchine ? |
|
Back to top |
|
|
canduc17 l33t
Joined: 11 Oct 2005 Posts: 795 Location: Ferrara, Italy
|
Posted: Tue Apr 17, 2007 12:04 pm Post subject: |
|
|
Il ping dalla macchina principale (192.168.1.4) funziona: Code: | candesktop canduc # ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.239 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.227 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.186 ms
64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.226 ms
64 bytes from 192.168.1.2: icmp_seq=5 ttl=64 time=0.196 ms
64 bytes from 192.168.1.2: icmp_seq=6 ttl=64 time=0.163 ms
--- 192.168.1.2 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5000ms
rtt min/avg/max/mdev = 0.163/0.206/0.239/0.027 ms
candesktop canduc # ping 192.168.1.5
PING 192.168.1.5 (192.168.1.5) 56(84) bytes of data.
64 bytes from 192.168.1.5: icmp_seq=1 ttl=64 time=1.12 ms
64 bytes from 192.168.1.5: icmp_seq=2 ttl=64 time=0.156 ms
64 bytes from 192.168.1.5: icmp_seq=3 ttl=64 time=0.170 ms
--- 192.168.1.5 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.156/0.483/1.124/0.453 ms |
Che porte devono essere aperte sulle altre macchine? _________________ A cow enters a supermarket, does an handstand and dies. (Public toilet graffito) |
|
Back to top |
|
|
xveilsidex Guru
Joined: 27 Dec 2005 Posts: 370 Location: Bari
|
Posted: Tue Apr 17, 2007 12:24 pm Post subject: |
|
|
hai aggiunto questa riga?
echo "distcc:x:240:2:distccd:/dev/null:/bin/false" >>/etc/passwd
cmq non tutti i programmi vengono compilati con distcc!
hai letto questa guida?
http://www.gentoo.org/doc/en/distcc.xml |
|
Back to top |
|
|
canduc17 l33t
Joined: 11 Oct 2005 Posts: 795 Location: Ferrara, Italy
|
Posted: Tue Apr 17, 2007 12:45 pm Post subject: |
|
|
Come se ho letto la guida?!
E' il liet-motiv di questo topic...guarda il mio primo post.
Ho aggiunto la tua riga, ma se l'hai presa dalla guida, fa riferimento all'uso di distcc per il bootstrap, non so quanto mi possa servire...
L'esito è infatti sempre quello: Code: | distcc[22927] ERROR: compile sipqtQWMatrix.cpp on 192.168.1.5 failed with exit code 110
make[1]: *** [sipqtQWMatrix.o] Error 110
make[1]: *** Waiting for unfinished jobs....
gcc-config error: Could not run/locate "i386-pc-linux-gnu-g++"
distcc[22929] ERROR: compile sipqtQWizard.cpp on 192.168.1.2 failed
make[1]: *** [sipqtQWizard.o] Error 1
gcc-config error: Could not run/locate "i386-pc-linux-gnu-g++"
distcc[22922] ERROR: compile sipqtcmodule.cpp on 192.168.1.2 failed |
Un'altro segnale è che nell'interfaccia grafica che mi dovrebbe dire come procede la compilazione sulle diverse macchine (distccmon-gui), non dà segni di vita, la sua finestra rimane vuota. _________________ A cow enters a supermarket, does an handstand and dies. (Public toilet graffito) |
|
Back to top |
|
|
drizztbsd Retired Dev
Joined: 21 Nov 2004 Posts: 278 Location: Cesano Maderno
|
Posted: Tue Apr 17, 2007 12:51 pm Post subject: |
|
|
hai delle macchine con CHOST=i386 e altre macchine con CHOST=i686, non può funzionare così facilmente
i casi son 2, o metti i chost uguali come da guida oppure rischi e fai un wrapper _________________ Gentoo/Alt lead
Gentoo/*BSD and Gentoo/FreeBSD deputy lead
Paludis contributor |
|
Back to top |
|
|
noppy Tux's lil' helper
Joined: 10 Dec 2003 Posts: 103
|
Posted: Tue Apr 17, 2007 4:28 pm Post subject: |
|
|
io ho notato che dando la liste delle macchine come indirizzo IP spesso non mi funzionava , percio' ho messo i nomi delle macchine (come mi pare sia riportato negli esempi) , per risolvere i nomi io uso un dns pero' basta modificare il file /etc/hosts e via , poi un altra cosa , nella lista la prima macchina deve essere quella locale (almeno ho capito cosi) , percio se le macchine si chiamano h1 h2 e h3 , la lista per h1 e' "h1 h2 h3" quella per h2 "h2 h1 h3" e quella per h3 "h3 h1 h2" . |
|
Back to top |
|
|
canduc17 l33t
Joined: 11 Oct 2005 Posts: 795 Location: Ferrara, Italy
|
Posted: Tue Apr 17, 2007 6:45 pm Post subject: |
|
|
@ Drizzt Do` Urden: cavolo, hai ragione in un'AMD ho CHOST="i686-pc-linux-gnu", nell'altro (quello da cui parte la compilazione) ha CHOST="i386-pc-linux-gnu".
Ma perchè? Sono due processori identici, cambia solo la frequenza!!!
Come ho detto nel primo post un wrapper l'ho fatto, anche perchè la terza macchina è un amd64 (CHOST="x86_64-pc-linux-gnu")!
Ho seguito la Distcc cross-compiling guide.
Quello che ho fatto dovrebbe risolvere problemi dirivanti da diversi chost, o no? _________________ A cow enters a supermarket, does an handstand and dies. (Public toilet graffito) |
|
Back to top |
|
|
Scen Retired Dev
Joined: 29 Jul 2003 Posts: 2470 Location: Padova, Italy
|
Posted: Tue Apr 17, 2007 7:39 pm Post subject: |
|
|
La via più semplice è migrare a CHOST=i686 su quello che attualmente ha i386 (vedi relativa guida).
Per tua informazione, io tempo fa ho provato a mettere in piede un distcc tra un pentium3 e un amd64 (i miei 2 attuali pc casalinghi) seguendo la guida, e mi funzionava tutto alla perfezione _________________ I was born in a deep forest/I wish I could live here all my life/I am made from stones and roots/My home, these woods and roads
All my life I loved this sound/Of the woods all around/Eagles flies where the winds blows free
Journey is my destiny |
|
Back to top |
|
|
canduc17 l33t
Joined: 11 Oct 2005 Posts: 795 Location: Ferrara, Italy
|
Posted: Wed Apr 18, 2007 6:35 am Post subject: |
|
|
E allora, anch'io che ho seguito la guida cosa ho sbagliato?!
Perchè cambiare CHOST, quando ho già fatto un wrapper per gestire l'AMD64?
In base a che cosa gentoo decide il CHOST di una macchina quando viene installato per la prima volta??? _________________ A cow enters a supermarket, does an handstand and dies. (Public toilet graffito) |
|
Back to top |
|
|
Scen Retired Dev
Joined: 29 Jul 2003 Posts: 2470 Location: Padova, Italy
|
Posted: Wed Apr 18, 2007 7:07 am Post subject: |
|
|
canduc17 wrote: | E allora, anch'io che ho seguito la guida cosa ho sbagliato?! |
In /etc/conf.d/distccd specifichi in 2 punti diversi --allow. Specificalo una volta sola, e assicurati di utilizzare la classe di indirizzi corretti:
(nel tuo caso, per non complicarti la vita)
Code: |
DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.1.0/24"
|
Code: |
distcc-config --get-hosts
|
cosa restituisce?
canduc17 wrote: | Perchè cambiare CHOST, quando ho già fatto un wrapper per gestire l'AMD64? |
Con un CHOST=136 non puoi utilizzare le ultime versioni stabili di glibc (tanto per dirne una), e avendo un processore molto recente non vedo il motivo di utilizzare una sottoarchitettura "obsoleta".
canduc17 wrote: | In base a che cosa gentoo decide il CHOST di una macchina quando viene installato per la prima volta??? |
Probabilmente hai effettuato l'installazione da uno stage3 x86 (mannaggia al giorno che li hanno resi disponibili nei mirror.... ) _________________ I was born in a deep forest/I wish I could live here all my life/I am made from stones and roots/My home, these woods and roads
All my life I loved this sound/Of the woods all around/Eagles flies where the winds blows free
Journey is my destiny |
|
Back to top |
|
|
|