Hi you guys,
I am seeking advice on how I might best tackle an issue I have with my setup with Proxmox VE. I shall do my best here to keep my issue as brief and straight to the point as possible; I may omit details that may end up proving vital -- please ask and I will respond back accordingly.
My main workstation -- **pve1.home** -- is a Proxmox `v8.3` node in a three node cluster (*non HA*). I have three operating systems that I maintain for the purpose of software development and the occasional video game. The triple boot setup is:
- Manjaro KDE Linux
- Windows 11 Home x86-64
- MacOS Montery
All three are virtual machines and are of the machine type `pve-q35-XXX`. In order for me to boot MacOS Montery with working audio -- SPDIF optical audio output (digital) and 3.5" stereo jack output (analog) -- requires me to use a `pve-q35.cfg` without an `[audio0]` definition [10], else it conflicts with the OS boot and is unable to recognize the hardware.
If you take a look at `/usr/share/qemu-server/pve-q35.cfg`, you should find somewhere along there a `audio0` definition. Here is what it looks like on my system:
```shell
# 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"
```
When I remove this audio definition from `pve-q35.cfg`, MacOS boots without woes; but I must change it back to the original before I can boot Linux or Windows again with working audio.
I will save you the headache of the underlying reasons here within MacOS as to why I must have it specifically programmed to use the `1b.0f` device and none other. Suffice to say: yes, I do not have nay other choice here, other than to not use the integrated audio chipset. I will not accept defeat!
So, my question essentially is: how might I specify a specific, custom machine type, i.e.: `/usr/share/qemu-server/pve-q35-macos.cfg` in the VM configuration file at `/etc/pve/qemu-server/XXX.conf`?
I have been looking through the source at `/usr/share/perl5/PVE/QemuServer/Machine.pm` where the machine types and variants appear to be defined at. I can see how I could probably add a variant myself, but then I would have to deal with merging my modifications with every new release that dares touch the file(s). I do not wish to do this if at all possible!
I could maybe also inject a file swap during init with a hook script. I do not much care for this idea :-/
In summary, I am searching for a method of specifying my own machine definition type in the VM configuration -- one without the audio0 device definition -- so I can apply the machine variant version to only one VM configuration and then leave the others as-is. All would be well if I could figure this out! :-D
I sincerely appreciate any and all suggestions whatsoever!
Cheers,
Jeff
---
P.S. I have read through all of the mailing list entries. It would appear that the proposal may have been forgotten about, or perhaps shelved for a future date. The developers mention precisely the issue that I have ran into here. I am imagining that this issue I have is why there has yet to be consensus among the developers as to how to handle this? I suppose I must ask on the mailing list in hopes of receiving an answer.
"scorpio" (pve1.home) is a Gigabyte `GA-Z97-UD5H REV 1.2` motherboard with an Intel i7-4790k CPU running on the Haswell era architecture with a Intel 9 Series Chipset Family HD Audio Controller with integrated Realtek codecs
I am seeking advice on how I might best tackle an issue I have with my setup with Proxmox VE. I shall do my best here to keep my issue as brief and straight to the point as possible; I may omit details that may end up proving vital -- please ask and I will respond back accordingly.
My main workstation -- **pve1.home** -- is a Proxmox `v8.3` node in a three node cluster (*non HA*). I have three operating systems that I maintain for the purpose of software development and the occasional video game. The triple boot setup is:
- Manjaro KDE Linux
- Windows 11 Home x86-64
- MacOS Montery
All three are virtual machines and are of the machine type `pve-q35-XXX`. In order for me to boot MacOS Montery with working audio -- SPDIF optical audio output (digital) and 3.5" stereo jack output (analog) -- requires me to use a `pve-q35.cfg` without an `[audio0]` definition [10], else it conflicts with the OS boot and is unable to recognize the hardware.
If you take a look at `/usr/share/qemu-server/pve-q35.cfg`, you should find somewhere along there a `audio0` definition. Here is what it looks like on my system:
```shell
# 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"
```
When I remove this audio definition from `pve-q35.cfg`, MacOS boots without woes; but I must change it back to the original before I can boot Linux or Windows again with working audio.
I will save you the headache of the underlying reasons here within MacOS as to why I must have it specifically programmed to use the `1b.0f` device and none other. Suffice to say: yes, I do not have nay other choice here, other than to not use the integrated audio chipset. I will not accept defeat!
So, my question essentially is: how might I specify a specific, custom machine type, i.e.: `/usr/share/qemu-server/pve-q35-macos.cfg` in the VM configuration file at `/etc/pve/qemu-server/XXX.conf`?
I have been looking through the source at `/usr/share/perl5/PVE/QemuServer/Machine.pm` where the machine types and variants appear to be defined at. I can see how I could probably add a variant myself, but then I would have to deal with merging my modifications with every new release that dares touch the file(s). I do not wish to do this if at all possible!
I could maybe also inject a file swap during init with a hook script. I do not much care for this idea :-/
In summary, I am searching for a method of specifying my own machine definition type in the VM configuration -- one without the audio0 device definition -- so I can apply the machine variant version to only one VM configuration and then leave the others as-is. All would be well if I could figure this out! :-D
I sincerely appreciate any and all suggestions whatsoever!
Cheers,
Jeff
---
P.S. I have read through all of the mailing list entries. It would appear that the proposal may have been forgotten about, or perhaps shelved for a future date. The developers mention precisely the issue that I have ran into here. I am imagining that this issue I have is why there has yet to be consensus among the developers as to how to handle this? I suppose I must ask on the mailing list in hopes of receiving an answer.
"scorpio" (pve1.home) is a Gigabyte `GA-Z97-UD5H REV 1.2` motherboard with an Intel i7-4790k CPU running on the Haswell era architecture with a Intel 9 Series Chipset Family HD Audio Controller with integrated Realtek codecs
Last edited: