麦创网

发表于 13/10/29 14:14:15 |显示全部楼层
配置如下:
I3 2120
GA-H61MA-D2V(REV.2.0 BIOS:F1)
KINGSTON 1333 4G*1
ALC887-VD
RT8111E
SAPPHIRE HD6570 512M
希捷500G(4kb)硬盘(ST500GDM002)
USB键盘、鼠标
总的流程如下:
一、安装方式的选择(刻盘);
二、分区与系统安装(GPT分区);
三、系统引导安装(变色龙 IN EFI);
四、系统的完善与驱动安装(dsdt制作;smbios;org.Chameleon.Boot更新;网卡、声卡、显卡等等)。
其实流程就是自己的一个思路。按着思路走,就不会在完成一步后不知道应该做什么。若在某一步出现问题,也懂得针对该问题查找解决方法。如果不影响下一步,可以先往下继续做,因为有些问题会在你完善系统的过程中修复到的。
一、安装方式的选择
我的安装方式是光盘安装的,不是硬盘安装,我是基于以下几点来考虑使用光盘安装的:
1.       单硬盘单系统,如果选用硬盘安装,至少我要在这个硬盘上先装一个WINDWOS系统,然后MAC系统装好后我还要把WIN分区清出来。或者是找一个有WIN系统的硬盘来挂载这个装MAC系统的硬盘。对我而言,我需要一个清新的环境,如果能够远离WINDOWS,那么就不如不见。
2.       硬盘安装需要好几个软件,很多步骤。如果能够达到同样的效果,那么用最简单的方法吧。(我刻个盘不用爬那么多楼梯,把时间花在刻盘上,刻盘期间我还能做其它事的,可能爬楼梯与实施的时间用得更多)硬盘安装的可看WIN下懒人版安装教程(U盘版和硬盘版)
   (刻盘快捷方式:破解ISO文件上右键-打开方式-NERO。LION须D9盘)
3.       使用GPT 分区,把变色龙放到EFI中,完全脱离WINDOWS
二、分区与系统安装
1.       BIOS设置,开启ACHI
2.       光盘引导安装。(F12)
3.       格式化硬盘(实用工具-磁盘工具,分区:2个,系统(150G)与资料(350G);选项:GPT分区表。)
4.       系统安装:选择系统分区;自定:取消安装引导器(变色龙)、驱动,如果有DSDTEDITOR、IOREGISTEXPLOR、KEXTWIZARD软件选择装上。
三、系统引导安装
变色龙可以这里下载:
选择适用自己的变色龙,我用的是(ATI显卡,所以用了这个版本)Chameleon_2.1svn_r1995_trunk_780_pkg boot.zip先解压出来。另外的我从
wowpc.iso.Chameleon_2.1svn_r1995_trunk_780.zip(版本一致)中得到EXTRA文件夹,然后把必须的补丁放到EXTRA文件夹下。路径如下:
/Extra/Themes文件夹(变色龙的主题)
/Extra/smbios.plist(以我的方法是暂时是没有的,不要紧,变色龙装好了再来完善)
/Extra/org.chameleon.Boot.plist
/Extra/Extensions/FakeSMC.kext(必须的)
/Extra/Extensions/其它补丁
安装步骤:
文本教程如下:
第二部分文本教程,所有命令及解释都有
建立EFI分区
打开   应用程序-实用工具-终端
1. 获取管理员权限
sudo -s
2. 查看硬盘的分区图
diskutil list


3. 建立并格式化EFI分区。新建EFI分区才用这步,如只是平时维护更新EFI内容则跳过这步。


newfs_hfs -v EFI /dev/disk0s1    (注意:disk0s1是 diskutil list看到到的EFI盘符要替换)
执行该命令后正常将提示Initialized /dev/rdisk0s1 as a 200 MB HFS Plus volume
4. 建立EFI文件夹
mkdir /Volumes/EFI
5. 将EFI分区映射到EFI文件夹上
mount_hfs /dev/disk0s1 /Volumes/EFI  (注意:disk0s1是 diskutil list看到到的EFI要盘符替换)
该命令执行后,正常会在Finder或桌面显示出EFI分区。这时可以手动把boot、Extra、Extensions、com.apple.Boot.plist、Themes、dsdt.aml等等复制进去
6. 安装Mac变色龙
cd+空格+拖拽BOOT档案所在的文件夹
写入boot0或者boot0hfs至要安装MAC的EFI磁盘里面
sudo ./fdisk440 -f boot0hfs -u -y /dev/rdisk0  (注意:disk0是 diskutil list看到到的EFI盘符要替换,gpt最好是写入boot0hfs,boot0hfs是不需要考虑激活分区的)
写入boot1h至安装MAC的EFI分区
sudo dd if=boot1h of=/dev/rdisk0s1  (注意:disk0s1是 diskutil list看到到的EFI要盘符替换)
为了防止系统将EFI分区变为不可卸载的状态 加入命令
sudo touch /Volumes/EFI/.fseventsd/no_log
修复boot权限
sudo chown 0:0+空格+boot文档
推出EFI分区 解除第5步建立的映射关系
umount /Volumes/EFI
执行后,EFI分区将会在Finder或桌面上消失。如果推出失败,可执行umount -f /Volumes/EFI
删除第4步建立的EFI宗卷目录。
rm -rf /Volumes/EFI

上面的操作完成后,非4kb硬盘就能够由变色龙引导,但4kb硬盘会出现"boot0:error"
参考:黑苹果必读FAQ---进阶篇 中的“解决 boot0 : error 最简单的方法
你需要一个可运行的Linux系统,无论什么都可以,但是我偏向ubuntu,因为他友好的界面
附上下载链接:http://www.ubuntu.com/download/ubuntu/download
保险起见,如果你使用的是64位win7的话,那么建议你下载64位的linux,当然32位的也可以
下载完成之后,刻录到cd或者dvd(U盘也是可以的)
完成了之后,重启,并在bios中设置从CD/DVD或U盘启动,之后进入Ubuntu

你将看到Ubuntu十分漂亮的欢迎界面,提示“试用ubuntu”或者“立即安装”,选择“试用”

进入桌面后,等待几秒钟,直到所有项目都加载完成
之后在左侧,你可以搜索gpart,之后你能看到gparted的图标,单击它并等待直至显示出所有的盘符
找到你的Mac系统盘,我的是盘符名是mac hdd,在它右边你能看到 /dev/sdaX(X代表数字)  
我的是sda3,你的可能不同,请记住它
下载这个附件,并把它保存到移动存储设别中(U盘,TF卡神马的都可以)
boot1h.zip

当然,你也可以直接在Ubuntu下联网下载这个附件,都行
单击Home图标,你能够看见你的移动存储设备,复制boot1h到home文件夹
完成之后,再次单击搜索按钮,搜索“终端”并打开,输入以下指令
sudo dd if=boot1h of=/dev/sda3 bs=4096

记得把sda3改成你自己的数值,我这里是sda3,你的可能不一样
按下回车,你将看到“0+1 ..downloading at 1.3mb/s”之类的显示
完成之后,重启,你便能看到Chameleon的启动画面了

上面这个命令需要注意的:我们的目的是写入EFI,不是MAC的系统分区。在GPARTED中可以看到EFI对应的分区名称是什么,我的是“Sda1”,所以命令应该改为:
sudo dd if=boot1h of=/dev/sda1 bs=4096
到这一步4Kb硬盘的引导就成功了。

四、系统的完善与驱动安装
上面变色龙引导是成功了,但有两个文件也是非常重要的(只是非必要的)一个smbios,一个org.chameleon.Boot。我是参考: 【變色龍系列二】com.apple.Boot.plist + SMBIOS.plist 設定說明【09/22 更新】中对参数的说明,然后用chameleon_wizard生成的。
1.RTL8111E 网卡驱动
下面可能用到某些软件需要连网的,所以先把网卡驱动装上, RTGNICv2.0.6For10.7(RT8111E).zip
2.DSDT与显卡ROM的提取
显卡ROM是在WIN下提取的,老实说很不希望要在WIN下工作,不过我的ROM是在今年二月份的时候单硬盘双系统时得到,今次的单硬盘单系统我就没花什么功夫。如果那位知道如何在MAC下提取显卡ROM的,请知会一声,我补充记录下来的,谢谢。
MAC下提取DSDT方法:
DSDTEDITOR:[PATCH]->[EXTRUCT_DSDT],[IASL]->[COMPILE],[FIX_ERRORS]
有ERROR与WARNING的请网上搜索自行修复一下。用技嘉板真的很幸运,FIX后只有一个WARNING。
[IASL]->[SAVE_AML_AS},记得保存文件要加后缀名"aml"。这个就是最原始的DSDT了。
3.ALC 887-VD声卡:
关于GA-H61MA-D2V这板的声卡是不是ALC-887VD,我是在UBUNTU提取声卡CODEC的时候看到的,如果查技嘉官网得到的只是ALC887。驱动ALC887-VD我是用DSDT加KEXT方法的:
a.DSDT的修改:
打开DSDTEDITOR:找到DEVICE_HDEF(这个我是在WIN下的DSDTEDITOR载的,在公司,所以....小声点....)
对应的代码:
整段修改为以下代码:
        Device (HDEF)
        {
            Name (_ADR, 0x001B0000)
            OperationRegion (HDAR, PCI_Config, 0x4C, 0x10)
            Field (HDAR, WordAcc, NoLock, Preserve)
            {
                DCKA,   1,
                        Offset (0x01),
                DCKM,   1,
                    ,   6,
                DCKS,   1,
                        Offset (0x08),
                    ,   15,
                PMES,   1
            }
            Method (_PRW, 0, NotSerialized)
            {
                Return (GPRW (0x0D, 0x04))
            }
            Method (_DSM, 4, NotSerialized)
            {
                Store (Package (0x0C)
                    {
                        "device-id",
                        Buffer (0x04)
                        {
                            0x87, 0x08, 0xEC, 0x10
                        },
                        "built-in",
                        Buffer (One)
                        {
                            0x00
                        },
                        "layout-id",
                        Buffer (0x04)
                        {
                            0x77, 0x03, 0x00, 0x00
                        },
                        "model",
                        Buffer (0x07)
                        {
                            "alc887"
                        },
                        "PinConfigurations",
                        Buffer (Zero) {},
                        "hda-gfx",
                        Buffer (0x0A)
                        {
                            "onboard-1"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }

        }
红色字部分就是ALC887-VD必须加入的代码。
然后还要加入一段DTGP的代码,我是加在最后面的。

代码:
    Method (DTGP, 5, NotSerialized)
    {
        If (LEqual (Arg0, Buffer (0x10)
                {
                    /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                    /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                }))
        {
            If (LEqual (Arg1, One))
            {
                If (LEqual (Arg2, Zero))
                {
                    Store (Buffer (One)
                        {
                            0x03
                        }, Arg4)
                    Return (One)
                }
                If (LEqual (Arg2, One))
                {
                    Return (One)
                }
            }
        }
        Store (Buffer (One)
            {
                0x00
            }, Arg4)
        Return (Zero)
    }
好了,DSDT的修改完成了,记得FIX 一下,然后存为aml,放到/EXTRA文件夹下。
b.安装kext:
接下来就是,使用KERT_WIZARD安装附件中AppleHDA.kext和ALC887HDA.kext两个kext就可以了。 alc887-vd.zip   
重启一下,声卡就OK了。我的情况是加入DSDT和安装好网卡跟声卡后,开机马上就快了很多。
4.HD6570 显卡驱动
全方太长,我不贴了,总结一下有以下几个步骤:
1.查找显卡ID,看显卡是否能免驱的。
在WIN下比较易看到,设备管理器-》显示适配器-》显卡。然后是详细信息-》硬件ID

这图是在我笔记本上载的,显卡是6470M,跟HD6570的硬件ID是不同的,但方法是一样。从"PCI\VEN_1002&DEV_6760"中,我们要的就是"1002"与"6760",把它变成这样的格式"0x67601002"来查找下面这个表(我的HD6570是"0x10026759,在下表中两个显卡都有的,都能免驱)
0x68981002 0x68991002 0x68E01002 0x68E11002 0x68D81002 0x68C01002 0x68C11002 0x68D91002 0x68B81002 0x68B01002 0x68B11002 0x68A01002 0x68A11002
0x67681002 0x67701002 0x67791002 0x67601002 0x67611002 0x67501002 0x67581002 0x67591002 0x67401002 0x67411002 0x67451002 0x67381002 0x67391002 0x67201002 0x67221002 0x67181002 0x67191002 0x68401002 0x68411002 0x67041002
2.确定显卡能免驱后,然后就是修改DSDT
但我们需要先用IORegistryExplorer查看显卡的位置。先选“IODeviceTree”,然后就会列出硬件的树形表,老实说,现在我没有找到一个方法能精确定位显卡所在位置,下图的这个位置是我看完整个树形表后推断出来的,然后我继续下面的步骤,成功驱动了,从而确定是这个位置的。
然后打开DSDTEDITOR进行修改,请参考ati 5XXX和6XXX免驱 但显卡名称不对,DVD意外退出的DSDT解决办法 这个教程,我的显是VGA、DVI、HDIM三个接口,所以用了下面的这种方法修改:

找到PEG0位置,加入下面红色部分的代码

            Device (PEG0)
            {
                Name (_ADR, 0x00010000)
                Device (GFX0)
                {
                    Name (_ADR, Zero)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x0C)
                            {
                                "AAPL,slot-name",
                                Buffer (0x07)
                                {
                                    "Slot-1"
                                },
                                "@0,name",
                                Buffer (0x0D)
                                {
                                    "ATY,Pithecia"
                                },
                                "@1,name",
                                Buffer (0x0D)
                                {
                                    "ATY,Pithecia"
                                },
                                "@2,name",
                                Buffer (0x0D)
                                {
                                    "ATY,Pithecia"
                                },
                                "model",
                                Buffer (0x13)
                                {
                                    "ATI Radeon HD 6570"
                                },
                                "hda-gfx",
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }
                Device (HDAU)
                {
                    Name (_ADR, One)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x02)
                            {
                                "hda-gfx",
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }
                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR02 ())
                    }
                    Return (PR02 ())
                }

其中,三个蓝色字“Pithecia”,是我根据上面的参考教程中ATICONFIG表确定的(是根据显卡系列及接口数确定的)。
找到合适Ati Config的值建议先用加变色龙参数测试.在org.chameleon.Boot添加


  • <key>GraphicsEnabler</key>
  •     <string>Yes</string>
  • <key>AtiConfig</key>
  • <string>XXXX</string>


上面代码中“<string>XXXX</string>”改为ATICONFIG表中对应的值确定,HD6570就是“Pithecia”
如果加这些参数后还是没有任何效果
在win提取rom(请参阅上面的“四、系统的完善与驱动安装-2.DSDT与显卡ROM的提取”,),然后命名成1002_XXXX放在Extra(HD6570是1002_6759,把它放到EXTRA文件夹下),并在变色龙再添加

  • <key>UseAtiROM</key>
  • <string>Yes</string>


做这些操作后如果能正常打开DVD播放程序(可能名称还是显示不正确),你就可以确定Ati Config值,然后把代码加入DSDT。   


终于都写完了,希望对我自己有用之余,对大家也有个参考作用。

打赏楼主

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

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

本版积分规则

麦创网 ( 苏ICP备13053101号-1 )

@麦创网 禁止任何未经允许的修改,传播或使用。

Powered by Discuz!

©2012 @ iMac.vip. 用户言论不代表本站立场。

返回顶部