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 폴더에서 한 수준 위로 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를 포함시키는 것을 잊지 마세요.

관련 정보