本帖最后由 yygutn 于 2015-12-17 00:15 编辑
2015/12/17 前几天升级了10.11.2,无痛升级。 顺便给出本机的安装建议: 除了独显的三卡完善之前最好屏蔽独显,等差不多了,USB也好了,nv_disable=1这个参数就可以去掉,然后装webdrive驱动了,不然10.11的原版驱动会有点问题导致开机的时候因为某些原因跟声卡驱动冲突导致重启←_←
配置没什么好说的。。。应该是适合国行机器和准系统1763的。 再说下目前的驱动情况: 显卡:HD4600+GTX680M,都是完美驱动。HD4600是通过RehabMan的仿冒驱动和修改BIOS的固定显存实现驱动;独显免驱的,完美识别。 特别说明一下,这个机器可以双显卡驱动!我很肯定的告诉你,DP和HDMI接口的输出都是独显负责的,跟核显毛关系没有的。只有内置显示器才是核显负责的,而且由于BIOS限制,所有核显不能屏蔽,否则,核显不点亮,独显也不会通电(不知道这么说对不对)。 声卡:我这款机器的ALC892跟我在网上找到的 所有ALC892声卡中的节点不一样,所以声卡中的关键数据都是重新制作的,我会在下面贴出来,一样的可以参考我做的文件。 - Codec: Realtek ALC892 Address: 0 DevID: 283904146 (0x10ec0892)
- Jack Color Description Node PinDefault Original Verbs
- --------------------------------------------------------------------------------------------------------
- ATAPI Unknown Mic at Int ATAPI 18 0x12 0x99a30150 01271c50 01271d01 01271ea3 01271f99
- HP Out at Ext Rear 0x14 0x14 19 0x14 0x0121101f 01471c10 01471d10 01471e21 01471f01
- 1/8 Black Line Out at Ext Rear 23 0x17 0x01011020 01771c20 01771d10 01771e01 01771f01
- Mic at Ext Rear 0x18 0x18 24 0x18 0x01a11040 01871c40 01871d10 01871ea1 01871f01
- Line In at Ext Rear 0x1a 0x1a 26 0x1a 0x0181104f 01a71c4f 01a71d10 01a71e81 01a71f01
- Speaker at Int ATAPI 0x1b 0x1b 27 0x1b 0x99130110 01b71c10 01b71d01 01b71e13 01b71f99
- Optical Black SPDIF Out at Ext Rear 30 0x1e 0x01451130 01e71c30 01e71d11 01e71e45 01e71f01
- 输出:
- 耳机 0x14 14-c-2 20-12-2
- 内置扬声器 0x1b 1b-26-25 27-38-37
- 线路输出 0x17 17-f-5 23-15-5
- SPDIF OUT 0x1e 1e-06 30-6
- 输入
- 外置麦克风 0x18 ————删除 9-34-24
- 内置麦克风 0x12 9-22-12 9-34-18
- 线路输入 0x1a 8-23-1a 8-35-26
- configData
- 01271c50 01271d01 01271ea3 01271f99
- 01471c10 01471d10 01471e21 01471f01
- 01771c20 01771d10 01771e01 01771f01
- 01871c40 01871d10 01871ea1 01871f01
- 01a71c4f 01a71d10 01a71e81 01a71f01
- 01b71c10 01b71d01 01b71e13 01b71f99
- 01e71c30 01e71d11 01e71e45 01e71f01
- 01470C02
复制代码有线网卡:Killer N2200 网上很多,待会附上; 无线网卡+bt:换了AR5B195。 这里需要注意一下,这个主板DSDT的无线模块是RP04,不是RP02,所以RehabMan的那个AR9285的补丁要自己修改一下才能用。
重点来了,这个机器的USB2.0问题,我认怂了,解决不了,不是没有努力,问了RehabMan也没辙。当然可以用仿冒驱动配合修改DSDT实现USB2.0的加载,但是我我个人是不推荐的,我个人觉得使用仿冒驱动或者USBInjectAll.kext实现USB2.0都是有缺陷的。打开Ioreg那个软件,自己看看IOUSB就知道了:不停的出现注册信息在USB设备上,时间久了,电脑真的会卡! 嗯嗯,,,USB2.0的问题这么说吧,虚拟kext做了,EHCI名字也改了,后来我也试过那个移除端口限制。 所以,现在的情况就是USB2.0无解。USB3.0直接OK的。我也希望大神给出USB2.0的新思路。。。
好了,BB结束。送上你们要的
11/15 补充: 今晚研究DSDT的驱动部分,结合RehabMan的USBInjectAll驱动,发现把EHCI所有port下的_UPC的四个参数都改成0xff的效果和RehabMan的USBInjectAll驱动效果一毛一样-0-,于是我觉得自己好像发现了什么0.0 所以我接下来研究RehabMan的USBInjectAll源码,发现了这个 - But excluding ports doesn't give all the flexibility that might be needed. All of the data in the Info.plist for ConfigurationData can be configured through ACPI.
- For example, if we wanted to enable only SSP1 on XHC for 8086_8xxx chipsets:
- ```
- DefinitionBlock ("SSDT-UIAC.aml", "SSDT", 1, "hack", "UIAC", 0x00003000)
- {
- Device(UIAC)
- {
- Name(_HID, "UIA00000")
- // override EH01 configuration to have only one port
- Name(RMCF, Package()
- {
- "8086_8xxx", Package()
- {
- "port-count", Buffer() { 0xa, 0, 0, 0 },
- "ports", Package()
- {
- "SSP1", Package()
- {
- "UsbConnector", 3,
- "port", Buffer() { 0xa, 0, 0, 0 },
- }
- }
- }
- })
- }
- }
复制代码就是说,可以定制化USBInjectAll这个驱动,我的理解就是,USBInjectAll这个驱动会读取DSDT的UIAC信息,如果存在相关USB信息,会覆盖默认的端口信息,所以我这么做了: - DefinitionBlock ("SSDT-UIAC.aml", "SSDT", 1, "hack", "UIAC", 0x00003000)
- {
- Device(UIAC)
- {
- Name(_HID, "UIA00000")
- // override EH01 configuration to have only one port
- Name(RMCF, Package()
- {
- "EH01", Package()
- {
- "port-count", Buffer() { 1, 0, 0, 0 },
- "ports", Package()
- {
- "PR01", Package()
- {
- "UsbConnector", 0,
- "port", Buffer() { 1, 0, 0, 0 },
- }
- }
- },
- "EH02", Package()
- {
- "port-count", Buffer() { 1, 0, 0, 0 },
- "ports", Package()
- {
- "PR01", Package()
- {
- "UsbConnector", 0,
- "port", Buffer() { 1, 0, 0, 0 },
- }
- }
- },
- "XHC", Package()
- {
- "port-count", Buffer() { 0x14, 0, 0, 0 },
- "ports", Package()
- {
- "HS01", Package()
- {
- "UsbConnector", 3,
- "port", Buffer() { 0x01, 0, 0, 0 },
- },
- "HS02", Package()
- {
- "UsbConnector", 3,
- "port", Buffer() { 0x02, 0, 0, 0 },
- },
- "HS03", Package()
- {
- "UsbConnector", 3,
- "port", Buffer() { 0x03, 0, 0, 0 },
- },
- "HS05", Package()
- {
- "UsbConnector", 3,
- "port", Buffer() { 0x05, 0, 0, 0 },
- },
- "HS09", Package()
- {
- "UsbConnector", 3,
- "port", Buffer() { 0x09, 0, 0, 0 },
- },
- "HS10", Package()
- {
- "UsbConnector", 3,
- "port", Buffer() { 0x0a, 0, 0, 0 },
- },
- "HS11", Package()
- {
- "UsbConnector", 3,
- "port", Buffer() { 0x0b, 0, 0, 0 },
- },
- "SSP1", Package()
- {
- "UsbConnector", 3,
- "port", Buffer() { 0x10, 0, 0, 0 },
- },
- "SSP2", Package()
- {
- "UsbConnector", 3,
- "port", Buffer() { 0x11, 0, 0, 0 },
- },
- "SSP5", Package()
- {
- "UsbConnector", 3,
- "port", Buffer() { 0x14, 0, 0, 0 },
- }
- }
- }
- })
- }
- }
复制代码然后重新做了一份USBInjectAll,并将这个SSDT加入efi。 Then,重启,成功搞定USB2.0的问题。 (根据这个思路,又去试了下直接修改USBInjectAll中的默认USB端口信息,发现也是可行的~) 对了,后来测试的时候删除了1480000这个port(还有一个蓝牙占用的端口,因为AR3011 用不到,会因为没驱动引起死机,我干脆也删了),因为针对这款机型的话,这是ec控制,控制笔记本的触摸板、摄像头之类的硬件设施开关状态的,恰恰这个在USB2.0上的ec控制器会不停在USB设备树上注册信息。。。时间一长,电脑就会卡,所以我把这个端口删了。
当然,,,可能我这个机器是特例0.0同是1763主板的不一定有我这个毛病~ |