##// END OF EJS Templates
Added: Initial QEMU emulation support
drtyhlpr -
r259:a940fc511d48
parent child
Show More
@@ -87,6 +87,12 if [ "$BUILD_KERNEL" = true ] ; then
87 87 # Load default raspberry kernel configuration
88 88 make -C "${KERNEL_DIR}" ARCH="${KERNEL_ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" "${KERNEL_DEFCONFIG}"
89 89
90 # Set kernel configuration parameters to enable qemu emulation
91 if [ "$ENABLE_QEMU" = true ] ; then
92 echo "CONFIG_FHANDLE=y" >> ${KERNEL_DIR}/.config
93 echo "CONFIG_LBDAF=y" >> ${KERNEL_DIR}/.config
94 fi
95
90 96 # Copy custom kernel configuration file
91 97 if [ ! -z "$KERNELSRC_USRCONFIG" ] ; then
92 98 cp $KERNELSRC_USRCONFIG ${KERNEL_DIR}/.config
@@ -169,6 +169,7 ENABLE_RSYSLOG=${ENABLE_RSYSLOG:=true}
169 169 ENABLE_USER=${ENABLE_USER:=true}
170 170 USER_NAME=${USER_NAME:="pi"}
171 171 ENABLE_ROOT=${ENABLE_ROOT:=false}
172 ENABLE_QEMU=${ENABLE_QEMU:=false}
172 173
173 174 # SSH settings
174 175 SSH_ENABLE_ROOT=${SSH_ENABLE_ROOT:=false}
@@ -313,7 +314,7 fi
313 314 # Add cryptsetup package to enable filesystem encryption
314 315 if [ "$ENABLE_CRYPTFS" = true ] && [ "$BUILD_KERNEL" = true ] ; then
315 316 REQUIRED_PACKAGES="${REQUIRED_PACKAGES} cryptsetup"
316 APT_INCLUDES="${APT_INCLUDES},cryptsetup,console-setup"
317 APT_INCLUDES="${APT_INCLUDES},cryptsetup,busybox,console-setup"
317 318
318 319 if [ -z "$CRYPTFS_PASSWORD" ] ; then
319 320 echo "error: no password defined (CRYPTFS_PASSWORD)!"
@@ -516,6 +517,12 if [ "$KERNEL_REDUCE" = true ] ; then
516 517 KERNELSRC_CONFIG=false
517 518 fi
518 519
520 # Configure qemu compatible kernel
521 if [ "$ENABLE_QEMU" = true ] ; then
522 KERNEL_DEFCONFIG="vexpress_defconfig"
523 KERNEL_OLDDEFCONFIG=true
524 fi
525
519 526 # Execute bootstrap scripts
520 527 for SCRIPT in bootstrap.d/*.sh; do
521 528 head -n 3 "$SCRIPT"
@@ -582,6 +589,36 rm -f "${R}/initrd.img"
582 589 rm -f "${R}/vmlinuz"
583 590 rm -f "${R}${QEMU_BINARY}"
584 591
592 if [ "$ENABLE_QEMU" = true ] ; then
593 # Setup QEMU directory
594 mkdir "${BASEDIR}/qemu"
595
596 # Copy kernel image to QEMU directory
597 install_readonly "${BOOT_DIR}/${KERNEL_IMAGE}" "${BASEDIR}/qemu/${KERNEL_IMAGE}"
598
599 # Copy kernel config to QEMU directory
600 install_readonly "${R}/boot/config-${KERNEL_VERSION}" "${BASEDIR}/qemu/config-${KERNEL_VERSION}"
601
602 # Copy kernel dtbs to QEMU directory
603 for dtb in "${BOOT_DIR}/"*.dtb ; do
604 if [ -f "${dtb}" ] ; then
605 install_readonly "${dtb}" "${BASEDIR}/qemu/"
606 fi
607 done
608
609 # Copy kernel overlays to QEMU directory
610 if [ -d "${BOOT_DIR}/overlays" ] ; then
611 # Setup overlays dtbs directory
612 mkdir "${BASEDIR}/qemu/overlays"
613
614 for dtb in "${BOOT_DIR}/overlays/"*.dtb ; do
615 if [ -f "${dtb}" ] ; then
616 install_readonly "${dtb}" "${BASEDIR}/qemu/overlays/"
617 fi
618 done
619 fi
620 fi
621
585 622 # Calculate size of the chroot directory in KB
586 623 CHROOT_SIZE=$(expr `du -s "${R}" | awk '{ print $1 }'`)
587 624
@@ -690,4 +727,15 else
690 727
691 728 # Image was successfully created
692 729 echo "$IMAGE_NAME.img ($(expr \( ${TABLE_SECTORS} + ${FRMW_SECTORS} + ${ROOT_SECTORS} \) \* 512 \/ 1024 \/ 1024)M)" ": successfully created"
730
731 # Create qemu qcow2 image
732 if [ "$ENABLE_QEMU" = true ] ; then
733 QEMU_IMAGE=${QEMU_IMAGE:=${BASEDIR}/qemu/${DATE}-${KERNEL_ARCH}-CURRENT-rpi${RPI_MODEL}-${RELEASE}-${RELEASE_ARCH}}
734 QEMU_SIZE=16G
735
736 qemu-img convert -f raw -O qcow2 $IMAGE_NAME.img $QEMU_IMAGE.qcow2
737 qemu-img resize $QEMU_IMAGE.qcow2 $QEMU_SIZE
738
739 echo "$QEMU_IMAGE.qcow2 ($QEMU_SIZE)" ": successfully created"
740 fi
693 741 fi
General Comments 0
Vous devez vous connecter pour laisser un commentaire. Se connecter maintenant