2020-03-22 수정 사항 추가
1. AC1900 을 1703펌으로 내려서 SSH 기능을 활성화 아래에
1-0-1, 1-1-1, 1-1-2 에 붉은 글자색으로 마킹된 부분들이 추가 및 변경되었습니다.
1-2-6 에 붉은 글자색으로 마킹 및 설명 추가되었습니다.
설명에 누락된 부분으로 인해 오류가 발생해서 열받았을 분들께 죄송하다는 말씀드립니다... ㅠ
--------------------------------------------------------------------------------------------------------------------------------
이전 글에도 썼지만 신형 1Ghz 를 노리고 질렀던 TM-AC1900 공유기 리퍼는 결국 800Mhz 짜리 구형이 왔습니다...
내가 그렇지 뭐...
해탈하고 그냥 펌웨어 작업이나 했습니다. 예전과 다르게 펌웨어 작업이 더 귀찮아지게 됐더라고요. 그렇게 AC1900은 절 두번 빡치게 했습니다.
AC68U 펌질은 크게 다음 3단계로 이루어 집니다.
1. AC1900 을 옛날 펌으로 내려서 SSH 기능을 활성화
2. AC68U 펌업
3. AC1900 흔적 삭제
0-1. 준비물
FW_RT_AC68U_30043763626.trx
mtd-write
TM-AC1900_3.0.0.4_376_1703-g0ffdbba.trx
다운로드 https://mega.nz/#!jAEi0S5S!JvWZ0s9G4pwMLpaIW8jQ_q-Zd8MBdihch3ZSSAs8Vs0
다운로드 출처: https://www.bayareatechpros.com/ac1900-to-ac68u/
PuTTY
32bit https://the.earth.li/~sgtatham/putty/latest/w32/putty.zip
64bit https://the.earth.li/~sgtatham/putty/latest/w64/putty.zip
WinSCP
다운로드 https://winscp.net/download/WinSCP-5.15.9-Portable.zip
0-2. 용어 설명
NVRAM 리셋
공유기 전원을 켤 때 측면의 WPS 버튼을 누른 상태로 전원을 켭니다. WPS 버튼 계속 누른 상태로 15초 정도 지나면 뒷면에 ASUS 불 들어오는 하얀색 LED 가 깜빡이기 시작합니다. 그 때 WPS 버튼을 놓습니다. 리셋되는 데는 몇 분 정도가 걸립니다. (기기 부팅할 때 걸리는 시간이랑 별 차이 없음. 길게 잡아 5분 이내)
1. AC1900 을 1703펌으로 내려서 SSH 기능을 활성화
AC68U 펌웨어 작업을 하려면 AC1900 펌웨어에 SSH 기능이 뚫려 있어야 합니다. 옛날 펌웨어는 이 기능이 있었는데 신규펌에서는 SSH 기능이 안보입니다. 그래서 옛날 펌인 1703 펌으로 내리는 작업을 해야합니다. ASUS 에서는 사람들이 저렴한 AC1900을 구매해서 펌질하는 게 보기 싫었나 봅니다.
보통 구글에다 AC1900 펌웨어 작업 관련해서 찾아보면 대부분 AC1900을 1703 펌으로 내리기 위해서 리셋버튼 눌러서 복구모드 들어가서 작업하는 방식으로 나옵니다. 위에 링크 걸려있는 https://www.bayareatechpros.com/ac1900-to-ac68u/ 여기 사이트도 이 방식이죠.
근데 이 기능 막혔습니다... 이걸 모르고 내가 몇시간을 삽질했는지 아오..... 막힌지 1년은 된 것 같더라고요. 이젠 usb 꼽아서 작업하는 방식으로 해야합니다.
(현재 100% 모든 기기가 리셋버튼-복구모드 방식이 막힌 건 아닌 것으로 보이고 리셋 복구방식을 먼저 시도해 보시고 안 된다면 제가 아래 쓴 방법으로 시도해보시면 될 것 같습니다. https://coolenjoy.net/bbs/37/152929)
https://docs.google.com/document/d/1NsZMONmJ70zMmoAKKQJXbTVKytaPJptWTpqih1TD5n8/edit
링크에 있는 문서 내용을 모두 참고할 필요는 없습니다. 해당 문서는 사실 AC68U로 펌을 올린 후 AC1900으로 롤백되었을 때 다시 AC68U로 되돌리는 방법에 대해서 기술하는 문서입니다. 근데 여기에 우리가 필요한 AC1900을 1703펌으로 내리는 방법도 포함되어 있죠.
여기선 저 문서의 NO CFE USB Instructions 파트만 참고하면 됩니다. 영어되시면 저 문서 보고 하셔도 됩니다.
그럼 시작해 봅시다.
1-0-0. NVRAM 리셋 합니다.
1-0-1. AC1900의 WAN포트에 인터넷선을 연결합니다. LAN포트도 PC의 랜카드와 랜선으로 연결합니다. (전 1번 포트에 꼽았음)
1-0-2. 브라우저를 열고 192.168.29.1 주소로 접속한 뒤에 기본 설정을 마칩니다. (기본 아이디/비밀번호는 admin/admin, admin/password 둘 중에 하나일 겁니다)
1-1-1. 남는 usb 메모리를 fat32로 포맷합니다. 포맷할 때 볼륨 레이블(Volume label) 이름을 USB 라고 변경합니다. (제가 작업할 때는 볼륨 레이블에 아무것도 입력하지 않고 포맷했던 것 같은데... 혹시 모를 에러를 위해 레이블 명을 입력하는 게 좋을 것 같습니다.)
1-1-2. TM-AC1900_3.0.0.4_376_1703-g0ffdbba.trx 파일을 firmware1703.trx 라고 이름을 변경한 후 usb 메모리에 복사합니다.
1-1-3. usb 메모리를 AC1900에 꼽습니다. usb2.0/3.0 아무데나 꼽아도 될 겁니다. (전 3.0에 꼽고 했음)
1-2-1. 크롬 브라우저로 192.168.29.1 주소에 접속해서 로그인하면 좌측에 메뉴 쭉 있는데 맨 아래 네트워크 도구 클릭해서 들어갑니다.
1-2-2. 브라우저 화면에서 마우스 오른쪽 버튼 클릭하면 메뉴 뜰 겁니다. (뒤로, 앞으로, 새로고침 등등...) 맨 아래 '검사' 누르면 개발자 도구 가 뜹니다. (잘 모르겠으면 Ctrl+Shift+i 누르면 뜸)
1-2-3. 개발자 도구에 보면 탭들이 여러개 있습니다. (Elements, Console, Sources, Network, .... ) Console 탭 클릭합니다.
1-2-4. '>' 이렇게 꺽쇠 표시된 부분이 있는데 거기다 명령어를 입력할 수 있습니다. 거기에
validForm = function(){document.form.SystemCmd.value = "ping\necho hello world";return true;}
이렇게 입력하고 엔터를 칩니다.
1-2-5. 네트워크 진단을 클릭하고 'hello world' 라고 표시되면 정상입니다.
1-2-6. 여기서 부턴 명령어 입력하고 / 엔터 / 네트워크 진단 의 반복입니다.
validForm = function(){document.form.SystemCmd.value = "ping\nmount -t tmpfs tmpfs userRpm";return true;}
엔터 / 네트워크 진단
validForm = function(){document.form.SystemCmd.value = "ping\nmount";return true;}
엔터 / 네트워크 진단
validForm = function(){document.form.SystemCmd.value = "ping\ncp -a . userRpm";return true;}
엔터 / 네트워크 진단
▶recursion detected, omitting directory "./userRpm" 라고 메세지가 표시되면 정상
validForm = function(){document.form.SystemCmd.value = "ping\nmount --move userRpm .";return true;}
엔터 / 네트워크 진단
validForm = function(){document.form.SystemCmd.value = "ping\nmount";return true;}
엔터 / 네트워크 진단
validForm = function(){document.form.SystemCmd.value = "ping\nservice restart_httpd";return true;}
엔터 / 네트워크 진단
▶2분 정도 기다린 후 다음 명령어 입력합니다.
validForm = function(){document.form.SystemCmd.value = "ping\nwget -A txt -r -nH -nd docbill.freeshell.org";return true;}
엔터 / 네트워크 진단
▶이 명령어가 실패할 경우 직전 명령어를 다시 실행하고 이 명령어를 실행할 것. index.html 파일 다운로드 어쩌고 나오면 정상
▶그린님이 댓글로 docbill.freeshell.org 사이트가 밤시간에 닫는다는 정보를 알려주셨습니다. 이 명령어에서 Connection refused 또는 failed 가 뜰 경우 해당 사이트에 접속이 가능한지 확인해 주세요.
validForm = function(){document.form.SystemCmd.value = "ping\n. u.txt " + encodeURIComponent("find /tmp/mnt -name firmware1703.trx" ).replace(/%/g,"..");return true;}
엔터 / 네트워크 진단
▶/tmp/mnt/USB/firmware1703.trx 라고 뜨면 정상
▶/tmp/mnt/USB/firmware1703.trx 경로의 USB 는 위에 1-1 에서 USB 메모리를 포맷할 때 붙인 레이블입니다.
validForm = function(){document.form.SystemCmd.value = "ping\n. u.txt " + encodeURIComponent("mtd-write2 /tmp/mnt/USB/firmware1703.trx linux").replace(/%/g,"..");return true;}
엔터 / 네트워크 진단
▶CRC OK 뜨면 정상
▶실패하면 2-6 명령어 처음부터 다시 실행
▶/tmp/mnt/USB/firmware1703.trx 경로의 USB 는 위에 1-1 에서 USB 메모리를 포맷할 때 붙인 레이블입니다. 본인이 레이블을 다르게 지정했다면 해당 이름대로 적어줘야 에러가 나지 않습니다.
1-2-7. 5분 기다렸다가 NVRAM 리셋
1-3-1. 브라우저로 192.168.29.1 에 접속한 후 펌웨어 버전이 바뀌어 있고 관리 메뉴에서 SSH 항목이 보이면 성공입니다.
아니오 로 되어 있는 선택을 예 로 바꾸어 SSH를 활성화 합니다.
2. AC68U 펌웨어 업로드
AC1900 펌웨어에 SSH 기능이 활성화 되었으므로 이제 본격적으로 AC68U 펌웨어를 올리는 작업을 시작합니다.
(참고로 PuTTY 에서 명령어를 입력하실 때 본 글에 작성된 명령어를 마우스로 긁어서 복사하신 후 PuTTY 에서 마우스 우클릭 하시면 붙여넣기 됩니다. 오타나니까 손으로 하나하나 치지 마세요.)
2-1-1. PuTTY 로 AC1900에 접속합니다.
2-1-2. 아이디/비번 치고 로그인 한 뒤에 아래 명령어 입력합니다.
cat /dev/mtd0 > original_cfe.bin
2-1-3. WinSCP로 접속해서 AC1900에 생성된 original_cfe.bin 파일을 로컬하드디스크로 복사합니다.
2-1-4. https://cfeditor.feng.si/ 사이트에 접속합니다.
① Original CFE 의 ↑ 버튼을 눌러서 original_cfe.bin 파일을 업로드
② Source CFE 에서 1.0.2.0 US AiMesh (RT-AC68U) 를 선택하고
③ Target CFE 맨아래의 Country, TX Power 항목을 체크해서 국가, 출력 제한을 해제
④ Target CFE 의 ↓ 버튼을 눌러서 변경된 CFE 파일을 다운로드 합니다. (새로운 파일명은 아마도 new_1.0.2.0_all_max_aimesh.bin)
2-1-5. 위에서 다운 받은 새로운 CFE 파일(new_1.0.2.0_all_max_aimesh.bin)의 이름을 new_cfe.bin 이라고 변경하고, WinSCP 를 이용해서 AC1900으로 new_cfe.bin, mtd-write, FW_RT_AC68U_30043763626.trx 이 3개의 파일을 업로드합니다.
2-1-6. PuTTY 에서 다음 3개의 명령어를 차례로 입력합니다.
chmod u+x mtd-write
./mtd-write new_cfe.bin boot
mtd-write2 FW_RT_AC68U_30043763626.trx linux
2-1-7. NVRAM 리셋을 수행합니다.
2-1-8. 브라우저로 192.168.1.1 에 접속해서 AC68U 로 성공적으로 변경되었는지 확인합니다.
3. AC1900 흔적 삭제
AC68U로 변신하긴 했지만 이대로 사용하면 정펌 업그레이드시 다시 AC1900으로 롤백되기도 하고 AiMesh 도 활성화 되지 않습니다. 따라서 AC1900 흔적을 삭제해줘야 합니다.
3-1-1. 브라우저로 192.168.1.1 에 접속해서 다시 SSH 를 활성화 합니다. PuTTY 로 192.168.1.1 에 접속해서 아래 명령어들을 차례차례 입력합니다.
(삭제 작업이므로 정말 주의해야 합니다)
cat /dev/mtd5 > /jffs/mtd5_backup.bin
mkdir /tmp/asus_jffs
mount -t jffs2 /dev/mtdblock5 /tmp/asus_jffs
rm -rf /tmp/asus_jffs/*
sync && umount /tmp/asus_jffs
rm -rf /jffs/.sys/RT-AC68U
nvram unset fw_check && nvram commit && reboot
명령어 다 입력하고 나면 자동으로 리부팅 될 겁니다. 아마 그럴 거에요...
4. 멀린펌 올리기
여긴 뭐 별 거 없습니다. 그냥 멀린펌 다운 받아서 올리기만 하면 됩니다.
멀린펌 버전(384.13) 에서 AiMesh 를 지원하기 때문에 AiMesh 기능을 활성화하고 싶으시다면 최신 정펌으로 업그레이드 하던가 멀린펌 올리시면 됩니다.
다운로드 https://sourceforge.net/projects/asuswrt-merlin/files/RT-AC68U/Release/
384.13 이상 버전 파일을 받아서 압축을 풀어보시면 RT-AC68U_384.13_0.trx 파일이 있을 겁니다.
브라우저로 192.168.1.1 에 접속해서 관리 메뉴의 펌웨어 업그레이드 탭에 가보면 해당 파일을 업로드할 수 있습니다.
펌웨어 업그레이드가 완료되면 AiMesh 기능이 활성화된 것을 확인할 수 있습니다.
긴 시간 동안 고생하셨습니다. ㅎ
펌질이 쉽진 않은 거 같아요.
'정보' 카테고리의 다른 글
이어팟 박스 정품과 가품 (구형) (0) | 2020.09.29 |
---|---|
구글 애드센스 승인 (2) | 2020.09.07 |
구글 애드센스 신청 (2) | 2020.09.04 |
샤오미 NEW WIDETECH 스마트 제습기 소음 수리 (13) | 2020.08.30 |
티스토리 블로그 - 구글과 네이버 검색 등록 (2) | 2020.01.05 |
댓글