Raspberry Pi - Compile o kernel do Raspberry pi usando compilação distribuída

De Área31 Hackerspace
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

É possível compilar o kernel do Kankin Linux de forma distribuída.

Prepare o ambiente

Configure o arquivo de configuração do distccd conforme exemplo abaixo:

vi /etc/conf.d/distccd
DISTCCD_OPTS="-j2"

DISTCCD_EXEC="/usr/bin/distccd"

DISTCCD_PIDFILE="/var/run/distccd/distccd.pid"

DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632"

DISTCCD_OPTS="${DISTCCD_OPTS} --log-level critical"

DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.254.0/24"

DISTCCD_OPTS="${DISTCCD_OPTS} -N 15"


Obtenha o kernel

Obtenha o kernel oficial do raspberry pi foundation:

Instale o Kernel Linux e os modulos

A Fundação Raspberry Pi mantém uma árvore do kernel do Linux que pode ser executado no Raspberry Pi (hardware), incluindo uma versão pré-compilada que usamos aqui. siga os passos abaixo:

cd /tmp/
git clone --depth 1 git://github.com/raspberrypi/firmware/
cp firmware/boot/* /tmp/funtoo-raspberrypi/boot
cp -r firmware/modules /tmp/funtoo-raspberrypi/lib


Atualize para uma versão específica do kernel (opcional)

Para atualizar para um ramo em específico da árvore do kernel do projeto oficial do raspberry pi:

cd /opt
git clone --branch rpi-3.11.y  git://github.com/raspberrypi/linux.git


Compile o kernel

Configure o distccd

Exporte as variáveis do distcc:

export DISTCCD_OPTS="-j2"

export DISTCCD_EXEC="/usr/bin/distccd"

export DISTCCD_PIDFILE="/var/run/distccd/distccd.pid"

export DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632"

export DISTCCD_OPTS="${DISTCCD_OPTS} --log-level critical"

export DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.254.0/24"

export DISTCCD_OPTS="${DISTCCD_OPTS} -N 15"

Exporte as variáveis de definição dos nós do cluster:

export DISTCC_HOSTS="192.168.254.254" 

ou

export DISTCC_HOSTS="localhost 192.168.254.254"


Acesse o diretório do kernel que você obteve a partir do repositório oficial raspberry pi:

cd /usr/src/linux
nohup make CC="distcc gcc" -j4 > /root/nohup.make &

ou

CC="distcc armv6j-hardfloat-linux-gnueabi-gcc" nohup make -j2 > /root/nohup.make &

Instale o kernel

make install && make modules_install

Seja feliz! :D