FON 공유기에 Custom Firmware 올려서 활용하기
목차
얼마전에 라즈베리파이3 B+에 OpenWRT를 올려서 무선 AP를 만들어보는 내용에 대하여 포스팅 한적이 있습니다. 라즈베리파이에 OpenWRT를 올리다 보니 문득 이런 생각이 들었습니다. 예전에 사용하던 공유기 제품에 혹시 OpenWRT를 올려서 성능이나 기능을 업데이트 할 수 있지 않을까? 그래서 집에 혹시 놀고 있는 공유기가 있나 찾아보니… 무려 12년전에 무료로 신청해서 받았던 Fon 공유기를 찾아 냈습니다.
La Fonera 2100/2200 라는 모델로 전 세계에 무선 AP를 켜두는 조건으로 무료 배포가 되었던 그 공유기 입니다. 한국에서도 2006년에 프로모션을 진행했었는데, 당시에 전기세가 많이 나올까봐 몇번 켜두다가 꺼놓고 방치했던 기억이 떠오릅니다. 당시에 Fon 이라는 회사에서 왜 이런 정책으로 Fon 공유기를 배포하였는지는 아직도 이유는 알 수 없지만, 아마도 Fon 이라는 회사를 홍보하거나 그에 상응하는 경제적 이익을 얻기 위해서 행사를 진행하지 않았을까? 라는 생각도 해봅니다. 어쨌거나 만약 무선 AP를 1여년간 켜놓지 않으면 사용이 아마 중지 되는 걸로 알고 있었는데요, 그 이후로는 유무선 공유기가 워낙 많이 보급된 탓에 La Fonera를 서랍속에 고히 모셔놓은 상태였습니다.
제가 가지고 있던 La Fonera 2100 모델입니다. 얼핏 듣기로는 La Fonera도 OpenWRT로 내부 펌웨어를 개발했다는 얘기를 들은 적이 있네요. 그렇다면 La Fonera 2100 에도 OpenWRT를 올릴 수 있지 않을까요? 물론 12년전에 출시된 모델이긴 하지만 OpenWRT를 올리기에는 부족하지 않은 사양이므로 한번 찾아보기로 했습니다.
검색해 보니 OpenWRT 위키에 La Fonrea에 대한 정보들이 있네요. 여기에 따른 하드웨어 스펙은 아래와 같습니다.
MIP 기반의 Atheros AR2315 CPU에 Clock은 183 Mhz이고 RAM이 16 MB, 내부 플래쉬가 8 MB 정도 되네요. WiFi는 11b/g 까지 지원되는 Atheros WiFi에 Serial 까지 지원된다고 하니. 충분히 OpenWRT를 올려서 활용할 수 있을꺼 같습니다. 그럼 차근차근 커스텀 펌웨어 올리는 과정에 대해 알아보겠습니다.
DD-WRT를 La Fonera에 올리기
찾아보니 OpenWRT를 올리려면 시간이 걸릴꺼 같네요. 그래서 La Fonrea 2100에 커스텀 펌웨어를 제공하는 DD-WRT의 펌웨어를 올려보기로 했습니다. 검색을 하면 “FON 공유기 해킹” 이라는 문서들이 많이 발견이 되긴 합니다. 그러나 해킹이라는 표현보다는 커스텀 Firmware를 올린다는 표현이 맞을꺼 같습니다.
DD-WRT는 OpenWRT와 마찬가지로 네트워크 Router에 커스텀 펌웨어 개발로 시작되어 지금까지 진행된 OpenSource 프로젝트 입니다. OpenWRT와 매우 유사한 성격을 지니고 있다고 보면 됩니다. DD-WRT도 시중에서 개발된 네트워크 Router에 많이 탑재된 솔루션이라고 볼 수 있습니다.
이번에는 La Fonera 2100에 사전에 빌드된 DD-WRT Firmware를 올리는 방법으로 진행할 생각입니다.
La Fonera Serial 연결하기
먼저 La Fonera에 커스텀 펌웨어를 올리기 위해서는 몇가지 준비가 필요한데요, 먼저 La Fonera와 PC간의 통신 매개체가 필요합니다. 관련 내용을 찾아보면 SSH를 사용하는데요, 현재 La Fonera에 올라간 펌웨어는 SSH를 사용할 수 없기 때문에 강제로 공장초기화를 버튼으로 누르고 진행하여 펌웨어 버전을 다운그레이드 한 후에 SSH로 La Fonera의 쉘로 접근하여 펌웨어를 다운로드 하는 방법을 소개하고 있습니다.
그러나 저는 몇번 시도해 보다가 이 방법이 불편해서 La Fonera의 케이스를 열어서 Serial 통신으로 La Fonera에 접근해 보기로 했습니다. 아래 링크는 DD-WRT에 소개된 Serial 관련 내용입니다.
먼저 La Fonera의 하단 부분을 확인합니다. 케이스를 열려면 하단의 왼쪽 부분의 2개의 나사를 제거하면 케이스를 열 수 있습니다.
위 사진에 나온대로 2개만 제거하면 됩니다. 힘을 줘서 케이스를 열면…
요렇게 La Fonera 의 내부가 나타납니다. 사진에서 Hynix 메모리의 왼쪽에 10 핀 커넥터가 있죠? 거기에 Serial 관련 핀들이 있습니다. 사진상의 번호는 오른쪽 라인의 맨 아래부터 1번이락 하고 Rx는 2번, Tx는 3번, GND는 5번 입니다. 이 3개의 핀을 USB to Serial 어뎁터에 연결해 주면 됩니다.
Custom Fimware 준비 및 설치도구 준비
시리얼 통신을 해야 되기 때문에 터미널 프로그램과 HFS, TFTPD32가 필요합니다. 터미널 프로그램은 많이 쓰는 거기 때문에 여기서 소개는 생략합니다. HFS는 윈도우즈에서 동작하는 작은 웹서버 입니다. 펌웨어 파일 전송을 위해 필요합니다. 없다면 아래 링크에서 다운로드 받으시기 바랍니다.
다음에 Firmware 파일을 내부 플래쉬에 올리기 위해 사용하는 tftpd32가 필요합니다. 아래 링크도 이동하여 다운로드 및 설치하면 됩니다.
다음에는 실제 Custom Firmware 파일이 필요합니다. 아래 링크에서 다운로드 받으시기 바랍니다.
La Fonera Custom Firmware 파일 모음
- openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma
- out.hex
- root.fs
- vmlinux.bin
위의 파일에서 압축을 해제하면 4개의 파일이 각자 압축이 되어 있습니다. 이 압축파일들도 각각 해제하면 됩니다.
La Fonera Firmware Download 및 update 진행
먼저 터미널 프로그램을 실행 시킨 후 La Fonera를 연결합니다. 그런 다음에 이더넷 케이블을 PC와 연결합니다.
이더넷 케이블은 PC와 La Fonera간에 연결을 위한 것입니다. 먼저 터미널 프로그램에서 Serial 설정을 9600으로 변경합니다. ( 그 외엔 동일 ) 그런 다음에 어뎁터를 연결합니다.
현재 올라가 있는 La Fonera의 Shell로 접속한 화면입니다. 날짜가 2006년이라고 되어 있는걸 보니 오래 되긴 했네요. 잠시 터미널 프로그램을 뒤로 하고 PC에서 이더넷 설정을 아래와 같이 변경해 줍니다.
IP주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버 까지 입력합니다. 확인을 누릅니다.
이 상태에서 HFS를 실행시켜줍니다. 실행을 시킨다음에 드래그 앤 드롭으로 openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma 과 out.hex 를 HFS에 옮겨놓습니다.
다시 터미널로 이동합니다. 먼저 openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma 를 업데이트를 합니다. 아래의 명령어를 입력하여 업데이트를 진행해 주세요.
cd /tmp wget http://169.254.255.2/openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma mtd -e vmlinux.bin.l7 write openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma vmlinux.bin.l7 reboot
이 과정이 끝나면 reboot 하여 다시 부팅합니다.
이번에는 out.hex 파일을 업데이트 해야 합니다. 아래 명령어로 터미널에서 업데이트를 진행하면 됩니다. ( out.hex으로 업데이트는 Redboot의 설정값을 바꾸는 작업입니다.)
cd /tmp wget wget http://169.254.255.2/out.hex mtd -e "RedBoot config" write out.hex "RedBoot config" reboot
업데이트가 완료되면 다시 reboot을 진행합니다.
DD-WRT Firmware update 진행
이제 1차적으로 DD-WRT의 Custom Firmware를 올릴 준비가 되었습니다. 이번에는 DD-WRT의 Custom Firmware를 La Fonera의 플래쉬에 Write 하는 작업을 진행하도록 하겠습니다.
먼저 PC의 이더넷 속성에서 아래와 같이 IP를 다시 변경해 줍니다.
확인을 누른 후에 tftpd32를 실행시킵니다. 그런 다음 DD-WRT 커스텀 펌웨어인 아래 파일들이 있는 위치의 경로로 설정을 해줍니다.
- root.fs
- vmlinux.bin
tftpd32의 경로와 Server Interface의 IP 주소를 잘 확인합니다. 그리고 터미널 프로그램으로 이동하여 아래 명령어로 La Fonera에 DD-WRT 커스텀 펌웨어로 업데이트를 진행합니다. 명령어를 입력할때는 Redboot> 상태에서 입력하면 됩니다.
ip_address -l 192.168.1.254/24 -h 192.168.1.166 fis init Y (About to initialize [format] FLASH image system - continue (y/n)? y) load -r -v -b 0x80041000 root.fs fis create -b 0x80041000 -f 0xA8030000 -l 0x002C0000 -e 0x00000000 rootfs load -r -v -b 0x80041000 vmlinux.bin.l7 fis create -r 0x80041000 -e 0x80041000 -l 0x000E0000 vmlinux.bin.l7 fis create -f 0xA83D0000 -l 0x00010000 -n nvram reset
위 화면에서와 같이 진행이 완료되었으면 reset을 입력합니다.
자 그럼 다음 부팅때 Serial 콘솔을 확인해 보면? Redboot 까지는 9600으로 진행되다가 Linux Kernel로 넘어가면 Serial 속도가 112500으로 변경됩니다. 뭔가 바뀐거 같긴 하네요. 그럼 어떻게 바뀐건지 확인을 해볼까요?
먼저 WiFi를 검색해봅니다. SSID 중에 ddwrt 라는 새로 보이는 SSID가 생성되었을 것입니다. 여기서 192.168.1.1 로 접속을 하면 DD-WRT의 WEB GUI가 나타납니다.
와우! 깔끔한 GUI가 눈에 띕니다. 제가 보유한 La Fonera 2100을 이제 제대로 활용할 수 있을꺼 같네요. 현재 이 글을 쓰는 와중에도 La Fonera 2100의 WiFi로 연결하여 사용하고 있습니다. WiFi는 11b/g 까지 밖에 지원을 하지 않지만 가정에서는 서브 무선 AP로는 손색이 없을꺼 같습니다.
Firmware 버전을 확인해 보니 2008년도에 build된거 같네요. 좀더 알아봐서 최신 펌웨어로 업데이트를 할 수 있으면 해볼 생각입니다. 아님 직접 컴파일하여 올려보는 것도 가능할꺼 같네요.
이상 La Fonera 공유기 Custom Firmware 업데이트에 관하여 정리 해봤습니다.