diff --git a/.deb.conf b/.deb.conf new file mode 100644 index 000000000..9513d8368 --- /dev/null +++ b/.deb.conf @@ -0,0 +1,134 @@ +{ +"acrn.bin":{ + "source":"acrn-hypervisor/build/hypervisor/acrn.bin", + "target":"boot/" + }, +"acrnctl":{ + "source":"acrn-hypervisor/build/misc/services/acrnctl", + "target":"usr/bin/" + }, +"acrnd":{ + "source":"acrn-hypervisor/build/misc/services/acrnd", + "target":"usr/bin/" + }, +"acrn-dm":{ + "source":"acrn-hypervisor/build/devicemodel/acrn-dm", + "target":"usr/bin/" + }, +"acrnlog":{ + "source":"acrn-hypervisor/build/misc/debug_tools/acrnlog", + "target":"usr/bin/" + }, +"acrnprobe":{ + "source":"acrn-hypervisor/build/misc/debug_tools/acrn-crashlog/acrnprobe/bin/acrnprobe", + "target":"usr/bin/" + }, +"acrntrace":{ + "source":"acrn-hypervisor/build/misc/debug_tools/acrntrace", + "target":"usr/bin/" + }, +"crashlogctl":{ + "source":"acrn-hypervisor/misc/debug_tools/acrn_crashlog/data/crashlogctl", + "target":"usr/bin/" + }, +"debugger":{ + "source":"acrn-hypervisor/build/misc/debug_tools/acrn-crashlog/usercrash/bin/debugger", + "target":"usr/bin/" + }, +"usercrash-wrapper":{ + "source":"acrn-hypervisor/misc/debug_tools/acrn_crashlog/data/usercrash-wrapper", + "target":"usr/bin/" + }, +"acrn.32.out":{ + "source":"acrn-hypervisor/build/hypervisor/acrn.32.out", + "target":"boot/" + }, +"ACPI_VM0.bin":{ + "source":"acrn-hypervisor/build/hypervisor/acpi/ACPI_VM0.bin", + "target":"boot" + }, +"ACPI_VM1.bin":{ + "source":"acrn-hypervisor/build/hypervisor/acpi/ACPI_VM1.bin", + "target":"boot" + }, +"100-acrn-grub":{ + "source":"acrn-hypervisor/misc/packaging/100_ACRN", + "target":"etc/grub.d/" + }, +"50-acrn.netdev":{ + "source":"acrn-hypervisor/misc/packaging/50-acrn.netdev", + "target":"usr/lib/systemd/network" + }, +"50-acrn.network":{ + "source":"acrn-hypervisor/misc/packaging/50-acrn.network", + "target":"usr/lib/systemd/network" + }, +"50-eth.network":{ + "source":"acrn-hypervisor/misc/packaging/50-eth.network", + "target":"usr/lib/systemd/network" + }, +"50-tap0.netdev":{ + "source":"acrn-hypervisor/misc/packaging/50-tap0.netdev", + "target":"usr/lib/systemd/network" + }, +"acrnd.service":{ + "source":"acrn-hypervisor/build/misc/services/acrnd.service", + "target":"usr/lib/systemd/system" + }, +"acrnlog.service":{ + "source":"acrn-hypervisor/build/misc/debug_tools/acrnlog.service", + "target":"usr/lib/systemd/system" + }, +"acrnprobe.service":{ + "source":"acrn-hypervisor/misc/debug_tools/acrn_crashlog/data/acrnprobe.service", + "target":"usr/lib/systemd/system" + }, +"usercrash.service":{ + "source":"acrn-hypervisor/misc/debug_tools/acrn_crashlog/data/usercrash.service", + "target":"usr/lib/systemd/system" + }, +"libacrn-mngr.a":{ + "source":"acrn-hypervisor/build/misc/services/libacrn-mngr.a", + "target":"usr/lib64" + }, +"acrnprobe.xml":{ + "source":"acrn-hypervisor/misc/debug_tools/acrn_crashlog/data/acrnprobe.xml", + "target":"usr/share/defaults/telemetrics" + }, +"OVMF.fd":{ + "source":"acrn-hypervisor/devicemodel/bios/OVMF.fd", + "target":"usr/share/acrn/bios" + }, +"40-watchdog.conf":{ + "source":"acrn-hypervisor/misc/debug_tools/acrn_crashlog/data/40-watchdog.conf", + "target":"usr/share/acrn/crashlog" + }, +"80-coredump.conf":{ + "source":"acrn-hypervisor/misc/debug_tools/acrn_crashlog/data/80-coredump.conf", + "target":"usr/share/acrn/crashlog" + }, +"launch_hard_rt_vm.sh":{ + "source":"acrn-hypervisor/misc/config_tools/data/sample_launch_scripts/nuc/launch_hard_rt_vm.sh", + "target":"usr/share/acrn/samples/nuc" + }, +"launch_uos.sh":{ + "source":"acrn-hypervisor/misc/config_tools/data/sample_launch_scripts/nuc/launch_uos.sh", + "target":"usr/share/acrn/samples/nuc" + }, +"launch_vxworks.sh":{ + "source":"acrn-hypervisor/misc/config_tools/data/sample_launch_scripts/nuc/launch_vxworks.sh", + "target":"usr/share/acrn/samples/nuc" + }, +"launch_win.sh":{ + "source":"acrn-hypervisor/misc/config_tools/data/sample_launch_scripts/nuc/launch_win.sh", + "target":"usr/share/acrn/samples/nuc" + }, +"launch_xenomai.sh":{ + "source":"acrn-hypervisor/misc/config_tools/data/sample_launch_scripts/nuc/launch_xenomai.sh", + "target":"usr/share/acrn/samples/nuc" + }, +"launch_zephyr.sh":{ + "source":"acrn-hypervisor/misc/config_tools/data/sample_launch_scripts/nuc/launch_zephyr.sh", + "target":"usr/share/acrn/samples/nuc" + } +} diff --git a/Makefile b/Makefile index 6866fc478..271ceb930 100644 --- a/Makefile +++ b/Makefile @@ -83,6 +83,7 @@ ASL_COMPILER ?= $(shell which iasl) .PHONY: all hypervisor devicemodel tools life_mngr doc all: hypervisor devicemodel tools @cat $(HV_CFG_LOG) + @python3 misc/packaging/gen_acrn_deb.py acrn_all $(ROOT_OUT) --version=$(FULL_VERSION) --board_name=$(BOARD) --scenario=$(SCENARIO) #help functions to build acrn and install acrn/acrn symbols define build_acrn @@ -99,6 +100,8 @@ define install_acrn_debug endef HV_MAKEOPTS := -C $(T)/hypervisor BOARD=$(BOARD) SCENARIO=$(SCENARIO) HV_OBJDIR=$(HV_OUT) RELEASE=$(RELEASE) +board_inspector: + @python3 misc/packaging/gen_acrn_deb.py board_inspector $(ROOT_OUT) --version=$(FULL_VERSION) hypervisor: hvdefconfig $(MAKE) $(HV_MAKEOPTS) diff --git a/misc/config_tools/acpi_gen/bin_gen.py b/misc/config_tools/acpi_gen/bin_gen.py index 723082a34..8ff71feb1 100644 --- a/misc/config_tools/acpi_gen/bin_gen.py +++ b/misc/config_tools/acpi_gen/bin_gen.py @@ -12,7 +12,7 @@ sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', ' import lxml.etree from acpi_const import * import acpiparser.tpm2 -import lib.cdata +import inspectorlib.cdata import common def asl_to_aml(dest_vm_acpi_path, dest_vm_acpi_bin_path): @@ -91,9 +91,9 @@ def tpm2_acpi_gen(acpi_bin, board_etree, scenario_etree, allocation_etree): if common.get_node("//capability[@id = 'log_area']", board_etree) is not None: ctype_data.log_area_minimum_length = int(common.get_node("//log_area_minimum_length/text()", allocation_etree), 16) ctype_data.log_area_start_address = int(common.get_node("//log_area_start_address/text()", allocation_etree), 16) - ctype_data.header.checksum = (~(sum(lib.cdata.to_bytes(ctype_data))) + 1) & 0xFF + ctype_data.header.checksum = (~(sum(inspectorlib.cdata.to_bytes(ctype_data))) + 1) & 0xFF acpi_bin.seek(ACPI_TPM2_ADDR_OFFSET) - acpi_bin.write(lib.cdata.to_bytes(ctype_data)) + acpi_bin.write(inspectorlib.cdata.to_bytes(ctype_data)) else: logging.warning("Passtrhough tpm2 is enabled in scenario but the device is not presented on board.") logging.warning("Check there is tpm2 device on board and re-generate the xml using board inspector with --advanced option.") diff --git a/misc/config_tools/board_inspector/acpiparser/_utils.py b/misc/config_tools/board_inspector/acpiparser/_utils.py index 698f67d63..5712650f8 100644 --- a/misc/config_tools/board_inspector/acpiparser/_utils.py +++ b/misc/config_tools/board_inspector/acpiparser/_utils.py @@ -5,8 +5,8 @@ import ctypes -import lib.cdata as cdata -import lib.unpack as unpack +import inspectorlib.cdata as cdata +import inspectorlib.unpack as unpack class TableHeader(cdata.Struct): _pack_ = 1 diff --git a/misc/config_tools/board_inspector/acpiparser/apic.py b/misc/config_tools/board_inspector/acpiparser/apic.py index 4c6187885..0aa29d89e 100644 --- a/misc/config_tools/board_inspector/acpiparser/apic.py +++ b/misc/config_tools/board_inspector/acpiparser/apic.py @@ -6,8 +6,8 @@ import ctypes import copy -import lib.cdata as cdata -import lib.unpack as unpack +import inspectorlib.cdata as cdata +import inspectorlib.unpack as unpack from acpiparser._utils import TableHeader class APICSubtable(cdata.Struct): diff --git a/misc/config_tools/board_inspector/acpiparser/asf.py b/misc/config_tools/board_inspector/acpiparser/asf.py index cedcd80fb..265180012 100644 --- a/misc/config_tools/board_inspector/acpiparser/asf.py +++ b/misc/config_tools/board_inspector/acpiparser/asf.py @@ -6,7 +6,7 @@ import ctypes import copy -import lib.cdata as cdata +import inspectorlib.cdata as cdata from acpiparser._utils import TableHeader class ASFSubtable(cdata.Struct): diff --git a/misc/config_tools/board_inspector/acpiparser/dmar.py b/misc/config_tools/board_inspector/acpiparser/dmar.py index 7b841e196..57cd87c24 100644 --- a/misc/config_tools/board_inspector/acpiparser/dmar.py +++ b/misc/config_tools/board_inspector/acpiparser/dmar.py @@ -6,7 +6,7 @@ import ctypes import copy -import lib.cdata as cdata +import inspectorlib.cdata as cdata from acpiparser._utils import TableHeader class DMARSubtable(cdata.Struct): diff --git a/misc/config_tools/board_inspector/acpiparser/facp.py b/misc/config_tools/board_inspector/acpiparser/facp.py index 5ff64436d..da33f6333 100644 --- a/misc/config_tools/board_inspector/acpiparser/facp.py +++ b/misc/config_tools/board_inspector/acpiparser/facp.py @@ -6,8 +6,8 @@ import ctypes import copy -import lib.cdata as cdata -import lib.unpack as unpack +import inspectorlib.cdata as cdata +import inspectorlib.unpack as unpack from acpiparser._utils import TableHeader, GAS _preferred_pm_profile = { diff --git a/misc/config_tools/board_inspector/acpiparser/rdt.py b/misc/config_tools/board_inspector/acpiparser/rdt.py index bbedc78f6..a64787123 100644 --- a/misc/config_tools/board_inspector/acpiparser/rdt.py +++ b/misc/config_tools/board_inspector/acpiparser/rdt.py @@ -5,8 +5,8 @@ import ctypes -import lib.cdata as cdata -import lib.unpack as unpack +import inspectorlib.cdata as cdata +import inspectorlib.unpack as unpack # 6.4.2 Small Resource Data Type diff --git a/misc/config_tools/board_inspector/acpiparser/rtct.py b/misc/config_tools/board_inspector/acpiparser/rtct.py index 248d7e796..1f39168fd 100644 --- a/misc/config_tools/board_inspector/acpiparser/rtct.py +++ b/misc/config_tools/board_inspector/acpiparser/rtct.py @@ -6,7 +6,7 @@ import ctypes import copy -import lib.cdata as cdata +import inspectorlib.cdata as cdata from acpiparser._utils import TableHeader # Common structures diff --git a/misc/config_tools/board_inspector/acpiparser/tpm2.py b/misc/config_tools/board_inspector/acpiparser/tpm2.py index 1a1adc841..a85614365 100644 --- a/misc/config_tools/board_inspector/acpiparser/tpm2.py +++ b/misc/config_tools/board_inspector/acpiparser/tpm2.py @@ -6,7 +6,7 @@ import ctypes import logging -import lib.cdata as cdata +import inspectorlib.cdata as cdata from acpiparser._utils import TableHeader def tpm2_optional_data(data_len): diff --git a/misc/config_tools/board_inspector/lib/bitfields.py b/misc/config_tools/board_inspector/inspectorlib/bitfields.py similarity index 100% rename from misc/config_tools/board_inspector/lib/bitfields.py rename to misc/config_tools/board_inspector/inspectorlib/bitfields.py diff --git a/misc/config_tools/board_inspector/lib/cdata.py b/misc/config_tools/board_inspector/inspectorlib/cdata.py similarity index 100% rename from misc/config_tools/board_inspector/lib/cdata.py rename to misc/config_tools/board_inspector/inspectorlib/cdata.py diff --git a/misc/config_tools/board_inspector/lib/mmio.py b/misc/config_tools/board_inspector/inspectorlib/mmio.py similarity index 100% rename from misc/config_tools/board_inspector/lib/mmio.py rename to misc/config_tools/board_inspector/inspectorlib/mmio.py diff --git a/misc/config_tools/board_inspector/lib/unpack.py b/misc/config_tools/board_inspector/inspectorlib/unpack.py similarity index 100% rename from misc/config_tools/board_inspector/lib/unpack.py rename to misc/config_tools/board_inspector/inspectorlib/unpack.py diff --git a/misc/config_tools/board_inspector/pcieparser/caps.py b/misc/config_tools/board_inspector/pcieparser/caps.py index 258e8c70b..3f1206be1 100644 --- a/misc/config_tools/board_inspector/pcieparser/caps.py +++ b/misc/config_tools/board_inspector/pcieparser/caps.py @@ -5,7 +5,7 @@ import ctypes import copy -import lib.cdata as cdata +import inspectorlib.cdata as cdata class Capability: # Capability names from PCI Local Bus Specification and PCI Express Base Specification diff --git a/misc/config_tools/board_inspector/pcieparser/extcaps.py b/misc/config_tools/board_inspector/pcieparser/extcaps.py index d8b5eaa7e..e0f46fa1a 100644 --- a/misc/config_tools/board_inspector/pcieparser/extcaps.py +++ b/misc/config_tools/board_inspector/pcieparser/extcaps.py @@ -5,7 +5,7 @@ import ctypes import copy -import lib.cdata as cdata +import inspectorlib.cdata as cdata class ExtendedCapability: # Capability names from PCI Express Base Specification, mostly Table 9-23 diff --git a/misc/config_tools/board_inspector/pcieparser/header.py b/misc/config_tools/board_inspector/pcieparser/header.py index 34f7e45a4..6021aab59 100644 --- a/misc/config_tools/board_inspector/pcieparser/header.py +++ b/misc/config_tools/board_inspector/pcieparser/header.py @@ -5,7 +5,7 @@ import ctypes import copy -import lib.cdata as cdata +import inspectorlib.cdata as cdata class Common(cdata.Struct): _pack_ = 1 diff --git a/misc/config_tools/board_inspector/smbiosparser/smbios.py b/misc/config_tools/board_inspector/smbiosparser/smbios.py index dd3567f3e..b7303fb01 100644 --- a/misc/config_tools/board_inspector/smbiosparser/smbios.py +++ b/misc/config_tools/board_inspector/smbiosparser/smbios.py @@ -9,8 +9,8 @@ import sys import ctypes import struct import uuid -import lib.bitfields as bitfields -import lib.unpack as unpack +import inspectorlib.bitfields as bitfields +import inspectorlib.unpack as unpack class SMBIOS(unpack.Struct): def __new__(cls): diff --git a/misc/packaging/100_ACRN b/misc/packaging/100_ACRN new file mode 100755 index 000000000..fec40ed3d --- /dev/null +++ b/misc/packaging/100_ACRN @@ -0,0 +1,56 @@ +#!/bin/bash +#* Copyright (c) 2020 Intel Corporation All rights reserved. +# postinst script for acrn kernel +set -e + +if [ -f /usr/lib/grub/grub-mkconfig_lib ]; then + . /usr/lib/grub/grub-mkconfig_lib + LX=linux16 +elif [ -f /usr/lib/grub/update-grub_lib ]; then + . /usr/lib/grub/update-grub_lib + LX=linux +else + # no grub file, so we notify and exit gracefully + echo "Cannot find grub config file, exiting." >&2 + exit 0 +fi + +filename="/etc/grub.d/40_custom" +menu=$(grep ACRN_deb_multiboot2 ${filename}) || true + +type=$(lsblk -l |awk '$NF == "/" {print $1}') +pattern='^/dev/.* UUID="([^"]+)".* PARTUUID="([^"]+)"' +while IFS= read -r line; do + if [[ $line =~ $pattern ]]; then + uuid="${BASH_REMATCH[1]}" + partuuid="${BASH_REMATCH[2]}" + fi +done < <(blkid |grep ext4 |grep ${type}) + +if ls /boot/vmlinuz*acrn-sos* 1> /dev/null 2>&1;then + sos_kernel=$(ls -tr /boot/vmlinuz-*acrn-sos* | tail -1) +else + sos_kernel=$(ls /boot/vmlinuz-* | tail -1) +fi + +if [ -z "$menu" ];then +cat>"${filename}"< , ," +SCENARIO=(shared) -scenario_info=(industry hybrid logical_partition ) - -board_info=(nuc7i7dnb whl-ipc-i5 ) - -echo "Scenario is ->" - -scenario_num=${#scenario_info[@]} - -for ((i=0;i" -board_num=${#board_info[@]} - -for ((i=0;i" -echo $ACRNBIN - - -echo "disk type is ->" - -disk_info=(nvme sda) -disk_num=${#disk_info[@]} - -for ((i=0;i"${filename}"<"${filename}"<"${filename}"<"${filename}"<"${filename}"<