我正在尝试编写一个简单的 bitbake 配方,它将一些脚本安装到目标根文件系统中。我一定遗漏了一些东西,因为我觉得我设置正确,但我不断收到一条错误消息:
ERROR: Function failed: do_install (see /home/mike/ULF/ulf/build-ulf/out/work/armv7ahf-vfp-neon-linux-gnueabihf/ttt/1.0-r0/temp/log.do_install.493 for further information)
ERROR: Logfile of failure stored in: /home/mike/ULF/ulf/build-ulf/out/work/armv7ahf-vfp-neon-linux-gnueabihf/ttt/1.0-r0/temp/log.do_install.493
Log data follows:
| DEBUG: Executing shell function do_install
| install: cannot stat `uim2svc.sh': No such file or directory
| ERROR: Function failed: do_install (see /home/mike/ULF/ulf/build-ulf/out/work/armv7ahf-vfp-neon-linux-gnueabihf/ttt/1.0-r0/temp/log.do_install.493 for further information)
ERROR: Task 2 (/home/mike/ULF/ulf/oe-ghmi/recipes/images/ttt.bb, do_install) failed with exit code '1'
现在我已经阅读了local-file-fetcher 上的 bitbake 文档,它说:
该子模块处理以 file:// 开头的 URL。您在 URL 中指定的文件名可以是文件的绝对路径或相对路径。如果文件名是相对的,则 FILESPATH 变量的内容的使用方式与使用 PATH 查找可执行文件的方式相同。
所以我的文件名在我的本地目录中,SRC_URI
脚本在本地files
目录中,并且我已经检查了构建的输出并且路径指向我的脚本目录......那为什么我仍然会收到这个错误?有人对我可能做错的事情有想法吗?
这是我完整的 bitbake 食谱(ttt.bb):
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
SRC_URI = "file://uim2svc.sh"
do_install() {
install -d ${IMAGE_ROOTFS}/etc
install -d -m 0755 ${IMAGE_ROOTFS}/etc/init.d
install -m 0755 uim2svc.sh ${IMAGE_ROOTFS}/etc/init.d/
}
这是显示文件位置的树(从 /home/mike/ULF/ulf 开始):
oe-ghmi/
├── classes
├── conf
├── recipes
│ └── images
│ ├── files
│ │ └── uim2svc.sh
│ ├── global-hmi-image.bb
│ ├── ttt.bb
以及来自的(截断)输出bitbake -e ttt
:
FILESPATH="...:/home/mike/ULF/ulf/oe-ghmi/recipes/images/files/armv7a:/home/mike/ULF/ulf/oe-ghmi/recipes/images/files/ghmi: /主页/mike/ULF/ulf/oe-ghmi/recipes/images/files/ "