가정용 라우터 (DD-WRT)에 추가 소프트웨어를 설치하는 방법
이메일, 비트 토 런트 또는 MySQL과 같은 추가 기능을 라우터에 직접 갖길 원했습니까? 어쩌면 지금하실 수 있습니다. How-To Geek는 DD-WRT에 Opkg 소프트웨어를 설치하는 방법을 설명합니다..
Jean Spector와 Aviad Raviv의 이미지
아직 작성하지 않았다면 시리즈의 이전 기사를 확인하십시오.
- DD-WRT를 사용하여 가정용 라우터를 수퍼 라우터로 전환하십시오
- DD-WRT에서 Pixelserv를 사용하여 광고를 제거하는 방법
당신이 그 화제에 익숙하다면, 계속 읽으십시오. 이 가이드는 좀 더 기술적 인 내용이므로 초보자는 라우터를 개조 할 때주의해야합니다..
고난
나는 최근에 DD-WRT의 리 브랜드 버전과 함께 제공되는 새로운 버팔로 WZR-HP-AG300H를 구입했습니다. 이 라우터에는 USB 포트가 있기 때문에 즉시 HD를 연결하고 "Optware, The Right Way"위키 가이드를 사용하려고했습니다. 불행히도 나는 내가 가진 라우터가 Atheros 기반이고 그 wiki 페이지의 스크립트가 그것을 지원하지 않는다는 것을 금방 알았다. 그래서 저는 파고 가기 시작했습니다. (저는 항상 그렇듯이) 몇 가지 가이드 (1, 2, 3, 4)를 통해 Opkg를 수동으로 작동시키는 방법을 설명했습니다. 이 가이드에 대한 (웹상의 다른 출처들과 함께) 그들의 기여는 귀중했지만, 지시 사항 중 일부는 (IMHO) 간단히 충분하지 않았습니다. 예를 들어 "lib"파일에 물고기를 제공하지만 소스에서 물고기를 생선에 뿌리는 방법을 가르쳐주지는 않습니다. 또한 Linux 형식의 HD 또는 적어도 하나의 파티션을 사용해야합니다 (실제로 테스트 한 펌웨어에서도 작동하지 않습니다). 그래서 OpenWRT Opkg 패키지 관리자가 이러한 라우터에서 작동하도록하기 위해 간결하고 간단하며 재현 가능한 절차를 만들 필요성을 느꼈습니다..
업데이트 : 마운팅 파티션 기능이 17798 알파 빌드에서 다시 브랜드 버전으로 다시 도입되었습니다..
Opkg 란 무엇입니까??
Opkg는 apt / aptitude와 yum 같은 패키지 관리자입니다. Ipkg 패키지 관리자 대신 사용할 수 있으며 전송 비트 토 런트 데몬, ssmtp 전자 메일 보낸 사람 및 지정된 포트 트리거링 시퀀스 이후에 스크립트를 실행하는 데몬 Knockd와 같은 소프트웨어를 설치하는 데 사용할 수 있습니다. OpenWRT 사이트에서 :
opkg 유틸리티 (ipkg 포크)는 로컬 패키지 저장소 나 인터넷에있는 OpenWrt 패키지를 다운로드하고 설치하는 데 사용되는 경량 패키지 관리자입니다.
Opkg
저장소에있는 패키지와의 종속성을 분석하려고 시도합니다. 실패 할 경우 오류를보고 해당 패키지의 설치를 중단합니다.
따라서 Opkg를 사용하여 "가정용 라우터에서 더 많은 전력을 얻을 수 있습니다"가이드에 Ipkg와 같은 것을 설치할 수 있습니다. 주요 차이점은 다음과 같습니다.
- SSMTP와 Knockd의 예제를 제공하려면 실제로 의존성을 수동으로 파악해야했습니다. 이 작업을 수동으로 수행하는 절차는 번거롭고 그리 간단하지 않습니다. Opkg가 자동으로 처리합니다..
- 이번에는 첨가 소프트웨어를 교체하는 대신, 설치된 펌웨어 위에 소프트웨어를 설치하십시오. 그것을 대체하는 것은 탁월한 괴짜 운동 이었지만 의심 할 여지없이 위험했습니다. 문제가 발생하기 쉬우 며 모든 라우터 관련 사항 중 돌이킬 수없고 최악입니다. 말할 필요도없이이 방법이 더 간단하고 안전합니다..
전제 조건
이 가이드를 완료하려면 다음 사항을 기록하십시오.
- 위에서 설명한 것처럼이 안내서는 Buffalo의 "Pro"펌웨어 버전 17135가있는 Buffalo WZR-HP-AG300H에서 작성되었으며 테스트되었습니다. Atheros (ar71xx) 기반 라우터에서 동일한 수정 버전 또는 그 이상의 버전의 DD-WRT를 사용할 수 있습니다 , 그러나 귀하의 마일리지는 매우.
- 라우터에서 SSH를 활성화하고 WinSCP를 설치하고 사용하여 연결해야합니다. 이는 "DD-WRT에서 Pixelserv를 사용하여 광고를 제거하는 방법"가이드에서 설명했습니다. 사실, 당신은 그 가이드에서 설명하는 모든 것을 할 수 있다고 가정 될 것입니다..
- 터미널을 사용하여 라우터에 연결할 수 있어야합니다 (SSH 권장). 이것을 수행하는 방법에 대한 몇 가지 지침은 DD-WRT 위키에 있습니다..
- JFFS를위한 공간과 기본 설정을위한 사후 형식화 된 공간 약 4MB. JFFS 공간은 전제 조건 일뿐만 아니라 쇼 마개입니다. 라우터에 적어도 위에서 언급 한 4MB의 형식화 된 공간이 없다면이 가이드의 실질적인 이점을 얻지 못할 것이고 "홈 라우터에서 더 많은 전력을 얻을 수 있습니다" Ipkg 패키지를 직접 펌웨어에 설치하거나 Ipkg 패키지를 수동으로 설치하는 방법. JFFS를 사용하려면 "Pixelserv에서 DD-WRT로 광고를 제거하는 방법"가이드의 지침에 따라 실제로 사용 가능한 여유 공간을 확인하십시오 후 그것은 형식화되어있다..
노트 : 설정을 위해 단지 2MB의 공간만으로도 가능하지만, "/ etc"가 읽기 - 쓰기 가능하게 된 결과를 잃어 버리고 Opkg를 호출해야 할 때마다 매번 수동으로 설정 파일을 지정해야합니다. 진정한 절름발이 ...
깨지게하자.
이 시점에서 JFFS를 활성화하고 라우터로 SSH / WinSCP를 할 수 있어야합니다..
- 라우터에 대한 터미널 세션 열기.
- 우리가 작업 할 임시 디렉토리를 만듭니다.
mkdir / tmp / 1
cd / tmp / 1
Ipkg를 사용하여 Opkg 설치
Ipkg를 패키지 관리자로 대체하는 동안 Opkg 설치 패키지를 수동으로 설치하는 데 사용할 것입니다..
- 이렇게하려면 OpenWRT 프로젝트 트렁크에서 ar71xx 아키텍처 용 Opkg 설치 패키지를 다운로드하십시오.
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk
주 1 : 이 글을 쓰는 시점에서, 618은 최신 버전이며, 향후 변경 될 수 있으므로 그에 맞게 조정하십시오.
노트 2: 이 안내서가 다른 아키텍처에서 작동하도록하는 유일한 차이점은 라우터의 해당 아키텍처에서 Opkg 설치 프로그램을 얻는 것일 수 있습니다 ... 그러나 이것이 실제로 테스트되지는 않았습니다.. - Ipkg를 호출하여 다음을 사용하여 Opkg을 수동으로 설치하십시오.
ipkg install opkg_618-2_ar71xx.ipk
노트 : 원하신다면 수동으로 저장소에있는 모든 패키지를이 방법으로 설치할 수 있습니다. 그러나 이것은 당신이 당신 자신의 의존성을 해결해야한다는 것을 의미 할 것입니다.?
동적 라이브러리 파일 얻기 ( "lib")
Opkg 작업을 수행하는 데 필요한 "lib"파일은 OpenWRT 배포판의 일부입니다. 그것들을 얻으려면, 그 배포판의 "Root FileSystem"에서 추출해야합니다..
- 이렇게하려면 OpenWRT 프로젝트 트렁크에서 필요한 "lib"를 포함하는 openWRT 배포에 대한 최신 기본 "루트 FileSystem"을 다운로드하십시오.
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz
- 그것을 사용하여 추출 :
tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz
- 위에서 추출한 "rootfs"의 "libs"파일을 JFFS의 "libs"디렉토리에 복사하면서 속성과 심볼릭 링크를 보존하십시오.
cp -Pp / tmp / 1 / lib / * / jffs / usr / lib /
노트 : 하위 디렉토리가 생략되었다는 메시지가 나타납니다. "lib"파일 이외에는 아무것도 필요하지 않으므로이 메시지는 무시해도됩니다..
LD_LIBRARY "PATH"수정하기
우리는 라우터에, 우리가 방금 "설치"한 공유 라이브러리 (libs)를 찾을 곳과이를 수행 할 필요가 있는지를 알려줄 필요가 있습니다 전에 펌웨어와 함께 제공된 것들.
- 이렇게하려면 LD_LIBRARY 환경 변수를 수동으로 (지금은) 설정하여 새 lib 파일을 복사 한 위치가 "PATH"의 첫 번째 위치가되도록합니다.
LD_LIBRARY_PATH = / jffs / usr / lib : $ LD_LIBRARY_PATH를 내 보냅니다.
읽기 / 쓰기 가능 "/ etc"
우리는 "/ etc"를 JFFS에 복사 한 다음 정규 "/ etc"마운트 지점을 가리키게 될 것입니다. 그렇게하면 "/ etc"가 읽기 쓰기 가능 (필자가 개인적으로 기다리거나 7 년을 기다렸으므로)이 동작을 기대하는 패키지가 올바르게 작동하기 때문에 "/ etc".
- "/ etc"를 저장할 디렉토리를 만듭니다.
mkdir -p / jffs / geek / etc
- 모든 하위 디렉토리, 파일 속성 및 심볼릭 링크를 유지하면서 "/ etc"전체를 반복적으로 복사합니다..
cp -a / etc / * / jffs / geek / etc /
- 수동으로 (지금은) "/ etc"디렉토리를 JFFS 디렉토리에 "bind mount"합니다 :
마운트 -o bind / jffs / geek / etc / etc /
Optware 디렉토리 설정 ( "/ opt")
OpenWRT의 Opkg는 라우터 펌웨어가 빌드 될 때 사용되기를 기대합니다. 이 시점에서 FileSystem은 아직 라우터에 없기 때문에 여전히 변경 될 수 있습니다. FileSystem의 어느 위치에도 설치하는 데 문제가 없습니다. 이것이 바로 Opkg 구성 파일이 FileSystem의 "루트"(/)에 설치할 패키지를 가리키는 이유입니다. 그러나, 우리는 Opkg를 사용하고 있습니다. 후 펌웨어가 라우터에 설치 및 설치되었으며 읽기 / 쓰기 가능하도록 파일 시스템의 루트를 변경할 수 없기 때문에 모든 설치가 "/ opt"아래에 설치되도록 지정합니다. 그러나 현재 "/ opt"는 라우터 펌웨어의 읽기 전용 위치를 가리 킵니다. 이를 극복하기 위해 "/ opt"가 JFFS를 가리키게 될 것입니다. JFFS는 읽기 - 쓰기 가능합니다..
- 이를 수행하려면 Optware 패키지를 포함 할 디렉토리를 작성하십시오.
mkdir -p / jffs / opt
- 수동으로 (지금은) "/ opt"디렉토리를 JFFS 디렉토리에 "bind mount"합니다 :
마운트 -o 바인드 / jffs / opt / / opt /
참고 :이 가이드의 범위를 벗어나지 만, 고급 사용자는이 마운트 지점을 변경하여 HD를 가리킬 수 있습니다..
Opkg 설정 파일 조정하기
Opkg 구성 파일이 기본적으로 Opkg에서 검색 할 위치 ( "/ etc")와 "/ opt"로 설치되도록 조정되기를 원합니다..
- 이렇게하려면 Opkg 패키지에 의해 설치된 opkg 구성 파일을 읽기 / 쓰기 가능 "/ etc"위치로 이동하십시오.
mv /jffs/etc/opkg.conf / etc /
- Optware 설치 대상을 "root"(/) 대신 "/ opt"로 변경하십시오.
이렇게하려면 "vi"편집기 또는 WinSCP를 사용하여 "/ etc /"로 이동하여 "opkg.conf"파일의 내용을 만드십시오.vi /etc/opkg.conf
확인해보세요.
src / gz 스냅 샷 http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
대상 루트 / opt
대상 램 / tmp
lists_dir ext / var / opkg-lists
overlay_root / overlay 옵션노트 : "lists_dir"지시어를 변경하여 RAM에 있지 않고 JFFS에있는 위치를 가리킬 수 있습니다. 이렇게하면 목록을 업데이트하지 않아도됩니다. 추가 소프트웨어를 설치하기 전에 (라우터가 마지막으로 재부팅 된 경우) 약 1.5MB의 부족한 JFFS 공간을 잃어 버리면 침식 현상이 생길 수 있습니다.
안녕 자기
Opkg가 update 및 lists 명령을 실행하여 작동하는지 확인할 수 있어야합니다..
- 모든 것이 잘 진행되면 Opkg 목록이 오류없이 업데이트되었고 다음 단계에서 스크립트를 구현할 준비가되었음을 확인해야합니다.
opkg 업데이트; 오퍼리스트
- 저장소에서 사용할 수있는 패키지를 탐색 할 시간을 가지십시오 ... .
시작 스크립트
이제 라우터를 부팅 할 때 필요한 모든 장착 및 경로 지정이 자동으로 이루어 지도록 설정해야합니다. 이를 위해, 우리는 당신을 위해 만들었습니다.이 초기화 geek-init 스크립트.
- 다운로드 한 다음 압축을 풀고 "/ jffs / geek / etc /"아래에 놓습니다. (WinSCP로 이것을하는 것을 고려하십시오).
- WinSCP로 속성에 들어가거나 다음을 실행하여 스크립트를 실행 가능하게 만듭니다.
chmod + x /jffs/geek/etc/geek-init.sh
- WebGUI를 사용하여 라우터의 시작시 스크립트를 실행합니다. 관리 -> 명령의 텍스트 상자에 다음을 입력하십시오.
/jffs/geek/etc/geek-init.sh web-gui
그리고 "Save Startup"을 클릭하십시오..
타이어 찰칵
모든 것이 잘 진행 되었다면 이제 라우터를 재부팅하고 여전히 Opkg 패키지 관리자를 사용할 수 있습니다. 응용 프로그램을 업데이트, 나열 및 설치하는 것입니다..
어떤 이유로 든 DD-WRT의 빌드에서 생략 된 "netstat"명령을 설치하여 모든 것이 작동하는지 테스트 할 수 있습니다. 이렇게하기 전에 터미널에서 netstat 명령을 실행하면 쉘에서 "-sh : netstat : not found"오류 메시지가 나타납니다..
- 첫 번째 단계는 항상 Opkg 목록을 업데이트하여 저장소의 최신 패키지 목록을 유지하는 것입니다.
opkg 업데이트
- "netstat"명령이 포함 된 패키지를 모르는 경우 다음을 사용하여 결과를 필터링 할 수 있습니다..
opkg 목록 | grep netstat
- 그리고 다음을 사용하여 "netstat"을 설치하십시오 :
opkg install net-tools-netstat
그리고 지금, 당신이 netstat 명령을 다시 실행할 때 그것은 작동합니다 ... 청초한 하? :)
이 방법을 사용하여 소프트웨어 패키지를 설치하고 구성 할 미래의 기사가 나오기 전까지는 엄청난 양의 재미있는 소프트웨어가 엄청난 양의 소프트웨어를 탐색 할 수 있습니까?.
그러한 기계가 가상 불가능한 것이라면 논리적으로는 불가능할 것입니다. 그래서 하나를 만들기 위해해야 할 일은 그것이 얼마나 희박 할지를 생각해 내고 그 숫자를 유한 희귀 한 생성 불가능한 발전기에 넣고 신선한 차 한잔을 만들어 그것을 켜는 것입니다 ... ... ... 정말 좋아하지 않아, "스마트 엉덩이".