我可以通过创建一个 bitbake 配方在 yocto 上编译和安装东西。我想在连接特定设备时运行我的代码。
有没有一种优雅的方法可以从 bitbake 配方中添加 udev 规则?做类似的事情听起来echo "<my udev rule>" >> /etc/udev/rules.d/90-local.rules
不是一个好计划......
小智 7
据我所知,您希望在构建操作系统并将其驻留在 rootfs 中时创建规则。如果这是正确的,那么您需要为其添加配方。将您的规则存储在一个目录中,例如以下“distro/meta-myproject/recipes-core/rfs-myproject/rfs-myproject/ myrule.rule ”。然后,在 rfs-myproject 文件夹中上一层,您需要一个 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"
Run Code Online (Sandbox Code Playgroud)
希望这能回答您的问题,如果您需要进一步的帮助,请告诉我。
哦,是的,不要忘记在 local.conf 中包含 my-project