无忧启动论坛

 找回密码
 注册
搜索
最纯净的「微PE装机优盘」UEPON大师作品系统gho:最纯净好用系统下载站数据恢复、数据保护、视频编辑
Win To Go 极致利器(IXUNCIS固态U盘)无忧启动网成立20周年!广告联系 QQ:184822951 微信:wuyouceo
查看: 2675|回复: 2

[求助] 关于核显hd 4600直通虚拟机安装mac 10.15.4的经历

[复制链接]
发表于 2020-6-4 00:20:05 | 显示全部楼层 |阅读模式
我查阅了老外的资料
要成功直通核显hd 4600到kvm qemu虚拟机并成功点亮hdmi接口的显示器有i如下要点
1.必须将核显与MEI设备一起直通才能点亮屏幕
2.linux内核vfio 模块必须打补丁
3.使用支持x-igd-opregion的bios 也可以用ovmf
我虚拟机运行的命令如下
echo 8086 0412 > /sys/bus/pci/drivers/vfio-pci/new_id
echo 8086 8cba > /sys/bus/pci/drivers/vfio-pci/new_id
echo 8086 0c0c > /sys/bus/pci/drivers/vfio-pci/new_id
qemu-system-x86_64 -enable-kvm -m 4096 -cpu Penryn,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check -machine pc-i440fx-2.12 -pflash efi.fd -pflash efivar.bin -smp 4,cores=2 -device usb-host,vendorid=0x275d,productid=0x0ba6,id=usb0 -device usb-host,vendorid=0x1a2c,productid=0x2d23,id=usb1 -vga none -nographic -usb -device usb-kbd -device usb-mouse -net nic,model=e1000,addr=0x17 -net bridge,br=br0 -device ahci,id=ahci,addr=0x18 -device ide-hd,drive=hd0,bus=ahci.0 -drive id=hd0,file=/dev/sda7,if=none  -device vfio-pci,host=00:02.0,addr=0x2,x-igd-opregion=on -device vfio-pci,host=00:16.0,addr=0x16
这个是可选参数,硬件模拟smc -device isa-applesmc,osk='ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc' -smbios type=2

内核需要打补丁
参考这个帖子
https://bbs.archlinux.org/viewtopic.php?id=245593
支持直通的ovmf bios文件
https://github.com/nchevsky/pve-edk2-firmware
核心显卡直通和独立显卡直通其实差不多,只不过需要从驱动上屏蔽i915即可
补丁最关键的地方是这个
diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.cindex 054391f30fa8..ec0a25d6b2f1 100644--- a/drivers/vfio/vfio_iommu_type1.c+++ b/drivers/vfio/vfio_iommu_type1.c@@ -1474,6 +1474,10 @@ static int vfio_iommu_type1_attach_group(void *iommu_data,         if (ret)                 goto out_domain; +        ret = iommu_map(domain->domain, 0xc4000000u,0xc4000000u, 0xC000000,  IOMMU_READ | IOMMU_WRITE);+        if (ret)+                goto out_domain;+         resv_msi = vfio_iommu_has_sw_msi(iommu_group, &resv_msi_base);          INIT_LIST_HEAD(&domain->group_list);其实就是给linux内核的drivers/vfio/vfio_iommu_type1.c文件添加三行        ret = iommu_map(domain->domain, 0xc4000000u,0xc4000000u, 0xC000000,  IOMMU_READ | IOMMU_WRITE);        if (ret)                goto out_domain;目的是让虚拟机能够访问0xc4000000开始的内存,长度为0xc000000当然这里的数值不是固定的,由于bios对核心显卡的显存设置的不同,这里的数据有变化查看的办法是命令lspci -xxxx -s 0:2最后一排应该是f1: 00 00 00 00 00 00 00 00 00 00 06 00 18 c0 d5 c4这样子 取c4d5c018的头两个字节 c4000000即可 你可以认为这是核显的显存地址 长度是d0000000-c4000000  有的是c5xxxxxx c7xxxxxx 等  自己变通16进制加减法用计算器就行了

别的补丁愿意打就打一下  哈哈
我用的系统是debian 10.4   内核是4.19.0.118
然而我做完这一切后发现也只是在虚拟机中用mac 10.15.4系统点亮了hdmi接口的显示器,只是点亮
实际上显卡没有驱动3d性能,至少macos的系统托盘不是透明的
现在完全不知道如何开启 虚拟机的显卡3D加速了
各种kext补丁都用了  技术不足了
之前内核补丁,重新编译都ok了



点评

请看x.co/kaa(网址) 肺炎,最新消息 ,国内和国外不一样的报道.海外更真实...... git.io/g7777 (网址)  发表于 2020-6-8 17:41
发表于 2020-6-24 21:44:05 | 显示全部楼层
感谢分享,学习一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2020-11-24 20:40

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表