问题

老款指2011年以前MBP在使用原生EFI安装的时候,由于苹果的固件存在问题,亦或者是故意,windows获得的声卡硬件id是错误的,导致window无法正确识别声卡并安装驱动。

近期苹果为windows10更新了MBP2012年含以后固件和bootcamp版本,是可以直接支持window10正确安装。但是老版本的mbp已经被抛弃了。所以不能指望有官方的解决办法。

解决方案

老版本MBP解决window下声卡的问题只有两个办法:

一个是老实从bootcamp分区安装windows,bootcamp会模拟一个传统bios并把磁盘模拟成mbr格式,这样安装windows各个驱动都没任何问题。但是会失去很多原生efi安装优势:如,原生AHCI、快速启动等。

另外一个就是本文给出的办法解决原生efi下windows声卡的问题。
(参考 http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1501058
和 http://bbs.pcbeta.com/viewthread-1399474-1-1.html)
原理不多说了。上面两个帖子有详细写;
这里只是补充一下修复流程和注意事项;

  • 安装完windows以后,不要按option键,让系统自动引导到windows
  • 安装windows下的bootcamp的支持软件包,其实是各种驱动。

具体流程如下:

  1. 解开附件的压缩包 MacSoundfix.zip
  2. 找到 newbcd.bat 文件,右键 以管理员权限运行
  3. 如果没有报错信息,那就关闭窗口。如果报错,一般需要重新启动windows然后再执行该脚本,不能多次执行。
  4. 重启进入windows,如无意外,系统应该已经正确识别声卡了。

该方法也存在不足,如果再次进入苹果系统,或者使用option键盘,选择进入windows,声卡的修复就失效了。必须重新修复而且必须指定系统默认从windows启动。

这就需要用到附件第二个脚本 setbootfiles.sh。把该基本复制到u盘上。

具体流程如下:

  1. 进入mac系统
  2. 将脚本复制到用户home目录下
  3. 打开一个终端依次执行
cd
chmod 744 setbootfiles.sh
./setbootfiles.sh

如果没有报错,就已经设置好默认从windows启动了。
然后在windows中 执行前述的修复过程(以管理员运行 newbcd.bat 然后重启即可)

几个需要注意的,必须让系统自动启动到 win10 否则声卡还会失效。
保证windows能自动启动,然后以管理员权限执行帖子附件中的newbcd,然后重启声卡就好了。
如果windows不能自动启动,而是启动到mac下面,终端执行setboot.sh脚本,设置成windows自动启动。setboot脚本如果报错,请修改 sudo mount -t msdos /dev/disk0s1 /Volumes/EFI/ 这一句的disk0s1 有可能是disk0s4,修改好以后执行脚本,重启就可以正常进入windows了,然后在window下运行newbcd,然后重启。