75a234904f
This change adds the necessary files for the qemu package to be built for Debian. This review follows the same approach used on the virt/libvirt [1]. The base version selected comes from the Debian archive [2] since the salsa-debian [3] version was not fully compatible with stx build tools. The full upstream build was quite long (time) and big (size) so we patched the Debian files with debian_patches to drop unnecessary packages, that is, packages that starlingx does not need. The patches dir will contain source code patches required for stx-qemu, that is, the code that was earlier added on top of 3.0.0 qemu release to add StarlingX required functionalities. The work done on this change is simply porting the code changes, copying it and doing the minimum required updates when it is needed. The list of commits follow, where the "-" character indicates that the commit was dropped now that we are based on 5.2: d3400d STX: virtio-serial: don't touch virtqueue if vm is stopped 71dc08 STX: Modify live migration auto-converge threshold 9be81b STX: Suspend/Resume for VMs with PCIPT+Virtio 876a3c STX: realtime uses mlock instead of mlockall 007444 STX: qemu dpdk custom config 3f6344 STX: add libdl dbda73 STX: qemu: add compile define for CONFIG_DPDK 626bfd STX: qemu: add -enable-dpdk runtime flag 79ea26 STX: qemu dpdk changes for openvswitch dpdk 9c83db STX: migration thread affinity and priority qmp e7fbe5 STX: Add support statement to -help output -48de9c STX: Changes for running on CentOS -32b6f0 Upstream: Workaround: make sure vdev->vq[i].inuse never goes below 0 -246b26 virtio: Return true from virtio_queue_empty if broken [1] https://review.opendev.org/c/starlingx/integ/+/863561 [2] https://snapshot.debian.org/archive/debian/20221109T211529Z/pool/main/q/qemu/ [3] https://salsa.debian.org/qemu-team/qemu/-/tree/debian-bullseye Test Plan: PASS: Build the qemu packages PASS: Build iso with qemu packages PASS: Bootstrap Debian ISO on AIO-SX PASS: Ensure qemu packages are installed (apt list --installed) PASS: Lock/Unlock AIO-SX * * Future tests regarding the libvirt/qemu runtime features will be done once all the pieces are in place in the ISO. Depends-On: https://review.opendev.org/c/starlingx/root/+/864942 Story: 2010317 Task: 46390 Signed-off-by: Rafael Falcao <rafael.vieirafalcao@windriver.com> Co-Authored-by: Thales Elero Cervi <thaleselero.cervi@windriver.com> Change-Id: I424debf7eb24c024ba82a490cda746dbd5af0019
420 lines
19 KiB
Diff
420 lines
19 KiB
Diff
From 33716964e8381628d575160b6a015a3f8ba68640 Mon Sep 17 00:00:00 2001
|
|
From: Thales Elero Cervi <thaleselero.cervi@windriver.com>
|
|
Date: Fri, 18 Nov 2022 16:59:35 -0300
|
|
Subject: [PATCH] Customize Debian build files for STX
|
|
|
|
Change the Debian build files to generate qemu Debian packages as
|
|
they are needed for StarlingX qemu use case.
|
|
Building the upstream qemu was taking ~30 minutes and generating
|
|
an output directory with 30 packages and ~1.1G in size. Removing
|
|
the unnecessary packages resulted in a build that takes ~15min and
|
|
in an output directory with only 10 needed packages and ~320M.
|
|
|
|
We mainly remove UI/Graphical modules and focus on building
|
|
qemu-system-x86 only. We do not need other qemu-system-* packages
|
|
for different architectures neither the build dependencies for
|
|
cross-compiling those packages.
|
|
|
|
Removed packages:
|
|
* qemu-system-gui
|
|
* qemu-system-[misc|arm|mips|ppc|sparc]
|
|
* qemu-user
|
|
* qemu-user-static
|
|
* qemu-user-binftmt
|
|
|
|
Signed-off-by: Thales Elero Cervi <thaleselero.cervi@windriver.com>
|
|
---
|
|
debian/control | 215 +++----------------------------------------------
|
|
debian/rules | 80 +-----------------
|
|
2 files changed, 14 insertions(+), 281 deletions(-)
|
|
|
|
diff --git a/debian/control b/debian/control
|
|
index 6534765..7cc0fb4 100644
|
|
--- a/debian/control
|
|
+++ b/debian/control
|
|
@@ -21,14 +21,10 @@ Build-Depends: debhelper-compat (= 12),
|
|
libcapstone-dev (>> 4.0.2~),
|
|
# --enable-linux-aio linux-*
|
|
libaio-dev [linux-any],
|
|
-# --audio-drv-list=pa,alsa,oss linux-*
|
|
-# --audio-drv-list=pa,oss kfreebsd-*
|
|
- libpulse-dev,
|
|
- libasound2-dev [linux-any],
|
|
# for virtfs (now in libc6)
|
|
# --enable-attr
|
|
-# --enable-brlapi
|
|
- libbrlapi-dev,
|
|
+# --disable-brlapi
|
|
+# libbrlapi-dev,
|
|
# --enable-virtfs linux-*
|
|
# needed for virtfs
|
|
# --enable-cap-ng linux-*
|
|
@@ -85,8 +81,8 @@ Build-Depends: debhelper-compat (= 12),
|
|
# vde is debian-only since ubuntu/vde2 is in universe
|
|
# --enable-vde
|
|
libvdeplug-dev,
|
|
-# --enable-xen linux-amd64|linux-i386
|
|
- libxen-dev [linux-amd64 linux-i386],
|
|
+# --disable-xen linux-amd64|linux-i386
|
|
+# libxen-dev [linux-amd64 linux-i386],
|
|
# --enable-nettle
|
|
nettle-dev,
|
|
## always enabled: --enable-uuid
|
|
@@ -114,18 +110,18 @@ Build-Depends: debhelper-compat (= 12),
|
|
## auth-pam - for auth for vnc&Co using PAM
|
|
## gio-2.0 - for -display=spice-app
|
|
Build-Depends-Indep:
|
|
- gcc-s390x-linux-gnu,
|
|
+# gcc-s390x-linux-gnu,
|
|
# libc6.1-dev-alpha-cross isn't really needed but the code,
|
|
# for whatever reason, #include's string.h which needs libc6.1-dev
|
|
gcc-alpha-linux-gnu, libc6.1-dev-alpha-cross,
|
|
# skiboot firmware, openbios
|
|
- gcc-powerpc64-linux-gnu,
|
|
+# gcc-powerpc64-linux-gnu,
|
|
# openbios
|
|
- gcc-sparc64-linux-gnu, fcode-utils, xsltproc,
|
|
+# gcc-sparc64-linux-gnu, fcode-utils, xsltproc,
|
|
# hppa-firmware
|
|
- gcc-hppa-linux-gnu,
|
|
+# gcc-hppa-linux-gnu,
|
|
# opensbi
|
|
- gcc-riscv64-linux-gnu,
|
|
+# gcc-riscv64-linux-gnu,
|
|
Build-Conflicts: oss4-dev
|
|
Standards-Version: 4.5.1
|
|
Homepage: http://www.qemu.org/
|
|
@@ -218,141 +214,12 @@ Description: QEMU full system emulation binaries (common files)
|
|
This package provides common files needed for target-specific
|
|
full system emulation (qemu-system-*) packages.
|
|
|
|
-Package: qemu-system-gui
|
|
-Architecture: amd64 arm arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32
|
|
-Multi-Arch: same
|
|
-Depends: ${misc:Depends}, ${shlibs:Depends},
|
|
- qemu-system-x86 (= ${binary:Version}) | qemu-system-arm (= ${binary:Version}) | qemu-system-mips (= ${binary:Version}) | qemu-system-ppc (= ${binary:Version}) | qemu-system-sparc (= ${binary:Version}) | qemu-system-misc (= ${binary:Version}) | qemu-system-s390x (= ${binary:Version}) | qemu-system-x86-xen (= ${binary:Version}),
|
|
-Description: QEMU full system emulation binaries (user interface and audio support)
|
|
- This package provides local graphical user interface (currently GTK)
|
|
- and audio backends for full system emulation (qemu-system-*) packages.
|
|
-
|
|
-Package: qemu-system-misc
|
|
-Architecture: amd64 arm arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32
|
|
-Multi-Arch: foreign
|
|
-Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (>> ${source:Version}~), qemu-system-data (>> ${source:Version}~),
|
|
-Recommends: qemu-system-gui (= ${binary:Version}), qemu-utils,
|
|
-# alpha uses vgabios
|
|
-# alpha m68k sh4 uses bootroms
|
|
- seabios, ipxe-qemu (>= 1.0.0+git-20131111.c3d1e78-1~)
|
|
-Suggests: samba, vde2, qemu-block-extra (= ${binary:Version}),
|
|
-Provides: ${sysprovides:misc}
|
|
-Description: QEMU full system emulation binaries (miscellaneous)
|
|
- QEMU is a fast processor emulator: currently the package supports
|
|
- ARM, CRIS, M68k (ColdFire), MicroBlaze, and SH4
|
|
- emulation. By using dynamic translation it achieves
|
|
- reasonable speed while being easy to port on new host CPUs.
|
|
- .
|
|
- This package provides the full system emulation binaries to emulate
|
|
- various other hardware which did not made into separate packages.
|
|
- Emulators for the following architectures are provided:
|
|
- ${sysarch:misc}.
|
|
- .
|
|
- In system emulation mode QEMU emulates a full system, including a processor
|
|
- and various peripherals. It enables easier testing and debugging of system
|
|
- code. It can also be used to provide virtual hosting of several virtual
|
|
- machines on a single server.
|
|
-
|
|
-Package: qemu-system-arm
|
|
-Architecture: amd64 arm arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32
|
|
-Multi-Arch: foreign
|
|
-Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (>> ${source:Version}~), qemu-system-data (>> ${source:Version}~),
|
|
-Recommends: qemu-system-gui (= ${binary:Version}), qemu-utils,
|
|
-# aarch64 arm uses bootroms
|
|
- ipxe-qemu (>= 1.0.0+git-20131111.c3d1e78-1~),
|
|
- qemu-efi-aarch64, qemu-efi-arm
|
|
-Suggests: samba, vde2, qemu-block-extra (= ${binary:Version}),
|
|
-Provides: qemu-kvm [linux-arm64 linux-armhf linux-armel], ${sysprovides:arm}
|
|
-Breaks: qemu-kvm [linux-arm64 linux-armhf linux-armel]
|
|
-Replaces: qemu-kvm [linux-arm64 linux-armhf linux-armel]
|
|
-Description: QEMU full system emulation binaries (arm)
|
|
- QEMU is a fast processor emulator: currently the package supports
|
|
- ARM emulation. By using dynamic translation it achieves
|
|
- reasonable speed while being easy to port on new host CPUs.
|
|
- .
|
|
- This package provides the full system emulation binaries to emulate
|
|
- the following arm hardware: ${sysarch:arm}.
|
|
- .
|
|
- In system emulation mode QEMU emulates a full system, including a processor
|
|
- and various peripherals. It enables easier testing and debugging of system
|
|
- code. It can also be used to provide virtual hosting of several virtual
|
|
- machines on a single server.
|
|
-
|
|
-Package: qemu-system-mips
|
|
-Architecture: amd64 arm arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32
|
|
-Multi-Arch: foreign
|
|
-Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (>> ${source:Version}~), qemu-system-data (>> ${source:Version}~),
|
|
-Recommends: qemu-system-gui (= ${binary:Version}), qemu-utils,
|
|
-# all mips targets uses vgabios and bootroms
|
|
- seabios, ipxe-qemu (>= 1.0.0+git-20131111.c3d1e78-1~)
|
|
-Suggests: samba, vde2, qemu-block-extra (= ${binary:Version}),
|
|
-Provides: ${sysprovides:mips}
|
|
-Description: QEMU full system emulation binaries (mips)
|
|
- QEMU is a fast processor emulator: currently the package supports
|
|
- MIPS emulation. By using dynamic translation it achieves
|
|
- reasonable speed while being easy to port on new host CPUs.
|
|
- .
|
|
- This package provides the full system emulation binaries to emulate
|
|
- the following mips hardware: ${sysarch:mips}.
|
|
- .
|
|
- In system emulation mode QEMU emulates a full system, including a processor
|
|
- and various peripherals. It enables easier testing and debugging of system
|
|
- code. It can also be used to provide virtual hosting of several virtual
|
|
- machines on a single server.
|
|
-
|
|
-Package: qemu-system-ppc
|
|
-Architecture: amd64 arm arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32
|
|
-Multi-Arch: foreign
|
|
-Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (>> ${source:Version}~), qemu-system-data (>> ${source:Version}~),
|
|
-Suggests: samba, vde2, qemu-block-extra (= ${binary:Version}),
|
|
-Recommends: qemu-system-gui (= ${binary:Version}), qemu-utils,
|
|
-# ppc targets use vgabios-stdvga and bootroms
|
|
- seabios, ipxe-qemu (>= 1.0.0+git-20131111.c3d1e78-1~)
|
|
-Provides: qemu-kvm [linux-ppc64 linux-ppc64el linux-powerpc], ${sysprovides:ppc}
|
|
-Breaks: qemu-kvm [linux-ppc64 linux-ppc64el linux-powerpc]
|
|
-Replaces: qemu-kvm [linux-ppc64 linux-ppc64el linux-powerpc]
|
|
-Description: QEMU full system emulation binaries (ppc)
|
|
- QEMU is a fast processor emulator: currently the package supports
|
|
- PowerPC emulation. By using dynamic translation it achieves
|
|
- reasonable speed while being easy to port on new host CPUs.
|
|
- .
|
|
- This package provides the full system emulation binaries to emulate
|
|
- the following PowerPC hardware: ${sysarch:ppc}.
|
|
- .
|
|
- In system emulation mode QEMU emulates a full system, including a processor
|
|
- and various peripherals. It enables easier testing and debugging of system
|
|
- code. It can also be used to provide virtual hosting of several virtual
|
|
- machines on a single server.
|
|
-
|
|
-Package: qemu-system-sparc
|
|
-Architecture: amd64 arm arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32
|
|
-Multi-Arch: foreign
|
|
-Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (>> ${source:Version}~), qemu-system-data (>> ${source:Version}~),
|
|
-Recommends: qemu-system-gui (= ${binary:Version}), qemu-utils,
|
|
-# sparc64 uses vgabios-stdvga and bootroms
|
|
- seabios, ipxe-qemu (>= 1.0.0+git-20131111.c3d1e78-1~)
|
|
-Suggests: samba, vde2, qemu-block-extra (= ${binary:Version}),
|
|
-Provides: ${sysprovides:sparc}
|
|
-Description: QEMU full system emulation binaries (sparc)
|
|
- QEMU is a fast processor emulator: currently the package supports
|
|
- SPARC emulation. By using dynamic translation it achieves
|
|
- reasonable speed while being easy to port on new host CPUs.
|
|
- .
|
|
- This package provides the full system emulation binaries to emulate
|
|
- the following sparc hardware: ${sysarch:sparc}.
|
|
- .
|
|
- In system emulation mode QEMU emulates a full system, including a processor
|
|
- and various peripherals. It enables easier testing and debugging of system
|
|
- code. It can also be used to provide virtual hosting of several virtual
|
|
- machines on a single server.
|
|
-
|
|
Package: qemu-system-x86
|
|
Architecture: amd64 arm arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32
|
|
Multi-Arch: foreign
|
|
Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (>> ${source:Version}~), qemu-system-data (>> ${source:Version}~),
|
|
seabios (>= 1.10.2-1~), ipxe-qemu (>= 1.0.0+git-20131111.c3d1e78-1~)
|
|
-Recommends: qemu-system-gui (= ${binary:Version}), qemu-utils,
|
|
- ovmf,
|
|
+Recommends: qemu-utils, ovmf
|
|
Suggests: samba, vde2, qemu-block-extra (= ${binary:Version}),
|
|
sgabios,
|
|
Provides: qemu-kvm [linux-amd64 linux-i386], ${sysprovides:x86}
|
|
@@ -374,68 +241,6 @@ Description: QEMU full system emulation binaries (x86)
|
|
On x86 host hardware this package also enables KVM kernel virtual machine
|
|
usage on systems which supports it.
|
|
|
|
-Package: qemu-user
|
|
-Architecture: amd64 arm arm64 armel armhf i386 ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32
|
|
-Multi-Arch: foreign
|
|
-Depends: ${shlibs:Depends}, ${misc:Depends}
|
|
-Recommends: qemu-user-binfmt
|
|
-Description: QEMU user mode emulation binaries
|
|
- QEMU is a fast processor emulator: currently the package supports
|
|
- ARM, CRIS, i386, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, SH4,
|
|
- SPARC and x86-64 emulation. By using dynamic translation it achieves
|
|
- reasonable speed while being easy to port on new host CPUs.
|
|
- .
|
|
- This package provides the user mode emulation binaries. In this mode
|
|
- QEMU can launch Linux processes compiled for one CPU on another CPU.
|
|
- .
|
|
- If qemu-user-binfmt package is also installed, it will register binary
|
|
- format handlers from this qemu-user package with the kernel so it will
|
|
- be possible to run foreign binaries directly. However, this might not
|
|
- be suitable for using inside foreign chroots, in which case it is
|
|
- possible to use qemu-user-static package instead of qemu-user-binmft, --
|
|
- qemu-user-static will register statically linked binfmt handlers instead.
|
|
-
|
|
-Package: qemu-user-static
|
|
-Architecture: amd64 arm arm64 armel armhf i386 ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32
|
|
-Built-Using: ${built-using}
|
|
-Multi-Arch: foreign
|
|
-Depends: ${misc:Depends}
|
|
-Recommends: binfmt-support
|
|
-Breaks: binfmt-support (<< 2.1.7~)
|
|
-Provides: qemu-user-binfmt
|
|
-Conflicts: qemu-user-binfmt
|
|
-Suggests: sudo
|
|
-Description: QEMU user mode emulation binaries (static version)
|
|
- QEMU is a fast processor emulator: currently the package supports
|
|
- ARM, CRIS, i386, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, SH4,
|
|
- SPARC and x86-64 emulation. By using dynamic translation it achieves
|
|
- reasonable speed while being easy to port on new host CPUs.
|
|
- .
|
|
- This package provides the user mode emulation binaries, built
|
|
- statically. In this mode QEMU can launch Linux processes compiled for
|
|
- one CPU on another CPU.
|
|
- .
|
|
- qemu-user-static package will register binary formats which the provided
|
|
- emulators can handle, so that it will be possible to run foreign binaries
|
|
- directly.
|
|
-
|
|
-Package: qemu-user-binfmt
|
|
-Architecture: amd64 arm arm64 armel armhf i386 ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32
|
|
-Multi-Arch: foreign
|
|
-Depends: ${misc:Depends}, qemu-user (= ${binary:Version}), binfmt-support
|
|
-Breaks: binfmt-support (<< 2.1.7~)
|
|
-Conflicts: qemu-user-static
|
|
-Description: QEMU user mode binfmt registration for qemu-user
|
|
- QEMU is a fast processor emulator: currently the package supports
|
|
- ARM, CRIS, i386, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, SH4,
|
|
- SPARC and x86-64 emulation. By using dynamic translation it achieves
|
|
- reasonable speed while being easy to port on new host CPUs.
|
|
- .
|
|
- This package provides binfmt support registration for the user mode
|
|
- emulation binaries from qemu-user. This is an empty package, it does
|
|
- not contain any additional files, only registration scripts which run
|
|
- at install and remove times.
|
|
-
|
|
Package: qemu-utils
|
|
Architecture: amd64 arm arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32
|
|
Multi-Arch: foreign
|
|
diff --git a/debian/rules b/debian/rules
|
|
index 9d9f18f..d6778c3 100755
|
|
--- a/debian/rules
|
|
+++ b/debian/rules
|
|
@@ -72,14 +72,11 @@ endif
|
|
ifeq (${enable_system},enable)
|
|
|
|
# list of system (softmmu) targets, from ./configure
|
|
-system_targets = \
|
|
- i386 x86_64 alpha aarch64 arm avr cris hppa m68k microblaze microblazeel \
|
|
- mips mipsel mips64 mips64el moxie nios2 or1k ppc ppc64 riscv32 riscv64 rx \
|
|
- sh4 sh4eb sparc sparc64 s390x tricore xtensa xtensaeb
|
|
+system_targets = i386 x86_64
|
|
|
|
# qemu-system subpackages, from d/control
|
|
sys_systems = arm mips ppc sparc x86 $(if $(filter ${VENDOR},UBUNTU),s390x,)
|
|
-systems = ${sys_systems} misc
|
|
+systems = x86
|
|
sysarch_arm = $(filter aarch64 arm,${system_targets})
|
|
sysarch_mips = $(filter mips mipsel mips64 mips64el,${system_targets})
|
|
sysarch_ppc = $(filter ppc ppc64,${system_targets})
|
|
@@ -348,9 +345,11 @@ endif # enable_linux_user
|
|
|
|
dh_install -a
|
|
dh_missing --list-missing
|
|
+ifeq ($(enable_linux_user),enable)
|
|
dh_installdocs -a -Nqemu-user-binfmt
|
|
dh_installchangelogs -a -Nqemu-user-binfmt -XChangelog
|
|
dh_installdocs -a -pqemu-user-binfmt --link-doc=qemu-user
|
|
+endif
|
|
dh_installman -a
|
|
dh_installudev -a
|
|
ifeq (${enable_system},enable)
|
|
@@ -393,35 +392,6 @@ debian/control: debian/control-in debian/rules
|
|
chmod -w $@
|
|
endif
|
|
|
|
-### openbios rules
|
|
-b/openbios/config-host.mak:
|
|
- mkdir -p b/openbios
|
|
- cd b/openbios && ../../roms/openbios/config/scripts/switch-arch builtin-ppc builtin-sparc32 builtin-sparc64
|
|
-build-openbios: $(addprefix b/openbios/obj-, $(addsuffix /.built, ppc sparc32 sparc64))
|
|
-b/openbios/obj-%/.built: b/openbios/config-host.mak
|
|
- ${MAKE} -C ${@D} V=${V} EXTRACFLAGS="-ffreestanding -fno-pic -fno-stack-protector"
|
|
- @touch $@
|
|
-install-openbios: build-openbios
|
|
- install -m 0644 b/openbios/obj-ppc/openbios-qemu.elf "${sysdatadir}/openbios-ppc"
|
|
- install -m 0644 b/openbios/obj-sparc32/openbios-builtin.elf "${sysdatadir}/openbios-sparc32"
|
|
- install -m 0644 b/openbios/obj-sparc64/openbios-builtin.elf "${sysdatadir}/openbios-sparc64"
|
|
- install -m 0644 -t "${sysdatadir}" \
|
|
- b/openbios/obj-sparc32/QEMU,tcx.bin \
|
|
- b/openbios/obj-sparc32/QEMU,cgthree.bin \
|
|
- b/openbios/obj-sparc64/QEMU,VGA.bin
|
|
-sysdata-components += openbios
|
|
-
|
|
-### powernv firmware in roms/skiboot
|
|
-build-skiboot: b/skiboot/skiboot.lid
|
|
-b/skiboot/skiboot.lid:
|
|
- mkdir -p b/skiboot
|
|
- ${MAKE} -C b/skiboot -f ${CURDIR}/roms/skiboot/Makefile \
|
|
- SRC=${CURDIR}/roms/skiboot \
|
|
- CROSS_COMPILE=${PPC64_CROSSPFX} V=${V}
|
|
-install-skiboot: b/skiboot/skiboot.lid
|
|
- install -m 0644 -t "${sysdatadir}" $<
|
|
-sysdata-components += skiboot
|
|
-
|
|
### x86 optionrom
|
|
build-x86-optionrom: b/optionrom/built
|
|
b/optionrom/built:
|
|
@@ -471,48 +441,6 @@ install-palcode-clipper: b/qemu-palcode/palcode-clipper
|
|
install -m 0644 $< ${sysdatadir}/palcode-clipper
|
|
sysdata-components += palcode-clipper
|
|
|
|
-### SLOF
|
|
-build-slof: b/SLOF/boot_rom.bin
|
|
-b/SLOF/boot_rom.bin:
|
|
- cp -al roms/SLOF b/
|
|
- env -u LDFLAGS -u CFLAGS $(MAKE) -C b/SLOF qemu CROSS="powerpc64-linux-gnu-" V=${V}
|
|
-install-slof: b/SLOF/boot_rom.bin
|
|
- install -m 0644 $< ${sysdatadir}/slof.bin
|
|
-sysdata-components += slof
|
|
-
|
|
-### s390x firmware in pc-bios/s390-ccw
|
|
-build-s390x-fw: b/s390fw/built
|
|
-b/s390fw/built:
|
|
- mkdir -p b/s390fw
|
|
- ${MAKE} -f debian/s390fw.mak OUT=b/s390fw/
|
|
- touch $@
|
|
-install-s390x-fw: build-s390x-fw
|
|
- install -m 0644 -t "${sysdatadir}" b/s390fw/s390*.img
|
|
-sysdata-components += s390x-fw
|
|
-
|
|
-### hppa-firmware (roms/seabios-hppa)
|
|
-build-hppa-fw: b/hppafw/hppa-firmware.img
|
|
-b/hppafw/hppa-firmware.img: | b
|
|
- mkdir -p b/hppafw
|
|
- ${MAKE} -C roms/seabios-hppa OUT=../../b/hppafw/ PYTHON=python3 parisc
|
|
- hppa-linux-gnu-strip -R.note -R.comment $@
|
|
-install-hppa-fw: b/hppafw/hppa-firmware.img
|
|
- install -m 0644 $< ${sysdatadir}
|
|
-sysdata-components += hppa-fw
|
|
-
|
|
-### opensbi (riscv firmware)
|
|
-# we only build v64 variants, not v32
|
|
-build-opensbi: b/opensbi/.built
|
|
-b/opensbi/.built: | b
|
|
- mkdir -p b/opensbi
|
|
- ${MAKE} -C roms/opensbi O=../../b/opensbi CROSS_COMPILE=riscv64-linux-gnu- V=${V} PLATFORM=generic
|
|
- riscv64-linux-gnu-strip --strip-unneeded -R.comment -R.note b/opensbi/platform/generic/firmware/fw_dynamic.elf
|
|
- touch $@
|
|
-install-opensbi: build-opensbi
|
|
- install -m 0644 b/opensbi/platform/generic/firmware/fw_dynamic.bin ${sysdatadir}/opensbi-riscv64-generic-fw_dynamic.bin
|
|
- install -m 0644 b/opensbi/platform/generic/firmware/fw_dynamic.elf ${sysdatadir}/opensbi-riscv64-generic-fw_dynamic.elf
|
|
-sysdata-components += opensbi
|
|
-
|
|
build-indep: $(addprefix build-, ${sysdata-components})
|
|
|
|
b/install-indep-prep.stamp:
|
|
--
|
|
2.25.1
|
|
|