install -d ${DESTDIR}/${MAN8DIR}
install -d ${DESTDIR}/usr/share/man/man5
install -d ${DESTDIR}/usr/share/${PACKAGE}
- install -m 0644 pve-usb.cfg ${DESTDIR}/usr/share/${PACKAGE}
- install -m 0644 pve-q35.cfg ${DESTDIR}/usr/share/${PACKAGE}
- install -m 0644 pve-q35-4.0.cfg ${DESTDIR}/usr/share/${PACKAGE}
install -m 0644 -D qm.bash-completion ${DESTDIR}/${BASHCOMPLDIR}/qm
install -m 0644 -D qmrestore.bash-completion ${DESTDIR}/${BASHCOMPLDIR}/qmrestore
install -m 0644 -D qm.zsh-completion ${DESTDIR}/${ZSHCOMPLDIR}/_qm
install -m 0644 -D bootsplash.jpg ${DESTDIR}/usr/share/${PACKAGE}
$(MAKE) -C PVE install
$(MAKE) -C qmeventd install
+ $(MAKE) -C qemu-configs install
install -m 0755 qm ${DESTDIR}${SBINDIR}
install -m 0755 qmrestore ${DESTDIR}${SBINDIR}
install -m 0755 pve-bridge ${DESTDIR}${VARLIBDIR}/pve-bridge
+++ /dev/null
-[device "ehci"]
- driver = "ich9-usb-ehci1"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1d.7"
-
-[device "uhci-1"]
- driver = "ich9-usb-uhci1"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1d.0"
- masterbus = "ehci.0"
- firstport = "0"
-
-[device "uhci-2"]
- driver = "ich9-usb-uhci2"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1d.1"
- masterbus = "ehci.0"
- firstport = "2"
-
-[device "uhci-3"]
- driver = "ich9-usb-uhci3"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1d.2"
- masterbus = "ehci.0"
- firstport = "4"
-
-[device "ehci-2"]
- driver = "ich9-usb-ehci2"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1a.7"
-
-[device "uhci-4"]
- driver = "ich9-usb-uhci4"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1a.0"
- masterbus = "ehci-2.0"
- firstport = "0"
-
-[device "uhci-5"]
- driver = "ich9-usb-uhci5"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1a.1"
- masterbus = "ehci-2.0"
- firstport = "2"
-
-[device "uhci-6"]
- driver = "ich9-usb-uhci6"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1a.2"
- masterbus = "ehci-2.0"
- firstport = "4"
-
-# FIXME: Remove this audio0 device at the next possible time
-# see: https://pve.proxmox.com/pipermail/pve-devel/2019-July/038417.html
-# https://pve.proxmox.com/pipermail/pve-devel/2019-July/038428.html
-[device "audio0"]
- driver = "ich9-intel-hda"
- bus = "pcie.0"
- addr = "1b.0"
-
-
-[device "ich9-pcie-port-1"]
- driver = "pcie-root-port"
- x-speed = "16"
- x-width = "32"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1c.0"
- port = "1"
- chassis = "1"
-
-[device "ich9-pcie-port-2"]
- driver = "pcie-root-port"
- x-speed = "16"
- x-width = "32"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1c.1"
- port = "2"
- chassis = "2"
-
-[device "ich9-pcie-port-3"]
- driver = "pcie-root-port"
- x-speed = "16"
- x-width = "32"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1c.2"
- port = "3"
- chassis = "3"
-
-[device "ich9-pcie-port-4"]
- driver = "pcie-root-port"
- x-speed = "16"
- x-width = "32"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1c.3"
- port = "4"
- chassis = "4"
-
-##
-# Example PCIe switch with two downstream ports
-#
-#[device "pcie-switch-upstream-port-1"]
-# driver = "x3130-upstream"
-# bus = "ich9-pcie-port-4"
-# addr = "00.0"
-#
-#[device "pcie-switch-downstream-port-1-1"]
-# driver = "xio3130-downstream"
-# multifunction = "on"
-# bus = "pcie-switch-upstream-port-1"
-# addr = "00.0"
-# port = "1"
-# chassis = "5"
-#
-#[device "pcie-switch-downstream-port-1-2"]
-# driver = "xio3130-downstream"
-# multifunction = "on"
-# bus = "pcie-switch-upstream-port-1"
-# addr = "00.1"
-# port = "1"
-# chassis = "6"
-
-
-
-[device "pcidmi"]
- driver = "i82801b11-bridge"
- bus = "pcie.0"
- addr = "1e.0"
-
-[device "pci.0"]
- driver = "pci-bridge"
- bus = "pcidmi"
- addr = "1.0"
- chassis_nr = "1"
-
-[device "pci.1"]
- driver = "pci-bridge"
- bus = "pcidmi"
- addr = "2.0"
- chassis_nr = "2"
-
-[device "pci.2"]
- driver = "pci-bridge"
- bus = "pcidmi"
- addr = "3.0"
- chassis_nr = "3"
-
-[device "pci.3"]
- driver = "pci-bridge"
- bus = "pcidmi"
- addr = "4.0"
- chassis_nr = "4"
+++ /dev/null
-[device "ehci"]
- driver = "ich9-usb-ehci1"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1d.7"
-
-[device "uhci-1"]
- driver = "ich9-usb-uhci1"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1d.0"
- masterbus = "ehci.0"
- firstport = "0"
-
-[device "uhci-2"]
- driver = "ich9-usb-uhci2"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1d.1"
- masterbus = "ehci.0"
- firstport = "2"
-
-[device "uhci-3"]
- driver = "ich9-usb-uhci3"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1d.2"
- masterbus = "ehci.0"
- firstport = "4"
-
-[device "ehci-2"]
- driver = "ich9-usb-ehci2"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1a.7"
-
-[device "uhci-4"]
- driver = "ich9-usb-uhci4"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1a.0"
- masterbus = "ehci-2.0"
- firstport = "0"
-
-[device "uhci-5"]
- driver = "ich9-usb-uhci5"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1a.1"
- masterbus = "ehci-2.0"
- firstport = "2"
-
-[device "uhci-6"]
- driver = "ich9-usb-uhci6"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1a.2"
- masterbus = "ehci-2.0"
- firstport = "4"
-
-
-[device "audio0"]
- driver = "ich9-intel-hda"
- bus = "pcie.0"
- addr = "1b.0"
-
-
-[device "ich9-pcie-port-1"]
- driver = "ioh3420"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1c.0"
- port = "1"
- chassis = "1"
-
-[device "ich9-pcie-port-2"]
- driver = "ioh3420"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1c.1"
- port = "2"
- chassis = "2"
-
-[device "ich9-pcie-port-3"]
- driver = "ioh3420"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1c.2"
- port = "3"
- chassis = "3"
-
-[device "ich9-pcie-port-4"]
- driver = "ioh3420"
- multifunction = "on"
- bus = "pcie.0"
- addr = "1c.3"
- port = "4"
- chassis = "4"
-
-##
-# Example PCIe switch with two downstream ports
-#
-#[device "pcie-switch-upstream-port-1"]
-# driver = "x3130-upstream"
-# bus = "ich9-pcie-port-4"
-# addr = "00.0"
-#
-#[device "pcie-switch-downstream-port-1-1"]
-# driver = "xio3130-downstream"
-# multifunction = "on"
-# bus = "pcie-switch-upstream-port-1"
-# addr = "00.0"
-# port = "1"
-# chassis = "5"
-#
-#[device "pcie-switch-downstream-port-1-2"]
-# driver = "xio3130-downstream"
-# multifunction = "on"
-# bus = "pcie-switch-upstream-port-1"
-# addr = "00.1"
-# port = "1"
-# chassis = "6"
-
-
-
-[device "pcidmi"]
- driver = "i82801b11-bridge"
- bus = "pcie.0"
- addr = "1e.0"
-
-[device "pci.0"]
- driver = "pci-bridge"
- bus = "pcidmi"
- addr = "1.0"
- chassis_nr = "1"
-
-[device "pci.1"]
- driver = "pci-bridge"
- bus = "pcidmi"
- addr = "2.0"
- chassis_nr = "2"
-
-[device "pci.2"]
- driver = "pci-bridge"
- bus = "pcidmi"
- addr = "3.0"
- chassis_nr = "3"
-
-[device "pci.3"]
- driver = "pci-bridge"
- bus = "pcidmi"
- addr = "4.0"
- chassis_nr = "4"
+++ /dev/null
-[device "ehci"]
- driver = "ich9-usb-ehci1"
- addr = "1d.7"
- multifunction = "on"
-
-[device "uhci-1"]
- driver = "ich9-usb-uhci1"
- addr = "1d.0"
- multifunction = "on"
- masterbus = "ehci.0"
- firstport = "0"
-
-[device "uhci-2"]
- driver = "ich9-usb-uhci2"
- addr = "1d.1"
- multifunction = "on"
- masterbus = "ehci.0"
- firstport = "2"
-
-[device "uhci-3"]
- driver = "ich9-usb-uhci3"
- addr = "1d.2"
- multifunction = "on"
- masterbus = "ehci.0"
- firstport = "4"
--- /dev/null
+DESTDIR=
+USRSHAREDIR=$(DESTDIR)/usr/share/qemu-server
+
+.PHONY: install
+install: pve-usb.cfg pve-q35.cfg pve-q35-4.0.cfg
+ install -d $(USRSHAREDIR)
+ install -m 0644 pve-usb.cfg $(USRSHAREDIR)
+ install -m 0644 pve-q35.cfg $(USRSHAREDIR)
+ install -m 0644 pve-q35-4.0.cfg $(USRSHAREDIR)
+
+.PHONY: clean
+clean:
--- /dev/null
+[device "ehci"]
+ driver = "ich9-usb-ehci1"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1d.7"
+
+[device "uhci-1"]
+ driver = "ich9-usb-uhci1"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1d.0"
+ masterbus = "ehci.0"
+ firstport = "0"
+
+[device "uhci-2"]
+ driver = "ich9-usb-uhci2"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1d.1"
+ masterbus = "ehci.0"
+ firstport = "2"
+
+[device "uhci-3"]
+ driver = "ich9-usb-uhci3"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1d.2"
+ masterbus = "ehci.0"
+ firstport = "4"
+
+[device "ehci-2"]
+ driver = "ich9-usb-ehci2"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1a.7"
+
+[device "uhci-4"]
+ driver = "ich9-usb-uhci4"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1a.0"
+ masterbus = "ehci-2.0"
+ firstport = "0"
+
+[device "uhci-5"]
+ driver = "ich9-usb-uhci5"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1a.1"
+ masterbus = "ehci-2.0"
+ firstport = "2"
+
+[device "uhci-6"]
+ driver = "ich9-usb-uhci6"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1a.2"
+ masterbus = "ehci-2.0"
+ firstport = "4"
+
+# FIXME: Remove this audio0 device at the next possible time
+# see: https://pve.proxmox.com/pipermail/pve-devel/2019-July/038417.html
+# https://pve.proxmox.com/pipermail/pve-devel/2019-July/038428.html
+[device "audio0"]
+ driver = "ich9-intel-hda"
+ bus = "pcie.0"
+ addr = "1b.0"
+
+
+[device "ich9-pcie-port-1"]
+ driver = "pcie-root-port"
+ x-speed = "16"
+ x-width = "32"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1c.0"
+ port = "1"
+ chassis = "1"
+
+[device "ich9-pcie-port-2"]
+ driver = "pcie-root-port"
+ x-speed = "16"
+ x-width = "32"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1c.1"
+ port = "2"
+ chassis = "2"
+
+[device "ich9-pcie-port-3"]
+ driver = "pcie-root-port"
+ x-speed = "16"
+ x-width = "32"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1c.2"
+ port = "3"
+ chassis = "3"
+
+[device "ich9-pcie-port-4"]
+ driver = "pcie-root-port"
+ x-speed = "16"
+ x-width = "32"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1c.3"
+ port = "4"
+ chassis = "4"
+
+##
+# Example PCIe switch with two downstream ports
+#
+#[device "pcie-switch-upstream-port-1"]
+# driver = "x3130-upstream"
+# bus = "ich9-pcie-port-4"
+# addr = "00.0"
+#
+#[device "pcie-switch-downstream-port-1-1"]
+# driver = "xio3130-downstream"
+# multifunction = "on"
+# bus = "pcie-switch-upstream-port-1"
+# addr = "00.0"
+# port = "1"
+# chassis = "5"
+#
+#[device "pcie-switch-downstream-port-1-2"]
+# driver = "xio3130-downstream"
+# multifunction = "on"
+# bus = "pcie-switch-upstream-port-1"
+# addr = "00.1"
+# port = "1"
+# chassis = "6"
+
+
+
+[device "pcidmi"]
+ driver = "i82801b11-bridge"
+ bus = "pcie.0"
+ addr = "1e.0"
+
+[device "pci.0"]
+ driver = "pci-bridge"
+ bus = "pcidmi"
+ addr = "1.0"
+ chassis_nr = "1"
+
+[device "pci.1"]
+ driver = "pci-bridge"
+ bus = "pcidmi"
+ addr = "2.0"
+ chassis_nr = "2"
+
+[device "pci.2"]
+ driver = "pci-bridge"
+ bus = "pcidmi"
+ addr = "3.0"
+ chassis_nr = "3"
+
+[device "pci.3"]
+ driver = "pci-bridge"
+ bus = "pcidmi"
+ addr = "4.0"
+ chassis_nr = "4"
--- /dev/null
+[device "ehci"]
+ driver = "ich9-usb-ehci1"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1d.7"
+
+[device "uhci-1"]
+ driver = "ich9-usb-uhci1"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1d.0"
+ masterbus = "ehci.0"
+ firstport = "0"
+
+[device "uhci-2"]
+ driver = "ich9-usb-uhci2"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1d.1"
+ masterbus = "ehci.0"
+ firstport = "2"
+
+[device "uhci-3"]
+ driver = "ich9-usb-uhci3"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1d.2"
+ masterbus = "ehci.0"
+ firstport = "4"
+
+[device "ehci-2"]
+ driver = "ich9-usb-ehci2"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1a.7"
+
+[device "uhci-4"]
+ driver = "ich9-usb-uhci4"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1a.0"
+ masterbus = "ehci-2.0"
+ firstport = "0"
+
+[device "uhci-5"]
+ driver = "ich9-usb-uhci5"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1a.1"
+ masterbus = "ehci-2.0"
+ firstport = "2"
+
+[device "uhci-6"]
+ driver = "ich9-usb-uhci6"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1a.2"
+ masterbus = "ehci-2.0"
+ firstport = "4"
+
+
+[device "audio0"]
+ driver = "ich9-intel-hda"
+ bus = "pcie.0"
+ addr = "1b.0"
+
+
+[device "ich9-pcie-port-1"]
+ driver = "ioh3420"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1c.0"
+ port = "1"
+ chassis = "1"
+
+[device "ich9-pcie-port-2"]
+ driver = "ioh3420"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1c.1"
+ port = "2"
+ chassis = "2"
+
+[device "ich9-pcie-port-3"]
+ driver = "ioh3420"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1c.2"
+ port = "3"
+ chassis = "3"
+
+[device "ich9-pcie-port-4"]
+ driver = "ioh3420"
+ multifunction = "on"
+ bus = "pcie.0"
+ addr = "1c.3"
+ port = "4"
+ chassis = "4"
+
+##
+# Example PCIe switch with two downstream ports
+#
+#[device "pcie-switch-upstream-port-1"]
+# driver = "x3130-upstream"
+# bus = "ich9-pcie-port-4"
+# addr = "00.0"
+#
+#[device "pcie-switch-downstream-port-1-1"]
+# driver = "xio3130-downstream"
+# multifunction = "on"
+# bus = "pcie-switch-upstream-port-1"
+# addr = "00.0"
+# port = "1"
+# chassis = "5"
+#
+#[device "pcie-switch-downstream-port-1-2"]
+# driver = "xio3130-downstream"
+# multifunction = "on"
+# bus = "pcie-switch-upstream-port-1"
+# addr = "00.1"
+# port = "1"
+# chassis = "6"
+
+
+
+[device "pcidmi"]
+ driver = "i82801b11-bridge"
+ bus = "pcie.0"
+ addr = "1e.0"
+
+[device "pci.0"]
+ driver = "pci-bridge"
+ bus = "pcidmi"
+ addr = "1.0"
+ chassis_nr = "1"
+
+[device "pci.1"]
+ driver = "pci-bridge"
+ bus = "pcidmi"
+ addr = "2.0"
+ chassis_nr = "2"
+
+[device "pci.2"]
+ driver = "pci-bridge"
+ bus = "pcidmi"
+ addr = "3.0"
+ chassis_nr = "3"
+
+[device "pci.3"]
+ driver = "pci-bridge"
+ bus = "pcidmi"
+ addr = "4.0"
+ chassis_nr = "4"
--- /dev/null
+[device "ehci"]
+ driver = "ich9-usb-ehci1"
+ addr = "1d.7"
+ multifunction = "on"
+
+[device "uhci-1"]
+ driver = "ich9-usb-uhci1"
+ addr = "1d.0"
+ multifunction = "on"
+ masterbus = "ehci.0"
+ firstport = "0"
+
+[device "uhci-2"]
+ driver = "ich9-usb-uhci2"
+ addr = "1d.1"
+ multifunction = "on"
+ masterbus = "ehci.0"
+ firstport = "2"
+
+[device "uhci-3"]
+ driver = "ich9-usb-uhci3"
+ addr = "1d.2"
+ multifunction = "on"
+ masterbus = "ehci.0"
+ firstport = "4"
use PVE::Tools qw(file_get_contents);
use PVE::QemuServer::PCI;
+my $qemu_cfg_base_path = "../qemu-configs";
+
# not our format but that what QEMU gets passed with '-readconfig'
sub slurp_qemu_config {
my ($fn) = @_;
check_conflict($id, $what);
}
-my $pve_qm_cfg = slurp_qemu_config('../pve-q35.cfg');
+my $pve_qm_cfg = slurp_qemu_config("$qemu_cfg_base_path/pve-q35.cfg");
my $pve_qm_cfg_map = extract_qemu_config_addrs($pve_qm_cfg);
while (my ($id, $what) = each %$pve_qm_cfg_map) {
check_conflict($id, $what);
}
# FIXME: restart with clean conflict $addr_map with only get_pci*_addr_map ones?
-my $pve_qm4_cfg = slurp_qemu_config('../pve-q35-4.0.cfg');
+my $pve_qm4_cfg = slurp_qemu_config("$qemu_cfg_base_path/pve-q35-4.0.cfg");
my $pve_qm4_cfg_map = extract_qemu_config_addrs($pve_qm4_cfg);
while (my ($id, $what) = each %$pve_qm4_cfg_map) {
check_conflict($id, $what, 1);
}
-my $pve_qm_usb_cfg = slurp_qemu_config('../pve-usb.cfg');
+my $pve_qm_usb_cfg = slurp_qemu_config("$qemu_cfg_base_path/pve-usb.cfg");
my $pve_qm_usb_cfg_map = extract_qemu_config_addrs($pve_qm_usb_cfg);
while (my ($id, $what) = each %$pve_qm_usb_cfg_map) {
check_conflict($id, $what, 1);