In this guide I will condensate all finding I did in my research...cleaning all not useful and deviating things previously found and not necessary today 1-05-2020.
You can use this guide when you have a minimal OSX booting in a window in guest PC/tablet.
To follow this guide you have to read previous one or to have a minimal basis in vm/proxmox stuff overall on vm basic creation (iso association steps).
First of all, download a new Proxmox VE installer from Proxmox site:
link Proxmox download site
Now an important step:
I have used to create all initial files I need to instal OSX a tool created by @Gengik84
He listened all my requests and now we have a definitive and full inclusive tool:
VM Assistant
This tool is very important for our task, it allows to download all we need in few simple steps.
It also convert a Basesytem.dmg or a full macOS installer in img/iso useful in Proxmox Ve OSX installation and VM creation
It also allows to download an img/iso of clover/Opencore boot loader useful to start our journey.
I have installed Proxmox Ve environment in a SSD disk (Samsung 840 pro) connected on my back USB 3.2 port
In this disk I have created vm conf file I need and uploaded on it EFi and OSX installer created with VM Assistant tool
So I will summarise now what it is not more necessary (and in many parts I think never was)
first of all
NO OVMF patching is needed.
It creates many problems if you use patched version!
NO mce=off in grub.cfg is needed in the last Proxmox ve (this part was previously mandatory to boot in TRX40 environment)
Balcklisting and important files (or we thought so in the past)
In the following boxes I will put all I need to boot and passing stuff on my rig..
Nvidia TitanXp does no need any particular rom or blacklist to be passed with its full acceleration.
AMD Radeon, NAVI or older cards may need of some additional steps.
Files useful to know with their paths in Proxmox:
/etc/default
grub
here is fundamental to set: iommu=pt amd_iommu=on as you can see in box below.
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Proxmox Virtual Environment"
GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt amd_iommu=on"
GRUB_CMDLINE_LINUX=""
# Disable os-prober, it might add menu entries for each guest
GRUB_DISABLE_OS_PROBER=true
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
/boot/grub/
grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod lvm
insmod ext2
set root='lvmid/t2oM3P-tcBX-ierv-ieqN-3wAf-tsFJ-pesUip/1yoUmi-FAaF-yqv1-f4O4-DS2f-fpgR-7lVhdj'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='lvmid/t2oM3P-tcBX-ierv-ieqN-3wAf-tsFJ-pesUip/1yoUmi-FAaF-yqv1-f4O4-DS2f-fpgR-7lVhdj' d59457d0-ffed-4d60-8f77-4f475ed427a7
else
search --no-floppy --fs-uuid --set=root d59457d0-ffed-4d60-8f77-4f475ed427a7
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
set timeout=30
else
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
set gfxpayload="${1}"
}
set linux_gfx_mode=
export linux_gfx_mode
menuentry 'Proxmox Virtual Environment GNU/Linux' --class proxmox --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-d59457d0-ffed-4d60-8f77-4f475$
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod lvm
insmod ext2
set root='lvmid/t2oM3P-tcBX-ierv-ieqN-3wAf-tsFJ-pesUip/1yoUmi-FAaF-yqv1-f4O4-DS2f-fpgR-7lVhdj'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='lvmid/t2oM3P-tcBX-ierv-ieqN-3wAf-tsFJ-pesUip/1yoUmi-FAaF-yqv1-f4O4-DS2f-fpgR-7lVhdj' d59457d0-ffed-4d60-8f77-4f475e$
else
search --no-floppy --fs-uuid --set=root d59457d0-ffed-4d60-8f77-4f475ed427a7
fi
echo 'Loading Linux 5.3.18-2-pve ...'
linux /boot/vmlinuz-5.3.18-2-pve root=/dev/mapper/pve-root ro quiet iommu=pt amd_iommu=on
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-5.3.18-2-pve
}
submenu 'Advanced options for Proxmox Virtual Environment GNU/Linux' $menuentry_id_option 'gnulinux-advanced-d59457d0-ffed-4d60-8f77-4f475ed427a7' {
menuentry 'Proxmox Virtual Environment GNU/Linux, with Linux 5.3.18-2-pve' --class proxmox --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.3$
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod lvm
insmod ext2
set root='lvmid/t2oM3P-tcBX-ierv-ieqN-3wAf-tsFJ-pesUip/1yoUmi-FAaF-yqv1-f4O4-DS2f-fpgR-7lVhdj'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='lvmid/t2oM3P-tcBX-ierv-ieqN-3wAf-tsFJ-pesUip/1yoUmi-FAaF-yqv1-f4O4-DS2f-fpgR-7lVhdj' d59457d0-ffed-4d60-8f7$
else
search --no-floppy --fs-uuid --set=root d59457d0-ffed-4d60-8f77-4f475ed427a7
fi
echo 'Loading Linux 5.3.18-2-pve ...'
linux /boot/vmlinuz-5.3.18-2-pve root=/dev/mapper/pve-root ro quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-5.3.18-2-pve
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod part_gpt
insmod lvm
insmod ext2
set root='lvmid/t2oM3P-tcBX-ierv-ieqN-3wAf-tsFJ-pesUip/1yoUmi-FAaF-yqv1-f4O4-DS2f-fpgR-7lVhdj'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='lvmid/t2oM3P-tcBX-ierv-ieqN-3wAf-tsFJ-pesUip/1yoUmi-FAaF-yqv1-f4O4-DS2f-fpgR-7lVhdj' d59457d0-ffed-4d60-8f77-4f475e$
else
search --no-floppy --fs-uuid --set=root d59457d0-ffed-4d60-8f77-4f475ed427a7
fi
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod part_gpt
insmod lvm
insmod ext2
set root='lvmid/t2oM3P-tcBX-ierv-ieqN-3wAf-tsFJ-pesUip/1yoUmi-FAaF-yqv1-f4O4-DS2f-fpgR-7lVhdj'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='lvmid/t2oM3P-tcBX-ierv-ieqN-3wAf-tsFJ-pesUip/1yoUmi-FAaF-yqv1-f4O4-DS2f-fpgR-7lVhdj' d59457d0-ffed-4d60-8f77-4f475e$
else
search --no-floppy --fs-uuid --set=root d59457d0-ffed-4d60-8f77-4f475ed427a7
fi
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
menuentry "Memory test (memtest86+, experimental multiboot)" {
insmod part_gpt
insmod lvm
insmod ext2
set root='lvmid/t2oM3P-tcBX-ierv-ieqN-3wAf-tsFJ-pesUip/1yoUmi-FAaF-yqv1-f4O4-DS2f-fpgR-7lVhdj'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='lvmid/t2oM3P-tcBX-ierv-ieqN-3wAf-tsFJ-pesUip/1yoUmi-FAaF-yqv1-f4O4-DS2f-fpgR-7lVhdj' d59457d0-ffed-4d60-8f77-4f475e$
else
search --no-floppy --fs-uuid --set=root d59457d0-ffed-4d60-8f77-4f475ed427a7
fi
multiboot /boot/memtest86+_multiboot.bin
}
menuentry "Memory test (memtest86+, serial console 115200, experimental multiboot)" {
insmod part_gpt
insmod lvm
insmod ext2
set root='lvmid/t2oM3P-tcBX-ierv-ieqN-3wAf-tsFJ-pesUip/1yoUmi-FAaF-yqv1-f4O4-DS2f-fpgR-7lVhdj'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='lvmid/t2oM3P-tcBX-ierv-ieqN-3wAf-tsFJ-pesUip/1yoUmi-FAaF-yqv1-f4O4-DS2f-fpgR-7lVhdj' d59457d0-ffed-4d60-8f77-4f475ed427a7
else
search --no-floppy --fs-uuid --set=root d59457d0-ffed-4d60-8f77-4f475ed427a7
fi
multiboot /boot/memtest86+_multiboot.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'System setup' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
/etc/modprobe.d
blacklist.conf (this symbol (#) means line is commented and not used)
#blacklist nvidiafb
#blacklist nouveau
#blacklist radeon
#blacklist snd_hda_codec_hdmi
#blacklist snd_hda_intel
#blacklist snd_hda_codec
#blacklist snd_hda_core
#blacklist xhci_hcd
/etc/modprobe.d
kvm.conf
options kvm ignore_msrs=1 report_ignored_msrs=0
/etc/modprobe.d
pve-blacklist.conf (it is a proxmox created file)
# This file contains a list of modules which are not supported by Proxmox VE
# nidiafb see bugreport https://bugzilla.proxmox.com/show_bug.cgi?id=701
blacklist nvidiafb
/etc/modprobe.d
vfio.conf *
#options vfio-pci ids=1022:148c,1462:cb60,1022:1487
* this file for me is a real mystery 🙂
using or not using it does not produce result in my rig..try by yourself if it is useful or not for you
Now, the only mandatory step (also grub cfg stuff like IOMMU indeed..)
modules load from start not loaded by default. You have to assign them:
/etc
modules
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
also here..investigated by yourself if all of these are useful in your rig
Now I will put my lspci -nnk output..in my case I have for my motherboard 5 different BIOS versions from initial release.
All of these BIOS files produce in Proxmox VE this same output. From this it is possible to pass all device you need.
To avoid some problem I repeat also here to install your Proxmox VE distro on an fast Usb disk..in this way you can pass all your NVME controller and SATA controller to have a vanilla OSX installed on a disk and not on a "vm" file.
root@pve:/etc# lspci -nnk
00:00.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex [1022:1480]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex [1022:1480]
00:00.2 IOMMU [0806]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU [1022:1481]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU [1022:1481]
00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
00:01.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
Kernel driver in use: pcieport
00:01.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
Kernel driver in use: pcieport
00:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
00:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
00:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
00:05.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
00:07.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
00:07.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
Kernel driver in use: pcieport
00:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
Kernel driver in use: pcieport
00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 61)
Subsystem: Micro-Star International Co., Ltd. [MSI] FCH SMBus Controller [1462:7c60]
Kernel driver in use: piix4_smbus
Kernel modules: i2c_piix4, sp5100_tco
00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e] (rev 51)
Subsystem: Micro-Star International Co., Ltd. [MSI] FCH LPC Bridge [1462:7c60]
00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 0 [1022:1490]
00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 1 [1022:1491]
00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 2 [1022:1492]
00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 3 [1022:1493]
Kernel driver in use: k10temp
Kernel modules: k10temp
00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 4 [1022:1494]
00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 5 [1022:1495]
00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 6 [1022:1496]
00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 7 [1022:1497]
01:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961 [144d:a804]
Subsystem: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961 [144d:a801]
Kernel driver in use: vfio-pci
02:00.0 Non-Volatile memory controller [0108]: Phison Electronics Corporation E12 NVMe Controller [1987:5012] (rev 01)
Subsystem: Phison Electronics Corporation E12 NVMe Controller [1987:5012]
Kernel driver in use: vfio-pci
03:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function [1022:148a]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function [1022:148a]
04:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
Kernel driver in use: vfio-pci
04:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Starship USB 3.0 Host Controller [1022:148c]
Subsystem: Micro-Star International Co., Ltd. [MSI] Starship USB 3.0 Host Controller [1462:7c60]
Kernel driver in use: xhci_hcd
20:00.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex [1022:1480]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex [1022:1480]
20:00.2 IOMMU [0806]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU [1022:1481]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU [1022:1481]
20:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
20:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
20:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
20:03.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
Kernel driver in use: pcieport
20:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
20:05.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
20:07.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
20:07.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
Kernel driver in use: pcieport
20:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
20:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
Kernel driver in use: pcieport
21:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [TITAN Xp] [10de:1b02] (rev a1)
Subsystem: NVIDIA Corporation GP102 [TITAN Xp] [10de:123e]
Kernel driver in use: vfio-pci
Kernel modules: nvidiafb, nouveau
21:00.1 Audio device [0403]: NVIDIA Corporation GP102 HDMI Audio Controller [10de:10ef] (rev a1)
Subsystem: NVIDIA Corporation GP102 HDMI Audio Controller [10de:123e]
Kernel driver in use: vfio-pci
Kernel modules: snd_hda_intel
22:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function [1022:148a]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function [1022:148a]
23:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
Kernel driver in use: vfio-pci
23:00.1 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP [1022:1486]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP [1022:1486]
Kernel driver in use: ccp
Kernel modules: ccp
23:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Starship USB 3.0 Host Controller [1022:148c]
Subsystem: Micro-Star International Co., Ltd. [MSI] Starship USB 3.0 Host Controller [1462:7c60]
Kernel driver in use: xhci_hcd
23:00.4 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse HD Audio Controller [1022:1487]
Subsystem: Micro-Star International Co., Ltd. [MSI] Starship/Matisse HD Audio Controller [1462:cb60]
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
40:00.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex [1022:1480]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex [1022:1480]
40:00.2 IOMMU [0806]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU [1022:1481]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU [1022:1481]
40:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
40:01.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
Kernel driver in use: pcieport
40:01.3 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
Kernel driver in use: pcieport
40:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
40:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
40:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
40:05.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
40:07.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
40:07.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
Kernel driver in use: pcieport
40:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
40:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
Kernel driver in use: pcieport
41:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:57ad]
Kernel driver in use: pcieport
42:02.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:57a3]
Kernel driver in use: pcieport
42:04.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:57a3]
Kernel driver in use: pcieport
42:05.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:57a3]
Kernel driver in use: pcieport
42:08.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:57a4]
Kernel driver in use: pcieport
42:09.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:57a4]
Kernel driver in use: pcieport
42:0a.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:57a4]
Kernel driver in use: pcieport
43:00.0 USB controller [0c03]: ASMedia Technology Inc. Device [1b21:3242]
Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:7c60]
Kernel driver in use: xhci_hcd
44:00.0 Ethernet controller [0200]: Intel Corporation I211 Gigabit Network Connection [8086:1539] (rev 03)
Subsystem: Micro-Star International Co., Ltd. [MSI] I211 Gigabit Network Connection [1462:7c60]
Kernel driver in use: vfio-pci
Kernel modules: igb
45:00.0 Ethernet controller [0200]: Intel Corporation I211 Gigabit Network Connection [8086:1539] (rev 03)
Subsystem: Micro-Star International Co., Ltd. [MSI] I211 Gigabit Network Connection [1462:7c60]
Kernel driver in use: vfio-pci
Kernel modules: igb
46:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
Kernel driver in use: vfio-pci
46:00.1 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:149c]
Subsystem: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:1486]
Kernel driver in use: vfio-pci
46:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:149c]
Subsystem: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:148c]
Kernel driver in use: vfio-pci
47:00.0 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7901] (rev 51)
Subsystem: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7901]
Kernel driver in use: vfio-pci
Kernel modules: ahci
48:00.0 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7901] (rev 51)
Subsystem: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7901]
Kernel driver in use: vfio-pci
Kernel modules: ahci
49:00.0 Ethernet controller [0200]: Aquantia Corp. AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion] [1d6a:07b1] (rev 02)
Subsystem: Micro-Star International Co., Ltd. [MSI] AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion] [1462:b912]
Kernel driver in use: atlantic
Kernel modules: atlantic
4a:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function [1022:148a]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function [1022:148a]
4b:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
Kernel driver in use: vfio-pci
60:00.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex [1022:1480]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex [1022:1480]
60:00.2 IOMMU [0806]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU [1022:1481]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU [1022:1481]
60:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
60:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
60:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
60:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
60:05.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
60:07.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
60:07.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
Kernel driver in use: pcieport
60:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
60:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
Kernel driver in use: pcieport
61:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function [1022:148a]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function [1022:148a]
62:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
Kernel driver in use: vfio-pci
VM config:*
/etc/pve/qemu-server
100.conf
#ide2%3A local%3Aiso/OC0_57_NDA.iso,cache=unsafe,size=256M
#args%3A -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+invtsc,vmware-c$
#args%3A -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -cpu host,vendor=GenuineIntel,+hypervisor,+invtsc
#+hypervisor
#hostpci9%3A 49%3A00
agent: 1
args: -smbios type=2 -cpu host,vendor=GenuineIntel,+invtsc
bios: ovmf
boot: d
cores: 64
cpu: Penryn
efidisk0: local-lvm:vm-100-disk-1,size=128K
hostpci0: 21:00,pcie=1,x-vga=1
hostpci1: 02:00.0
hostpci2: 44:00
hostpci3: 46:00.1
hostpci4: 46:00.3
hostpci5: 47:00
hostpci6: 48:00
hostpci7: 01:00.0
hostpci8: 45:00
hostpci9: 49:00
machine: q35
memory: 119808
name: sierra
net0: vmxnet3=12:83:7D:28:45:26,bridge=vmbr0,firewall=1
numa: 1
ostype: other
scsihw: virtio-scsi-pci
smbios1: uuid=43051c32-3e2e-4f80-b7cc-d50def662b0b
sockets: 1
startup: down=20
tablet: 0
vga: none
vmgenid: 284011f9-380c-4bdf-b57f-08eda8f03bb9
* this could not work if you do not use some algrey's "Vanilla patches" in your config.plist
in my trying and I have seen it is possible to delete all args to boot fine..I am trying to minimise it and see results.
Not advised to use also a minimal set "vanilla AMD patches" because GPU can in this case have worst benchmark.
you could use this set of args (less experimental of previous one):
args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -cpu Penryn,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+invtsc,vmware-cpuid-freq=on,+fpu,+vme,+de,+pse,+tsc,+msr,+pae,+mce,+cx8,+apic,+sep,+mtrr,+pge,+mca,+cmov,+pat,+pse36,+clflush,+mmx,+fxsr,+sse,+sse2,+ht,+syscall,+nx,+mmxext,+fxsr_opt,+pdpe1gb,+rdtscp,+lm,+pni,+pclmulqdq,+monitor,+ssse3,+fma,+cx16,+sse4_1,+sse4_2,+tsc_adjust,+movbe,+popcnt,+aes,+xsave,+avx,+f16c,+rdrand,+lahf_lm,+cmp_legacy,+extapic,+abm,+sse4a,+misalignsse,+3dnowprefetch,+osvw,+ibs,+skinit,+wdt,+tce,+topoext,+perfctr_core,+perfctr_nb,+ssbd,+ibpb,+stibp,+fsgsbase,+bmi1,+avx2,+smep,+bmi2,+rdseed,+adx,+smap,+clflushopt,+clwb,+xsaveopt,+xsavec,+xgetbv1,+xsaves,+wbnoinvd,+arat,+npt,+lbrv,+nrip_save,+tsc_scale,+vmcb_clean,+flushbyasid,+decodeassists,+pfthreshold,+umip
bios: ovmf
boot: d
cores: 64
cpu: host
to Put in args Penryn and cpu: host helps to not use any "AMD vanilla patches" and (in my case) in this way I have best GFX performances
to put Host in args and Penryn in cpu gives in OSX a nice output for your cpu name in many place (Cinebench app and similar) Unknow in about my mac
With Penryn in args you will see all emulated cpu name (penny core duo and so on stuff)
*Note*
you can boot without any args if you set cpu to Penryn, you will have better benchmarks but no a really friendly and usable system..I am investigated on this and it seems that +invtsc is the main actor (if we do not use it)
In discussion section of this forum we can discuss how to improve this..for now (chit chat noise apart) this is the first free and complete guide to have a working TRX40 system!
So help to improve and share it 😉