RTL9210B 칩을 사용하는 외장 SSD 인클로저 펌웨어 업데이트하기

    728x90

    이전 글에서 소개했던 UnionSine NVMe & SATA SSD 인클로저는 RTL9210B라는 칩셋을 사용한다. UnionSine 뿐만 아니라 NVMe 와 SATA를 둘 다 지원하는 외장 SSD 인클로저는 거의 다 RTL9210B 칩셋이 사용되는 것 같다.

     

    RTL9210B 칩셋

    이 RTL9210B를 인터넷에서 검색해보니 펌웨어가 있다는 것을 알게되었다. 게다가 펌웨어 업데이트도 가능하다길래 인터넷으로 펌웨어 파일을 다운로드받고 펌웨어 업데이트를 진행했는데 결과는 성공적으로 업데이트되었다. 

     

    그래서 이번 글에서는 내가 경험한 RTL9210B의 펌웨어 업데이트 과정과 방법을 소개하고자 한다. 

     

    우선 RTL9210B 칩을 사용하는 외장 SSD 인클로저의 펌웨어를 업데이트하려면 당연히 펌웨어 파일과 펌웨어 업데이트 툴이 필요하다. 

    나 같은 경우에는 펌웨어 버전이 1.32.49 인 파일을 다운로드 받았다. 

     

    펌웨어 업데이트의 경우 잘못 업데이트할 경우 벽돌이 될 가능성이 있으니 주의하기 바란다.

     

    realtek_rtl9210_1.32.49(station-drivers.com).zip
    5.61MB

     

    우선 위의 압축파일을 다운받고 열어보면 exe 파일이 하나 있다.

     

    EEPROM 백업

    펌웨어를 업데이트하기전에 혹시 벽돌이 될까봐 EEPROM 롬 라이터로 미리 백업을 해두었다. 

     

    rtl9210b 인클로저 백업 롬.Bin
    0.50MB

     

    프로그램 실행 화면

    어찌됐든, 프로그램을 실행하면 위와 같은 화면이 나타난다. 위 사진은 처음으로 프로그램을 실행시켰을 때의 사진인데 아래쪽을 보면 연결된 장치가 보인다. 그리고 옆에 보면 설치된 펌웨어 버전을 확인할 수 있는데 나의 UnionSine 외장 SSD 케이스에는 1.29.12 버전의 펌웨어가 설치되어 있었다.

     

    Show Device Info

    우선 가장 먼저해야할 것은 연결된 외장 SSD 케이스의 설정 값들을 복사해야한다. 

    상단 메뉴 중에 Dump를 클릭하면 Show Device Info 나타난다. Show Device Info 항목을 클릭하자.

     

    장치 정보

    Show Device Info 항목을 클릭하면 작은 창이 나타나면서 장치의 설정 값들을 확인할 수 있다. 이 값을 저장해야 하는데 상단에 저장버튼을 눌러 텍스트 파일로 저장하거나 안에 내용을 드래그해서 복사해서 저장을 해놓자.

     

    이제 저장한 장치 설정 값을 토대로 설정파일을 만들어야 한다. 

     

    앞서 올려둔 파일에 configure 폴더에 들어가면 RTL9210_NormalUSB.cfg 이라는 파일이 있다. 

    이 파일을 메모장이나 VSCode 와 같은 편집기 프로그램으로 열어준다. 

     

    VSCode로 연 모습

    개인적으로 VSCode를 통해서 파일을 여는 것을 추천한다. VSCode로 열면 위 사진과 같이 자동으로 글자색이 강조되는 하이라이팅 기능이 있어서 편하게 수정할 수 있다. 

     

    ;Configure Start RTL9210A-VA
    ;=================FW Configure=================
    U2PHY = 02 f4 9b e0 e1 
    U3PHY = 02 d4 09 00 d5 00 80 
    
    VID = 0xbda
    PID = 0x9210
    
    MANUFACTURE = "Realtek"
    ;SCSI_VENDOR = ""
    PRODUCT = "RTL9210A-VA"
    ;SCSI_PRODUCT = ""
    SERIAL = "012345678905"
    
    ;compatibility setting for Compact Flash Express standard (not supported on external enclosures)
    ;CFEXPRESS = 0x0
    DISK_HOTPLUG = 0x0
    LED = 0x1
    PINMUX1 = 0x70000
    PINMUX2 = 0x0
    U2_MAXPWR = 0xfa
    U3_MAXPWR = 0x70
    ;Enable or disable active power management Open: 0x1 Close: 0x0 - Opened the device will always maintain high power.For WinToGo set it 0x1,for storage 0x0.
    ASPMDIS = 0x0
    ;PCIE_REFCLK = 0x3e
    
    ;idle time till disable pcie power 0x00 0 min - 0x01 1 min - 0x0A 10 mins - 0x1E 30 mins - 0x3C 60 mins
    PCIE_PWRCUT_THRES = 0x1
    ;responsible for turning off power to PCI bus by timeout for energy saving (it helped at cloning)
    DISK_IPS_THRES = 0x1
    
    ;Enable or disable U1U2 - USB 3.0 Link Power Management - See Microsoft Documentation
    ;EN_U1U2 = 0x1
    ;EN_UPS = 0x0
    ;PD = 0x0
    
    ;CUSTOMIZED_LED is 15 bytes
    ;CUSTOMIZED_LED = 02 01 07 0c 0d 05 00 00 00 00 00 00 00 00 00 00
    ;SUSPEND_LED_OFF = 0x0
    
    ;Enclosure with or without fan On-0x1 Off-0x0
    ;FAN = 0x0
    
    ;FORCE_USB_SPEED = 0x6
    ;FORCE_PCIE_SPEED = 0x3
    
    ;EFUSE = d5 00 42 10
    
    ;without drive enclosure is seen by Windows - good for firmware update
    DIS_SHOW_EMPTY_DISK = 0x1
    
    UART_DBG_PIN = 5
    ;FINGER_PRINT_EN = n
    ;blue light on all the time and flashes when it works, as opposed to no light when not in use
    RM_INTERNAL_RD = 0x1
    
    ;=================Tool Configure=================
    ;DISCONN_FORCE_USB2 = n
    FORMAT_DISK = n
    ;INC_SERIAL = y
    
    ;PARTITION: GPT, MBR
    PARTITION = "MBR"
    ;FORMAT: NTFS, exFAT
    FORMAT = "NTFS"
    ;LABEL max allowed - characters
    LABEL = "BLANK"

    ▲RTL9210_NormalUSB.cfg의 파일 내용

     

    파일 내용을 잘 보면 줄의 맨 앞에 세미콜론(;)이 달린 줄이 있고 안 달린 줄이 있는 것을 볼 수 있다. 세미콜론이 달린 줄은 주석처리가 된 줄로 주석처리가 된 부분은 펌웨어 업데이트시 반영되지 않는다. 다르게 말하면 주석처리된 부분은 나중에 펌웨어 업데이트할 때, 사라진다고 생각해도 좋다.

     

    다시 돌아와서, 아까 저장했던 장치 설정 값들을 하나하나 보면서 파일을 수정해 주면 된다. 

     

    예를 들면, 파일에는 MANUFACTURE = "Realtek" 으로 되어있지만 아까 저장했던 설정 값에는 MANUFACTURE는 UnionSine으로 되어있다. 따라서 파일에서 MANUFACTURE = "UnionSine" 으로 수정해 주면된다. 

    주의사항으로는 쌍따옴표(")가 있으면 빼먹지말고 넣어주어야한다. 

    값 중에 n/a 라고 되어있으면 세미콜론(;)을 줄 앞에 붙여서 주석처리해주면 된다. 

    만약에 값 이름이 파일에 존재하지않는다면 값이름 그대로 추가해주면 된다. 

     

    설정 값 일부를 설명하자면, SCSI_PRODUCT, SCSI_VENDOR는 장치관리자에 표시되는 이름을 설정한다. 

    예를 들면, SCSI_VENDOR = "Test" 이고 SCSI_PRODUCT = "Hello" 라고 한다면, 장치관리자에는 Test Hello SCSI Disk Device라고 나타난다. 

    다음으로, Disk_IPS_THRES는 디스크를 일정시간 동안 사용하지않으면 절전모드로 들어가는 시간을 설정하는 부분이다. 

    입력값으로 0xFF 와 같은 형태로 들어가는데 0x는 뒤의 숫자가 16진수라고 알리는 표현이다. 

    예를 들면, 입력 값으로 0x0a 라는 값을 주면, 디스크가 10분동안 사용되지 않으면 절전모드로 들어간다. 입력 값으로 0x00이면 디스크가 절전모드로 들어가지 않는다.

     

    ;Configure Start RTL9210A-VA
    ;=================FW Configure=================
    U2PHY = 02 f4 9b e0 e1 
    U3PHY = 02 d4 09 00 d5 00 80 
    
    VID = 0xda
    PID = 0x9210
    
    MANUFACTURE = "UnionSine"
    SCSI_VENDOR = "Realtek"
    PRODUCT = "MD202"
    SCSI_PRODUCT = "UnionSine MD202"
    SERIAL = "012345680650"
    
    ;compatibility setting for Compact Flash Express standard (not supported on external enclosures)
    ;CFEXPRESS = 0x0
    DISK_HOTPLUG = 0x0
    LED = 0x2
    PINMUX1 = 0x0
    PINMUX2 = 0x700
    U2_MAXPWR = 0xfa
    U3_MAXPWR = 0x70
    ;Enable or disable active power management Open: 0x1 Close: 0x0 - Opened the device will always maintain high power.For WinToGo set it 0x1,for storage 0x0.
    ASPMDIS = 0x0
    ;PCIE_REFCLK = 0x3e
    
    ;idle time till disable pcie power 0x00 0 min - 0x01 1 min - 0x0A 10 mins - 0x1E 30 mins - 0x3C 60 mins
    ;PCIE_PWRCUT_THRES = 0xa
    ;responsible for turning off power to PCI bus by timeout for energy saving (it helped at cloning)
    DISK_IPS_THRES = 0xa
    ;CUSTOMIZED_LED = 0
    SUSPEND_DISK_OFF = 0xa
    ;SCSI_WP_PIN = 0xd
    PERIPH_API = 1
    UART_BAUD_RATE = 57600
    ;Enable or disable U1U2 - USB 3.0 Link Power Management - See Microsoft Documentation
    EN_U1U2 = 0x1
    ;EN_UPS = 0x0
    ;PD = 0x0
    
    ;CUSTOMIZED_LED is 15 bytes
    ;CUSTOMIZED_LED = 02 01 07 0c 0d 05 00 00 00 00 00 00 00 00 00 00 
    ;SUSPEND_LED_OFF = 0x0
    
    ;Enclosure with or without fan On-0x1 Off-0x0
    ;FAN = 0x0
    
    ;FORCE_USB_SPEED = 0x6
    ;FORCE_PCIE_SPEED = 0x3
    
    ;EFUSE = d5 00 42 10
    
    ;without drive enclosure is seen by Windows - good for firmware update
    DIS_SHOW_EMPTY_DISK = 0x0
    
    UART_DBG_PIN = 5
    ;FINGER_PRINT_EN = n
    ;blue light on all the time and flashes when it works, as opposed to no light when not in use
    ;RM_INTERNAL_RD = 0x1
    
    ;=================Tool Configure=================
    ;DISCONN_FORCE_USB2 = n
    FORMAT_DISK = n
    ;INC_SERIAL = y
    
    ;PARTITION: GPT, MBR
    PARTITION = "MBR"
    ;FORMAT: NTFS, exFAT
    FORMAT = "NTFS"
    ;LABEL max allowed - characters
    LABEL = "BLANK"

    나는 위와 같이 설정했다. 

    UnionSine.cfg
    0.00MB

    ▲파일로 다운로드

     

    설정파일을 다 수정했으면 다른이름으로 저장해서 펌웨어 파일이 있는 곳으로 저장해둔다. 

     

    Disk Format 체크 해제 확인

    혹시모를 디스크 포맷이 되는 것을 방지하기 위해서, 프로그램에서 상단에 Settings 메뉴를 클릭하고 Disk Format 항목이 체크해제되어 있는지 확인한다. 체크표시가 되어있으면 클릭해서 체크를 해제한다. 

     

    마지막으로 파일을 선택해준다. 

    Device Select는 펌웨어를 업데이트할 RTL9210B 인클로저를, Configure는 자신이 만든 설정파일을 선택하고, Firmware Bin은 RTL9210B13249.bin 파일을 선택한다. 마지막으로 Firmware GD는 RTL9210B_gd_v4.30.23.071922.bin 파일을 선택해 주면된다. 

     

    펌웨어 엄데이트 움짤

    마지막으로 Update Device 버튼을 누르면 펌웨어 업데이트가 진행된다. 펌웨어 업데이트가 되는 동안 USB 연결이 1번 끊겼다가 다시 연결된다. 

     

    펌웨어 업데이트 성공!

    펌웨어 업데이트가 성공적으로 완료되면 아래쪽에 Update Status에 PASS 라고 뜬다. 

    이렇게 RTL9210B 펌웨어 업데이트가 무사히 완료되었다. 

    반응형

    댓글

    Designed by JB FACTORY