Linux nelle schede embedded

3 replies [Ultimo contenuto]
carlinuxfce
Offline
Joined: 09/22/2008

 Ciao,

avete mai sentito parlare delle schede embedded? Bene tutti i nostri access point, router, cellulari e così via vengono chiamate con questo nome. Io come divertimento cerco di installare un firmware di nome Openwrt (crf. Wikipedia: "OpenWrt è un firmware basato su GNU/Linux specifico per dispositivi embedded basati su chipset Broadcom come i router Wi-Fi prodotti, ad esempio, da Asus, Belkin, Dell, Linksys, US Robotics e Viewsonic.") su vari access point, router o modem. Forse qualcuno di voi conosce il movimento FON, dove vari "Foneros" (persone) distribuiscono la loro linea adsl attraverso un access point Hot Spot. Bene sopra a quelle schede c'è una CPU, Ram e rom. Hanno processori da 180 mhz, con 8 mb di memoria flash e 16 mb di memoria ram. Questo è un breve riassunto di una mia passione :-) se a qualcuno vuole più informazioni si faccia sentire!

Ciao

Carlo Alberto

sirio81
Offline
Joined: 10/06/2008

Interessante questa cosa. Però mi spiazza un po' il concetto di "firmware basato su linux".
Un firmware è (dorebbe essere) un programma che svolge una specifica funzione senza avere alla base un sistema operativo. Ad esempio una chiavetta che legge gli mp3 (e magari anche gli ogg come la mia Cool) ha un firmware che funziona solo su quell'hardware.

Installare un linux embeded su un router significa poterlo amministrare con ipfilter (iptables).
Openwrt contiene anche un'interfaccia web di amministrazione oppure si fa tutto via bash?

Se una sera porti al lug un router già flashato con openwrt sarei curioso di darci un'occhiata.

Ciao!

carlinuxfce
Offline
Joined: 09/22/2008

Ciao questo tipo di firmware può essere gestito e modificato sia da web, ssh, telnet e ftp.  http://oldwiki.openwrt.org/TableOfHardware.html  qui c'è una lista dove mostrano su quali router/access point è stato testato Openwrt.

carlinuxfce
Offline
Joined: 09/22/2008

Ricapitoliamo!

Per chi non lo sapesse, OpenWrt non è altro che una distribuzione pensata apposta per rimpiazzare il firmware di router per connessioni senza fili con un sistema Gnu/Linux. Una volta installata, OpenWrt è completamente amministrabile attraverso un’interfaccia web. In più questa distro emebedded è dotata di un sistema di gestione dei pacchetti chiamato “ipkg” molto simile ad apt-get di Debian. Il Package manager (in prestito da OpenMoko) è  molto facile: ipkg update, ipkg list, ipkg install, ipkg remove.

Fissiamo ora la nostra attenzione su OpenWRT. In qualità di sviluppatore è possibile usare questo protocollo in sistemi di controllo industriali: piccoli robot, sensori di rete, soluzioni domotiche, sistemi VoIP, reti, sia cablate che wireless, e molto altro ancora. E’ possibile effettuare il download dell’immagine pre-compilata o effettuare la verifica dei codici sorgente tramite Subversion.

Per tradizione lo sviluppatore deve raccogliere da solo tutti gli elementi necessari, dai cross-compiler, al kernel o le patch, per poi costruirsi da solo il proprio embedded Linux. Un’altra complicazione da “mal di testa” è la verifica delle compatibilità tra le varie versioni.

Apparentemente OpenWRT ha un approccio molto più semplice. Usa Buildroot per rendere visibile all’utente (o sviluppatore) il processo di costruzione. Gli interessati possono fare riferimento alla pagina “'An introduction to Buildroot-ng”di OpenWRT.

Possiamo dunque riassumere l’intero processo nelle fasi:

    Download di OpenWRT (viene usato Subversion per la verifica del tutto)

    Costruzione della struttura della directory (la verifica delle sorgenti: toolchain, relativi target e package)

    Costruzione di OpenWRT (usando make menuconfig per la configurazione della propria distro e poi il comando “make”. Il “makefile” si riferisce solo ai processi “high-level”).

    Creazione dei pacchetti (usando definizioni di pacchetti “high-level” : saranno poi abilitati nel successivo “make menuconfig”

    Verifica degli errori (usare sempre “make v=99 per vedere le informazioni dettagliate durante il processo di costruzione)

    Salvare il firmware (aprire le web UI di Linksys per scaricare il firmware: potrebbe essere necessario modificare i primi bytes del firmware per effettuare il download).

L’ ultimo passo, quello del fissare il firmware sulla memoria flash, è quello più rischioso: una programmazione sbagliata farà inchiodare il vostro router. Prima di ciò leggete molto attentamente tutte le avvertenze ! Sarete altrimenti costretti a realizzare un cavo JTAG per effettuare il download del firmware.

Se tutto è filato liscio, avrete ora un router wireless con notevoli caratteristiche ed assai divertente ! Potrete accedere al router tramite web UI o tramite Telnet/SSH. Se disponete di sufficiente memoria flash (almeno 4 MB) è inoltre possibile effettuare il mount di un disco virtuale JFFS2 ed installare pacchetti extra o salvare altri contenuti sul router stesso. Naturalmente per raggiungere lo stesso scopo potrete aggiungere memoria esterna, ad esempio tramite periferiche di massa NFS, CIFS o USB.

Soluzioni per gli hot spot

Una soluzione completa per un hot spot con captive portal è composto da un Wireless Access Point, da un Access Controller (o Network Access Server), da un server di autenticazione (o da un server Radius per l’autenticazione, autorizzazione e accounting), da un server web e dal software necessario per amministrare il tutto. Un router wireless generalmente può fungere da WAP e da AC.

DD-WRT offre la maggior parte delle soluzioni per hot spot, tra cui: Sputnik, ChilliSpot, WiFidog, NoCatSplash. OpenWRT offre CoovaChilli ed altre soluzioni tramite l’ipkg manager.

La più comune soluzione completa adottata per un sistema hot spot è costituita da un sistemaOpenWRT/DDRT con firmware ChilliSpot, FreeRadius e LAMP. In ogni caso il progetto ChilliSpot è stato abbandonato dal suo autore, dunque gli interessati dovranno faticare ore senza avere il supporto ufficiale. Oltretutto credo che ChilliSpot sia più adatto per chi voglia costruire un sistema con un server centrale Radius per controllare più access point. Per un singolo access point, generalmente la soluzione più semplice consiste nel trovare un service provider in grado di fornire un accesso back-end onde agevolare il compito delle autorizzazioni ed autenticazioni. Nel caso si voglia creare un access point aperto allo scopo, ad esempio, di attirare clienti per il Vostro ristorante, NoCatSplash potrebbe essere la soluzione ottimale. Naturalmente sarà necessario creare una pagina HTML più attraente, da ospitare sul server web. La pagina creata per default è troppo semplice per risultare attrattiva verso i Vostri potenziali clienti: è formata dal solo pulsante “login”.

Ciao Ciao!

Carloalberto