最近用yocto的時候碰到一個問題,有一些IP的FW binary是從别的地方直接拿來的,沒有source code,有一個需求就是需要把它用wks script的方式把它們打包到最後的image裡,這篇文章就是來談談這個問題。
yocto patch/deploy等做了什麼
首先,雖然我們的code,bbfile,或者說patch,是用git repo的形式clone下來的,但是實際上yocto的工作目錄是在
build
,或者說的更詳細一點,是在
build/tmp/work
下的各級目錄,說的再直白一點,如果你把檔案直接放在source目錄,想用傳統的copy的方式把檔案從source code目錄copy到deploy目錄,是很難辦到的,就算你辦到了,也已經脫離開了yocto的工作流程。
把binary或者檔案添加到deploy目錄的方法
正如上面我們說到的,我們要用Yocto自帶的工作流程來處理這些檔案。
在bb檔案中添加do_deploy task
SRC_URI:append:riscv64 = " \
......
file://ddr/a_bin \
......
"
do_deploy:append() {
install -d -m 755 ${DEPLOYDIR}/ddr
install -D -m 755 ${S}/../ddr/a_bin ${DEPLOYDIR}/ddr/
}
因為這裡我們用到的component已經有了
do_deploy</