DM: VMcfg: mrb-env-setup.sh

Script that setup envriment on MRB platform, for UOS with build-in
configuration
For example, you need to run  mrb-env-setup.sh once, to
prepare images, networks and pci-stubs, etc,.

Tracked-On: #1528
Acked-by: Yin Fengwei <fengwei.yin@intel.com>
Signed-off-by: Tao Yuhong <yuhong.tao@intel.com>
This commit is contained in:
yuhong.tao@intel.com 2018-08-28 21:07:23 +08:00 committed by wenlingz
parent d2ed9955fd
commit 321021ebaf
3 changed files with 55 additions and 1 deletions

View File

@ -202,7 +202,7 @@ $(DM_OBJDIR)/%.o: %.c $(HEADERS)
[ ! -e $@ ] && mkdir -p $(dir $@); \ [ ! -e $@ ] && mkdir -p $(dir $@); \
$(CC) $(CFLAGS) -c $< -o $@ $(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 -D --mode=0755 $(DM_OBJDIR)/$(PROGRAM) $(DESTDIR)/usr/bin/$(PROGRAM)
install-samples-nuc: $(SAMPLES_NUC) install-samples-nuc: $(SAMPLES_NUC)
@ -216,3 +216,6 @@ install-samples-mrb: $(SAMPLES_MRB)
install-bios: $(BIOS_BIN) install-bios: $(BIOS_BIN)
install -d $(DESTDIR)/usr/share/acrn/bios install -d $(DESTDIR)/usr/share/acrn/bios
install -D --mode=0664 -t $(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)

View File

@ -1,3 +1,9 @@
BASEDIR ?= .. BASEDIR ?= ..
include $(BASEDIR)/vmcfg/scripts/kconfig/kconfig.mk 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

View File

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