Browse Source

[adding] qemu emulation layout to test images with qemu

pull/112/head
Jacen 5 years ago
committed by XECDesign
parent
commit
26fcf59f3f
8 changed files with 48 additions and 6 deletions
  1. +4
    -0
      README.md
  2. +8
    -4
      build.sh
  3. +4
    -2
      export-image/04-finalise/01-run.sh
  4. +20
    -0
      stage2/01-sys-tweaks/01-run.sh
  5. +3
    -0
      stage2/01-sys-tweaks/files/90-qemu.rules
  6. +3
    -0
      stage2/EXPORT_IMAGE
  7. +3
    -0
      stage4/EXPORT_IMAGE
  8. +3
    -0
      stage5/EXPORT_IMAGE

+ 4
- 0
README.md View File

@ -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:

+ 8
- 4
build.sh View File

@ -119,6 +119,7 @@ if [ "$(id -u)" != "0" ]; then
exit 1
fi
if [ -f config ]; then
source config
fi
@ -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)"
@ -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

+ 4
- 2
export-image/04-finalise/01-run.sh View File

@ -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~

+ 20
- 0
stage2/01-sys-tweaks/01-run.sh View File

@ -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

+ 3
- 0
stage2/01-sys-tweaks/files/90-qemu.rules View File

@ -0,0 +1,3 @@
KERNEL=="sda", SYMLINK+="mmcblk0"
KERNEL=="sda?", SYMLINK+="mmcblk0p%n"
KERNEL=="sda2", SYMLINK+="root"

+ 3
- 0
stage2/EXPORT_IMAGE View File

@ -1 +1,4 @@
IMG_SUFFIX="-lite"
if [ "${USE_QEMU}" = "1" ]; then
export IMG_SUFFIX="${IMG_SUFFIX}-qemu"
fi

+ 3
- 0
stage4/EXPORT_IMAGE View File

@ -1 +1,4 @@
IMG_SUFFIX="-4GB"
if [ "${USE_QEMU}" = "1" ]; then
export IMG_SUFFIX="${IMG_SUFFIX}-qemu"
fi

+ 3
- 0
stage5/EXPORT_IMAGE View File

@ -1 +1,4 @@
IMG_SUFFIX=""
if [ "${USE_QEMU}" = "1" ]; then
export IMG_SUFFIX="${IMG_SUFFIX}-qemu"
fi

Loading…
Cancel
Save