【发布时间】:2017-10-23 15:30:50
【问题描述】:
我有一个配方,应该将运行级别脚本复制到 /etc/init.d 并从 /etc/rc5 创建到它的符号链接但是 do_install 函数似乎没有被调用。
在我的层的结构之下。问题 bb 文件是树底部的 init-wifi.bb。带有 bbappends 的其他食谱工作正常。
.
├── conf
│ └── layer.conf
├── recipes-connectivity
│ ├── alsa
│ │ ├── alsa-lib
│ │ └── alsa-lib_1.0.29.bbappend
│ └── wpa-supplicant
│ ├── wpa-supplicant
│ │ ├── wpa_supplicant.conf
│ │ └── wpa_supplicant.conf-sane
│ └── wpa-supplicant_2.4.bbappend
├── recipes-core
│ ├── base-files
│ │ ├── base-files
│ │ │ └── profile
│ │ └── base-files_%.bbappend
│ └── init-ifupdown
│ ├── init-ifupdown-1.0
│ │ └── interfaces
│ └── init-ifupdown_1.0.bbappend
└── recipes-my
└── init-wifi
├── files
│ └── wifi_start.sh
└── init-wifi.bb
下面是 init-wifi.bb 配方:
SUMMARY = "x"
LICENSE = "CLOSED"
#PR = "r0"
SRC_URI += "file://wifi_start.sh"
#INITSCRIPT_NAME = "wifi_start.sh"
#INITSCRIPT_PARAMS = "defaults 90"
do_install() {
install -d ${D}${sysconfdir}/init.d
install -d ${D}${sysconfdir}/rcS.d
install -d ${D}${sysconfdir}/rc1.d
install -d ${D}${sysconfdir}/rc2.d
install -d ${D}${sysconfdir}/rc3.d
install -d ${D}${sysconfdir}/rc4.d
install -d ${D}${sysconfdir}/rc5.d
install -m 0755 ${WORKDIR}/wifi_start.sh ${D}${sysconfdir}/init.d/
ln -sf ${D}${syscondir}/init.d/wifi_start.sh {D}${sysconfdir}/rc5.d/S90wifi_start.sh
}
如果我在 do_install 函数之外向 bb 文件引入错误,我会在调用 bitbake 时收到错误,所以我知道我的配方文件正在被找到并被解析。但是,如果我在 do_install 函数中引入错误,则不会调用它。此外,我没有看到脚本被安装到工作或图像目录中(在删除故意调试错误之后)。
如果我强制 bitbake 使用“bitbake -c install init-wifi”运行配方,它将安装文件“work/image”目录:
tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/initwifi/0.0-r0/image/etc/init.d/wifi_start.sh
tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/initwifi/0.0-r0/wifi_start.sh
但是,当我的图像在我的模块上构建和安装时,脚本和链接不存在。
为此苦苦挣扎了几天,搜索也没有产生太大帮助。
有什么想法吗?
谢谢!
【问题讨论】: