2016-10-07 16 views
0

나의 목표는 Bitbake 레시피를 만들고,/etc 디렉토리에 설정 파일을 설치하며, 스크립트는이 설정을 /ect/init.d 디렉토리에 적용하고 update -rc-d). 나는 비슷한 질문 (Bitbake not installing my file in the rootfs image)을 이미 보았습니다. 나는이 사람이 한 일을 거의 정확히 수행했지만, 불행히도 그 일을하지 못했습니다. 문제는 Bitbake가 아무런 불평을하지 않고 rootfs에 이러한 파일을 추가하지 않는다는 것입니다. 여기 내 현재 제조법이 있습니다. 필자는 스크립트와 설정 파일을 파일과 alsa-config라는 두 개의 디렉토리에 저장했다.Bitbake가 내 rootfs에 내 파일을 설치하지 않는다.

CORE_IMAGE_EXTRA_INSTALL += "alsa-config " 

, 누군가가 도움이 될 수 있습니다하십시오 : 내 local.conf에서

SUMMARY = "Alsa Config" 
DESCRIPTION = "Adds alsa configuration file, and startup script that applies it." 

LICENSE = "MIT" 
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" 

SRC_URI += " \ 
      file://my-alsa-config \ 
      file://asound.state \ 
" 

PACKAGE_ARCH = "${MACHINE_ARCH}" 

S = "${WORKDIR}" 

INITSCRIPT_NAME = "my-alsa-config" 
INITSCRIPT_PARAMS = "defaults 99 01" 

inherit autotools update-rc.d 

do_install() { 
install -m 0644 ${WORKDIR}/asound.state ${D}${sysconfdir} 
} 

FILES_${PN} += "${sysconfdir}/asound.state" 

나는 라인을 추가?

+0

'(do_install()'에) init 스크립트도 함께 설치해야합니다. – jku

+0

힌트를 가져 주셔서 감사합니다! 그것은 내가 문제를 해결할 수있는 몇 가지 일을하게했다 : – Staszek

답변

0

다행히도 문제를 해결할 수있었습니다. 코멘트

SUMMARY = "Alsa Config" 
DESCRIPTION = "Adds alsa configuration file, and startup script that applies it." 

LICENSE = "MIT" 
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" 

SRC_URI += " \ 
      file://my-alsa-config \ 
      file://asound.state \ 
" 
PACKAGE_ARCH = "${MACHINE_ARCH}" 

S = "${WORKDIR}" 

INITSCRIPT_NAME = "my-alsa-config" 
INITSCRIPT_PARAMS = "defaults 99 01" 

inherit autotools update-rc.d 

do_install() { 
install -d ${D}${sysconfdir}/init.d/ 
install -m 0755 ${WORKDIR}/my-alsa-config ${D}${sysconfdir}/init.d/ 
install -m 0644 ${WORKDIR}/asound.state ${D}${sysconfdir}/ 
} 

FILES_${PN} += "${sysconfdir}/asound.state \ 
       ${sysconfdir}/my-alsa-config" 

조금 :

  1. PACKAGE_ARCH가 제대로 설정해야합니다 여기에 솔루션입니다. 필자의 경우에는 스크립트 파일에 대한 실행 권한이 설정되지 않았습니다.
  2. do_install()은 필요한 모든 디렉토리를 만들어야합니다. 비록 내가 알았더라도, 내 rootfs에/etc 디렉토리가있을 것이고, 나는 그것을 만들어야 만한다. 그리고 필요한지 확실하지 않지만 설치 디렉토리의 끝에 슬래시를 넣는 것이 좋습니다.
  3. 시작시 실행되도록 설치되는 초기화 스크립트도 설치해야합니다.)
  4. 스크립트에는 적절한 권한이 설정되어 있어야합니다.
+0

'PACKAGE_ARCH'는이 문제와 관련이 없어야하고 슬래시는 필요하지 않으며'$ {sysconfdir}'은 기본적으로'FILES _ $ {PN}'에 패키지되어있다. 따라서 추가가 필요하지 않습니다. –

+0

음, 아마도 PACKAGE_ARCH는 관련이 없지만 그렇지 않습니다. 이 라인은 작업을 시작하기 전에 추가 된 마지막 라인입니다. 그것 없이는 init 스크립트의 실행 권한이 부족한 것을 제외하고는 모든 것이 정상이었다. 내일 나머지를 확인합니다. – Staszek