반응형

* 테스트해본 OS: Ubuntu 12.04 LTS (64bit)

* 컴퓨터: 조립PC(Intel Core i7, 16GB RAM), 노트북(Intel Core i5, 4GB RAM)

* OpenWRT version: backfire (10.03.1)

* 장비(액세스 포인트): Buffalo WZR-HP-G300NH



OpenWRT를 라우터/액세스 포인트에 설치할 때, 원하는 대로 소스코드를 고쳐서 올리려면 사용자가 직접 소스코드를 빌드해서 펌웨어 이미지를 만들어야 한다. OpenWRT 소스로부터 펌웨어 이미지를 직접 만들기 위한 교차 개발환경(Cross compile environment) 구축 방법은 아래와 같다.


우선 교차 개발환경을 구축할 컴퓨터에 SVN (Subversion)이 설치되어 있어야 한다. SVN이 없으면 아래와 같이 설치하고, 이미 설치되어 있으면 다음 단계로 넘어간다.

$ sudo apt-get install subversion



개발 환경을 저장하기 위한 적당한 디렉토리를 하나 만들고, OpenWRT 사이트에서 SVN을 통해서 소스(정확히 말하면, 소스코드 다운로드 받기 위한 Makefile 모음)를 받는다. 참고로 이 글에서 이용한 버전은 2014년 2월 기준에서 최신 버전은 아니다. 최신 버전의 이름은 Attitude_Adjuestment (12.09)이며, SVN 주소는 svn://svn.openwrt.org/openwrt/branches/attitude_adjustment 이다.

$ mkdir openwrt

$ cd openwrt

$ svn co svn://svn.openwrt.org/openwrt/branches/backfire


이 명령을 치면 금방 SVN 체크아웃이 끝나게 되는데, 왜냐하면 실제 소스코드를 모두 받지 않았기 때문이다. 용량도 약 37.6MB밖에 안된다. 실제로 소스코드를 받기 위해서는 make 명령을 실행해야 하며, 이 과정은 매우 오래 걸린다. (필자의 노트북을 기준으로 약 1시간) 그리고 make가 끝이 나면 패키지 옵션에 따라 차이가 있겠지만, Buffalo WZR-HP-G300NH 장비를 기준으로 소소한 옵션을 조금 추가해서 빌드했더 약 4.2GB 정도를 차지했다. ;;;


우분투(Ubuntu)를 기준으로 교차 개발환경을 위해 필요한 패키지를 아래와 같이 설치한다.

$ sudo apt-get install build-essential asciidoc autoconf binutils bison bzip2 flex gawk gettext libncurses5-dev libz-dev patch unzip zlib1g-dev


참고로 build-essential과 asciidoc 등을 포함한 몇몇 패키지는 꽤 많은 용량(수백 MB)을 필요로 한다.



SVN을 통해서 내려받은 OpenWRT backfire 소스에서 추가 패키지를 업데이트하고 다운로드받기 위해서 아래와 같은 명령을 수행한다.

$ cd backfire

$ ./scripts/feeds update -a

$ ./scripts/feeds install -a



여기까지 했으면 이제 실제로 소스를 얻어서 빌드를 하기 직전 단계까지 온 것이다. 실제로 소스를 얻고 빌드하는 make 명령을 수행하기에 앞서서 중요한 옵션을 설정할 필요가 있으며, make menuconfig를 통해서 설정할 수 있다.

$ make menuconfig


잠시(수 초~수십 초) 기다리면 콘솔에 아래와 같은 설정 화면이 나타난다.

(make menuconfig 명령어 실행 시의 첫 화면)


중요한 옵션은 Target System과 Target Profile이다. 각각 엔터를 눌러서 진입하면 칩셋과 모델의 목록이 나오는데, 원하는 모델을 선택하려면 키보드 방향키로 해당하는 항목 위에서 스페이스 키 또는 S 키를 누른다.


Buffalo WZR-HP-G300NH모델은 Atheros 계열 칩셋을 써야 하므로 Target System은 Atheros AR71xx/AR7240/AR913x를 선택하였다. Target Profile은 Buffalo WZR-HP-G300NH를 선택하였다.

(Target System과 Target Profile을 WZR-HP-G300NH에 맞게 설정한 화면)



이제 본격적으로 펌웨어 이미지를 빌드할 차례다. 아래와 같은 순서로 명령어를 친다. make에서 가장 시간이 오래 걸린다.

$ make defconfig

$ make prereq

$ make


빌드가 완료되면 backfire/bin/ar71xx/ 디렉토리에서 펌웨어 이미지를 찾을 수 있다. WZR-HP-G300NH의 경우 openwrt-ar71xx-wzr-hp-g300nh-squashfs-tftp.bin 파일을 펌웨어 설치에 이용한다.


Buffalo 액세스 포인트에 OpenWRT 펌웨어 설치 방법 > 추후 작성 예정




반응형
블로그 이미지

Bryan_

,