July 20, 2016

Osnove OpenWrt-a (1. dio)

Osnove OpenWrt-a  (1. dio)

Pokrećem seriju članaka o osnovama OpenWrt sustava, u ovoj seriji članaka pisati ću o tome što je OpenWrt, za koga je napravljen, koje su mu mogućnosti i kako s njim napraviti neke zanimljive stvari.

Krenimo od počekta... Što je uopće OpenWrt ?

OpenWrt se najčešće opisuje kao Linux distribucija za embedded sustave, ili po .hr prijevodu, Linux distribucija za ugradive računalne sustave.

Pitanje koje se prirodno nameće - što su uopće ugradivi računalni sustavi?

Ugradivi računalni sustavi su uglavnom specilzirana minijaturna računala za dizajnirana za samo jednu funkciju ili svrhu, no također su dio većeg elektroničkog ili mehaničkog sustava. Npr moderni automobil ili avion je skup od jako puno samostalnih ugradivih računalnih sustava.

Da ne samo na suhoparnoj definiciju evo par primjera ugradivih računalnih sustava:

  • Perilica za rublje ili suđe
  • Cestovna signalizacija (semafori)
  • Mikrovalna pećnica
  • MP3 audio player
  • sustav za pogon na sva četiri točka u automobilima
  • ADSL modem
  • Wifi router

Što je Linux distribucija? Najgrublja definicija je Linux distrubucija = Linux jezgra + paketni sustav + softverski paket.

Detaljnije objašnjenje i ulaženje u sitnice nije cilj ovog članka, te koga više zanima treba samostalno nastaviti istraživanje na ovu temu pošto je pun internet.

OpenWrt koristi opkg za upravljanje paketima (instalaciju i uklanjanje dodatnog sofvera), te trenutno postoji oko 3500 dodatnih softverskih paketa za OpenWrt.

Nakon teoretskog uvoda bacimo se na prvi konkretan zadatak.

Ovaj zadatak pretpostavlja kako u ruci imate neki više desetaka wifi routera koje podržava OpenWrt. Ukoliko nemate otrčite do prve trgovine računalnim dijelovima (ili webshop-a) i kupite jedan od slijedećih uređaja:

  • GLiNet AR150 ili MT300A
  • TP-LINK WR842N, WR840N, WR841ND, u nuždi može i WR741ND ili neki sličan

Pretpostaviti ću da svi imate GLiNet AR150 router pa će neke upute biti specifične, no pazite kod preuzimanja datoteka, jer korištenje krive datoteke umjesto wifi routera dobiti ćete skup komad mrtve plastike.

OpenWrt ima tri različite verzije:

  • aktualna stabilna verzija (trenutno je to Chaos Calmer 15.05.01)
  • prethodna stabilna verzija (Barrier Breaker 14.07)
  • razvojna vezija, koja se svaki dan mijenja (trunk)

Preuzmite trunk verziju firmwarea za GL-AR150 i to datoteku koja završava na "squashfs-sysupgrade.bin"

Kroz web sučelje wifi routera pronađite opciju "upgrade firmware" i tamo učitajte pruzetu datoteku.

Slijedeći korak će biti instalirati osnovne pakete kako bismo dobili podršku za rad s temperaturnim senzorom.

Softverski alat koji koristimo za čitanje 1-wire senzora je digitemp. Digitemp koristi tehniku bit-banginga kako bi simulirao 1-wire protocol preko serijskog porta.

opkg update 
opkg install http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/oldpackages/digitemp_3.6.0-5_ar71xx.ipk

Također treba instalirati drivere za pl2303 usb to serial adapter:

opkg install kmod-usb-serial-pl2303

ili ako imate usb to serial adapter sa cp210x čipom:

opkg install kmod-usb-serial-cp210x

Nakon što je digitemp alat instaliran potrebno je pokrenuti naredbu za pretraživanje 1-wire sabirnice za senzorima. Svaki senzor ima unikatnu adresu preko koje mu se pristupa.

digitemp_DS9097 -s /dev/ttyUSB0 -i

I sada možete očitati temperaturu sa svog senzora:

 digitemp_DS9097 -a -q