Alkalmazásfejlesztés és teljesítményoptimalizálás



Hasonló dokumentumok
6.2. TMS320C64x és TMS320C67xx DSP használata

A virtuális környezetet menedzselő program. Első lépésként egy új virtuális gépet hozzunk létre a Create a New Virtual Machine menüponttal.

(1) 10/100/1000Base-T auto-sensing Ethernet port (2) 1000Base-X SFP port (3) Konzol port (4) Port LED-ek (5) Power LED (Power)

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

Hardver összetevők ellenőrzése Linux alatt. Hardverguruk előnyben...

Hardver és szoftver követelmények

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program


Médiatár. Rövid felhasználói kézikönyv

Kameleon Light Bootloader használati útmutató

A készülék fő egységei X1 X1 (kizárólag vezeték nélküli kamera esetében X1 X1 X1 X1 X1

Tájékoztató az 1.10-es labor használatához

Windows hálózati adminisztráció segédlet a gyakorlati órákhoz

1.2. NFS kliens telepítése és beállítása

Gyors telepítési kézikönyv

Külső eszközök. Felhasználói útmutató

Netis Vezetékes ADSL2+, N Modem Router Gyors Telepítési Útmutató

1. Használatba vétel. 1.1 Biztonsági előírások. 1.2 Rendszerkövetelmények. 1.3 A csomag tartalma

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

A Novitax ügyviteli programrendszer első telepítése

Netis vezeték nélküli, N típusú, router

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

3 A hálózati kamera beállítása LAN hálózaton keresztül

Küls eszközök. Dokumentum cikkszáma: Ez az útmutató a külön beszerezhető külső eszközök használatát ismerteti

Opensuse automatikus telepítése

BaBér bérügyviteli rendszer telepítési segédlete év

Külső eszközök. Felhasználói útmutató

A belső hálózat konfigurálása

A DNS64 és NAT64 IPv6 áttérési technikák egyes implementációinak teljesítőképesség- és stabilitás-vizsgálata. Répás Sándor

Hogyan telepíthetsz fel Arch linuxot

Gyors üzembe helyezési kézikönyv

Küls eszközök. Dokumentum cikkszáma: Ez az útmutató a külön beszerezhető külső eszközök használatát ismerteti

Windows hálózati adminisztráció segédlet a gyakorlati órákhoz

Hálózati projektor használati útmutató

SZOFTVEREK (programok)

KIRA. KIRA rendszer. Telepítési útmutató v1

TELE-OPERATOR UTS v.14 Field IPTV műszer. Adatlap

A TERC VIP költségvetés-készítő program telepítése, Interneten keresztül, manuálisan

Számítógép felépítése

Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge

Beállítások 1. Töltse be a Planet_NET.pkt állományt a szimulációs programba! A teszthálózat már tartalmazza a vállalat

Köszönetnyilvánítás... xv Bevezetés az otthoni hálózatok használatába... xvii. A könyv jellegzetességei és jelölései... xxi Segítségkérés...

Hálózatok építése és üzemeltetése

Az alábbi útmutató ahhoz nyújt segítséget, hogy hogyan üzemelje be a TP-Link TL-WR740N eszközt.

[SZÁMÍTÓGÉP-HÁLÓZATOK]

Tájékoztató. Használható segédeszköz: -

USB-Nyomtató Menedzser

NVR-7308P8-H2 NVR-7316P8-H2 NVR-7524P8-H4

Telenor Webiroda. Kezdő lépések

TI TMDSEVM6472 rövid bemutatása

ClusterGrid for Windows

A Windows 7 operációs rendszerrel kompatibilis DS150E felhasználói útmutatója. Dangerfield,február 2010 V1.0 Delphi PSS

NHDR-3104AHD-II NHDR-3108AHD-II NHDR-3116AHD-II NHDR-5004AHD-II NHDR-5008AHD-II NHDR-5016AHD-II NHDR-5204AHD NHDR-5208AHD. Telepítői Segédlet

A fő menüpontok között a bal vagy jobb nyíllal mozoghatunk, Enter leütésére pedig megjelenik az adott menühöz tartozó tartalom.

BioAdmin 4.1 könnyű telepítés csak Kliens használatra

Kommunikációs rendszerek programozása. Switch-ek

telepítési útmutató K&H Bank Zrt.

Külső eszközök Felhasználói útmutató

Hálózati betekint ő program telepítése mobil telefonra. Symbian. alarm shop. Windows mobile Android IPhone Blackberry

OE-NIK 2010/11 ősz OE-NIK ősz

Yottacontrol I/O modulok beállítási segédlet

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán

E Y E Z O N E B1080PX-3 BEMUTATÁS

300 Mbps vezetékmentes szélessávú router BR 6428nS Gyors telepítési útmutató 1.0 s változat/2010 október

13. óra op. rendszer ECDL alapok

lizengo használati utasítás A Windows egy USB stick-re való másolása

Hálózatok építése és üzemeltetése

G Data MasterAdmin 9 0 _ 09 _ _ # r_ e p a P ch e T 1

BaBér. Bérügyviteli rendszer. Telepítési segédlet 2014.

Kikapcsoláskor mindig a Commodore számítógépet vagy a floppy meghajtót kapcsolja ki először.

ALKALMAZÁSOK ISMERTETÉSE

A telepítési útmutató tartalma

ProFTPD. Molnár Dániel október oldal

3Sz-s Kft. Tisztelt Felhasználó!

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

MÉRY Android Alkalmazás

Dropbox - online fájltárolás és megosztás

Netis vezeték nélküli, N típusú USB adapter

elektronikus adattárolást memóriacím

Telepítési Kézikönyv

Mechatronika segédlet 6. gyakorlat

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

SZÓBELI ÉRETTSÉGI TÉMAKÖRÖK

Általános soros sín (USB) Felhasználói útmutató Rendszerigény Nyomtatója beépített USB portja az alábbi minimális rendszerkonfiguráció mellett használ

2. modul - Operációs rendszerek

Moduláris USB billentyűzet emulátor

FoKi SZKENNER MODUL ÜZEMBE HELYEZÉSI LEÍRÁS. Verziószám: 2.0 (efoki) Lezárás dátuma:

1_Linux_bevezeto_bash

Oktatási cloud használata

IP alapú komunikáció. 2. Előadás - Switchek 2 Kovács Ákos

Procontrol. Kezelői és telepítői kézikönyv. Internetről kapcsolható dugaljzat _R9C revízió

Előadás témája: DVR-ek és hálózati beállításuk Szentandrási-Szabó Attila Műszaki és kereskedelmi igazgató

IDAXA-PiroSTOP. PIRINT PiroFlex Interfész. Terméklap

Hálózatos adatbázis-kapcsolódási problémák és azok javítása

Java-s Nyomtatványkitöltő Program Súgó

Virtualizációs technológiák Linux alatt (teljesítményteszt)

HÁLÓZATOK I. Segédlet a gyakorlati órákhoz. Készítette: Göcs László mérnöktanár KF-GAMF Informatika Tanszék tanév 1.

WLAN router telepítési segédlete

Átírás:

Szegedi Tudományegyetem Informatikai Tanszékcsoport Alkalmazásfejlesztés és teljesítményoptimalizálás linux alapú routeren Szakdolgozat Készítette: Tóth Szabolcs mérnök informatikus BSc szakos hallgató Témavezető: Szépe Tamás egyetemi tanársegéd Szeged 2012

A feladat leírása, a munka célja: Feladatkiírás A kereskedelmi forgalomban kapható routerekhez előtelepített operációs rendszerek gyakran korlátozzák a hardver képességeit, ezért érdemes más (nyílt forrású) operációs rendszereket használni, melyek lehetővé teszik a router szélesebb körű alkalmazhatóságát. Ilyen kibővített funkció például a távlabor, ahol USB porton keresztül kapcsolódnak a mérést vagy beavatkozást végző egységek a routerhez, ami biztosítja a kommunikációt, és kezeli a felhasználói kéréseket is. A szakdolgozat célja a Tp Link 1043nd router hardveres képességeinek felmérése és továbbfejlesztése jól használható távlabor központ megvalósításához. A munkavégzés fontosabb lépései: A routerrel kompatibilis operációs rendszerek (firmware) összehasonlítása. Routerre USB porton csatlakoztatott külső adattároló eszközök csatolásának lehetséges módjai, teljesítményük összehasonlítása és optimalizálása. A routerre implementálható DLNA szerverek összehasonlítása. A routeren futó webes alkalmazás készítése USB porton csatlakoztatott Edaq530 12-bites adatgyűjtő műszerrel történő kommunikálásra. A fejlesztéshez rendelkezésre álló fontosabb erőforrások: Tp link 1043nd router Edaq530 2

Tartalmi összefoglaló A téma megnevezése: A téma a TP-Link WR1043ND típusú routerre telepíthető nyílt forráskódú operációs rendszer képességeinek felmérése, és összeköttetés kiépítése az EDAQ530 nevű 12 bites adatgyűjtő interfésszel. A megadott feladat megfogalmazása: A routerre feltelepíthető Linux alapú operációs rendszer képességei korlátozottak a hagyományos személyi számítógépre telepíthető Linuxokhoz képest. A feladat az router funkcióinak megismerése és bővítése. A feladat része továbbá egy EDAQ530 nevezetű kisméretű mérőeszköz rácsatlakoztatása, és program írása a kommunikációhoz. A megoldási mód: Az alapvető beállítások megismerése után megnézzük, hogy mire lehet felhasználni az eszközön található USB portot. Ezek után megvizsgáljuk az EDA530 kommunikációját. Alkalmazott eszközök, módszerek: A feladat megoldása során felhasználtam az operációs rendszer által támogatott programot, függvénykönyvtárat. Elért eredmények: A kifejlesztett szoftver segítségével lehetőségünk van távolról adatokat mérni (például hőmérséklet) vagy kísérleteket végezni a router és az EDAQ530 segítségével. Kulcsszavak: OpenWrt, FTDI, távoli elérés, mérés 3

1 Tartalom TARTALMI ÖSSZEFOGLALÓ... 3 2 BEVEZETÉS... 5 2.1 OPENWRT... 5 2.2 ROUTER... 6 3 EGYÉB OPERÁCIÓS RENDSZEREK... 7 3.1 GARGOYLE... 8 4 OPENWRT TELEPÍTÉS, ALAP KONFIGURÁCIÓ... 8 4.1 A TP-LINK TL-WR1043ND, OPENWRT FRISSÍTÉS... 9 4.1.1 Flash réteg... 9 4.1.2 Használt fájlrendszerek:... 10 4.1.3 TP-Link WR1043ND Flash réteg felépítése:... 11 4.2 USB TÁMOGATÁS... 12 4.2.1 Információk az USB eszközökről.... 13 4.3 USB TÁRHELY... 14 4.3.1 Fájlrendszer.... 14 4.3.2 Konfigurálás lépései.... 16 4.3.3 Fstab... 17 4.3.4 Külső tárhely felcsatolása szkript segítségével.... 17 4.4 FÁJLRENDSZEREK TESZTELÉSE... 20 4.4.1 Fájlműveletet partíción belül.... 21 4.4.2 Másolás távolról, Samba fájl- és nyomtató kiszolgáló segítségével.... 23 4.5 CSOMAGKEZELŐ KONFIGURÁLÁS.... 25 5 DLNA... 26 5.1 USHARE... 26 5.2 SZÜKSÉGES ERŐFORRÁS.... 28 6 EDAQ530... 28 7 FTDI PROGRAMKÖNYVTÁR (LIBFTDI)... 31 7.1 FTDI OPENWRT-N... 31 8 KOMMUNIKÁCIÓS PROGRAM... 32 8.1 PROGRAM FUTTATÁSA TERMINÁLBÓL.... 39 8.2 PROGRAM ELÉRÉSE BÖNGÉSZŐN KERESZTÜL.... 41 8.2.1 Webszerver konfigurálása és telepítése... 41 9 IRODALOMJEGYZÉK... 44 10 NYILATKOZAT... 45 11 KÖSZÖNETNYILVÁNÍTÁS... 46 4

2 Bevezetés Ezen dolgozatban az OpenWrt Linux alapú beágyazott operációs rendszer lehetőségeit vizsgálom meg TP-Link TL-WR1043ND routeren. A kereskedelmi forgalomban kapható útválasztó eszközökben az előtelepített operációs rendszerek gyakran csak az alap, legszükségesebb funkciókat támogatják így gátolva az eszköz nagyfokú testreszabhatóságát. Ezért sok esetben a hardver képességeit nem lehet kihasználni teljes mértékben. Más beágyazott operációs rendszereket használva bővíthetjük a funkciókat. A nagyobb testreszabhatósággal bíró operációs rendszerek általában Linux alapúak, mint például az OpenWrt. Mára ez a disztribúció kinőtte magát, és sokan használják így lehetőség nyílik összetettebb funkciók megvalósítására egyszerű és olcsó módon, SOHO (Small Office Home Office) eszközökön. A Soho, otthoni vagy kisebb irodai környezetet jelent. Az első router, amire speciális operációs rendszerek készültek a Linksys WRT54G típus volt. Az OpenWrt projekt fejlesztése 2004 januárjában kezdődött a fent említett eszközre. 2.1 OpenWrt Az OpenWrt egy széleskörűen kiterjeszthető GNU/Linux disztribúció beágyazott rendszerekre. Ingyenes és nyílt forráskódú, GPL licencű. Az eszközön található gyári szoftveren a legtöbb esetben nincs külső csomag telepítésére lehetőség. A Linksys WRT54G, OpenWrt rendszerrel nagy siker lett, így egyre több embert vonzott. Ahogy nőtt a fejlesztők és felhasználók száma, egyre több eszközre megjelent. Később, ahogy bővültek a verziók, nőtt a perifériák támogatottsága. A verziók növekedésével nőtt a problémák száma is. Sok esetben hiányos volt a dokumentáció, és komoly szakértelemre volt szükség a problémamentes üzemeltetéshez. Ekkoriban más projektek is indultak, amik a SOHO eszközöket célozták meg, viszont a legtöbb az eredeti szoftver funkcióit próbálta másolni. Ezzel szemben az OpenWrt-nél számos csomag elérhető, és egyszerűen lehet új csomagot vagy modult készíteni. A szoftverfejlesztés során a különböző kiadásokat népszerű koktélokról nevezték el. Az első a WhiteRussian nevet kapta. 2007 júniusában kijött a második kiadás, a Kamikaze, ezen a néven is több verzió jelent meg. A jelenleg is használt kiadás a Backfire nevet viseli. Az első stabil Backfire verzió (10.03) 2010 áprilisán jelent meg. A kezdeti verziókkal nagyon sok problémát tapasztaltam, eleinte a dokumentáció nagyon hiányos, sok esetben hibás volt. Számos drivert nem támogatott, és sok programcsomagot újra kellett fordítani a 5

megfelelő működéshez. Sok tesztelés és várakozás után 2011 decemberében megjelent az OpenWrt Backfire 10.03.1-es verziója. 2009-2011 körül terjedtek el a MIMO-s, IEEE 802.11n-es szabványú vezeték nélküli routerek. Az IEEE 802.11n es szabvány nagyobb adatátviteli sebességet biztosított elődjeinél, akár 300-600 Mbit/s sebességet is. Az interneten található angol vagy akár magyar leírások az OpenWrt ezen korai verziójára épül, ezért sok hiba található benne. A fejlesztők és a felhasználók a szoftvert, amit feltelepítettek a routerre az OpenWrt leírása alapján saját maguk fordították, és még az eredeti bináris fájlok is hibásak voltak, nem mindig működött rajta a vezeték nélküli hálózat, vagy csak a korábbi szabványok voltak elérhetők. Az újabb verziókon a hibákat folyamatosan javítják, és a Backfire 10.03.1 final verziójában minden alap funkció tökéletesen működik. 2.2 Router Ma már rengeteg háztartás, ahol van internet elérhetőség, rendelkezik egy forgalomirányító számítógéppel, más néven routerrel. Ennek az eszköznek a fő feladata a bejövő adatok kezelése. A bejövő vonalon érkező csomagokat a megfelelő címre továbbítja. [1] Ahogy a technika fejlődött, nagyobb teljesítményű eszközök gyártására nyílt lehetőség, egyszerű felhasználók számára is elérhető áron. Ha céltudatosan szeretnék olyan routert vásárolni, amit támogat az OpenWrt, akkor a hivatalos oldalán találunk egy listát a támogatott eszközökről. [2] Miért érdemes olyan eszközt vásárolni, amit támogat az OpenWrt? Részletesen testre szabható, rugalmas, folyamatosan frissülő operációs rendszer. Pontosan nyomon követhető folyamatok. Az alapvető funkciókon túl, további különleges funkciók elérhetők, például különféle USB eszközök kezelése. Egyszerű fejlesztés. Érdemes megvizsgálni a felhasználó igényeit is ahhoz, hogy kiválasszuk a számunkra megfelelő adottságú routert. Mire lehet szüksége egy felhasználónak. Nagysebességű és nagy hatótávolságú vezeték nélküli hálózat támogatása. IEEE 802.11n és korábbi szabványok. Háromantennás MIMO (több kimenetes és több bemenetes) rendszer Gigabites LAN portok. 6

USB 2.0 port. Alacsony ár. Az általam bemutatott router az alábbi adottságokkal bír. Rendelkezésünkre áll 4 darab 10/100/1000Mbps LAN port és egy darab 10/100/1000Mpbs WAN Port, továbbá 1 darab USB 2.0-s port is. Az előlapon elérhető egy gomb (QSS), aminek a funkciója gyorsan és hatékonyan beállítani a vezeték nélküli kapcsolatot biztonságos kódolással. A QSS (Quick Setup Security) gomb OpenWrt rendszeren programozható. IEEE 802.11n, IEEE 802.11g, IEEE 802.11b vezeték nélküli szabványokat támogat, 3 darab 3dBi-s antennával. Képes akár 300Mbps sávszélességre is. 400 Mhz-es Atheros AR9132 típusú processzorral, 32MB RAM-mal és 8MB flash tárhellyel rendelkezik. A router alacsony áron, (15000 Ft-ért) megvásárolható. 3 Egyéb operációs rendszerek Az OpenWrt mellett számos beágyazott operációs rendszer elérhető. Név Tp-link 1043ND, támogatás Frissítés OpenWrt igen évente 1 Gargoyle igen 3 havonta X-Wrt nem nem fejlesztik DD-WRT igen utolsó frissítés 2010.08.09 Tomato nem nem fejlesztik FreeWrt nem nem fejlesztik 1. táblázat. Routerekre készülő operációs rendszerek Az 1. táblázatban felsoroltam az ismertebb rendszereket. Sok szoftver ismert ami OpenWrt alapú viszont már nem fejlesztik. Ezek közül az ismertebbek a FreeWrt, Tomato és az X-Wrt. Ezek eredetileg a Linksys WRT54GL típusú routerre készültek, az újabb eszközöket nem támogatják, a fejlesztésük véget ért. A DD-Wrt rendszer támogatja az általunk kiválasztott routert, viszont fejlesztése akadozik. A Gargoyle rendszer erősen fejlődik. Folyamatosan fejlesztik, és gyakrabban adnak ki frissítéseket, mint az OpenWrt csapata. [3] 7

3.1 Gargoyle OpenWrt alapú rendszer, nagyon szorosan követi az OpenWrt koncepcióját. A Gargoyle GPL licencű, viszont a weboldalukon vásárolható olyan router, amin már ez az operációs rendszer található. Fő szempont a stabilitás és az áttekinthetőség. Az áttekinthetőséget az Ajax felületű web interfészen keresztül biztosítják. Amikor az OpenWrt-ből még nem volt stabil verzió, sok probléma volt, a Gargoyle már akkor biztosított egy nagyon stabil rendszert. Minden alapvető funkció tökéletesen működött mindig. A felmerülő problémákat gyorsan javítják, viszont a frissítésekre figyelni kell, mert új verzióknál előfordul néha eddig nem ismert hiba, ami brickelheti a routert. Ezért telepítés előtt érdemes elolvasni a verzióhoz tartozó információkat. A Gargoyle tartalmaz olyan alapvető funkciókat, amiket az OpenWrt alapértelmezésben nem. Például: Jó megjelenésű monitoring rendszer, valós időben lehet nyomon követni a hálózat sebességét. Web-Usage, lementi a kliensek által látogatott oldalakat és a keresés során használt kulcsszavakat. Nagyon magas szinten konfigurálható QoS USB storage opció, web interfészen keresztül konfigurálható tárhely Automatikusan felismeri a rácsatlakoztatott eszközt, és felcsatolja. USB printer, nyomtatószerver kezelése, 1.5.1 verziótól TOR anonymizer, 32 MB RAM-nál nagyobb memóriával rendelkező routerek esetén. Az OpenWrt csomagjait használja. Minden script, ami azon működik, a Gargoyle rendszeren is fut. Javaslom a használatát. Egyszerűbben kezelhető, stabilabb, mint az OpenWrt és gyakoribbak a frissítések. A továbbiakban az alap OpenWrt rendszerrel foglalkozunk, viszont a részletezett programok és scriptek működnek Gargoyle rendszeren is. [4] 4 OpenWrt telepítés, alap konfiguráció A következőkben a router frissítés utáni beállításairól, konfigurálásáról lesz szó. Leírom az általam tapasztalt hibákat és javasolt beállításokat. Említeni fogok számos olyan hibaforrást, amikkel a fejlesztés és tesztelés során találkoztam, viszont nem találtam a dokumentációban vagy fórumban. A gyári szoftver frissítését OpenWrt-re és az alapvető 8

beállításokat, mint például az internet beállítása, nem részletezem. Számos alapbeállítást könnyedén el tudunk végezni böngészőn keresztül, és az OpenWrt hivatalos oldalán bővebben olvashatunk a beállításokról. Ha a http://192.168.1.1 címet beírjuk egy böngészőbe, akkor megjelenik egy login ablak, majd bejelentkezés után más routerekhez hasonló módon tudjuk konfigurálni az eszközt. Az alap OpenWrt alatt ez a felület a LuCI. Ezen interfész segítségével könnyedén lehet beállítani a helyi hálózatot (LAN), megadhatjuk a WAN beállításokat, vezeték nélküli hálózat konfigurációját stb. További LuCI modulok telepítésével lehetőségünk nyílik egyéb beállításokra grafikusan, például USB eszközök és fájlmegosztások beállítása, QoS (Quality of service). Viszont ezek használatát érdemes kerülni, mert nem frissítik rendszeresen. A modulokban előfordulhat hiba, ezért érdemes a bonyolultabb beállításokat terminálon keresztül elvégezni. Így biztosak lehetünk a helyes működésben. Számos eszköz közül választhatunk, amelyeket az OpenWrt támogat. Ha megbizonyosodtunk az eszköz pontos paramétereiről, akkor a hivatalos oldalon a letöltéseknél a Backfire mappából kiválasztjuk a nekünk megfelelő konfigurációt. [2] 4.1 A TP-Link TL-WR1043ND, OpenWrt frissítés Ha saját képfájlt készítünk, akkor AR71xx/AR240/AR931x platformot állítjuk be fordításkor. Az előre lefordított stabil képfájlok erre a típusú processzorra az ar71xx mappában találhatóak. Ebben a mappában már a lefordított bináris fájl található, aminek a neve pontosan tartalmaz minden szükséges információt, ami a firmware kiválasztásához szükséges. openwrt-ar71xx-tl-wr1043nd-v1-squashfs-factory.bin openwrt-ar71xx-tl-wr1043nd-v1-squashfs-sysupgrade.bin szoftvernév processzortípus - router típus router verziószáma-frissítés fajtája. A factory végződésű bináris állományt csak a gyári szoftverre telepítsük, bármilyen másik OpenWrt alapú szoftver frissítésekor a sysupgrade végződésű fájlt használjuk. 4.1.1 Flash réteg A flashmemória egy nem felejtő (nonvolatile) adattároló technológia. Felépítés alapján kettő típust különböztetünk meg. Az egyik a NOR, a másik a NAND típusú memória. Az elnevezés az adatképzés módjából ered. A NOR típus egy fontos jellemzője a gyors olvasási sebesség. Véletlenszerű memória hozzáféréssel rendelkezik. Ezen típusú 9

memóriákat gyakran használják beágyazott alkalmazásoknál a gyors olvasási sebesség miatt és támogatott a XIP (Execute-in-place) funckió. Az XIP funkció lehetővé teszi a programok direkt futtatását közvetlenül a flash memóriáról, így rendszermemóriát spórolunk. [5] A rajta tárolt adat közvetlenül futtatható, ezzel szemben a NAND típusú memórián nem futtatható közvetlenül a program. Általában nagyobb méretűek, mint a NOR típusú memóriák. Az olvasásuk lassú, viszont az írásuk és a törlésük gyors. Ha a flash memóriát az Operációs rendszer közvetlenül tudja címezni, akkor raw flash -nek hívjuk. Ezzel szemben, ha az operációs rendszer nem tudja direkt címezni, FTL (Flash Translation Layer) flash-nek nevezzük. A beágyazott rendszerek általában raw flash típust használnak, míg a pendriveok általában FTL flash-t. [6] 1. ábra Flash réteg felépítés A tárhelyet nem a hagyományos módon partícionáljuk (ahogy személyi számítógépeknél szokás). MTD (Memory Technology Device) eszközként kezeljük, és különleges fájlrendszereket használunk. MTD alrendszer egy absztrakciós réteg rawflash típusú eszközökhöz [7] 4.1.2 Használt fájlrendszerek: Mini_fo: Virtuális kernel fájlrendszer, ami a csak olvasható fájlrendszereket írhatóvá teszi. Beágyazott rendszerekben, live-cd-ben, sandbox környezetben szokták használni. [8] SquashFs: Csak olvasható fájlrendszer, ami lehetőséget ad az egész fájlrendszer 10

tömörítésére. Általában zlib, lzo, xz tömörítőket használ. Az OpenWrt Lempel Ziv Markov veszteségmentes tömörítési algoritmust használ. Ennek a fájlrendszernek az előnye, hogy kicsivel több hely elérhető, és implementálható a FailSafe mód (hiba esetén visszaállítás). Hátránya, hogy csak olvasható [9] JFFS2: Flash eszközökre kifejlesztett írható-olvasható tömörített naplózó fájlrendszer. 4.1.3 TP-Link WR1043ND Flash réteg felépítése: TP-Link WR-1043ND Flash elrendezés 0. réteg m25p80 Serial Peripheral Interface Bus0.0: m25p64 8192KiB 1. réteg mtd0 u-boot mtd4 art mtd5 firmware 8000KiB 128KiB 64Kib 2. réteg mtd1 kernel 1280KiB mtd2 rootfs 6720KiB csatolási pont / (gyökérkönyvtár) fájlrendszer mini_fo 3. réteg mtd3 rootfs_data 5184KiB Méret(KiB) 128KiB 1536KiB 5184KiB 64KiB Név u-boot kernel rootfs_data art csatolási pont - - /rom /overlay - fájlrendszer - - SquashFs JFFS2-2. táblázat TP-Link WR-1043ND Flash elrendezés ART: Atheros Radio Test, tartalmazza a MAC (fizikai) címeket és a kalibrációs adatokat a wifihez. Csatolási pontok: / : Az egész root fájlrendszer, tartalmazza a /rom és /overlay mappákat is. /rom: Ez tartalmazza az alap fájlokat és csomagokat, mint például a 11

busybox, dropbear, iptables, viszont nem tartalmazza a kernelt. /overlay Írható rész a fájlrendszeren. [6] A frissítés után a router alapértelmezett IP címe a 192.168.1.1 lesz, és az ehhez tartozó felhasználónév-jelszó páros a root/(üres mező). Az egyik lehetséges bejelentkezési mód, ha a böngészőbe beírjuk az IP címet, és ott belépünk az alapértelmezett felhasználónév, jelszó párossal. Bejelentkezés után ajánlott a saját jelszó megadása. Ezután ha SSH-val csatlakozunk akkor az előbb beállított jelszót kell megadni. Első lépésként érdemes feltelepíteni a Nano szövegszerkesztőt. Ezt a kisméretű programot sokkal egyszerűbb használni, mint az alapértelmezett vi, szövegszerkesztőt. opkg update && opkg install nano Ezzel a paranccsal a csomaglista frissítése után a nano a lokális tárhelyre installálódik. Második lépésként érdemes beállítani az USB támogatást és a külső meghajtókat. A sikeres konfigurálás után lehetőség van programokat telepíteni a külső tárhelyre is. 4.2 USB támogatás Az USB támogatással rendelkező routerekre az OpenWrt bináris fájlja már tartalmazza a szükséges drivereket, így a rendszer már felismeri USB 1.0 vagy akár USB 2.0-s eszközöket is. Ha a használt verzió nem rendelkezik a megfelelő támogatással, az opkg csomagkezelő segítségével könnyen telepíthetjük. Az USB támogatáshoz szükséges kernel modulok kmod-usb-core Szükséges telepíteni, kernel támogatás USB eszközökre kmod-usb-ohci Specifikus driver, OHCI usb eszközöket támogatja kmod-usb-uhci Specifikus driver, UHCI usb eszközöket támogatja kmod-usb2 USB 2.0 eszköz támogatás, (EHCI) Az opkg info <csomagnév> parancs segítségével lekérdezhetjük az információkat a csomagról. Információt kapunk a csomag méretéről, az architektúráról. Jelzi azt is, hogy telepítetve van-e és az időpontját. Tp-link 1043ND routeren Openwrt backfire 10.03.1-es firmware alatt alapértelmezésként a kmod-usb2, kmod-usb-ohci, kmod-usb-core csomagok vannak telepítve. USB 1.1 modul telepítése. UHCI driverek esetén:opkg update opkg install kmod-usb-uhci 12

insmod usbcore insmod uhci Ha a No such device then your hardware is not an UHCI device. üzenet jelenik meg, akkor a hardverünk nem UHCI. Az opkg remove <csomagnév> paranccsal tudunk eltávolítani egy csomagot. Távolítsuk el és telepítsük az OHCI drivercsomagot [10] USB 2.0 modul telepítése Az USB 1.1-es modul telepítése után az alábbi paranccsal [10] opkg update opkg install kmod-usb2 insmod usbcore insmod ehci-hcd Csomaglista frissítése usb2-es kernelmodul telepítése az usbcore betöltése a kernelbe az ehci-hcd modul betöltése a kernelbe 4.2.1 Információk az USB eszközökről. PC-re szánt linux alatt elérhető az lsusb nevezetű program, ami az USB eszközökről nagyon sok információt nyújt. Ez a program az usbutils programcsomag telepítésével érhető el. opkg update && opkg install usbutils Sikeres telepítés után az lsusb paranccsal tudjuk kilistázni a csatlakoztatott USB eszközöket. root@openwrt:/# lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB Bus 001 Device 003: ID 0951:1642 Kingston Technology Bus 001 Device 004: ID 04b4:6830 Cypress Semiconductor Corp. CY7C68300A EZ-USB AT2 USB 2.0 to ATA/ATAPI Bus 001 Device 005: ID 046d:092b Logitech, Inc. Labtec Webcam Plus Ebben az esetben láthatjuk, hogy a Device 002 egy Genesys Logis típusú USB 2.0-s 4 portos HUB. A Tp-link 1043ND router 1 darab USB porttal rendelkezik. Ez problémát okozhat abban az esetben, ha több USB eszközt szeretnénk csatlakoztatni. A megoldás 13

USB elosztó, más néven USB-HUB. A többi eszköz ezen keresztül csatlakozik. Létezik aktív és passzív HUB. Az USB port 5V-os és 500 ma-es. A passzív HUB azt jelenti, hogy nem kap külön tápfeszültséget, és az 500mA áramerősség megoszlik a 4 porton. Ez akkor fontos, ha olyan eszközöket használunk, amelyeknél az USB egyben az áramforrás is. [11] A listában még látható egy külső winchester rack, egy Kingston típusú pendrive és egy webkamera. A dmesg parancs a kernel ring puffert listázza ki. Megmutatja, hogy mi történik a rendszerben az eszköz rácsatlakoztatásakor. dmesg kimenete: usb 1-1: new high speed USB device using ar71xx-ehci and address 5 usb 1-1: configuration #1 chosen from 1 choice hub 1-1:1.0: USB hub found hub 1-1:1.0: 4 ports detected Amint látjuk, a rácsatlakoztatás után egyből felismerte. A dmesg parancs 4 USB portot jelez. 4.3 USB tárhely Ha a routeren megtalálható az alap USB támogatás, akkor nagyon sokféleképpen használhatjuk fel. Egy lehetőség, ha egy külső merevlemezt vagy pendrive-ot csatolunk fel, ezzel bővítve az elérhető tárhelyet. Régebbi routereknél, amik nem rendelkeztek USB porttal, különböző trükkös megoldásokkal próbálták megnövelni az írható tárhely méretét, ezzel bővítve az eszköz lehetőségeit. Egy lehetőség a belső hálózaton, egy számítógépen megosztott mappát felcsatolni (mount). Felcsatolás után úgy hivatkozhatunk rá mintha, a router saját mappája lenne.. Ennek a módszernek a hátránya, hogy lassú, és a számítógépnek folyamatosan mennie kell. Több helyről is hozzáférhetnek, módosíthatják az adatokat. A másik lehetőség az SD kártyával történő bővítés, viszont ehhez elengedhetetlen volt belenyúlni a hardverbe. 4.3.1 Fájlrendszer. Fontos kérdés, hogy milyen fájlrendszert használunk. A támogatott fájlrendszerek kilistázhatók az alábbi paranccsal. opkg update 14

opkg list "kmod-fs*" Kimenet a teljesség igénye nélkül. kmod-fs-cifs - 2.6.32.27-1 - Kernel module for CIFS support kmod-fs-exportfs - 2.6.32.27-1 - Kernel module for exportfs. Needed for some other modules. kmod-fs-ext2-2.6.32.27-1 - Kernel module for EXT2 filesystem support kmod-fs-ext3-2.6.32.27-1 - Kernel module for EXT3 filesystem support Már a lista is sok információt hordoz. Látható, hogy kernel modulról van szó. Az ext2 egy népszerű linux alapú fájlrendszer. Gyors, nem naplózó fájlrendszer. Ideális kisméretű pendrive-ok esetén. Kérjük le az információkat a csomagkezelő segítségével root@openwrt:~# opkg info kmod-fs-ext2 Package: kmod-fs-ext2 Version: 2.6.32.27-1 Depends: kernel (= 2.6.32.27-1), kmod-fs-mbcache Provides: Status: install hold,user installed Section: kernel Architecture: ar71xx Maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org> MD5Sum: 8fcba03200a90c80a056e9fa3cf605a4 Size: 31838 Filename: kmod-fs-ext2_2.6.32.27-1_ar71xx.ipk Source: package/kernel Description: Kernel module for EXT2 filesystem support Installed-Time: 1331642478 Számos információ található a megjelenített listában. Csomagfüggőségek, méret, architektúra. Sok esetben, más csomagoknál is nagyon hasznos információkat szolgáltat az opkg info parancs. A rendszer támogatja a Microsoft által kifejlesztett fájlrendszereket is, viszont ezek használatát érdemes kerülni, helyette célszerű a Linux alapú fájlrendszerek használata. Ha tárhelynek szeretnék használni, és megosztani az adatokat hálózaton, vagy nagyméretű adatokat (videó, zene) szeretnénk tárolni, akkor érdemes ext3 vagy ext4 típusú fájlrendszert használni. Ezek a fájlrendszerek támogatják a naplózást, így áramszünet esetén, vagy ha a rendszer összeomlik, és elkezdi vizsgálni, akkor gyorsan 15

végez a vizsgálattal, ezzel szemben az ext2 nem támogat naplózást, nagy méret esetén sokáig eltarthat a vizsgálat, és a fájlméret limitált (4Gb). Ahová rendszerfájlokat fogunk telepíteni, oda elég egy kisméretű, naplózás nélküli, gyors partíció, például ext2. Ha az eszközt csak a routeren használjuk, és csak ritkán csatlakoztatjuk PC-re, akkor érdemes ext3 vagy ext4 fájlrendszert használni. Gyakran használt pendrive-ok esetén használhatunk ntfs vagy fat32 partíciót. Szükséges csomagok: kmod-usb-storage kernel modul usb tárhely támogatására kmod-usb-storage-extras további driverek block-mount szkript csomag fájlrendszerek felcsatlakoztatását, tárhely ellenőrzését, swap partíciók, azaz virtuális merevlemezek kezelésének lehetőségét támogatja. kmod-fs-xxx a fájlrendszer kernel modulja, amit fel akarunk csatolni. kmod-scsi-generics SCSI eszközök ntfs-3g NTFS partíciók kezelőséhez szükséges program. 4.3.2 Konfigurálás lépései. 1. lsusb vel listázzuk ki a már csatlakoztatott eszközöket. 2. opkg install fdisk Segítségével kilistázhatjuk a felismert partíciókat(fdisk l) 3. Szükséges csomagok feltelepítése. Ha az eszköz rácsatlakoztatása után az lsusb kimenetében látjuk a csatlakoztatott eszközt, de az fdisk l hatására nem jelenik meg, akkor telepítsük a kmod-usb-storage-extras csomagot. Előfordulhat, hogy a csatlakoztatott eszköz illesztőprogramja nem szerepel az alapértelmezett eszközök között 4. Használjuk a dmesg parancsot A dmesg parancs kislistáz minden információt a csatlakoztatás után történik a kernelben, így minden hibát is. Például néhány fájlrendszernek (pl.: VFAT), szüksége lehet nyelvi támogatásra, ha a megfelelő csomag nincs feltelepítve, a dmesg jelzi, és az opkg csomagkezelő segítségével meg tudjuk keresni, majd feltelepíteni. dmesg kimenet: FAT: codepage cp437 not found FAT: IO charset iso8859-1 not found Ezek után opkg update && opkg list kmod-nls* majd megkeressük a megfelelő kódlapot, és feltelepítjük. 16

5. fstab konfigurálás vagy mountolás manuálisan szkript segítségével. 4.3.3 Fstab Az fstab definiálja a statikus fájlrendszerek és a swap partíciók kezelését. A rendszer indulásakor, bootoláskor hajtódik végre. Telepítése opkg update && opkg install block-mount parancssal történik. Ahhoz hogy rendszerinduláskor elinduljon, először aktiválni kell. Ezt könnyen meg tudjuk tenni a /etc/init.d/fstab enable segítségével, vagy az /etc/init.d/fstab start tal el tudjuk indítani. A beállítást a /etc/fstab fájl módosításával tudjuk megtenni nano szövegszerkesztő segítségével. Egyszerű konfigurációs fájl példa: config 'global' 'automount' option 'from_fstab' '1' option 'anon_mount' '1' config 'global' 'autoswap' option 'from_fstab' '1' option 'anon_swap' '0' config 'mount' option 'target' '/home' option 'device' '/dev/sda1' option 'fstype' 'ext4' option 'options' 'rw,sync' option 'enabled' '0' option 'enabled_fsck' '0' A target opcióban megjelölt mappát minden esetben létre kell hozni. Ide fogja becsatolni a /dev/sda1-es eszközt, ami ext4 típusú. Hatékonyabb megoldás, ha egy szkript segítségével állítjuk be. 4.3.4 Külső tárhely felcsatolása szkript segítségével. Hozzunk létre egy fájlt a /etc/init.d helyen nano /etc/init.d/usb_mount Másoljuk bele az alábbi kódot 1. #!/bin/sh /etc/rc.common 17

2. START=98 3. STOP=98 4. start() { 5. busybox mount -t ext2 /dev/sdb1 /mnt/winya_sys -o rw,noatime 6. busybox mount -t ext4 /dev/sdb3 /mnt/winya_share -o rw,noatime 7. ntfs-3g -o rw,noatime /dev/sda4 /mnt/ winya_ntfs 8. echo 1 > /sys/class/leds/tlwr1043nd\:green\:qss/brightness 9. echo "merevlemez felcsatolva. 10. busybox logger "Harddrive mounted." 11. } 12. stop() { 13. busybox sync 14. busybox umount /dev/sdb3 15. echo 0 > /sys/class/leds/tlwr1043nd\:green\:qss/brightness 16. busybox sync 17. busybox umount /dev/sdb1 18. echo "merevlemez leválasztva. 19. busybox logger "Harddrive unmounted." 20. } A 2. sorban a START=98-cal definiált érték, (0-99 közötti érték) a rendszer indulásakor a prioritási sorrendet jelenti. A 4. sorban indul a start függvény. Ha beírjuk a /etc/init.d/usb_mount start parancsot, akkor ez a függvény hívódik meg. Sok helyen a busybox kulcsszót is kiírtuk a használandó kulcsszó elé. Erre akkor van szükség, ha távolról akarunk futtatni olyan programot vagy szkriptet, ami SSH-n keresztül rácsatlakozik a routerre, és távolról akar parancsokat végrehajtani. Ha ez hiányzik, akkor a távoli program ismeretlen parancs hibaüzenetet dob. A BusyBox kisebb Linux alapú programok gyűjteménye beágyazott rendszerekre. Ha beírjuk a terminálba a busybox parancsot, kilistázza a parancsokat, amiket tartalmaz. Az 5. 6. sorban csatlakoztatjuk a fájlrendszereket a mount parancs segítségével. 18

Részletes leírást az OpenWrt operációs rendszeren a mount --help, paranccsal, vagy a mount manuáljában találunk (man mount, PC-re szánt linux alatt). Listázzuk ki a partíciós táblát! root@openwrt:~# fdisk -l Disk /dev/sdb: 164.6 GB, 164696555520 bytes 255 heads, 63 sectors/track, 20023 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x881445bb Device Boot Start End Blocks Id System /dev/sdb1 1 65 522081 83 Linux /dev/sdb2 66 70 40162+ 82 Linux swap / Solaris /dev/sdb3 71 20023 160272472+ 83 Linux Ebből tisztán látjuk a csatlakoztatott eszköz méretét és még számos információt. Amire szükségünk van, a Device Boot és a System oszlop. A system a fájlrendszer típusát jelzi a Device Boot a helyét. A Device Bootban szereplő paramétert kell majd megadni a mountnak paraméterként. A mount parancsban tehát a t paraméter után adjuk meg a fájlrendszer típusát, utána a Device Node-ot, azaz az előbb említett fdiskből kiolvasott partíció helyet. Ezt követően egy létező mappa, ahová becsatoljuk az eszközt. Végül o paraméter után az opciókat. Példuál ro/rw (read-only/read-write) csak írható vagy írható olvasható. Az ntfs partíciókat az ntfs-3g programmal lehet felcsatolni. Paraméterezése hasonló a mounthoz. A 8. és 15. sorban a QSS ledet kapcsoljuk be, ha 1-et küldünk el a fájlnak, 0 esetén kikapcsol. A 10. és 19. sorban a logger parancssal a rendszerüzenetként lehet jelölni, hogy mi történt. Nagyon hasznos funkció hibakeresés során. Mentés után a fájlt futtathatóvá kell tennünk a chmod +x /etc/init.d/usb_mount paranccsal. Ha mindent sikeresen végrehajtottunk, akkor /etc/init.d/usb_mount start paranccsal csatoljuk fel a meghajtókat és a stoppal állítjuk le.. A felcsatolás után, a mount parancs paraméter nélkül kiírja a felcsatolt eszközöket. root@openwrt:~# mount rootfs on / type rootfs (rw) mini_fo:/overlay on / type mini_fo (rw,relatime) debugfs on /sys/kernel/debug type debugfs (rw,relatime) 19

/dev/sda2 on /mnt/usb_sys type ext2 (rw,sync,relatime,errors=continue) /dev/sda1 on /mnt/usb_share type ext3 (rw,noatime,errors=continue,data=writeback) /dev/sdb1 on /mnt/winya_sys type ext2 (rw,noatime,errors=continue) /dev/sdb3 on /mnt/winya_share type ext4 (rw,noatime,barrier=1,data=ordered) A végén látjuk az általunk felcsatolt meghajtókat. Látható, hogy melyik eszközt hova csatoltolódott fel, és a hozzá tartozó beállítások. A dmesg parancs jelzi a felcsatolás során lezajlott eseményeket és a hibákat. Felcsatolás boololáskor. Ha azt szeretnénk, hogy rendszerinduláskor lefusson a szkript, akkor egy szimbolikus linket kell készítenünk a /etc/rc.d mappába, és a fájl nevének az alábbi módon kell kinéznie. S**fájlnév, ahol a ** 0-99-ig egy szám, ez a szám a szkript elején megadott START=98-as szám. Induláskor a programok prioritási sorrendjét jelzi. A rendszerfeladatok általában alacsony számok, míg az általunk definiált feladatoknak adjunk nagy számot. 4.4 Fájlrendszerek tesztelése A fájlrendszer kiválasztásában nagy segítséget nyújthat ez a fejezet. A következőkben több szempontból vizsgáljuk a külső merevlemez tulajdonságait. Különféle másolások során figyeltem a processzorhasználatot, és a másoláshoz szükséges időt. Minden típusú mérést két féle fájl típussal végeztem el. A mindennapokban többször előfordul, hogy egy nagyobb méretű vagy sok kis méretű fájlt kell mozgatnom, például egy filmet vagy fotóalbumot. Kiválasztottam tehát egy fotóalbumot és egy azonos méretű filmet. A fotóalbum 381 fájlból áll, és 733 MB a teljes album mérete. Elsőként azt vizsgáltam, hogy a külső merevlemezen, egy partíción belül, mennyi idő alatt tudom átmásolni a fájlokat. Írtam egy scriptet, ami a következő lépéseket hajtja végre. 1. String formátumban lekérem az aktuális dátumot a rendszertől. 2. Törlöm az összes állományt onnan, ahova szeretnék másolni. 3. String formátumban lekérem az aktuális időt ismét. 4. A 3. pontban lekért dátumból kivonom az 1. pontban lekért dátumot. Így pontosan tudom, a fájlok törléséhez szükséges időt. 5. A kezdeti dátum lekérése egy változóba, normál formában. 6. Kezdeti dátum string formában. 7. Másolás 8. Másolás után közvetlenül a dátum lekérése string formátumban. 20

9. 8. pontban feltöltött változó és a 6. pontban feltöltött változó különbsége. Így megkaptuk pontosan a másoláshoz szükséges időt 10. Kiíratás fájlba. 11. Tíz másodperc alvás. 12. Ismétlés 10-szer. A script futásával párhuzamosan a cpusage parancs kimenetét folyamatosan lementem. A cpusage a processzorhasználatot kéri le, alapértelmezésként másodpercenként, pontos dátummal. A mérés bejezése után a dátumokból pontosan tudom, hogy egy méréshez melyik processzorhasználat tartozik. Az összes tesztet ugyanazon a merevlemezen végeztem, ami egy Maxtor IDE csatlakozású HDD és USB 2.0-val rendelkező külső mobil rack segítségével csatlakozik a routerhez. 4.4.1 Fájlműveletet partíción belül. Ext2 fájlrendszeren, lemezen belül, egy nagyméretű fájl másolása. A CPU használat mérésekor, ha egy másolás 80 másodpercig tart, akkor 80-szor nézi meg a processzor kihasználtságot, másodpercenként egyszer. Ezért kiszámoltam a processzorhasználat átlagát és a szórását minden méréshez. Ezen kívül az összes másolásra is kiszámoltam az átlagot és a szórást. Mérés 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Átlag Szórás Másolás [s] Törlés [s] CPU, átlag [%] 82 83 83 83 84 84 83 85 83 84 83,4 0,84 0 0 0 0 0 0 0 0 0 0 0 0 29,58 29,67 29,27 29,29 28,23 28,42 29,39 29,90 28,35 29,47 29,16 0,59 3. táblázat Ext2 fájlrendszeren, lemezen belül, egy nagyméretű fájl másolása. Mérés 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Átlag Szórás Másolás [s] Törlés [s] CPU, átlag [%] 83 83 80 81 84 90 86 81 89 82 83,9 3,41 2 0 0 1 0 0 0 0 1 0 0,4 0,69 28,98 28,26 28,49 29,08 28,28 29,56 29,13 29,37 28,71 28,23 28,81 0,48 4. táblázat Ext2 fájlrendszeren, lemezen belül, több kisméretű fájl másolása. 21

Mérés 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Átlag Szórás Másolás [s] Törlés [s] CPU, átlag [%] 69 69 69 69 69 69 69 70 69 68 69 0,471 2 0 0 1 0 0 0 0 0 1 0,4 0,699 44,31 43,90 43,44 43,09 42,99 43,88 43,52 42,96 42,22 43,26 43,35 0,59 5. táblázat Ext3 fájlrendszeren, lemezen belül, egy nagy fájl másolása. Mérés 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Átlag Szórás Másolás [s] Törlés [s] CPU, átlag [%] 75 75 75 76 75 75 77 76 75 75 75,4 0,699 3 1 1 0 0 1 0 0 0 0 0,6 0,966 40,15 41,46 40,67 40,51 39,83 40,88 40,35 40,74 39,88 41,33 40,57 0,55 6. táblázat Ext3 fájlrendszeren, lemezen belül, több kis fájl másolása Mérés 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Átlag Szórás Másolás [s] Törlés [s] CPU, átlag [%] 65 66 66 66 67 65 66 66 66 68 66,1 0,88 0 1 0 0 0 0 1 1 1 0 0,4 0,52 40,35 40,14 40,51 40,80 40,47 40,68 40,22 39,79 40,60 40,14 40,37 0,30 7. táblázat Ext4 fájlrendszeren, lemezen belül, egy nagy fájl másolása Mérés 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Átlag Szórás Másolás [s] Törlés [s] CPU, átlag [%] 78 73 72 72 72 72 71 72 72 71 72,50 2,01 0 0 0 0 0 1 0 1 0 1 0,30 0,48 35,26 37,00 37,85 38,07 37,48 38,28 38,23 37,93 37,95 37,26 37,5307 0,89757 8. táblázat Ext4 fájlrendszeren, lemezen belül, több kis fájl másolása 22

16:27:38 16:27:42 16:27:46 16:27:50 16:27:54 16:27:58 16:28:02 16:28:06 16:28:10 16:28:14 16:28:18 16:28:22 16:28:27 16:28:31 16:28:35 16:28:39 16:28:43 16:28:47 16:28:51 16:28:55 16:28:59 16:29:03 16:29:07 Cpu [%] Adat [MB] Alkalmazásfejlesztés és teljesítmény-optimalizálás linux alapú routeren A táblázatokból látható, hogy az ext2 fájlrendszeren a másolás alacsonyabb processzorhasználattal jár a többi vizsgált fájlrendszerhez képest, viszont a másolás több időt vesz igénybe. A fájltörlés elhanyagolhatóan kis érték a fájlrendszereken, ha ekkora méretű fájlt törlünk. Az ext4 fájlrendszeren az egy darab nagyméretű fájl másolása is, és több kisebb méretű fájl másolása esetén is gyorsabb. A naplózó ext3 és ext4 fájlrendszerek esetén több kisméretű fájl, például fotóalbum másolása több időt vesz igénybe. 4.4.2 Másolás távolról, Samba fájl- és nyomtató kiszolgáló segítségével. A routerre csatlakoztatott merevlemezen ext3 partíciót használtam, és vezetékkel csatlakoztam. A távoli gépen Windows 7 Ultimate Service Pack 1, operációs rendszer volt, és a másolás Total Commander 7.56-os verziójával történt. A hálózati adatforgalmat a Bandwidth Monitor 3.4-es trial verziójával figyeltem. Másodpercenként figyeltem az adatforgalmat és a router a processzorhasználatát. Samba3, nagy méretű fálj olvasás 35 30 25 20 15 10 5 0 12 10 8 6 4 2 0 CPU [%] Letöltött adat [MB] 2. ábra Samba3, nagy méretű fálj olvasás Processzorhasználat átlag: 20,04 %, szórás: 4,84 23

16:32:02 16:32:07 16:32:11 16:32:15 16:32:19 16:32:23 16:32:27 16:32:31 16:32:35 16:32:39 16:32:43 16:32:47 16:32:51 16:32:55 16:32:59 16:33:03 16:33:07 16:33:11 16:33:15 16:33:20 16:33:24 16:33:28 16:33:32 16:33:36 CPU [%] Adat [MB] 16:42:23 16:42:27 16:42:31 16:42:35 16:42:39 16:42:43 16:42:47 16:42:51 16:42:56 16:43:00 16:43:04 16:43:08 16:43:12 16:43:16 16:43:20 16:43:24 16:43:28 16:43:32 16:43:36 16:43:40 16:43:44 16:43:48 CPU [%] Adat [MB] Alkalmazásfejlesztés és teljesítmény-optimalizálás linux alapú routeren Samba3, nagy méretű fálj írása 70 60 50 40 30 20 10 0 12 10 8 6 4 2 0 CPU [%] Feltöltött adat [MB] 3. ábra Samba3, nagy méretű fálj írása Processzorhasználat átlag: 47,12 %, szórás: 4,8 Samba3, több kis méretű fájl olvasása 30 25 20 15 10 5 0 12 10 8 6 4 2 0 CPU [%] Letöltött adat [MB] 4. ábra Samba3, több kisméretű fájl olvasása Processzorhasználat átlag: 17,07 %, szórás: 4,5 24

16:38:25 16:38:29 16:38:33 16:38:37 16:38:41 16:38:45 16:38:49 16:38:53 16:38:57 16:39:01 16:39:05 16:39:09 16:39:13 16:39:17 16:39:22 16:39:26 16:39:30 16:39:34 16:39:38 16:39:42 16:39:46 16:39:50 CPU [%] Adat [MB] Alkalmazásfejlesztés és teljesítmény-optimalizálás linux alapú routeren 70 60 50 40 30 20 10 0 Samba3, több kis méretű fájl írása 12 10 8 6 4 2 0 CPU [%] Feltöltött adat [MB] 5. ábra Samba3, több kis méretű fájl írása Processzorhasználat átlag: 47,13 %, szórás: 4,5 A grafikonokon látható, hogy a processzorhasználat az adatátvitel indulásakor felugrik. Adatok írása esetén a processzorhasználat magasabb, 47% körül mozog, míg olvasáskor 20% körüli érték. Az adatküldés minden esetben folyamatos 10 MB körüli érték. A mérésekhez felhasznált adatokat Microsoft Excel táblázatban dolgoztam fel, és a DVD mellékletben megtalálhatóak. A processzorhasználat mérésére a cpusage nevű programot használtam fel, amit az opkg csomagkezelő segítségével egyszerűen feltelepíthetünk. A cpusage meghatározott időközönként (alapértelmezésként 1 másodperc) kiírja a processzor használtsági állapotát és a hozzá tartozó dátumot. A program nem folyamatonként listázza ki az értékeket, hanem a teljes processzorhasználatot mutatja, ezért a mérések során törekedtem arra, hogy más művelet ne zavarja meg a mérést. Így a táblázatokban és grafikonokban feltűntetett adatok az adott mérésnek a teljes használatát mutatják. A cpusage által processzorhasználata elhanyagolhatóan kicsi. Ha elindítom, és a kimenetét egy fájlba irányítom, majd közben figyelem a top program segítségével a processzorhasználatát, 0%-ot jelez minden esetben, valamint 1% és 3% közötti memóriaigényt. 4.5 Csomagkezelő konfigurálás. A külső tárhely felcsatolása után, következő lépés az opkg csomagkezelő konfigurációja. A konfiguráció után a csomagokat a külső tárhelyre is telepíthetjük. A konfiguráció a /etc/opkg.conf fájlban található, ebbe kell beszúrni egy sort, például nano 25

szövegszerkesztővel. A dest ram /tmp sort követően egy új sorba írjuk az alábbi sort. dest hdd /mnt/usb_sys dest kulcsszó a forrást jelöli, a hdd név, ahogy hivatkozunk rá, és a /mnt/usb_sys a mappa helye, ahova telepítünk. Adott esetben a felcsatolt mappa. Mentés után az opkg --dest hdd install mc paranccsal a midnight commandert telepítjük a külső tárhelyre. Sikeres telepítés után mégsem tudjuk futtatni. Ha megnézzük a telepítés helyét, láthatjuk, hogy létrejött egy a gyökér könyvtárral megegyező mappa struktúra. (etc, bin, usr). Az itt található fájlokról kell szimbolikus linket létrehozni a megfelelő helyre, majd ezt követően tudjuk futtatni bárhonnan. Viszont ez bonyolult és hosszadalmas módszer. Az OpenWrt oldalán található scriptet fejlesztette tovább egy felhasználó, és közzétette a hivatalos fórumon. [12] Hozzunk létre egy futtatható scriptet opkg-link néven a /bin mappában! Ezek után az opkg-link mount /mnt/usb_sys parancsot kiadva automatikusan létrehozza a szimbolikus linkeket. A scriptet paraméter nélkül futtatva kiírja a használati utasítást. [13] 5 DLNA A DLNA (Digital Living Network Alliance) szabvány segítségével különböző multimédiás eszközöket kapcsolhatunk össze. A szabványt támogató eszközök között multimédiás anyagokat továbbíthatunk. Például egy modern TV, ami támogatja a DLNA szabványt, és rendelkezik beépített DLNA lejátszóval. Képesek vagyunk rácsatlakozni egy szerverre távolról multimédiás anyagokat (filmet, zenét) lejátszani. [14] OpenWrt-re feltelepíthetünk DLNA szervert, ami ellátja ezt a funkciót. Képesek vagyunk például a routerről, egy modern tv segítségével filmet nézni vagy zenét hallgatni. OpenWrt-n két program elérhető, ami DLNA szerverként funkcionál. A MiniDLNA és az ushare. A tesztelések során a minidlna sokszor lefagyott, és nagyon lefoglalta a rendszer erőforrásait, nem jó választás DLNA szervernek. Az ushare programnál nem tapasztaltam hasonló hibákat, a program megfelelően működött. 5.1 UShare A program telepítése és konfigurálása nagyon egyszerű. A programot érdemes külső tárhelyre telepíteni. 26

1. opkg update 2. opkg --dest hdd install ushare 3. opkg-link mount /mnt/winya-sys/ A csomagok frissítése (1) után telepítjük a külső tárhelyre (2), majd ezek után az opkglink szkript segítségével a program fájljait a megfelelő helyre linkeljük(3??). 1. config 'ushare' 2. option 'username' 'nobody' 3. option 'servername' 'OpenWrt' 4. option 'interface' 'br-lan' 5. option 'options' '' 6. option 'content_directories' '/mnt/hdd/share' 7. option 'disable_telnet' '1' 8. option 'disable_webif' '1' 9. option 'enabled' '1' Az 1. sorban kezdődik az ushare konfigurációja. A 6. sorban adjuk meg azt a mappát, ahol a multimédiás anyagok szerepelnek. A 9. sorban engedélyezzük a program futását. Érdemes egy saját indító szkriptet írni. A multimédiás programoknak nagy az erőforrásigényük, gyorsan megtelik a memória. Viszont amennyiben létrehozunk egy virtuális memóriaterületet, a rácsatlakoztatott merevlemezt felhasználva, akkor problémamentes lesz a lejátszás. A következő sorokat tartalmazó futtatható szkriptet hozzuk létre a /bin mappában. nano /bin/ushare-starter 1. #!/bin/sh /etc/rc.common 2. start() { 3. busybox mkswap /dev/sda3 4. busybox swapon /dev/sda3 5. /mnt/winya/etc/init.d/ushare start 6. } 7. stop() { 8. busybox swapoff /dev/sda3 9. /mnt/winya/etc/init.d/ushare stop 10. } A virtuális memória bekapcsolásához a külső merevlemezen szükséges egy swap 27

partíció. A 3. sorban hozzuk létre a virtuális memóriát, és a 4. sorban kapcsoljuk be. Ezek után az ushare-starter start parancsot végrehajtva elindul a DLNA szerver. Ekkor a routerre csatlakozott eszközök a belső hálózaton látják, ha rendelkeznek DLNA lejátszóval. A Microsoft Windows Media Player a 10. verziójától támogatja a DLNA szabványt. Az XBMC egy ingyenes és nagyon igényes DLNA lejátszó, amit akár önálló operációs rendszerként is lehet használni. [15] 5.2 Szükséges erőforrás. Érdemes figyelni az erőforrásra. A TP-LINK WR1043ND router képes full HD (1080p) videó továbbítására vezeték nélküli hálózaton szaggatás nélkül, viszont több sok erőforrást igénylő folyamat esetén az eszköz lefagy, és újraindul. Sok erőforrást igénylő szolgáltatások például: Adatmozgatás a routerre kötött külső merevlemezen. Olvasás vagy írás a megosztott tárhelyről. DLNA szerver (adatfolyam továbbítás) Webszerver (speciális funckiók esetén, amik például fájlműveleteket hajtanak végre) Folyamatos töltés internetről, például torrentezés. Tehát a sok erőforrást igénylő folyamatok közül érdemes mindig egyet futtatni, akkor biztosak lehetünk benne, hogy a router hibátlanul ellátja az alap funkcióit. Előfordulhat, hogy elfogy az erőforrás. Ekkor a rendszer újraindul, és betölti az alap rendszert, majd pár perc múlva minden program tökéletesen újra működik (azok, amelyek induláskor elindulnak). 6 EDAQ530 6. ábra EDAQ530 bemeneti csatlakozó Az EDAQ 530 egy kisméretű (4cm*7.8cm*2cm), 12 bites adatgyűjtő interfész. 5V feszültségről üzemel, így nem szükséges külső táplálás, az USB port biztosítja a megfelelő tápfeszültséget. Az USB kommunikáció FTDI (Future Technology Devices 28

International) chipen keresztül történik. Az eszköz csatlakoztatása után 5-10 másodperc telik el, amíg az eszköz készenléti állapotba lép. Három csatornán van lehetőségem feszültséget mérni. A 6. ábrán látható a szabványos csatoló.[16] Látható, hogy van egy tápláló csatlakozás, aminek a névleges értéke 5V, valós értéke 3.3 V körüli értéknek felel meg. A 12 bites eszköz felbontása: 5V/2 12 =5 V/4096=1.22 mv Az eszközzel feszültséget tudunk mérni, viszont így csak a feszültség alapú szenzorokat tudnánk használni, ezért a készítők beleépítettek egy funkciót, aminek a segítségével közvetetten lehet ellenállást mérni. Egy parancs elküldésével be lehet kapcsolni egy felhúzó ellenállást, aminek ismert a pontos értéke, így ki lehet számolni az ellenállást a mért feszültségből. 7. ábra Feszültségosztó kapcsolási rajza (1) (2) 29

Ahogy a képen is látható, ha számítógépre csatlakoztatjuk az eszközünkrt, akkor létrejön egy virtuális soros kommunikációs port (ha a megfelelő driverek telepítve vannak). Linux alatt /dev/ttyusb0 néven. Ezt a féle kommunikációt a Putty program segítségével tudjuk kipróbálni. 8. ábra FTDI kommunikációs port az eszközkezelőben A megfelelő paraméterek beállítása után képesek vagyunk kommunikálni az eszközzel. Ez a féle kommunikáció nagyon hasznos a fejlesztés kezdeti szakaszában. Például, ha elküldjük a @I parancsot, és utána többször elküldünk valamilyen karaktert, akkor a következő üzenetet kapjuk vissza. @IEDAQ530C (c) 30/06/2010 www.noise.physx.u-szeged.hu Ez a parancs az eszközbe épített, azonosításra szolgáló karaktersorozatot adja vissza. A parancs elküldése után minden elküldött karakter hatására kapunk egy darab karaktert. Tehát ahhoz, hogy visszakapjuk a teljes karaktersorozatot, a @I után el kell még küldenünk 53 karaktert. 30