mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-04-27 11:22:17 +00:00
Add debianization support
Add support to generate Debian packages. For details see debian/README. debian/changelog is manually intialized, ready to be updated by gbp dch command. Tracked-On: #6688 Signed-off-by: Helmut Buchsbaum <helmut.buchsbaum@opensource.tttech-industrial.com>
This commit is contained in:
parent
aa8d636507
commit
300a8b259d
76
debian/README
vendored
Normal file
76
debian/README
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
The Debian Package acrn-hypervisor
|
||||
----------------------------------
|
||||
|
||||
ACRN is a flexible, lightweight reference hypervisor, built with real-time and
|
||||
safety-criticality in mind, optimized to streamline embedded development through
|
||||
an open source platform.
|
||||
|
||||
The Debian source package ``acrn-hypervisor`` provides the
|
||||
following Debian packages:
|
||||
|
||||
* ``acrn-dev``: Public headers and libraries for ACRN manager.
|
||||
* ``acrn-devicemodel``: Device model for ACRN Hypervisor
|
||||
* ``acrn-doc``: Reference to ACRN Documentation
|
||||
* ``acrn-hypervisor``: ACRN Hypervisor for IoT
|
||||
* ``acrn-lifemngr``: ACRN life manager service
|
||||
* ``acrn-system``: metapackage to deploy a minimum of ACRN packages
|
||||
* ``acrn-tools``: Supplementary tools for ACRN Hypervisor
|
||||
* ``acrnd``: ACRN Hypervisor control daemon
|
||||
* ``grub-acrn``: Grub setup scripts for ACRN Hypervisor
|
||||
* ``python3-board-inspector``: Generate Board Configuration for ACRN
|
||||
|
||||
**Building**
|
||||
|
||||
The ``acrn-hypervisor`` source package uses ``git-buildpackage`` (``gbp``) for
|
||||
package building (see ``debian/gbp.conf``). For more information on ``gbp``
|
||||
refer to
|
||||
http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html.
|
||||
|
||||
**Special Package Properties**
|
||||
|
||||
* ``acrn-hypervisor``
|
||||
|
||||
This package contains multiple ACRN hypervisor binaries, with the final binary
|
||||
being chosen usually at install time via Debian's ``debconf`` mechanism. This
|
||||
allows you to choose the board as well as the respective scenario but still
|
||||
use the same Debian for varoius hardware platforms.
|
||||
To reconfigure the choice later, use
|
||||
|
||||
``dpkg-reconfigure acrn-hypervisor``
|
||||
|
||||
You also can preseed your choice by setting the respective ``debconf`` keys
|
||||
``acrn-hypervisor/board`` and ``acrn-hypervisor/scenario``, e.g. during
|
||||
image creation. Please refer to https://wiki.debian.org/debconf for details.
|
||||
|
||||
The ACRN hypervisor configurations are chosen as follows:
|
||||
All directories given in ``CONFIGDIRS`` in ``debian/rules`` are searched
|
||||
for valid board- and scenario-configuration files. The ``ACRN_BOARDLIST``
|
||||
and ``ACRN_SCENARIOLIST`` in debian/rules can be use to restrict the
|
||||
hypervisor/scenario configurations built into ``acrn-hypervisor``. If
|
||||
unset, all possible configurations found under the directories given are
|
||||
built.
|
||||
|
||||
* ``acrn-lifemngr``
|
||||
|
||||
To adapt the the needs of a Debian distribution the service file has been
|
||||
adapted and a start script wrapper added to automatically set up the
|
||||
parameters for User VMs or the Service VM.
|
||||
|
||||
* ``acrnd``
|
||||
|
||||
There is also an adapted variant for the systemd service file. As for
|
||||
``acrn-lifemngr`` this also is provided as part of the Debian packaging
|
||||
process rather than patching the files provided with the sources.
|
||||
|
||||
**General Remarks and Restrictions**
|
||||
|
||||
* ACRN >=2.6 needs a Linux 5.10 kernel with the respective Intel/ACRN patches
|
||||
applied.
|
||||
* The packages are built in debug mode to be able to access the HV console.
|
||||
This can be changed by setting the ``RELEASE`` variable in ``debian/rules``
|
||||
to 1.
|
||||
* The built configurations are restricted to the hardware platforms available
|
||||
for testing.
|
||||
|
||||
-- Helmut Buchsbaum <helmut.buchsbaum@opensource.tttech-industrial.com> Sat, 26 Nov 2022 20:45:00 +0100
|
||||
|
17
debian/acrn-board-inspector/acrn-board-inspector
vendored
Executable file
17
debian/acrn-board-inspector/acrn-board-inspector
vendored
Executable file
@ -0,0 +1,17 @@
|
||||
#!/bin/bash -e
|
||||
# wrapper to call board_inspector.py
|
||||
|
||||
modprobe msr
|
||||
IA32_FEATURE_CONTROL=0x3A
|
||||
|
||||
if [ "$(($(rdmsr ${IA32_FEATURE_CONTROL}) & 0x6))" = "0" ]; then
|
||||
echo "VMX is not enabled, update your BIOS settings" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f /sys/firmware/acpi/tables/DMAR ]; then
|
||||
echo "Cannot find ACPI DMAR table. Is VT-d enabled/supported?" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
python3 -m acrn_board_inspector.board_inspector "$@"
|
64
debian/acrn-board-inspector/setup.py
vendored
Normal file
64
debian/acrn-board-inspector/setup.py
vendored
Normal file
@ -0,0 +1,64 @@
|
||||
"""
|
||||
Out-of-tree setup.py for board-inspector and its associated libraries tweaked
|
||||
to perform the required actions at setup time.
|
||||
|
||||
This enables the usage of dh_python3 even in absence of an upstream setup.py.
|
||||
"""
|
||||
|
||||
import os
|
||||
from setuptools import find_namespace_packages
|
||||
from setuptools import setup
|
||||
|
||||
setup(
|
||||
name="acrn_board_inspector",
|
||||
version=os.environ["ACRNVERSION"],
|
||||
description="ACRN Board Inspector",
|
||||
long_description="acrn-board-inspector will collect all board related info to generate a board configuration file for ACRN.",
|
||||
url="https://projectacrn.org/",
|
||||
license="BSD-3-Clause",
|
||||
# add additional namespace acrn_board_inspector
|
||||
packages=[
|
||||
"acrn_board_inspector",
|
||||
"acrn_board_inspector.acpiparser",
|
||||
"acrn_board_inspector.acpiparser.aml",
|
||||
"acrn_board_inspector.cpuparser",
|
||||
"acrn_board_inspector.extractors",
|
||||
"acrn_board_inspector.inspectorlib",
|
||||
"acrn_board_inspector.legacy",
|
||||
"acrn_board_inspector.memmapparser",
|
||||
"acrn_board_inspector.pcieparser",
|
||||
"acrn_board_inspector.schema",
|
||||
"acrn_board_inspector.smbiosparser",
|
||||
],
|
||||
package_dir={
|
||||
"acrn_board_inspector": "../../misc/config_tools/board_inspector",
|
||||
"acrn_board_inspector.acpiparser": "../../misc/config_tools/board_inspector/acpiparser",
|
||||
"acrn_board_inspector.acpiparser.aml": "../../misc/config_tools/board_inspector/acpiparser/aml",
|
||||
"acrn_board_inspector.cpuparser": "../../misc/config_tools/board_inspector/cpuparser",
|
||||
"acrn_board_inspector.extractors": "../../misc/config_tools/board_inspector/extractors",
|
||||
"acrn_board_inspector.inspectorlib": "../../misc/config_tools/board_inspector/inspectorlib",
|
||||
"acrn_board_inspector.legacy": "../../misc/config_tools/board_inspector/legacy",
|
||||
"acrn_board_inspector.memmapparser": "../../misc/config_tools/board_inspector/memmapparser",
|
||||
"acrn_board_inspector.pcieparser": "../../misc/config_tools/board_inspector/pcieparser",
|
||||
"acrn_board_inspector.schema": "../../misc/config_tools/board_inspector/schema",
|
||||
"acrn_board_inspector.smbiosparser": "../../misc/config_tools/board_inspector/smbiosparser",
|
||||
},
|
||||
package_data={
|
||||
"acrn_board_inspector.schema": ["*", "checks/*"],
|
||||
},
|
||||
|
||||
# use namespace packages from board inspector
|
||||
#packages=find_namespace_packages(
|
||||
# where="../../misc/config_tools/board_inspector",
|
||||
#),
|
||||
#package_dir={"": "../../misc/config_tools/board_inspector"},
|
||||
## add the standalone board_inspector.py file
|
||||
#py_modules=["board_inspector"],
|
||||
|
||||
install_requires=[
|
||||
"lxml",
|
||||
"xmlschema"
|
||||
],
|
||||
# use wrapper script to call board_inspector.py
|
||||
scripts=["acrn-board-inspector"],
|
||||
)
|
2
debian/acrn-dev.install
vendored
Normal file
2
debian/acrn-dev.install
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
usr/lib/*/libacrn-mngr.a
|
||||
usr/include/acrn/
|
1
debian/acrn-dev.links
vendored
Normal file
1
debian/acrn-dev.links
vendored
Normal file
@ -0,0 +1 @@
|
||||
usr/share/doc/acrn/html usr/share/doc/acrn-dev/html
|
3
debian/acrn-devicemodel.install
vendored
Normal file
3
debian/acrn-devicemodel.install
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
usr/bin/acrn-dm
|
||||
usr/share/acrn/bios/
|
||||
usr/share/doc/acrn-devicemodel/samples/
|
1
debian/acrn-devicemodel.links
vendored
Normal file
1
debian/acrn-devicemodel.links
vendored
Normal file
@ -0,0 +1 @@
|
||||
usr/share/doc/acrn/html usr/share/doc/acrn-devicemodel/html
|
2
debian/acrn-devicemodel.lintian-overrides
vendored
Normal file
2
debian/acrn-devicemodel.lintian-overrides
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
# manpages are missing in upstream
|
||||
acrn-devicemodel: binary-without-manpage usr/bin/acrn-dm
|
1
debian/acrn-doc-index-html.in
vendored
Normal file
1
debian/acrn-doc-index-html.in
vendored
Normal file
@ -0,0 +1 @@
|
||||
<meta http-equiv="Refresh" content="0; url='https://projectacrn.github.io/@acrnversion@/'" />
|
10
debian/acrn-doc.doc-base
vendored
Normal file
10
debian/acrn-doc.doc-base
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
Document: acrn-doc-html
|
||||
Section: System/Administration
|
||||
Title: ACRN HTML documentation
|
||||
Abstract: ACRN interfaces, howtos and much more
|
||||
ACRN upstream provides much of its documentation in HTML form.
|
||||
This entry referes to the top-level index of the ACRN HTML docs.
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/acrn/html/index.html
|
||||
Files: /usr/share/doc/acrn/html
|
1
debian/acrn-doc.install
vendored
Normal file
1
debian/acrn-doc.install
vendored
Normal file
@ -0,0 +1 @@
|
||||
usr/share/doc/acrn/html/
|
1
debian/acrn-doc.links
vendored
Normal file
1
debian/acrn-doc.links
vendored
Normal file
@ -0,0 +1 @@
|
||||
usr/share/doc/acrn/html usr/share/doc/acrn-doc/html
|
13
debian/acrn-hypervisor.config
vendored
Normal file
13
debian/acrn-hypervisor.config
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Exit on error
|
||||
set -e
|
||||
|
||||
# Source debconf library.
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
# query board
|
||||
db_input critical acrn-hypervisor/board || true
|
||||
|
||||
# Show interface
|
||||
db_go || true
|
1
debian/acrn-hypervisor.install
vendored
Normal file
1
debian/acrn-hypervisor.install
vendored
Normal file
@ -0,0 +1 @@
|
||||
usr/lib/x86_64-linux-gnu/acrn/*
|
1
debian/acrn-hypervisor.links
vendored
Normal file
1
debian/acrn-hypervisor.links
vendored
Normal file
@ -0,0 +1 @@
|
||||
usr/share/doc/acrn/html usr/share/doc/acrn-hypervisor/html
|
67
debian/acrn-hypervisor.postinst.in
vendored
Normal file
67
debian/acrn-hypervisor.postinst.in
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
#!/bin/sh
|
||||
# postinst script for acrn-hypervisor
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
ACRNDIR=@acrndir@
|
||||
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
db_get acrn-hypervisor/board
|
||||
BOARD=${RET}
|
||||
|
||||
SCENARIOS=$(find ${ACRNDIR}/${BOARD} -maxdepth 1 -type d \
|
||||
| tail -n +2 | sed "s#${ACRNDIR}/${BOARD}/##" \
|
||||
| sort | awk '{s=s (s?OFS:x) $1} END {print s}' OFS=", ")
|
||||
|
||||
db_subst acrn-hypervisor/scenario scenariolist ${SCENARIOS}
|
||||
db_clear
|
||||
db_input critical acrn-hypervisor/scenario || true
|
||||
db_go || true
|
||||
|
||||
db_get acrn-hypervisor/scenario
|
||||
SCENARIO=${RET}
|
||||
|
||||
ACRNCFG="${ACRNDIR}/${BOARD}/${SCENARIO}/acrn.${BOARD}.${SCENARIO}.config"
|
||||
ACRNMAP="${ACRNDIR}/${BOARD}/${SCENARIO}/acrn.${BOARD}.${SCENARIO}.map"
|
||||
ACRNBIN="${ACRNDIR}/${BOARD}/${SCENARIO}/acrn.${BOARD}.${SCENARIO}.bin"
|
||||
ACRNACPI="${ACRNDIR}/${BOARD}/${SCENARIO}/acpi"
|
||||
ACRNETC="${ACRNDIR}/${BOARD}/${SCENARIO}/etc"
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
if [ -f ${ACRNCFG} ] && [ -f ${ACRNMAP} ] && [ -f ${ACRNBIN} ]; then
|
||||
cp ${ACRNCFG} /boot/acrn-@acrnversion@.config
|
||||
cp ${ACRNMAP} /boot/acrn-@acrnversion@.map
|
||||
cp ${ACRNBIN} /boot/acrn-@acrnversion@.bin
|
||||
if [ -d ${ACRNACPI} ]; then
|
||||
cp ${ACRNACPI}/ACPI_VM* /boot
|
||||
fi
|
||||
if [ -f ${ACRNETC}/serial.conf ]; then
|
||||
echo "# START - ACRN HYPERVISOR INSTALL" >> /etc/serial.conf
|
||||
cat ${ACRNETC}/serial.conf >> /etc/serial.conf
|
||||
echo "# END - ACRN HYPERVISOR INSTALL" >> /etc/serial.conf
|
||||
fi
|
||||
if command -v update-grub > /dev/null && [ -d /boot/grub ]; then
|
||||
update-grub || :
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
54
debian/acrn-hypervisor.postrm.in
vendored
Normal file
54
debian/acrn-hypervisor.postrm.in
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
#!/bin/sh
|
||||
# postrm script for acrn-hypervisor
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
rm_acrn()
|
||||
{
|
||||
rm -f /boot/acrn-@acrnversion@.config
|
||||
rm -f /boot/acrn-@acrnversion@.map
|
||||
rm -f /boot/acrn-@acrnversion@.bin
|
||||
rm -f /boot/ACPI_VM*
|
||||
}
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postrm> `remove'
|
||||
# * <postrm> `purge'
|
||||
# * <old-postrm> `upgrade' <new-version>
|
||||
# * <new-postrm> `failed-upgrade' <old-version>
|
||||
# * <new-postrm> `abort-install'
|
||||
# * <new-postrm> `abort-install' <old-version>
|
||||
# * <new-postrm> `abort-upgrade' <old-version>
|
||||
# * <disappearer's-postrm> `disappear' <overwriter>
|
||||
# <overwriter-version>
|
||||
# for details, see https://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
remove|purge)
|
||||
rm_acrn
|
||||
if command -v update-grub > /dev/null && [ -d /boot/grub ]; then
|
||||
update-grub || :
|
||||
fi
|
||||
;;
|
||||
upgrade)
|
||||
rm_acrn
|
||||
;;
|
||||
failed-upgrade|abort-install|abort-upgrade|disappear)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postrm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
53
debian/acrn-hypervisor.prerm.in
vendored
Normal file
53
debian/acrn-hypervisor.prerm.in
vendored
Normal file
@ -0,0 +1,53 @@
|
||||
#!/bin/sh
|
||||
# prerm script for acrn-hypervisor
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
rm_acrn()
|
||||
{
|
||||
rm -f /boot/acrn-@acrnversion@.config
|
||||
rm -f /boot/acrn-@acrnversion@.map
|
||||
rm -f /boot/acrn-@acrnversion@.bin
|
||||
rm -f /boot/ACPI_VM*
|
||||
if [ -f /etc/serial.conf ]; then
|
||||
sed '/ START - ACRN HYPERVISOR INSTALL/,/# END - ACRN HYPERVISOR INSTALL/{d}' /etc/serial.conf
|
||||
fi
|
||||
}
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <prerm> `remove'
|
||||
# * <old-prerm> `upgrade' <new-version>
|
||||
# * <new-prerm> `failed-upgrade' <old-version>
|
||||
# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
|
||||
# * <deconfigured's-prerm> `deconfigure' `in-favour'
|
||||
# <package-being-installed> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see https://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
deconfigure)
|
||||
rm_acrn
|
||||
if command -v update-grub > /dev/null && [ -d /boot/grub ]; then
|
||||
update-grub || :
|
||||
fi
|
||||
;;
|
||||
|
||||
remove|upgrade|failed-upgrade)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "prerm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
13
debian/acrn-hypervisor.templates.in
vendored
Normal file
13
debian/acrn-hypervisor.templates.in
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
Template: acrn-hypervisor/board
|
||||
Type: select
|
||||
Choices: @boardlist@
|
||||
Description: ACRN hypervisor board selection
|
||||
Define the board ACRN will be running on. Selecting the wrong board
|
||||
might render your board unusable!
|
||||
|
||||
Template: acrn-hypervisor/scenario
|
||||
Type: select
|
||||
Choices: ${scenariolist}
|
||||
Description: ACRN hypervisor scenario selection
|
||||
Define the appropriate VM configuration (aka scenario) for the ACRN
|
||||
hypervisor.
|
2
debian/acrn-lifemngr.install
vendored
Normal file
2
debian/acrn-lifemngr.install
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
usr/bin/acrn-lifemngr
|
||||
usr/share/acrn-lifemngr/*
|
1
debian/acrn-lifemngr.links
vendored
Normal file
1
debian/acrn-lifemngr.links
vendored
Normal file
@ -0,0 +1 @@
|
||||
usr/share/doc/acrn/html usr/share/doc/acrn-lifemngr/html
|
2
debian/acrn-lifemngr.lintian-overrides
vendored
Normal file
2
debian/acrn-lifemngr.lintian-overrides
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
# manpages are missing in upstream
|
||||
acrn-lifemngr: binary-without-manpage usr/bin/acrn-lifemngr
|
13
debian/acrn-lifemngr.service
vendored
Normal file
13
debian/acrn-lifemngr.service
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=ACRN lifemngr daemon
|
||||
After=systemd-resolved.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/share/acrn-lifemngr/start-acrn-lifemngr.sh
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
12
debian/acrn-tools.install
vendored
Normal file
12
debian/acrn-tools.install
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
usr/bin/acrnlog
|
||||
usr/bin/acrnprobe
|
||||
usr/bin/acrntrace
|
||||
usr/bin/crashlogctl
|
||||
usr/bin/debugger
|
||||
usr/bin/usercrash_c
|
||||
usr/bin/usercrash_s
|
||||
usr/bin/usercrash-wrapper
|
||||
usr/share/acrn/crashlog/*
|
||||
lib/systemd/system/acrnlog.service
|
||||
lib/systemd/system/acrnprobe.service
|
||||
lib/systemd/system/usercrash.service
|
1
debian/acrn-tools.links
vendored
Normal file
1
debian/acrn-tools.links
vendored
Normal file
@ -0,0 +1 @@
|
||||
usr/share/doc/acrn/html usr/share/doc/acrn-tools/html
|
9
debian/acrn-tools.lintian-overrides
vendored
Normal file
9
debian/acrn-tools.lintian-overrides
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
# manpages are missing in upstream
|
||||
acrn-tools: binary-without-manpage usr/bin/acrnlog
|
||||
acrn-tools: binary-without-manpage usr/bin/acrnprobe
|
||||
acrn-tools: binary-without-manpage usr/bin/acrntrace
|
||||
acrn-tools: binary-without-manpage usr/bin/crashlogctl
|
||||
acrn-tools: binary-without-manpage usr/bin/debugger
|
||||
acrn-tools: binary-without-manpage usr/bin/usercrash-wrapper
|
||||
acrn-tools: binary-without-manpage usr/bin/usercrash_c
|
||||
acrn-tools: binary-without-manpage usr/bin/usercrash_s
|
1
debian/acrnd.dirs
vendored
Normal file
1
debian/acrnd.dirs
vendored
Normal file
@ -0,0 +1 @@
|
||||
usr/share/acrn/conf/add/
|
3
debian/acrnd.install
vendored
Normal file
3
debian/acrnd.install
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
usr/bin/acrnd
|
||||
usr/bin/acrnctl
|
||||
usr/share/doc/acrnd/examples/
|
1
debian/acrnd.links
vendored
Normal file
1
debian/acrnd.links
vendored
Normal file
@ -0,0 +1 @@
|
||||
usr/share/doc/acrn/html usr/share/doc/acrnd/html
|
3
debian/acrnd.lintian-overrides
vendored
Normal file
3
debian/acrnd.lintian-overrides
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
# manpages are missing in upstream
|
||||
acrnd: binary-without-manpage usr/bin/acrnctl
|
||||
acrnd: binary-without-manpage usr/bin/acrnd
|
14
debian/acrnd.service
vendored
Normal file
14
debian/acrnd.service
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=ACRN manager deamon
|
||||
After=systemd-resolved.service
|
||||
ConditionPathExists=/sys/kernel/debug/gvt
|
||||
ConditionPathExists=/dev/acrn_hsm
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/acrnd -t
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
5
debian/changelog
vendored
Normal file
5
debian/changelog
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
acrn-hypervisor (3.0~0.gbpXXXXXX) UNRELEASED; urgency=medium
|
||||
|
||||
* Initial native packaging release for ACRN.
|
||||
|
||||
-- Helmut Buchsbaum <helmut.buchsbaum@opensource.tttech-industrial.com> Tue, 26 Apr 2022 10:18:30 +0200
|
1
debian/compat
vendored
Normal file
1
debian/compat
vendored
Normal file
@ -0,0 +1 @@
|
||||
11
|
151
debian/control
vendored
Normal file
151
debian/control
vendored
Normal file
@ -0,0 +1,151 @@
|
||||
Source: acrn-hypervisor
|
||||
Priority: optional
|
||||
Maintainer: Helmut Buchsbaum <helmut.buchsbaum@opensource.tttech-industrial.com>
|
||||
Section: admin
|
||||
Build-Depends:
|
||||
debhelper (>= 12),
|
||||
dh-python,
|
||||
python3,
|
||||
python3-setuptools,
|
||||
git,
|
||||
libssl-dev,
|
||||
libpciaccess-dev,
|
||||
libsystemd-dev,
|
||||
libevent-dev,
|
||||
libxml2-dev,
|
||||
libxml2-utils,
|
||||
libusb-1.0-0-dev,
|
||||
libblkid-dev,
|
||||
e2fslibs-dev,
|
||||
pkg-config,
|
||||
libnuma-dev,
|
||||
libsdl2-dev,
|
||||
libpixman-1-dev,
|
||||
liblz4-tool,
|
||||
linux-libc-dev (>= 4.20),
|
||||
libdrm-dev,
|
||||
libcjson-dev,
|
||||
flex,
|
||||
bison,
|
||||
xsltproc,
|
||||
clang-format,
|
||||
bc,
|
||||
acpica-tools (>= 20200326),
|
||||
python3-lxml,
|
||||
python3-defusedxml,
|
||||
python3-xmlschema
|
||||
Standards-Version: 4.3.0
|
||||
Homepage: https://projectacrn.org/
|
||||
Vcs-Browser: https://github.com/projectacrn/acrn-hypervisor
|
||||
Vcs-Git: https://github.com/projectacrn/acrn-hypervisor.git
|
||||
|
||||
Package: acrn-system
|
||||
Section: admin
|
||||
Architecture: amd64
|
||||
Depends:
|
||||
acrn-hypervisor,
|
||||
acrnd,
|
||||
${misc:Depends}
|
||||
Suggests: acrn-doc
|
||||
Description: ACRN System on AMD64 (metapackage)
|
||||
This package depends on the ACRN hypervisor for use on AMD64 and the
|
||||
its devicemodel utils.
|
||||
|
||||
Package: acrn-hypervisor
|
||||
Section: kernel
|
||||
Architecture: amd64
|
||||
Depends:
|
||||
${misc:Depends},
|
||||
grub-acrn,
|
||||
acrn-devicemodel,
|
||||
debconf (>=1.5.71)
|
||||
Suggests: acrn-doc
|
||||
Recommends: setserial
|
||||
Description: ACRN Hypervisor for IoT
|
||||
ACRN is an open source reference hypervisor, built to meet the unique
|
||||
needs of embedded IoT development.
|
||||
.
|
||||
In order to boot an ACRN system along with this package you also need a
|
||||
kernel specifically crafted to work as the Service OS. This build provides
|
||||
binaries for the given board/scenario configurations and installs the
|
||||
respective binary at install time controlled via environment variables.
|
||||
|
||||
Package: grub-acrn
|
||||
Section: admin
|
||||
Architecture: any-amd64
|
||||
Depends: ${misc:Depends}, grub-efi-amd64
|
||||
Description: Grub setup scripts for ACRN Hypervisor
|
||||
This package provides additional scripts to fit into the Grub bootloader config
|
||||
creation. It supports generating the respective Grub boot entries for an ACRN
|
||||
system.
|
||||
|
||||
Package: acrn-devicemodel
|
||||
Section: otherosfs
|
||||
Architecture: amd64
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, acpica-tools (>= 20200326)
|
||||
Suggests: acrn-doc
|
||||
Description: Devicemodel for ACRN Hypervisor
|
||||
ACRN is an open source reference hypervisor, built to meet the unique
|
||||
needs of embedded IoT development. This is the ACRN specific devicemodel for
|
||||
ACRN only.
|
||||
|
||||
Package: acrnd
|
||||
Architecture: amd64
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Suggests: acrn-doc
|
||||
Description: ACRN Hypervisor control daemon
|
||||
ACRN is an open source reference hypervisor, built to meet the unique
|
||||
needs of embedded IoT development. This is the ACRN daemon for hypervisor
|
||||
control.
|
||||
|
||||
Package: acrn-tools
|
||||
Architecture: amd64
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Suggests: acrn-doc
|
||||
Description: Supplementary tools for ACRN Hypervisor on AMD64
|
||||
ACRN is an open source reference hypervisor, built to meet the unique
|
||||
needs of embedded IoT development. These are ACRN specific additional
|
||||
tools meant for debug use only.
|
||||
|
||||
Package: acrn-dev
|
||||
Section: libdevel
|
||||
Architecture: amd64
|
||||
Depends: ${misc:Depends}
|
||||
Suggests: acrn-doc
|
||||
Description: Public headers and libs for ACRN
|
||||
ACRN is an open source reference hypervisor, built to meet the unique
|
||||
needs of embedded IoT development. This package contains the public
|
||||
headers and static libraries for ACRN.
|
||||
|
||||
Package: acrn-lifemngr
|
||||
Architecture: amd64
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Suggests: acrn-doc
|
||||
Description: ACRN life manager
|
||||
ACRN is an open source reference hypervisor, built to meet the unique
|
||||
needs of embedded IoT development. This package contains the helper
|
||||
service for Linux VMs to provide proper shutdown/suspend
|
||||
|
||||
Package: acrn-doc
|
||||
Section: doc
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}
|
||||
Description: ACRN Documentation
|
||||
ACRN is an open source reference hypervisor, built to meets the unique
|
||||
needs of embedded IoT development. This is the documentation for ACRN and
|
||||
its tools, how to install, configure and use.
|
||||
|
||||
Package: python3-acrn-board-inspector
|
||||
Section: admin
|
||||
Architecture: all
|
||||
Depends:
|
||||
cpuid,
|
||||
msr-tools,
|
||||
pciutils,
|
||||
dmidecode,
|
||||
${misc:Depends},
|
||||
${python3:Depends},
|
||||
Suggests: acrn-doc
|
||||
Description: Generate Board Configuration for ACRN
|
||||
This package collects all board related info to generate a board
|
||||
configuration file for ACRN.
|
38
debian/copyright
vendored
Normal file
38
debian/copyright
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: acrn-hypervisor
|
||||
Source: https://github.com/projectacrn/acrn-hypervisor
|
||||
|
||||
Files: *
|
||||
Copyright: 2017-2018, Project ACRN
|
||||
License: BSD-3-Clause
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2020 TTTech Industrial Automation AG
|
||||
2020 Helmut Buchsbaum <helmut.buchsbaum@opensource.tttech-industrial.com>
|
||||
License: BSD-3-Clause
|
||||
|
||||
License: BSD-3-Clause
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
.
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
.
|
||||
* Neither the name of the copyright holder nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
2
debian/docker/.dockerignore
vendored
Normal file
2
debian/docker/.dockerignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
run-docker-build.sh
|
||||
|
2
debian/gbp.conf
vendored
Normal file
2
debian/gbp.conf
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
[DEFAULT]
|
||||
debian-branch = master
|
2
debian/grub-acrn.install
vendored
Normal file
2
debian/grub-acrn.install
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
debian/grub/acrn.cfg etc/default/grub.d
|
||||
debian/grub/25_linux_acrn /etc/grub.d
|
29
debian/grub-acrn.postinst
vendored
Normal file
29
debian/grub-acrn.postinst
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
#!/bin/sh
|
||||
# postinst script for grub-acrn
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
if command -v update-grub > /dev/null && [ -d /boot/grub ]; then
|
||||
update-grub || :
|
||||
fi
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
42
debian/grub-acrn.postrm
vendored
Normal file
42
debian/grub-acrn.postrm
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
#!/bin/sh
|
||||
# postrm script for grub-acrn
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postrm> `remove'
|
||||
# * <postrm> `purge'
|
||||
# * <old-postrm> `upgrade' <new-version>
|
||||
# * <new-postrm> `failed-upgrade' <old-version>
|
||||
# * <new-postrm> `abort-install'
|
||||
# * <new-postrm> `abort-install' <old-version>
|
||||
# * <new-postrm> `abort-upgrade' <old-version>
|
||||
# * <disappearer's-postrm> `disappear' <overwriter>
|
||||
# <overwriter-version>
|
||||
# for details, see https://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
remove|purge)
|
||||
if command -v update-grub > /dev/null && [ -d /boot/grub ]; then
|
||||
update-grub || :
|
||||
fi
|
||||
;;
|
||||
upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postrm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
304
debian/grub/25_linux_acrn
vendored
Executable file
304
debian/grub/25_linux_acrn
vendored
Executable file
@ -0,0 +1,304 @@
|
||||
#! /bin/sh
|
||||
set -e
|
||||
|
||||
# grub-mkconfig helper script.
|
||||
# Copyright (C) 2006,2007,2008,2009,2010 Free Software Foundation, Inc.
|
||||
#
|
||||
# GRUB is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# GRUB is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
prefix="/usr"
|
||||
exec_prefix="/usr"
|
||||
datarootdir="/usr/share"
|
||||
|
||||
. "$pkgdatadir/grub-mkconfig_lib"
|
||||
|
||||
export TEXTDOMAIN=grub
|
||||
export TEXTDOMAINDIR="${datarootdir}/locale"
|
||||
|
||||
CLASS="--class gnu-linux --class gnu --class os --class acrn"
|
||||
SUPPORTED_INITS="systemd:/lib/systemd/systemd"
|
||||
|
||||
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
|
||||
OS=GNU/Linux
|
||||
else
|
||||
OS="${GRUB_DISTRIBUTOR} GNU/Linux"
|
||||
CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}"
|
||||
fi
|
||||
|
||||
# loop-AES arranges things so that /dev/loop/X can be our root device, but
|
||||
# the initrds that Linux uses don't like that.
|
||||
case ${GRUB_DEVICE} in
|
||||
/dev/loop/*|/dev/loop[0-9])
|
||||
GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"`
|
||||
# We can't cope with devices loop-mounted from files here.
|
||||
case ${GRUB_DEVICE} in
|
||||
/dev/*) ;;
|
||||
*) exit 0 ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
# btrfs may reside on multiple devices. We cannot pass them as value of root= parameter
|
||||
# and mounting btrfs requires user space scanning, so force UUID in this case.
|
||||
if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \
|
||||
|| ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \
|
||||
|| ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then
|
||||
LINUX_ROOT_DEVICE=${GRUB_DEVICE}
|
||||
else
|
||||
LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
|
||||
fi
|
||||
|
||||
# Allow overriding GRUB_CMDLINE_LINUX and GRUB_CMDLINE_LINUX_DEFAULT.
|
||||
if [ "${GRUB_CMDLINE_LINUX_ACRN_REPLACE}" ]; then
|
||||
GRUB_CMDLINE_LINUX="${GRUB_CMDLINE_LINUX_ACRN_REPLACE}"
|
||||
fi
|
||||
if [ "${GRUB_CMDLINE_LINUX_ACRN_REPLACE_DEFAULT}" ]; then
|
||||
GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_ACRN_REPLACE_DEFAULT}"
|
||||
fi
|
||||
|
||||
case x"$GRUB_FS" in
|
||||
xbtrfs)
|
||||
rootsubvol="`make_system_path_relative_to_its_root /`"
|
||||
rootsubvol="${rootsubvol#/}"
|
||||
if [ "x${rootsubvol}" != x ]; then
|
||||
GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
|
||||
fi;;
|
||||
xzfs)
|
||||
rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true`
|
||||
bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`"
|
||||
LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs%/}"
|
||||
;;
|
||||
esac
|
||||
|
||||
title_correction_code=
|
||||
|
||||
linux_entry ()
|
||||
{
|
||||
os="$1"
|
||||
version="$2"
|
||||
acrn_version="$3"
|
||||
type="$4"
|
||||
args="$5"
|
||||
acrn_args="$6"
|
||||
if [ -z "$boot_device_id" ]; then
|
||||
boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
|
||||
fi
|
||||
if [ x$type != xsimple ] ; then
|
||||
if [ x$type = xrecovery ] ; then
|
||||
title="$(gettext_printf "%s, with Acrn %s and Linux %s (%s)" "${os}" "${acrn_version}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")"
|
||||
elif [ "${type#init-}" != "$type" ] ; then
|
||||
title="$(gettext_printf "%s, with Acrn %s and Linux %s (%s)" "${os}" "${acrn_version}" "${version}" "${type#init-}")"
|
||||
else
|
||||
title="$(gettext_printf "%s, with Acrn %s and Linux %s" "${os}" "${acrn_version}" "${version}")"
|
||||
fi
|
||||
replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')"
|
||||
if [ x"Acrn ${acrn_version}>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then
|
||||
quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)"
|
||||
title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;"
|
||||
grub_warn "$(gettext_printf "Please don't use old title \`%s' for GRUB_DEFAULT, use \`%s' (for versions before 2.00) or \`%s' (for 2.00 or later)" "$GRUB_ACTUAL_DEFAULT" "$replacement_title" "gnulinux-advanced-$boot_device_id>gnulinux-$version-$type-$boot_device_id")"
|
||||
fi
|
||||
echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'acrn-gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
|
||||
else
|
||||
title="$(gettext_printf "%s, with ACRN hypervisor" "${os}")"
|
||||
echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'acrn-gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
|
||||
fi
|
||||
if [ x$type != xrecovery ] ; then
|
||||
save_default_entry | grub_add_tab | sed "s/^/$submenu_indentation/"
|
||||
fi
|
||||
|
||||
if [ -z "${prepare_boot_cache}" ]; then
|
||||
prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | grub_add_tab)"
|
||||
fi
|
||||
printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
|
||||
xmessage="$(gettext_printf "Loading Acrn %s ..." ${acrn_version})"
|
||||
lmessage="$(gettext_printf "Loading Linux %s ..." ${version})"
|
||||
sed "s/^/$submenu_indentation/" << EOF
|
||||
echo '$(echo "$xmessage" | grub_quote)'
|
||||
${acrn_loader} ${rel_acrn_dirname}/${acrn_basename} ${acrn_args}
|
||||
echo '$(echo "$lmessage" | grub_quote)'
|
||||
${module_loader} ${rel_dirname}/${basename} Linux_bzImage root=${linux_root_device_thisversion} ro ${args}
|
||||
EOF
|
||||
if test -n "${initrd}" ; then
|
||||
# TRANSLATORS: ramdisk isn't identifier. Should be translated.
|
||||
message="$(gettext_printf "Loading initial ramdisk ...")"
|
||||
sed "s/^/$submenu_indentation/" << EOF
|
||||
echo '$(echo "$message" | grub_quote)'
|
||||
${module_loader} --nounzip ${rel_dirname}/${initrd} Linux_initrd
|
||||
EOF
|
||||
fi
|
||||
sed "s/^/$submenu_indentation/" << EOF
|
||||
}
|
||||
EOF
|
||||
}
|
||||
|
||||
linux_list=
|
||||
for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* /boot/kernel-*; do
|
||||
if grub_file_is_not_garbage "$i"; then
|
||||
basename=$(basename $i)
|
||||
version=$(echo $basename | sed -e "s,^[^0-9]*-,,g")
|
||||
dirname=$(dirname $i)
|
||||
config=
|
||||
for j in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do
|
||||
if test -e "${j}" ; then
|
||||
config="${j}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
if grep -Eqx "^CONFIG_ACRN_HSM=(y|m)" "${config}" 2> /dev/null; then linux_list="$linux_list $i" ; fi
|
||||
fi
|
||||
done
|
||||
if [ "x${linux_list}" = "x" ] ; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
file_is_not_sym () {
|
||||
case "$1" in
|
||||
*/acrn-syms-*)
|
||||
return 1;;
|
||||
*)
|
||||
return 0;;
|
||||
esac
|
||||
}
|
||||
|
||||
# use ELF *.out files for multiboot
|
||||
acrn_out_list=
|
||||
for i in /boot/acrn*.out; do
|
||||
if grub_file_is_not_garbage "$i" && file_is_not_sym "$i" && grub-file --is-x86-multiboot "$i"; then acrn_out_list="$acrn_out_list $i" ; fi
|
||||
done
|
||||
# use raw binary *.bin files for multiboot2
|
||||
acrn_bin_list=
|
||||
for i in /boot/acrn*.bin; do
|
||||
if grub_file_is_not_garbage "$i" && file_is_not_sym "$i" && grub-file --is-x86-multiboot2 "$i"; then acrn_bin_list="$acrn_bin_list $i" ; fi
|
||||
done
|
||||
# we prefer multiboot2
|
||||
if [ "x${acrn_bin_list}" != "x" ]; then
|
||||
acrn_list="${acrn_bin_list}"
|
||||
acrn_loader="multiboot2"
|
||||
module_loader="module2"
|
||||
else
|
||||
acrn_list="${acrn_out_list}"
|
||||
acrn_loader="multiboot --quirk-modules-after-kernel"
|
||||
module_loader="module"
|
||||
fi
|
||||
|
||||
prepare_boot_cache=
|
||||
boot_device_id=
|
||||
|
||||
title_correction_code=
|
||||
|
||||
machine=`uname -m`
|
||||
|
||||
case "$machine" in
|
||||
i?86) GENKERNEL_ARCH="x86" ;;
|
||||
mips|mips64) GENKERNEL_ARCH="mips" ;;
|
||||
mipsel|mips64el) GENKERNEL_ARCH="mipsel" ;;
|
||||
arm*) GENKERNEL_ARCH="arm" ;;
|
||||
*) GENKERNEL_ARCH="$machine" ;;
|
||||
esac
|
||||
|
||||
# Extra indentation to add to menu entries in a submenu. We're not in a submenu
|
||||
# yet, so it's empty. In a submenu it will be equal to '\t' (one tab).
|
||||
submenu_indentation=""
|
||||
|
||||
is_top_level=true
|
||||
|
||||
while [ "x${acrn_list}" != "x" ] ; do
|
||||
list="${linux_list}"
|
||||
current_acrn=`version_find_latest $acrn_list`
|
||||
acrn_basename=`basename ${current_acrn}`
|
||||
acrn_dirname=`dirname ${current_acrn}`
|
||||
rel_acrn_dirname=`make_system_path_relative_to_its_root $acrn_dirname`
|
||||
acrn_version=`echo $acrn_basename | sed -e "s,.out$,,g;s,.bin$,,g;s,^acrn-,,g"`
|
||||
if [ -z "$boot_device_id" ]; then
|
||||
boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
|
||||
fi
|
||||
if [ "x$is_top_level" != xtrue ]; then
|
||||
echo " submenu '$(gettext_printf "ACRN hypervisor, version %s" "${acrn_version}" | grub_quote)' \$menuentry_id_option 'acrn-hypervisor-$acrn_version-$boot_device_id' {"
|
||||
fi
|
||||
while [ "x$list" != "x" ] ; do
|
||||
linux=`version_find_latest $list`
|
||||
gettext_printf "Found linux image: %s\n" "$linux" >&2
|
||||
basename=`basename $linux`
|
||||
dirname=`dirname $linux`
|
||||
rel_dirname=`make_system_path_relative_to_its_root $dirname`
|
||||
version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
|
||||
alt_version=`echo $version | sed -e "s,\.old$,,g"`
|
||||
linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
|
||||
|
||||
initrd=
|
||||
for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
|
||||
"initrd-${version}" "initramfs-${version}.img" \
|
||||
"initrd.img-${alt_version}" "initrd-${alt_version}.img" \
|
||||
"initrd-${alt_version}" "initramfs-${alt_version}.img" \
|
||||
"initramfs-genkernel-${version}" \
|
||||
"initramfs-genkernel-${alt_version}" \
|
||||
"initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
|
||||
"initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}" ; do
|
||||
if test -e "${dirname}/${i}" ; then
|
||||
initrd="$i"
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -n "${initrd}" ; then
|
||||
gettext_printf "Found initrd image: %s\n" "${dirname}/${initrd}" >&2
|
||||
else
|
||||
# "UUID=" magic is parsed by initrds. Since there's no initrd, it can't work here.
|
||||
linux_root_device_thisversion=${GRUB_DEVICE}
|
||||
fi
|
||||
|
||||
if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then
|
||||
linux_entry "${OS}" "${version}" "${acrn_version}" simple \
|
||||
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_ACRN} ${GRUB_CMDLINE_ACRN_DEFAULT}"
|
||||
|
||||
submenu_indentation="$grub_tab$grub_tab"
|
||||
|
||||
if [ -z "$boot_device_id" ]; then
|
||||
boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
|
||||
fi
|
||||
# TRANSLATORS: %s is replaced with an OS name
|
||||
echo "submenu '$(gettext_printf "Advanced options for %s (with ACRN hypervisor)" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
|
||||
echo " submenu '$(gettext_printf "ACRN hypervisor, version %s" "${acrn_version}" | grub_quote)' \$menuentry_id_option 'acrn-hypervisor-$acrn_version-$boot_device_id' {"
|
||||
is_top_level=false
|
||||
fi
|
||||
|
||||
linux_entry "${OS}" "${version}" "${acrn_version}" advanced \
|
||||
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_ACRN} ${GRUB_CMDLINE_ACRN_DEFAULT}"
|
||||
for supported_init in ${SUPPORTED_INITS}; do
|
||||
init_path="${supported_init#*:}"
|
||||
if [ -x "${init_path}" ] && [ "$(readlink -f /sbin/init)" != "$(readlink -f "${init_path}")" ]; then
|
||||
linux_entry "${OS}" "${version}" "${acrn_version}" "init-${supported_init%%:*}" \
|
||||
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "init=${init_path} ${GRUB_CMDLINE_ACRN} ${GRUB_CMDLINE_ACRN_DEFAULT}"
|
||||
|
||||
fi
|
||||
done
|
||||
if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
|
||||
linux_entry "${OS}" "${version}" "${acrn_version}" recovery \
|
||||
"single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_ACRN}"
|
||||
fi
|
||||
|
||||
list=`echo $list | tr ' ' '\n' | fgrep -vx "$linux" | tr '\n' ' '`
|
||||
done
|
||||
if [ x"$is_top_level" != xtrue ]; then
|
||||
echo ' }'
|
||||
fi
|
||||
acrn_list=`echo $acrn_list | tr ' ' '\n' | fgrep -vx "$current_acrn" | tr '\n' ' '`
|
||||
done
|
||||
|
||||
# If at least one kernel was found, then we need to
|
||||
# add a closing '}' for the submenu command.
|
||||
if [ x"$is_top_level" != xtrue ]; then
|
||||
echo '}'
|
||||
fi
|
||||
|
||||
echo "$title_correction_code"
|
35
debian/grub/acrn.cfg
vendored
Normal file
35
debian/grub/acrn.cfg
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
# When running update-grub with the ACRN hypervisor installed, there are
|
||||
# some additional variables that can be used to pass options to the
|
||||
# hypervisor or the SOS kernel.
|
||||
#
|
||||
# The configuration in here makes it possible to have different options set
|
||||
# for the linux kernel when booting with or without ACRN.
|
||||
|
||||
echo "Including ACRN overrides from /etc/default/grub.d/acrn.cfg"
|
||||
|
||||
#######################################################################
|
||||
# SOS Kernel Command Line Options
|
||||
#
|
||||
# The next options are used for creating additional kernel arguments for
|
||||
# SOS kernel. ACRN already has built-in parameters so be careful
|
||||
# in what you add!
|
||||
#
|
||||
#GRUB_CMDLINE_LINUX_ACRN_REPLACE_DEFAULT=""
|
||||
#GRUB_CMDLINE_LINUX_ACRN_REPLACE=""
|
||||
|
||||
# Make booting into ACRN the default. Set the following variable to 0 or 1
|
||||
# explicitly to avoid the message warning from being printed.
|
||||
#
|
||||
#ACRN_OVERRIDE_GRUB_DEFAULT=
|
||||
#
|
||||
if [ "$ACRN_OVERRIDE_GRUB_DEFAULT" = "" ]; then
|
||||
echo "WARNING: GRUB_DEFAULT changed to boot into ACRN by default!"
|
||||
echo " Edit /etc/default/grub.d/acrn.cfg to avoid this warning."
|
||||
ACRN_OVERRIDE_GRUB_DEFAULT=1
|
||||
fi
|
||||
if [ "$ACRN_OVERRIDE_GRUB_DEFAULT" = "1" ]; then
|
||||
GRUB_DEFAULT=$( \
|
||||
printf "$(gettext "%s, with ACRN hypervisor")" \
|
||||
"$GRUB_DISTRIBUTOR GNU/Linux")
|
||||
fi
|
||||
|
9
debian/lifemngr/acrn-lifemngr.conf
vendored
Normal file
9
debian/lifemngr/acrn-lifemngr.conf
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
# ACRN lifemngr invocation configuration file
|
||||
|
||||
# set the following items accordingly to override default:
|
||||
|
||||
# Use 'sos' or 'uos' here. Usually detect automatically.
|
||||
# LIFEMNGR_VM=<vm type>
|
||||
|
||||
# Use the respective serial port here:
|
||||
# LIFEMNGR_TTY=<serial port device>
|
14
debian/lifemngr/start-acrn-lifemngr.sh
vendored
Executable file
14
debian/lifemngr/start-acrn-lifemngr.sh
vendored
Executable file
@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
# helper to start ACRN lifemnr according to VM type
|
||||
|
||||
LIFEMNGR_CONF=/usr/share/acrn-lifemngr/acrn-lifemngr.conf
|
||||
|
||||
# eventually include configuration for overriding default configuration
|
||||
if [ -f ${LIFEMNGR_CONF} ]; then
|
||||
. ${LIFEMNGR_CONF}
|
||||
fi
|
||||
|
||||
LIFEMNGR_VM=${LIFEMNGR_VM:-$(if [ -c /dev/acrn_hsm ]; then echo sos; else echo uos; fi)}
|
||||
LIFEMNGR_TTY=${LIFEMNGR_TTY:-/dev/ttyS1}
|
||||
|
||||
/usr/bin/acrn-lifemngr ${LIFEMNGR_VM} ${LIFEMNGR_TTY}
|
4
debian/not-installed
vendored
Normal file
4
debian/not-installed
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
lib/systemd/network/*
|
||||
lib/systemd/system/acrn_guest.service
|
||||
usr/lib/acrn/*
|
||||
|
2
debian/python3-acrn-board-inspector.lintian-overrides
vendored
Normal file
2
debian/python3-acrn-board-inspector.lintian-overrides
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
# manpages are missing in upstream
|
||||
python3-acrn-board-inspector: no-manual-page usr/bin/acrn-board-inspector
|
328
debian/rules
vendored
Executable file
328
debian/rules
vendored
Executable file
@ -0,0 +1,328 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
include /usr/share/dpkg/pkg-info.mk
|
||||
include /usr/share/dpkg/vendor.mk
|
||||
|
||||
# See debhelper(7) (uncomment to enable)
|
||||
# output every command that modifies files on the build system.
|
||||
#export DH_VERBOSE = 1
|
||||
|
||||
# python packages do not contain any tests
|
||||
export PYBUILD_DISABLE=test
|
||||
|
||||
export MAKEFLAGS = --no-print-directory
|
||||
|
||||
# set these variables to restrict build to certain boards/scenarios, e.g.
|
||||
ACRN_BOARDLIST := whl-ipc-i5 nuc11tnbi5 cfl-k700-i7 tgl-vecow-spc-7100-Corei7
|
||||
ACRN_SCENARIOLIST := partitioned shared hybrid hybrid_rt
|
||||
# alternatively, unset ACRN_BOARDLIST to build for all boards,
|
||||
# ACRN_SCENARIOLIST must be set explicitly: scenario configs must be located
|
||||
# in the same directory as the board config, since there are no board and
|
||||
# scenario attributes any more in the scenario configs since
|
||||
# commit c25de24a92c26faa59e7d5e23966dd54215b66e4
|
||||
#
|
||||
# undefine ACRN_BOARDLIST
|
||||
# undefine ACRN_SCENARIOLIST
|
||||
|
||||
# helper to compare strings
|
||||
strequ=$(if $(subst x$1,,x$2)$(subst x$2,,x$1),,1)
|
||||
|
||||
bold := $(shell which tput >/dev/null 2>&1 && tput bold 2>/dev/null)
|
||||
sgr0 := $(shell which tput >/dev/null 2>&1 && tput sgr0 2>/dev/null)
|
||||
|
||||
# special characters
|
||||
empty :=
|
||||
space := $(empty) $(empty)
|
||||
comma := ,
|
||||
|
||||
# helper to create comma separated list from space separated list
|
||||
commasep = $(subst $(space),$(comma)$(space),$1)
|
||||
# recursive wildcard
|
||||
rwildcard=$(foreach d,$(wildcard $(1:=/*)),$(call rwildcard,$d,$2) $(filter $(subst *,%,$2),$d))
|
||||
|
||||
# add builtin and eventually explicitely provided config directories
|
||||
# misc/config_tools/data: contains ACRN supported configuration
|
||||
# debian/configs: add additional configurations here!
|
||||
CONFIGDIRS = misc/config_tools/data debian/configs
|
||||
CONFIGXMLS := $(call rwildcard,$(CONFIGDIRS),*.xml)
|
||||
|
||||
# remove double quotes
|
||||
unquote = $(subst $\",,$1)
|
||||
|
||||
# get relevant data from acrn-config attributes of an XML
|
||||
#
|
||||
# This evaluates the attributes of acn-config tag got from xmllint (after unquoting).
|
||||
# It create the following variables:
|
||||
# * boardlist: accumulated list of all board configurations detected
|
||||
# * scenariolist_<board>: accumulated list of sceanrios for the given <board>
|
||||
# * config_<board>: respective board configuration file
|
||||
# * config_<board>_<scenario>: respective scenario configuration file
|
||||
# Launcher configurations are not used and therefore ignored
|
||||
define get-xml-data
|
||||
$(eval $(call unquote,$(shell xmllint --xpath '/acrn-config/@board' $1)))
|
||||
$(foreach expr,$(shell xmllint --xpath '/acrn-config/@*' $1),$(eval $(call unquote,$(expr))))
|
||||
$(eval $(if $(user_vm_launcher),, \
|
||||
$(if $(scenario), \
|
||||
config_$(board)_$(scenario) := $1, \
|
||||
config_$(board) := $1 \
|
||||
) \
|
||||
))
|
||||
$(eval $(if $(user_vm_launcher),, \
|
||||
$(if $(scenario), \
|
||||
scenariolist_$(board) := $(sort $(scenariolist_$(board)) $(scenario)), \
|
||||
boardlist := $(sort $(boardlist) $(board)) \
|
||||
) \
|
||||
))
|
||||
$(eval undefine user_vm_launcher)
|
||||
$(eval undefine scenario)
|
||||
$(eval undefine board)
|
||||
endef
|
||||
|
||||
# get all XML data
|
||||
$(foreach xml,$(CONFIGXMLS),$(call get-xml-data,$(xml)))
|
||||
|
||||
# honor variable ACRN_BOARDLIST
|
||||
ifneq ($(ACRN_BOARDLIST),)
|
||||
boardlist := $(sort $(ACRN_BOARDLIST))
|
||||
endif
|
||||
|
||||
# honor variable ACRN_SCENARIOLIST
|
||||
ifneq ($(ACRN_SCENARIOLIST),)
|
||||
$(foreach b,$(boardlist),$(eval scenariolist_$(b) := $(filter $(scenariolist_$(b)),$(ACRN_SCENARIOLIST))))
|
||||
endif
|
||||
|
||||
# board config name -> board config file
|
||||
bfile = $(abspath $(config_$1))
|
||||
# board/scenario config name -> scenario config file
|
||||
sfile = $(abspath $(config_$1_$2))
|
||||
|
||||
# uncomment for debugging purposes
|
||||
# $(info boardlist: $(boardlist))
|
||||
# $(foreach b,$(boardlist),$(info scenariolist_$(b): $(scenariolist_$(b))))
|
||||
# $(foreach b,$(boardlist),$(info config_$(b): $(config_$(b))))
|
||||
# $(foreach b,$(boardlist),$(foreach s,$(scenariolist_$(b)),$(info config_$(b)_$(s): $(config_$(b)_$(s)))))
|
||||
|
||||
# get version data for ACRN
|
||||
include VERSION
|
||||
export ACRNVERSION := $(MAJOR_VERSION).$(MINOR_VERSION)
|
||||
|
||||
# for now build the debug versions
|
||||
export RELEASE ?= 0
|
||||
|
||||
# set paths (see also paths.make)
|
||||
export prefix = /usr
|
||||
export bindir = $(prefix)/bin
|
||||
export libdir = $(prefix)/lib/$(DEB_HOST_MULTIARCH)
|
||||
export nonarchlibdir = $(prefix)/lib
|
||||
export datadir = $(prefix)/share
|
||||
export includedir = $(prefix)/include
|
||||
export systemd_unitdir = /lib/systemd
|
||||
export docdir = $(datadir)/doc
|
||||
export sysconfdir = /etc
|
||||
|
||||
export BUILD_VERSION = "$(DEB_VERSION_UPSTREAM)"
|
||||
export BUILD_TAG = "$(DEB_VENDOR)/$(DEB_VERSION)"
|
||||
|
||||
# set iASL compiler
|
||||
ifeq ($(ASL_COMPILER),)
|
||||
export ASL_COMPILER:=$(shell which iasl)
|
||||
ifeq ($(ASL_COMPILER),)
|
||||
$(error ASL_COMPILER missing)
|
||||
endif
|
||||
endif
|
||||
|
||||
# let make verbosity be controlled by DH_VERBOSE
|
||||
ifeq ($(DH_VERBOSE),1)
|
||||
Q=
|
||||
echo-verbose = echo " $@$(if $1,: $(bold)$1$(sgr0))"
|
||||
echo-silent = true
|
||||
devnull =
|
||||
else
|
||||
Q=@
|
||||
echo-verbose = true
|
||||
echo-silent = echo " $@$(if $1,: $(bold)$1$(sgr0))"
|
||||
devnull = >/dev/null
|
||||
endif
|
||||
|
||||
### dh_installdeb ############################################################
|
||||
debian/acrn-hypervisor.postinst: debian/acrn-hypervisor.postinst.in
|
||||
@$(call echo-verbose)
|
||||
@$(call echo-silent,CREATE $@)
|
||||
$(Q)sed -e 's/@acrnversion@/$(ACRNVERSION)/g' \
|
||||
-e 's%@acrndir@%$(libdir)/acrn%g' $< > $@
|
||||
|
||||
debian/acrn-hypervisor.postrm: debian/acrn-hypervisor.postrm.in
|
||||
@$(call echo-verbose)
|
||||
@$(call echo-silent,CREATE $@)
|
||||
$(Q)sed -e 's/@acrnversion@/$(ACRNVERSION)/g' $< > $@
|
||||
|
||||
debian/acrn-hypervisor.prerm: debian/acrn-hypervisor.prerm.in
|
||||
@$(call echo-verbose)
|
||||
@$(call echo-silent,CREATE $@)
|
||||
$(Q)sed -e 's/@acrnversion@/$(ACRNVERSION)/g' $< > $@
|
||||
|
||||
override_dh_installdeb: debian/acrn-hypervisor.postinst debian/acrn-hypervisor.postrm debian/acrn-hypervisor.prerm
|
||||
$(Q)dh_installdeb
|
||||
|
||||
### dh_installdebconf-arch ###################################################
|
||||
debian/acrn-hypervisor.templates: debian/acrn-hypervisor.templates.in
|
||||
@$(call echo-verbose)
|
||||
@$(call echo-silent,CREATE $@)
|
||||
$(Q)sed -e 's/@boardlist@/$(call commasep,$(boardlist))/g' $< > $@
|
||||
|
||||
override_dh_installdebconf-arch: debian/acrn-hypervisor.templates
|
||||
$(Q)dh_installdebconf -a
|
||||
|
||||
### build-arch ###############################################################
|
||||
override_dh_auto_build-arch: O=build
|
||||
override_dh_auto_build-arch:
|
||||
@$(call echo-verbose)
|
||||
@# Only build lifemngr here, since other parts are built during
|
||||
@# dh_auto_install (even if built here). This is deficiency
|
||||
@# of ACRN's makefile structure, e.g. make hypervisor-install
|
||||
@# always rebuilds the hypervisor, even if built with
|
||||
@# make hypervisor in a previous step.
|
||||
$(Q)set -e; $(call echo-silent,BUILD life_mngr)
|
||||
$(Q)mkdir -p $(O)/common/misc
|
||||
$(Q)$(MAKE) -C misc \
|
||||
OUT_DIR=$(abspath $(O)/common/misc) \
|
||||
life_mngr $(devnull)
|
||||
|
||||
### build-indep ##############################################################
|
||||
ifeq ($(EXTRA_VERSION),)
|
||||
ACRN_DOC_VERSION := $(DEB_VERSION_UPSTREAM)
|
||||
else
|
||||
ACRN_DOC_VERSION := latest
|
||||
endif
|
||||
|
||||
build/documentation/html/index.html: debian/acrn-doc-index-html.in
|
||||
@$(call echo-verbose)
|
||||
@$(call echo-silent,BUILD documentation)
|
||||
$(Q)mkdir -p $(@D)
|
||||
$(Q)sed -e 's/@acrnversion@/$(ACRN_DOC_VERSION)/g' $< > $@
|
||||
|
||||
override_dh_auto_build-indep: build/documentation/html/index.html
|
||||
@$(call echo-verbose)
|
||||
@$(call echo-silent,BUILD acrn-board-inspector)
|
||||
$(Q)export PYBUILD_NAME=acrn_board_inspector; \
|
||||
dh_auto_build \
|
||||
--buildsystem=pybuild \
|
||||
--package=python3-acrn-board-inspector \
|
||||
--sourcedirectory=debian/acrn-board-inspector $(devnull)
|
||||
|
||||
### binary-arch ##############################################################
|
||||
override_dh_auto_install-arch: O=build
|
||||
override_dh_auto_install-arch: DESTDIR=$(abspath debian/tmp)
|
||||
override_dh_auto_install-arch:
|
||||
@$(call echo-verbose)
|
||||
$(Q)set -e;$(foreach b,$(boardlist),$(foreach s,$(scenariolist_$b),\
|
||||
$(call echo-silent,BUILD & INSTALL hypervisor for $b:$s); \
|
||||
$(MAKE) O=$(O)/$b/$s \
|
||||
BOARD=$(call bfile,$b) \
|
||||
SCENARIO=$(call sfile,$b,$s) \
|
||||
DESTDIR=$(DESTDIR) \
|
||||
hypervisor-install $(devnull); \
|
||||
install -d $(DESTDIR)$(libdir)/acrn/$b/$s; \
|
||||
rm -f $(DESTDIR)$(libdir)/acrn/*.out; \
|
||||
mv $(DESTDIR)$(libdir)/acrn/*.bin \
|
||||
$(DESTDIR)$(libdir)/acrn/$b/$s; \
|
||||
if [ -d $(DESTDIR)$(sysconfdir) ]; then \
|
||||
mv $(DESTDIR)$(sysconfdir) \
|
||||
$(DESTDIR)$(libdir)/acrn/$b/$s; \
|
||||
fi; \
|
||||
if [ -d $(DESTDIR)$(libdir)/acrn/acpi ]; then \
|
||||
mv $(DESTDIR)$(libdir)/acrn/acpi \
|
||||
$(DESTDIR)$(libdir)/acrn/$b/$s; \
|
||||
fi; \
|
||||
cp $(O)/$b/$s/hypervisor/configs/config.mk \
|
||||
$(DESTDIR)$(libdir)/acrn/$b/$s/acrn.$b.$s.config;\
|
||||
cp $(O)/$b/$s/hypervisor/acrn.map \
|
||||
$(DESTDIR)$(libdir)/acrn/$b/$s/acrn.$b.$s.map; \
|
||||
chmod 644 $(DESTDIR)$(libdir)/acrn/$b/$s/*.bin; \
|
||||
if [ -d $(DESTDIR)$(libdir)/acrn/$b/$s/acpi ]; then \
|
||||
chmod 644 $(DESTDIR)$(libdir)/acrn/$b/$s/acpi/*;\
|
||||
fi; \
|
||||
))
|
||||
@:
|
||||
@# install devicemodel & tools
|
||||
@$(call echo-silent,BUILD & INSTALL devicemodel & tools)
|
||||
$(Q)$(MAKE) O=$(O)/common DESTDIR=$(DESTDIR) devicemodel-install $(devnull)
|
||||
$(Q)$(MAKE) O=$(O)/common DESTDIR=$(DESTDIR) tools-install $(devnull)
|
||||
@:
|
||||
@# install life_mngr
|
||||
@$(call echo-silent,INSTALL devicemodel & tools)
|
||||
$(Q)install -d $(DESTDIR)$(bindir)
|
||||
@# install life_mngr as acrn-lifemngr
|
||||
$(Q)install -m 0755 -T $(O)/common/misc/services/life_mngr $(DESTDIR)$(bindir)/acrn-lifemngr
|
||||
@# install invocation helper and config
|
||||
$(Q)install -d $(DESTDIR)$(datadir)/acrn-lifemngr
|
||||
$(Q)install -m 0755 debian/lifemngr/start-acrn-lifemngr.sh $(DESTDIR)$(datadir)/acrn-lifemngr
|
||||
$(Q)install -m 0644 debian/lifemngr/acrn-lifemngr.conf $(DESTDIR)$(datadir)/acrn-lifemngr
|
||||
@:
|
||||
@# move/adapt network configs as examples only
|
||||
$(Q)mkdir -p $(DESTDIR)$(docdir)/acrnd/examples
|
||||
$(Q)cp $(DESTDIR)$(systemd_unitdir)/network/* \
|
||||
$(DESTDIR)$(docdir)/acrnd/examples
|
||||
$(Q)sed -i 's/acrn_tap\* //g' \
|
||||
$(DESTDIR)$(docdir)/acrnd/examples/50-acrn.network
|
||||
@:
|
||||
@# remove acrnd.service, use explicitly provided service file instead
|
||||
$(Q)rm -f $(DESTDIR)$(systemd_unitdir)/system/acrnd.service
|
||||
@:
|
||||
@# move devicemodel samples
|
||||
$(Q)mkdir -p $(DESTDIR)$(docdir)/acrn-devicemodel
|
||||
$(Q)mv $(DESTDIR)$(datadir)/acrn/samples \
|
||||
$(DESTDIR)$(docdir)/acrn-devicemodel
|
||||
@:
|
||||
@# adapt systemd services for tools (available in DEBUG build only)
|
||||
$(if $(call strequ,${RELEASE},0), \
|
||||
$(Q)sed -i -e '/telemd.socket/d' -e '/prepare.service/d' \
|
||||
$(DESTDIR)$(systemd_unitdir)/system/acrnprobe.service; \
|
||||
sed -i '/telemd/d' \
|
||||
$(DESTDIR)$(systemd_unitdir)/system/usercrash.service; \
|
||||
)
|
||||
|
||||
### binary-indep #############################################################
|
||||
override_dh_auto_install-indep: O=build
|
||||
override_dh_auto_install-indep: DESTDIR=$(abspath debian/tmp)
|
||||
override_dh_auto_install-indep:
|
||||
@$(call echo-verbose)
|
||||
@$(call echo-silent,INSTALL acrn-board-inspector)
|
||||
$(Q)export PYBUILD_NAME=acrn_board_inspector; \
|
||||
dh_auto_install \
|
||||
--buildsystem=pybuild \
|
||||
--package=python3-acrn-board-inspector \
|
||||
--sourcedirectory=debian/acrn-board-inspector $(devnull)
|
||||
@:
|
||||
@$(call echo-silent,INSTALL documentation)
|
||||
$(Q)mkdir -p ${DESTDIR}$(docdir)/acrn/
|
||||
$(Q)cp -a $(O)/documentation/html ${DESTDIR}$(docdir)/acrn/
|
||||
|
||||
### dh_missing ###############################################################
|
||||
# there is no libtelemetry used
|
||||
override_dh_missing:
|
||||
$(Q)dh_missing --fail-missing -Xusr/share/defaults/telemetrics/acrnprobe.xml
|
||||
|
||||
### dh_strip #################################################################
|
||||
# only strip release variant binaries
|
||||
override_dh_strip: DESTDIR=$(abspath debian/tmp)
|
||||
override_dh_strip:
|
||||
$(Q)dh_strip -X.out -X.bin
|
||||
$(Q)strip --strip-debug \
|
||||
--remove-section=.comment \
|
||||
--remove-section=.note \
|
||||
--enable-deterministic-archiv \
|
||||
$(DESTDIR)$(libdir)/libacrn-mngr.a;
|
||||
|
||||
### clean ####################################################################
|
||||
override_dh_auto_clean:
|
||||
@echo "Building ACRN $(ACRNVERSION) for boards: $(bold)$(call commasep,$(boardlist))$(sgr0)"
|
||||
@echo "The scenarios used are:"
|
||||
@$(foreach b,$(boardlist),echo " $b: $(bold)$(call commasep,$(scenariolist_$b))$(sgr0)";)
|
||||
@$(call echo-verbose)
|
||||
@$(call echo-silent,CLEAN)
|
||||
$(Q)dh_auto_clean $(devnull)
|
||||
|
||||
### others ###################################################################
|
||||
%:
|
||||
$(Q)dh $@ --with python3
|
1
debian/source/format
vendored
Normal file
1
debian/source/format
vendored
Normal file
@ -0,0 +1 @@
|
||||
3.0 (native)
|
5
debian/source/lintian-overrides
vendored
Normal file
5
debian/source/lintian-overrides
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
# ???
|
||||
source-is-missing doc/static/js/modernizr.min.js
|
||||
|
||||
# we do not (yet) translate templates
|
||||
untranslatable-debconf-templates
|
Loading…
Reference in New Issue
Block a user