Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

187
Il TecNode L’hardware Il software Linux ed i sistemi embedded per le reti Anatomia di un router wireless - Parte I - Andrea Tassi [email protected] 19 giugno 2008 Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

description

Incontro del TEC-lab tenuto il 19 giugno 2008 presso il Plesso Didattico di Viale Morgagni (Università degli Studi di Firenze)

Transcript of Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Page 1: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software

Linux ed i sistemi embedded per le retiAnatomia di un router wireless

- Parte I -

Andrea [email protected]

19 giugno 2008

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 2: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software

Questo documento e rilasciato con licenzaCreative Commons Attribution-NonCommercial-ShareAlike

ed e possibile: riprodurre, distribuire, comunicare, esporre, rappresentare, eseguire,recitare o modificare quest’opera.

Chi usufruisce del presente materiale e tenuto a: attribuirne la paternita (citandonome, cognome ed indirizzo e-mail degli autori), non usarlo per fini commerciali o

redistribuirlo, se modificato, solo con una licenza identica a questa.Maggiori informazioni sul tipo di licenza impiegata possono essere reperite all’indirizzo

http://creativecommons.org/licenses/by-nc-sa/2.5/legalcode.I marchi citati sono di proprieta delle rispettive aziende.

Gli autori declinano ogni responsabilita per gli eventuali danni arrecati a sistemi dallamessa in atto delle procedure qui contenute.

Si ricorda in oltre che tutte le operazioni volte alla modifica hardware e/o software didispositivi prodotti da terzi puo costituire una violazione del copyright ed invalidare la

garanzia del prodotto.

Queste slide sono state realizzate in LATEX.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 3: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software

1 Il TecNode

2 L’hardwareL’architetturaLa radioLa serialeRAM/FlashJTAG/GPIO

3 Il softwareIl sistema di bootstrapL’ambiente di sviluppo

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 4: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software

Progettazione del TecNode

L’obiettivo principale di quest’incontro e, oltre alla presentazione dialcuni concetti basilari riguardanti l’hardware ed il software deisistemi embedded, quello di fornire informazioni di caratterepratico che ci permettano di progettare un Access Point basato sulsistema operativo Linux.

Obiettivi progettuali del TecNode:

Tale apparato deve:

integrare i classici servizi di connettivita wired e wireless di unAccess Point

essere facilmente integrabile in un contesto di rete wirelessmesh

essere in grado di fungere da repeater per approntare pontiradio

basarsi sul sistema operativo Linux con Kernel 2.6.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 5: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software

Progettazione del TecNode

L’obiettivo principale di quest’incontro e, oltre alla presentazione dialcuni concetti basilari riguardanti l’hardware ed il software deisistemi embedded, quello di fornire informazioni di caratterepratico che ci permettano di progettare un Access Point basato sulsistema operativo Linux.

Obiettivi progettuali del TecNode:

Tale apparato deve:

integrare i classici servizi di connettivita wired e wireless di unAccess Point

essere facilmente integrabile in un contesto di rete wirelessmesh

essere in grado di fungere da repeater per approntare pontiradio

basarsi sul sistema operativo Linux con Kernel 2.6.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 6: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software

Progettazione del TecNode

L’obiettivo principale di quest’incontro e, oltre alla presentazione dialcuni concetti basilari riguardanti l’hardware ed il software deisistemi embedded, quello di fornire informazioni di caratterepratico che ci permettano di progettare un Access Point basato sulsistema operativo Linux.

Obiettivi progettuali del TecNode:

Tale apparato deve:

integrare i classici servizi di connettivita wired e wireless di unAccess Point

essere facilmente integrabile in un contesto di rete wirelessmesh

essere in grado di fungere da repeater per approntare pontiradio

basarsi sul sistema operativo Linux con Kernel 2.6.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 7: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software

Progettazione del TecNode

L’obiettivo principale di quest’incontro e, oltre alla presentazione dialcuni concetti basilari riguardanti l’hardware ed il software deisistemi embedded, quello di fornire informazioni di caratterepratico che ci permettano di progettare un Access Point basato sulsistema operativo Linux.

Obiettivi progettuali del TecNode:

Tale apparato deve:

integrare i classici servizi di connettivita wired e wireless di unAccess Point

essere facilmente integrabile in un contesto di rete wirelessmesh

essere in grado di fungere da repeater per approntare pontiradio

basarsi sul sistema operativo Linux con Kernel 2.6.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 8: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software

Progettazione del TecNode

L’obiettivo principale di quest’incontro e, oltre alla presentazione dialcuni concetti basilari riguardanti l’hardware ed il software deisistemi embedded, quello di fornire informazioni di caratterepratico che ci permettano di progettare un Access Point basato sulsistema operativo Linux.

Obiettivi progettuali del TecNode:

Tale apparato deve:

integrare i classici servizi di connettivita wired e wireless di unAccess Point

essere facilmente integrabile in un contesto di rete wirelessmesh

essere in grado di fungere da repeater per approntare pontiradio

basarsi sul sistema operativo Linux con Kernel 2.6.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 9: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

L’hardware

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 10: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point (1/3)

Gli Access Point, i lettori MP3 o i controllori di un forno amicroonde integrano al loro interno degli elaboratori appartenentialla classe dei sistema embedded ; dare una definizione puntuale ditale classe non e cosa facile, proviamo tuttavia a proporne una.

Cos’e un sistema embedded?

In generale si tratta di un computer altamente specializzato: conuna rosa di funzionalita contenuta e focalizzata su di un certoambito, ed es.: un AP integrera una serie di servizi per ilnetworking wireless e wired. Tali sistemi dispongo di un hardwarenon espandibile.

Molti produttori indicano con l’acronimo SBC (Single BoardComputer) quei sistemi embedded che constano di un’unicascheda: su di essa viene saldata la CPU, l’apparato radio, i socketminiPCI, ecc.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 11: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point (1/3)

Gli Access Point, i lettori MP3 o i controllori di un forno amicroonde integrano al loro interno degli elaboratori appartenentialla classe dei sistema embedded ; dare una definizione puntuale ditale classe non e cosa facile, proviamo tuttavia a proporne una.

Cos’e un sistema embedded?

In generale si tratta di un computer altamente specializzato: conuna rosa di funzionalita contenuta e focalizzata su di un certoambito, ed es.: un AP integrera una serie di servizi per ilnetworking wireless e wired. Tali sistemi dispongo di un hardwarenon espandibile.

Molti produttori indicano con l’acronimo SBC (Single BoardComputer) quei sistemi embedded che constano di un’unicascheda: su di essa viene saldata la CPU, l’apparato radio, i socketminiPCI, ecc.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 12: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point (1/3)

Gli Access Point, i lettori MP3 o i controllori di un forno amicroonde integrano al loro interno degli elaboratori appartenentialla classe dei sistema embedded ; dare una definizione puntuale ditale classe non e cosa facile, proviamo tuttavia a proporne una.

Cos’e un sistema embedded?

In generale si tratta di un computer altamente specializzato: conuna rosa di funzionalita contenuta e focalizzata su di un certoambito, ed es.: un AP integrera una serie di servizi per ilnetworking wireless e wired. Tali sistemi dispongo di un hardwarenon espandibile.

Molti produttori indicano con l’acronimo SBC (Single BoardComputer) quei sistemi embedded che constano di un’unicascheda: su di essa viene saldata la CPU, l’apparato radio, i socketminiPCI, ecc.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 13: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point (2/3)

Ad es. ecco l’SBC chiamato LSX prodotto dalla Ubiquiti Networks.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 14: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point (3/3)

Consiglio n. 1

La prima cosa da fare con un SBC, prima di mettere le mani sulsoftware, e quella di reperire alcune informazioni basilari legateall’hardware. Sarebbe opportuno identificare le principalicomponenti hardware presenti sul circuito semplicementeosservandolo.

Informazioni essenziali da reperire:

il tipo di processore

il tipo di chipset WiFi

la presenza o menodell’interfaccia seriale

le dimensioni della RAM

le dimensioni della flash

Informazioni opzionali da reperire:

la presenza o menodell’interfaccia JTAG

la presenza o meno diinterfacce GPIO

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 15: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point (3/3)

Consiglio n. 1

La prima cosa da fare con un SBC, prima di mettere le mani sulsoftware, e quella di reperire alcune informazioni basilari legateall’hardware. Sarebbe opportuno identificare le principalicomponenti hardware presenti sul circuito semplicementeosservandolo.

Informazioni essenziali da reperire:

il tipo di processore

il tipo di chipset WiFi

la presenza o menodell’interfaccia seriale

le dimensioni della RAM

le dimensioni della flash

Informazioni opzionali da reperire:

la presenza o menodell’interfaccia JTAG

la presenza o meno diinterfacce GPIO

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 16: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point (3/3)

Consiglio n. 1

La prima cosa da fare con un SBC, prima di mettere le mani sulsoftware, e quella di reperire alcune informazioni basilari legateall’hardware. Sarebbe opportuno identificare le principalicomponenti hardware presenti sul circuito semplicementeosservandolo.

Informazioni essenziali da reperire:

il tipo di processore

il tipo di chipset WiFi

la presenza o menodell’interfaccia seriale

le dimensioni della RAM

le dimensioni della flash

Informazioni opzionali da reperire:

la presenza o menodell’interfaccia JTAG

la presenza o meno diinterfacce GPIO

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 17: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point (3/3)

Consiglio n. 1

La prima cosa da fare con un SBC, prima di mettere le mani sulsoftware, e quella di reperire alcune informazioni basilari legateall’hardware. Sarebbe opportuno identificare le principalicomponenti hardware presenti sul circuito semplicementeosservandolo.

Informazioni essenziali da reperire:

il tipo di processore

il tipo di chipset WiFi

la presenza o menodell’interfaccia seriale

le dimensioni della RAM

le dimensioni della flash

Informazioni opzionali da reperire:

la presenza o menodell’interfaccia JTAG

la presenza o meno diinterfacce GPIO

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 18: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point (3/3)

Consiglio n. 1

La prima cosa da fare con un SBC, prima di mettere le mani sulsoftware, e quella di reperire alcune informazioni basilari legateall’hardware. Sarebbe opportuno identificare le principalicomponenti hardware presenti sul circuito semplicementeosservandolo.

Informazioni essenziali da reperire:

il tipo di processore

il tipo di chipset WiFi

la presenza o menodell’interfaccia seriale

le dimensioni della RAM

le dimensioni della flash

Informazioni opzionali da reperire:

la presenza o menodell’interfaccia JTAG

la presenza o meno diinterfacce GPIO

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 19: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point (3/3)

Consiglio n. 1

La prima cosa da fare con un SBC, prima di mettere le mani sulsoftware, e quella di reperire alcune informazioni basilari legateall’hardware. Sarebbe opportuno identificare le principalicomponenti hardware presenti sul circuito semplicementeosservandolo.

Informazioni essenziali da reperire:

il tipo di processore

il tipo di chipset WiFi

la presenza o menodell’interfaccia seriale

le dimensioni della RAM

le dimensioni della flash

Informazioni opzionali da reperire:

la presenza o menodell’interfaccia JTAG

la presenza o meno diinterfacce GPIO

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 20: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point (3/3)

Consiglio n. 1

La prima cosa da fare con un SBC, prima di mettere le mani sulsoftware, e quella di reperire alcune informazioni basilari legateall’hardware. Sarebbe opportuno identificare le principalicomponenti hardware presenti sul circuito semplicementeosservandolo.

Informazioni essenziali da reperire:

il tipo di processore

il tipo di chipset WiFi

la presenza o menodell’interfaccia seriale

le dimensioni della RAM

le dimensioni della flash

Informazioni opzionali da reperire:

la presenza o menodell’interfaccia JTAG

la presenza o meno diinterfacce GPIO

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 21: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point (3/3)

Consiglio n. 1

La prima cosa da fare con un SBC, prima di mettere le mani sulsoftware, e quella di reperire alcune informazioni basilari legateall’hardware. Sarebbe opportuno identificare le principalicomponenti hardware presenti sul circuito semplicementeosservandolo.

Informazioni essenziali da reperire:

il tipo di processore

il tipo di chipset WiFi

la presenza o menodell’interfaccia seriale

le dimensioni della RAM

le dimensioni della flash

Informazioni opzionali da reperire:

la presenza o menodell’interfaccia JTAG

la presenza o meno diinterfacce GPIO

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 22: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura

Nei PC siamo abituati ad usare processori Intel o AMD a 32/64 bitdalle prestazioni eccezionali; quello pero a cui non facciamo quasipiu caso e al tipo di architettura su cui lavoriamo: viene cioenaturale fare riferimento a CPU appartenenti alla famiglia x86. Peri sistemi embedded questo assunto non si verifica praticamentemai.Le architetture maggiormente impiegate negli SBC sono leseguenti:

x86 ARM MIPS

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 23: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - x86 (1/2)

I processori appartenenti alla prima famiglia sono impiegati inapparati industriali dai compiti particolari (ad es. in macchinari acontrollo numerico o in strumentazioni militari). In generale siadoperano in tutti quei casi in cui e richiesto l’uso di softwareproprietario prodotto solo per architetture x86.I pro ed i contro che si hanno nell’uso di processori x86 possonoessere cosı riassunti:

PRO:

di fatto si ha un PC di ridottedimensioni anziche undispositivo embedded

il sistema su cui si sviluppa etesta il software haverosimilmente la stessaarchitettura.

CONTRO:

in genere il loro consumoenergetico e superiore a quellodi un processore ARM o MIPS

di solito necessitano di unBIOS ed un bootloaderseparati, non impiegandosistemi di bootstrap evoluti.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 24: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - x86 (1/2)

I processori appartenenti alla prima famiglia sono impiegati inapparati industriali dai compiti particolari (ad es. in macchinari acontrollo numerico o in strumentazioni militari). In generale siadoperano in tutti quei casi in cui e richiesto l’uso di softwareproprietario prodotto solo per architetture x86.I pro ed i contro che si hanno nell’uso di processori x86 possonoessere cosı riassunti:

PRO:

di fatto si ha un PC di ridottedimensioni anziche undispositivo embedded

il sistema su cui si sviluppa etesta il software haverosimilmente la stessaarchitettura.

CONTRO:

in genere il loro consumoenergetico e superiore a quellodi un processore ARM o MIPS

di solito necessitano di unBIOS ed un bootloaderseparati, non impiegandosistemi di bootstrap evoluti.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 25: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - x86 (1/2)

I processori appartenenti alla prima famiglia sono impiegati inapparati industriali dai compiti particolari (ad es. in macchinari acontrollo numerico o in strumentazioni militari). In generale siadoperano in tutti quei casi in cui e richiesto l’uso di softwareproprietario prodotto solo per architetture x86.I pro ed i contro che si hanno nell’uso di processori x86 possonoessere cosı riassunti:

PRO:

di fatto si ha un PC di ridottedimensioni anziche undispositivo embedded

il sistema su cui si sviluppa etesta il software haverosimilmente la stessaarchitettura.

CONTRO:

in genere il loro consumoenergetico e superiore a quellodi un processore ARM o MIPS

di solito necessitano di unBIOS ed un bootloaderseparati, non impiegandosistemi di bootstrap evoluti.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 26: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - x86 (1/2)

I processori appartenenti alla prima famiglia sono impiegati inapparati industriali dai compiti particolari (ad es. in macchinari acontrollo numerico o in strumentazioni militari). In generale siadoperano in tutti quei casi in cui e richiesto l’uso di softwareproprietario prodotto solo per architetture x86.I pro ed i contro che si hanno nell’uso di processori x86 possonoessere cosı riassunti:

PRO:

di fatto si ha un PC di ridottedimensioni anziche undispositivo embedded

il sistema su cui si sviluppa etesta il software haverosimilmente la stessaarchitettura.

CONTRO:

in genere il loro consumoenergetico e superiore a quellodi un processore ARM o MIPS

di solito necessitano di unBIOS ed un bootloaderseparati, non impiegandosistemi di bootstrap evoluti.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 27: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - x86 (1/2)

I processori appartenenti alla prima famiglia sono impiegati inapparati industriali dai compiti particolari (ad es. in macchinari acontrollo numerico o in strumentazioni militari). In generale siadoperano in tutti quei casi in cui e richiesto l’uso di softwareproprietario prodotto solo per architetture x86.I pro ed i contro che si hanno nell’uso di processori x86 possonoessere cosı riassunti:

PRO:

di fatto si ha un PC di ridottedimensioni anziche undispositivo embedded

il sistema su cui si sviluppa etesta il software haverosimilmente la stessaarchitettura.

CONTRO:

in genere il loro consumoenergetico e superiore a quellodi un processore ARM o MIPS

di solito necessitano di unBIOS ed un bootloaderseparati, non impiegandosistemi di bootstrap evoluti.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 28: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - x86 (2/2)

A titolo d’esempio di consideri il NAS 7800 prodotto dalla VIATechnologies.

Specifiche salienti:

Processore Via C7a 1.5GHz

Dispone di unsocket DIMM eCompact Flash

Scheda graficaintegrata

Presenza di porteUSB, SATA, ecc.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 29: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - x86 (2/2)

A titolo d’esempio di consideri il NAS 7800 prodotto dalla VIATechnologies.

Specifiche salienti:

Processore Via C7a 1.5GHz

Dispone di unsocket DIMM eCompact Flash

Scheda graficaintegrata

Presenza di porteUSB, SATA, ecc.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 30: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - x86 (2/2)

A titolo d’esempio di consideri il NAS 7800 prodotto dalla VIATechnologies.

Specifiche salienti:

Processore Via C7a 1.5GHz

Dispone di unsocket DIMM eCompact Flash

Scheda graficaintegrata

Presenza di porteUSB, SATA, ecc.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 31: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - x86 (2/2)

A titolo d’esempio di consideri il NAS 7800 prodotto dalla VIATechnologies.

Specifiche salienti:

Processore Via C7a 1.5GHz

Dispone di unsocket DIMM eCompact Flash

Scheda graficaintegrata

Presenza di porteUSB, SATA, ecc.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 32: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - x86 (2/2)

A titolo d’esempio di consideri il NAS 7800 prodotto dalla VIATechnologies.

Specifiche salienti:

Processore Via C7a 1.5GHz

Dispone di unsocket DIMM eCompact Flash

Scheda graficaintegrata

Presenza di porteUSB, SATA, ecc.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 33: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - ARM (1/2)

Un’importante famiglia di processori e quella degli ARM(Advanced RISC Machine), prodotta inizialmente dalla ARMLimited a partire dal 1983, dopo varie evoluzioni si e arrivati oggialla classe di processori IXP4xx sviluppata dalla Intel. Di seguito siriporta lo schema delle aree funzionali del processore IXP425:

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 34: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - ARM (1/2)

Un’importante famiglia di processori e quella degli ARM(Advanced RISC Machine), prodotta inizialmente dalla ARMLimited a partire dal 1983, dopo varie evoluzioni si e arrivati oggialla classe di processori IXP4xx sviluppata dalla Intel. Di seguito siriporta lo schema delle aree funzionali del processore IXP425:

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 35: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - ARM (2/2)

I pro ed i contro che si hanno nell’uso di processori ARM possonoessere cosı riassunti:

PRO:

i processori ARM hanno unconsumo energetico moltobasso: sono impiegati infatti indispositivi portatili come iPod,iPhone, ecc.

il produttore integra all’internodel processore hardware incondizioni normali non vitroveremmo: come ad esempioil due controllori ethernet (nelloschema indicati con NPE A eB).

CONTRO:

il bugfixing e la compilazionedel codice non sempre eagevole (si sviluppa su x86 e dicompila per ARM)

l’Intel non produce piu gli IXP;questo puo essere fonte diproblemi in linee di sviluppo daavviare o gia avviate.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 36: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - ARM (2/2)

I pro ed i contro che si hanno nell’uso di processori ARM possonoessere cosı riassunti:

PRO:

i processori ARM hanno unconsumo energetico moltobasso: sono impiegati infatti indispositivi portatili come iPod,iPhone, ecc.

il produttore integra all’internodel processore hardware incondizioni normali non vitroveremmo: come ad esempioil due controllori ethernet (nelloschema indicati con NPE A eB).

CONTRO:

il bugfixing e la compilazionedel codice non sempre eagevole (si sviluppa su x86 e dicompila per ARM)

l’Intel non produce piu gli IXP;questo puo essere fonte diproblemi in linee di sviluppo daavviare o gia avviate.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 37: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - ARM (2/2)

I pro ed i contro che si hanno nell’uso di processori ARM possonoessere cosı riassunti:

PRO:

i processori ARM hanno unconsumo energetico moltobasso: sono impiegati infatti indispositivi portatili come iPod,iPhone, ecc.

il produttore integra all’internodel processore hardware incondizioni normali non vitroveremmo: come ad esempioil due controllori ethernet (nelloschema indicati con NPE A eB).

CONTRO:

il bugfixing e la compilazionedel codice non sempre eagevole (si sviluppa su x86 e dicompila per ARM)

l’Intel non produce piu gli IXP;questo puo essere fonte diproblemi in linee di sviluppo daavviare o gia avviate.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 38: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - ARM (2/2)

I pro ed i contro che si hanno nell’uso di processori ARM possonoessere cosı riassunti:

PRO:

i processori ARM hanno unconsumo energetico moltobasso: sono impiegati infatti indispositivi portatili come iPod,iPhone, ecc.

il produttore integra all’internodel processore hardware incondizioni normali non vitroveremmo: come ad esempioil due controllori ethernet (nelloschema indicati con NPE A eB).

CONTRO:

il bugfixing e la compilazionedel codice non sempre eagevole (si sviluppa su x86 e dicompila per ARM)

l’Intel non produce piu gli IXP;questo puo essere fonte diproblemi in linee di sviluppo daavviare o gia avviate.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 39: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - MIPS (1/3)

L’ultima famiglia e quella dei processori MIPS (Microprocessorwithout Interlocked Pipeline Stages) inizialmente sviluppati dallaMIPS Computer Systems Inc. a partire dal 1981. Come gli ARM iMIPS hanno subito una fruttuosa evoluzione che li ha portati adessere usati in una notevole quantita di dispositivi embedded dagliusi piu disparati, come ad esempio: la PlayStation Portable o ilfamoso router wireless Linksys WRT54GL.I processori MIPS maggiormente impiegati sono il 4Kc ed il 5Kc.Si noti che questi modelli hanno avuto (e ancora oggi hanno) unenorme successo poiche i core sono stati progettati per esserefacilmente connessi ad una ricca serie di periferiche di I/O.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 40: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - MIPS (1/3)

L’ultima famiglia e quella dei processori MIPS (Microprocessorwithout Interlocked Pipeline Stages) inizialmente sviluppati dallaMIPS Computer Systems Inc. a partire dal 1981. Come gli ARM iMIPS hanno subito una fruttuosa evoluzione che li ha portati adessere usati in una notevole quantita di dispositivi embedded dagliusi piu disparati, come ad esempio: la PlayStation Portable o ilfamoso router wireless Linksys WRT54GL.I processori MIPS maggiormente impiegati sono il 4Kc ed il 5Kc.Si noti che questi modelli hanno avuto (e ancora oggi hanno) unenorme successo poiche i core sono stati progettati per esserefacilmente connessi ad una ricca serie di periferiche di I/O.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 41: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - MIPS (2/3)

Un esempio lampante dellepotenzialita dell’architettura 4Kc e ilprocessore AR2315, prodotto dallaAtheros. Nello schema riportato afianco si nota che questo integraperiferiche molto evolute: come uncontroller ethernet ed un chipsetwireless direttamente nella CPU.La Fonera, ad es., impiega proprioquesto tipo di processore.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 42: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - MIPS (3/3)

I pro ed i contro che si hanno nell’uso di processori MIPS possonoessere cosı riassunti:

PRO:

i processori MIPS 4Kc e 5Kcpossono essere integrati in chipche realizzano funzionalita piucomplesse.

hanno una struttura moltolineare che si riflette sullasemplicita delle istruzioniassembly

CONTRO:

il bugfixing e la compilazionedel codice non sempre eagevole (si sviluppa su x86 e dicompila per MIPS)

non sempre tutto il softwareproprietario viene distribuitoper processori MIPS.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 43: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - MIPS (3/3)

I pro ed i contro che si hanno nell’uso di processori MIPS possonoessere cosı riassunti:

PRO:

i processori MIPS 4Kc e 5Kcpossono essere integrati in chipche realizzano funzionalita piucomplesse.

hanno una struttura moltolineare che si riflette sullasemplicita delle istruzioniassembly

CONTRO:

il bugfixing e la compilazionedel codice non sempre eagevole (si sviluppa su x86 e dicompila per MIPS)

non sempre tutto il softwareproprietario viene distribuitoper processori MIPS.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 44: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - MIPS (3/3)

I pro ed i contro che si hanno nell’uso di processori MIPS possonoessere cosı riassunti:

PRO:

i processori MIPS 4Kc e 5Kcpossono essere integrati in chipche realizzano funzionalita piucomplesse.

hanno una struttura moltolineare che si riflette sullasemplicita delle istruzioniassembly

CONTRO:

il bugfixing e la compilazionedel codice non sempre eagevole (si sviluppa su x86 e dicompila per MIPS)

non sempre tutto il softwareproprietario viene distribuitoper processori MIPS.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 45: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. L’architettura - MIPS (3/3)

I pro ed i contro che si hanno nell’uso di processori MIPS possonoessere cosı riassunti:

PRO:

i processori MIPS 4Kc e 5Kcpossono essere integrati in chipche realizzano funzionalita piucomplesse.

hanno una struttura moltolineare che si riflette sullasemplicita delle istruzioniassembly

CONTRO:

il bugfixing e la compilazionedel codice non sempre eagevole (si sviluppa su x86 e dicompila per MIPS)

non sempre tutto il softwareproprietario viene distribuitoper processori MIPS.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 46: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La radio

La parte essenziale di un AP e l’apparato radio e com’e ovvio neesistono di varie tipologie.Dando per scontato che lavoreremo unicamente con reti instandard IEEE802.11a/b/g, si deve tenere presente che: produttoridiversi, in linea di massima, realizzano radio che si controllano consoftware diverso. Tale frattura e data unicamente dal fatto che nontutte le aziende produttrici impiegano chipset WiFi della stessafamiglia!

Consiglio n. 2

Prima di scrivere una sola riga di codice scegliere con qualefamiglia di chipset wireless lavorare.

Ad oggi la parte del leone nel mercato dei chipset e fatta da duegrossi produttori: la Broadcom Corporation e la AtherosCommunications.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 47: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La radio

La parte essenziale di un AP e l’apparato radio e com’e ovvio neesistono di varie tipologie.Dando per scontato che lavoreremo unicamente con reti instandard IEEE802.11a/b/g, si deve tenere presente che: produttoridiversi, in linea di massima, realizzano radio che si controllano consoftware diverso. Tale frattura e data unicamente dal fatto che nontutte le aziende produttrici impiegano chipset WiFi della stessafamiglia!

Consiglio n. 2

Prima di scrivere una sola riga di codice scegliere con qualefamiglia di chipset wireless lavorare.

Ad oggi la parte del leone nel mercato dei chipset e fatta da duegrossi produttori: la Broadcom Corporation e la AtherosCommunications.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 48: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La radio

La parte essenziale di un AP e l’apparato radio e com’e ovvio neesistono di varie tipologie.Dando per scontato che lavoreremo unicamente con reti instandard IEEE802.11a/b/g, si deve tenere presente che: produttoridiversi, in linea di massima, realizzano radio che si controllano consoftware diverso. Tale frattura e data unicamente dal fatto che nontutte le aziende produttrici impiegano chipset WiFi della stessafamiglia!

Consiglio n. 2

Prima di scrivere una sola riga di codice scegliere con qualefamiglia di chipset wireless lavorare.

Ad oggi la parte del leone nel mercato dei chipset e fatta da duegrossi produttori: la Broadcom Corporation e la AtherosCommunications.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 49: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La radio - Broadcom

La scelta in questo campo, oltre ad essere gia ristretta, epraticamente obbligata: i chipset Broadcom sono controllabili alivello accettabile dal sistema operativo Linux solo impiegando unKernel 2.4.Questa pesante limitazione nasce dal fatto che il produttore delchipset rilascia solo il binario (sotto forma di codice oggetto) del“programma” che controlla fisicamente l’apparato radio a bassolivello. Il file oggetto e stato integrato, da parte della comunitaOpen Source, in un driver dal codice aperto non superando pero lalimitazione legata all’incompatibilita con il Kernel 2.6.Se siamo quindi intenzionati ad impiegare radio con chipsetBroadcom, ad oggi, e necessario mettere in piedi una linea disviluppo basata sul Kernel 2.4 con tutti i disagi che questa sceltacomporta.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 50: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La radio - Broadcom

La scelta in questo campo, oltre ad essere gia ristretta, epraticamente obbligata: i chipset Broadcom sono controllabili alivello accettabile dal sistema operativo Linux solo impiegando unKernel 2.4.Questa pesante limitazione nasce dal fatto che il produttore delchipset rilascia solo il binario (sotto forma di codice oggetto) del“programma” che controlla fisicamente l’apparato radio a bassolivello. Il file oggetto e stato integrato, da parte della comunitaOpen Source, in un driver dal codice aperto non superando pero lalimitazione legata all’incompatibilita con il Kernel 2.6.Se siamo quindi intenzionati ad impiegare radio con chipsetBroadcom, ad oggi, e necessario mettere in piedi una linea disviluppo basata sul Kernel 2.4 con tutti i disagi che questa sceltacomporta.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 51: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La radio - Broadcom

La scelta in questo campo, oltre ad essere gia ristretta, epraticamente obbligata: i chipset Broadcom sono controllabili alivello accettabile dal sistema operativo Linux solo impiegando unKernel 2.4.Questa pesante limitazione nasce dal fatto che il produttore delchipset rilascia solo il binario (sotto forma di codice oggetto) del“programma” che controlla fisicamente l’apparato radio a bassolivello. Il file oggetto e stato integrato, da parte della comunitaOpen Source, in un driver dal codice aperto non superando pero lalimitazione legata all’incompatibilita con il Kernel 2.6.Se siamo quindi intenzionati ad impiegare radio con chipsetBroadcom, ad oggi, e necessario mettere in piedi una linea disviluppo basata sul Kernel 2.4 con tutti i disagi che questa sceltacomporta.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 52: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La radio - Atheros

La Atheros invece, grazie al forte legame con la comunita OpenSource, ha visto crescere la sua fetta di mercato producendo da unlato hardware sempre piu innovativo e dall’altro supportando losviluppo del driver MadWiFi.Probabilmente MadWiFi e il driver Linux piu evoluto per ilnetworking wireless offrendo una ricca rosa di settaggi applicabilimediante tool realizzati ad hoc. Ad onor del vero anch’esso si basasu di un layer di gestione hardware di basso livello distribuito sottoforma di codice oggetto dalla Atheros. Recentemente pero einiziato il progetto ath5k che ha come obiettivo quello di scrivereun gestore hardware dal codice completamente aperto.La Fonera, and es., integra nella propria CPU un chipsetAtheros!

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 53: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La radio - Atheros

La Atheros invece, grazie al forte legame con la comunita OpenSource, ha visto crescere la sua fetta di mercato producendo da unlato hardware sempre piu innovativo e dall’altro supportando losviluppo del driver MadWiFi.Probabilmente MadWiFi e il driver Linux piu evoluto per ilnetworking wireless offrendo una ricca rosa di settaggi applicabilimediante tool realizzati ad hoc. Ad onor del vero anch’esso si basasu di un layer di gestione hardware di basso livello distribuito sottoforma di codice oggetto dalla Atheros. Recentemente pero einiziato il progetto ath5k che ha come obiettivo quello di scrivereun gestore hardware dal codice completamente aperto.La Fonera, and es., integra nella propria CPU un chipsetAtheros!

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 54: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La radio - Atheros

La Atheros invece, grazie al forte legame con la comunita OpenSource, ha visto crescere la sua fetta di mercato producendo da unlato hardware sempre piu innovativo e dall’altro supportando losviluppo del driver MadWiFi.Probabilmente MadWiFi e il driver Linux piu evoluto per ilnetworking wireless offrendo una ricca rosa di settaggi applicabilimediante tool realizzati ad hoc. Ad onor del vero anch’esso si basasu di un layer di gestione hardware di basso livello distribuito sottoforma di codice oggetto dalla Atheros. Recentemente pero einiziato il progetto ath5k che ha come obiettivo quello di scrivereun gestore hardware dal codice completamente aperto.La Fonera, and es., integra nella propria CPU un chipsetAtheros!

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 55: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (1/6)

In genere un SBC non prevede un’interfaccia VGA a cui collegareun monitor od una porta PS2 per connettervi una tastiera. L’unicomodo di collegarvi periferiche di tale tenore ad es. per vedere lasequenza d’avvio del sistema (o programmarlo) e l’interfacciaseriale.

Consiglio n. 3

Non avventurarsi in nessuna modifica o riprogrammazione delsoftware di un SBC senza prima aver approntato una connessioneseriale funzionante e stabile con un PC.

Certi produttori non mettono a disposizione sull’SBC una portaDB9 adattata per la comunicazione con un PC ma posizionano sulcircuito di solito quattro pin con cui interfacciarsi. Dobbiamoquindi costruirci un adattatore seriale!

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 56: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (1/6)

In genere un SBC non prevede un’interfaccia VGA a cui collegareun monitor od una porta PS2 per connettervi una tastiera. L’unicomodo di collegarvi periferiche di tale tenore ad es. per vedere lasequenza d’avvio del sistema (o programmarlo) e l’interfacciaseriale.

Consiglio n. 3

Non avventurarsi in nessuna modifica o riprogrammazione delsoftware di un SBC senza prima aver approntato una connessioneseriale funzionante e stabile con un PC.

Certi produttori non mettono a disposizione sull’SBC una portaDB9 adattata per la comunicazione con un PC ma posizionano sulcircuito di solito quattro pin con cui interfacciarsi. Dobbiamoquindi costruirci un adattatore seriale!

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 57: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (1/6)

In genere un SBC non prevede un’interfaccia VGA a cui collegareun monitor od una porta PS2 per connettervi una tastiera. L’unicomodo di collegarvi periferiche di tale tenore ad es. per vedere lasequenza d’avvio del sistema (o programmarlo) e l’interfacciaseriale.

Consiglio n. 3

Non avventurarsi in nessuna modifica o riprogrammazione delsoftware di un SBC senza prima aver approntato una connessioneseriale funzionante e stabile con un PC.

Certi produttori non mettono a disposizione sull’SBC una portaDB9 adattata per la comunicazione con un PC ma posizionano sulcircuito di solito quattro pin con cui interfacciarsi. Dobbiamoquindi costruirci un adattatore seriale!

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 58: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (2/6)

L’adattatore costa meno di 5 euro (se autocostruito) e serve arendere compatibili i livelli di tensione della seriale on board (cheopera a 3,3V) con quelli richiesti da un PC (a 10,8V):

Materiale necessario:

un saldatore a stagno, dello stagno e del filo di rame dalla sezione fine

1 x basetta millefori di piccole dimensioni

1 x connettore seriale femmina a nove poli da circuito

1 x zoccolo per integrati a 16 pin

1 x MAX3232 (prodotto dalla Maxim Integrated Productshttp://www.maxim-ic.com)

4 x condensatori (elettrolitici) da 1µF

1 x condensatore (elettrolitico) da 10µF

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 59: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (2/6)

L’adattatore costa meno di 5 euro (se autocostruito) e serve arendere compatibili i livelli di tensione della seriale on board (cheopera a 3,3V) con quelli richiesti da un PC (a 10,8V):

Materiale necessario:

un saldatore a stagno, dello stagno e del filo di rame dalla sezione fine

1 x basetta millefori di piccole dimensioni

1 x connettore seriale femmina a nove poli da circuito

1 x zoccolo per integrati a 16 pin

1 x MAX3232 (prodotto dalla Maxim Integrated Productshttp://www.maxim-ic.com)

4 x condensatori (elettrolitici) da 1µF

1 x condensatore (elettrolitico) da 10µF

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 60: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (2/6)

L’adattatore costa meno di 5 euro (se autocostruito) e serve arendere compatibili i livelli di tensione della seriale on board (cheopera a 3,3V) con quelli richiesti da un PC (a 10,8V):

Materiale necessario:

un saldatore a stagno, dello stagno e del filo di rame dalla sezione fine

1 x basetta millefori di piccole dimensioni

1 x connettore seriale femmina a nove poli da circuito

1 x zoccolo per integrati a 16 pin

1 x MAX3232 (prodotto dalla Maxim Integrated Productshttp://www.maxim-ic.com)

4 x condensatori (elettrolitici) da 1µF

1 x condensatore (elettrolitico) da 10µF

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 61: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (2/6)

L’adattatore costa meno di 5 euro (se autocostruito) e serve arendere compatibili i livelli di tensione della seriale on board (cheopera a 3,3V) con quelli richiesti da un PC (a 10,8V):

Materiale necessario:

un saldatore a stagno, dello stagno e del filo di rame dalla sezione fine

1 x basetta millefori di piccole dimensioni

1 x connettore seriale femmina a nove poli da circuito

1 x zoccolo per integrati a 16 pin

1 x MAX3232 (prodotto dalla Maxim Integrated Productshttp://www.maxim-ic.com)

4 x condensatori (elettrolitici) da 1µF

1 x condensatore (elettrolitico) da 10µF

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 62: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (2/6)

L’adattatore costa meno di 5 euro (se autocostruito) e serve arendere compatibili i livelli di tensione della seriale on board (cheopera a 3,3V) con quelli richiesti da un PC (a 10,8V):

Materiale necessario:

un saldatore a stagno, dello stagno e del filo di rame dalla sezione fine

1 x basetta millefori di piccole dimensioni

1 x connettore seriale femmina a nove poli da circuito

1 x zoccolo per integrati a 16 pin

1 x MAX3232 (prodotto dalla Maxim Integrated Productshttp://www.maxim-ic.com)

4 x condensatori (elettrolitici) da 1µF

1 x condensatore (elettrolitico) da 10µF

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 63: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (2/6)

L’adattatore costa meno di 5 euro (se autocostruito) e serve arendere compatibili i livelli di tensione della seriale on board (cheopera a 3,3V) con quelli richiesti da un PC (a 10,8V):

Materiale necessario:

un saldatore a stagno, dello stagno e del filo di rame dalla sezione fine

1 x basetta millefori di piccole dimensioni

1 x connettore seriale femmina a nove poli da circuito

1 x zoccolo per integrati a 16 pin

1 x MAX3232 (prodotto dalla Maxim Integrated Productshttp://www.maxim-ic.com)

4 x condensatori (elettrolitici) da 1µF

1 x condensatore (elettrolitico) da 10µF

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 64: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (2/6)

L’adattatore costa meno di 5 euro (se autocostruito) e serve arendere compatibili i livelli di tensione della seriale on board (cheopera a 3,3V) con quelli richiesti da un PC (a 10,8V):

Materiale necessario:

un saldatore a stagno, dello stagno e del filo di rame dalla sezione fine

1 x basetta millefori di piccole dimensioni

1 x connettore seriale femmina a nove poli da circuito

1 x zoccolo per integrati a 16 pin

1 x MAX3232 (prodotto dalla Maxim Integrated Productshttp://www.maxim-ic.com)

4 x condensatori (elettrolitici) da 1µF

1 x condensatore (elettrolitico) da 10µF

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 65: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (2/6)

L’adattatore costa meno di 5 euro (se autocostruito) e serve arendere compatibili i livelli di tensione della seriale on board (cheopera a 3,3V) con quelli richiesti da un PC (a 10,8V):

Materiale necessario:

un saldatore a stagno, dello stagno e del filo di rame dalla sezione fine

1 x basetta millefori di piccole dimensioni

1 x connettore seriale femmina a nove poli da circuito

1 x zoccolo per integrati a 16 pin

1 x MAX3232 (prodotto dalla Maxim Integrated Productshttp://www.maxim-ic.com)

4 x condensatori (elettrolitici) da 1µF

1 x condensatore (elettrolitico) da 10µF

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 66: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (3/6)

Lo schema elettrico dell’adattatore e il seguente:

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 67: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (4/6)

Ecco infine la foto dell’adattatore montato:

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 68: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (5/6)

Da un PC con Linux e possibile avviare un collegamento serialeimpiegando il programma minicom normalmente presente in ognidistribuzione.

Configurare di minicom (i/ii):

1 avviare con privilegi di amministratore ilprogramma digitando minicom -s

2 selezionare la voce “Serial port setup”, siaprira una nuova finestra

3 premere a, digitare /dev/ttyS0 (se il PCdispone di piu porte seriali si puo anchescrivere ad es. /dev/ttyS1) e premere invio

4 premere e, scegliere i settaggi del baudratedei bit di parita (ad es. se si vuole unbaudrate di 9600 con parita 8N1 digitare e, qe premere invio)

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 69: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (5/6)

Da un PC con Linux e possibile avviare un collegamento serialeimpiegando il programma minicom normalmente presente in ognidistribuzione.

Configurare di minicom (i/ii):

1 avviare con privilegi di amministratore ilprogramma digitando minicom -s

2 selezionare la voce “Serial port setup”, siaprira una nuova finestra

3 premere a, digitare /dev/ttyS0 (se il PCdispone di piu porte seriali si puo anchescrivere ad es. /dev/ttyS1) e premere invio

4 premere e, scegliere i settaggi del baudratedei bit di parita (ad es. se si vuole unbaudrate di 9600 con parita 8N1 digitare e, qe premere invio)

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 70: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (5/6)

Da un PC con Linux e possibile avviare un collegamento serialeimpiegando il programma minicom normalmente presente in ognidistribuzione.

Configurare di minicom (i/ii):

1 avviare con privilegi di amministratore ilprogramma digitando minicom -s

2 selezionare la voce “Serial port setup”, siaprira una nuova finestra

3 premere a, digitare /dev/ttyS0 (se il PCdispone di piu porte seriali si puo anchescrivere ad es. /dev/ttyS1) e premere invio

4 premere e, scegliere i settaggi del baudratedei bit di parita (ad es. se si vuole unbaudrate di 9600 con parita 8N1 digitare e, qe premere invio)

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 71: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (5/6)

Da un PC con Linux e possibile avviare un collegamento serialeimpiegando il programma minicom normalmente presente in ognidistribuzione.

Configurare di minicom (i/ii):

1 avviare con privilegi di amministratore ilprogramma digitando minicom -s

2 selezionare la voce “Serial port setup”, siaprira una nuova finestra

3 premere a, digitare /dev/ttyS0 (se il PCdispone di piu porte seriali si puo anchescrivere ad es. /dev/ttyS1) e premere invio

4 premere e, scegliere i settaggi del baudratedei bit di parita (ad es. se si vuole unbaudrate di 9600 con parita 8N1 digitare e, qe premere invio)

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 72: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (6/6)

Configurare di minicom (ii/ii):

5 selezionare e premere invio sulla voce “Save asdlf” e quindi uscire tramite l’opzione “Exit”

6 a questo punto la connessione seriale siavviera

Le volte successive che si vorra avviare una connessione seriale sarasufficiente collegare la seriale e avviare minicom semplicementedigitando minicom.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 73: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (6/6)

Configurare di minicom (ii/ii):

5 selezionare e premere invio sulla voce “Save asdlf” e quindi uscire tramite l’opzione “Exit”

6 a questo punto la connessione seriale siavviera

Le volte successive che si vorra avviare una connessione seriale sarasufficiente collegare la seriale e avviare minicom semplicementedigitando minicom.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 74: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. La seriale (6/6)

Configurare di minicom (ii/ii):

5 selezionare e premere invio sulla voce “Save asdlf” e quindi uscire tramite l’opzione “Exit”

6 a questo punto la connessione seriale siavviera

Le volte successive che si vorra avviare una connessione seriale sarasufficiente collegare la seriale e avviare minicom semplicementedigitando minicom.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 75: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. Dimensioni di RAM e Flash

In linea di massima un SBC non e collegabile ad un Hard Diskcome un comune PC; esso infatti integra sulla stessa board, oltrealla memoria RAM, anche una memoria Flash: unica memoria dimassa del sistema embedded. In certi apparati e tuttavia previstala possibilita di inserire in uno slot presente on board una CompactFlash.

Consiglio n. 4

Di solito sia le dimensioni della RAM che della Flash sonodell’ordine delle decine di Mbyte. Anche se non c’e una regola fissain genere e buona norma che l’ammontare della RAM sia almeno 2volte la dimensione della Flash e che quest’ultima non sia inferiorea 4 Mbyte (molto meglio se 8Mbyte).

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 76: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point. Dimensioni di RAM e Flash

In linea di massima un SBC non e collegabile ad un Hard Diskcome un comune PC; esso infatti integra sulla stessa board, oltrealla memoria RAM, anche una memoria Flash: unica memoria dimassa del sistema embedded. In certi apparati e tuttavia previstala possibilita di inserire in uno slot presente on board una CompactFlash.

Consiglio n. 4

Di solito sia le dimensioni della RAM che della Flash sonodell’ordine delle decine di Mbyte. Anche se non c’e una regola fissain genere e buona norma che l’ammontare della RAM sia almeno 2volte la dimensione della Flash e che quest’ultima non sia inferiorea 4 Mbyte (molto meglio se 8Mbyte).

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 77: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point: il JTAG ed il GPIO

Cos’e l’interfaccia JTAG?

Senza scendere troppo in dettaglio ci basti sapere che l’interfaccia JTAG(Joint Test Action Group) riscontrabile su certi SBC puo essereimpiegata in molte occasioni, come: il testing di integrati complessi (ades. della memoria o della CPU), la programmazione del dispositivo infase di produzione o per effettuare debugging complesso senzaincrementare il carico computazionale dell’apparato.

Cos’e l’interfaccia GPIO?

Le porte GPIO (General Purpose Input/Output) sono di solito dei pinprogrammabili dall’utente per ricevere o emettere dati. Di norma sonoimpiegati per comandare dei semplici led, ad es.: un certo piedino,programmato come pin di output, e asserito alto quindi il led posto traquesto e la massa del circuito si accendera (questo e il caso dei led distato degli Access Point).

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 78: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software L’architettura La radio La seriale RAM/Flash JTAG/GPIO

Anatomia di un Access Point: il JTAG ed il GPIO

Cos’e l’interfaccia JTAG?

Senza scendere troppo in dettaglio ci basti sapere che l’interfaccia JTAG(Joint Test Action Group) riscontrabile su certi SBC puo essereimpiegata in molte occasioni, come: il testing di integrati complessi (ades. della memoria o della CPU), la programmazione del dispositivo infase di produzione o per effettuare debugging complesso senzaincrementare il carico computazionale dell’apparato.

Cos’e l’interfaccia GPIO?

Le porte GPIO (General Purpose Input/Output) sono di solito dei pinprogrammabili dall’utente per ricevere o emettere dati. Di norma sonoimpiegati per comandare dei semplici led, ad es.: un certo piedino,programmato come pin di output, e asserito alto quindi il led posto traquesto e la massa del circuito si accendera (questo e il caso dei led distato degli Access Point).

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 79: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il software

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 80: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap (1/3)

Sotto il profilo del software un SBC e piu simile ad un normale PCanche se si riscontrano degli elementi di diversita a carico inparticolar modo della fase di installazione ed avvio del sistemaoperativo.

Come si installa il sistema operativo?

Per installare Linux su di un PC, ad es. avviamo il Computer dalDVD d’installazione. Su di un SBC questa cosa non e fattibile!Necessitiamo quindi di un sistema operativo minimale gia installatonella Flash che sovrintenda all’installazione del sistema vero eproprio.

Come si avvia il sistema?

Il sistema viene successivamente avviato tramite un comunebootloader, che svolge funzionalita analoghe ad es. a GRUB oLILO.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 81: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap (1/3)

Sotto il profilo del software un SBC e piu simile ad un normale PCanche se si riscontrano degli elementi di diversita a carico inparticolar modo della fase di installazione ed avvio del sistemaoperativo.

Come si installa il sistema operativo?

Per installare Linux su di un PC, ad es. avviamo il Computer dalDVD d’installazione. Su di un SBC questa cosa non e fattibile!Necessitiamo quindi di un sistema operativo minimale gia installatonella Flash che sovrintenda all’installazione del sistema vero eproprio.

Come si avvia il sistema?

Il sistema viene successivamente avviato tramite un comunebootloader, che svolge funzionalita analoghe ad es. a GRUB oLILO.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 82: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap (1/3)

Sotto il profilo del software un SBC e piu simile ad un normale PCanche se si riscontrano degli elementi di diversita a carico inparticolar modo della fase di installazione ed avvio del sistemaoperativo.

Come si installa il sistema operativo?

Per installare Linux su di un PC, ad es. avviamo il Computer dalDVD d’installazione. Su di un SBC questa cosa non e fattibile!Necessitiamo quindi di un sistema operativo minimale gia installatonella Flash che sovrintenda all’installazione del sistema vero eproprio.

Come si avvia il sistema?

Il sistema viene successivamente avviato tramite un comunebootloader, che svolge funzionalita analoghe ad es. a GRUB oLILO.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 83: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap (2/3)

Tali funzionalita sono svolte da un’unica entita detta sistema dibootstrap che risiede nella memoria Flash e gestisce:

il dispositivo all’atto che viene messo sotto tensione

il partizionamento della Flash in fase di installazione delsistema

il caricamento in RAM e l’avvio del sistema operativo.

Esistono vari tipi di bootstrap dalle funzionalita piu varie ma si puodire che i piu impiegati nelle linee produttive grandi e piccole sono:CFE e RedBoot.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 84: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap (2/3)

Tali funzionalita sono svolte da un’unica entita detta sistema dibootstrap che risiede nella memoria Flash e gestisce:

il dispositivo all’atto che viene messo sotto tensione

il partizionamento della Flash in fase di installazione delsistema

il caricamento in RAM e l’avvio del sistema operativo.

Esistono vari tipi di bootstrap dalle funzionalita piu varie ma si puodire che i piu impiegati nelle linee produttive grandi e piccole sono:CFE e RedBoot.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 85: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap (2/3)

Tali funzionalita sono svolte da un’unica entita detta sistema dibootstrap che risiede nella memoria Flash e gestisce:

il dispositivo all’atto che viene messo sotto tensione

il partizionamento della Flash in fase di installazione delsistema

il caricamento in RAM e l’avvio del sistema operativo.

Esistono vari tipi di bootstrap dalle funzionalita piu varie ma si puodire che i piu impiegati nelle linee produttive grandi e piccole sono:CFE e RedBoot.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 86: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap (2/3)

Tali funzionalita sono svolte da un’unica entita detta sistema dibootstrap che risiede nella memoria Flash e gestisce:

il dispositivo all’atto che viene messo sotto tensione

il partizionamento della Flash in fase di installazione delsistema

il caricamento in RAM e l’avvio del sistema operativo.

Esistono vari tipi di bootstrap dalle funzionalita piu varie ma si puodire che i piu impiegati nelle linee produttive grandi e piccole sono:CFE e RedBoot.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 87: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap (3/3)

CFE (Common Firmware Environment):

prodotto dalla Broadcom, rappresenta il sistema di bootstrap dialcuni router Linksys. La sua caratteristica di maggior pregio erappresentata dal fatto che trasforma l’SBC, durante la fase diinstallazione del software, in un server TFTP semplificando dimolto la procedura all’utente.

RedBoot (Red Hat Embedded Debug and Bootstrap):

prodotto dalla eCosCentric Limited, rappresenta il sistema dibootstrap piu versatile ad oggi esistente; e impiegato in dispositividalle finalita piu disparate, lo troviamo: nella Playstation 3, inapparati industriali a controllo numerico, in satelliti, in AccessPoint, nei missili tattici Patriot e anche ne La Fonera...

Entrambi sono open source e gratuiti!

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 88: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap (3/3)

CFE (Common Firmware Environment):

prodotto dalla Broadcom, rappresenta il sistema di bootstrap dialcuni router Linksys. La sua caratteristica di maggior pregio erappresentata dal fatto che trasforma l’SBC, durante la fase diinstallazione del software, in un server TFTP semplificando dimolto la procedura all’utente.

RedBoot (Red Hat Embedded Debug and Bootstrap):

prodotto dalla eCosCentric Limited, rappresenta il sistema dibootstrap piu versatile ad oggi esistente; e impiegato in dispositividalle finalita piu disparate, lo troviamo: nella Playstation 3, inapparati industriali a controllo numerico, in satelliti, in AccessPoint, nei missili tattici Patriot e anche ne La Fonera...

Entrambi sono open source e gratuiti!

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 89: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap (3/3)

CFE (Common Firmware Environment):

prodotto dalla Broadcom, rappresenta il sistema di bootstrap dialcuni router Linksys. La sua caratteristica di maggior pregio erappresentata dal fatto che trasforma l’SBC, durante la fase diinstallazione del software, in un server TFTP semplificando dimolto la procedura all’utente.

RedBoot (Red Hat Embedded Debug and Bootstrap):

prodotto dalla eCosCentric Limited, rappresenta il sistema dibootstrap piu versatile ad oggi esistente; e impiegato in dispositividalle finalita piu disparate, lo troviamo: nella Playstation 3, inapparati industriali a controllo numerico, in satelliti, in AccessPoint, nei missili tattici Patriot e anche ne La Fonera...

Entrambi sono open source e gratuiti!

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 90: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot (1/3)

Si e detto che RedBoot (come CFE del resto) lo troviamo giainstallato nell’SBC; ad oggi infatti la tendenza e quella diprogrammare la Flash prima che questa venga saldata sull’SBCstesso!Il sistema di bootstrap ovviamente lo si puo ricompilare su di un PCottenendo cosı un binario installabile. Tale procedura generalmentesi attua scrivendo direttamente nella Flash tramite una connessioneJTAG e strumenti software realizzati dal produttore dell’SBC.

Consiglio n. 4

Non avventurarsi mai nella sostituzione del sistema di bootstraporiginale senza disporre di una connessione JTAG funzionante eduna versione di RedBoot rilasciata dal produttore dell’SBC. Sequalcosa va storto si rischia di compromettere del tutto ildispositivo.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 91: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot (1/3)

Si e detto che RedBoot (come CFE del resto) lo troviamo giainstallato nell’SBC; ad oggi infatti la tendenza e quella diprogrammare la Flash prima che questa venga saldata sull’SBCstesso!Il sistema di bootstrap ovviamente lo si puo ricompilare su di un PCottenendo cosı un binario installabile. Tale procedura generalmentesi attua scrivendo direttamente nella Flash tramite una connessioneJTAG e strumenti software realizzati dal produttore dell’SBC.

Consiglio n. 4

Non avventurarsi mai nella sostituzione del sistema di bootstraporiginale senza disporre di una connessione JTAG funzionante eduna versione di RedBoot rilasciata dal produttore dell’SBC. Sequalcosa va storto si rischia di compromettere del tutto ildispositivo.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 92: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot (1/3)

Si e detto che RedBoot (come CFE del resto) lo troviamo giainstallato nell’SBC; ad oggi infatti la tendenza e quella diprogrammare la Flash prima che questa venga saldata sull’SBCstesso!Il sistema di bootstrap ovviamente lo si puo ricompilare su di un PCottenendo cosı un binario installabile. Tale procedura generalmentesi attua scrivendo direttamente nella Flash tramite una connessioneJTAG e strumenti software realizzati dal produttore dell’SBC.

Consiglio n. 4

Non avventurarsi mai nella sostituzione del sistema di bootstraporiginale senza disporre di una connessione JTAG funzionante eduna versione di RedBoot rilasciata dal produttore dell’SBC. Sequalcosa va storto si rischia di compromettere del tutto ildispositivo.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 93: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot (2/3)

RedBoot prevede una CLI a cui si accede, tramite una connessioneseriale con il dispositivo, seguendo la procedura qui riportata.

Accedere alla CLI:

1 collegare in modo opportuno l’adattatore seriale al dispositivo ed alPC

2 con privilegi di amministratore avviare minicom

3 alimentare il dispositivo e attendere la comparsa a video del simbolo+

4 premere e mantenere premuti i tasti ctrl + c fino alla comparsa delprompt RedBoot>.

A questo punto possiamo controllare ogni aspetto del bootstrap edinstallare il nostro sistema operativo.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 94: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot (2/3)

RedBoot prevede una CLI a cui si accede, tramite una connessioneseriale con il dispositivo, seguendo la procedura qui riportata.

Accedere alla CLI:

1 collegare in modo opportuno l’adattatore seriale al dispositivo ed alPC

2 con privilegi di amministratore avviare minicom

3 alimentare il dispositivo e attendere la comparsa a video del simbolo+

4 premere e mantenere premuti i tasti ctrl + c fino alla comparsa delprompt RedBoot>.

A questo punto possiamo controllare ogni aspetto del bootstrap edinstallare il nostro sistema operativo.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 95: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot (2/3)

RedBoot prevede una CLI a cui si accede, tramite una connessioneseriale con il dispositivo, seguendo la procedura qui riportata.

Accedere alla CLI:

1 collegare in modo opportuno l’adattatore seriale al dispositivo ed alPC

2 con privilegi di amministratore avviare minicom

3 alimentare il dispositivo e attendere la comparsa a video del simbolo+

4 premere e mantenere premuti i tasti ctrl + c fino alla comparsa delprompt RedBoot>.

A questo punto possiamo controllare ogni aspetto del bootstrap edinstallare il nostro sistema operativo.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 96: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot (2/3)

RedBoot prevede una CLI a cui si accede, tramite una connessioneseriale con il dispositivo, seguendo la procedura qui riportata.

Accedere alla CLI:

1 collegare in modo opportuno l’adattatore seriale al dispositivo ed alPC

2 con privilegi di amministratore avviare minicom

3 alimentare il dispositivo e attendere la comparsa a video del simbolo+

4 premere e mantenere premuti i tasti ctrl + c fino alla comparsa delprompt RedBoot>.

A questo punto possiamo controllare ogni aspetto del bootstrap edinstallare il nostro sistema operativo.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 97: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot (2/3)

RedBoot prevede una CLI a cui si accede, tramite una connessioneseriale con il dispositivo, seguendo la procedura qui riportata.

Accedere alla CLI:

1 collegare in modo opportuno l’adattatore seriale al dispositivo ed alPC

2 con privilegi di amministratore avviare minicom

3 alimentare il dispositivo e attendere la comparsa a video del simbolo+

4 premere e mantenere premuti i tasti ctrl + c fino alla comparsa delprompt RedBoot>.

A questo punto possiamo controllare ogni aspetto del bootstrap edinstallare il nostro sistema operativo.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 98: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot (3/3)

Per procedere ad una corretta installazione del sistema operativo enecessario seguire con ordine queste fasi:

1 capire l’indirizzo della memoria RAM bootabile

2 inizializzare la Flash

3 inizializzare i parametri di configurazione

4 installare il sistema

Si precisa che:

Il sistema operativo e costituito da due file: uno contiene ilkernel (o zImage) e l’altro (chiamato romfs) ospita tutto ilresto del sistema (i programmi, i moduli che kernel, ecc.);entrambi vanno semplicemente copiati in due partizioni diverse

RedBoot recupera tali file da un server TFTP, che si supponeessere sulla stessa rete LAN a cui e collegato (via ethernet)l’SBC.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 99: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot (3/3)

Per procedere ad una corretta installazione del sistema operativo enecessario seguire con ordine queste fasi:

1 capire l’indirizzo della memoria RAM bootabile

2 inizializzare la Flash

3 inizializzare i parametri di configurazione

4 installare il sistema

Si precisa che:

Il sistema operativo e costituito da due file: uno contiene ilkernel (o zImage) e l’altro (chiamato romfs) ospita tutto ilresto del sistema (i programmi, i moduli che kernel, ecc.);entrambi vanno semplicemente copiati in due partizioni diverse

RedBoot recupera tali file da un server TFTP, che si supponeessere sulla stessa rete LAN a cui e collegato (via ethernet)l’SBC.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 100: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot (3/3)

Per procedere ad una corretta installazione del sistema operativo enecessario seguire con ordine queste fasi:

1 capire l’indirizzo della memoria RAM bootabile

2 inizializzare la Flash

3 inizializzare i parametri di configurazione

4 installare il sistema

Si precisa che:

Il sistema operativo e costituito da due file: uno contiene ilkernel (o zImage) e l’altro (chiamato romfs) ospita tutto ilresto del sistema (i programmi, i moduli che kernel, ecc.);entrambi vanno semplicemente copiati in due partizioni diverse

RedBoot recupera tali file da un server TFTP, che si supponeessere sulla stessa rete LAN a cui e collegato (via ethernet)l’SBC.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 101: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot (3/3)

Per procedere ad una corretta installazione del sistema operativo enecessario seguire con ordine queste fasi:

1 capire l’indirizzo della memoria RAM bootabile

2 inizializzare la Flash

3 inizializzare i parametri di configurazione

4 installare il sistema

Si precisa che:

Il sistema operativo e costituito da due file: uno contiene ilkernel (o zImage) e l’altro (chiamato romfs) ospita tutto ilresto del sistema (i programmi, i moduli che kernel, ecc.);entrambi vanno semplicemente copiati in due partizioni diverse

RedBoot recupera tali file da un server TFTP, che si supponeessere sulla stessa rete LAN a cui e collegato (via ethernet)l’SBC.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 102: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot (3/3)

Per procedere ad una corretta installazione del sistema operativo enecessario seguire con ordine queste fasi:

1 capire l’indirizzo della memoria RAM bootabile

2 inizializzare la Flash

3 inizializzare i parametri di configurazione

4 installare il sistema

Si precisa che:

Il sistema operativo e costituito da due file: uno contiene ilkernel (o zImage) e l’altro (chiamato romfs) ospita tutto ilresto del sistema (i programmi, i moduli che kernel, ecc.);entrambi vanno semplicemente copiati in due partizioni diverse

RedBoot recupera tali file da un server TFTP, che si supponeessere sulla stessa rete LAN a cui e collegato (via ethernet)l’SBC.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 103: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot (3/3)

Per procedere ad una corretta installazione del sistema operativo enecessario seguire con ordine queste fasi:

1 capire l’indirizzo della memoria RAM bootabile

2 inizializzare la Flash

3 inizializzare i parametri di configurazione

4 installare il sistema

Si precisa che:

Il sistema operativo e costituito da due file: uno contiene ilkernel (o zImage) e l’altro (chiamato romfs) ospita tutto ilresto del sistema (i programmi, i moduli che kernel, ecc.);entrambi vanno semplicemente copiati in due partizioni diverse

RedBoot recupera tali file da un server TFTP, che si supponeessere sulla stessa rete LAN a cui e collegato (via ethernet)l’SBC.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 104: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 1 (1/3)

Per una corretta installazione della zImage e necessario specificare,tra i parametri della partizione che l’ospitera: l’indirizzo dimemoria RAM a partire dal quale il contenuto della partizione deveessere caricato ed il valore di entry point.Tali informazioni spesso vengono fornite dal produttore ma certevolte no e quindi dobbiamo capirlo!Certi SBC vengo venduti con un firmware preinstallato, ad es.:quello de La Fonera realizza tutte le funzionalita tipiche di un AP.Questo ci basta per ottenere le informazioni volute operando comesegue:

Indirizzo di RAM bootabile a partire dal firmware originale:

1 accedere al CLI di RedBoot

2 digitare il comando fis list.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 105: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 1 (1/3)

Per una corretta installazione della zImage e necessario specificare,tra i parametri della partizione che l’ospitera: l’indirizzo dimemoria RAM a partire dal quale il contenuto della partizione deveessere caricato ed il valore di entry point.Tali informazioni spesso vengono fornite dal produttore ma certevolte no e quindi dobbiamo capirlo!Certi SBC vengo venduti con un firmware preinstallato, ad es.:quello de La Fonera realizza tutte le funzionalita tipiche di un AP.Questo ci basta per ottenere le informazioni volute operando comesegue:

Indirizzo di RAM bootabile a partire dal firmware originale:

1 accedere al CLI di RedBoot

2 digitare il comando fis list.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 106: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 1 (1/3)

Per una corretta installazione della zImage e necessario specificare,tra i parametri della partizione che l’ospitera: l’indirizzo dimemoria RAM a partire dal quale il contenuto della partizione deveessere caricato ed il valore di entry point.Tali informazioni spesso vengono fornite dal produttore ma certevolte no e quindi dobbiamo capirlo!Certi SBC vengo venduti con un firmware preinstallato, ad es.:quello de La Fonera realizza tutte le funzionalita tipiche di un AP.Questo ci basta per ottenere le informazioni volute operando comesegue:

Indirizzo di RAM bootabile a partire dal firmware originale:

1 accedere al CLI di RedBoot

2 digitare il comando fis list.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 107: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 1 (1/3)

Per una corretta installazione della zImage e necessario specificare,tra i parametri della partizione che l’ospitera: l’indirizzo dimemoria RAM a partire dal quale il contenuto della partizione deveessere caricato ed il valore di entry point.Tali informazioni spesso vengono fornite dal produttore ma certevolte no e quindi dobbiamo capirlo!Certi SBC vengo venduti con un firmware preinstallato, ad es.:quello de La Fonera realizza tutte le funzionalita tipiche di un AP.Questo ci basta per ottenere le informazioni volute operando comesegue:

Indirizzo di RAM bootabile a partire dal firmware originale:

1 accedere al CLI di RedBoot

2 digitare il comando fis list.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 108: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 1 (2/3)

Ecco un tipico messaggio di output del comando fis list:

Name FLASH addr Mem addr Length Entry point

RedBoot 0xA8000000 0xA8000000 0x00030000 0x00000000

rootfs 0xA8030000 0xA8030000 0x00700000 0x00000000

vmlinux.bin.l7 0xA8730000 0x80041000 0x000B0000 0x80041000

FIS directory 0xA87E0000 0xA87E0000 0x0000F000 0x00000000

RedBoot config 0xA87EF000 0xA87EF000 0x00001000 0x00000000

Le partizioni:

Nella prima colonna ci sono i nomi delle partizioni della flash; comesi nota in testa ed in coda alla Flash ci sono tre partizioni ascrivibilia RedBoot: la prima (chiamata RedBoot) ospita il bootstrap veroe proprio, la seconda (FIS directory) e usata per memorizzare iparametri caratteristici di ogni partizione ed in fine la terza stora isettaggi di RedBoot immessi dall’utente. Il programmatore ha adisposizione lo spazio che c’e tra la fine di RedBoot e l’inizio di FISdirectory.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 109: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 1 (2/3)

Ecco un tipico messaggio di output del comando fis list:

Name FLASH addr Mem addr Length Entry point

RedBoot 0xA8000000 0xA8000000 0x00030000 0x00000000

rootfs 0xA8030000 0xA8030000 0x00700000 0x00000000

vmlinux.bin.l7 0xA8730000 0x80041000 0x000B0000 0x80041000

FIS directory 0xA87E0000 0xA87E0000 0x0000F000 0x00000000

RedBoot config 0xA87EF000 0xA87EF000 0x00001000 0x00000000

Le partizioni:

Nella prima colonna ci sono i nomi delle partizioni della flash; comesi nota in testa ed in coda alla Flash ci sono tre partizioni ascrivibilia RedBoot: la prima (chiamata RedBoot) ospita il bootstrap veroe proprio, la seconda (FIS directory) e usata per memorizzare iparametri caratteristici di ogni partizione ed in fine la terza stora isettaggi di RedBoot immessi dall’utente. Il programmatore ha adisposizione lo spazio che c’e tra la fine di RedBoot e l’inizio di FISdirectory.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 110: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 1 (3/3)

Il FLASH addr e la Length:

Il primo rappresenta l’indirizzo della memoria Flash a partire dal qualeinizia una partizione; essa si estende per una lunghezza pari a “Length”.

Il Mem addr e l’Entry point:

Il primo rappresenta l’indirizzo di RAM a partire dal quale una certapartizione verra caricata (per intero). L’Entry point e un parametrorilevante unicamente per le partizioni che contengono immagini eseguibili(come la zImage) e rappresenta l’indirizzo di memoria RAM che contienela prima locazione eseguibile. In linea di principio puo anche esserediverso dal relativo Mem addr.

Le informazioni da noi volute devono essere lette in corrispondenzadella riga che contiene i dati relativi alla partizione che ospita lazImage (ovvero “vmlinux.bin.l7”): si prenda nota del Mem addr edell’Entry point (in questo caso entrambi 0x80041000)

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 111: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 1 (3/3)

Il FLASH addr e la Length:

Il primo rappresenta l’indirizzo della memoria Flash a partire dal qualeinizia una partizione; essa si estende per una lunghezza pari a “Length”.

Il Mem addr e l’Entry point:

Il primo rappresenta l’indirizzo di RAM a partire dal quale una certapartizione verra caricata (per intero). L’Entry point e un parametrorilevante unicamente per le partizioni che contengono immagini eseguibili(come la zImage) e rappresenta l’indirizzo di memoria RAM che contienela prima locazione eseguibile. In linea di principio puo anche esserediverso dal relativo Mem addr.

Le informazioni da noi volute devono essere lette in corrispondenzadella riga che contiene i dati relativi alla partizione che ospita lazImage (ovvero “vmlinux.bin.l7”): si prenda nota del Mem addr edell’Entry point (in questo caso entrambi 0x80041000)

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 112: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 1 (3/3)

Il FLASH addr e la Length:

Il primo rappresenta l’indirizzo della memoria Flash a partire dal qualeinizia una partizione; essa si estende per una lunghezza pari a “Length”.

Il Mem addr e l’Entry point:

Il primo rappresenta l’indirizzo di RAM a partire dal quale una certapartizione verra caricata (per intero). L’Entry point e un parametrorilevante unicamente per le partizioni che contengono immagini eseguibili(come la zImage) e rappresenta l’indirizzo di memoria RAM che contienela prima locazione eseguibile. In linea di principio puo anche esserediverso dal relativo Mem addr.

Le informazioni da noi volute devono essere lette in corrispondenzadella riga che contiene i dati relativi alla partizione che ospita lazImage (ovvero “vmlinux.bin.l7”): si prenda nota del Mem addr edell’Entry point (in questo caso entrambi 0x80041000)

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 113: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 2

A questo punto formattiamo completamente la Flash tramite ilcomando fis init -f; ci verra chiesto di confermare questocomando, facciamolo digitando y e premendo il tasto invio. Laprocedura richiedera del tempo (anche 5 o 6 minuti), al terminedella quale otterrete un output simile al seguente:

RedBoot> fis init -f

About to initialize [format] FLASH image system - continue (y/n)? y

*** Initialize FLASH Image System

... Erase from 0xa8030000-0xa87e0000: .............................

... Erase from 0xa87e0000-0xa87f0000: .

... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 114: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 3 (1/3)

L’SBC e ora inizializzato e privo del sistema operativo; e buonanorma ricreare il database che ospita la configurazione di RedBootoperando come segue:

Inizializzazione dei settaggi di RedBoot (i/iii):

1 digitare il comando fconfig -i, confermare la nostra sceltadigitando y e quindi premendo il tasto invio

2 alla voce “Run script at boot” digitare true; cosı facendo siinforma RedBoot che in fase di avvio questo dovra eseguireuno script da noi specificato

3 alla voce successiva Boot script digitare fis load -l zImage,premere invio, digitare exec e premere di nuovo invio; talescript impone al bootstrap di caricare in RAM il contenutodella partizione zImage e quindi di passare il controllo alsistema operativo

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 115: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 3 (1/3)

L’SBC e ora inizializzato e privo del sistema operativo; e buonanorma ricreare il database che ospita la configurazione di RedBootoperando come segue:

Inizializzazione dei settaggi di RedBoot (i/iii):

1 digitare il comando fconfig -i, confermare la nostra sceltadigitando y e quindi premendo il tasto invio

2 alla voce “Run script at boot” digitare true; cosı facendo siinforma RedBoot che in fase di avvio questo dovra eseguireuno script da noi specificato

3 alla voce successiva Boot script digitare fis load -l zImage,premere invio, digitare exec e premere di nuovo invio; talescript impone al bootstrap di caricare in RAM il contenutodella partizione zImage e quindi di passare il controllo alsistema operativo

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 116: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 3 (1/3)

L’SBC e ora inizializzato e privo del sistema operativo; e buonanorma ricreare il database che ospita la configurazione di RedBootoperando come segue:

Inizializzazione dei settaggi di RedBoot (i/iii):

1 digitare il comando fconfig -i, confermare la nostra sceltadigitando y e quindi premendo il tasto invio

2 alla voce “Run script at boot” digitare true; cosı facendo siinforma RedBoot che in fase di avvio questo dovra eseguireuno script da noi specificato

3 alla voce successiva Boot script digitare fis load -l zImage,premere invio, digitare exec e premere di nuovo invio; talescript impone al bootstrap di caricare in RAM il contenutodella partizione zImage e quindi di passare il controllo alsistema operativo

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 117: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 3 (2/3)

Inizializzazione dei settaggi di RedBoot (ii/iii):

4 alla voce “Boot script timeout” digitare ad es. 1; cosıfacendo, in fase di avvio, l’esecuzione del Boot script verraritardata di 1 sec.

5 impostare a false la voce “Use BOOTP for networkconfiguration”; non volendo che RedBoot in fase di bootfaccia una richiesta DHCP

6 alla voce “Gateway IP address” limitarsi a premere invio;abbiamo assunto infatti che il server TFTP d’installazione sianella stessa LAN a cui e collegato l’SBC

7 specifichiamo poi l’ip e la netmask rispettivamente incorrispondenza della voce “Local IP address” e “Local IPaddress mask”; a tale indirizzo rispondera il dispositivoquando operera sotto il controllo del bootstrap

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 118: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 3 (2/3)

Inizializzazione dei settaggi di RedBoot (ii/iii):

4 alla voce “Boot script timeout” digitare ad es. 1; cosıfacendo, in fase di avvio, l’esecuzione del Boot script verraritardata di 1 sec.

5 impostare a false la voce “Use BOOTP for networkconfiguration”; non volendo che RedBoot in fase di bootfaccia una richiesta DHCP

6 alla voce “Gateway IP address” limitarsi a premere invio;abbiamo assunto infatti che il server TFTP d’installazione sianella stessa LAN a cui e collegato l’SBC

7 specifichiamo poi l’ip e la netmask rispettivamente incorrispondenza della voce “Local IP address” e “Local IPaddress mask”; a tale indirizzo rispondera il dispositivoquando operera sotto il controllo del bootstrap

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 119: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 3 (2/3)

Inizializzazione dei settaggi di RedBoot (ii/iii):

4 alla voce “Boot script timeout” digitare ad es. 1; cosıfacendo, in fase di avvio, l’esecuzione del Boot script verraritardata di 1 sec.

5 impostare a false la voce “Use BOOTP for networkconfiguration”; non volendo che RedBoot in fase di bootfaccia una richiesta DHCP

6 alla voce “Gateway IP address” limitarsi a premere invio;abbiamo assunto infatti che il server TFTP d’installazione sianella stessa LAN a cui e collegato l’SBC

7 specifichiamo poi l’ip e la netmask rispettivamente incorrispondenza della voce “Local IP address” e “Local IPaddress mask”; a tale indirizzo rispondera il dispositivoquando operera sotto il controllo del bootstrap

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 120: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 3 (2/3)

Inizializzazione dei settaggi di RedBoot (ii/iii):

4 alla voce “Boot script timeout” digitare ad es. 1; cosıfacendo, in fase di avvio, l’esecuzione del Boot script verraritardata di 1 sec.

5 impostare a false la voce “Use BOOTP for networkconfiguration”; non volendo che RedBoot in fase di bootfaccia una richiesta DHCP

6 alla voce “Gateway IP address” limitarsi a premere invio;abbiamo assunto infatti che il server TFTP d’installazione sianella stessa LAN a cui e collegato l’SBC

7 specifichiamo poi l’ip e la netmask rispettivamente incorrispondenza della voce “Local IP address” e “Local IPaddress mask”; a tale indirizzo rispondera il dispositivoquando operera sotto il controllo del bootstrap

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 121: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 3 (3/3)

Inizializzazione dei settaggi di RedBoot (iii/iii):

8 alla voce “Default server IP address” digitare l’ip del serverTFTP d’installazione.

9 lasciare inalterati i valori dei campi “Console baud rate”(ovvero la velocita di comunicazione della porta seriale) e“GDB connection port” (impiegata per la gestione viaTELNET della CLI di RedBoot)

10 impostare al valore false, se non lo sono gia, le voci “Forceconsole for special debug messages” e “Network debug at boottime” (impiegate in scenari particolari di debug da remoto)

11 confermare le nostre scelte premendo y ed il tasto invioquando richiesto

12 rendere effettive le modifiche riavviando l’SBC tramite ilcomando reset.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 122: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 3 (3/3)

Inizializzazione dei settaggi di RedBoot (iii/iii):

8 alla voce “Default server IP address” digitare l’ip del serverTFTP d’installazione.

9 lasciare inalterati i valori dei campi “Console baud rate”(ovvero la velocita di comunicazione della porta seriale) e“GDB connection port” (impiegata per la gestione viaTELNET della CLI di RedBoot)

10 impostare al valore false, se non lo sono gia, le voci “Forceconsole for special debug messages” e “Network debug at boottime” (impiegate in scenari particolari di debug da remoto)

11 confermare le nostre scelte premendo y ed il tasto invioquando richiesto

12 rendere effettive le modifiche riavviando l’SBC tramite ilcomando reset.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 123: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 3 (3/3)

Inizializzazione dei settaggi di RedBoot (iii/iii):

8 alla voce “Default server IP address” digitare l’ip del serverTFTP d’installazione.

9 lasciare inalterati i valori dei campi “Console baud rate”(ovvero la velocita di comunicazione della porta seriale) e“GDB connection port” (impiegata per la gestione viaTELNET della CLI di RedBoot)

10 impostare al valore false, se non lo sono gia, le voci “Forceconsole for special debug messages” e “Network debug at boottime” (impiegate in scenari particolari di debug da remoto)

11 confermare le nostre scelte premendo y ed il tasto invioquando richiesto

12 rendere effettive le modifiche riavviando l’SBC tramite ilcomando reset.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 124: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 3 (3/3)

Inizializzazione dei settaggi di RedBoot (iii/iii):

8 alla voce “Default server IP address” digitare l’ip del serverTFTP d’installazione.

9 lasciare inalterati i valori dei campi “Console baud rate”(ovvero la velocita di comunicazione della porta seriale) e“GDB connection port” (impiegata per la gestione viaTELNET della CLI di RedBoot)

10 impostare al valore false, se non lo sono gia, le voci “Forceconsole for special debug messages” e “Network debug at boottime” (impiegate in scenari particolari di debug da remoto)

11 confermare le nostre scelte premendo y ed il tasto invioquando richiesto

12 rendere effettive le modifiche riavviando l’SBC tramite ilcomando reset.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 125: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 3 (3/3)

Inizializzazione dei settaggi di RedBoot (iii/iii):

8 alla voce “Default server IP address” digitare l’ip del serverTFTP d’installazione.

9 lasciare inalterati i valori dei campi “Console baud rate”(ovvero la velocita di comunicazione della porta seriale) e“GDB connection port” (impiegata per la gestione viaTELNET della CLI di RedBoot)

10 impostare al valore false, se non lo sono gia, le voci “Forceconsole for special debug messages” e “Network debug at boottime” (impiegate in scenari particolari di debug da remoto)

11 confermare le nostre scelte premendo y ed il tasto invioquando richiesto

12 rendere effettive le modifiche riavviando l’SBC tramite ilcomando reset.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 126: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 4 (1/3)

A questo punto non rimane che installare il nostro sistema; perfarlo e richiesto un PC con un server TFTP raggiungibile.

Inizializzazione del server TFTP (procedura testata su Fedora 8):

1 installare con privilegi di amministratori il pacchetto tftp-servertramite il comando yum install tftp-server

2 editare il file /etc/xinetd.d/tftp in modo che abbia i seguenti settaggi:

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -s /tftpboot

disable = no

per_source = 11

cps = 100 2

flags = IPv4

}

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 127: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 4 (1/3)

A questo punto non rimane che installare il nostro sistema; perfarlo e richiesto un PC con un server TFTP raggiungibile.

Inizializzazione del server TFTP (procedura testata su Fedora 8):

1 installare con privilegi di amministratori il pacchetto tftp-servertramite il comando yum install tftp-server

2 editare il file /etc/xinetd.d/tftp in modo che abbia i seguenti settaggi:

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -s /tftpboot

disable = no

per_source = 11

cps = 100 2

flags = IPv4

}

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 128: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 4 (2/3)

Dopo aver avviato il server TFTP (mediante il comando/etc/init.d/xinetd start), supponendo di aver posto nella directory/tftpboot il file contenente la zImage (chiamato ad es. zImage file) equello costituente il romfs (chiamato ad es. romfs file), seguire laseguente procedura (si supponga che sia l’indirizzo di memoria RAMbootabile che l’entry point valgano 0x80041000):

Installazione del sistema operativo i/ii:

1 dalla CLI dell’SBC eseguire il comando load -r -b 0x80041000zImage file; in questo modo scarichiamo dal server TFTP la zImagee la poniamo in RAM a partire proprio dall’indirizzo 0x80041000.

2 eseguiamo quindi il comando fis create -e 0x80041000 -r0x80041000 zImage; in questo modo creiamo la partizione dalnome “zImage” grande quanto la dimensione del file zImage file,con un entry address pari a 0x80041000 (ovvero il memory address)e rilocata (in fase di caricamento) a partire dallo stesso indirizzo(l’entry point).

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 129: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 4 (2/3)

Dopo aver avviato il server TFTP (mediante il comando/etc/init.d/xinetd start), supponendo di aver posto nella directory/tftpboot il file contenente la zImage (chiamato ad es. zImage file) equello costituente il romfs (chiamato ad es. romfs file), seguire laseguente procedura (si supponga che sia l’indirizzo di memoria RAMbootabile che l’entry point valgano 0x80041000):

Installazione del sistema operativo i/ii:

1 dalla CLI dell’SBC eseguire il comando load -r -b 0x80041000zImage file; in questo modo scarichiamo dal server TFTP la zImagee la poniamo in RAM a partire proprio dall’indirizzo 0x80041000.

2 eseguiamo quindi il comando fis create -e 0x80041000 -r0x80041000 zImage; in questo modo creiamo la partizione dalnome “zImage” grande quanto la dimensione del file zImage file,con un entry address pari a 0x80041000 (ovvero il memory address)e rilocata (in fase di caricamento) a partire dallo stesso indirizzo(l’entry point).

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 130: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 4 (3/3)

Installazione del sistema operativo (ii/ii):

3 calcoliamo quanto spazio libero abbiamo ancora a disposizione nellaFlash tramite il comando fis free (il valore esatto sara la differenzain esadecimale della coppia di indirizzi ritornati)

4 scarichiamo ora anche il file romfs file tramite il comando load -r -b%{FREEMEMLO} romfs file; in questo modo carichiamo il romfsnel piu basso indirizzo di RAM disponibile

5 eseguiamo infine il comando fis create -l 0x006f0000 -e 0 rootfs(supposto che 0x006f0000 sia il risultato della differenza richiesta alpunto 3) per creare la partizione vera e propria del romfs (ampiaquanto la restante parte della Flash)

6 riavviare il sistema tramite il comando reset.

Ora che sappiamo come installare Linux su un SBC non ci rimaneche imparare a compilare una distribuzione per intero...

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 131: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 4 (3/3)

Installazione del sistema operativo (ii/ii):

3 calcoliamo quanto spazio libero abbiamo ancora a disposizione nellaFlash tramite il comando fis free (il valore esatto sara la differenzain esadecimale della coppia di indirizzi ritornati)

4 scarichiamo ora anche il file romfs file tramite il comando load -r -b%{FREEMEMLO} romfs file; in questo modo carichiamo il romfsnel piu basso indirizzo di RAM disponibile

5 eseguiamo infine il comando fis create -l 0x006f0000 -e 0 rootfs(supposto che 0x006f0000 sia il risultato della differenza richiesta alpunto 3) per creare la partizione vera e propria del romfs (ampiaquanto la restante parte della Flash)

6 riavviare il sistema tramite il comando reset.

Ora che sappiamo come installare Linux su un SBC non ci rimaneche imparare a compilare una distribuzione per intero...

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 132: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 4 (3/3)

Installazione del sistema operativo (ii/ii):

3 calcoliamo quanto spazio libero abbiamo ancora a disposizione nellaFlash tramite il comando fis free (il valore esatto sara la differenzain esadecimale della coppia di indirizzi ritornati)

4 scarichiamo ora anche il file romfs file tramite il comando load -r -b%{FREEMEMLO} romfs file; in questo modo carichiamo il romfsnel piu basso indirizzo di RAM disponibile

5 eseguiamo infine il comando fis create -l 0x006f0000 -e 0 rootfs(supposto che 0x006f0000 sia il risultato della differenza richiesta alpunto 3) per creare la partizione vera e propria del romfs (ampiaquanto la restante parte della Flash)

6 riavviare il sistema tramite il comando reset.

Ora che sappiamo come installare Linux su un SBC non ci rimaneche imparare a compilare una distribuzione per intero...

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 133: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 4 (3/3)

Installazione del sistema operativo (ii/ii):

3 calcoliamo quanto spazio libero abbiamo ancora a disposizione nellaFlash tramite il comando fis free (il valore esatto sara la differenzain esadecimale della coppia di indirizzi ritornati)

4 scarichiamo ora anche il file romfs file tramite il comando load -r -b%{FREEMEMLO} romfs file; in questo modo carichiamo il romfsnel piu basso indirizzo di RAM disponibile

5 eseguiamo infine il comando fis create -l 0x006f0000 -e 0 rootfs(supposto che 0x006f0000 sia il risultato della differenza richiesta alpunto 3) per creare la partizione vera e propria del romfs (ampiaquanto la restante parte della Flash)

6 riavviare il sistema tramite il comando reset.

Ora che sappiamo come installare Linux su un SBC non ci rimaneche imparare a compilare una distribuzione per intero...

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 134: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

Il sistema di bootstrap. RedBoot - Fase 4 (3/3)

Installazione del sistema operativo (ii/ii):

3 calcoliamo quanto spazio libero abbiamo ancora a disposizione nellaFlash tramite il comando fis free (il valore esatto sara la differenzain esadecimale della coppia di indirizzi ritornati)

4 scarichiamo ora anche il file romfs file tramite il comando load -r -b%{FREEMEMLO} romfs file; in questo modo carichiamo il romfsnel piu basso indirizzo di RAM disponibile

5 eseguiamo infine il comando fis create -l 0x006f0000 -e 0 rootfs(supposto che 0x006f0000 sia il risultato della differenza richiesta alpunto 3) per creare la partizione vera e propria del romfs (ampiaquanto la restante parte della Flash)

6 riavviare il sistema tramite il comando reset.

Ora che sappiamo come installare Linux su un SBC non ci rimaneche imparare a compilare una distribuzione per intero...

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 135: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La compilazione (1/3)

In genere ogni distribuzione Linux prevede un packet manager cheassiste l’utente durante il processo di installazione del software; lecose cambiano se si vuole compilare un programma a partire dalcodice sorgente.

Come si compila un programma?

In genere il processo e molto semplice:

1 ci spostiamo nella directory che contiene i sorgenti e si esegueil comando make; cio comporta la compilazione

2 successivamente si invoca un make install per installare ilfrutto della compilazione nelle directory di sistema opportune.

Ma cosa fa il comando make? A che mi serve se come compilatoreuso gcc?

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 136: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La compilazione (1/3)

In genere ogni distribuzione Linux prevede un packet manager cheassiste l’utente durante il processo di installazione del software; lecose cambiano se si vuole compilare un programma a partire dalcodice sorgente.

Come si compila un programma?

In genere il processo e molto semplice:

1 ci spostiamo nella directory che contiene i sorgenti e si esegueil comando make; cio comporta la compilazione

2 successivamente si invoca un make install per installare ilfrutto della compilazione nelle directory di sistema opportune.

Ma cosa fa il comando make? A che mi serve se come compilatoreuso gcc?

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 137: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La compilazione (1/3)

In genere ogni distribuzione Linux prevede un packet manager cheassiste l’utente durante il processo di installazione del software; lecose cambiano se si vuole compilare un programma a partire dalcodice sorgente.

Come si compila un programma?

In genere il processo e molto semplice:

1 ci spostiamo nella directory che contiene i sorgenti e si esegueil comando make; cio comporta la compilazione

2 successivamente si invoca un make install per installare ilfrutto della compilazione nelle directory di sistema opportune.

Ma cosa fa il comando make? A che mi serve se come compilatoreuso gcc?

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 138: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La compilazione (1/3)

In genere ogni distribuzione Linux prevede un packet manager cheassiste l’utente durante il processo di installazione del software; lecose cambiano se si vuole compilare un programma a partire dalcodice sorgente.

Come si compila un programma?

In genere il processo e molto semplice:

1 ci spostiamo nella directory che contiene i sorgenti e si esegueil comando make; cio comporta la compilazione

2 successivamente si invoca un make install per installare ilfrutto della compilazione nelle directory di sistema opportune.

Ma cosa fa il comando make? A che mi serve se come compilatoreuso gcc?

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 139: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La compilazione (2/3)

Cosa fa il comando make?

make e un’applicazione che esegue una serie di comandi, scritti dal

programmatore, in un file chiamato Makefile (presente nella directory del

software che vogliamo compilare), eccone un esempio:

# Questo e un commento

CC="gcc" # Questa e una variabile...

HELLO="Pippo" # ... anche questa lo e...

DESTINATION="/usr/local/bin" # ...e pure questa!

all: # Questo e il maketarget "all".

$(CC) hello.c -o $(HELLO) # Questo e un comando.

clean: # Questo e il maketarget "clean".

rm -f *.o

rm -f $(HELLO)

install: # Questo e il maketarget "install".

cp $(HELLO) $(DESTINATION)

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 140: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La compilazione (3/3)

In programmi dal codice articolato o che richiedono librerieparticolari non viene fornito un Makefile: si correda il software conuno script bash chiamato configure che sovrintende allagenerazione del Makefile.Tale prassi ha un senso se si pensa ad esempio al fatto che lelibrerie incluse possono risiedere in directory diverse a seconda delledistribuzioni Linux. L’impiengo di uno script di configure erilevante anche in casi in cui non si vuole compilare una certaporzione di codice a favore di altre.La generazione del Makefile e banale e si ottiene invocandosemplicemente il comando ./configure nella directory delprogramma che ci apprestiamo a compilare.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 141: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La compilazione (3/3)

In programmi dal codice articolato o che richiedono librerieparticolari non viene fornito un Makefile: si correda il software conuno script bash chiamato configure che sovrintende allagenerazione del Makefile.Tale prassi ha un senso se si pensa ad esempio al fatto che lelibrerie incluse possono risiedere in directory diverse a seconda delledistribuzioni Linux. L’impiengo di uno script di configure erilevante anche in casi in cui non si vuole compilare una certaporzione di codice a favore di altre.La generazione del Makefile e banale e si ottiene invocandosemplicemente il comando ./configure nella directory delprogramma che ci apprestiamo a compilare.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 142: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La compilazione (3/3)

In programmi dal codice articolato o che richiedono librerieparticolari non viene fornito un Makefile: si correda il software conuno script bash chiamato configure che sovrintende allagenerazione del Makefile.Tale prassi ha un senso se si pensa ad esempio al fatto che lelibrerie incluse possono risiedere in directory diverse a seconda delledistribuzioni Linux. L’impiengo di uno script di configure erilevante anche in casi in cui non si vuole compilare una certaporzione di codice a favore di altre.La generazione del Makefile e banale e si ottiene invocandosemplicemente il comando ./configure nella directory delprogramma che ci apprestiamo a compilare.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 143: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (1/11)

Fino a qui abbiamo compilato “sull’architettura x86 per x86”, e sevolessimo compilare “su x86 per ARM”?

Cos’e la crosscompilazione?

Con tale termine si intende l’azione di compilare su di una certaarchitettura mediante un compilatore che produce del codiceeseguibile da un’altra architettura: ad es. compilare su x86 perprocessori MIPS.

Crosscompilare un programma non e di per se un’operazionebanale; in ogni caso per essere portata a termine abbiamo bisognodelle seguenti cose:

1 di una toolchain correttamente installata

2 dobbiamo capire quali parametri passare allo script configuree/o quali modifiche apportare al Makefile.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 144: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (1/11)

Fino a qui abbiamo compilato “sull’architettura x86 per x86”, e sevolessimo compilare “su x86 per ARM”?

Cos’e la crosscompilazione?

Con tale termine si intende l’azione di compilare su di una certaarchitettura mediante un compilatore che produce del codiceeseguibile da un’altra architettura: ad es. compilare su x86 perprocessori MIPS.

Crosscompilare un programma non e di per se un’operazionebanale; in ogni caso per essere portata a termine abbiamo bisognodelle seguenti cose:

1 di una toolchain correttamente installata

2 dobbiamo capire quali parametri passare allo script configuree/o quali modifiche apportare al Makefile.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 145: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (1/11)

Fino a qui abbiamo compilato “sull’architettura x86 per x86”, e sevolessimo compilare “su x86 per ARM”?

Cos’e la crosscompilazione?

Con tale termine si intende l’azione di compilare su di una certaarchitettura mediante un compilatore che produce del codiceeseguibile da un’altra architettura: ad es. compilare su x86 perprocessori MIPS.

Crosscompilare un programma non e di per se un’operazionebanale; in ogni caso per essere portata a termine abbiamo bisognodelle seguenti cose:

1 di una toolchain correttamente installata

2 dobbiamo capire quali parametri passare allo script configuree/o quali modifiche apportare al Makefile.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 146: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (1/11)

Fino a qui abbiamo compilato “sull’architettura x86 per x86”, e sevolessimo compilare “su x86 per ARM”?

Cos’e la crosscompilazione?

Con tale termine si intende l’azione di compilare su di una certaarchitettura mediante un compilatore che produce del codiceeseguibile da un’altra architettura: ad es. compilare su x86 perprocessori MIPS.

Crosscompilare un programma non e di per se un’operazionebanale; in ogni caso per essere portata a termine abbiamo bisognodelle seguenti cose:

1 di una toolchain correttamente installata

2 dobbiamo capire quali parametri passare allo script configuree/o quali modifiche apportare al Makefile.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 147: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (2/11)

Cos’e una toolchain?

Essa e una selezione di tool che di solito contiene: binutils, gcc,glibc, ecc. Una volta installata permette al programmatore dicompilare per un’architettura diversa rispetto a quella su cuilavora. Attenzione se si vuole produrre del codice eseguibilead es. per ARM e per MIPS necessitiamo di due toolchain!

Si precisa che non sempre e facile reperire le toolchain adatte perl’architettura su cui sviluppiamo: talvolta sono fornite daiproduttori stessi del dispositivo, ma certe volte no. C’e da dire chemolto spesso si tratta di toolchain a loro volta da compilare equesto puo essere fonte di problemi.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 148: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (2/11)

Cos’e una toolchain?

Essa e una selezione di tool che di solito contiene: binutils, gcc,glibc, ecc. Una volta installata permette al programmatore dicompilare per un’architettura diversa rispetto a quella su cuilavora. Attenzione se si vuole produrre del codice eseguibilead es. per ARM e per MIPS necessitiamo di due toolchain!

Si precisa che non sempre e facile reperire le toolchain adatte perl’architettura su cui sviluppiamo: talvolta sono fornite daiproduttori stessi del dispositivo, ma certe volte no. C’e da dire chemolto spesso si tratta di toolchain a loro volta da compilare equesto puo essere fonte di problemi.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 149: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (3/11)

Reperita la toolchain ora dobbiamo usarla, si ma come?Consideriamo i tre seguenti casi:

1 compilare un applicativo costituito dal solo file hello.c2 compilare un applicativo mediante l’uso di un Makefile fornito3 generare il Makefile mediante il configure e compilare il

programma.

In tutti e tre i casi si supponga di dover crosscompilare il nostroprogramma per ARM (big-endian) e che il compilatore preposto acio si chiami arm-linux-gcc.

Consiglio n. 5

Si deve sapere che esiste una guerra, da gli esisti incerti, tra iprogrammatori che scrivono i Makefile e coloro che devonocrosscompilare! I programmi non sono in genere pensati per essereportati su architetture diverse dall’x86 (o in generale little-endian)cio implica che non sempre e banale crosscompilare del software.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 150: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (3/11)

Reperita la toolchain ora dobbiamo usarla, si ma come?Consideriamo i tre seguenti casi:

1 compilare un applicativo costituito dal solo file hello.c2 compilare un applicativo mediante l’uso di un Makefile fornito3 generare il Makefile mediante il configure e compilare il

programma.

In tutti e tre i casi si supponga di dover crosscompilare il nostroprogramma per ARM (big-endian) e che il compilatore preposto acio si chiami arm-linux-gcc.

Consiglio n. 5

Si deve sapere che esiste una guerra, da gli esisti incerti, tra iprogrammatori che scrivono i Makefile e coloro che devonocrosscompilare! I programmi non sono in genere pensati per essereportati su architetture diverse dall’x86 (o in generale little-endian)cio implica che non sempre e banale crosscompilare del software.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 151: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (3/11)

Reperita la toolchain ora dobbiamo usarla, si ma come?Consideriamo i tre seguenti casi:

1 compilare un applicativo costituito dal solo file hello.c2 compilare un applicativo mediante l’uso di un Makefile fornito3 generare il Makefile mediante il configure e compilare il

programma.

In tutti e tre i casi si supponga di dover crosscompilare il nostroprogramma per ARM (big-endian) e che il compilatore preposto acio si chiami arm-linux-gcc.

Consiglio n. 5

Si deve sapere che esiste una guerra, da gli esisti incerti, tra iprogrammatori che scrivono i Makefile e coloro che devonocrosscompilare! I programmi non sono in genere pensati per essereportati su architetture diverse dall’x86 (o in generale little-endian)cio implica che non sempre e banale crosscompilare del software.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 152: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (3/11)

Reperita la toolchain ora dobbiamo usarla, si ma come?Consideriamo i tre seguenti casi:

1 compilare un applicativo costituito dal solo file hello.c2 compilare un applicativo mediante l’uso di un Makefile fornito3 generare il Makefile mediante il configure e compilare il

programma.

In tutti e tre i casi si supponga di dover crosscompilare il nostroprogramma per ARM (big-endian) e che il compilatore preposto acio si chiami arm-linux-gcc.

Consiglio n. 5

Si deve sapere che esiste una guerra, da gli esisti incerti, tra iprogrammatori che scrivono i Makefile e coloro che devonocrosscompilare! I programmi non sono in genere pensati per essereportati su architetture diverse dall’x86 (o in generale little-endian)cio implica che non sempre e banale crosscompilare del software.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 153: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (3/11)

Reperita la toolchain ora dobbiamo usarla, si ma come?Consideriamo i tre seguenti casi:

1 compilare un applicativo costituito dal solo file hello.c2 compilare un applicativo mediante l’uso di un Makefile fornito3 generare il Makefile mediante il configure e compilare il

programma.

In tutti e tre i casi si supponga di dover crosscompilare il nostroprogramma per ARM (big-endian) e che il compilatore preposto acio si chiami arm-linux-gcc.

Consiglio n. 5

Si deve sapere che esiste una guerra, da gli esisti incerti, tra iprogrammatori che scrivono i Makefile e coloro che devonocrosscompilare! I programmi non sono in genere pensati per essereportati su architetture diverse dall’x86 (o in generale little-endian)cio implica che non sempre e banale crosscompilare del software.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 154: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (4/11)

Caso 1:

In questo caso e sufficiente ad es. invocare il comando arm-linux-gcc -D

ARM -mbig-endian hello.c -o hello per raggiungere il nostro obiettivo.

Le cose si complicano pero se hello.c include particolari librerie (ad es.

libssl): in tal caso si dovra scrivere arm-linux-gcc -D ARM

-mbig-endian -I <path da includere> -L <path da linkare>

Caso 2:

In presenza di un Makefile fornito a corredo del programma che dobbiamo

crosscompilare, nella stragrande maggioranza dei casi, e necessario

provvedere a modificarlo per ricondurre i comandi di compilazione al caso

visto prima. In riferimento al Makefile di esempio gia visto sara

sufficiente ridefinire la variabile CC nel seguente modo:

CC="arm-linux-gcc -D ARM -mbig-endian"

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 155: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (4/11)

Caso 1:

In questo caso e sufficiente ad es. invocare il comando arm-linux-gcc -D

ARM -mbig-endian hello.c -o hello per raggiungere il nostro obiettivo.

Le cose si complicano pero se hello.c include particolari librerie (ad es.

libssl): in tal caso si dovra scrivere arm-linux-gcc -D ARM

-mbig-endian -I <path da includere> -L <path da linkare>

Caso 2:

In presenza di un Makefile fornito a corredo del programma che dobbiamo

crosscompilare, nella stragrande maggioranza dei casi, e necessario

provvedere a modificarlo per ricondurre i comandi di compilazione al caso

visto prima. In riferimento al Makefile di esempio gia visto sara

sufficiente ridefinire la variabile CC nel seguente modo:

CC="arm-linux-gcc -D ARM -mbig-endian"

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 156: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (5/11)

Caso 3:

Se il Makefile deve essere prodotto mediante uno script di configure lecose si complicano ulteriormente: e necessario capire quali parametripassare allo script affinche generi un Makefile adatto per lacrosscompilazione (ed utilizzabile cosı com’e).

Non potendo dare delle linee guida a carattere generale, si consideri il

caso seguente in cui si riportano i parametri passati al cofigure che

permettono di arrivare ad un Makefile “corretto” per il programma Iperf:

./configure --host=arm-linux --disable-threads \CC="arm-linux-gcc -D ARM -mbig-endian" \CXX="arm-linux-g++ -D ARM -mbig-endian" \CPP="arm-linux-cpp -D ARM -mbig-endian" \LD="arm-linux-ld -D ARM -m big-endian" \LDFLAGS="-I path da includere" \CPPFLAGS="-I altro path da includere"

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 157: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (6/11)

Una volta che si e riusciti a crosscompilare il nostro programma enecessario prestare attenzione ad un problema subdolo: unprogramma stabile su x86 puo inaspettatamente crashare ad es. suARM!Generalmente tutto cio e causato da problemi legati all’endianessdell’architettura la quale puo essere due tipi:

little-endian, ovvero un dato lungo piu byte sara memorizzatoa partire dal byte meno significativo

big-endian, ossia la memorizzazione partira questa volta dalbyte piu significativo.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 158: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (6/11)

Una volta che si e riusciti a crosscompilare il nostro programma enecessario prestare attenzione ad un problema subdolo: unprogramma stabile su x86 puo inaspettatamente crashare ad es. suARM!Generalmente tutto cio e causato da problemi legati all’endianessdell’architettura la quale puo essere due tipi:

little-endian, ovvero un dato lungo piu byte sara memorizzatoa partire dal byte meno significativo

big-endian, ossia la memorizzazione partira questa volta dalbyte piu significativo.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 159: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (6/11)

Una volta che si e riusciti a crosscompilare il nostro programma enecessario prestare attenzione ad un problema subdolo: unprogramma stabile su x86 puo inaspettatamente crashare ad es. suARM!Generalmente tutto cio e causato da problemi legati all’endianessdell’architettura la quale puo essere due tipi:

little-endian, ovvero un dato lungo piu byte sara memorizzatoa partire dal byte meno significativo

big-endian, ossia la memorizzazione partira questa volta dalbyte piu significativo.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 160: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (7/11)

A titolo di esempio si immagini di dover memorizzare il dato0x12345678 (ampio quanto un long), 0xABCD (grande quantouna word) e 0xEF (che richiede esattamente un byte).

In architetture little-endian: In architetture big-endian:

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 161: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (8/11)

Consiglio n. 6

Prestare sempre attenzione all’endianess dell’architettura su cui ilsoftware dovra andare ad eseguire: x86 ad es. e un’architetturalittle-endian mentre ARM o MIPS sono big-endian.

In generale possono nascere problemi se un programma esegueoperazioni del seguente tipo:

1 lettura/scrittura di file binari in modo raw

2 cast che coinvolgono operazioni bit a bit implicite.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 162: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (8/11)

Consiglio n. 6

Prestare sempre attenzione all’endianess dell’architettura su cui ilsoftware dovra andare ad eseguire: x86 ad es. e un’architetturalittle-endian mentre ARM o MIPS sono big-endian.

In generale possono nascere problemi se un programma esegueoperazioni del seguente tipo:

1 lettura/scrittura di file binari in modo raw

2 cast che coinvolgono operazioni bit a bit implicite.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 163: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (8/11)

Consiglio n. 6

Prestare sempre attenzione all’endianess dell’architettura su cui ilsoftware dovra andare ad eseguire: x86 ad es. e un’architetturalittle-endian mentre ARM o MIPS sono big-endian.

In generale possono nascere problemi se un programma esegueoperazioni del seguente tipo:

1 lettura/scrittura di file binari in modo raw

2 cast che coinvolgono operazioni bit a bit implicite.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 164: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (9/11)

Relativamente al primo caso si deve tener presente che:

le stringhe in C sono array di caratteri (con un terminatore)ciascuno dei quali occupa un byte

il nome di un array e un puntatore al primo elemento ivicontenuto; in generale si ha che &arr[i] e minore di &arr[i+1]

quando si scrivono in un file dei dati si specifica l’indirizzo dimemoria che punta all’inizio dei dati sorgente ed il numero dibyte da copiare.

Da cio consegue che, ad es.: la coppia (A,B) di byte,consecutivi in memoria e t.c. &A < &B, saranno salvati sudi un file in modo che A venga prima di B (ovvero cio eendian-independent).I problemi tuttavia nascono quando si pretende diindirizzare/alterare i singoli byte ad es. di un intero: e possibilefare cio ma il programma diventa sensibile all’endianess.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 165: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (9/11)

Relativamente al primo caso si deve tener presente che:

le stringhe in C sono array di caratteri (con un terminatore)ciascuno dei quali occupa un byte

il nome di un array e un puntatore al primo elemento ivicontenuto; in generale si ha che &arr[i] e minore di &arr[i+1]

quando si scrivono in un file dei dati si specifica l’indirizzo dimemoria che punta all’inizio dei dati sorgente ed il numero dibyte da copiare.

Da cio consegue che, ad es.: la coppia (A,B) di byte,consecutivi in memoria e t.c. &A < &B, saranno salvati sudi un file in modo che A venga prima di B (ovvero cio eendian-independent).I problemi tuttavia nascono quando si pretende diindirizzare/alterare i singoli byte ad es. di un intero: e possibilefare cio ma il programma diventa sensibile all’endianess.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 166: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (9/11)

Relativamente al primo caso si deve tener presente che:

le stringhe in C sono array di caratteri (con un terminatore)ciascuno dei quali occupa un byte

il nome di un array e un puntatore al primo elemento ivicontenuto; in generale si ha che &arr[i] e minore di &arr[i+1]

quando si scrivono in un file dei dati si specifica l’indirizzo dimemoria che punta all’inizio dei dati sorgente ed il numero dibyte da copiare.

Da cio consegue che, ad es.: la coppia (A,B) di byte,consecutivi in memoria e t.c. &A < &B, saranno salvati sudi un file in modo che A venga prima di B (ovvero cio eendian-independent).I problemi tuttavia nascono quando si pretende diindirizzare/alterare i singoli byte ad es. di un intero: e possibilefare cio ma il programma diventa sensibile all’endianess.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 167: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (9/11)

Relativamente al primo caso si deve tener presente che:

le stringhe in C sono array di caratteri (con un terminatore)ciascuno dei quali occupa un byte

il nome di un array e un puntatore al primo elemento ivicontenuto; in generale si ha che &arr[i] e minore di &arr[i+1]

quando si scrivono in un file dei dati si specifica l’indirizzo dimemoria che punta all’inizio dei dati sorgente ed il numero dibyte da copiare.

Da cio consegue che, ad es.: la coppia (A,B) di byte,consecutivi in memoria e t.c. &A < &B, saranno salvati sudi un file in modo che A venga prima di B (ovvero cio eendian-independent).I problemi tuttavia nascono quando si pretende diindirizzare/alterare i singoli byte ad es. di un intero: e possibilefare cio ma il programma diventa sensibile all’endianess.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 168: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (9/11)

Relativamente al primo caso si deve tener presente che:

le stringhe in C sono array di caratteri (con un terminatore)ciascuno dei quali occupa un byte

il nome di un array e un puntatore al primo elemento ivicontenuto; in generale si ha che &arr[i] e minore di &arr[i+1]

quando si scrivono in un file dei dati si specifica l’indirizzo dimemoria che punta all’inizio dei dati sorgente ed il numero dibyte da copiare.

Da cio consegue che, ad es.: la coppia (A,B) di byte,consecutivi in memoria e t.c. &A < &B, saranno salvati sudi un file in modo che A venga prima di B (ovvero cio eendian-independent).I problemi tuttavia nascono quando si pretende diindirizzare/alterare i singoli byte ad es. di un intero: e possibilefare cio ma il programma diventa sensibile all’endianess.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 169: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (10/11)

Ecco un esempio di quanto detto:

int main (int argc, char* argv[]) {

FILE* fp;

struct {

char one[4];

int two;

char three[4];

} data;

strcpy (data.one, "foo");

data.two = 0x01234567; // Modifica di un intero.

strcpy (data.three, "bar");

fp = fopen ("output", "wb");

if (fp) {

fwrite (&data, sizeof (data), 1, fp);

fclose (fp);

}

}

Il file output conterra: 66 6f 6f 00 01 23 45 67 62 61 72 00 (per

big-endian) oppure 66 6f 6f 00 67 45 23 01 62 61 72 00 (per little-endian).Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 170: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (10/11)

Ecco un esempio di quanto detto:

int main (int argc, char* argv[]) {

FILE* fp;

struct {

char one[4];

int two;

char three[4];

} data;

strcpy (data.one, "foo");

data.two = 0x01234567; // Modifica di un intero.

strcpy (data.three, "bar");

fp = fopen ("output", "wb");

if (fp) {

fwrite (&data, sizeof (data), 1, fp);

fclose (fp);

}

}

Il file output conterra: 66 6f 6f 00 01 23 45 67 62 61 72 00 (per

big-endian) oppure 66 6f 6f 00 67 45 23 01 62 61 72 00 (per little-endian).Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 171: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. La crosscompilazione (11/11)

Interessante e anche la seconda causa di problemi; considerandoche “1” su 32 bit sara rappresentato in memoria come 0x00 0x000x00 0x01 (per big-endian) o come 0x01 0x00 0x00 0x00 (perlittle-endian) si veda il seguente esempio:

#define LITTLE_ENDIAN 0#define BIG_ENDIAN 1

int endian() {int i = 1;char *p = (char *)&i; // "p" contiene l’indirizzo del

// primo byte occupato da "i".if (p[0] == 0x01)

return LITTLE_ENDIAN;else

return BIG_ENDIAN;}

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 172: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. OpenWrt (1/4)

OpenWrt (http://openwrt.org) e un avanzato ambiente dicrosscompilazione e produzione di distribuzioni Linux per SBC cheautomatizza processi complessi come: il downloading dei sorgentied il loro patching. OpenWrt ha come pregio quello di essere unsistema estremamente intuitivo, snello e facilmente estendibile.

Come si installa OpenWrt?

Assumendo di voler installare la versione trunk e necessario seguirela seguente procedura:

1 nella propria home directory scaricare OpenWrt mediante ilcomando svn co https://svn.openwrt.org/openwrt/trunk/

2 integrare una ricca libreria di software compilabile mediante ilcomando make package/symlinks V=99 invocato nelladirectory trunk creata al passo precedente; si aprira il menu diconfigurazione generale di OpenWrt, uscire e salvare.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 173: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. OpenWrt (1/4)

OpenWrt (http://openwrt.org) e un avanzato ambiente dicrosscompilazione e produzione di distribuzioni Linux per SBC cheautomatizza processi complessi come: il downloading dei sorgentied il loro patching. OpenWrt ha come pregio quello di essere unsistema estremamente intuitivo, snello e facilmente estendibile.

Come si installa OpenWrt?

Assumendo di voler installare la versione trunk e necessario seguirela seguente procedura:

1 nella propria home directory scaricare OpenWrt mediante ilcomando svn co https://svn.openwrt.org/openwrt/trunk/

2 integrare una ricca libreria di software compilabile mediante ilcomando make package/symlinks V=99 invocato nelladirectory trunk creata al passo precedente; si aprira il menu diconfigurazione generale di OpenWrt, uscire e salvare.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 174: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. OpenWrt (1/4)

OpenWrt (http://openwrt.org) e un avanzato ambiente dicrosscompilazione e produzione di distribuzioni Linux per SBC cheautomatizza processi complessi come: il downloading dei sorgentied il loro patching. OpenWrt ha come pregio quello di essere unsistema estremamente intuitivo, snello e facilmente estendibile.

Come si installa OpenWrt?

Assumendo di voler installare la versione trunk e necessario seguirela seguente procedura:

1 nella propria home directory scaricare OpenWrt mediante ilcomando svn co https://svn.openwrt.org/openwrt/trunk/

2 integrare una ricca libreria di software compilabile mediante ilcomando make package/symlinks V=99 invocato nelladirectory trunk creata al passo precedente; si aprira il menu diconfigurazione generale di OpenWrt, uscire e salvare.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 175: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. OpenWrt (2/4)

OpenWrt offre un framework potente per integrare nuovo softwaremediante lo strumento dei “pacchetti”. Essi si trovano nelladirectory ./trunk/package (scaricata all’atto dell’svn co...) ed in./trunk/feeds (integrati tramite il make package/symlinks V=99).

Di cosa si compone un pacchetto?

Un pacchetto dal nome foo consta delle seguenti parti:

foo/Makefile ospita tutte le informazioni necessarie per scaricare daInternet i sorgenti, decomprimerli, patcharli, compilarli ed installarli

foo/patches contiene le patch da applicare ai sorgenti prima dellacompilazione

foo/files ospita in genere file di configurazione o script impiegati dalsoftware nella sua esecuzione; puo anche contenere i sorgenti stessi,se il programma e stato scritto ad es. in proprio.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 176: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. OpenWrt (2/4)

OpenWrt offre un framework potente per integrare nuovo softwaremediante lo strumento dei “pacchetti”. Essi si trovano nelladirectory ./trunk/package (scaricata all’atto dell’svn co...) ed in./trunk/feeds (integrati tramite il make package/symlinks V=99).

Di cosa si compone un pacchetto?

Un pacchetto dal nome foo consta delle seguenti parti:

foo/Makefile ospita tutte le informazioni necessarie per scaricare daInternet i sorgenti, decomprimerli, patcharli, compilarli ed installarli

foo/patches contiene le patch da applicare ai sorgenti prima dellacompilazione

foo/files ospita in genere file di configurazione o script impiegati dalsoftware nella sua esecuzione; puo anche contenere i sorgenti stessi,se il programma e stato scritto ad es. in proprio.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 177: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. OpenWrt (2/4)

OpenWrt offre un framework potente per integrare nuovo softwaremediante lo strumento dei “pacchetti”. Essi si trovano nelladirectory ./trunk/package (scaricata all’atto dell’svn co...) ed in./trunk/feeds (integrati tramite il make package/symlinks V=99).

Di cosa si compone un pacchetto?

Un pacchetto dal nome foo consta delle seguenti parti:

foo/Makefile ospita tutte le informazioni necessarie per scaricare daInternet i sorgenti, decomprimerli, patcharli, compilarli ed installarli

foo/patches contiene le patch da applicare ai sorgenti prima dellacompilazione

foo/files ospita in genere file di configurazione o script impiegati dalsoftware nella sua esecuzione; puo anche contenere i sorgenti stessi,se il programma e stato scritto ad es. in proprio.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 178: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. OpenWrt (2/4)

OpenWrt offre un framework potente per integrare nuovo softwaremediante lo strumento dei “pacchetti”. Essi si trovano nelladirectory ./trunk/package (scaricata all’atto dell’svn co...) ed in./trunk/feeds (integrati tramite il make package/symlinks V=99).

Di cosa si compone un pacchetto?

Un pacchetto dal nome foo consta delle seguenti parti:

foo/Makefile ospita tutte le informazioni necessarie per scaricare daInternet i sorgenti, decomprimerli, patcharli, compilarli ed installarli

foo/patches contiene le patch da applicare ai sorgenti prima dellacompilazione

foo/files ospita in genere file di configurazione o script impiegati dalsoftware nella sua esecuzione; puo anche contenere i sorgenti stessi,se il programma e stato scritto ad es. in proprio.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 179: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. OpenWrt (3/4)

Come si comunica ad OpenWrt il tipo di architettura voluta?

Assumendo di voler compilare per un’architettura identica a quellade La Fonera (MIPS 4Kc su board Atheros) seguire la seguenteprocedura:

1 dalla directory trunk eseguire il comando make menuconfig

2 dal menu “Target System” selezionare “Atheros 231x/5312[2.6]”

3 uscire e salvare.

A questo punto e sufficiente invocare il comando make V=99 percompilare la toolchain (./trunk/toolchain), la zImage(./trunk/bin/openwrt-atheros-vmlinux.lzma) ed il romfs(./trunk/bin/openwrt-atheros-root.squashfs).

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 180: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. OpenWrt (3/4)

Come si comunica ad OpenWrt il tipo di architettura voluta?

Assumendo di voler compilare per un’architettura identica a quellade La Fonera (MIPS 4Kc su board Atheros) seguire la seguenteprocedura:

1 dalla directory trunk eseguire il comando make menuconfig

2 dal menu “Target System” selezionare “Atheros 231x/5312[2.6]”

3 uscire e salvare.

A questo punto e sufficiente invocare il comando make V=99 percompilare la toolchain (./trunk/toolchain), la zImage(./trunk/bin/openwrt-atheros-vmlinux.lzma) ed il romfs(./trunk/bin/openwrt-atheros-root.squashfs).

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 181: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. OpenWrt (3/4)

Come si comunica ad OpenWrt il tipo di architettura voluta?

Assumendo di voler compilare per un’architettura identica a quellade La Fonera (MIPS 4Kc su board Atheros) seguire la seguenteprocedura:

1 dalla directory trunk eseguire il comando make menuconfig

2 dal menu “Target System” selezionare “Atheros 231x/5312[2.6]”

3 uscire e salvare.

A questo punto e sufficiente invocare il comando make V=99 percompilare la toolchain (./trunk/toolchain), la zImage(./trunk/bin/openwrt-atheros-vmlinux.lzma) ed il romfs(./trunk/bin/openwrt-atheros-root.squashfs).

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 182: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. OpenWrt (3/4)

Come si comunica ad OpenWrt il tipo di architettura voluta?

Assumendo di voler compilare per un’architettura identica a quellade La Fonera (MIPS 4Kc su board Atheros) seguire la seguenteprocedura:

1 dalla directory trunk eseguire il comando make menuconfig

2 dal menu “Target System” selezionare “Atheros 231x/5312[2.6]”

3 uscire e salvare.

A questo punto e sufficiente invocare il comando make V=99 percompilare la toolchain (./trunk/toolchain), la zImage(./trunk/bin/openwrt-atheros-vmlinux.lzma) ed il romfs(./trunk/bin/openwrt-atheros-root.squashfs).

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 183: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. OpenWrt (4/4)

Interessante e notare che e possibile comunicare ad OpenWrt dicompilare un certo software ma di non includerlo nelladistribuzione: in questo caso il programma verra pacchettizzato inun IPKG (installabile in un secondo momento dall’SBCstesso!). Tutto il software oggetto o meno dell’installazionesull’SBC viene in ogni caso pacchettizzato e posto in./trunk/bin/packages.OpenWrt installa inoltre sull’SBC il packet manager ipkg il quale,mediante l’accesso a repositiry esterni, permettere l’aggiornamentodell’apparato come una qualunque distribuzione Linux.

Consiglio n. 7

La scelta di OpenWrt in contesti industriali sta prendendo semprepiu campo per ovvi motivi; e buona norma infatti non perdere maitempo a “reinventare la ruota” ma partire da un ambiente disviluppo stabile e maturo.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 184: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. OpenWrt (4/4)

Interessante e notare che e possibile comunicare ad OpenWrt dicompilare un certo software ma di non includerlo nelladistribuzione: in questo caso il programma verra pacchettizzato inun IPKG (installabile in un secondo momento dall’SBCstesso!). Tutto il software oggetto o meno dell’installazionesull’SBC viene in ogni caso pacchettizzato e posto in./trunk/bin/packages.OpenWrt installa inoltre sull’SBC il packet manager ipkg il quale,mediante l’accesso a repositiry esterni, permettere l’aggiornamentodell’apparato come una qualunque distribuzione Linux.

Consiglio n. 7

La scelta di OpenWrt in contesti industriali sta prendendo semprepiu campo per ovvi motivi; e buona norma infatti non perdere maitempo a “reinventare la ruota” ma partire da un ambiente disviluppo stabile e maturo.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 185: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software Il sistema di bootstrap L’ambiente di sviluppo

L’ambiente di sviluppo. OpenWrt (4/4)

Interessante e notare che e possibile comunicare ad OpenWrt dicompilare un certo software ma di non includerlo nelladistribuzione: in questo caso il programma verra pacchettizzato inun IPKG (installabile in un secondo momento dall’SBCstesso!). Tutto il software oggetto o meno dell’installazionesull’SBC viene in ogni caso pacchettizzato e posto in./trunk/bin/packages.OpenWrt installa inoltre sull’SBC il packet manager ipkg il quale,mediante l’accesso a repositiry esterni, permettere l’aggiornamentodell’apparato come una qualunque distribuzione Linux.

Consiglio n. 7

La scelta di OpenWrt in contesti industriali sta prendendo semprepiu campo per ovvi motivi; e buona norma infatti non perdere maitempo a “reinventare la ruota” ma partire da un ambiente disviluppo stabile e maturo.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 186: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software

Riferimenti bibliografici

K. Yaghmour, Building Embedded Linux Systems. O’Really,2003.

M. Barr e A. Massa, Programming Embedded Systems.O’Reilly, 2006.

P. Raghavan, A. Lad e S. Neelakandan, Embedded LinuxSystem Design and Development. Auerbach Publications,2006.

H. S. Adiga, Writing endian-independent code in C. Don’t letendianness “byte” you. IBM, 2007.www.ibm.com/in/stats5/index.html.

RedBoot User’s Guide. http://ecos.sourceware.org/docs-latest/redboot/redboot-guide.html.

OpenWrt development center. https://dev.openwrt.org.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti

Page 187: Parte 1 - Linux ed i sistemi embedded per le reti (di Andrea Tassi)

Il TecNode L’hardware Il software

Fine della prima parteGrazie per l’attenzione.

Andrea Tassi [email protected] Linux ed i sistemi embedded per le reti