bitbakeレシピでudevルールを書く

bitbakeレシピでudevルールを書く

bitbakeレシピを作成して、yoctoにエントリをコンパイルしてインストールできます。特定のデバイスが接続されたら、私のコードを実行したいと思います。

bitbakeレシピからudevルールを追加するエレガントな方法はありますか?そのようなことをするのはecho "<my udev rule>" >> /etc/udev/rules.d/90-local.rules良い計画ではないようです。

ベストアンサー1

私が理解したところによると、OSをビルドするときにルールを作成し、それをrootfsに常駐させたいと思います。これが正しい場合は、レシピを追加する必要があります。以下のディレクトリにルールを保存してくださいdistro/meta-myproject/recipes-core/rfs-myproject/rfs-myproject/*myrule.rule*。その後、rfs-myprojectフォルダ内の1レベル上のrfs-myproject_1.0.0.bbファイルが必要です。

SUMMARY = "MyProject Additional files"
LICENSE = "CLOSED"
PR = "r1"    

SRC_URI = "file://my-rule1.rules file://my-rule2.rules \
           file://startup.sh file://rc.local "    

do_install[nostamp] = "1"
do_unpack[nostamp] = "1"    

do_install () {
    echo "my-project install task invoked"    

    install -m 0755 ${WORKDIR}/startup.sh         ${D}/home/root/startup.sh
    install -m 0777 ${WORKDIR}/rc.local           ${D}${sysconfdir}/rc.d/rc.local
    install -m 0666 ${WORKDIR}/my-rule1.rules     ${D}/etc/udev/rules.d/my-rule1.rules
    install -m 0666 ${WORKDIR}/my-rule2.rules     ${D}/etc/udev/rules.d/my-rule2.rules
    
}    

FILES_${PN} += " ${sysconfdir}/rc.local"
FILES_${PN} += " /home/root/startup.sh"
FILES_${PN} += " /etc/udev/rules.d/my-rule1.rules"
FILES_${PN} += " /etc/udev/rules.d/my-rule2.rules"    

PACKAGES = "${PN}"
PROVIDES = "rfs-my-project"

これがあなたの質問に答えることを願っています。さらに支援が必要な場合はお知らせください。

ああ、そうです。 local.confにmy-projectを含めることを忘れないでください。

おすすめ記事