User Tools

Site Tools


distcc

ccache + distcc + crosscompile

distccd 설정

외부 머신에서의 분산빌드 요청을 수락하기 위해 /etc/default/distcc 설정

STARTDISTCC="true"
ALLOWEDNETS="127.0.0.1 192.168.10.0/24"
LISTENER="192.168.10.1"
NICE="10"

크로스 컴파일시 크로스 컴파일러의 경로를 추가해 주어야 함 /etc/init.d/distcc 수정

...
PATH=...:/ExtApps/toolchain/arm-2009q1/bin
...

분산빌드를 시작하는 peer는 distccd 데몬을 시작할 필요 없음

분산 빌드를 시작 하는 주 머신

/home/suapapa/.distcc/hosts 파일에 다음과 같이 접속할 host 나열

localhost 192.168.10.2

또는 DISTCC_HOSTS로 익스포트

DISTCC_HOSTS="192.168.10.2/3 localhost/2 another_serv/n"

distcc서버들이 살아있나 검사

#!/usr/bin/python
 
from socket import *
def isDistccSrvOK(addr, port = 3632):
    try:
        sok = socket(AF_INET, SOCK_STREAM)
        sok.connect((addr, port))
    except:
        return False
    sok.close()
    return True
 
if __name__ == '__main__':
    import sys
    print isDistccSrvOK(sys.argv[1])

빌드

다음과 같이 alias 설정

alias arm_make='nice -n 20 make ARCH=arm CROSS_COMPILE="ccache arm-none-eabi-" -j 3 '
alias arm_dist6_make='nice -n 20 make ARCH=arm CROSS_COMPILE="ccache distcc arm-none-eabi-" -j 6 '

references

distcc.txt · Last modified: 2013/08/03 05:04 (external edit)