OpenWrt

A Wikipédiából, a szabad enciklopédiából
OpenWrt
OpenWrt 15.05 („Chaos Calmer”) bejelentkező képernyő
OpenWrt 15.05 („Chaos Calmer”) bejelentkező képernyő
FejlesztőOpenWrt Project
ForráskódNyílt
OS-családUnix-szerű
Programozási nyelvLua
Legelső kiadás2004. január
Stabil verzió15.05 (Chaos Calmer)
(2015. szeptember 11.[1])
Fejlesztői verzió15.05-rc3 Chaos Calmer
(2015. július 15.)[2]
Frissítésopkg
Hardver50 különböző platform, amik a következő utasításkészleteket használják: AVR32, ARM, CRIS, m68k, MIPS, PowerPC, SPARC, SuperH, Ubicom32, x86, x86-64[3]
Csomagkezelőopkg
KernelMonolitikus (Linux)
Felhasználói felületCLI, WebUI-k
LicencSzabad szoftver (GPL és egyéb licencek)
Státuszaktuális
Weboldalhttps://openwrt.org/

Az OpenWrt Linux-rendszermagon alapuló beágyazott operációs rendszer, melyet elsősorban beágyazott készülékeken alkalmaznak a hálózati adatforgalmak útválasztására. A rendszer főbb alkotóelemei között szerepel a Linux-kernel, az util-linux, a uClibc vagy a musl,[4] illetve a BusyBox. Az OpenWrt összes alkotóeleme a legkisebb méret elérésére van optimalizálva, hogy a rendszer elég kicsi legyen az otthoni routerek limitált háttértárába és memóriájába való telepítéshez.

Az OpenWrt parancssoros (ash rendszerhéj) vagy webes felületen (LuCI) keresztül konfigurálható. A rendszerhez körülbelül 3500 kiegészítő szoftvercsomag telepíthető az opkg csomagkezelő rendszer segítségével.

Az OpenWrt számos különböző típusú készülékre, így útválasztókra, hálózati átjárókra, okostelefonokra (például Neo FreeRunner), zsebszámítógépekre (például Ben NanoNote) és laptopokra (például One Laptop per Child) is telepíthető. Az OpenWrt-t átlagos, x86 architektúrájú számítógépeken is lehet futtatni. Az OpenWrt kódbázisának számos foltja visszakerült a fővonalas Linux-rendszermagba.

Története[szerkesztés]

A projekt azért születhetett meg, mivel a Linksys a WRT54G vezeték nélküli útválasztójának firmware-ét GPL licenc alatti szabadon hozzáférhető kód alapján készítette el.[5] A Linksys a licenc feltételei szerint köteles volt ugyanazon licenc alatt közzétenni a módosított verziójának forráskódját,[6][7] aminek köszönhetően a független fejlesztőknek lehetőségük nyílt további származékos verziók elkészítésére. A hardveres támogatás kezdetben a WRT54G sorozatra korlátozódott, azonban azóta számos más chipsetre, gyártóra és eszköztípusra kiterjedt, így például a plug computerekre és az Openmoko mobiltelefonokra.

A fejlesztők ezt a kódot alapként, majd később referenciaként használva elkészítettek egy Linux-disztribúciót, ami számos, a fogyasztói szintű útválasztókra nem jellemző funkciót is kínál. Ennek néhány funkciója eredetileg zárt forráskódú szoftvert igényelt. Az OpenWrt 8.09 bevezetése előtt, a Linux 2.6.25 rendszermag és a b43 kernelmodul használata miatt számos Broadcom-alapú útválasztónál kizárólag a 2.4.x verziójú Linux-kernelhez írt zárt forráskódú wl.o modullal volt elérhető a Wireless LAN.

Az OpenWrt fejlesztési ágak kódneveiket alkoholos italokról, így például a White Russian, a Kamikaze, a Backfire, az Attitude Adjustment, a Barrier Breaker vagy a Chaos Calmer koktélokról kapták, ezek receptje általában a MOTD fájlban is olvashatóak.

2011 februárjáig a fejlesztési szoftverágat is Kamikazénak hívták, azonban az r25514-es kiadással átnevezték „Attitude Adjustment”-re és azóta mindig a következő stabil kiadás nevét veszi fel.

Kiadások[szerkesztés]

Színek: Régi kiadás Aktuális kiadás Jövőbeli kiadás
Címke Kódnév Verzió Megjelenés Linux-kernel C szabvány programkönyvtár Bináris csomagok Forráscsomagok Megjegyzés
(alap) (elérhető)
n. a. pre Buildroot-NG 0.x n. a. n. a. uClibc 474 ? 310
r6268 White Russian 0.9 2006. január 2.4.30 uClibc ? 360 ? 140 NVRAM-alapú, nas, wl. Támogatott platform: brcm-2.4.
r7428 Kamikaze 7.06 2007. június 2.6.19 uClibc ? 750 ? 450 Az opkg-t használja. Támogatott platformok: atheros-2.6, au1000-2.6, brcm-2.4, brcm47xx-2.6, ixp4xx-2.6, imagicbox-2.6, rb532-2.6 és x86-2.6.
r7832 Kamikaze 7.07 2007. július 2.6.21 uClibc ? 790 ? 475 Új platform: amcc-2.6.
r8679 Kamikaze 7.09 2007. szeptember 2.6.21 uClibc ? 630 ? 500
r14547 Kamikaze 8.09 2008. szeptember 2.6.26 uClibc ? 1400 ? 875
r16279 Kamikaze 8.09.1 2009. június 2.6.26 uClibc ? 1400 ? 875
r18961 Kamikaze 8.09.2 2010. január 10.[8] 2.6.26 uClibc ? 1400 ? 875
r20742 Backfire 10.03 2010. április 7.[9] 2.6.32 uClibc ? 2350 ? 1050 Támogatott platformok: 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, x86 és xburst.
r29594 Backfire 10.03.1 2011. december 21.[10] 2.6.32 uClibc eglibc
glibc
? 2950 ? 1175
r36088 Attitude Adjustment 12.09 2013. április 25.[11] 3.3 uClibc eglibc ? 3450 ? 1150 CoDel (hálózati ütemező) visszaportolva a Linux 3.5-ről a 3.3-ba. Új platformok: ramips, bcm2708 (Raspberry Pi) és egyebek.
r42625 Barrier Breaker 14.07 2014. október 2.[12] 3.10.49[13] uClibc musl
eglibc
? ? Új platformok: i.MX23, i.MX6[14] és mvebu.
r46767 Chaos Calmer 15.05 2015. szeptember 11.[15] 3.18.20[16] uClibc musl
glibc[17]
? ? nftables (a 3.12-es Linux-kerneltől érhető el).
trunk Designated Driver[18] development n. a. ≥4.1.11 musl[19] uClibc
glibc
? ?

Hardveres inkompatibilitások[szerkesztés]

Az OpenWrt Attitude Adjustment (12.09) ágának megjelenésével a 16 MB vagy annál kevesebb RAM-mal rendelkező készülékek támogatása megszűnt, mivel ezek könnyen kifuthatnak a memóriából. A bcm47xx készülékekre a korábbi Backfire (10.03) ajánlott, mivel az ilyen eszközökben felmerülő problémákat az elavult brcm-2.4 Broadcom-célcím támogatásának megszűnése jeleneti.[20][21]

Funkciók[szerkesztés]

Az OpenWrt a bazárelvet követi és a rengeteg beállítási lehetőségéről ismert. Főbb funkciói között szerepel:

Webes felhasználói felület[szerkesztés]

Az OpenWrtnek a 8.09-es verzió előtt minimális webes felhasználói felülete volt. Az OpenWrt 8.09-es és újabb kiadásai már egy alkalmasabb webes felhasználói felületet tartalmaznak.[28] Ez a felület a LuCI-n alapul, ami egy Lua programozási nyelvben írt MVC keretrendszer.[27]

Az X-Wrt projekt egy alternatív webes felületet is biztosít webif2 néven, mely az OpenWrt csomaggyűjteményeiben érhető el.

A Gargoyle Router Management Utility[29] webes felhasználói felület az OpenWrthez, amely nagy hangsúlyt fektet a használhatóságra. A Gargoyle eredetileg az OpenWrt csomagjaként volt elérhető, azonban mivel annak írója módosításokat kezdett végezni az OpenWrt alapértelmezett rendszerfelépítésében, ezért a csomag kikerült a csomagtárolóból és kizárólag különálló firmware-képfájlként érhető el. A Gargoyle széles körben használja a JavaScriptet, hogy a lehető legtöbb munkát átruházza a kliensgépre, és elsősorban a könnyű kezelhetőségre összpontosít, így arra törekednek, hogy elérjék vele a kereskedelmi útválasztók firmware-jének felhasználói élményét.

Fejlesztés[szerkesztés]

Az OpenWrt fejlesztői környezetének és fordítóprogramjának együttese, az OpenWrt Buildroot a Buildroot rendszer erősen módosított változatán alapul. Az OpenWrt Buildroot egy halom makefile-ból és foltból áll, melyek egy megfelelő keresztfordító eszközkészlet segítségével automatizálják a teljes Linux alapú OpenWrt-firmware fordítását.[30][31]

A beépített eszközök általában eltérő processzort használnak, mint az OpenWrt-firmware-képfálok fordítására használt gazdagépek, ezért szükséges van egy keresztfordító eszközkészletre. Az ilyen eszközkészletek a gazdagépen futnak, azonban a célzott beágyazott eszköz és annak processzorának utasításkészlet-architektúrájára (ISA) írják a kódot. Példának okáért, ha a gazdagép x86-ot használ, míg a céleszköz MIPS32-t, akkor egy az X86-on futó átlagos eszközkészlet X86 architektúrára generál kódot, míg egy keresztfordító eszközkészlet MIPS32 architektúrára. Az OpenWrt Buildroot automatizálja az egész folyamatot, hogy a legtöbb beépített készülék és gazdagép utasításkészlet-architektúráján működjön.[30][32]

Az OpenWrt Buildroot a következő funkciókat kínálja:[30][32]

  • megkönnyíti a szoftver architektúrákon keresztüli portolását,
  • a kconfigot (a Linux-rendszermag menuconfigja) használja az összes opció beállításhoz,
  • beépített keresztfordító eszközkészlet (gcc, ld, uClibc, stb.) biztosít,
  • absztrakciót biztosít az autotoolsnak (automake, autoconf), a cmake-nek és az SConsnak,
  • kezeli a szokványos OpenWrt-képfájlok fordítási munkafolyamatát: letöltés, foltozás, konfigurálás, összeállítás és csomagolás,
  • számos gyakori javítást biztosít az ismerten nem megfelelően viselkedő csomagokhoz.

Az OpenWrt fejlesztői környezete a rendszerfájlok felépítése mellett egy egyszerűsített platformfüggetlen mechanizmust is biztosít az OpenWrt-szoftvercsomagok fordítására. Ehhez szükség van a szoftvercsomagok forráskódjára a makefile-szerű utasításkészlet felépítéséhez, illetve opcionálisan foltok és hibajavítások vagy helyigény-optimalizációk is mellékelhetőek.[33]

Használata[szerkesztés]

Az OpenWrt-t, illetve legfőképp a Buildroot fordítórendszert számos helyen alkalmazzák:

  • Freifunk és egyéb mesh hálózati közösségek,
  • Bufferbloat.net (Cerowrt),
  • az IETF HIPnet és HomeNet IPv6 integrációs projektjei is OpenWrt alapúak.

Származékos szoftverek[szerkesztés]

  • CeroWrt, célja, hogy kiegészítse a kísérleti kernelágat és, hogy platformot biztosítson a bufferbloat javítások valós tesztelésére,[34][35]
  • Coova chilli, elsősorban a vezeték nélküli csatlakozási pontokra, míg a chillifire forkja a vezeték nélküli a csatlakozási pontok kezelésére összpontosít,
  • Gargoyle, az OpenWrt egyik webes felhasználói felülete, amely jelentős hangsúlyt fektet a használhatóságra, amely később különálló disztribúcióvá nőtte ki magát,
  • a Flukso Wireless Atheros AR2317 chipsetű szenzorai az OpenWrt foltozott verzióját használják a kommunikációra. A forráskódja és a hardveres tervrajzai a GitHubon is elérhetőek,
  • Fon, OpenWrt-alapú kapcsolódási pontként működő vezeték nélküli útválasztók. A forráskódja és eszközkészlete a fonosfera.org weboldalon is elérhetőek,
  • Linino, a MIPS-alapú Arduino Yun OpenWrt-alapú disztribúciója,[36]
  • Midge Linux, OpenWrt-alapú disztribúció az Infineon Technologies ADM–5120 egylapkás rendszerén alapuló készülékekhez, így például az Edimax BR–6104K-hoz és a BR–6104KP-hez,
  • OpenSAN, iSCSI célcímű adattároló hálózat,
  • PacketProtector, OpenWrt-alapú disztribúció, ami elsősorban a biztonságra összpontosít, így támogatja az IDS, az IPS és a VPN szabványokat, illetve vírusirtó képességei is vannak. A mellékelt szoftvercsomagjai között van a Snort, a Snort-inline, a FreeRADIUS, az OpenVPN, a DansGuardian és ClamAV. Ezek az eszközök az OpenWrt régi webes felhasználói felületén, az X-Wrt-n vagy más néven a webif^2-n érhetőek el. A projekt fejlesztését 2012. június 7-én leállították,[37]
  • Számtalan alulról szerveződő projekt a vezeték nélküli közösségi hálózatokhoz, így a Freifunkhoz, a Libre-Meshhez vagy a qMp-hez,
  • libreCMC, a Free Software Foundation támogatását élvező OpenWrt-alapú disztribúció, ami nem tartalmaz semmiféle zárt forráskódú szoftvert vagy bináris fájlt.[38]

Jegyzetek[szerkesztés]

  1. OpenWrt Chaos Calmer 15.05, openwrt.org, 2015-09-12, <https://openwrt.org/>
  2. Chaos Calmer 15.05-rc3. OpenWrt Forum , 2015. június 13. (Hozzáférés: 2015. június 13.)
  3. Config.in in trunk/target – OpenWrt. dev.openwrt.org , 2013. november 22. [2014. február 22-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. február 13.)
  4. Fietkau, Felix. „OpenWrt switches to musl by default”, 2015. június 16.. [2015. június 17-i dátummal az eredetiből archiválva] (Hozzáférés ideje: 2015. november 4.) 
  5. Linksys WRT54G and the GPL on lkml (7 Jun 2003)
  6. The Open Source WRT54G Story By Aaron Weiss (November 08, 2005)
  7. Linksys Releases GPLed Code for WRT54G on slashdot (July 2003)
  8. Release Notes Kamikaze 8.09.2. openwrt.org , 2010. január 10. (Hozzáférés: 2013. április 26.)
  9. Release Notes Backfire 10.03. openwrt.org , 2010. április 7. (Hozzáférés: 2013. április 26.)
  10. Release Notes Backfire 10.03.1. openwrt.org , 2011. december 21. (Hozzáférés: 2013. április 26.)
  11. Release Notes Attitude Adjustment 12.09. openwrt.org , 2013. április 25. [2013. augusztus 8-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. április 26.)
  12. OpenWrt BarrierBreaker 14.07. openwrt.org . [2014. október 6-i dátummal az eredetiből archiválva]. (Hozzáférés: 2015. november 4.)
  13. kernel: update to 3.10.49 – OpenWrt. dev.openwrt.org , 2014. július 20. [2015. július 24-i dátummal az eredetiből archiválva]. (Hozzáférés: 2015. november 4.)
  14. Freescale i.MX support
  15. OpenWrt Chaos Calmer 15.05. openwrt.org
  16. [OpenWrt-Devel Chaos Calmer 15.05-rc3], 2015. július 16. [2015. szeptember 28-i dátummal az eredetiből archiválva]. (Hozzáférés: 2015. november 4.)
  17. [OpenWrt-Devel [PATCH 1/2] toolchain: The glorious return of glibc, ver 2.21], 2015. március 11. [2015. június 30-i dátummal az eredetiből archiválva]. (Hozzáférés: 2015. november 4.)
  18. Changeset 46846: change banner to Designated Driver release, 2015. szeptember 11. [2015. szeptember 29-i dátummal az eredetiből archiválva]. (Hozzáférés: 2015. november 4.)
  19. [OpenWrt-Devel OpenWrt switches to musl by default], 2015. június 16. [2015. június 30-i dátummal az eredetiből archiválva]. (Hozzáférés: 2015. november 4.)
  20. Release Notes for Attitude Adjustment (12.09 final). openwrt.org , 2013. április 25. [2013. augusztus 8-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. szeptember 26.)
  21. OpenWrt: Table of Hardware. openwrt.org . (Hozzáférés: 2013. szeptember 26.)
  22. Debating overlayfs, 2011. június 15.
  23. OpenWrt partition layout
  24. OpenWrt Unified Configuration Interface
  25. freecwmp is a CWMP client for OpenWrt
  26. Changeset 31756 – OpenWrt. dev.openwrt.org , 2012. május 16. (Hozzáférés: 2014. február 13.)
  27. a b LuCI project. [2015. október 26-i dátummal az eredetiből archiválva]. (Hozzáférés: 2009. február 28.)
  28. OpenWrt 8.09 release notes. (Hozzáférés: 2009. február 23.)
  29. Gargoyle Router Management Utility. (Hozzáférés: 2011. augusztus 21.)
  30. a b c OpenWrt Buildroot – About. openwrt.org . (Hozzáférés: 2013. október 21.)
  31. OpenWrt Buildroot - Usage and documentation. openwrt.org , 2006. január 8. [2013. október 21-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. október 21.)
  32. a b Tao Jin: OpenWrt Development Guide (PDF). Wireless Networks Lab, CCIS, NEU, 2012. február 13. (Hozzáférés: 2013. október 21.)
  33. Creating packages. openwrt.org . (Hozzáférés: 2013. október 21.)
  34. CeroWrt Wiki. (Hozzáférés: 2015. szeptember 16.)
  35. ANNOUNCE: debloat-testing kernel git tree. LWN.net. (Hozzáférés: 2014. február 13.)
  36. GitHub Project
  37. "closing time" message from author on PacketProtector forum. [2013. április 21-i dátummal az eredetiből archiválva]. (Hozzáférés: 2015. november 4.)
  38. Free Software Foundation adds libreCMC to its list of endorsed distributions. FSF.org , 2014. szeptember 4. (Hozzáférés: 2014. december 21.)

További információk[szerkesztés]

Commons:Category:OpenWrt
A Wikimédia Commons tartalmaz OpenWrt témájú médiaállományokat.