GPT(4kb硬盘) 单硬盘装变色龙、GA-H61MA-D2V、ALC887-VD、HD6570
配置如下:
进入桌面后,等待几秒钟,直到所有项目都加载完成
之后在左侧,你可以搜索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
0x67681002 0x67701002 0x67791002 0x67601002 0x67611002 0x67501002 0x67581002 0x67591002 0x67401002 0x67411002 0x67451002 0x67381002 0x67391002 0x67201002 0x67221002 0x67181002 0x67191002 0x68401002 0x68411002 0x67041002
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 ())
}
终于都写完了,希望对我自己有用之余,对大家也有个参考作用。
I3 2120
GA-H61MA-D2V(REV.2.0 BIOS:F1)
KINGSTON 1333 4G*1
ALC887-VD
RT8111E
SAPPHIRE HD6570 512M
希捷500G(4kb)硬盘(ST500GDM002)
USB键盘、鼠标
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”或者“立即安装”,选择“试用”
附上下载链接: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文件夹
完成之后,再次单击搜索按钮,搜索“终端”并打开,输入以下指令
记得把sda3改成你自己的数值,我这里是sda3,你的可能不一样
按下回车,你将看到“0+1 ..downloading at 1.3mb/s”之类的显示
完成之后,重启,你便能看到Chameleon的启动画面了
上面这个命令需要注意的:我们的目的是写入EFI,不是MAC的系统分区。在GPARTED中可以看到EFI对应的分区名称是什么,我的是“Sda1”,所以命令应该改为:
按下回车,你将看到“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的提取
请参考: 简单教程:看图学DSDT及SSDT制作
显卡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了。
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)
}
}
{
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)
}
}
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)
}
{
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在WIN下比较易看到,设备管理器-》显示适配器-》显卡。然后是详细信息-》硬件ID
这图是在我笔记本上载的,显卡是6470M,跟HD6570的硬件ID是不同的,但方法是一样。从"PCI\VEN_1002&DEV_6760"中,我们要的就是"1002"与"6760",把它变成这样的格式"0x67601002"来查找下面这个表(我的HD6570是"0x10026759,在下表中两个显卡都有的,都能免驱)
0x67681002 0x67701002 0x67791002 0x67601002 0x67611002 0x67501002 0x67581002 0x67591002 0x67401002 0x67411002 0x67451002 0x67381002 0x67391002 0x67201002 0x67221002 0x67181002 0x67191002 0x68401002 0x68411002 0x67041002
2.确定显卡能免驱后,然后就是修改DSDT
但我们需要先用IORegistryExplorer查看显卡的位置。先选“IODeviceTree”,然后就会列出硬件的树形表,老实说,现在我没有找到一个方法能精确定位显卡所在位置,下图的这个位置是我看完整个树形表后推断出来的,然后我继续下面的步骤,成功驱动了,从而确定是这个位置的。
但我们需要先用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。
终于都写完了,希望对我自己有用之余,对大家也有个参考作用。