core-image-base.bb 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. # Multistrap Root Filesystem Creation
  2. #
  3. # Copyright (C) 2015-2016 ilbers GmbH
  4. inherit zynq-image
  5. DESCRIPTION = "Multistrap Root Filesystem"
  6. LICENSE = "gpl-2.0"
  7. LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
  8. SRC_URI = "\
  9. file://hooks/completion_chroot.sh \
  10. file://multistrap.conf \
  11. file://setup.sh \
  12. file://configscript.sh \
  13. file://LICENSE \
  14. "
  15. DEPENDS += "hello"
  16. PV = "1.0"
  17. S = "${WORKDIR}"
  18. do_rootfs() {
  19. # Copy config files
  20. install -d ${WORKDIR}/rootfs
  21. install -d ${WORKDIR}/hooks
  22. install -m 644 ${THISDIR}/${PN}/multistrap.conf ${WORKDIR}
  23. install -m 755 ${THISDIR}/${PN}/setup.sh ${WORKDIR}
  24. install -m 755 ${THISDIR}/${PN}/configscript.sh ${WORKDIR}
  25. install -m 755 ${THISDIR}/${PN}/hooks/* ${WORKDIR}/hooks
  26. # If volume is mounted
  27. if mount |grep rootfs; then
  28. sudo umount ${WORKDIR}/rootfs
  29. fi
  30. # Create ext4 img
  31. dd if=/dev/zero of=${WORKDIR}/deb_rootfs.ext4 bs=1M count=800
  32. /sbin/mkfs.ext4 -F ${WORKDIR}/deb_rootfs.ext4
  33. sudo mount -o loop,rw ${WORKDIR}/deb_rootfs.ext4 ${WORKDIR}/rootfs
  34. # Create rootfs
  35. sudo multistrap -a armhf -d "${WORKDIR}/rootfs" -f "${WORKDIR}/multistrap.conf"
  36. # TODO: Integrate Debian package building
  37. sudo install ${WORKDIR}/../devroot/deploy/* ${WORKDIR}/rootfs/usr/local/bin
  38. # Stash away stuff for qemu
  39. mkdir -p ${BUILDDIR}/tmp/deploy/images
  40. # The shell doesn't seem to support braces
  41. cp ${WORKDIR}/rootfs/boot/vmlinuz* \
  42. ${WORKDIR}/rootfs/boot/initrd.img* \
  43. ${WORKDIR}/rootfs/usr/lib/linux-image*/vexpress*ca9*.dtb \
  44. ${WORKDIR}/rootfs/usr/lib/linux-image*/vexpress*ca15*.dtb \
  45. ${BUILDDIR}/tmp/deploy/images
  46. sudo umount ${WORKDIR}/rootfs
  47. }
  48. addtask image before do_build
  49. addtask rootfs before do_image
  50. addtask populate before do_rootfs
  51. do_populate() {
  52. echo "Populate 3-rd party packets in deploy directory"
  53. }
  54. do_build[deptask] = "do_build"
  55. do_populate[deptask] = "do_install"