Nvidia 系列 Mac显卡驱动讲解

黑苹果显卡驱动 12/12/8 53.1k 138

最新情况,新的12C2043版本中N卡无需再添加ID,推荐用10.8.x无法搞定独显的童鞋升级


其中N卡驱动版本:GeForce 8.6.22 304.10.20f04
比之前的版本要新很多

下载地址:
游客,如果您要查看本帖隐藏内容请回复



在SL10.6和Lion时代,Nvdia的显卡是非常容易驱动的
一般在变色龙配置文件org.Chameleon.org.plist加入如下参数就可以正常驱动
  1. 1.<key>GraphicsEnabler</key>
  2. 2.<string>Yes</string>
复制代码


但是,在ML时代,众多坛友反应原来的驱动方式失效
为此,我特意查看了论坛中成功的案例,总结了一点心得,写下来和大家分享

本文的kext使用的是10.8.2版本,其它版本可能有所不同不能通用




驱动显卡的两个条件:

  • Mac的驱动支持你的显卡
  • 显卡能够让Mac识别到


针对第一点,我们的做法是查看Mac的Nvdia驱动里有没有你的显卡ID

针对第二点,则需要借助变色龙/dsdt/Nati.kext/Nvenabler64或是EFIString

GK核心(即开普勒核心)不需要第二点,务必不要加变色龙参数



基础知识


我们打开 系统>资源库>Extensions

会发现以Nv开头的有五个文件

其中NVDANV50Hal.kext、NVDAGF100Hal.kext和NVDAGK100Hal.kext分别对应着不同的显卡
NVDAResman.kext、NVSMU.kext是所有N卡都会加载的



这些文件是负责开启QE/CI的

如果我们显卡不能正常驱动
我们要修改的只有NVDANV50Hal.kext、NVDAGF100Hal.kext和NVDAGK100Hal.kext其中之一


具体修改哪一个取决于你显卡的核心
可以参照

从表中可以看出来的是

Geforce405之前要改的都是在NVDANV50Hal.kext
而核心代号以GF(如GF119)在NVDAGF100Hal.kext中修改
核心代号以GK开头(如GK107)则在NVDAGK100Hal.kext中修改


Mac下查看自己显卡ID的方法:关于本机>更多信息>系统报告>图形卡/显示器>设备ID



现在我们看看NVDANV50Hal.kext、NVDAGF100Hal.kext和NVDAGK100Hal.kext中包含的ID

NVDANV50Hal.kext
  1. 1.0x019010de&0xfff0ffff
  2. 2.0x040010de&0xfff0ffff
  3. 3.0x041010de&0xfff0ffff
  4. 4.0x041010de&0xfff0ffff
  5. 5.0x042010de&0xfff0ffff
  6. 6.0x043010de&0xfff0ffff
  7. 7.0x046010de&0xfff0ffff
  8. 8.0x052010de&0xfff0ffff
  9. 9.0x05c010de&0xffe0ffff
  10. 10.0x05e010de&0xffe0ffff
  11. 11.0x060010de&0xffe0ffff
  12. 12.0x062010de&0xffe0ffff
  13. 13.0x064010de&0xffe0ffff
  14. 14.0x086010de&0xffe0ffff
  15. 15.0x08a010de&0xffe0ffff
  16. 16.0x0a0010de&0xffe0ffff
  17. 17.0x0a2010de&0xffe0ffff
  18. 18.0x0a6010de&0xffe0ffff
  19. 19.0x0ca010de&0xffe0ffff
  20. 20.0x0d4010de&0xffe0ffff
  21. 21.0x10c010de&0xffe0ffff
复制代码
NVDAGF100Hal.kext
  1. 1.0x06c010de&0xffe0ffff
  2. 2.0x0cc010de&0xffe0ffff
  3. 3.0x0ce010de&0xffe0ffff
  4. 4.0x0dc010de&0xffe0ffff
  5. 5.0x0de010de&0xffe0ffff
  6. 6.0x0e0d10de&0xffffffff
  7. 7.0x0e2010de&0xffe0ffff
  8. 8.0x0e4010de&0xffe0ffff
  9. 9.0x0e8010de&0xffe0ffff
  10. 10.0x0ee010de&0xffe0ffff
  11. 11.0x0f0010de&0xffe0ffff
  12. 12.0x0f2010de&0xffe0ffff
  13. 13.0x0fa010de&0xffffffff
  14. 14.0x0fa210de&0xffffffff
  15. 15.0x108010de&0xffe0ffff
  16. 16.0x10a010de&0xffe0ffff
  17. 17.0x110010de&0xffc0ffff
  18. 18.0x120010de&0xffc0ffff
  19. 19.0x124010de&0xffc0ffff
复制代码
NVDAGK100Hal.kext
  1. 1.0x0fc010de&0xffc0ffff
  2. 2.0x118010de&0xffc0ffff
  3. 3.0x11c010de&0xffc0ffff
复制代码
参照VooD的帖子
类似&0xffc0ffff的意思如下


As far as I understand in those docs:

F means = keep the same, and   //该处对应数字保持和前面的值相同
0 means = any value.                   //该处对应数字可以为任意值

If I trust the first post and the mask are tolerency based it would be:

F = no tolerancy, the number has to be the same.
0 = full tolerancy, the number can be any.
E = the value can be +/- 1          //该处对应数字保持和前面的值相同或相差1
D = the value can be+/- 2          //该处对应数字保持和前面的值相同或相差2
C = the value can be +/- 3, etc...//该处对应数字保持和前面的值相同或相差3,以此类推

也就是说

对照着Nvdia核心列表我整理出了一点用于台式机的显卡资料
可能会有疏漏,还请各位自己对照


笔记本显卡或专业卡用户,还请自行搜索
友情提示:页面搜索command+f(PC键盘上Alt+F或是win+F)


NVDANV50Hal.kext
文件中的ID找到的设备ID显卡型号
0x019010de&0xfff0ffff0193GeForce 8800 GTS
0194GeForce 8800 Ultra
0191GeForce 8800 GTX
0x040010de&0xfff0ffff0400GeForce 8600 GTS
0401GeForce 8600 GT
0402GeForce 8600 GT
0403GeForce 8600 GS
0404GeForce 8400 GS (第二版)
0x041010de&0xfff0ffff0410GeForce GT 330
0x042010de&0xfff0ffff0420GeForce 8400 SE
0421GeForce 8500 GT
0422GeForce 8400 GS
0423GeForce 8300 GS
0424GeForce 8400 GS
0x043010de&0xfff0ffff
0x046010de&0xfff0ffff
0x052010de&0xfff0ffff
0x05c010de&0xffe0ffff
0x05e010de&0xffe0ffff05e0GeForce GTX 295
05e1GeForce GTX 280
05e2GeForce GTX 260 (第二版)
05e3GeForce GTX 285
05e6GeForce GTX 275
05eaGeForce GTX 260
05ebGeForce GTX 295 (第二版)
0x060010de&0xffe0ffff0606GeForce 8800 GS
0602/0611GeForce 8800 GT
0600GeForce 8800 GTS 512
0601/0605GeForce 9800 GT
0605/0614GeForce 9800 GT (第二版)
0612GeForce 9800 GTX
0612/0613GeForce 9800 GTX+
0604GeForce 9800 GX2
0603GeForce GT 230
0607GeForce GTS 240
0610GeForce 9600 GSO
0615GeForce GTS 250
0x062010de&0xffe0ffff0623GeForce 9600 GS
0625GeForce 9600 GSO 512
0622/062EGeForce 9600 GT
0622/062D/0637GeForce 9600 GT (第二版)
062FGeForce 9800 S
0626GeForce GT 130
0627GeForce GT 140
0630GeForce 9700 S
0635GeForce 9600 GSO (第二版)
0x064010de&0xffe0ffff0640GeForce 9500 GT
0641GeForce 9400 GT (第二版)
0643GeForce 9500 GT (第二版)
0644/0645GeForce 9500 GS
0646GeForce GT 120
065bGeForce 9400 GT (第三版)
065F/0A60GeForce G 210
0655GeForce 9600 S
0656GeForce 9650 S
0x086010de&0xffe0ffff086D/0871GeForce 9200 (第二版)
0860/0864/0865GeForce 9300
086CGeForce 9300 + nForce 730i
0861/0867/086AGeForce 9400
0x08a010de&0xffe0ffff
0x0a0010de&0xffe0ffff
0x0a2010de&0xffe0ffff0A23/0A65GeForce 210
0A20/0CA5/0CACGeForce GT 220
0A26/0A27/10C5GeForce 405
0x0a6010de&0xffe0ffff0A62GeForce 205
0A63/0A66GeForce 310
0A67GeForce 315
0x0ca010de&0xffe0ffff0CA3GeForce GT 240
0CA2GeForce GT 320
0CA0/0CA7GeForce GT 330 (第二版)
0CA4GeForce GT 340
0x0d4010de&0xffe0ffff
0x10c010de&0xffe0ffff10C3GeForce 8400 GS (第四版)
10C0GeForce 9300 GS (第二版)





费米核心:
NVDAGF100Hal.kext
文件中的ID找到的设备ID显卡型号
0x06c010de&0xffe0ffff06C4GeForce GTX 465
06CDGeForce GTX 470
06C0GeForce GTX 480
0x0cc010de&0xffe0ffff
0x0ce010de&0xffe0ffff
0x0dc010de&0xffe0ffff0DC0GeForce GT 440
0DC4/0DC5/0DC6GeForce GTS 450
0x0de010de&0xffe0ffff0DE2GeForce GT 420
0DE1GeForce GT 430
0DE0GeForce GT 440 (第二版)
0DE5GeForce GT 530
0x0e0d10de&0xffffffff
0x0e2010de&0xffe0ffff0E23GeForce GTX 460 SE
0E22/0E24GeForce GTX 460
0x0e4010de&0xffe0ffff
0x0e8010de&0xffe0ffff
0x0ee010de&0xffe0ffff
0x0f0010de&0xffe0ffff0F00GeForce GT 630 (第二版)
0F01GeForce GT 620 (第二版)
0x0f2010de&0xffe0ffff
0x0fa010de&0xffffffff
0x0fa210de&0xffffffff
0x108010de&0xffe0ffff1080/108BGeForce GTX 580
1081/1086GeForce GTX 570
1082
GeForce GTX 560 Ti (第二版)
1084
GeForce GTX 560 (第二版)
1087
GeForce GTX 560 Ti (第三版)
1088
GeForce GTX 590
0x10a010de&0xffe0ffff
0x110010de&0xffc0ffff
0x120010de&0xffc0ffff
1205
GeForce GTX 460 v2
1206
GeForce GTX 555
1208
GeForce GTX 560 SE
1201
GeForce GTX 560
1200
GeForce GTX 560 Ti
0x124010de&0xffc0ffff
1245
GeForce GTS 450 (第二版)
1243
GeForce GT 545 DDR3
1241
GeForce GT 545 GDDR5
1244
GeForce GTX 550 Ti




开普勒核心:

NVDAGK100Hal.kext
文件中的ID找到的设备ID显卡型号
0x0fc010de&0xffc0ffff0FC2GeForce GT 630
0FC0GeForce GT 640 (第二版)
0FC1GeForce GT 640 (第三版)
0x118010de&0xffc0ffff
1180
GeForce GTX 680
1188
GeForce GTX 690
1189
GeForce GTX 670
0x11c010de&0xffc0ffff



如果你的显卡ID不在列表中(列表不限于我找到的ID哈),可以直接在原来的ID上修改
我们以GT520为例,ID是0x1040不在上面支持的列表中。

以下操作在mac中完成

我们打开系统/资源库/Extensions
在其中找到NVDAGF100Hal.kext(因为GT520的核心是费米核心),拷贝到桌面上

在NVDAGF100Hal.kext上点击右键>显示包内容  找到相应的参数 修改


相关帖子
admin
0 / 3.6k
admin
0 / 4.6k
admin
0 / 3.9k
admin
0 / 3.2k
admin
新款Intel HD4000 黑苹果macOS驱动 Monterey
admin最后由laojian2020回复于 21/7/18
1 / 2.3k
admin
AMD R9/R7系列 黑苹果仿冒显卡驱动教程
admin最后由1126443023回复于 21/7/11
1 / 9.0k
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
您需要登录后才可以回帖 登录 | 注册
本版积分规则
admin
12/12/8 14:57:55
如果变色龙加参数仍然没法驱动你的显卡,而你的显卡ID又确实在以上列表中(或已经添加)
则可以试试idsdt生成的方式。


需要注意的是,在idsdt中勾选生成显卡驱动后,生成的dsdt.aml仍需要进一步修改
即需要找到


Buffer (0x0C)
{
   "NVDA,Geforce"
},
复制代码
字段


修改为

Buffer (0x0C)
{
   "NVDA,Parent"
},
复制代码

才能正常使用


编译生成后放入Extra目录下,重启应该就可以正常驱动



如果列表里支持你的ID但是仍然无法正常驱动的话,可以试试Nvdia官方提供的驱动



需要先删除
/System/Library/Extensions/AppleTyMCEDriver.kext
(系统/资源库/Extensions/AppleTyMCEDriver.kext)
然后修改机型为MacPro3,1,MacPro4,1或是MacPro5,1


10.7.5版本:http://www.nvidia.com/object/macosx-295.00.05f02-driver.html
10.8/10.8.1版本:http://www.nvidia.com/object/macosx-304.00.00f20-driver.html
10.8.2版本:http://www.nvidia.com/object/macosx-304.00.05f02-driver.html
喓喓草虫
13/3/30 06:47:01
感谢楼主!
chenxi0823
13/3/31 14:33:56
很强大,我下载试试 能不能改我的GT630驱动
cctv_cctv
13/4/3 11:25:43
来学习了  仔细看看
↑←↓→
13/4/5 14:37:49
。。。。。。。。。。
1126443023
13/4/6 14:41:06
它支持大多数的独立显卡吗
修才工作室
13/4/6 16:48:21
支持一下,谢谢
wsasp
13/4/8 12:04:31
来学习了  仔细看看
liu
13/4/8 16:32:09
正需要
rainy
13/4/8 18:18:20
顶一下
1182299276
13/4/17 09:45:17
看看,学学,................
zoukanghua
13/4/17 12:00:49
感谢楼主分享!!!!!
wasq5447
13/4/17 23:26:32
看看是不是我用的
SNOWEAGLE
13/4/18 22:56:49
好东西~分享一下。