2017-12-18 86 views
0

yocto로 커널 이미지에 initramfs.cpio를 넣는 데 어려움이 있습니다.yocto로 커널 이미지에 여분의 파일을 넣는 방법

나는 두 개의 bb 파일을 가지고 있는데, 하나는 initramfs를 만드는 데 사용되며, 다른 하나는 fitimage를 만드는 데 사용됩니다. initramfs 이미지와 함께 번들 된 이미지를 만드는 데 성공했습니다. 그러나 항상 fitImage의/usr 디렉토리에 initramfs.cpio.gz가있는 fitImage를 빌드하지 못했습니다. (내 fitImage를 콘솔로 부팅 할 때/usr에서 initramfs.cpio라는 파일을보고 싶음)

================ ========================================================================================================== 여기 =================================== ..

ERROR: linux-mine-1_4.9.27+gitAUTOINC+d87116e608-r0 do_package: QA Issue: linux-mine: Files/directories were installed but not shipped in any package: 
    /usr 
    /usr/initramfs-mine-qemu.cpio 
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install. 
linux-mine: 2 installed and not shipped files. [installed-vs-shipped] 
ERROR: linux-mine-1_4.9.27+gitAUTOINC+d87116e608-r0 do_package: Fatal QA errors found, failing task. 
ERROR: linux-mine-1_4.9.27+gitAUTOINC+d87116e608-r0 do_package: Function failed: do_package 
ERROR: Logfile of failure stored in: /home/paul/projects/Test/yocto/build/tmp/work/mine-poky-linux-gnueabi/linux-mine/1_4.9.27+gitAUTOINC+d87116e608-r0/temp/log.do_package.26149 
ERROR: Task (/home/paul/projects/Test/yocto/yocto-2.2/poky/../meta-mine/recipes-kernel/linux/linux-mine_4.9.bb:do_package) failed with exit code '1' 

내 오류 메시지가 있습니다 ================================= 은 여기 == 내 커널 이미지 BB 파일

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:" 

LINUX_VERSION ?= "4.9.27" 

SRCREV = "d87116e608e94ad684b5e94d46c892e33b9e2d78" 
SRC_URI = "git://local/kernel;protocol=ssh;branch=master" 

#FILES_${PN} += "/usr /usr/initramfs-mine-${MACHINE_ARCH}.cpio" 
#FILES_${PN}-${PV} += "/usr /usr/initramfs-mine-${MACHINE_ARCH}.cpio" 
#IMAGE_INSTALL = "initramfs-mine" 

do_install_append() { 
echo "WangPaul : S=[${S}]" 
echo "WangPaul : B=[${B}]" 
echo "WangPaul : D=[${D}]" 
install -d ${D}/usr/ 
install -m 0444 ${B}/usr/initramfs-mine-${MACHINE_ARCH}.cpio ${D}/usr/ 
} 

입니다 ========================== 여기 ========================== 은 ========== 내 다시 initramfs이

LICENSE = "GPLv2" 

PACKAGE_INSTALL = "initramfs-live-boot ${VIRTUAL-RUNTIME_base-utils} udev ${ROOTFS_BOOTSTRAP_INSTALL}" 
IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" 

inherit core-image 

파일 BB입니다 ========================================================================================================== ======== 내가 찾은 비슷한 질문 : Ship extra files in kernel module recipeAn example of using FILES_${PN}

방법 논의가 작동되지 않습니다 aboves에서 ...

모든 정보는 감사 할 것입니다! 감사합니다.

+0

준 당신이 acheive하려고 모르겠어요. [manual] (http://www.yoctoproject.org/docs/2.2/mega-manual/mega-manual.html#var-INITRAMFS_IMAGE) 여기를 보셨습니까? 필요한 경우 freenode에 #yocto에 가입하여 도움을받을 수 있습니다. – Nayfe

+0

안녕하세요 @Nayfe, 귀하의 정보를 ~~, 감사합니다 매뉴얼을 읽었습니다. 그리고 나는 휘도 이미지 묶음을 램 디스크로 만들 수 있습니다. 하지만 내가 원하는 것은 아닙니다. 나는 램 디스크를 번들링하지 않고 fitimage를 원한다. 내 장치에 플래시, 부팅, 마침내, 내/usr 디렉토리에 cpio 파일이 있습니다. – user3610309

+0

커널 이미지를 추가 했습니까? 파일 _ $ {PN} + = "/usr/initramfs-mine-${MACHINE_ARCH}.cpio" 이 정보가 도움이되는지 알려 주시면 답변을 게시 해 드리겠습니다. . –

답변

0

QA 문제는 소스가 컴파일되었지만 rootfs에 추가되지 않는다는 것을 의미합니다. kernel-image.bb에 아래 줄을 추가하십시오. 문제를 해결할 것입니다.

FILES_${PN} += "${exec_prefix}/*" 

참고 : kernel.bb 파일에있을 수 있습니다 당신은 잘못된 형식