2016-04-06 4 views
2

У меня есть проект, который использует yocto для создания библиотек, включая gstreamer. Я узнал, что мне нужно исправить некоторые GStreamer элемент, таким образом, создавая новый рецепт Bitbake с патчем ..yocto: rebuild часть проекта

я обычно должен работать BitBake с именем изображения в качестве параметра, который будет перестраивать всю Yocto (что довольно долго):

MACHINE=some_machine nice bitbake yocto-etc-etc 

Как восстановить только ту часть, которая мне нужна, а не целая йокто? Я слышал о devtool, но я не уверен, как это использовать.

+0

Кэш sstate будет выполнять задачу по выбору, которую нужно перестроить, а какой нет. Так что это займет много времени. Если вы хотите узнать больше о devtool. Перейдите в devday.yocto.link, чтобы получить представление о дневной подготовке разработчика. –

ответ

3

Конечно, это легко сделать. Просто укажите рецепт, который Вы хотите построить вместо имени изображения, например, если это был главный рецепт GStreamer вы изменили (что, по крайней мере, в текущей версии называется gstreamer1.0):

MACHINE=some-machine bitbake gstreamer1.0 

Обратите внимание, что имя, ожидаемое в командной строке, всегда является именем рецепта или чем-то из PROVIDES в рецепте, а не именем пакета времени исполнения.

Что касается devtool, это, безусловно, может привести вас в среду, где вы можете легко внести изменения в источник для рецепта и создать патчи из них, но фактическая часть здания, которую мы обсуждаем здесь, на самом деле не меняется. Вы можете найти более подробную информацию о том, как использовать devtool в Yocto Project Development Manual

+0

Также я должен заметить, что в конечном итоге я использовал 'MACHINE = xx bitbake -c package_write_ipk', затем скопировал пакет и установил с помощью' ipkg install' - ну, я не уверен, действительно ли это работает, потому что я что-то испортил, но он выглядит умным в Меньше, я буду проверять его когда-нибудь. В любом случае спасибо за полезную информацию, вот как это делается правильно .. он отвечает на мой вопрос, как построить одну задачу. – nayana

+0

Обратите внимание, что это построение одного рецепта - «задача» - это что-то вроде do_compile или do_package_write_ipk, то есть только один из числа частей того, что требуется для выполнения для создания рецепта. – bluelightning

1

Вы также может

чистые: Удаляет все выходные файлы для цели cleanall: Удаляют все выходные файлы, общее состояние кэш, и загруженные исходные файлы цель, в зависимости от изменений.

bitbake -c clean task 
bitbake -c cleanall task 
+0

Мне всегда приходилось использовать rm -rf yocto/temp/stamps/target/module и то же самое для temp/work ..это делает это. Кстати, как это связано с моим вопросом? Я спросил о строительстве .. в любом случае спасибо за полезную информацию – nayana

+0

Извините, я забыл упомянуть, что вы очистили, как я написал, а затем заново заново заново –

4

Вы можете передать другую команду битбаке на основе того, что вам нужно.

Чтобы удалить температура:

bitbake -c clean gstreamer 

Чтобы удалить темп и sstate кэш (я использую этот самый):

bitbake -c cleansstate gstreamer 

Чтобы удалить загрузку, а также, и позволяет начать строить, начиная с do_fetch и все

bitbake -c cleanall gstreamer 

После того, как вы закончите с любым из этих чистых, которые когда-либо вам подходят, вы можете простыми giv e для команды:

bitbake gstreamer 
+0

спасибо за объяснение всех чистых типов. Иногда, когда я использую cleanall, пакет не удается построить .. то я должен удалить также файлы пакета в temp/work/*/package и temp/stamp/*/package .. только тогда он строит .. не уверен, почему (у меня нет ошибок под рукой). Кстати, вы есть typo s/remote/remove/.. – nayana

+0

Спасибо за указание опечатки, исправил его. –

Смежные вопросы