Valkertown Home

2006-09-06-distcc-tol-awards-y-me-la-board

\documentclass{multicategorypost}

\begin{post}

\begin{rant}

Dejo esta peqe\~na nota desde el live-cd de korora xgl y mi antigua board, para recordarme por siempre este d\'ia. En el cual por "arreglar" el problema con la tarjeta de sonido me ** la *** board que tanto me gustaba, dejandome sin mis lvm del serial ata y por tanto sin sistema con que trabajar.

Como me urge tener la m\'aquina a sacrificar m\'as plata del viaje a Italia -_-

\end{rant}

\begin{new}

Hoy descubri que estoy nominado como el blog m\'as \~no\~no de la TOL.

[The

TOL AWARDS 2006](http://tolawards.blogspot.com/)

Voten por mi XD

\end{new}

\begin{log}

Bueno ahora tengo como pasatiempo compilar gcc,glibc,binutils, kernel y hacer linux from sratch para las nuevas plataformas de desarrollo que los nuevos proyectos exigen.

Como este pasatiempo es sumamente divertido y variado, decid\'i hacerme un favor y configurar en mis maquinitas el distcc para hacerlo un poco menos divertido.

Esto no es nuevo de hecho ya lo hab\'ia hecho antes pero me di cuenta que no tenia en log y me toco buscar en la documentaci\'on nuevamente, para evitar futuros inconvenientes:

Distcc es un programa que permite distribuir la carga de la compilaci\'on en diferentes computadores a traves de la red.

Slack ya tiene instalado el distcc por lo que me importa poco esta parte y sin embargo, es poco relevante.

La configuraci\'on se realiza por m\'aquina que va a recibir pedazos de la compilaci\'on.

\begin{code}

`

/usr/bin/distccd -daemon -user nobody -a 192.168.1.0/24 -log-file /var/log/distccd.log

`

\end{code}

Se pueden recibir compilaciones de toda una subred o de un cliente en especial, me interesa una subred para poder compilar desde diferentes terminales.

Esa es toda la "configuraci\'on" necesaria para cada m\'aquina que va a recibir tareas.

Por otra parte si se trata de cross-compilers, como en mi caso, debe estar disponible el kit completo en cada m\'aquina que va a realizar compilaci\'on.

En la m\'aquina principal de compilaci\'on la tarea es:

\begin{code}

`

export CC=distcc

export DISTCC_HOSTS="host1 host2 … hostn"

alias make='make -jn*3+1 # donde n es el n\'umero de m\'aquinas disponibles

`

\end{code}

Luego de esto, la mayoria de compilaciones con y sin autotools funcionan en el "farm", sin embargo a veces toca editar los Makefiles y/o otros scripts de compilaci\'on para asegurarse que hace uso del "farm".

Algo que me toco hacer para asegurarme que make siempre usara todo el farm:

\begin{code}

`

mv make make_orig

make:

!/bin/sh

/usr/bin/make_orig -j(n3+1) $

EOF

chmod 755 make

`

\end{code}

Es sucio, se ve feo, pero funciona.

Si se trata de cross-compile, o si no se trata de gcc, se llama distcc seguido del nombre del compilador que se va a usar.

Por si no se noto al principio: Odio tener que compilar la herramientas b\'asicas del sistema y odio a\'un m\'as cuando tengo que hacer linux from scratch, pero me persigue…

\end{log}

\end{post}

comments powered by Disqus

© 2008-2012 Carlos A. Perilla deepspawn at valkertown dot org | Based on original design by Andreas Viklund