This service is available only in Japanese-language.
お世話になります。
自分で作成したシェルスクリプトをRaspberry pi CM3+起動時に自動実行したいと考えています。参考にしたのはこちら<https://qiita.com/tefunamu/items/e54bb9881aa11c26354e>です。
ただ、出来上がったイメージの中を確認すると当該シェルスクリプトは所定の位置(/etc/init.d)に置かれているは確認できましたが、自動実行のための登録(/etc/rc*.d)にはシンボリックリンクがない、といった状況です。
おそらく、"update-rc.d.bbclass"に対する指示がうまくできていないのだと思われます。
そこで、本件の参考となるレシピや気を付けなければいけない点などありましたらご教示いただきたく。
yakuhito
2019/12/26 (木) 18:14
現在調査しています
https://www.yoctoproject.org/docs/3.0/dev-manual/dev-manual.html#new-rec...
を参考に、meta-skeleton/recipes-skeleton/service に対するbbappendを作成して確認しておりますが、/etc/rc?.d/
以下へのシンボリックリンクは未生成となっています。
他に設定が無いか探しておりますが、回答は年明けとなってしまいます。
s.yamaguchi
2019/12/27 (金) 08:41
了解しました。
ひとまずはターゲット上で update_rc.d を手動で叩くことでしのぐこととします。
s.yamaguchi
2020/1/23 (木) 19:45
解決しました。
本件、根本的な作りが良くなかったようです。
--------
DESCRIPTION = "AutoExecScript.sh install"
SUMMARY = ""
SECTION = "ORIGIN"
LICENSE = "CLOSED"
PR = "r0"
LIC_FILES_CHKSUM = "file:///${COMMON_LICENSE_DIR}/eCos-2.0;md5=8c3ea41d02fa9c9253c692351e5940e7"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
inherit autotools update-rc.d
RDEPENDS_${PN} = "initscripts"
SRC_URI += " \
file://AutoExecScript.sh \
"
INITSCRIPT_PACKAGES = "autoexecscript"
INITSCRIPT_NAME_autoexecscript = "AutoExecScript.sh"
INITSCRIPT_PARAMS_autoexecscript = "defaults 90"
do_compile() {
:
}
pkg_postinst_ontarget_${PN}() {
:
}
do_install() {
install -d ${D}${sysconfdir}/init.d
install -m 0755 "${WORKDIR}/AutoExecScript.sh" "${D}${sysconfdir}/init.d/AutoExecScript.sh"
bbnote "autoexecscript.bb : do_install is complite."
}
PACKAGES = "autoexecscript"
FILES_${PN} += "${sysconfdir}/init.d/AutoExecScript.sh"
--------
スクリプトを置くだけなので、コンパイルなどは行わないのではじめは以下のような感じで書いておりました。
do_compile() {
}
何もしないことを明示(: の記述を)してなかったため、以降無視されているような状況でした。あとは PACKAGES の名称を用いて IMAGE_INSTALL_append で指定すれば問題なく /etc/rc?.d/ にもシンボリックリンクが作成されました。