Macbook pro/air 2013 late -2014 使用转接卡更换NVME SSD休眠不醒问题的解决办法
?
2021年1月更新, 發現升級 big sur 11.1之后,固件版本變成了429.0.0.0, 睡眠問題又回來了,每次都睡死,不醒。 于是我按老辦法,把mbp114的nvme驅動刷到mpb111的429里,刷完之后,結果,睡眠問題又解決了,真是服了蘋果,搞來搞去的。辦法就是用ch341a來刷,參考最下面的說明。把文件換成bigsur的nvme驅動就好了。
?
---------我是分隔線----
?
Big Sur 出來了,有網友說需要刷回原版固件版本方可升級,我試了一下,升級中間會黑屏死機重啟多次, 然后刷回原版也是如此,
但是多次之后,也可以升級到Big Sur,據說下面的跟貼說,原盤的話會升到一個新的固件版本, 我確認了一下我的版本還是153.0.0.0.0, 看來是沒有升級成功了,我的硬盤不是原裝的,按之前的研究,這個無法升級是合理的,刷回的舊版,休眠問題回來了,mode 25 的情況下,一會就會睡死了。
搞了一個原裝的APPLE的SSD, 把Firmware的版本升到了427.0.0.0.0, ?休眠問題消失了,不會再睡死了,感謝蘋果。
測試了2013-2014的兩個MBP都是同樣的結果。
據說不需要原裝的SSD也有可能升級固件成功,但是不同的牌子不一樣的,有機率失敗,大家可以試試,歡迎留言返饋。
本文章的原來使用ch341a來夾芯片刷bios的辦法可以廢棄了,!!!大家只需要把固件升到427就好了!!!!!
同時已經刷過BIOS的網友,如果無法升級固件,請嘗試使用編程器恢復原來的沒有修改的固件。如果你沒有備份的話,又無法升級的話,這個有就比較悲劇了,我也不知道怎么辦了,只能試試換個ssd看看,歡迎大家留言交流。
?
?下面介紹,如何升級Bigsur的固件,不使用下面的辦法,可以使用全新安裝或升級,也是可以刷到固件的。
?
?
sudo /usr/sbin/bless -firmware Desktop/Big\ Sur/MBP111.scap --verbose --recovery新的文件在安裝的app的下面的目錄:
先mount一下:
?Install\ macOS\ Big\ Sur.app/Contents/SharedSupport/SharedSupport.dmg.
然后可以在下面的地方找到 一個zip文件:
?/Volumes/Shared\ Support/com_apple_MobileAsset_MacSoftwareUpdate/ee3ab6c04234b360dd8fca93c0ae49f957bf0843.zip?
解開這個zip, ?就得到了新的firmware了:
ee3ab6c04234b360dd8fca93c0ae49f957bf0843/AssetData/boot/EFI/EFIPayloads
我的2013 late mbp 15, 所以是MBP111.scap?
2014的mbp是?MBP112.scap?
執行上面的bless的命令,然后關機(不是重啟) ,然后馬上開機。
這個據說只能在原始的固件才行,修改過補丁的不行。
然后就開機的時候會看到logo和進度條,1-2分鐘就可以升級完, 升級完會自動重啟一下,然后就進入系統了。
?
測試了手上另一臺mbp 15 2014年的,是原裝的硬盤,成功把固件升級到了427.0.0.0
admin@ADMINdeMacBook-Pro ~ % sudo /usr/sbin/bless -firmware ~/Downloads/MBP112.scap --verbose --recovery EFI found at IODeviceTree:/efi Will need to copy 8523776 bytes to EFI system partition No auxiliary booter partition required System partition found Preferred system partition found: disk0s1 Returning booter information dictionary: {"Auxiliary Partitions" = ();"Data Partitions" = (disk1s5);"Preboot Volumes" = (disk1s2);"System Partitions" = (disk0s1); } Mounting at /Volumes/bless.fY7x Executing "/sbin/mount" Returned 0 Creating /Volumes/bless.fY7x/EFI/APPLE/FIRMWARE if needed Deleting previous contents of /Volumes/bless.fY7x/EFI/APPLE/FIRMWARE Deleting /Volumes/bless.fY7x/EFI/APPLE/FIRMWARE/MBP112.scap (8520304 bytes) Opened dest at /Volumes/bless.fY7x/EFI/APPLE/FIRMWARE/MBP112.scap for writing preallocation not supported on this filesystem for /Volumes/bless.fY7x/EFI/APPLE/FIRMWARE/MBP112.scap/Volumes/bless.fY7x/EFI/APPLE/FIRMWARE/MBP112.scap created successfully No auxiliary booter partition required System partition found Preferred system partition found: disk0s1 Returning booter information dictionary: {"Auxiliary Partitions" = ();"Data Partitions" = (disk1s1);"Preboot Volumes" = (disk1s2);"System Partitions" = (disk0s1); } Bad path for boot item: /Users/admin/Downloads/MBP112.scap Relative path of /Volumes/bless.fY7x/EFI/APPLE/FIRMWARE/MBP112.scap is \EFI\APPLE\FIRMWARE\MBP112.scap IOMedia disk0s1 has UUID 492ABF07-D827-447A-A506-DA52C7BCA4CF Executing "/sbin/umount" Returned 0 Write to RTC: 0 Setting EFI NVRAM: {"efi-apple-recovery" = "<array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>492ABF07-D827-447A-A506-DA52C7BCA4CF</string></dict></dict><key>BLLastBSDName</key><string>disk0s1</string></dict><dict><key>IOEFIDevicePathType</key><string>MediaFilePath</string><key>Path</key><string>\\EFI\\APPLE\\FIRMWARE\\MBP112.scap</string></dict></array>"; }稍后試一下非原裝的升級。
新的Big sur的Macbook pro 的固件我上傳了在?https://download.csdn.net/download/aerror/13119980
-----------上面這些更新于-2020.11.17------ ?我是分割線 ---------------以下是原文(已廢棄,不建議采用),升級big sur就好了,不需要再用編程器這樣修改了。?---------?
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1. 手上512GMBP 2013 late?差不多滿了,因為窮,所以在淘寶上買了一個NVME轉Macbook?pcie,然后再買一個NVME 2T的硬盤
2. NVME因為需要最新的Firmware Rom支持,所以必須使用原裝的硬盤(必須原裝)安裝Mac?14以上,我安裝了14.5.要不然識別不出來新安裝的NVME硬盤
3. 買之前就知道是會有休眠問題的,問了賣家推薦了一些型號說不會的,其中我是買了推薦的HP EX950 2T, 比intel足足貴了700元,結果然并卵,安裝完系統測試了一下,發現也是有休眠問題的。測試辦法如下:
??
pmset -a hibernatemode 25 pmset sleepnow? ?然后合上蓋子,過上幾分鐘,發現就睡死了。根本醒不過來了。必須強行關機再開機, 確認了多次如此。 估計有人說2013 late的機子可以,可能是默認的hibernatemode 3 ,或者設置了hibernatemode 0, 要不就是插著電源。
? ?同時還有副作用,就是開機會黑屏過10-20秒才看到蘋果和進度條,開機速度超慢。
4. 遍查了整個網絡,找到了以下的資料:
Background
- 2013-2014 MacBooks use a non-standard connector (12+16 pins) for the stock SSD that uses PCIe AHCI (OEM drives supposedly based on the Samsung XP941 or SM951)
- Fortunately, there are a number of M.2 NVMe drives and an adapter available that allow for SSD upgrades in these MacBooks
- macOS 10.13 “High Sierra” introduced boot support for NVMe drives that use 512 byte sectors (or LBAs) which opens up a variety of NVMe SSD upgrade options (Samsung, Intel, etc)
- Unfortunately, the stock EFI firmware (or system ROM) in these MacBook comes with an NVMe driver that prevents the MacBook from waking up from hibernation (or deep sleep)
- To address this hibernation issue, the system ROM can either be modified, or hibernation can be disabled on the MacBook by executing “pmset -a standby 0”
- 2015 MacBooks can also be upgraded using this guide and do not require firmware modifications or other changes as they presumably all use PCIe NVMe SSDs (like the Samsung PM951 and newer)
- This guide has been successfully tested with a 13” MacBook Pro Late-2013 and an 11” MacBook Air Mid-2013
? ? ? 證實了,只要是2013-2014的Macbook都會有問題的,任何型號的NVME轉接的SSD都有問題,沒有例外,原因是固件中的NVME驅動有問題會令到無法喚醒.?
? ? ?參考URLhttps://forums.macrumors.com/threads/upgrading-2013-2014-macbook-pro-ssd-to-m-2-nvme.2034976/page-87
? ? ?解決辦法也給出了,就是使用2015的固件中NVME替換2013-2014的固件驅動,GUID為51116915-C34B-4D8E-86DB-6A70F2E60DAA, 然后使用編程器去先從MX25L6406EMI這芯片讀出原來的Rom, 然后從Macos的安裝包找出2015的NVME替換好了,再刷回MX25L6406EMI。
? ? 文中CH341A編程器淘寶有賣,好便宜,只需要20-30元不等,但是它是使用一個SPI to J6100 adapter,這個查了一下發現淘寶沒有,只有ebay上有,韓國賣家,幾百塊,發貨時間還要超長。。。
?
5. ? 既然升級系統的時候可以升級固件,那么說明使用軟件來刷也是可行的,就是前幾天發的文章了,
??
1. get the FirmwareUpdate.pkg file from the OS installer app's installESD.dmg 2. extract the contents using pkgutil --expand /path/to/FirmwareUpdate.pkg <path somewhere else>/FirmwareUpdate 3. in terminal, cd to the Scripts directory inside the expanded FirmwareUpdate pkg directory. 4. with Scripts as your working directory, run these 2 commands, then reboot: sudo /usr/libexec/FirmwareUpdateLauncher -p "$PWD/Tools" sudo /usr/libexec/efiupdater -p "$PWD/Tools/EFIPayloads" 5. at the reboot, firmware will be updated if there are any updates to be applied.測試了一下,固件是可以刷的,但是必須滿足以下所有條件:
1. 使用原裝的硬盤2. 原裝的固件3.固件版本必須大于等于當前的固件的版本efiupdate只是把文件復制到efi分,然后設置了一些nvram的參數,然后是固件啟動的時候從efi的指定地方來更新,但是很明顯上面的測試表明了,這個固件的更新之前是有校驗的上面三個條件都滿足才給刷的,修改了的固件刷不了。
https://apple.stackexchange.com/questions/287644/do-macbooks-support-nvme-ssd-drives-via-the-use-of-a-sintech-adapter
?這里人下 Y.H. wong說
?
hat guide on MacRumors is really useful. I recently upgraded a 2014 MBPr board using most of its instructions, and it still works. Changes made: 1. No need for kapton tape. 2. I used a Sintech ST-NGFF2013-B. 3. I didn't turn off hibernation with pmset, I didn't buy a CH341A programmer either. I just looked up the MBP112 and MBP114 firmwares, transplanted the NVMe driver from MBP114 to MBP112, and flashed my Mac with /usr/libexec/efiupdater -p /path/to/EFIPayloads --force-update. Wakeup problem completely gone. – Y.H Wong Nov 4 '18 at 13:00 @Y.HWong: Sounds like the easiest way to flash the firmware. Can you tell in more detail how you proceeded? May be even join the discussion at MacRumors. Thanks a lot! – Bernhard Fürst Feb 6 at 19:20不知道他是怎么做到的,始終無法把修改后的固件成功刷上去,有點懷疑他可能是沒有測試清楚 。
?
6. ?沒有辦法了,看到intel是有一個fpt.efi(Flash proramming tool)的,可以在Uefi的shell下執行來刷UEFI的BIOS/固件,但是只是對于PC的,工具和文檔參考https://github.com/holoto/efi_shell_flash_bios/
? ? ?于是安裝了refind,然后從clover那里找了一個shellx64.efi放到/EFI/tools/shell.efi下,然后下載了fpt.efi也放到這里,然后運氣并不好,fpt.efi無法識別SPI的設備.?
? ? ?但是發現安裝refind解決了一些問題:
? ? ? 1.啟動不會黑屏20秒左右了,馬上就可以啟動看到啟動菜單,把超時設置為0的話,馬上就可以看到蘋果和進度條了。
? ? ?2.喚醒雖然還是有問題,但是表現有些不一樣,喚醒的時候不會直接黑屏卡死,而是可以看到refind的啟動菜單,然后自動重啟,然后再重啟開機,這個其實也還好,至少不需要手動長按關機再開機那么煩了。
? ? ? ?這個兩個問題的解決,我認為問題應該不只是固件的問題,還和啟動的efi有關系,然后翻查了一下refind的文檔,發現它在原裝的硬件中喚醒表現竟然是和我的機器的表現是一致的,就是喚醒變成了自動重啟兩次。
? ? ? ?新的希望又有了,看來喚醒這個只是refind沒有做好,在白蘋果還有一個選擇就是refit這個工具,雖然很久沒有更新了,但是工作方式有些不同,它是直接安裝在系統盤的根目錄的,而不是EFI的分區中,也沒有使用nvram的變量。 據查在白蘋里使用它是沒有休眼喚醒的問題的。于是把refind刪除了,安裝了refit, ?然而也是沒有走到狗屎運. :(
7. 好好的查了一下mx25L6406EMI-12G的datasheet, 知道它是8 SOP封裝的,問了做硬件的朋友,他說其實可以焊幾條線來用刷,但是不想動手電烙鐵,上次拆硬盤的bios是拆得滿頭大汗,折騰許久,最后竟然還沒有成功,所以有點信心不足. 于是在淘寶上再試試找那個連接線,也是沒有找到,但是發現有一個sop 8的夾子,研究一下買家的評論圖片,都是用來刷路由器,刷筆記本的,看來是一個可行,價格便宜又可以快速達成的辦法。 于是拍了ch341a+夾子+一堆轉接1.8v之類的一整套回來,花了50元左右,第二天就收到了。
8. 買ch341a沒有說明書, 我汗,看到有一個跳線寫著3.3V5V的,從https://static6.arrow.com/aropdfconversion/cb5c77c505104f4e4cad1b3667abe88327b4ee44/mx25l6406e203v2064mb20v1.9.pdf
先下載datasheet確認了這個mx25L6406EMI是3.3V的,然后小心翼翼用萬用表量了一個8號腳是3.3V的, 然后把跳線插在編程那個兩個腳上(板上好在有提示),
夾子夾了第一次沒有夾好,讀不出來,夾第二次好了,測試一下,可以讀, 一切正常, 兩個紅燈都亮起來了,如圖:
?
?
按上面的https://forums.macrumors.com/threads/upgrading-2013-2014-macbook-pro-ssd-to-m-2-nvme.2034976/page-87
一步一步都做,最后成功刷入固件。 開機問題好了,使用pmset -a hibernatemode 25來測試,喚醒問題也好了。
一切完美解決。
?
應要求補充一下翻譯過來的操作步驟:
1. 打開后蓋,主板上找mx25L6406EMI-12G這個芯片,是8只腳的,寫了mx25L6406EMI這些字在上面的,?照圖夾好BIOS, 紅線對齊第一只腳(芯片上有一個圓點標記的)
?
2. 安裝flash rom 工具,使用brew安裝?
? ?
brew install flashrom??3. 開始讀出原來的 bios ROM ,這個大小是8M的。輸入以下命令:
?
flashrom -p ch341a_spi -r dump1.bin -c "MX25L6406E/MX25L6408E"保險起見,執行3次,每次改改名,如下:
flashrom -p ch341a_spi -r dump2.bin -c "MX25L6406E/MX25L6408E" flashrom -p ch341a_spi -r dump3.bin -c "MX25L6406E/MX25L6408E"然后可以md5看看hash是不是一致的
?
md5 *.bin要是讀不出,或者是三次不一致,應該是沒有夾好,重新夾一下。
在讀數據的時候,這個ch341a的紅燈會亮起來
?
4. 從升級/安裝包解壓出2015的MBP固件中的NVME驅動
? ? 2013-2014 MacBook Pro (MacBookPro11,1),? 用MacBookPro11,4 的?firmware
? ? 2013-2014 MacBook Air (MacBookAir6,1),用?MacBookAir7,1的 firmware
?
?4.1 雙擊裝載 InstallESD.dmg , 在macOS安裝包的Contents/SharedSupport目錄下.
? ? 4.2 在InstallESD.dmg image, 找到?Packages/FirmwareUpdate.pkg 這個安裝包
?
? ?4.3 用Pacifist或The Archive Browser 打開?the FirmwareUpdate.pkg?
?4.4 打開Scripts
??
4.5? 從Tools/EFIPayloads 這里解壓合適的firmware.?
MBA71_0177_B00.fd? 是2015 MacBook Air? ?
MBP114_0183_B00.fd? 是 2015 MacBook Pro
? 4.6 上面的操作使用命令行也是可以,我是使用命令行來操作的
??
xar -x Packages/FirmwareUpdate.pkg cat Scripts | cpio -i5. 修改dump1.bin 中的NVME驅動
? ? 5.1 用UEFITool 打開2015的固件,找到這個驅動,有查找菜單的,找GUID為?51116915-C34B-4D8E-86DB-6A70F2E60DAA 的就是了。? ?
5.2 右鍵??“Extract as is…” 把2015的驅動保存下來.
5.3 使用5.2這時保存下來的驅動去替換dump下來的rom里的nvme驅動,也是定位那個GUID,然后右鍵 "replace aS IS ...."
5.4 替換的動作可以在UEFITool的界面如下圖看到,保存這個文件為MBA71_0117_B00-Mod.rom?,
5.5 可以再次打開這個修改后的文件,可以對比一下這個rom的驅動和2015的firmware中的驅動的信息是不是一致的。
如果一致的,那么你這一步成功修改了你機器定制的rom了。
?
6. 使用flashrom 把修改后的rom寫入bios芯片里, flashrom寫完之后會自己校驗的。
flashrom -p ch341a_spi -w MBA71_0117_B00-Mod.rom -c "MX25L6406E/MX25L6408E"?
寫完之后,拔出USB的ch341a編程,夾子松開移走,開機,應該一切都是完美的了,可以看到開機馬上就看到進度條了,而不是原來的卡上個幾十秒,可以使用上面說的方法測試休眠喚醒。
祝好運.
總結
以上是生活随笔為你收集整理的Macbook pro/air 2013 late -2014 使用转接卡更换NVME SSD休眠不醒问题的解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual C++中 #includ
- 下一篇: 同步带周长计算公式_同步带选型计算方法