목차

, ,

Xiaomi Mi Wi-Fi Nano 사용기와 OpenWRT 설치 방법

간단한 사용기

우리 집에서는 몇 년 전부터 샤오미에서 나온 소형 공유기를 쓰고 있다.

정확한 상품명은 小米路由器 青春版이고 모델명은 R1CL인데, 영미권에서는 Xiaomi Mi Wi-Fi Nano, Lite, Youth 등등의 다양한 이름으로 불리고 있다. 다만, 조금 주의 할 것이 Xiaomi MiWiFi 'Mini'하고는 다른 제품이다. Mini에는 스토리지로 사용할 수 있는 USB 포트가 있지만, Nano에는 그런 것도 없다. 정말 딱 전원 연결용 MicroUSB 포트에 WAN 포트 하나, LAN 포트 둘이 전부다.

무엇보다도 그동안 여러 종류의 iptime 공유기들을 써왔지만 압도적인 신호 강도가 장점이다. 전까지는 마루에 설치해 놓으면 가장 멀리 있는 방에서는 거의 인터넷이 안되다시피 했었는데, 지금 사용 중인 제품은 속도 저하가 거의 느껴지지 않는 수준이다.

다만 치명적인 단점이 몇 가지있다.

웹 관리자 UI가 전부 중국어다

웹 관리자 UI가 전부 중국어

바꿀 방법도 없다. 그냥 펌웨어가 중국어 뿐이다.

404 페이지를 멋대로 api.miwifi.com으로 보내버린다

404 페이지 납치

처음에는 이게 뭔가 했는데, 404 페이지를 멋대로 자기네 포털로 리다이렉트 시켜버린다; -_-;;

해결 방법을 찾아봤더니, MiWifi 앱을 폰에 설치해서 설정을 변경하면 된다고 하길래 따라 해 봤더니 해당 메뉴가 없었다. 알고보니 Nano가 아니라 Mini용 가이드였다. Nano에서는 펌웨어를 변경하지 않고는 리다이렉트를 막을 방법이 없는 것 같다.

이게 웹 개발을 하는 입장에서 정말 큰 단점이었다. 뿐만 아니라 그냥 사용할 때도 주소에 www를 안 붙여서 404가 나오는 경우에는 브라우저에서 자동으로 www를 붙여주는 등의 기능이 있기도 한데, 공유기가 404 응답을 자기네 페이지로 보내는 302로 변조하니까 www를 꼭 일일이 수동으로 붙여줘야 하는 불편함도 있었다. 더구나 중국 제품이라 백도어가 있을지도 모르는 일인데, 공유기에서 HTTP 응답을 감시하고 있다는 점이 상당히 거슬렸다.

그래서 결국 펌웨어를 다시 깔기로 결정했다.

조금 조사해 보니 공유기용 커스텀 펌웨어로는 OpenWRT나 DD-WRT 정도가 유명한 것 같았다. 일반적으로 OpenWRT에서 지원하는 하드웨어가 더 많은 것 같았고, 샤오미 공유기에 대해서는 OpenWRT 쪽의 가이드가 잘 되어 있어서 OpenWRT를 설치하기로 했다.

그 과정에서 여러 번 삽질을 했는데, 한국어 뿐만이 아니라 기본적으로 샤오미 공유기에 대한 자료, 특히 Nano에 대한 자료가 정말로 없어서 고생이 컸다. 누군가에게 도움이 될까 싶어서 이곳에 설치 방법과 주의할 점을 몇 가지 정리하려고 한다.

다운그레이드

현재 펌웨어 버전이 개발자용이 아니거나 2.2.8보다 최신이라면 다운그레이드를 한다. 2.2.8 버전의 버그를 사용해서 SSH 접속 권한을 얻을 수 있기 때문이다. Mini의 경우에는 공식 앱에서 SSH 접속을 허용시킬 수 있는 것 같지만, Nano에는 역시 그런 게 얄짤 없어서 다운그레이드가 필수다.

구글링을 하면 금방 나오긴 하지만, 백업 차원에서 이곳에도 올려 둔다.

miwifi_r1cl_all_8864d_2.2.8.zip

다행이 다운그레이드를 막아 놓지는 않아서 그냥 공유기 관리자 페이지에서 수동 업그레이드를 선택하고 bin 파일을 올리면 정상적으로 진행된다.

SSH 접속

다운그레이드가 끝나서 다시 공유기 관리자 페이지에 로그인하면, 주소가 다음과 같은 형식으로 되어 있다.

http://192.168.31.1/cgi-bin/luci/;stok=[stok 값]...

여기서 [stock 값]을 복사해 두고, 아래의 주소 두 개에 차례로 접속한다.

http://192.168.31.1/cgi-bin/luci/;stok=[stock 값]/api/xqnetwork/set_wifi_ap?ssid=whatever&encryption=NONE&enctype=NONE&channel=1%3B%2Fusr%2Fsbin%2Ftelnetd
http://192.168.31.1/cgi-bin/luci/;stok=[stock 값]/api/xqsystem/set_name_password?oldPwd=[현재 로그인 비밀번호]&newPwd=[SSH 접속 비밀번호]

이후에 아무 SSH 클라이언트 프로그램을 이용해서 root:[SSH 접속 비밀번호]@192.168.31.1에 접속하면 된다.

펌웨어 선택

다음으로 펌웨어를 /tmp에 다운로드 받아야 한다. 나는 데스크탑에 Python 2.x의 내장 HTTP 서버를 켜서 미리 다운로드 받아 놓은 펌웨어 파일을 공유기에 wget으로 복사했다. 그 외에 SCP를 써도 좋고 방법이야 다양하다.

그런데, 펌웨어 파일을 구하는 게 또 일이다. 일단 OpenWRT에서 공식으로 배포하는 버전이 있긴 하다. 그런데 이게 MediaTek에서 제대로 된 드라이버를 공개하지 않은 탓에 막상 기계에 올려 보면 신호 감도가 사용하기 어려울 정도로 낮고 5GHz도 지원이 안된다.

그래서 중국에서 나온 커스텀 버전을 사용해야 한다. 이름은 PandoraBox이고, Mini와 Nano에 사용된 mt7628 칩셋에 제대로 캘리브레이션(calibration) 된 드라이버를 사용하고 있다. 역시 이곳에 파일을 올린다.

pandorabox-ralink-mt7628-xiaomi-r1cl-squashfs-sysupgrade-r1752-20151201.zip

혹은, 원한다면 원본 파일을 쓸 수도 있다.

펌웨어 설치

이제 펌웨어를 설치하기만 하면 된다. 다음 명령어를 실행하고 가만히 기다린다. 혹시 펌웨어를 설치하는 과정에 뭔가 문제가 발생해서 벽돌이 되었다면 뒤에 설명할 초기화 방법을 쓰면 된다.

mtd -r write [다운로드 받은 펌웨어 경로] firmware

설치 이후

OpenWRT 설치 완료

설치 후에는 192.168.1.1로 공유기에 접속할 수 있다. 웹 관리자를 열면 시스템 설정을 진행할 수 있다. 'Geek Mode'를 켜면 익숙한 OpenWRT 관리자 화면으로 돌아갈 수 있다. PandoraBox에는 중국 사용자를 위한 여러가지 부가기능들이 들어 있는데, 필요 없는 패키지는 삭제하면 된다.

번외: 초기화 방법

혹시라도 작업 중에 오류가 발생해서 벽돌이 되었을 때는 초기화를 하면 된다. 공식적인 초기화 가이드가 없어서 삽질 중에 좀 크게 당황했는데, 구글링을 하고 몇 번의 추가적인 삽질 끝에 깔끔한 방법을 찾았다.

먼저 전원선과 LAN선을 전부 뽑는다. 샤프나 클립 같은 뾰족한 물건으로 공유기 바닥의 리셋 버튼을 누른 상태에서 전원을 연결한다. 그리고 주황색 LED가 깜빡거리기 시작할 때까지 계속 리셋 버튼을 누른 상태로 유지한다. 리셋 버튼은 아래 사진처럼 바닥면의 오른쪽 위에 있다.

후면

LED가 깜빡이기 시작하면 리셋 버튼에서 손을 떼도 된다. 3분 정도 기다린 후에 LAN선을 연결하는데, 이때 컴퓨터는 다음과 같이 고정 IP로 설정되어 있어야 한다.

다운그레이드를 위한 IP 설정

마지막으로 브라우저에서 http://192.168.31.1/에 접속하면 새 펌웨어 파일을 올릴 수 있는 페이지가 나온다. 여기에 공식 펌웨어 파일을 올리고 기다리면 초기화가 완료된다.

도움 받은 문서와 사이트