13

Tôi có một môi trường OpenEmbedded sử dụng bitbake để thực hiện một số bản dựng. Tôi muốn nhận được một cái gì đó "tương tác" xảy ra, nơi bitbake sẽ tạm dừng và yêu cầu đầu vào sau đó tiếp tục với việc xây dựng nhưng tôi đã phát hiện ra điều đó là không thể.Có thể truyền các biến dòng lệnh vào một bản dựng bitbake không?

Vì tôi không thể làm điều đó, tôi đang tìm kiếm một số cách để vượt qua các cờ bổ sung cho bản dựng. Có cách nào để vượt qua cờ vào một loại bitbake xây dựng giống như tùy chọn -D của gcc không?

ví dụ:

bitbake -Dfoo=bar oe-myimage 

Như vậy trong quá trình xây dựng của oe-myimage biến foo sẽ được thiết lập để bar.

Trả lời

2

Không, tôi không tin cơ chế như vậy tồn tại. Nhưng bạn có thể làm điều gì đó như

"echo "foo = \"bar\"" >local.conf 

Bạn không chắc chắn sẽ giải quyết được sự cố cụ thể của bạn hay không. Ngoài ra, có một cơ chế cho các biến toàn cục: nếu bạn có tệp 'site.conf' trong thư mục chính của mình dưới một thư mục có tên .oe, bitbake sẽ đọc và áp dụng các biến đó cho môi trường toàn cục cho mỗi bản dựng. Có lẽ điều đó sẽ giúp ích? Bạn đã không xác định chính xác vấn đề bạn đang cố gắng giải quyết, có thể có những cách tốt hơn.

14
bitbake -Dfoo=bar oe-myimage 

-D cờ không được bitbake công nhận. Vì vậy, sử dụng phương pháp trên sẽ không hoạt động. Thay vào đó, bạn có thể chỉ định cờ từ dòng lệnh bằng cách sử dụng các bước sau -

Giả sử bạn muốn xuất biến foo và mong đợi nó được bitbake nhận ra.

export foo="foobar" 

Bạn sẽ cần xuất thông tin này và thông báo bitbake qua biến BB_ENV_EXTRAWHITE sau khi tìm nguồn cung cấp oe-init-build-env. Điều này có nghĩa là

. oe-init-build-env 
export foo="foobar" 
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE foo"  

Biến whitelists này 'foo' cho bitbake và do đó hiển thị mọi công thức và quy trình con trong quá trình xây dựng.

Sau này, bạn có thể gọi bất kỳ hoạt động bitbake sử dụng foo biến trong bitbake qua biểu như -

${foo} 
4

bạn có thể làm:

export foo="bar" 
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE foo" 
bitbake oe-myimage 
3

Trong khi không có gì sai với câu trả lời khác bitbake làm là chấp nhận một đối số --đăng ký dưới dạng tài liệu here. Điều đó có nghĩa là bạn có thể viết nhiều biến bitbake như bạn muốn một số tệp cấu hình tạm thời và đọc nó sau bitbake.conf bằng cách chỉ định tên của tệp trên dòng lệnh. Ví dụ:

bitbake --read=./extra.conf 

Cá nhân tôi thấy điều này thuận tiện hơn so với xử lý các biến môi trường.

Các vấn đề liên quan