目錄
參考
SandForce SF2281主控ssd開卡教程—適用於所有SF-2000系列
http://www.upantool.com/jiaocheng/ssd/2017/10231.html
[SandForce](或許是首發補上教程)SF系列開卡虛擬機,帶工具固件等你沒見過的船新版本(僅供研究)
http://bbs.mydigit.cn/read.php?tid=2610365
鏈接:https://pan.baidu.com/s/16dYaVZvJXvRC5IYPhkoRtQ
提取碼:eodk
警告:
1、開卡後,原來的資料都會刷掉,無法恢復數據。要恢復數據,請找專業數據恢復公司。
確認:
1、接口正常,沒有接觸不良的現象,沒有脫焊。
2、固件芯片完整,沒有燒焦擊穿,沒有脫焊。
3、Flash芯片完整,沒有脫焊。
(硬件損壞無法通過開卡修復)
我的SSD狀況:
1、突然掉盤,無法識別。分鐘大法沒什麼用,有一次在移動硬盤盒能正常識別,斷電後再也無法識別了。
2、短接J2可以進入ROM模式。
3、芯片無外損。
4、實在看不出哪裏有脫焊。。。
準備:
1、截圖、文檔保存SSD的信息
通過以下軟件,儘量獲得更多關於SSD的信息,這個對開卡非常有幫助,而且卡開後資料會被刷掉:
CrystalDiskInfo
HD-Tune Pro
SSD-Z
Hard Disk Sentinel
SSD官方的工具軟件
官方的固件升級文件
保固期後,通過拆解SSD,得到固件型號和Flash型號。
例如我的SSD:
主控芯片:SandForce SF-2281VB2-SPC MAQ1500900 1315 TAIWAN
Flash芯片:
60073779 2300670734 2JL12
60073779 2300670734 2JL12
60073779 2300670734 2JL12
60073779 2300670734 5K152
序列號:7D27*****146
J1兩個孔,J2兩個孔,J3一個孔
4顆Flash共128G,每顆32G,BGA封裝
例如,通過SSD-Z得到以下信息:
Device Name:ADATA SX900
Firmware:5.8.2a
Serial Number:7D27*****146
Technology:25nm
Cells:MLC
Controller:SandForce SF-2881
NAND:Intel 64Gbit
Capacity:119.24GB
Over-Provision:1.3MB(0.00%)
根據序列號在官網查詢到信息:
您的產品保固期限至:2016/07/31,謝謝您的查詢。
*以上產品(僅限SSD固態硬盤產品)保固期限不包含多1年的延保時間。
例如,通過ADATA SSD ToolBox得到以下信息:
型號:ADATA SX900
固件版本:5.8.2a
WWN:0000000000000000 (16個0)
連接速度:SATA 6.0 Gb/s
例如,通過Hard Disk Sentinel的信息頁得到詳細的硬盤信息。
例如,通過官方固件文件,我得到了5.8.2的所有Flash ID。(我之前通過官方軟件從5.0.7a升級到5.8.2a)
2、獲取Flash ID
第一次開卡,務必先讀取Flash ID
Windows下運行SandForce_Flash_ID文件夾中的sf_info.exe(來自於U盤量產網)
輸入SSD編號,獲取Flash ID
如果這一步無法獲取,可以再到Linux系統中再試多幾次。
在不知道Flash ID前不要隨意開卡,這會增加很多難度。
3、提取固件支持列表
Windows下運行Sandforce支持列表提取工具.exe(來自於U盤量產網),固件DFP文件,輸入Excel路徑,導出。
這裏有兩個可供選擇:
FW_PPRO_5_8_2_Release.906190.release.dfp
FW_PPRO_6_0_A_Release.1134440.release.dfp
得到:
FW_PPRO_5_8_2_Release.906190.release.xlsx
FW_PPRO_6_0_A_Release.1134440.release.xlsx
4、Lic授權文件
這裏有兩個可供選擇:(來自於U盤量產網)
hasee-sf-2000_lic.lic
asiacom_SF-2000_20110815_lic.lic
5、checksum生成器
checksum
6、SF_Genesis-v1.7
感謝數碼之家的1169044503提供的SF_Genesis-v1.7包括:
checksum
SF_ConfigurationManager
SF_FieldUpdater
SF_Genesis
SF_GenesisDashboard
SF_OEM_PackageManager
lic文件
其他
7、建立SF2281文件夾存儲以下文件夾,放入相應的資料
LIC(授權文件)
FW(固件文件)
SF_Genesis-v1.7(感謝數碼之家的1169044503提供的版本)
MFP(後面用來存儲固件解包的文件)
VIC(官方Vic文件)
LOG(輸出日誌文件)
DATE(你收集的資料)
因爲實體機的Deepin和Windows在HDD磁盤分區有點兼容問題,就是Deepin下修改後的文件,在Windows下會提示損壞,甚至丟失。你可以選擇一下方式存儲文件:
a、Windows的SSD分區根目錄。
b、U盤。
c、Windows下使用DiskGenius,調整HDD分區空間騰出空閒(建議32G),,新建新分區,格式化爲NTFS格式。
d、Windows下使用DiskGenius,調整HDD分區空間騰出空閒(建議32G),在Deepin內新建新分區,格式化爲Ext4格式。Windows下使用Ext2 Volume Manager for Windows掛載。
8、安裝Deepin15.11
如果你要用虛擬機安裝Linux系統,或者直接使用數碼之家1169044503提供的CentOS虛擬機備份,需要用到USB轉接卡。
虛擬機通過添加SCSI接口讀取SDD,開卡時會死機。
我這裏因爲用虛擬機+USB轉接卡開卡提示(0x00100001:SF_SATA_DEVICE_NOT_PRESENT_ERROR),無奈只能用實體機安裝Linux系統。
坑爹的是,N年前的32位Linux系統(Fedora14和CentOS6.7),對現在的機器非常不友好,不過是驅動還是更新。
即使是最新版的32位系統,Fedora-17-i686、Fedora-Workstation-Live-i386-30、CentOS-6.10-i386、CentOS-7-i386(鍵盤無法輸入)、deepin-15.3-i386,不管是虛擬機安裝還是實體機安裝都非常不友好。
最後還是選擇Deepin15.11,這個是64位系統,但是依然可以運行開卡工具。
Deepin安裝還是非常簡單的,以下是注意點:
a、在臺式機上提前騰出一段32G的無分區空間。
b、建議在SSD上安裝Deepin。
c、用deepin-boot-maker製作啓動U盤。
d、開機調出啓動項菜單(按F12),選擇帶UEFI的U盤選項,如果是BIOS啓動選擇沒有UEFI那個。
e、在安裝位置那裏千萬不能選錯,不是全盤,是選擇騰出的空閒空間。
開卡流程(基於Deepin 15.11):
1、讓SSD進入ROM模式
SSD通電前,短接J2兩個孔,通電,幾秒後再放開。(這個步驟非常關鍵,不能一直短接)
如果是實體機,時機是主機通電前後。
如果是虛擬機,時機是USB通電前後。
進入Deepin 15.11
打開Disk,可以看到一個33 KB Hard Disk,名稱可能是品牌名、SandForce或轉接卡名。
2、讀取SSD地址
打開開卡工具的文件夾,右擊空白,Open in Terminal,執行:
sudo apt-get install lsscsi
lsscsi
[4:0:0:0] disk ATA SandForce{200026 BBR0 /dev/sdd
得知SSD地址爲4:0:0:0
如果你是使用USB轉接卡,每次斷開USB重連,這個地址都會變化,需要重複讀取。
3、讀取Flash ID
第一次開卡,務必先讀取Flash ID
sudo ./SF_Genesis -READ_FLASH_ID 4:0:0:0
如果到這裏也無法獲取,請多試幾次,或者不進入ROM模式再嘗試讀取,或者有老司機可以拆出Flash芯片用讀取器讀取ID。
4、如果無法確定Flash ID
我的SSD因爲突然掉盤,想讀取時都沒有信息,不管是正常模式還是ROM模式。
但是我們依然可以通過排除法篩選確認合適Flash ID。
例如,篩選FW_PPRO_5_8_2_Release.906190.release.xlsx:
2281、25nm、MLC、Intel、128G、4x、ADATA官方固件vic文件存在的ID、5.8.2a
只有一個符合:
SF-2281-Gold 128GB Intel25 eMLC BGA 4xPF29F32B16NCME1 (RAISE OFF)
5、修改lic授權文件
備份lic文件爲lic.bak
打開lic文件,修改:
<configuration_id id="22813" />
你可以刪除不相關的部分,添加有可能的ID
刪除末尾的一行:
<checksum>*****</checksum>
另存爲一個文件,例如我的sx900.lic
如果修改後導致SF_OEM_PackageManager無法正常解包,使用vim命令進行編輯。
6、重新生成checksum
打開SF_Genesis-v1.7文件夾,右擊空白,Open in Terminal,執行:
./checksum sx900.lic
7、解包固件
運行SF_Genesis-v1.7文件夾中的SF_OEM_PackageManager
Distribution Firmware Package File:
選擇FW_PPRO_5_8_2_Release.906190.release.dfp
(因爲我的SSD之前是5.8.2a,你也可以嘗試6.0.A)
License file:
選擇sx900.lic
Customer Identification Number:
0
Diagnostics Unlock Key:
1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6
(固定格式,注意這是英文的逗號)
Firmware Revision Override String:
5.8.2a
(這是軟件讀取的固件信息)
點擊Create OEM Package等待一段時間後會出現Process completed successfully,則證明MFP生成成功。
8、修改driveconfig文件
運行SF_Genesis-v1.7文件夾內中的SF_ConfigurationManager,點擊右下角的Open,選擇你的driveconfig文件路徑:
*****/SF2281/MFP/FW_PPRO_5_8_2_Release.906190.release--0/Configuration_Files/22813.0.driveconfig
修改External Write protect:
External write protect circuit Exists
(這個直接影響寫入)
填寫Identify Data的Model No.:
ADATA SX900
(這個就是軟件識別的型號信息,建議填寫)
填寫Serial Number
7D27*****146
(這個就是軟件識別的序列號信息,可以不填)
填寫Vendor Unique Data:
ADATA(www.adata.com)
(這個就是軟件識別的信息,可以不填)
修改Power Management Settings的Power Management Feature Selection:
(我這裏不選也可以開)
Temperature Sensor Settings的Sensor #1/#2的Device ID:
(我這裏不選溫度也正常顯示)
右下角Save As:
*****/22813.0.test
(加上test以便識別)
9、執行開卡指令
打開開卡工具的文件夾,右擊空白,Open in Terminal,執行以下格式的命令:
./SF_Genesis -PROCESS_SSD [DEVICE] [MFP_PACKAGE] [DRIVE_CONFIG_FILE] [SERIAL_NO] [WWN] [CID=IDENTIFY_FILE] [LOG=FILENAME]
./SF_Genesis[空格]-PROCESS_SSD[空格]SSD地址[空格]存放MFP文件的目錄[空格]保存的driveconfig的路徑[空格]序列號[空格]WWN號[空格]CID=識別文件[空格]日誌文件
兩個教程都沒有提到CID……
最終要執行的命令:
sudo ./SF_Genesis -PROCESS_SSD 4:0:0:0 *****/SF2281/MFP/FW_PPRO_5_8_2_Release.906190.release--0/FW_PPRO_5_8_2_Release.906190.release.0.mfp *****/SF2281/MFP/FW_PPRO_5_8_2_Release.906190.release--0/Configuration_Files/22813.0.test.driveconfig 7D27*****146 0000000000000000 LOG=*****/SF2281/LOG/SF.log
實在不想輸入,你可以這樣:
a、複製粘貼sudo ./SF_Genesis -PROCESS_SSD 4:0:0:0
(注意最後面是一個空格)
b、拖入FW_PPRO_5_8_2_Release.906190.release.0.mfp文件
c、拖入22813.0.test.driveconfig文件
d、複製粘貼7D27*****146 0000000000000000
(注意最後面是一個空格)
e、複製粘貼LOG=
f、拖入SF.log文件
(如果輸入log=/log/,日誌文件會創建在SF_Genesis-v1.7文件夾內中)
回車,輸入密碼,執行。
不會很久(除非開新板),如果你看到:
Overall Result for Device: ****** PASS ******
恭喜你開卡成功,關機,再開機後你可以開始檢查、測試SSD是否正常了。
10、另一種開卡方式
(注意:在Deepin裏不可行,一運行就自動註銷)
例如,如果你想量產多個SSD,運行SF_GenesisDashboard:
a、FUNCTION選擇PROCESS_SSD
b、DriveConfig選擇22813.0.test.driveconfig文件路徑
c、MFP Package選擇FW_PPRO_5_8_2_Release.906190.release.0.mfp文件路徑
d、Port ID輸入4:0:0:0
e、Log Folder選擇LOG文件夾
f、Serial No.輸入7D27*****146
g、WWN輸入0000000000000000
h、點擊Start開始開卡
i、開卡成功顯示PASS,失敗顯示FAIL
11、開卡失敗
如果你看到:
Overall Result for Device: /dev/sg1 ****** FAIL ******
代表開卡失敗,請往前查找錯誤信息。
我大部分的嘗試,22813都能過Flash測試,只不過都是WARNING,如果是FAIL是絕對不過的,當然PASS是最好的。
FATAL_ERROR: Could not perform the ReadDriveConfigUnique() operation on the drive... (0x12000004:SF_SG_HOST_BAD_TARGET_ERROR)
超時?
FATAL_ERROR: Could not perform the ReadDriveConfigUnique() operation on the drive... (0x00100001:SF_SATA_DEVICE_NOT_PRESENT_ERROR)
接口有問題?
多逛論壇案例,多試幾次,說不定就PASS了。
Good Luck!
12、本案例用到的工具和資料
鏈接: https://pan.baidu.com/s/1PO7jBQ5gGNyV5Eyp-mWxVg
密碼: nswd
(這些工具都可以在U盤量產網找到)
下載Deepin15.11和深度啓動盤製作工具
http://cdimage.deepin.com/releases/15.11/deepin-15.11-amd64.iso
http://cdimage.deepin.com/applications/deepin-boot-maker/windows/deepin-boot-maker.exe
詳細安裝流程自行度娘。
PS:
SX900 128G刷5.8.2和6.0.A的性能都差不多,不過都比以前測試的分數高(不知道是不是因爲空盤測試)
6.0.A
以前5.8.2a
6.0.A
以前5.8.2a
幾個奇怪的問題:
1、以前的健康度一直是100%……都寫入27T了,128GB,PE數221多:
按照emlc的壽命5000PE-20000PE
按5000次PE來算,健康度是95%
按20000次PE來算,健康度是98%
開卡後,現在默認百分比是99,寫入30GB掉98……
2、開卡的log文件顯示Flash都是Warming,多次開卡結果都不一樣,大部分是N3,有幾個在N3、N1 N3、N3 N5、N3 N6之間變化,沒有一個N1……Flash好像是威剛自封裝的(BGA),跟舊款TOP封裝不一樣,Flash ID也不印上去。
3、這款SX900 128G,3年保固,5年掉固件,後期S.M.A.R.T的01原始讀取錯誤率很高,沒有壞道。
4、主控芯片是SF-2281VB2,但是Hard Disk Sentinel軟件讀取的是SF-2281VB1。
5、ATA信息裏,預讀取緩衝區是支持但是禁用,原來是支持並啓用,不知道在哪裏啓用,對性能有沒有影響。
6、偶爾開機會識別不了,關機後重新插拔電源和數據線,開機又可以連上。連上後測試,隨機寫入驗證也是OK的。(可能是走線太緊的原因?)