SandForce SF2281主控SSD開卡案例

目錄

參考

警告:

確認:

準備:

1、截圖、文檔保存SSD的信息

2、獲取Flash ID

3、提取固件支持列表

4、Lic授權文件

5、checksum生成器

6、SF_Genesis-v1.7

7、建立SF2281文件夾存儲以下文件夾,放入相應的資料

8、安裝Deepin15.11

開卡流程(基於Deepin 15.11):

1、讓SSD進入ROM模式

2、讀取SSD地址

3、讀取Flash ID

4、如果無法確定Flash ID

5、修改lic授權文件

6、重新生成checksum

7、解包固件

8、修改driveconfig文件

9、執行開卡指令

10、另一種開卡方式

11、開卡失敗

12、本案例用到的資料


參考

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的。(可能是走線太緊的原因?)

發佈了21 篇原創文章 · 獲贊 7 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章