들어가며
OpenWRT 를 이용하여 웹서버를 구축하였다가 설정을 잘못 건드리는 바람에 벽돌이 되어버린 이후로, 리셋 버튼과 펌웨어 영역의 변경이 불가능한 DD-WRT를 공유기에 올려서 이용하고 있습니다.사용하다 보니 초기에는 공유기 자체의 펌웨어를 건드릴 수 없다보니 불편하게 느껴졌었는데, 기기를 재기동만 시키면 원래대로 돌아와 주니 마음 놓고 이것 저것 실험해볼 수 있어서 좋더군요.
허나, OpenWRT의 opkg 가 DD-WRT의 ipkg보다 여러모로 편리한 점이 많기 때문에, 이를 DD-WRT 에서도 이용해 볼 생각을 하게 되었고, 결국 구글링을 통해 세 가지 방법을 짜집기 하여 포스팅 하였습니다.
[참조한 문서들]
http://g300nh.blogspot.com/2010/06/software-installation-on-dd-wrt-part-1.html
https://forum.openwrt.org/viewtopic.php?id=28488
준비물
WinSCP 와 Putty 는 홈페이지의 다운로드 페이지 링크를, OpenWRT의 library 파일은 제 블로그 계정에서 다운로드 링크를 걸어 두었습니다.시작하기
- WinSCP 를 이용해 공유기에 접속합니다.
설정은 Putty와 동일하게 설정하면 됩니다. (SSH)
- 접속하는데 성공하였다면 루트로 이동하여 bin, etc, lib, tmp, usr 폴더를 선택, USB 드라이브에 폴더 하나를 만들어서 그 폴더 안에 복사하도록 합니다.
저는 fck 라는 폴더를 만들어서 그 안에 넣었습니다.
- 복사를 마쳤다면 OpenWRT의 라이브러리를 넣어 줄 폴더 하나를 만듭니다.
이름은 lib2 정도로 적당히 붙이겠습니다.
- 생성한 폴더에 OpenWRT의 라이브러리 파일들을 복사한 후, 공유기에 USB 드라이브를 마운트 시킵니다. (웹GUI 에서 /mnt/로의 자동 마운트를 강력 추천!)
- 이제 Putty를 이용하여 공유기에 접속합니다.
방금 USB 드라이브에 복사하였던 폴더들을 공유기 내부의 같은 이름을 가진 폴더들로 마운트를 시켜주어야 합니다.
mkdir /mnt/fck/jffsjffs 폴더는 생성하지 않았으므로, mkdir 명령어를 이용하여 하나 만들어 주도록 합니다.
mount /mnt/fck/jffs /jffs
mount /mnt/fck/etc /etc
mount /mnt/fck/bin /bin
mount /mnt/fck/lib /lib
mount /mnt/fck/usr /usr
mount /mnt/fck/tmp /tmp
- 이제 ipkg.conf 파일과 ipkg 파일을 수정하여 ipkg가 제기능을 할 수 있도록 만들어 줄 차례입니다.
mv /etc/ipkg.conf /etc/ipkg.conf.orig
echo -e "src backfire http://downloads.openwrt.org/backfire/10.03.1-rc3/ar71xx/packages/\ndest root /\ndest ram /tmp" > /etc/ipkg.conf
cp /bin/ipkg /bin/ipkg.orig
cat /bin/ipkg.orig |sed -e "s/--passive-ftp //" > /bin/ipkg
- ipkg update 를 입력합니다.
ipkg update
- 리스트의 업데이트가 완료될 때까지 기다렸다가, 업데이트가 완료되면 ipkg를 이용하여 opkg를 설치하도록 합니다.
ipkg install opkg
- opkg가 정상 동작하려면 OpenWRT의 라이브러리가 필요하므로, 이를 마운트 시켜주도록 합니다.
mount /mnt/fck/lib2/ /libjffs를 opt로 마운트 시킨 이유는 opkg의 루트를 opt로 설정할 것이기 때문입니다.
mount /mnt/fck/jffs /opt
굳이 이럴 필요 없이, opkg.conf 의 루트 경로를 /mnt/fck, 즉, 루트와 마찬가지의 역할을 수행할 경로로 설정하는 것이 나을 것 같습니다.
단, 마운트 된 경로를 여기에 또 넣으면 에러납니다. -_-a
- opkg.conf 파일을 생성해 주도록 합니다.
echo -e "src/gz snapshots http://downloads.openwrt.org/backfire/10.03.1-rc3/ar71xx/packages/\ndest root /opt/\ndest ram /tmp\nlists_dir ext /tmp/var/opkg-lists" > /etc/opkg.conf
echo -e "src/gz snapshots http://downloads.openwrt.org/backfire/10.03.1-rc3/ar71xx/packages/\ndest root /mnt/fck\ndest ram /tmp\nlists_dir ext /tmp/var/opkg-lists" > /etc/opkg.conf
- LD_LIBRARY_PATH와 PATH를 마운트 시킨 /opt/에 맞추어 지정해 줍니다.
export LD_LIBRARY_PATH='/opt/lib:/opt/usr/lib:/lib:/usr/lib'
export PATH='/opt/bin:/opt/usr/bin:/opt/sbin:/opt/usr/sbin:/bin:/sbin:/usr/sbin:/usr/bin'
아마 이 과정은 필요 없을겁니다.
혹시라도 에러나면 붙여넣어 보시기 바랍니다.
- opkg의 목록을 업데이트 시켜줍니다.
opkg update
만약 이 과정에서 rockf64 같은 에러가 발생한다면 OpenWRT의 라이브러리가 제대로 마운트 되지 않은 것입니다. 위의 과정 10을 참조하셔서 마운트 시켜주시기 바랍니다.
- 이제 opkg 를 이용하여 패키지 설치가 가능하게 되었습니다.
만약 재부팅 후 다시 폴더들을 마운트 시키고 싶다면 다음과 같이 입력하시면 되겠습니다.
mount /mnt/fck /opt
mount /mnt/fck/etc /etc
mount /mnt/fck/bin /bin
mount /mnt/fck/lib2 /lib
mount /mnt/fck/usr /usr
mount /mnt/fck/tmp /tmp
mount /mnt/fck/jffs /opt
export LD_LIBRARY_PATH='/opt/lib:/opt/usr/lib:/lib:/usr/lib'
export PATH='/opt/bin:/opt/usr/bin:/opt/sbin:/opt/usr/sbin:/bin:/sbin:/usr/sbin:/usr/bin'
문제점
현재 이 방식으로 패키지를 설치했을 때 발생하는 문제점은 다음과 같습니다.패키지 스스로 이름을 변경할 수 없음
php-fastcgi 를 설치한 화면입니다.그림과 같이 파일의 이름이 변경되지 않아, 직접 변경해 주어야 하는 번거로움이 있습니다.
Putty나 WinSCP 등을 이용하여 변경해 주면...
그림과 같이 정상 작동함을 확인할 수 있습니다.
마치며
ipkg 를 이용하여 패키지를 설치하면 그 패키지만이 설치되고 끝입니다.그렇게 되면 해당 패키지의 정상적인 동작을 보장할 수 없죠.
하지만 opkg 를 이용하여 패키지를 설치하면 그 패키지에 필요한 패키지들까지 함께 설치가 됩니다.
opkg install php-fastcgi 를 입력하면 php5와 php5-cgi 등의 패키지들이 함께 설치되듯이 말이죠.
'컴퓨터' 카테고리의 다른 글
RewriteRule - 이전 주소 접근 시 변경된 주소로 이동시키기 (2) | 2011.07.12 |
---|---|
공유기(EDIMAX BR-6204Wg)와 시리얼 통신 하기 (0) | 2011.07.11 |
티스토리 초대장을 드립니다. (종료) (11) | 2011.07.08 |
Firefox 에서 한글로 input 입력 시 onkeypress, onkeyup, onkeydown 안 먹는 문제 해결 트릭 (1) | 2011.07.08 |
DD-WRT 공유기에 텍스트큐브 설치하고 포트 포워딩 하기 (4) | 2011.07.07 |
티스토리 블로그에 구글 맞춤검색 달기 (DIV의 display 이용) (2) | 2011.07.04 |
티스토리 블로그에 구글 맞춤검색 달기 (iframe 방식) (2) | 2011.07.02 |
자신의 블로그에 구글 번역 기능 달기 (2) | 2011.07.01 |
USB 메모리 4종 읽기 속도 비교 (0) | 2011.07.01 |
티스토리 이메일 이벤트에 당첨되어 버렸습니다. (2) | 2011.06.30 |
IE9 이상으로 브라우저를 업그레이드하거나, 크롬, 파이어폭스 등 최신 브라우저를 이용해주세요.