Linux 배포(라우터 펌웨어) OpenWrt 입문 컬렉션
이 단계에서 openwrt가 공식적으로 지원하는 경로 목록: wiki.openwrt.org/toh/start
openwrt를 배우고 싶다면 보조 제품을 구입하는 것이 더 쉽습니다. 연습할 목록에 있는 핸드 라우터를 연구하려면 대부분 롬 칩과 메모리 칩을 업그레이드해야 합니다. 일반적인 구성은 4M과 64M입니다. 먼저 조금 배우고 Xiaomi의 오프닝 순간이 준비될 때까지 기다리자...
OpenWrt는 임베디드 Linux 배포판이라고 설명할 수 있습니다(주류 라우터 펌웨어에는 dd-wrt, Tomato 및 openwrt의 세 가지 유형이 포함됩니다). ) 단일한 정적 시스템을 구축하려고 하기보다는. OpenWrt의 패키지 관리는 완전히 쓰기 가능한 파일 시스템을 제공하여 애플리케이션 공급업체의 선택 및 구성을 제공하고 모든 애플리케이션에 맞게 장치를 사용자 정의할 수 있습니다.
개발자의 경우 OpenWrt는 사용자를 지원하기 위한 완전한 펌웨어를 구축할 필요 없이 프레임워크를 사용하여 애플리케이션을 구축합니다. 이는 완전히 사용자 정의할 수 있고 전례 없는 방식으로 사용할 수 있음을 의미합니다. 장치를 사용하십시오.
Linksys가 WRT54G/GS의 소스 코드를 공개한 후 원래 기능을 향상시키기 위해 다양한 버전의 펌웨어가 인터넷에 등장했습니다. 대부분의 펌웨어는 99%의 Linksys 소스 코드를 사용하며 1%만 추가됩니다. 각 펌웨어는 특정 시장을 위해 설계되었습니다. 첫 번째는 다양한 버전의 펌웨어를 통합하기 어렵다는 점입니다. 버전은 공식 Linux 릴리스에서 점점 더 멀어지고 있습니다.
OpenWrt는 다른 경로를 선택했습니다. 처음부터 시작하여 각 소프트웨어를 조금씩 추가하여 Linksys 버전의 펌웨어에 가깝게 만들었습니다. OpenWrt의 성공은 파일 시스템에 쓰기 가능하고 개발자가 가능하다는 것입니다. 수정할 때마다 다시 컴파일할 필요가 없으므로 소규모 Linux 컴퓨터 시스템에 더 가깝습니다.
OpenWrt 프로젝트는 2004년 1월에 시작되었습니다. 첫 번째 버전은 Linksys에서 제공하는 GPL 소스 코드와 uclibc의 buildroot 프로젝트를 기반으로 하며 이 버전을 "stable" 버전이라고 하며 여전히 많이 있습니다. 이 버전을 사용하는 프로젝트 중 가장 유명한 것은 Freifunk-Firmware와 Sip@Home입니다.
2005년 초까지 일부 새로운 개발자가 프로젝트에 참여했고 몇 달 후에 첫 번째 " 실험적" 버전인 이 버전은 Linksys의 GPL 소스 코드를 거의 완전히 버리고 buildroot2를 핵심 기술로 사용하며 OpenWrt를 완전히 모듈화한다는 점에서 이전 버전과 다릅니다. OpenWrt는 공식적으로 출시된 핵심 소스 코드(2.4.30)를 사용합니다. 개발팀은 일부 패치와 네트워크 드라이버를 통해 OpenWrt에 많은 무료 도구를 추가했습니다. 이 도구는 이미지를 Flash(mtd)에 직접 쓰고 무선 기능 및 VLAN 전환 기능을 설정할 수 있습니다. 이 버전을 "White Russian"이라고 합니다. , 1.0 버전은 2005년 말에 발표되었습니다.
OpenWRT는 강력한 네트워크 구성 요소와 확장성을 갖춘 고도로 모듈화되고 고도로 자동화된 임베디드 Linux 시스템입니다. 산업용 제어 장비, 전화기, 소형 로봇, 스마트 홈, 라우터 및 VOIP 장치에 자주 사용됩니다. 동시에 100개 이상의 컴파일된 소프트웨어도 제공하며 그 수는 계속 증가하고 있으며 OpenWrt SDK는 소프트웨어 개발 프로세스를 단순화합니다.
OpenWRT는 처음부터 완전히 작동하고 쉽게 수정 가능한 라우터 운영 체제라는 점에서 다른 많은 라우터 배포판과 다릅니다. 실제로 이는 다른 부담을 추가하지 않고도 원하는 기능을 사용할 수 있다는 것을 의미하며 이러한 기능을 지원하는 Linux 커널은 대부분의 배포판보다 훨씬 최신입니다.
Linux 시스템에 대해 어느 정도 이해하고 있고 임베디드 Linux를 배우거나 접하고 싶다면 OpenWRT가 매우 적합합니다. 또한 OpenWRT는 ARM, X86, PowerPC 또는 MIPS 등 다양한 프로세서 아키텍처를 지원합니다. 툴체인(toolchain)부터 커널(linux kernel), 소프트웨어 패키지(packages), 루트 파일 시스템(rootfs)까지 전체 시스템을 포함해 3,000개 이상의 소프트웨어 패키지를 보유하고 있어 사용자가 simple make 명령을 사용하여 펌웨어를 생성하는 특정 기능으로 임베디드 시스템을 쉽고 빠르게 사용자 정의할 수 있습니다.
ARM, PowerPC, MIPS 프로세서 등 임베디드 Linux의 일반적인 개발 프로세스는 다음 개발 프로세스를 거쳐야 합니다.
1. Linux 크로스 컴파일 환경 만들기 ;
2. 부트로더 생성
3. Linux 커널 이식
4. Rootfs(루트 파일 시스템) 생성; > 5. 드라이버를 설치합니다.
6. 소프트웨어를 설치합니다.
이러한 임베디드 Linux의 기본 개발 프로세스에 익숙해지면 더 이상 MIPS 프로세서 및 무선 라우터를 사용하려면 다른 응용 프로그램을 사용해 볼 수 있습니다. 프로세서 또는 비무선 라우터 시스템은 임베디드 Linux를 이식하고 응용 프로그램 소프트웨어를 사용자 정의하며 완전한 임베디드 제품을 구축할 수 있습니다.
CPU 코어 시스템이 다르기 때문에 OpenWrt에 이식할 때 많은 애플리케이션이 충돌하는 경우가 많습니다.
ADSL 하드웨어 모듈의 드라이버는 오픈 소스가 아니기 때문에 많은 ADSL 통합 무선 라우터 ADSL 모듈이 작동할 수 없으며 기능 손실이 발생합니다(RG100A 및 DB120 제외).
OpenWRT는 정식으로 출시된 라우터 펌웨어가 아니기 때문에 사용이 어렵고(펌웨어 플래시) Linux 기반이므로 OpenWRT의 진입 장벽이 높습니다.
White RussianOpenWRT의 초기 버전은 2005년 7월 White Russian RC1에서 개발되기 시작했으며 2007년 1월이 되어서야 White Russian 0.9가 출시되었습니다.
KamikazeOpenWRT의 두 번째 버전은 2007년 6월 Kamikaze 7.06 출시로 시작되어 2010년 1월 Kamikaze 8.09.2가 종료될 때까지 업데이트되었습니다. 이 기간 동안 OpenWRT는 많은 개선을 이루었고 개발을 위한 견고한 기반을 마련했습니다.
Backfire 2010년 3월 4일 OpenWrt Backfire 10.03 Beta가 출시되었습니다. 이 버전은 Linux 기반의 오픈소스 라우터 펌웨어로, 많은 주류 플랫폼과 라우터를 지원하며, 국내 Ingenic까지 지원합니다. jz4740 플랫폼은 산업용 및 상업용 애플리케이션뿐만 아니라 임베디드 애플리케이션을 학습하고 개발하는 데 이상적인 플랫폼입니다. 업데이트: brcm-2.4가 2.4.37 커널로 업데이트됨, 기타 대상이 2.6.30 또는 2.6.32로 업데이트됨, arm/mips 플랫폼 gcc가 4.3.3으로 업데이트됨, powerpc gcc가 4.4.3으로 업데이트됨, uClibc가 0.9 .30.1로 업데이트됨, Broadcom 11g 칩셋의 b43 무선 네트워크 카드 드라이버는 2.6 커널로 업데이트되었으며 Atheros 11n ath9k를 지원하고 많은 새로운 ar71xx 장치를 지원하며 Magicbox가 ppc40x 플랫폼에 포함되어 있습니다.
2010년 3월 25일, OpenWrt는 중국에 남아 있는 tp-link의 최신 11n 라우터를 지원하는 Backfire 10.03-rc1을 출시했습니다. 라우터가 범용 릴레이를 지원하도록 하시겠습니까, 아니면 더 많은 라우터를 추가하시겠습니까? 다중 wan 포트 지원을 위해 이러한 고급 라우터에만 있는 더 많은 기능을 홈 라우터에서 쉽게 사용할 수 있습니다.
2010년 4월 7일, OpenWRT는 Backfire 10.03의 공식 버전을 출시했습니다.
2010년 8월 29일, OpenWRT는 Backfire 10.03.1을 출시했습니다. 많은 버그가 수정되고 호환성이 향상되었습니다. TP-LINK WR841N v2는 무선 부분과 인터넷 부분을 포함하여 정상적으로 사용할 수 있습니다. rc1 이후 변경 사항: 안티 DNS 리바인딩 공격 개선, umon 개선
[/php]
이제 컴파일 환경이 설정되었습니다.
OpenWrt 소스 코드에는 두 가지 유형이 있습니다. 하나는 최신이지만 가장 안정적인 Trunk 개발 버전이 아니며, 다른 하나는 가장 안정적인 Backfire 버전입니다. 공식 소스 코드를 다운로드하는 것이 좋습니다. 다운로드하기 전에 로컬로 폴더를 생성하세요:
[php]
mkdir openwrt
sudo chmod 777 openwrt
cd openwrt p>
[/php]
원하는 버전을 선택하고 다운로드 명령을 실행하세요. 다운로드가 완료되면 버전 번호가 표시됩니다:
트렁크 버전 다운로드 명령:
[php]
svn co svn://svn.openwrt.org/openwrt/trunk/
[/php]
백파이어 버전 다운로드 명령:
[php]
svn co svn://svn.openwrt.org/openwrt/branches/backfire/
[/ php] p>
소프트웨어 확장 패키지를 추가하고 Feeds.conf.default를 Feeds.conf로 변경합니다:
[php]
cp Feeds.conf.default 피드 .conf p>
[/php]
확장 업데이트, 확장 설치:
[php]
./scripts/feeds update - a
./scripts/feeds install –a
[/php]
참고: 소스 코드가 다운로드되지 않은 경우 코드를 그대로 유지하려면 현재까지는 정기적으로 svn을 실행해야 합니다. update 명령은 소스 코드를 업데이트합니다.
컴파일 환경 테스트:
[php]
make defconfig
여기에서 자신만의 펌웨어 컴파일을 시작할 수 있습니다. 사용자 정의 인터페이스로 들어갑니다:
[php]
make menuconfig
[/php]
모든 것이 정상이면 구성 메뉴 가 나타나면 컴파일할 펌웨어 플랫폼(칩 유형)과 모델을 선택할 수 있으며, 펌웨어에 추가할 기능과 구성 요소를 선택할 수도 있습니다. 구성 후 저장하고 메뉴를 종료합니다.
[php]
openwrt-make
[/php]
소스 코드를 수정하려면 다음을 수행해야 합니다. 예를 들어, 대용량 플래시와 같은 수정을 지원하는 경우 온라인에 접속하여 어떤 파일과 수정할 위치를 찾은 다음 ubuntu 그래픽 인터페이스로 이동하여 파일을 찾고 두 번 클릭하여 열 수 있습니다. 텍스트 편집기에서 수정하고 저장하세요.
[php]
만들기
[/php]
또는
[php]
make V=99
[/php]
또는
[php]
make -j V=99
[/php]
Make는 컴파일 명령입니다. V=99는 디버그 정보를 출력한다는 뜻입니다. CPU를 최고 속도로 컴파일하려면 다음을 추가하세요. -j 매개변수. 처음에는 -j 매개변수 없이 컴파일하는 것이 가장 좋습니다.
컴파일 프로세스는 온라인 상태로 유지되므로(일부 소스 코드 패키지는 인터넷에서 다운로드됨), 인터넷 연결이 끊어지면 컴파일이 중단될 수 있습니다. 컴파일에 필요한 시간은 컴퓨터 CPU 및 네트워크와 큰 관계가 있습니다. 첫 번째 컴파일 시간은 30분 정도 걸릴 수도 있고 2~3시간 정도 걸릴 수도 있으며, 이후 컴파일 시간은 더 짧아집니다. 컴파일이 완료되면 소스 코드 파일 디렉터리에 bin 폴더(예: 트렁크/bin/XXXX)가 나타납니다. 손에 있는 라우터가 원본 펌웨어이고 OpenWrt를 플래시해야 하는 경우 XXX를 선택해야 합니다. -factory.bin 펌웨어. 라우터가 이미 OpenWrt를 플래시한 경우 업그레이드를 위해 펌웨어 XXXX-sysupgrade.bin 업그레이드를 선택하고 업그레이드 인터페이스에서 업그레이드하세요. 폴더로 이동하여 (이메일, 네트워크 디스크, USB 디스크 등을 통해) 전송해야 하는 펌웨어를 찾아 플래싱을 시작하세요.
라우터에서 OpenWrt를 사용하려면 먼저 라우터 펌웨어를 OpenWrt로 새로 고쳐야 합니다. 이는 OpenWrt 시스템 설치와 동일합니다. 라우터 모델에 따라 설치 방법이 다를 수 있지만 다음이 있습니다. 일반적으로 일반적으로 사용되는 세 가지 방법:
1. 웹 업로드 펌웨어 업데이트(라우터 설정 또는 관리 인터페이스의 펌웨어 업데이트)
2. PFTP 업로드 펌웨어 업데이트(가장 간단한 것은 HFS입니다. )
p>
특정 라우터 모델에 어떤 방법이 적합한지는 직접 시도해 보아야 합니다.
OpenWrt를 구성하려면 일반적으로 두 가지 방법이 있습니다.
1. SSH 로그인은 명령줄을 통해 제어됩니다.
2. 웹 로그인은 웹을 통해 설정됩니다. 인터페이스
OpenWrt를 처음 설치한 후 SSH를 사용하여 로그인하려면 먼저 비밀번호를 설정해야 합니다. 비밀번호를 설정하려면 텔넷 로그인이나 웹 로그인을 사용하는 방법이 있습니다. Windows에서 텔넷 및 SSH 로그인에 Putty를 사용할 수 있습니다. Linux 또는 Mac에서는 다음 명령을 사용할 수 있습니다.
[php]
ssh –l root 192.168.1.1 //Linux
ssh –l root@192.168.1.1 //Mac
[/php]
일반적인 지침은 일반적인 Linux 배포판과 동일하지만 OpenWrt는 자체 패키지 관리자: opkg, 도움말 정보를 보려면 "opkg –help"를 사용하십시오. 다음은 몇 가지 일반적인 작업 명령입니다:
[php]
opkg update //소프트웨어 패키지 목록 업데이트
opkg install //소프트웨어 패키지 온라인 설치
opkg 제거 //소프트웨어 패키지 제거
[/php]
웹 인터페이스가 설치된 경우 웹 관리 인터페이스에 로그인합니다. OpenWrt 시스템, 일반적으로 Luci의 로그인 방법은 일반 라우터의 로그인 방법과 동일합니다. 브라우저를 열고 라우터 IP를 입력하여 OpenWrt의 기본 IP는 192.168.1.1입니다.
이제 OpenWrt의 문이 열려 있습니다. 다음으로 OpenWrt를 사용하여 운영자 대역폭을 압축하기 위한 단일 번호 다중 다이얼, 원격 제어를 위한 도메인 이름 바인딩, 대용량 하드 드라이브 마운트, BT 다운로더 구축, 웹 카메라 구축 및 Samba와 같은 보다 스마트한 애플리케이션을 구현해 보세요. /DLNA 홈 NAS 공유, 개인 클라우드 동기화, FTP, 개인 웹사이트/서버...
SSH를 사용하여 라우터에 로그인하고 Linux 명령을 사용하여 보는 방법을 배워야 합니다.
현재 시스템에서 실행 중인 프로세스 정보를 보려면 ps 명령을 사용하십시오.
메모리 사용량을 보고 마운트 상태를 스왑하려면 free 명령을 사용하십시오.
디렉토리를 보려면 ls를 사용하십시오. 및 파일
종료 디렉토리로 들어가는 cd
구성 파일을 보고 편집하는 vi
설치 명령:
[php]
#opkg 업데이트 p>
#opkg install nano
uci set network.lan.ipaddr=[lan ip]
[/php ]
pppoe 설정 사용
쉘 코드
[php]
uci set network.wan.proto=pppoe //설정 wan 포트 유형을 pppoe로 설정
uci set network.wan.username=[인터넷 계정]
uci set network.wan.password=[인터넷 비밀번호] //이 두 줄은 pppoe를 설정합니다. 사용자 이름과 비밀번호
[/php ]
상위 경로에 매달리려면 다음 설정을 지정해야 합니다.
쉘 코드
[php]
uci set network.wan.proto=none //wan 끄기
uci set network.lan.gateway=[상위 수준 라우팅 ip] //게이트웨이는 상위 라우팅을 가리킨다
uci set network.lan .dns=[upper-level Routing ip] //dns는 상위 라우팅을 가리킨다
uci set dhcp.lan.ignore=1 //lan dhcp 끄기
[/php] p>
마지막으로 무선 네트워크 구성
셸 코드
[php]
uci set wireless.@wifi-device[0].disabled =0 //무선 켜기
uci set wireless.@wifi-device[ 0].txpower=17 //전력을 17dbm으로 설정합니다. 너무 높으면 무선 모듈이 태워집니다.
uci set wireless .@wifi-device[0].channel=6 // 무선 채널을 6으로 설정
uci set wireless.@wifi-iface[0].mode=ap //무선 모드를 ap로 설정
p>uci set wireless.@ wifi-iface[0].ssid=[SSID 직접 설정] //무선 SSID 설정
uci set wireless.@wifi-iface[0].network= lan //lan에 대한 무선 링크
uci set wireless.@wifi-iface[0].encryption=psk2 //암호화를 WPA2-PSK로 설정
uci set wireless.@ wifi-iface[0].key=[password ] //무선 비밀번호 설정
[/php]
애플리케이션 구성 제출
쉘 코드
[php]
uci 커밋 //애플리케이션
/etc/init.d/network restart //네트워크 서비스 다시 시작
[/php ]
luci 관리 설치 인터페이스
쉘 코드
[php]
opkg update // 소프트웨어 목록 업데이트
>
opkg list-installed // 설치된 소프트웨어 보기
opkg install luci // LUCI 설치
opkg install luci-i18n-chinese // 중국어 지원
luci-app-firewall - 0.10.0-1
luci-i18n-english - 0.10.0-1
luci-lib-core - 0.10.0-1
luci-lib-ipkg - 0.10.0-1
luci-lib-lmo - 0.10.0-1
luci-lib-nixio - 0.10 . 0-1
luci-lib-sys - 0.10.0-1
luci-lib-web - 0.10.0-1
luci-mod - admin-core - 0.10.0-1
luci-mod-admin-full - 0.10.0-1
luci-proto-core - 0.10.0-1
p>luci-proto-ppp - 0.10.0-1
luci-sgi-cgi - 0.10.0-1
luci-theme-base - 0.10. 0 -1
luci-theme-openwrt - 0.10.0-1
[/php]
LUCI 설치를 완료합니다.
웹 서비스를 지원하는 uhttpd를 시작하고 자동으로 시작되도록 설정하려면 다음 명령을 입력하십시오.
쉘 코드
[php]
/etc/init.d/uhttpd 활성화 # 부팅 시 자동으로 시작
/etc/init.d/uhttpd start # uhttpd 시작
[/php]
- Wifidog
다음 명령을 실행하여 Wifidog 설치를 시도할 수 있습니다:
[php]
opkg update # 선택 사항
opkg 설치 wifidog
[/php]
--sftp 설치
[php]
opkg 업데이트
opkg install vsftpd openssh-sftp-server
/etc/init.d/vsftpd 활성화
/etc/init.d/vsftpd start
[/php] p>
Xiaomi 포트 전달 명령:
/etc/config/firewall 파일을 수정하여 외부 네트워크에 필요한 포트를 엽니다.
[php]
구성 규칙 'httpdwan'
옵션 src 'wan'
옵션 dest_port '8088'
옵션 proto 'tcp'
옵션 대상 'ACCEPT'
옵션 이름 ''''httpd wan accept tcp port 8088''''
[/php]
저장 후 /etc/init.d/firewall restart를 실행하여 방화벽을 다시 시작하세요.
SSH 도구:
1. WINSCP(라우터로의 파일 전송에 적극 권장됨)
2. 퍼티의 중국어 버전은 상대적으로 사용하기 쉽습니다. < /피>