2016-11-21 15 views
5

У меня есть каталог с бинарными (т.е. не скомпилированными) файлами и просто хочу, чтобы они были установлены в мой целевой файл root система.Как написать рецепт yocto/bitbake для копирования каталога в корневую файловую систему targe

Я рассмотрел несколько статей, ни одна из которых, похоже, не работает для меня.

Желаемая функциональность этого рецепта:

myRecipe/MYFILES/-> myRootFs/реж/в/установить

Моя текущая попытка:

SRC_URI += "file://myDir" 

do_install() { 
     install -d ${D}/path/to/dir/on/fs 
     install -m ${WORKDIR}/myDir ${D}/path/to/dir/on/fs 
} 

я не могу жалуйтесь на документацию Yocto в целом, это действительно хорошо! Просто не могу найти пример чего-то подобного!

+0

Для хорошего примера этого см psplash_git.bb -> do_install_append – Stephano

+0

Изменить эту строку «установить -m $ {WORKDIR}/Mydir $ {D}/путь/к/реж/о/фс "to" install -m $ {WORKDIR}/myDir/* $ {D}/path/to/dir/on/fs " –

ответ

6

Вам просто нужно скопировать эти файлы в целевые rootfs. Не забывайте обманывать их, если они не установлены в стандартных местах.

SRC_URI += "file://myDir" 

do_install() { 
    install -d ${D}/path/to/dir/on/fs 
    cp -r ${WORKDIR}/myDir ${D}/path/to/dir/on/fs 
} 
FILES_${PN} += "/path/to/dir/on/fs" 
+0

Кажется, что копирует каталог, но ни один из файлов или других каталогов внутри него. Я предполагаю, что я должен указать все это явно. Есть ли разумный и быстрый способ сделать это? –

+0

Конечно. Именно поэтому я использовал 'cp -r' для рекурсивной копии. –

+0

Я использовал cp -r, он копирует каталог «myDir» в FS, но не содержит его содержимого ... –

0

Для папки рецепт, как это:

. 
├── files 
│   ├── a.txt 
│   ├── b.c 
│   └── Makefile 
└── myrecipe.bb 

Вы можете использовать следующий рецепт, чтобы установить его на определенную папку в вашей корневой файловой системы:

SRC_URI = " file://*" 
do_install() { 
    install -d ${WORKDIR}/my/dir/on/rootfs 
    install -m 0755 ${S}/* ${WORKDIR}/my/dir/on/rootfs/* 
} 
FILES_${PN} = "/my/dir/on/rootfs/* " 
0

Я думаю, что это не так работа для вас, потому что вы забыли добавить значение режима после «install -m»,

см. man page of install command : https://linux.die.net/man/1/install

install -m [mode] src destination 

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

  • Нет связанных вопросов^_^