OpenWrt - OpenWrt

OpenWrt
Logo OpenWrt.svg
Zrzut ekranu OpenWrt 18.06.1.svg
Ekran logowania OpenWrt 18.06.1
Deweloper Projekt OpenWrt
Rodzina systemów operacyjnych Uniksopodobny
Stan pracy Aktualny
Model źródłowy Otwarte źródło
Pierwsze wydanie styczeń 2004 ; 17 lat temu ( 2004-01 )
Najnowsze wydanie 21.02.0  Edytuj to na Wikidanych/ 4 września 2021 ; 44 dni temu ( 4 września 2021 )
Magazyn
Dostępne w Angielski, chiński, polski, portugalski, pendżabski, hiszpański, walijski + 25 częściowo przetłumaczonych języków
Metoda aktualizacji opkg
Menedżer pakietów opkg
Platformy 50 różnych platform wykorzystujących następujące zestawy instrukcji : ARC , ARM , m68k , MIPS , PowerPC , SPARC , SuperH , x86 , x86-64
Typ jądra Monolityczny ( Linux )
Kraina użytkownika BusyBox
Domyślny
interfejs użytkownika
CLI , WebUI
Licencja Darmowe oprogramowanie ( GPL i inne licencje)
Oficjalna strona internetowa openwrt .org

OpenWrt (od otwartego routera bezprzewodowego ) to projekt typu open source dla wbudowanych systemów operacyjnych opartych na systemie Linux , używany głównie na urządzeniach wbudowanych do kierowania ruchu sieciowego. Główne komponenty to Linux, util-linux , musl i BusyBox . Wszystkie komponenty zostały zoptymalizowane tak, aby były wystarczająco małe, aby zmieściły się w ograniczonej przestrzeni dyskowej i pamięci dostępnej w routerach domowych.

OpenWrt jest konfigurowany za pomocą interfejsu wiersza poleceń ( powłoka popiołu ) lub interfejsu internetowego (LuCI). Dostępnych jest około 3500 opcjonalnych pakietów oprogramowania do instalacji poprzez system zarządzania pakietami opkg .

OpenWrt może działać na różnego rodzaju urządzeniach, w tym routerach CPE , bramach domowych , smartfonach , komputerach kieszonkowych (np. Ben NanoNote ). Możliwe jest również uruchomienie OpenWrt na komputerach osobistych i laptopach , które najczęściej są oparte na architekturze x86 .

Historia

Projekt OpenWrt został rozpoczęty w 2004 roku po tym, jak Linksys zbudował oprogramowanie układowe dla swoich bezprzewodowych routerów WRT54G z kodem licencjonowanym w ramach Powszechnej Licencji Publicznej GNU . Zgodnie z warunkami tej licencji firma Linksys była zobowiązana do udostępnienia kodu źródłowego swojej zmodyfikowanej wersji na tej samej licencji, co umożliwiło niezależnym programistom tworzenie wersji pochodnych. Wsparcie początkowo ograniczało się do serii WRT54G, ale od tego czasu zostało rozszerzone o wiele innych routerów i urządzeń wielu różnych producentów.

Używając tego kodu jako podstawy, a później jako odniesienia, programiści stworzyli dystrybucję Linuksa, która oferuje wiele funkcji, których wcześniej nie było w routerach na poziomie konsumenckim. Na początku niektóre funkcje wymagały oprogramowania własnościowego. Na przykład przed OpenWrt 8.09 (opartym na Linuksie 2.6.25 i b43module jądra) WLAN dla wielu routerów opartych na Broadcom można było mieć tylko za pośrednictwem zastrzeżonego wl.omodułu (a który wymagał Linuksa 2.4.x).

Wersje OpenWrt historycznie nosiły nazwy koktajli, takich jak White Russian , Kamikaze , Backfire, Attitude Adjustment, Barrier Breaker i Chaos Calmer, a ich przepisy były zawarte w komunikacie dnia (motd) wyświetlanym po zalogowaniu się za pomocą interfejsu wiersza poleceń .

W maju 2016 r. OpenWrt został rozwidlony przez grupę głównych współtwórców OpenWrt z powodu nieporozumień dotyczących procesu wewnętrznego. Widelec został nazwany Linux Embedded Development Environment (LEDE). Schizma pogodziła się rok później. Po remerger, ogłoszonym w styczniu 2018 roku, branding OpenWrt został zachowany, a wiele procesów i reguł LEDE zostało użytych. Nazwa projektu LEDE została użyta w wersji 17.01, z wersjami rozwojowymi 18.01 pod marką OpenWrt, porzucając oryginalny schemat nazewnictwa oparty na koktajlu.


Wydania

Wersja (nazwa kodowa) Data wydania Jądro libc Uwagi
0,9 (biały rosyjski) Styczeń 2006 2.4.30 uClibc Oparty na NVRAM, nas, wl. Obsługiwana platforma: brcm-2.4.
7.06 (kamikaze) czerwiec 2007 2.6.19 Używając opkg. Obsługiwane platformy: atheros-2.6, au1000-2.6, brcm-2.4, brcm47xx-2.6, ixp4xx-2.6, imagicbox-2.6, rb532-2.6i x86-2.6.
7.07 (kamikaze) lipiec 2007 2.6.21 Nowa platforma: amcc-2.6.
7.09 (kamikaze) wrzesień 2007
8.09 (kamikaze) wrzesień 2008 2.6.26 Nowa platforma: ar71xx.
10.03 (Ogień) 7 kwietnia 2010 2.6.32 Obsługiwane platformy: adm5120_mips, adm5120_mipsel, ar7, ar71xx, atheros, au1000, avr32, brcm-2.4, brcm47xx, brcm63xx, cobalt, ep80579, ifxmips, ixp4xx, kirkwood, octeon, orion, ppc40x, ppc44x, rb532, rdc, x86i xburst.
12.09 (Dostosowanie postawy) 25 kwietnia 2013 r. 3,3 CoDel ( planista sieci ) przeniesiony z Linuksa 3.5 do 3.3. Nowe platformy: ramips, bcm2708(Raspberry Pi) i inne.
14.07 (Łamacz Barier) 2 października 2014 3.10.49 Nowe platformy: i.MX23, i.MX6.
15.05 (Spokojniejszy chaos) 11 września 2015 r. 3.18.20 nftables (dostępne od jądra Linuksa 3.12); Nowe platformy: TBA, jeśli istnieją
15.05.1 (Spokojniejszy chaos) 16 marca 2016 3.18.23
17.01.7 (Restart (OpenWRT/LEDE)) 20 czerwca 2019 r. 4.4.182 muzułmański
18.06.0 31 lipca 2018 r. 4.9.111, 4.14.52
18.06.1 19 sierpnia 2018 4.9.120, 4.14.63
18.06.2 31 stycznia 2019 4.9.152, 4.14.95
18,06,4 1 lipca 2019 r. 4.9.184, 4.14.131
18.06.5 8 listopada 2019 r. 4.9.198, 4.14.151
18,06,6 10 stycznia 2020 r. 4.9.208, 4.14.162
18.06.7 31 stycznia 2020 4.9.211, 4.14.167
18.06.8 6 marca 2020 r. 4.9.214, 4.14.171
18.06.9 9 grudnia 2020 r. 4.9.243, 4.14.206 Poprawki bezpieczeństwa (SAD DNS), aktualizacje podstawowych komponentów i więcej obsługi urządzeń. Koniec wsparcia 18.06.
19.07.0 6 stycznia 2020 4.14.162 Obsługa WPA3 .
19.07.1 31 stycznia 2020 4.14.167 Bezpieczeństwo i poprawki błędów oraz więcej obsługi urządzeń.
19.07.2 6 marca 2020 r. 4.14.171 Bezpieczeństwo i poprawki błędów oraz więcej obsługi urządzeń.
19.07.3 20 maja 2020 r. 4.14.180 Bezpieczeństwo i poprawki błędów oraz więcej obsługi urządzeń.
19.07,4 10 września 2020 r. 4.14.195 Stabilność i wsparcie urządzeń.
19.07.5 9 grudnia 2020 r. 4.14.209 Regresje i poprawki bezpieczeństwa (SAD DNS).
19.07,6 19 stycznia 2021 4.14.215 Bezpieczeństwo i poprawki błędów
19.07.7 18 lutego 2021 4.14.221 Bezpieczeństwo i poprawki błędów
19.07,8 7 sierpnia 2021 4.14.241 Bezpieczeństwo i poprawki błędów
21.02.0 4 września 2021 5.4.143 WPA3 , TLS i HTTPS wsparcie włączone domyślnie, początkowego DSA wsparcia, lxc i ujail wsparcia
Legenda:   Stara wersja   Starsza wersja, nadal utrzymywana   Ostatnia wersja

LEDE

LEDE
Logo LEDE.svg
LEDE-Screenshot.svg
Baner logowania
Deweloper Projekt LEDE
Rodzina systemów operacyjnych Uniksopodobny
Stan pracy Połączono z OpenWRT
Model źródłowy Otwarte źródło
Pierwsze wydanie maj 2016 ; 5 lat temu ( 2016-05 )
Magazyn
Dostępne w 26 języków
Metoda aktualizacji opkg
Menedżer pakietów opkg
Platformy 23 platformy korzystające z następujących zestawów instrukcji : AVR32 , ARM , CRIS , m68k , MIPS , PowerPC , SPARC , SuperH , Ubicom 32, x86 , x86-64
Typ jądra Monolityczny ( Linux )
Kraina użytkownika BusyBox , GNU
Domyślny
interfejs użytkownika
CLI , WebUI
Licencja Darmowe oprogramowanie ( GPL i inne licencje)
Oficjalna strona internetowa lede-projekt .org

Projekt Linux Embedded Development Environment ( LEDE ) był rozwidleniem projektu OpenWrt i miał wiele z tych samych celów. Został stworzony w maju 2016 roku przez grupę głównych współtwórców OpenWrt z powodu nieporozumień dotyczących wewnętrznych procesów OpenWrt. Schizma została nominalnie pogodzić rok później, w maju 2017 r., w oczekiwaniu na zatwierdzenie przez twórców LEDE. Remerger zachowuje branding OpenWrt, ale wykorzystuje wiele procesów i reguł LEDE. Głosowanie nad propozycją remerge zostało przyjęte przez programistów LEDE w czerwcu 2017 r. i formalnie ogłoszone w styczniu 2018 r. Proces łączenia został zakończony przed wydaniem OpenWRT 18.06.

Wersja Data wydania Numer wersji Uwagi
17.01.0 22 lutego 2017 r3205 Pierwsze stabilne wydanie
17.01.1 19 kwietnia 2017 r3316 Kernel 4.4.61, poprawki błędów i ulepszenia
17.01.2 12 czerwca 2017 r3435 Kernel 4.4.71, poprawki bezpieczeństwa
17.01.3 3 października 2017 r3534 Kernel 4.4.89, poprawki bezpieczeństwa
17.01.4 18 października 2017 r3560 Kernel 4.4.92, poprawki bezpieczeństwa ( KRACK , o ile adresowane przez poprawki po stronie serwera)
17.01.5 18 lipca 2018 r3919 Kernel 4.4.140, poprawki bezpieczeństwa
17.01.6 3 września 2018 r3979 Kernel 4.4.153, poprawki bezpieczeństwa

Cechy

OpenWrt zawiera zapisywalny system plików root , który umożliwia użytkownikom modyfikowanie dowolnego pliku i łatwą instalację dodatkowego oprogramowania. Jest to w przeciwieństwie do innego oprogramowania układowego opartego na systemach plików tylko do odczytu, które nie pozwalają na modyfikowanie zainstalowanego oprogramowania bez przebudowy i flashowania pełnego obrazu oprogramowania układowego. Osiąga się to poprzez nałożenie skompresowanego systemu plików SquashFS tylko do odczytu z zapisywalnym systemem plików JFFS2 przy użyciu overlayfs . Dodatkowe oprogramowanie można zainstalować za pomocą menedżera pakietów opkg , a repozytorium pakietów zawiera około 6000 pakietów.

LuCI

OpenWrt można skonfigurować za pomocą interfejsu wiersza poleceń lub interfejsu internetowego o nazwie LuCI. OpenWrt udostępnia zestaw skryptów o nazwie UCI (zunifikowany interfejs konfiguracyjny), które ujednolicają i upraszczają konfigurację za pomocą interfejsu wiersza poleceń. Dostępne są również dodatkowe interfejsy internetowe, takie jak Gargoyle .

OpenWrt zapewnia regularne poprawki błędów i aktualizacje zabezpieczeń nawet dla urządzeń, które nie są już obsługiwane przez ich producentów.

OpenWrt zapewnia wyczerpujące możliwości konfiguracji typowych funkcji związanych z siecią, takich jak IPv4 , IPv6 , DNS , DHCP , routing , zapora , NAT , przekierowanie portów i WPA .

Inne funkcje obejmują:

Rozwój

Środowisko programistyczne i system budowania OpenWrt , znane razem jako OpenWrt Buildroot , są oparte na mocno zmodyfikowanym systemie Buildroot . OpenWrt Buildroot to zestaw plików Makefile i poprawek, które automatyzują proces budowania kompletnego systemu OpenWrt opartego na Linuksie dla wbudowanego urządzenia, poprzez zbudowanie i użycie odpowiedniego łańcucha narzędzi do kompilacji krzyżowej .

Urządzenia wbudowane zwykle używają innego procesora niż ten, który znajduje się w komputerach hostach używanych do tworzenia obrazów systemu OpenWrt, co wymaga łańcucha narzędzi do kompilacji krzyżowej. Taki łańcuch narzędzi do kompilacji działa w systemie hosta, ale generuje kod dla docelowego urządzenia osadzonego i architektury zestawu instrukcji procesora (ISA). Na przykład, jeśli system hosta używa x86, a system docelowy używa MIPS32 , zwykły łańcuch narzędzi kompilacji hosta działa na x86 i generuje kod dla architektury x86, podczas gdy łańcuch narzędzi do kompilacji krzyżowej działa na x86 i generuje kod dla architektury MIPS32. OpenWrt Buildroot automatyzuje cały ten proces, aby pracować na architekturach zestawu instrukcji większości urządzeń wbudowanych i systemów hostów.

OpenWrt Buildroot zapewnia następujące funkcje:

  • Ułatwia przenoszenie oprogramowania na różne architektury
  • Zastosowania KConfig (Linux kernel menuconfig ) dla konfiguracji wszystkich opcji
  • Zapewnia zintegrowany cross-kompilator toolchain ( gcc , ld , uClibc itp.)
  • Zapewnia abstrakcję dla autotools ( automake , autoconf ), CMake i SCons
  • Obsługuje standardowy przepływ pracy przy tworzeniu obrazów OpenWrt: pobieranie, łatanie, konfiguracja, kompilacja i pakowanie
  • Zapewnia szereg typowych poprawek dla znanych źle zachowujących się pakietów

Oprócz budowania obrazów systemu, środowisko programistyczne OpenWrt zapewnia również mechanizm uproszczonego wieloplatformowego budowania pakietów oprogramowania OpenWrt. Kod źródłowy dla każdego pakietu oprogramowania jest wymagany, aby zapewnić zestaw instrukcji budowania podobnych do Makefile oraz opcjonalny zestaw łatek do poprawek błędów lub optymalizacji footprintów.

Kompatybilność sprzętowa

OpenWrt obsługuje wiele różnych routerów i zawiera tabelę kompatybilnego sprzętu na swojej stronie internetowej. W przewodniku dla kupujących zauważa, że ​​użytkownicy polecają urządzenia wyposażone w bezprzewodowe chipy firmy Qualcomm Atheros lub Ralink (obecnie MediaTek ). OpenWrt zaleca również wybór urządzenia z minimum 16 MB pamięci flash i 64 MB pamięci RAM, najlepiej w większych ilościach.

Przyjęcie

OpenWrt, zwłaszcza jego system budowania Buildroot, został przyjęty jako struktura dla innych wysiłków. Na przykład

  • AltiWi „jednorazowa opłata” zamiennik dla Cloudtrax.
  • Bufferbloat.net (Cerowrt)
  • Freifunk i inne społeczności sieci mesh
  • Projekty integracyjne IETF IPv6 HIPnet i HomeNet są oparte na OpenWrt
  • prplWrt, platforma klasy operatorskiej zaprojektowana do zasilania routerów i bramek dostawców usług internetowych firmy Prpl Foundation
  • SIMET Box, opracowany przez NIC.br , jest oparty na OpenWrt

Projekty pochodne

  • AREDN – Sieć Danych Ratunkowych dla Krótkofalowców wykorzystuje oprogramowanie układowe oparte na OpenWrt: GitHub Project
  • CeroWrt  – (2011-2014) projekt mający na celu rozwiązanie problemu buforowania w sieci domowej, wsparcie IPv6 , zintegrowanie DNSSEC dla sieci przewodowych i bezprzewodowych, aby uzupełnić drzewo jądra testowania debloat i zapewnić platformę do testowania poprawek bufora w świecie rzeczywistym
  • Coova chili – oparty na OpenWrt z naciskiem na bezprzewodowe hotspoty, widelec chilifire z naciskiem na bezprzewodowe zarządzanie hotspotami
  • Flukso — bezprzewodowe węzły czujników wykorzystujące chipset Atheros AR2317 z załatanym systemem operacyjnym OpenWrt do komunikacji. Źródła i schematy sprzętowe dostępne w serwisie GitHub .
  • Fon  – routery bezprzewodowe oparte na OpenWrt działające jako hotspoty. Źródła i łańcuch narzędzi dostępne na fonosfera.org
  • Gargoyle  – interfejs sieciowy dla OpenWrt z silnym naciskiem na użyteczność, który później rozwinął się w osobną dystrybucję
  • Gluon – Framework do budowania oprogramowania opartego na OpenWrt przystosowanego do wdrażania sieci mesh : Projekt GitHub
  • JUCIWRT  – nowoczesna dystrybucja wykorzystująca webgui JUCI, która później stała się kanałem OpenWRT. Kod źródłowy JUCI jest dostępny w mkschreder/juci i nadal można z niego korzystać, instalując kanał openwrt znajdujący się w mkschreder/juci-openwrt-feed
  • libreCMC  — dystrybucja oparta na OpenWrt, która wyklucza niewolne oprogramowanie lub binarne obiekty blob, wspierana przez Free Software Foundation
  • Linino – dystrybucja oparta na OpenWrt dla Arduino opartego na MIPS Yùn: GitHub Project
  • Midge Linux – dystrybucja oparta na OpenWrt dla urządzeń opartych na układach SoC firmy Infineon Technologies ADM-5120 , takich jak Edimax BR-6104K i BR-6104KP.
  • OpenMPTCProuter  – agregacja wielu połączeń internetowych przy użyciu Multipath TCP
  • OpenSAN – realizacja docelowej sieci pamięci masowej iSCSI .
  • PacketProtector — dystrybucja zabezpieczeń oparta na OpenWrt, która obejmuje funkcje IDS , IPS , VPN i ochrony przed wirusami internetowymi. Pakiety obejmowały Snort, Snort-inline, FreeRADIUS , OpenVPN , DansGuardian i ClamAV . Narzędzia te były dostępne za pośrednictwem starego internetowego interfejsu zarządzania GUI OpenWrt, zwanego X-Wrt lub webif^2. Projekt zakończył się 7 czerwca 2012 roku.
  • QCA Software Development Kit (QSDK) firmy Qualcomm, który jest używany jako podstawa programistyczna przez wielu producentów OEM, jest pochodną OpenWrt
  • RutOS – system operacyjny dla wszystkich routerów Teltonika, oparty na OpenWRT. Kod źródłowy znaleziony na GPL-Teltonika Networks Wiki .
  • Routery Turris Omnia i Turris MOX działają na pochodnych OpenWrt
  • Oprogramowanie układowe routera bezprzewodowego Ubiquiti jest oparte na OpenWrt
  • Różnorodne projekty oddolne dla bezprzewodowych sieci społecznościowych , w tym Freifunk , Libre-Mesh i qMp
  • Niektóre oprogramowanie układowe routera TP-Link pochodzi z OpenWrt
  • Niektóre oprogramowanie układowe routera Xiaomi pochodzi z OpenWrt.

Zobacz też

Bibliografia

Zewnętrzne linki