샤오미 공유기 3세대(Mi Router R3G)에 커스텀 펌웨어(PADAVAN) 올리기

기존에 집에서 메인 공유기는 한국에서 사온 ipTIME A2004NS를 사용하고, 집 안에서 Youtube등 중국에서 막힌 해외 사이트를 사용하기 위해서 샤오미 공유기 3G(스펙이 좋아서 가성비가 갑입니다.)를 구매해서 MT工具箱 2.0을 설치 후 Shadowsocks를 설정해 사용하고 있었습니다.

그런데 2019년 국경절을 앞두고 만리방화벽이 제가 사용 중인 Shadowsocks 서버들의 IP를 차단하더니, 어느 날인가는 아예 샤오미 공유기 상의 MT工具箱이 아예 제거된 상황이 발생했습니다. '설마..'라고 생각하고, 다시 설치해서 사용 중 며칠만에 다시 MT工具箱이 제거되어서 Shadowsocks 설정이 불가능한 상황이 발생했습니다.

관리 편리성을 위해서 외부에서 공유기 설정 페이지에 연결할 수 있도록 포트번호 변경 후 web 관리자 페이지를 열어 놓기는 했었는데, 관리자 암호도 걸려있는데 공유기 설정이 변경된 게 뭔가 찜찜해서 아예 외부 접근은 막아 버리고 다시 설치하려고 했더니, 설치 스크립트를 공유하던 사이트가 문을 아예 닫아버렸습니다. 설치 스크립트를 따로 저장 안해놓고 있었는데..

다시 공유기 단에서 Shadowsocks를 연결할 수 있는 방법을 알아보다가 아예 펌웨어를 교체하는 방법을 사용하기로 했습니다. 샤오미 제품은 한번도 A/S를 받아본 적도 없고, 혹시나 펌웨어를 올리는 과정에서 문제가 생기더라도 그냥 다시 하나 살 생각으로 작업했습니다.

설치할 펌웨어는 padavan 펌웨어로 Asus의 RT-N56U 펌웨어를 개조한 펌웨어라고 합니다.

검색해보면 펌웨어를 각 공유기 모델별로 소스에서 빌드해서 올리는 방법도 있던데, 그렇게 까지 하기는 번거로워서 이미 제 공유기 모델에 맞춰서 빌드되어 배포되는 펌웨어를 받아서 설치했습니다.

padavan 펌웨어를 올리는 순서는 아래와 같습니다.


  1. SSH 사용이 가능하도록 공유기에 샤오미 개발자 펌웨어 올리기
  2. SSH 기능 활성화하기
  3. SSH를 이용해 BREED 부트로더 설치
  4. BREED로 부팅해 Web UI에서 padavan 펌웨어 설치

개발자 펌웨어 올리기

샤오미 공유기 홈페이지(http://www.miwifi.com/miwifi_download.html)에서 메뉴 아래 ROM을 선택하고 小米路由器3G 开发版을 찾아서 下载 버튼을 눌러 개발자 펌웨어를 다운로드합니다.

사용 중인 샤오미 공유기 관리페이지(따로 설정하지 않은 경우 http://192.168.31.1)에 들어가서 "常用设置" -> "系统状态" -> "手动升级"를 선택한 후 다운로드 한 개발자 펌웨어 파일을 선택하면 펌웨어 파일의 유효성을 검사한 후 자동으로 개발자 펌웨어가 설치됩니다.

SSH 기능 활성화하기

SSH를 사용하기 위해서 https://d.miwifi.com/rom/ssh에 접속합니다. (반드시 https://로 들어가셔야 합니다.)
샤오미 계정과 암호를 입력하여 로그인하면, 사용중인 공유기 목록과 그에 해당하는 ssh 암호를 확인할 수 있습니다.


SSH 암호는 따로 적어두시고, 우측에서 "下载工具包" 버튼을 눌러 ssh 기능을 설치하기위한 바이너리 파일(miwifi_ssh.bin)을 다운로드 받습니다. 

FAT/FAT32 형식으로 포맷된 USB 메모리의 루트 폴더에 다운로드 받은 파일을 이름을 변경하지 않고 그대로 복사해 넣습니다.

공유기의 전원선을 뽑고, 공유기 후면에 USB 메모리를 삽입합니다.

공유기 후면의 reset 구멍을 클립 등의 가느다란 도구로 누르고 있는 상태에서 (딸깍 거리므로 눌렸는지 확인할 수 있습니다.) 전원선을 연결합니다.

전원선을 연결한 후 공유기 전면의 LED 등이 황색으로 깜빡거리기 시작하면 뾰족한 도구로 누르고 있던 reset 버튼을 놓습니다.

3~5분 정도의 시간이 지나면 공유기가 자동으로 재시작되고 전면의 LED등이 파란색으로 켜지면 재부팅이 완료된 것이므로 SSH 연결이 가능합니다.

SSH를 이용해 BREED 부트로더 설치

샤오미 공유기의 SSH 기능이 활성화 되었으면 PuTTY나 Xshell을 이용해 공유기의 SSH에 접속합니다. 연결 주소는 변경하지 않았으면 보통 내부 IP 192.168.31.1이며, 사용자명은 root, 암호는 앞에서 복사한 ssh 접근 암호를 입력하면 됩니다.

BREED는 Boot and Recovery Environment for Embedded Devices의 줄임말로 공유기의 부트로더를 BREED로 올릴 때 실수하면 공유기가 벽돌이 될 가능성이 있고, 벽돌이 되면 공유기 분해해서 시리얼 포트로 작업해주지 않으면 살릴 방법이 없으므로 주의해야 합니다. 단, 한번 작업해 놓으면 호환되는 펌웨어면 어떤 펌웨어든 편하게 올릴 수 있습니다.

우선 https://breed.hackpascal.net/에 접속해 공유기의 모델에 맞는 파일의 다운로드 링크를 확인합니다. 제가 사용하는 공유기의 파일 링크는 https://breed.hackpascal.net/breed-mt7621-xiaomi-r3g.bin입니다.

링크 주소를 확인했으면 SSH에서 다음 명령어로 공유기의 /tmp 디렉토리에 위 파일을 다운로드 받습니다.

cd /tmp
wget https://breed.hackpascal.net/breed-mt7621-xiaomi-r3g.bin

파일이 다운로드 되었으면 그 상태에서(/tmp 디렉토리에 위치한 상태에서) 다음 명령어를 입력하여 부트로더를 다운로드 받은 파일로 교체합니다.

mtd -r write breed-mt7621-xiaomi-r3g.bin Bootloader

위 명령어를 실행하면 공유기의 부트로더가 변경된 후 자동으로 재부팅됩니다. 공유기 전면의 LED 등이 파란색으로 변경되면 부팅이 완료된 상태입니다. Breed로 부팅하기 위해서 공유기 전원선을 뽑고 reset 버튼을 뾰족한 것으로 누르고 있는 상태에서 전원선을 연결하고 전면의 LED 등이 깜빡이면 reset 버튼을 놓아줍니다.
이 상태에서 브라우저로 공유기의 http192.168.1.1 주소로 접속하면 Breed Web UI가 뜨면서 펌웨어 관련 작업을 할 수 있게됩니다.

BREED Web UI에서 padavan 펌웨어 설치

Web UI 접속된 상태에서 혹시 모를 사태를 대비해서 "固件备份" 메뉴에서 EEPROM과 编程器固件을 백업받아 놓습니다.

공유기에 새로 올릴 padavan 펌웨어를 다운로드 받기 위해서 http://opt.cn2qq.com/padavan/ 주소를 방문합니다. 샤오미 공유기 R3G 모델의 경우 MI-R3G_3.4.3.9-099.trx 파일을 받으면 됩니다.

펌웨어 업데이트를 위해서 固件更新 메뉴를 선택하고 우측 메인 패널에서 "固件"(펌웨어) 항목에 다운로드 받은 파일을 지정하고 "自动重启"(자동으로 재부팅) 에 체크하고 하단의 "上传"(업로드)을 클릭하면 펌웨어가 공유기에 업로드되어 설치됩니다.

공유기가 재부팅되고 나면 SSID "PDCN" 및 "PDCN_5G"가 Wifi 목록에 표시되며, 기본 설정된 암호는 1234567890입니다. 공유기의 내부 IP 주소는 192.168.123.1을 사용하게 됩니다. 브라우저로 공유기 주소에 접속하여 초기 설정된 아이디와 비번(둘다 admin)을 입력하면 아래와 같은 공유기 설정 페이지로 접속됩니다. (저는 이미 설정을  마친상태라서 로고를 변경한 상태입니다.)



이후에 공유기 비번 및 WIFI SSID 변경, Shadowsocks 연결 설정 등을 진행하면 됩니다.

기능이 많아져서 좋은데, 기능이 다양한 만큼 설정이 더 복잡한 부분이 있네요.

이번 포스팅은 여기까지 입니다.

댓글

이 블로그의 인기 게시물

Oracle Cloud에 IPSec IKEV2 VPN (strongSwan) 설치 및 설정하기

SSH 접속을 위한 SSH Key 만들기