OBSOLETE Compile Firmware from source using Ubuntu - XIYO/asuswrt-merlin.ng-kr GitHub Wiki

[OBSOLETE] ์šฐ๋ถ„ํˆฌ์—์„œ asuswrt-merlin ๋นŒ๋“œ ๋ฐฉ๋ฒ•


์ด ํŽ˜์ด์ง€๋Š” ์˜ค๋ž˜๋œ Linux ๋ฒ„์ „์„ ์ฐธ์กฐํ•˜๋ฉฐ ๋” ์ด์ƒ ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ตœ์‹  ๋นŒ๋“œ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ๊ถŒ์žฅ ์‚ฌํ•ญ์€ ์†Œ์Šค ์ฝ”๋“œ์—์„œ ํŽŒ์›จ์–ด ์ปดํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.


. .

์ƒˆ๋กœ์šด HND ํ”Œ๋žซํผ (RT-AC86U)์šฉ ๋นŒ๋“œ๋ฅผ ์›ํ•˜๋Š” ๊ฒฝ์šฐ, ์ผ๋ถ€ ๋‹ค๋ฅธ ์ง€์นจ์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ ์ด์— ๋”ฐ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

. .

์ฃผ์˜ ์‚ฌํ•ญ

๊ฒฝ๊ณ : ์ง์ ‘ ํŽŒ์›จ์–ด๋ฅผ ์ปดํŒŒ์ผํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋”๋ผ๋„, ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์•ˆ๋‚ด์„œ๋Š” ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹Œ ์ดˆ๋ณด์ž๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค ์ค‘์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ์˜ ์ €์ž๋‚˜ ์†Œ์Šค ์ œ๊ณต์ž๋Š” ์ž์ฒด ์ปดํŒŒ์ผํ•œ ํŽŒ์›จ์–ด๋ฅผ ๋ผ์šฐํ„ฐ์— ํ”Œ๋ž˜์‹ฑํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์–ด๋–ค ์†์ƒ์— ๋Œ€ํ•ด์„œ๋„ ์ฑ…์ž„์„ ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ์ปดํ“จํŒ…๊ณผ ์ฝ”๋”ฉ์„ ๋ฐฐ์šฐ๊ณ  ์‹ถ๋‹ค๋ฉด ๋จผ์ € ๋ฆฌ๋ˆ…์Šค์— ์ต์ˆ™ํ•ด์ง€๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด์—, ๋ผ์šฐํ„ฐ๋Š” ๋งค์šฐ ์–ด๋ ต๊ฒŒ ๋ง๊ฐ€์งˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค!

์ถ”๊ฐ€ ์ •๋ณด

์šฐ๋ถ„ํˆฌ๋Š” Debian์˜ ํŒŒ์ƒ์ด๋ฏ€๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ Debian ๊ธฐ๋ฐ˜ Linux ๋ฐฐํฌํŒ์„ ์‚ฌ์šฉํ•˜๋Š” ์ง€์นจ๋„ ์ฐธ๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.## ์˜ˆ์ œ: Ubuntu 12.04์—์„œ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•

์ฐธ์กฐ์šฉ์œผ๋กœ VMware Player์—์„œ Ubuntu 12.04๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • Ubuntu๋ฅผ ์—ฌ๊ธฐ์—์„œ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • VMware Player๋Š” ์—ฌ๊ธฐ์—์„œ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘ ๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ์„ค์น˜ํ•œ ํ›„ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”:

  • ์ƒˆ ๊ฐ€์ƒ ๋จธ์‹  ์ƒ์„ฑ

  • Installer ๋””์Šคํฌ ์ด๋ฏธ์ง€ ํŒŒ์ผ (iso) ์„ ํƒ (VMware Player์—์„œ ์‰ฌ์šด ์„ค์น˜์— ๋Œ€ํ•ด ์–ด๋–ค ๋‚ด์šฉ์„ ์•Œ๋ ค์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.)

  • Ubuntu๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋™์•ˆ ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์š”์ฒญํ•  ๋•Œ ๋”ฐ์˜ดํ‘œ ์—†์ด 'router'๋กœ๋งŒ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ์•ˆ๋‚ด์„œ์—์„œ ๋ชจ๋“  ๊ฒƒ์„ ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ๋งŒ ํ•˜๋ฉด ๋ณต์žกํ•œ ์ž‘์—…์„ ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

  • ์•ฝ 20GB๋ฅผ ํ• ๋‹นํ•˜๊ณ  ๋‚˜์ค‘์— ๊ฐ€์ƒ Ubuntu๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ช‡ ๊ฐ€์ง€ ์ŠคํŽ™์„ ๋†’์ด๊ณ  ๋” ๋งŽ์€ RAM๊ณผ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ๋ถ€์—ฌํ•˜์„ธ์š”. ๋ผ์šฐํ„ฐ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์€ ๋ฌด๊ฑฐ์šด ์ž‘์—…์ด ์•„๋‹ˆ๋ผ๊ณ  ๋“ค๋ฆฌ์ง€๋งŒ ๋А๋ฆฐ ํ”„๋กœ์„ธ์„œ์—์„œ๋Š” ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Ubuntu ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์ด ์™„๋ฃŒ๋˜๋ฉด ํ„ฐ๋ฏธ๋„์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ„ฐ๋ฏธ๋„์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. CTRL+ALT+T

๋นŒ๋“œ ํ™˜๊ฒฝ ์ˆ˜๋™์œผ๋กœ ์ค€๋น„ํ•˜๊ธฐ

  • ๋ช‡ ๊ฐ€์ง€ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. (ํ•„์š” ์—†๋Š” ๊ฒƒ๋„ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋ ‡๊ฒŒ ํ•˜์—ฌ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์œผ๋ฉฐ ์ดํ›„์— Ubuntu๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ˆ„๊ฐ€ ์‹ ๊ฒฝ์“ฐ๊ฒ ์Šต๋‹ˆ๊นŒ?)
sudo apt-get install libtool-bin cmake libproxy-dev uuid-dev liblzo2-dev autoconf automake bash bison \
bzip2 diffutils file flex m4 g++ gawk groff-base libncurses-dev libtool libslang2 make patch perl pkg-config shtool \
subversion tar texinfo zlib1g zlib1g-dev git-core gettext libexpat1-dev libssl-dev cvs gperf unzip \
python libxml-parser-perl gcc-multilib gconf-editor libxml2-dev g++-multilib gitk libncurses5 mtd-utils \
libncurses5-dev libvorbis-dev git autopoint autogen sed build-essential intltool libelf1:i386 libglib2.0-dev \
xutils-dev lib32z1-dev lib32stdc++6 xsltproc gtk-doc-tools

๋งŒ์•ฝ ์šฐ๋ถ„ํˆฌ x64 ์—๋””์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ lib32z1-dev์™€ lib32stdc++6๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

sudo apt-get install lib32z1-dev lib32stdc++6

์ค€๋น„๊ฐ€ ๋˜์—ˆ๋‹ค๋ฉด ์ด๋Ÿฌํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์ž์‹ ์—๊ฒŒ ์ž˜ ์–ด์šธ๋ฆฌ๋Š” ์ปคํ”ผ๋ฅผ ๋‚ด๋ฆฌ๊ฑฐ๋‚˜ ์ฐจ๊ฐ‘๊ฒŒ ๋งฅ์ฃผ๋ฅผ ์ฆ๊ธฐ์‹ญ์‹œ์˜ค.

์ด์ œ RMerlin์˜ ๋…ธ๊ณ ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋งค์šฐ ์ž์„ธํ•œ ์•ˆ๋‚ด๋Š” ์ด ์œ„ํ‚ค ํŽ˜์ด์ง€์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Legacy 380.xx ๋ธŒ๋žœ์น˜

git clone https://github.com/RMerl/asuswrt-merlin

HND ํ”Œ๋žซํผ (RT-AC86u)์šฉ Next Generation ๋ธŒ๋žœ์น˜

git clone https://github.com/RMerl/asuswrt-merlin.ng

๋˜ํ•œ ๋„๊ตฌ ์ฒด์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

sudo ln -s ~/am-toolchains/brcm-arm-hnd /opt/toolchains

์ด๋Ÿฌํ•œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…์— ํ•„์š”ํ•œ ํ™˜๊ฒฝ์„ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ์ด ์‹œ์ ์—์„œ HND ํ”Œ๋žซํผ์„ ์œ„ํ•ด ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ์ง€์นจ์„ ๋”ฐ๋ผ์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

sudo ln -s ~/asuswrt-merlin/tools/brcm /opt/brcm
sudo ln -s ~/asuswrt-merlin/release/src-rt-6.x.4708/toolchains/hndtools-arm-linux-2.6.36-uclibc-4.5.3 /opt/brcm-arm

PATH ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

export PATH=$PATH:/opt/brcm/hndtools-mipsel-linux/bin:/opt/brcm/hndtools-mipsel-uclibc/bin:/opt/brcm-arm/bin

์ƒˆ๋กœ์šด HND ํ”Œ๋žซํผ (RT-AC86u)์„ ์œ„ํ•ด:

sudo ln -sf bash /bin/sh

echo "export LD_LIBRARY_PATH=$LD_LIBRARY:/opt/toolchains/crosstools-arm-gcc-5.3-linux-4.1-glibc-2.22-binutils-2.25/usr/lib" >> ~/.profile

echo "export TOOLCHAIN_BASE=/opt/toolchains" >> ~/.profile

echo "PATH=\$PATH:/opt/toolchains/crosstools-arm-gcc-5.3-linux-4.1-glibc-2.22-binutils-2.25/usr/bin" >> ~/.profile

echo "PATH=\$PATH:/opt/toolchains/crosstools-aarch64-gcc-5.3-linux-4.1-glibc-2.22-binutils-2.25/usr/bin" >> ~/.profile

์ถ”๊ฐ€์ ์ธ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ์„ค์ •:

sudo mkdir -p /media/ASUSWRT/
sudo ln -s ~/asuswrt-merlin /media/ASUSWRT/asuswrt-merlin

HND ํ”Œ๋žซํผ (RT-AC86u)์„ ์œ„ํ•ด:

sudo ln -s ~/asuswrt-merlin.ng /media/ASUSWRT/asuswrt-merlin.ng

๋นŒ๋“œ ์ค€๋น„ ์™„๋ฃŒ: ์ˆ˜๋™ ๋ฐฉ์‹

RT-N16

cd ~/asuswrt-merlin/release/src-rt
make clean
make rt-n16

RT-N66U & RT-AC66U

cd ~/asuswrt-merlin/release/src-rt-6.x
make clean

... ๊ทธ๋Ÿฐ ๋‹ค์Œ RT-N66U์˜ ๊ฒฝ์šฐ

make rt-n66u

... ๊ทธ๋ฆฌ๊ณ  RT-AC66U์˜ ๊ฒฝ์šฐ

make rt-ac66u

RT-AC56U ๋ฐ RT-AC68U

cd ~/asuswrt-merlin/release/src-rt-6.x.4708
make clean

... ๊ทธ๋Ÿฐ ๋‹ค์Œ RT-AC56U์˜ ๊ฒฝ์šฐ

make rt-ac56u

... ๊ทธ๋ฆฌ๊ณ  RT-AC68U์˜ ๊ฒฝ์šฐ

make rt-ac68u

RT-AC86U์˜ ๊ฒฝ์šฐ

cd ~/asuswrt-merlin.ng/release/src-rt-5.02hnd
make rt-ac86u

Ubuntu 13.10 ์ดํ›„ ๋ฒ„์ „์— ๋Œ€ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ

Ubuntu 13.10์—์„œ ๋นŒ๋“œํ•˜๋ ค๋ฉด make clean / make [router]๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— autoconf์˜ ๋‹ค๋ฅธ ๋ฒ„์ „ ๋•Œ๋ฌธ์— ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ž‘์—…์€ 3.0.0.4_374.38_1์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : **์ƒˆ๋กœ์šด HND ํ”Œ๋žซํผ (RT-AC86u)์˜ ๊ฒฝ์šฐ asuswrt-merlin์„ asuswrt-merlin.ng๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

neon ๋ˆ„๋ฝ๋œ proxy.h ์ˆ˜์ •

cp /usr/include/proxy.h ~/asuswrt-merlin/release/src/router/neon/

libdaemon์„ ์œ„ํ•œ ์†์ƒ๋œ configure ์Šคํฌ๋ฆฝํŠธ ์ˆ˜์ •

cd ~/asuswrt-merlin/release/src/router/libdaemon
aclocal

libxml2์„ ์œ„ํ•œ ์†์ƒ๋œ configure ์Šคํฌ๋ฆฝํŠธ ์ˆ˜์ •

cd ~/asuswrt-merlin/release/src/router/libxml2
sed -i s/AM_C_PROTOTYPES/#AM_C_PROTOTYPES/g ~/asuswrt-merlin/release/src/router/libxml2/configure.in
aclocal

libvorbis๋ฅผ ์œ„ํ•œ ์†์ƒ๋œ configure ์Šคํฌ๋ฆฝํŠธ ์ˆ˜์ •

cd ~/asuswrt-merlin/release/src/router/libvorbis
aclocal

์ž๋™ํ™”๋œ all-in-one ์Šคํฌ๋ฆฝํŠธ

์ƒํƒœ: ์ด ์Šคํฌ๋ฆฝํŠธ๋Š” Ubuntu 12.04์™€ 14.04์—์„œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์œผ๋ฉฐ 2015-02-02 ํ˜„์žฌ๋กœ์„œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์‹  ๋ฒ„์ „์€ ํ•ญ์ƒ assarbad/build-asuswrt-merlin์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ํ•ด๋‹น ์œ„์น˜์—์„œ ๋ณด๊ณ ํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋žœ๋”ฉ ํŽ˜์ด์ง€(์œ„์˜ ๋งํฌ)์—์„œ ์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ํ˜„์žฌ ์ƒํƒœ์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์†Œ๊ฐœ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.