logo

한국어

OpenWRT BuildRoot 빌드 방법

관리자 2014.05.17 13:19 조회 수 : 192

▤ RT305x 타겟보드를 기준으로 설명.

■ OpenWRT BuildRoot 다운로드

git clone git://git.openwrt.org/openwrt.git

종류 별
12.09 branch (Attitude Adjustment)
git clone git://git.openwrt.org/12.09/openwrt.git
git clone git://git.openwrt.org/12.09/packages.git


■ 디렉토리를 이동한다.

cd openwrt


■ feeds

feeds는 OpenWRT 패키지의 업데이트/다운로드/빌드 스크립트.
설정파일 : ./feeds.conf.default

최신버전으로 패키지 목록을 업데이트 한다.
'-a' 는 특정 패키지가 아닌 모든 패키지를 의미한다.

./scripts/feeds update -a
./scripts/feeds install -a


■ OpenWRT 나만의 모델 추가

아래와 같은 파일들을 생성 및 편집한다.

cd ~/openwrt/target/linux/ramips/dts
cp -iv RT-N13U.dts SL-R6804.dts
(SL-R6804.dts 파일 편집)

cd ~/openwrt/target/linux/ramips/rt305x/profiles
cp -iv n13u.mk r6804.mk
(r6804.mk 파일 편집)

~/openwrt/target/linux/ramips/base-files/etc/diag.sh
~/openwrt/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
~/openwrt/target/linux/ramips/base-files/etc/uci-defaults/01_leds
~/openwrt/target/linux/ramips/base-files/etc/uci-defaults/02_network
~/openwrt/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
~/openwrt/target/linux/ramips/base-files/lib/ramips.sh
~/openwrt/target/linux/ramips/base-files/lib/upgrade/platform.sh
~/openwrt/target/linux/ramips/image/Makefile


■ OpenWRT 나만의 모델 백업 스크립트 (~/tmp)

#!/bin/sh
mkdir -p ~/tmp/openwrt/target/linux/ramips/base-files/etc/hotplug.d/firmware
mkdir -p ~/tmp/openwrt/target/linux/ramips/base-files/etc/uci-defaults
mkdir -p ~/tmp/openwrt/target/linux/ramips/base-files/lib/preinit
mkdir -p ~/tmp/openwrt/target/linux/ramips/base-files/lib/upgrade
mkdir -p ~/tmp/openwrt/target/linux/ramips/dts
mkdir -p ~/tmp/openwrt/target/linux/ramips/image
mkdir -p ~/tmp/openwrt/target/linux/ramips/rt305x/profiles

cp -fv ~/openwrt/target/linux/ramips/dts/SL-R6804.dts ~/tmp/openwrt/target/linux/ramips/dts
cp -fv ~/openwrt/target/linux/ramips/rt305x/profiles/r6804.mk ~/tmp/openwrt/target/linux/ramips/rt305x/profiles

cp -fv ~/openwrt/target/linux/ramips/base-files/etc/diag.sh ~/tmp/openwrt/target/linux/ramips/base-files/etc/
cp -fv ~/openwrt/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom ~/tmp/openwrt/target/linux/ramips/base-files/etc/hotplug.d/firmware/
cp -fv ~/openwrt/target/linux/ramips/base-files/etc/uci-defaults/01_leds ~/tmp/openwrt/target/linux/ramips/base-files/etc/uci-defaults/
cp -fv ~/openwrt/target/linux/ramips/base-files/etc/uci-defaults/02_network ~/tmp/openwrt/target/linux/ramips/base-files/etc/uci-defaults/
cp -fv ~/openwrt/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac ~/tmp/openwrt/target/linux/ramips/base-files/lib/preinit/
cp -fv ~/openwrt/target/linux/ramips/base-files/lib/ramips.sh ~/tmp/openwrt/target/linux/ramips/base-files/lib/
cp -fv ~/openwrt/target/linux/ramips/base-files/lib/upgrade/platform.sh ~/tmp/openwrt/target/linux/ramips/base-files/lib/upgrade/
cp -fv ~/openwrt/target/linux/ramips/image/Makefile ~/tmp/openwrt/target/linux/ramips/image/


■ OpenWRT config 파일 업로드

- 타겟 플랫폼에 맞는 커널 설정파일을 다운로드 받는다.(여기는 ramips_rt305x)
http://downloads.openwrt.org/attitude_adjustment/12.09/ramips/rt305x/config.ramips_rt305x

rm -f .config
cp -vf config.ramips_rt305x .config


■ menuconfig

※ .c 파일을 커널에 추가한 경우는 make kernel_menuconfig

rm -rf tmp
make menuconfig


■ OpenWRT Build

※ V=99는 make에서 빌드시 상세한 정보가 보여지도록 한다.
※ "-j 5"는 멀티스레드로 빌드를 진행한다 5는 CPU 코어수 + 1
※ IGNORE_ERRORS는 오류를 무시할 것인가 결정한다.

make -j 5 IGNORE_ERRORS=1 V=99

※ 패키지 소스 다운로드만 진행
make IGNORE_ERRORS=1 download


■ 부분 컴파일

- 빌드되었던 내용 삭제
rm -rf ~/openwrt/bin/ramips/kernel-debug.*
rm -rf ~/openwrt/bin/ramips/md5sums
rm -rf ~/openwrt/bin/ramips/OpenWrt-ImageBuilder-*
rm -rf ~/openwrt/bin/ramips/openwrt-ramips-*
rm -rf ~/openwrt/bin/ramips/OpenWrt-SDK-ramips-*
rm -rf ~/openwrt/bin/ramips/OpenWrt-Toolchain-*
rm -rf ~/openwrt/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_rt305x
rm -rf ~/openwrt/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/OpenWrt-ImageBuilder-*
rm -rf ~/openwrt/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/OpenWrt-SDK-*
rm -rf ~/openwrt/staging_dir/host/bin/ccache
rm -rf ~/openwrt/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/ccache

- root 파일시스템 설치
make package/base-files/install V=99

- target 부분만 수정한 경우는 리눅스만 빌드 하면 된다.
rm -f ~/openwrt/bin/ramips/openwrt-ramips-rt305x-sr-k100-squashfs-sysupgrade.bin
make -j 5 target/linux/clean
make -j 5 target/linux/install V=99

- 타겟의 모든 부분을 빌드 (sdk, linux, toolchain, imagebuilder)
make -j 5 target/install

- 이미지빌더만 빌드
make -j 5 target/imagebuilder/install


■ distclean

make distclean


번호 제목 날짜 조회 수
28 ipTIME N702BCM file 2018.04.20 203
27 OpenWRT 빌드환경 구축 (Ubuntu) 2018.04.16 117
26 OpenWRT, DD-WRT 국내 지원 모델 2018.04.13 120
25 Buffalo WHR-G300N V2 2016.04.06 180
24 ipTIME N604M 2016.04.06 246
23 SL-R6804 2016.04.06 247
22 TP-LINK TL-WR740N v4.22 2016.04.06 87
21 OpenWRT 이미지 빌드 2014.06.03 78
20 OpenWRT 기본 방화벽 룰셋 2014.06.03 88
19 kernel compile 2014.06.02 19
18 firmware-mod-kit의 펌웨어(bin) 추출과정 설명 2014.05.31 716
17 OpenWRT BuildRoot 중요 디렉토리 및 파일 2014.05.24 118
16 [OpenWRT] gnutls 컴파일 오류 해결방법 2014.05.24 32
15 dts 파일 컴파일 2014.05.23 1233
14 SL-R6804 정보 file 2014.05.23 50
13 MIPS Core군 정리 file 2014.05.19 84
12 OpenWRT 빌드환경 구축 (CentOS 6.5 x86_64) file 2014.05.17 101
11 OpenWRT Boot Sequence 2014.05.17 55
» OpenWRT BuildRoot 빌드 방법 2014.05.17 192
9 [OpenWRT] OpenVPN Server/Client 설정 2014.05.15 193