2013-01-23 34 views
6

Bạn có ý tưởng nào về cách xây dựng một dự án oe với biên dịch bitbake phân tán không? Tôi đã nghĩ về distcc.Biên dịch phân tán với bitbake

export PATH=~/distcc/bin:$PATH 
make -jn CC=linux-gcc 

thực hiện sẽ gọi linux-gcc từ đường dẫn của tôi trỏ đến distcc.
distcc sẽ lên lịch các tác vụ cho tất cả các máy chủ đã biết.
-jn sẽ tạo ra các trường hợp thực hiện n6.
Nó hoạt động tốt.
Nhưng bây giờ tôi muốn sử dụng distcc với bitbake.
Tôi biết cách sử dụng -jn với bitbake.
Chỉ cần sử dụng export PARALLEL_MAKE=-jn

Nhưng cách sử dụng xuất PATH=~/distcc/bin:$PATH với bitbake.
distcc/bin PHẢI đứng trước $PATH.
Nhưng bitbake sẽ đặt $PATH_prepend (được đặt trong org.openembedded.dev/conf/bitbake.conf) ở phía trước của $PATH.

Hoặc ai đó có công cụ khác để xây dựng phân phối tốt hơn với bitbake?

+0

lệnh xuất khẩu sẽ thêm con đường trao cho biến $ PATH và sẽ tích cực trong phiên . Nhưng tôi không rõ ràng về vấn đề của bạn. Xin hãy giải thích vấn đề của bạn –

+0

Vấn đề là tôi chỉ biết cách sử dụng PARALLEL_MAKE, nhưng khi nói đến bitbake, người gọi cuối cùng, tôi không biết làm thế nào để cấu hình nó hoạt động theo cách PARALLEL_MAKE. – butter

Trả lời

1

Cách bitBake-ish một chút để gọi các bản dựng song song là chỉnh sửa local.conf và bỏ chú thích BB_NUMBER_THREADS và PARALLEL_MAKE và đặt giá trị của chúng gấp đôi số lõi bạn có. Bây giờ, bất cứ khi nào bạn gọi BitBake, nó sẽ sử dụng các giá trị này.

+0

Tôi đã thử BB_NUMBER_THREADS cách, nhưng nó không có một cải tiến tuyệt vời trong máy duy nhất.Seem rằng hệ điều hành đã giới hạn các chủ đề làm cho – butter

11

Hãy thử Icecream: https://github.com/icecc/icecream/blob/master/README.md

Giống như distcc, Icecream mất biên dịch việc làm từ một xây dựng và phân phối nó trong số các máy từ xa cho phép xây dựng song song. Nhưng không giống như distcc, Icecream sử dụng một máy chủ trung tâm tự động lên lịch các công việc biên dịch tới máy chủ miễn phí nhanh nhất.

Cả hỗ trợ dự án OpenEmbedded và Yocto Icecream. Xem https://git.yoctoproject.org/cgit.cgi/poky/plain/meta/classes/icecc.bbclass

Install Icecream, sau đó thêm dòng sau vào bạn site.conf hoặc local.conf

INHERIT += "icecc" 

# This value overrides PARALLEL_MAKE when ICECC is enabled 
# This would enable icecc for local and cross 
ICECC_PARALLEL_MAKE = "-j 24" 
Các vấn đề liên quan