日前 tonymac 網站發表的「2012黑蘋果採購指南」中,特別提到兩張支援 Thunderblot 界面的主機板:GA-Z77X-UP4-TH 與 GA-Z77X-UP5-TH 。其中 GA-Z77X-UP4-TH 已經在台灣開賣,定價是 6990 元,相當於兩張 Z77-DS3H,比國外 Amazon 的 189 美金(約台幣 5,670 元)貴上不少,最高等級的 UP5 TH 也不在台灣開賣,這做法跟 hTC 的有像(賣回台灣次等的,也更貴)。秉持「我不入地獄 誰入地獄」的白老鼠精神,於是把當初只能買到的 H77-DS3H 便宜脫手,再加了些錢弄一張回來嘗試裝黑蘋果。

我先講結論好了...以目前台灣買得到的三張推薦板子:Z77-DS3H,H77-DS3H,以及 Z77X-UP4,買 H77-DS3H 就夠了,或是 Z77-DS3H 用來超頻也行。這張 Z77X-UP4安裝的黑蘋果,問題比 DS3H 還多一點,感到有點失落。

2012.08.21補充:因GA-Z77X-UP4-TH的USB3的支援性不佳,造成爭議,Tonymac網站在8/21將此項目從建議清單移除。

2013.08.15補充:歷經一年的BIOS修正與三方驅動支援,這張板子重回建議清單榜上啦~(網址)

GA-Z77X-UP4-TH-All  

這張用料看起來相當的高檔,官網表示使用了高檔的數位供電,當我收到時拿在手上,這重量差點以為裝了磚塊,我想大概是上頭那幾個厚實的散熱器導致的。大小也比Z77/H77-DS3H 大了些。與一般 Z77 的板子相比,大概就是多了 VIA VL800 控制器組成的 USB 3.0x4(直接建立在主機板背板),以及最大的賣點:Thunderbolt x 2。

已知 VIA VL800 必須在進入 (Windows) 作業系統之後才能夠啓動(所以這 4 個 Port 不支援 USB 開機裝置),也因此剩餘的 Z77 原生 USB 2.0 全得透過機殻拉線才能使用,所以我個人對於這種設計有些意見。既然開機不支援,所以直接建在主機板就顯得不合理。

黑蘋果不支援 VIA VL800,所以這四個 USB 進了黑蘋果之後全都無法使用,形同廢 Port。

四個 VL800 USB3.0 霸佔了主機板後方的位置,因此剩餘的原生 USB 2.0 和 Z77 原生 USB 3.0 都必需使用機殼拉線才能使用,一共是 3 + 1 組總共 8 ports( 3 組 USB 2.0 共 6 ports 與 1 組 USB 3.0 共 2 ports ),如何透過機殼全數拉岀這 8 個原生 ports,避免浪費,就是個值得思考的問題。

這四個 VL800 USB 3.0 既然相容性沒原生的好,我覺得應該要做成機殻拉線,並隨著板子附贈機殻後檔或是前檔(已經賣那麼貴了,且還比國外貴很多),有需要的人自己再去拉來用才對。

6374_big  

(圖片原始來源自 Gigabyte 官網)

Apple 在發表 2012 MBP 時特別補上一句:消費者不需思考哪個是 USB3 埠,插上去就能自動辨識使用。以 MBP 才少少的兩個 USB 埠來說,這句聽起來像是多餘的,但相對於其他廠商產品以教導用戶學會分辨不同規格 USB 埠來說,貼心與簡化的設計相信是消費者更需要的。

這張板子的USB在黑蘋果下有個大問題,最後會說到。(2013.04.20 新增:本主機板之 USB Port 問題已全數獲得解決,見本文下方說明)


安裝OSX 10.8 Mountain Lion

安裝的方式與注意事項,和 H77-DS3H 都一樣。所以可直接參考:

黑蘋果二號攻略(1)(最新Ivy Bridge CPU + Lion 10.7.4)

Multibeast設定:
GA-Z77X-UP4-MultiBeast
 
DSDT的修改:可參考:
黑蘋果二號攻略(2) (密碼:coqup6eji3)
 
DSDT 的修改內容,和 H77-DS3H 幾乎是一樣的,差別在於音效晶片的 layout-id 不同,以及不用再做 AppleLPC.kext 的 DSDT 修正。安裝完成後,除了上述的 VL800 控制的 USB 3.0 無效,其他如內顯/獨顯/HDMI音效/手動睡眠...大多能用。
 
至於 Thunderbolt 的功能,Tonymac 的說法是原生支援。而 Thunderbolt 包含一個與 Display Port 相容的螢幕輸出,且接頭形式也跟 Mini Displayport 一樣,我用「Mini Displayport轉HDMI」(連結)接在 Thunderbolt 上,的確將 HD4000 的畫面成功輸出到螢幕上,也能和另一個 HDMI 搭配做雙螢幕輸出(內顯 Intel HD 4000)。用原廠的「Thunderbolt 對 FireWire 轉接器」(連結),也能連接 Firewire 的硬碟外接盒,系統資訊被歸類在「Firewire 匯流排」裝置( Thunderbolt 還是一樣出現「找不到硬體。」)。不過接上之後得重新開機才會生效,不然會沒有作用(可能是電源的問題),所以看起來應該是「勉強」原生支援了。
 
Z77X-UP4-Thunderblot-FW  
 
 
而這張板子執行黑蘋果最大的問題是:
 
1. USB 鍵盤滑鼠必須在開機時就接上(Z77 的 USB2.0),否則進了黑蘋果之後,USB 鍵盤滑鼠再接上也不能驅動(註:這問題在更新 BIOS 韌體後解決)。
 
2.這張主機版的 Z77 原生 USB 3.0,在黑蘋果下只能支援 USB 3.0 的裝置,也就是說 USB 2.0 的裝置,接在主機板 Z77 原生 USB 3.0 時,是無法使用裝置的。除非進BIOS 將 XHCI 關閉,把 Z77 的原生 3.0 降成 EHCI (USB 2.0),這樣全部的 Z77 原生 USB 就能正常使用了,不過最高卻只有 USB2.0 的速度,真是頗無言...(我懷疑是這張板子的 XHCI/EHCI 在黑蘋果下無法自動辨識切換,可能需要 BIOS 或 kext 的修正)。
 
這兩個問題並不會在 H77-DS3H 發生(Z77-DS3H 也沒人反應這問題),所以這張板子的 USB 支援性有些問題。
 
聽說 USB 的問題過一段時間就可望解決,所以只好再等等了。 
 

2012.08.18 這張板子的後續問題已經開始發酵了。

Suggestions to Replace z77x-UP4

大意就是說,有人開始抱怨,就因為「Buyer's Guide 2012 」這篇文章的推薦,才跑去買了這張板子,結果竟然遇到 USB3 的問題,爬文才知道這問題已經爆了,但該篇推薦卻完全都沒提到這個但書。論壇管理者 thelostswede 的回應是他也不清楚 tonymac 為何這麼做,其他該做的也都做了(除錯/測試/在相關討論中証實),而 USB3 的問題已經確認了,正設法解決中。也有人把這問題反映給技嘉的Support了。

後續如何,讓我們繼續用菜英文看下去...

2012.08.21 最後的結果是:因GA-Z77X-UP4-TH的USB3的支援性不佳,造成許多人的困擾和爭議,Tonymac網站在8/21將此項目從建議清單移除了。

Z77X-UP4-TH-Remove  

不過 tony 也表示:Personally this is not a dealbreaker in my opinion and the board is amazing for OS X, but I can see why people are miffed. 也就是說,他個人認為 USB3 問題,並不影響推薦的意願,但也瞭解也有人因這個問題而不高興。

 

這下子成了真正的白老鼠了...傻傻地陪這件事情繞了一大圈...


2013.03.21新增:VIA VL800 與 USB3 Port XHCI 修正

這張板子的 USB 問題,如今終於獲得全面性解決了。VIA VL800 的 USB 埠支援開機裝置,且原生 USB3 使用 USB 2 裝置的問題已經有解了。
 
先將主機板 BIOS 韌體升級到 F9 (下載),並下載安裝 Zenith432 發表的 GenericUSBXHCI.kext 即可。來源:
 
詳情:本文章13樓回文。 感謝 am 兄提供資訊!
 
(2013.04.20新增):MultiBeast 5.3.0 (下載,需註冊)新增 Zenith432's GenericUSBXHCI.kext,下載安裝即可。
 
USB30
 
以上選項如果安裝在 UniBeast USB 上,也能夠讓 UniBeast USB 在 VIA VL800 USB 埠進行開機與安裝 OSX 。 
 
註:目前使用 DSDT 僅只能修正原生 Intel USB 3 無法使用 USB 2 裝置的問題,不能一併解決 VIA VL800 無法驅動的問題(DSDT 修正方式請參考「黑蘋果二號攻略(2)」(密碼:coqup6eji3))。所以建議直接採用安裝 Zenith432's GenericUSBXHCI.kext 即可。 

2013.08.15新增:I'm Back: Buyer's Guide August 2013
 
經過一年的時間,BIOS 與第三方 Kext 的陸續支援,這張板子再度重新回到推薦名單榜上啦!
 
 

補充:EFI 開機+同時啟用內顯與獨顯設定
 
這張板子限定 UEFI 開機,又同時啟用內顯和獨顯時,會發生 BIOS POST 畫面結束之後卡住、無法進入開機的情況,推測應該是這張板子 UEFI BIOS 的 BUG。需修改以下設定:
 
1. 內顯與獨顯設定(已安裝獨顯裝置)。「預設啟動的顯示裝置」改成「IGFX」,「內建顯示裝置」改為「開啟」。
IGFX_PEG
 
2. 將「視頻 OpROM 啟動方針」設定為「Legacy First」。
Video_OpROM
 
若發現開機過程突然沒有畫面,可能是過程中畫面輸出被強制切換到另一個連接埠了,切換螢幕並嘗試檢視畫面即可。

維修紀錄:
 
2016.03 開始發生主機板 SATA 裝置會無預警離線的現象,幾乎每天都會,只有 RAID 卡(HighPoint Rocket 644L)上面的 SATA 裝置不受影響。反覆嘗試搞了很多天,反覆重開機、重刷 BIOS 、換掉所有的 SATA 排線,狠下心砸錢換掉電源供應器,有稍微好了一陣子,過幾天又再度復發,最終主機板再也偵測不到任何的 SATA 裝置。
 
親送技嘉台南維修,告知是 PCH 故障,好險當初有上網註冊四年保,幾乎快過保了,原片免費維修換了一顆 PCH 晶片(主圖中右下角被散熱片覆蓋的晶片)。這問題在上一代的 P67/H67/HM65/HM67 晶片組出過包還上了新聞,症狀幾乎是一模一樣,誠心希望這張 Z77 的 PCH 故障只是個案。
 
GA-Z77X-UP4-TH-RMA
 
RMA 回來之後,截至目前為止(2016.07)這問題沒再發作過,應該是解決了。希望這台黑蘋果還能撐個幾年,現在使用上很注意 PCH 的溫度是否有異常的情況(約 35~43 度之間)。

(2016.03.30 新增)在 GA-Z77X-UP4 TH的 UEFI BIOS 加入 SLIC 2.1 資訊
 
BIOS 內加入這個東東能做啥?嗯,自己動手查 吧~
 
1. 下載官網的 UEFI BIOS:F9 版 (下載網址:GIGABYTE 官網支援)。得到 mb_bios_ga-z77x-up4-th_f9.exe,執行它後自解壓縮,取得原廠 UEFI BIOS 原始檔 z77xup4th.f9 (8,388,608 byte)
 
2. 下載 PhoenixTool Ver 2.66 版(下載位址:BIOS 之家
 
3. 到 d-fault.nl 網站(網址),產生 SLIC 2.1 資訊。技嘉的主機板都可以用填入以下資訊,然後按 [Download] 下載。
OS 2.x Creator
之後會得到一個檔案 GBT[GBTUACPI_MSFT]2.1-1A9179F1.BIN 。
 
4. 執行 PhoenixTool 2.66 英文版,畫面如下:
PhoenixTool266-1
 
選擇原廠 UEFI BIOS 之後會載入該檔案的相關資訊
PhoenixTool266-2
 
點擊 Advantancd ,會先提示有可能讓主機板變磚的危險。按  [是(Y) ]
PhoenixTool266-3
 
對照以下設定,之後按 [ Done ]。
PhoenixTool266-4
(取消 [ Only alter tables in main ACPI module ],勾選 [ Compress stored submodules when insert new modules ] ,最後按 [ Done ] )
 
 
最後按 [ Go ] 。
PhoinexTool_Go  
 
出現提示,不管它,按 [ 是 (Y) ] 繼續。
PhoenixTool266-6
 
之後就是漫長的過程,大約 1~2 分鐘,在原廠 UEFI BIOS 相同目錄下會產生 XXXX_SLIC.XX 檔案。我們一般用 Mod BIOS 來稱呼這種用戶自行修改過的 BIOS 檔案。
PhoenixTool266-7
 
5. 將 Mod BIOS ( XXXX_SLIC.XX ) 刷進主機板內。
 
補充事項:
 
1. GIGABYTE 有 DualBIOS 設計,萬一刷完後死機了,可啟用 DualBIOS 回復機制,BIOS 回復到出廠時的最初版本。
  • 拆掉所有可開機裝置。若有內顯與獨顯,建議先拔除獨顯。
  • 關機的狀態下,按下電源紐約 3-5 秒不放,電腦會啟動,電源鈕持續按住不放
  • 持續按下電源鈕的狀態,電腦約五秒後會自動斷電,電源鈕仍持續按住不放。斷電後約 5 秒鐘,再放開電源鈕。
  • 按一下電源鈕後放開,電腦會開機。若開機五秒後自動斷電重開,表示已經進入 DualBIOS 回復流程。
  • 等開機 POST 畫面跑完,會自動進入 BIOS 回復動作,跑完之後 BIOS 會回復到出廠的版本。
2. 刷 Mod BIOS 時,建議先將獨顯拆掉,使用內顯的環境下操作,等一切完成之後再把獨顯裝上,免得更新完立刻出現黑屏。
 
, , , , , , , , , , ,

benjenq 發表在 痞客邦 PIXNET 留言(14) 人氣()


留言列表 (14)

發表留言
  • evenpda
  • Ben大好,我也是unibeast來做usb開機,怎麼開不了?在ACPI就unable to find driver for this platform,kernel panic了,是ivy_bridge的關係嗎?
    我的配備跟您一樣Z77x up4 th + i7 3770,RAM 4GBx4(金士頓),硬碟是WD 2TB,顯卡ATI還沒到,先用主板上的HD 4000
    還是不能直接裝mountain lion?
  • 嗯...我個人覺得啊...這張Z77X-UP4 TH...BUG超多...
    感覺像是搶著上市,一堆BUG還在修正。
    (3D BIOS有錯誤的顯示名稱,而且F1/F2/F3三個版都有錯誤,而且錯誤都不一樣)

    例如,AX6870插在第一個PCIex16,那麼我有另外一張RAID卡Rocket 644L,只能插在第二個PCIex16,
    如果插在第三個PCIex16...很抱歉,開機會卡死在RAID的畫面。

    再來就是睡眠...不是每次睡眠都能醒得過來,現在還在抓原因,
    有時候重開機也會卡死(BIOS跑完讀不到硬碟的樣子),得把電源關掉,停個幾秒再開。

    之前用H77-DS3H從沒遇過這些鳥問題...黑蘋果安裝一次就KO。

    你的情況我有遇過一次,解決的方式是把有的沒的配件全拆掉,然後就過了,
    你可以試著進BIOS把XHCI關掉,讓它變成2.0(網路埠那排的兩個USB)試試看。

    Z77x up4 th + i7 3770 + 4Gx4-1600 可以直接裝Mountain Lion,
    不過因為鳥問題還不少,所以要多嘗試...
    例如上面提到的換孔插,或是換成DVI輸出試試看。

    Ivy Bridge的kernel panic是安裝Lion才有的,得做BridgeHelper修正。

    benjenq 於 2012/08/14 13:01 回覆

  • evenpda
  • 好像有一種買錯板子的感覺,原本是看這塊有2個TB的輸出才買的,網路上有說這板子也可以直接裝Mac,沒想到問題那麼多,目前只找到10.7.4 iNDO板本裝得起來,我可以用Lion去升級成Mountain Lion而不用重新安裝嗎?
    我這台電腦沒什麼配件耶,PCIex什麼都沒插,應該很簡單吧,只有Case上有一些額外的USB的擴充面板,會不會是記憶體的問題?等晚上顯卡來了我再試試吧,真難搞~ 感謝您的建議!Ben大常裝黑mac喔,我是2年沒碰了,有問題再請教你囉~
  • 這張板子不太好搞,真的...不過買了就用吧~不然也不好脫手了。
    前幾天入手的時候,店家透露這張板子使用的人很少,銷售量還是個位數。

    我是給它裝起來了,的確也是UniBeast USB + 原版Mountain Lion 10.8直接裝起來,
    過程也很順利。
    用的是威剛32G USB 3.0,插在網路孔那排USB上(Z77的原生USB)
    我在想是不是您的UniBeast USB有問題...
    UniBeast USB建議用MBR格式做切割與格式化...

    至於TB...網路上說這張有支援,我手邊目前沒有對應的周邊,
    不過我把Mini Display Port接在Thunderbolt上,的確可以輸出,
    且搭配另一個HDMI也可以雙螢幕。

    白蘋果可以直接執行「應用程式/安裝Mountain Lion」從10.7升10.8,
    但黑蘋果好像不行的樣子...我不是很確定。

    其實我也是最近才摸,因為工作需求的原因,也買不起效能更好的MAC,
    只好朝這方面著手了。

    benjenq 於 2012/08/15 19:45 回覆

  • evenpda
  • 我在硬體清單上沒有看到Thunderbolt被驅動,是否要另外安裝driver/kext?還是
    10.7不支援?
  •  我在清單上也沒看到,過兩天會拿到ThunderBolt轉Firewire 800的線,再拿來試試看...

    另外,蘋果的2011 MBA/MBP/iMAC都有支援ThunderBolt,所以10.7也有支援。

    benjenq 於 2012/08/15 02:21 回覆

  • 訪客
  • 看起來ThunderBolt沒顯示出來OK,它是歸在SATA的類別中,
    http://www.tonymacx86.com/73-gigabytes-z77x-up5-th-verified-work-thunderbolt-devices-os-x.html
    我的10.8也裝起來了,這版子在Mountain Lion有比較充足的支援,所有的週邊都有驅動,只差你所提的那4個USB 3.0,其實也沒差反在Native的2個USB 3.0的port可以用就夠了,加上有兩個TB的port,USB 3.0就比較少用了吧(反正目前還是一大堆USB 2.0的裝置),感謝版大的協助及分享!
    另外,這板子是否內顯跟外顯不能同時運作?
  • 今天拿到了Thunderblot轉Firewire 800的原廠連接線,
    讓主機板透過Thunderblot轉接Firewire 800的裝置(硬碟外接盒),
    可用,在系統內被辨識成「FireWire 匯流排」,800Mb/s
    Thunderblot還是一樣出現「找不到硬體。」
    不過接起來得重新開機才能用,不然會認不到。

    內顯跟外顯可以同時運作,UEFI設定是
    1.預設顯示選IGFX
    2.內顯Enable,

    也就是內顯為主,外顯為副。
    進了OSX系統會自動選擇,
    兩個一起接時就是主內顯/副外顯。
    (似乎沒辦法主外顯/副內顯)

    另外主機板上還有一組14pin的Intel Z77原生USB 3.0,
    花點小錢買個後板式(約一百多元)或前檔式(約三百元)的USB 3.0支架,
    又多了兩組可用的USB 3.0了,不過得注意電源不足的問題。

    benjenq 於 2012/08/17 00:30 回覆

  • evenpda
  • 我在Serial ATA那項看到的Intel Series Chipset 7是unknown AHCI Standard controller,這樣是有驅動到嗎?版大你的顯示也是這樣嗎?是不是要改DSDT?
  • 這問題有解,請參考我的文章「黑蘋果啓用硬體RAID磁碟陣列」
    http://benjenq.pixnet.net/blog/post/30988001

    benjenq 於 2012/08/17 22:09 回覆

  • Lionel Luthor 2011
  • 哈,看來版主的口袋挺深的.....也勇於嘗試,讚!
    說到VIA和HTC.....根本就是系出同源嘛!搞死人就有!

    其實這次Intel推出7系列時,我也手癢過.....
    只是考慮到實際用途和效能......還是決定忍住!
    (z68+i5 2500+6850玩星海II也夠了,我又不是靠Mac吃飯的.....)
    把錢存起來,等新mac mini推出時再買一臺「觀賞」好了= .=
  • 不是口袋深,而是破了個洞...XD

    說到技嘉,我個人並不太欣賞這家公司,把它跟hTC擺在一起比較,
    「巷子內的人」應該知道我的意思。

    距離我上一次自己選配組裝電腦已經是十年前的事了,
    幾年前的金融海嘯,失業窮困潦倒的時候,
    別說是買電腦了,生活基本開銷都成了問題,(這一點都不豪洨)。
    生活逼急了,狗急也跳牆,
    腦筋動到家裡一台不用的舊電腦(還是幾年前從學校電腦教室淘汰下來的),
    最後成功的將黑蘋果裝起來用
    (Intel 865G晶片組+512RAM...這大概是跑10.6最最最低標的配備),
    後來產出一支iOS APP在App Store上架,
    從此開啓啃蘋果維生的生涯,
    這段故事中間的過程,其實蠻傳奇的,
    將來若有機會寫書,會想把這段寫進去...XD
    沒有蘋果,我大概早餓死街頭了...哈哈~

    現在只是想把黑蘋果弄得更像白蘋果一點,
    不過這幾個月弄到現在也覺得差不多夠了,
    接下來就是買顆容量大一點的SSD回來用,
    整個黑蘋果建置工作就差不多完成了。
    (現在還是用舊筆電硬碟+原價屋1299特價的60G ORZ SSD)

    benjenq 於 2012/08/23 00:49 回覆

  • mrfufu
  • 板主該不會是在紐x電腦購入GA-Z77X-UP4 TH這塊板子的吧?上次去到店員剛好說有位先生說要帶這塊板子回去試試Thunderbolt
  • 不是捏,我在台南欣亞買的。
    當天有個店員也頗感興趣,頻問我買回去要做什麼用,我也是這麼回答他~
    (總不能光明正大的說...買回來裝黑蘋果吧XD)

    benjenq 於 2012/08/27 18:28 回覆

  • 訪客
  • 看到您寫的這篇文章,真是叫我感動的落淚,您真是寫的太棒了...XD
    當初我裝了老半天,失敗了好幾次,亂裝了一堆 kext,然後才莫名其妙的就可以用了...讀了您寫的東西才解了我的困惑啊...XD

    我是裝在 GA-Z68X-UD3H-B3
  • 恭喜囉~理論上最近一兩年內的Intel主機板+CPU,安裝成功的機率很高,只是系統穩定與驅動支援的程度高低的差別。

    benjenq 於 2012/09/05 19:08 回覆

  • 訪客
  • TB那邊要秀出裝置來的話,一定要改DSDT,加入Name (_SUN, One) 、Name (_SUN, 0x02) ... 等等『視覺系』代碼才有解。

    話說,TB實在很沒用,目前幾乎只有在筆電上搞外接螢幕時才能派得上用場,所以偶自己是買了DS3H。將來等TB普及了,再隨便買張卡來外插或換主機板就行了。

    黑蘋果Lion也是可以從App Store直升Mountain Lion的,不過就得改用Clover或XPC這類的EFI引導程式才行。用變色龍開機時,因為它不是EFI架構的引導模式,就會沒辦法引導到ext4分割區內安裝程式所建立的Install partition,所以只好暫時使用Clover來完成App Store直接升級的過程。

    在App Store下載了Mountain Lion以後,會馬上開始自動安裝。這時要記得先停下來把原版App整個從應用程式裡複製出來保存好,將來就可以自由地使用它。複製好以後再手動點擊它,就可以繼續安裝的過程。

    原版安裝程式會在Macintosh HD上先弄出一個臨時分割區Install partition用來存放安裝資料,就像Recovery HD一樣。所以第一階段安裝完成以後進行第一次重開機時,Clover開機畫面會多出個選項『Start from Install partition...』,選它就會進入第二階段安裝過程,並順利地完成安裝。但是千萬別忘了選定該選項後要改按Space鍵來再度選擇最下方加載FakeSMC和其它kext的選項進行開機,不要很高興地直接按下Return鍵而造成開機或甚至安裝失敗。

    用Clover選Install partition順利安裝完成以後,Install partition就會自動刪除,然後進入第二次重開機。這時,要記得再改回用變色龍開機,讓SystemUUID能夠設定回原值,不然一開機後iCloud就會馬上掛掉。用變色龍開完機確定一切都正常時,以後就可以隨便用什麼開機都沒問題了。

    Recovery HD得要手工建立,可是沒有WiFi的人在Mountain Lion下千萬別搞這個,因為搞成後可能反而會變得不能開機,切記切記。
  • 感謝分享啊~~~
    太強大了...

    benjenq 於 2012/09/07 20:03 回覆

  • 訪客
  • 這是MBA4,2的TB埠DSDT,原廠接口代碼為UPSB,位於P0P2底下,下接的各裝置接口代碼分別為DSB0~DSB4。請注意最後的那個Method _DSM,它就是決定您的TB埠能不能被外接裝置辨識為蘋果原廠TB埠的關鍵,請大家自行加入。

    Device (UPSB)
    {
    Name (_ADR, 0x00)
    OperationRegion (A1E0, PCI_Config, 0x00, 0x40)
    Field (A1E0, ByteAcc, NoLock, Preserve)
    {
    AVND, 32,
    BMIE, 3,
    Offset (0x18),
    PRIB, 8,
    SECB, 8,
    SUBB, 8,
    Offset (0x1E),
    , 13,
    MABT, 1
    }
    OperationRegion (A1E1, PCI_Config, 0xC0, 0x40)
    Field (A1E1, ByteAcc, NoLock, Preserve)
    {
    Offset (0x01),
    Offset (0x02),
    Offset (0x04),
    Offset (0x08),
    Offset (0x0A),
    , 5,
    TPEN, 1,
    Offset (0x0C),
    SSPD, 4,
    Offset (0x10),
    , 4,
    LDIS, 1,
    LRTN, 1,
    , 23,
    LACT, 1,
    Offset (0x30),
    TSPD, 4
    }
    OperationRegion (A1E2, PCI_Config, 0x80, 0x08)
    Field (A1E2, ByteAcc, NoLock, Preserve)
    {
    Offset (0x01),
    Offset (0x02),
    Offset (0x04),
    PSTA, 2
    }
    Method (_BBN, 0, NotSerialized)
    {
    Return (SECB)
    }
    Method (_STA, 0, NotSerialized)
    {
    Return (0x0F)
    }
    Device (DSB0)
    {
    Name (_ADR, 0x00)
    OperationRegion (A1E0, PCI_Config, 0x00, 0x40)
    Field (A1E0, ByteAcc, NoLock, Preserve)
    {
    AVND, 32,
    BMIE, 3,
    Offset (0x18),
    PRIB, 8,
    SECB, 8,
    SUBB, 8,
    Offset (0x1E),
    , 13,
    MABT, 1
    }
    OperationRegion (A1E1, PCI_Config, 0xC0, 0x40)
    Field (A1E1, ByteAcc, NoLock, Preserve)
    {
    Offset (0x01),
    Offset (0x02),
    Offset (0x04),
    Offset (0x08),
    Offset (0x0A),
    , 5,
    TPEN, 1,
    Offset (0x0C),
    Offset (0x10),
    , 4,
    LDIS, 1,
    LRTN, 1,
    , 23,
    LACT, 1
    }
    OperationRegion (A1E2, PCI_Config, 0x80, 0x08)
    Field (A1E2, ByteAcc, NoLock, Preserve)
    {
    Offset (0x01),
    Offset (0x02),
    Offset (0x04),
    PSTA, 2
    }
    Method (_BBN, 0, NotSerialized)
    {
    Return (SECB)
    }
    Method (_STA, 0, NotSerialized)
    {
    Return (0x0F)
    }
    Device (NHI0)
    {
    Name (_ADR, 0x00)
    Method (_EJ0, 1, NotSerialized)
    {
    If (LNot (OSDW ()))
    {
    Store (0x01, \_SB.PCI0.P0P2.LDIS)
    Sleep (0x07D0)
    Store (0x00, GP23)
    Notify (\_SB.PCI0.P0P2, 0x00)
    }
    }
    OperationRegion (A1E0, PCI_Config, 0x00, 0x40)
    Field (A1E0, ByteAcc, NoLock, Preserve)
    {
    AVND, 32,
    BMIE, 3,
    Offset (0x18),
    PRIB, 8,
    SECB, 8,
    SUBB, 8,
    Offset (0x1E),
    , 13,
    MABT, 1
    }
    Method (XRPE, 1, Serialized)
    {
    If (OSDW ())
    {
    If (LLessEqual (Arg0, 0x01))
    {
    If (LEqual (Arg0, 0x00))
    {
    Store (0x03, \_SB.PCI0.P0P2.PSTA)
    Store (0x01, \_SB.PCI0.P0P2.LDIS)
    Add (Timer, 0x00989680, Local0)
    While (LLessEqual (Timer, Local0))
    {
    If (LEqual (\_SB.PCI0.P0P2.LACR, 0x01))
    {
    If (LEqual (\_SB.PCI0.P0P2.LACT, 0x00))
    {
    Break
    }
    }
    Else
    {
    If (LEqual (\_SB.PCI0.P0P2.UPSB.AVND, 0xFFFFFFFF))
    {
    Break
    }
    }
    Sleep (0x0A)
    }
    Store (0x00, GP23)
    }
    Else
    {
    Store (0x00, Local0)
    If (LEqual (GP23, 0x00))
    {
    Store (0x00, \_SB.PCI0.P0P2.PSTA)
    While (0x01)
    {
    Store (0x01, GP23)
    Sleep (0x07D0)
    Store (0x00, Local1)
    Store (0x00, \_SB.PCI0.P0P2.LDIS)
    Add (Timer, 0x00989680, Local2)
    While (LLessEqual (Timer, Local2))
    {
    If (LAnd (LNotEqual (\_SB.PCI0.P0P2.LTRN, 0x01), LNotEqual (\_SB.PCI0.P0P2.UPSB.AVND, 0xFFFFFFFF)))
    {
    Store (0x01, Local1)
    Break
    }
    Sleep (0x0A)
    }
    If (LEqual (Local1, 0x01))
    {
    Store (0x01, MABT)
    Break
    }
    If (LEqual (Local0, 0x04))
    {
    Return (Zero)
    }
    Increment (Local0)
    Store (0x00, GP23)
    Sleep (0x03E8)
    }
    If (LEqual (\_SB.PCI0.P0P2.CSPD, 0x01))
    {
    If (LEqual (\_SB.PCI0.P0P2.SSPD, 0x02))
    {
    If (LEqual (\_SB.PCI0.P0P2.UPSB.SSPD, 0x02))
    {
    If (LNotEqual (\_SB.PCI0.P0P2.TSPD, 0x02))
    {
    Store (0x02, \_SB.PCI0.P0P2.TSPD)
    }
    If (LNotEqual (\_SB.PCI0.P0P2.UPSB.TSPD, 0x02))
    {
    Store (0x02, \_SB.PCI0.P0P2.UPSB.TSPD)
    }
    Store (0x01, \_SB.PCI0.P0P2.LRTN)
    Add (Timer, 0x00989680, Local2)
    While (LLessEqual (Timer, Local2))
    {
    If (LAnd (LNotEqual (\_SB.PCI0.P0P2.LTRN, 0x01), LNotEqual (\_SB.PCI0.P0P2.UPSB.AVND, 0xFFFFFFFF)))
    {
    Store (0x01, Local1)
    Break
    }
    Sleep (0x0A)
    }
    }
    }
    }
    }
    }
    }
    }
    Return (Zero)
    }
    Method (XRIP, 1, Serialized)
    {
    If (LLessEqual (Arg0, 0x01))
    {
    Store (Arg0, GI04)
    }
    }
    Method (XRIO, 1, Serialized)
    {
    If (LLessEqual (Arg0, 0x01))
    {
    Store (Arg0, GD04)
    }
    }
    Method (XRIL, 0, Serialized)
    {
    Return (GP04)
    }
    Name (XRIN, 0x14)
    Name (_GPE, 0x14)
    Method (_DSM, 4, NotSerialized)
    {
    Store (Package (0x03)
    {
    "power-save",
    0x01,
    Buffer (0x01)
    {
    0x00
    }
    }, Local0)
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
    Return (Local0)
    }
    }
    }
    Device (DSB1)
    {
    Name (_ADR, 0x00030000)
    Name (_SUN, 0x02)
    OperationRegion (A1E0, PCI_Config, 0x00, 0x40)
    Field (A1E0, ByteAcc, NoLock, Preserve)
    {
    AVND, 32,
    BMIE, 3,
    Offset (0x18),
    PRIB, 8,
    SECB, 8,
    SUBB, 8,
    Offset (0x1E),
    , 13,
    MABT, 1
    }
    Method (_BBN, 0, NotSerialized)
    {
    Return (SECB)
    }
    Method (_STA, 0, NotSerialized)
    {
    Return (0x0F)
    }
    }
    Device (DSB2)
    {
    Name (_ADR, 0x00040000)
    Name (_SUN, 0x03)
    Method (_RMV, 0, NotSerialized)
    {
    Return (OSDW ())
    }
    OperationRegion (A1E0, PCI_Config, 0x00, 0x40)
    Field (A1E0, ByteAcc, NoLock, Preserve)
    {
    AVND, 32,
    BMIE, 3,
    Offset (0x18),
    PRIB, 8,
    SECB, 8,
    SUBB, 8,
    Offset (0x1E),
    , 13,
    MABT, 1
    }
    Method (_BBN, 0, NotSerialized)
    {
    Return (SECB)
    }
    Method (_STA, 0, NotSerialized)
    {
    Return (0x0F)
    }
    Device (UPS2)
    {
    Name (_ADR, 0x00)
    OperationRegion (ARE0, PCI_Config, 0x00, 0x04)
    Field (ARE0, ByteAcc, NoLock, Preserve)
    {
    AVND, 16
    }
    }
    }
    Device (DSB3)
    {
    Name (_ADR, 0x00050000)
    Name (_SUN, 0x04)
    Method (_RMV, 0, NotSerialized)
    {
    Return (OSDW ())
    }
    OperationRegion (A1E0, PCI_Config, 0x00, 0x40)
    Field (A1E0, ByteAcc, NoLock, Preserve)
    {
    AVND, 32,
    BMIE, 3,
    Offset (0x18),
    PRIB, 8,
    SECB, 8,
    SUBB, 8,
    Offset (0x1E),
    , 13,
    MABT, 1
    }
    Method (_BBN, 0, NotSerialized)
    {
    Return (SECB)
    }
    Method (_STA, 0, NotSerialized)
    {
    Return (0x0F)
    }
    Device (UPS2)
    {
    Name (_ADR, 0x00)
    OperationRegion (ARE0, PCI_Config, 0x00, 0x04)
    Field (ARE0, ByteAcc, NoLock, Preserve)
    {
    AVND, 16
    }
    }
    }
    Device (DSB4)
    {
    Name (_ADR, 0x00060000)
    Name (_SUN, 0x05)
    OperationRegion (A1E0, PCI_Config, 0x00, 0x40)
    Field (A1E0, ByteAcc, NoLock, Preserve)
    {
    AVND, 32,
    BMIE, 3,
    Offset (0x18),
    PRIB, 8,
    SECB, 8,
    SUBB, 8,
    Offset (0x1E),
    , 13,
    MABT, 1
    }
    Method (_BBN, 0, NotSerialized)
    {
    Return (SECB)
    }
    Method (_STA, 0, NotSerialized)
    {
    Return (0x0F)
    }
    }
    Method (_DSM, 4, NotSerialized)
    {
    If (LEqual (Arg0, Buffer (0x10)
    {
    /* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
    /* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
    }))
    {
    Store (Package (0x02)
    {
    "PCI-Thunderbolt",
    0x01
    }, Local0)
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
    Return (Local0)
    }
    Return (0x80000002)
    }
    }
  • 這篇相當有用啊~

    我的主機板Z77X-UP4 TH的DSDT只找到P0P1這個區段,
    編譯時少了一堆Method,例如GP04,GD04,GI04....

    benjenq 於 2012/09/07 23:39 回覆

  • Koban
  • 我也是這張主機板, GA-Z77X-UP4-TH,但是我加裝擴充usb3.0(j-power nec晶片)還是一直讀不到外接碟,在PC(雙系統)完全沒問題,但是在OS 10.8.2完全無效,我只能用原生的那組usb3.0才有用,還是有什麼我該注意的地方嗎? 我這台是網路賣家組的,應該是用變色龍開機的吧,請問版主先生或是網友,針對usb3.0擴充有什麼解決辦法嗎?還是我有什麼沒注意到的呢?
  • USB 3.0擴充卡我沒用過啊...這篇有提到10.8.2對USB 3.0的支援...參考一下吧
    http://www.tonymacx86.com/236-os-x-10-8-2-improves-usb-3-0-adds-support-some-3rd-party-controllers.html

    benjenq 於 2013/01/17 00:39 回覆

  • Koban
  • 我也是這張主機板, GA-Z77X-UP4-TH,但是我加裝擴充usb3.0(j-power nec晶片...(略)
    補充一下配備,我裝了4顆硬碟,一台光碟機,顯卡是quadro 4000,RAM 4X8G,power是650W
    我好需要多這幾個usb3.0埠,有勞您賜教囉~!
  • 承上篇,NEC晶片在10.8.2好像還有相容性問題...

    What we discovered was that the Fresco Logic FL1100 and FL1009 USB 3.0 host controller works natively in OS X 10.8.2, although we've had no luck with the original NEC controller, ASMedia or Etron so far, controllers that have been coaxed into working using patched third party drivers.

    benjenq 於 2013/01/17 00:41 回覆

  • am
  • >> 2.這張主機版的Z77原生USB 3.0,在黑蘋果下只能支援USB 3.0的裝置,也就是說USB 2.0的裝置,接在主機板Z77原生USB 3.0時,是無法使用裝置的。...

    最近發現一個新的 XHCI kext, GenericUSBXHCI.kext , (http://www.insanelymac.com/forum/topic/286860-genericusbxhci-usb-30-driver-for-os-x-with-source/page__hl__%20usb3)

    試了一下 (Z77-DS3H), USB2/3 裝置都工作正常, sleep 可以進但立刻醒, 參考 #33 則回文, 加入 -gux_nosleep kernel flag 後, sleep OK 了.

    以上分享.
  • 太棒了,感謝分享!

    我這邊測試的結果是:
    1. USB3 Port + USB 1.1/2/3 Device = 連接驅動成功,速度也正常
    2. USB3 Port + USB2 Device = 睡眠立刻喚醒(1.1/3正常)
    3. USB3 Port + USB2 Device + (kernel flag = 加上 -gux_nosleep) = 喚醒後出現不正常移除裝置
    4. USB3 Port + USB2 Device (手動退出裝置) = 正常了

    我採用4,也就是安裝 GenericUSBXHCI.kext 不做 kernel flag: -gux_nosleep,
    總之...It works!感謝分享!距離完美又更接近一步了(剩殘廢 VL800 的 USB Port 運作不能)

    benjenq 於 2013/03/21 15:03 回覆

  • am
  • 我的板子, sys log 有 "xHC will be unloaded across sleep", 沒有支援 PME 所以加了才 OK. 不加可以是最好的.
  • 除了鍵盤/滑鼠/藍牙這類USB1.1/2的裝置,我不常把USB裝置掛在機器上。所以4的使用剛好符合習慣,現在這問題終於解決了,感謝您提供這麼好用的訊息。

    benjenq 於 2013/03/21 19:20 回覆