OpenWRT

파일:Openwrt2.jpg

1 개요

다양한 임베디드 기기를 위한 리눅스 배포판. 2004년 Linksys의 가정용 유무선 공유기인 WRT54 시리즈에 대한 GPL 코드를 바탕으로 한 커스텀 펌웨어로 개발이 시작되었다가, 지원 대상이 확대되어 다른 일반적인 리눅스 배포판, 혹은 여타 공유기용 펌웨어 프로젝트와는 다르게 현재 다양한 인터넷 공유기를 지원하는 완전한 리눅스 배포판이 되었다. 다만 용도가 공유기로만 제한되지는 않으며, 라즈베리 파이(컴퓨터), 포고플러그 등 각종 임베디드 장비 혹은 x86 머신에도 설치가 가능하다. 유무선공유기 자체가 하나의 임베디드 하드웨어이다.

2 특징 및 장점

자체가 완전한 리눅스로 동작하여 SSH를 통해 터미널로 접속해서 컨트롤이 가능하다. 일일이 터미널창을 띄우고 SSH로 접속해서 명령어를 직접 쳐서 작업하는 환경에 익숙하지 않다면 Luci[1]를 이용해 일반 공유기와 비슷하게 작업하는 것도 가능하다.

현재 최신 버전은 2016년 3월에 출시된 15.05.1 Chaos Clamer[2]이다.

단 대다수의 한국 인터넷 공유기들은 OpenWRT를 설치할수 없다. 일단 국내에 흔한 저가형 공유기들은 Realtek 계열의 SoC를 쓰는 경우가 많은데 이 계열 칩셋은 대부분 지원이 안되며(칩 제조사의 지원이 완전하지 않은 듯) 또한 펌웨어용 플래시칩의 크기가 작아서 개조 펌웨어 이미지를 올릴 수 없다. 국내에 흔한 IPTIME사의 공유기를 예로 들면 저가형은 당연히 위에서 말한 이유로 지원이 안되고, 고급형의 경우 간혹 지원이 잘 되는 Atheros나 Broadcom 계열의 CPU를 쓰는 경우가 있지만, 한국을 벗어나면 거의 아무도 안 쓰는 순전히 국내용 공유기나 마찬가지라 역시 펌웨어를 찾을 수 없다. 한국인 개발자가 만들어주면 좋겠지만...
한국 국내 전용 공유기인데 OpenWRT가 올라가는 제품은 이 제품 정도가 있다. 극히 드물다. 물론 미국 등 주요 시장용으로 출시된 공유기이며 OpenWRT가 지원되는 SoC라면 쉽게 OpenWRT를 올릴 수 있는 펌웨어를 찾을 수 있다.

비슷한 공유기용 펌웨어 프로젝트인 DD-WRT나 tomato와 다르게 OpenWRT가 올려진 기기의 경우 기기 자체가 완전한 임베디드 리눅스박스가 되는 셈이다. 간단하게 공유기로 리눅스에서 할 수 있는 거의 모든 것을 할 수 있게 된다는 것이 가장 큰 장점. 가능성이 무한해진다~

공유기를 예로 들면 공유기 회사의 펌웨어 지원 수준이 떨어질 경우 OpenWRT를 설치해서 입맛대로 펌웨어를 수정할 수 있으며, 펌웨어 지원이 끊어져 각종 보안 취약점에 노출될 위험이 적어진다. 공유기 뒷쪽의 USB 단자에 외장 하드디스크를 연결하여 NAS로 사용할 수도 있고, USB 사운드카드를 연결해서 음악 플레이어로 활용할 수 있다. TV카드를 물려서 예약녹화 혹은 스트리밍으로 써먹을 수도 있고 24시간 켜져 있는공유기니까 당연한 토렌트 다운로드 머신, 프린터 서버, 파일서버, 데이터베이스 혹은 홈페이지를 구축하는 것 등이 모두 가능해진다. 기기의 파워가 받춰주고 능력만 된다면..

공유기 사용자 외에 임베디드 개발자들에게도 상당히 유용하다. OpenWRT가 지원되는 SoC 및 부품을 탑재한 임베디드 디바이스라면, 펌웨어나 드라이버를 일일이 개발할 필요없이 OpenWRT를 얹고 필요한 프로그램을 올려 인스톨하고 설정을 해주면 끝난다. 한번 올린 펌웨어를 뜯어고칠 때마다 다시 올리고 테스트하는 삽질 대신 접속해서 수정만 해주면 된다. 실제로 이런 용도로 현업에서 많이 사용되고 있다.

3 단점

위에 설명한 장점들이 오히려 많은 사람에게는 제약이 된다. 위에 설명한 무한한 확장성은 리눅스 명령어를 잘 모르면 제대로 써먹기 어렵다. 거기다 상당수의 기능은 펌웨어를 컴파일하기 전에 해당 옵션을 일일이 활성화해줘야 할 경우가 많다. [3] 타겟만 제대로 정하면 소스를 다운받고 업데이트하고 옵션을 조정하고 펌웨어를 크로스컴파일하는 과정들이 아는 사람들 기준으로는 매우간편하고 친절하게 마련되어 있다지만 어디까지나 아는 사람, 혹은 Geek의 경우에나 그렇다. 검은 텍스트 화면에 친숙하지 않다면, 타인이 미리 컴파일해둔 펌웨어를 받아서 위에 설명한 Luci 웹 인터페이스 등을 통해 컨트롤하는 것 정도가 최대한이 된다.

파일:Luci1.jpg

그러나 이 인터페이스도 한글화가 안 돼 있으며, 한글화는 차치하더라도 설정 내용이 상당히 자세하고 전문적인 내용이 많아 익숙하지 않으면 뭐가 뭔지 알아보는 데 시간이 꽤 걸린다. 즉, 어디까지나 전문가용이다.

이외에 하드웨어 가속 NAT 처리를 지원하지 않아 튜닝이 잘된 정식 펌웨어에 비해 속도가 약간 떨어지는 문제가 있다. 이쪽 부분 지원에 아직까지 애로점이 많기 때문인데. 단, 공유기의 사양이 올라가면 CPU쪽 파워만으로도 충분히 커버가 가능하다.

4 LEDE

공식 홈페이지

LEDE는 Linux Embedded Development Environment의 약자로
OpenWRT에서 포크된 새로운 오픈소스 라우터 펌웨어 프로젝트이다.

OpenWRT 프로젝트의 여러 문제점에 불만이 있던 개발자들이 새로운 프로젝트를 만든것인데
아래와 같은 5가지의 문제를 새로운 LEDE 프로젝트를 시작한 이유로 말하고 있다.

1. 개발에 적극적인 주요 개발자들이 적고 새롭게 프로젝트에 참가하는 개발자의 부재

2. 신뢰할 수 없는 인프라와 내부 불일치 및 단일 장애 지점의 방치

3. 핵심 팀 내부 그리고 핵심 팀과 커뮤니티 사이의 대화, 협동, 투명성의 부족

4. 패치의 양에 비해 부족한 관리자 그리고 정규 빌드 및 테스트에 대한 적은 관심

5. 펌웨어의 안정성과 문서화에 대한 초점 부족

이러한 문제점을 개선하여 개방적이고 활발한 프로젝트를 목표로 하고있다.
  1. OpenWRT의 웹 프론트 인터페이스
  2. OpenWRT의 버전은 칵테일 이름의 코드명으로 출시된다.
  3. 이렇게 만든 이유는 어떤 프로그램이나 기능을 추가하는 순간 그만큼 플래시롬의 한정된 여유 용량이 줄어들고, 낮은 사양 혹은 USB 단자가 없는 하드웨어 등에서 사양을 많이 잡아먹거나 외부 기기를 연결할 때나 필요한 각종 기능을 기본값으로 활성화할 필요가 없기 때문이다. 임베디드 플랫폼의 자원은 한정되어 있다.