Skip to content

Commit

Permalink
[adding] qemu emulation layout to test images with qemu
Browse files Browse the repository at this point in the history
  • Loading branch information
jacen92 authored and XECDesign committed Sep 14, 2017
1 parent 496e415 commit 26fcf59
Show file tree
Hide file tree
Showing 8 changed files with 48 additions and 6 deletions.
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@ The following environment variables are supported:

Output directory for target system images and NOOBS bundles.

* `USE_QEMU` (Default: `"0"`)

This enable the Qemu mode and set filesystem and image suffix if set to 1.


A simple example for building Raspbian:

Expand Down
12 changes: 8 additions & 4 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ if [ "$(id -u)" != "0" ]; then
exit 1
fi


if [ -f config ]; then
source config
fi
Expand All @@ -128,6 +129,7 @@ if [ -z "${IMG_NAME}" ]; then
exit 1
fi

export USE_QEMU=${USE_QEMU:-0}
export IMG_DATE=${IMG_DATE:-"$(date +%Y-%m-%d)"}

export BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
Expand Down Expand Up @@ -177,10 +179,12 @@ for EXPORT_DIR in ${EXPORT_DIRS}; do
source "${EXPORT_DIR}/EXPORT_IMAGE"
EXPORT_ROOTFS_DIR=${WORK_DIR}/$(basename ${EXPORT_DIR})/rootfs
run_stage
if [ -e ${EXPORT_DIR}/EXPORT_NOOBS ]; then
source ${EXPORT_DIR}/EXPORT_NOOBS
STAGE_DIR=${BASE_DIR}/export-noobs
run_stage
if [ "${USE_QEMU}" != "1" ]; then
if [ -e ${EXPORT_DIR}/EXPORT_NOOBS ]; then
source ${EXPORT_DIR}/EXPORT_NOOBS
STAGE_DIR=${BASE_DIR}/export-noobs
run_stage
fi
fi
done

Expand Down
6 changes: 4 additions & 2 deletions export-image/04-finalise/01-run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@ fi
rm -f ${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache
rm -f ${ROOTFS_DIR}/usr/sbin/policy-rc.d
rm -f ${ROOTFS_DIR}/usr/bin/qemu-arm-static
if [ -e ${ROOTFS_DIR}/etc/ld.so.preload.disabled ]; then
mv ${ROOTFS_DIR}/etc/ld.so.preload.disabled ${ROOTFS_DIR}/etc/ld.so.preload
if [ "${USE_QEMU}" != "1" ]; then
if [ -e ${ROOTFS_DIR}/etc/ld.so.preload.disabled ]; then
mv ${ROOTFS_DIR}/etc/ld.so.preload.disabled ${ROOTFS_DIR}/etc/ld.so.preload
fi
fi

rm -f ${ROOTFS_DIR}/etc/apt/sources.list~
Expand Down
20 changes: 20 additions & 0 deletions stage2/01-sys-tweaks/01-run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,28 @@ systemctl disable nfs-common
systemctl disable rpcbind
systemctl disable ssh
systemctl enable regenerate_ssh_host_keys
EOF

if [ "${USE_QEMU}" = "1" ]; then
echo "enter QEMU mode"
install -m 644 files/90-qemu.rules ${ROOTFS_DIR}/etc/udev/rules.d/
if [ -e ${ROOTFS_DIR}/etc/ld.so.preload.disabled ]; then
rm ${ROOTFS_DIR}/etc/ld.so.preload.disabled
touch ${ROOTFS_DIR}/etc/ld.so.preload.disabled
fi
if [ -e ${ROOTFS_DIR}/etc/ld.so.preload ]; then
rm ${ROOTFS_DIR}/etc/ld.so.preload
touch ${ROOTFS_DIR}/etc/ld.so.preload
fi
on_chroot << EOF
systemctl disable resize2fs_once
EOF
echo "leaving QEMU mode"
else
on_chroot << EOF
systemctl enable resize2fs_once
EOF
fi

on_chroot << \EOF
for GRP in input spi i2c gpio; do
Expand Down
3 changes: 3 additions & 0 deletions stage2/01-sys-tweaks/files/90-qemu.rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
KERNEL=="sda", SYMLINK+="mmcblk0"
KERNEL=="sda?", SYMLINK+="mmcblk0p%n"
KERNEL=="sda2", SYMLINK+="root"
3 changes: 3 additions & 0 deletions stage2/EXPORT_IMAGE
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
IMG_SUFFIX="-lite"
if [ "${USE_QEMU}" = "1" ]; then
export IMG_SUFFIX="${IMG_SUFFIX}-qemu"
fi
3 changes: 3 additions & 0 deletions stage4/EXPORT_IMAGE
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
IMG_SUFFIX="-4GB"
if [ "${USE_QEMU}" = "1" ]; then
export IMG_SUFFIX="${IMG_SUFFIX}-qemu"
fi
3 changes: 3 additions & 0 deletions stage5/EXPORT_IMAGE
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
IMG_SUFFIX=""
if [ "${USE_QEMU}" = "1" ]; then
export IMG_SUFFIX="${IMG_SUFFIX}-qemu"
fi

0 comments on commit 26fcf59

Please sign in to comment.