diff --git a/devicemodel/Makefile b/devicemodel/Makefile index bff24fbbb..6e946cb7a 100644 --- a/devicemodel/Makefile +++ b/devicemodel/Makefile @@ -202,7 +202,7 @@ $(DM_OBJDIR)/%.o: %.c $(HEADERS) [ ! -e $@ ] && mkdir -p $(dir $@); \ $(CC) $(CFLAGS) -c $< -o $@ -install: $(DM_OBJDIR)/$(PROGRAM) install-samples-nuc install-samples-mrb install-bios +install: $(DM_OBJDIR)/$(PROGRAM) install-samples-nuc install-samples-mrb install-bios install-vmcfg install -D --mode=0755 $(DM_OBJDIR)/$(PROGRAM) $(DESTDIR)/usr/bin/$(PROGRAM) install-samples-nuc: $(SAMPLES_NUC) @@ -216,3 +216,6 @@ install-samples-mrb: $(SAMPLES_MRB) install-bios: $(BIOS_BIN) install -d $(DESTDIR)/usr/share/acrn/bios install -D --mode=0664 -t $(DESTDIR)/usr/share/acrn/bios $^ + +install-vmcfg: + make -C $(BASEDIR)/vmcfg install DESTDIR=$(DESTDIR) BASEDIR=$(BASEDIR) diff --git a/devicemodel/vmcfg/Makefile b/devicemodel/vmcfg/Makefile index 097f9fa69..df323d225 100644 --- a/devicemodel/vmcfg/Makefile +++ b/devicemodel/vmcfg/Makefile @@ -1,3 +1,9 @@ BASEDIR ?= .. include $(BASEDIR)/vmcfg/scripts/kconfig/kconfig.mk + +all: + +install: + install -d $(DESTDIR)/usr/share/acrn/samples/apl-mrb + install -t $(DESTDIR)/usr/share/acrn/samples/apl-mrb $(BASEDIR)/vmcfg/apl-mrb/mrb-env-setup.sh diff --git a/devicemodel/vmcfg/apl-mrb/mrb-env-setup.sh b/devicemodel/vmcfg/apl-mrb/mrb-env-setup.sh new file mode 100755 index 000000000..6725c3bc0 --- /dev/null +++ b/devicemodel/vmcfg/apl-mrb/mrb-env-setup.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +if [ ! -b "/dev/mmcblk1p3" ]; then + echo "no /dev/mmcblk1p3 data partition, exit" + exit +fi + +mkdir -p /data +mount /dev/mmcblk1p3 /data + +if [ ! -f "/data/android/android.img" ]; then + echo "no /data/android/android.img, exit" + exit +fi + +# create a unique tap device for each VM +tap=tap_AaaG +tap_exist=$(ip a | grep acrn_"$tap" | awk '{print $1}') +if [ "$tap_exist"x != "x" ]; then + echo "tap device existed, reuse acrn_$tap" +else + ip tuntap add dev acrn_$tap mode tap +fi + +# if acrn-br0 exists, add VM's unique tap device under it +br_exist=$(ip a | grep acrn-br0 | awk '{print $1}') +if [ "$br_exist"x != "x" -a "$tap_exist"x = "x" ]; then + echo "acrn-br0 bridge aleady exists, adding new tap device to it..." + ip link set acrn_"$tap" master acrn-br0 + ip link set dev acrn_"$tap" down + ip link set dev acrn_"$tap" up +fi + +modprobe pci_stub + +# offline SOS CPUs except BSP before launch UOS +for i in `ls -d /sys/devices/system/cpu/cpu[1-99]`; do + online=`cat $i/online` + idx=`echo $i | tr -cd "[1-99]"` + echo cpu$idx online=$online + if [ "$online" = "1" ]; then + echo 0 > $i/online + echo $idx > /sys/class/vhm/acrn_vhm/offline_cpu + fi +done