Click here to start

Table of contents

SVILUPPO KERNEL E DRIVER PER LINUX EMBEDDED

Ringraziamenti

Copia

Aggiornamenti

Introduzione

Contenuti (1)

Contenuti (2)

Contenuti (3)

Contenuti (4)

Versione del kernel considerata: 2.6

Sezione Introduzione

Ruolo del kernel

Storia di Linux

Schema del numero di versione

Architetture hardware supportate

Caratteristiche principali di Linux

Sottosezione Considerazioni Legali

Sottosezione Dettagli e vincoli della licenza

Cos'è il Free Software

La licenza GPL

Vincoli della licenza del kernel Linux

Vantaggi dei driver “free”

Sottosezione Brevetti software

Brevetti software: la grande minaccia legale

Albo della vergogna dei brevetti software

Come evitare problemi legati ai brevetti

Come gestire problemi da brevetti

Sottosezione Interfaccia utitlizzatore del kernel

Interfaccia utilizzatore del kernel

Sezione Compilazione e boot di Linux

Sottosezione Ottenere i sorgenti

Accesso ai sorgenti del kernel

Uso del comando patch

Esempio d'utilizzo di patch

Link utili ai sorgenti del kernel

Sottosezione Struttura dei file sorgente

Struttura dei sorgenti Linux (1)

Struttura dei sorgenti Linux (2)

Sottosezione Moduli del kernel

Moduli caricabili (1)

Moduli caricabili (2)

Sottosezione Configurazione del kernel

Panoramica configurazione del kernel

Modifiche a Makefile

make xconfig

Schermate di qconf

make menuconfig / oldconfig

Sottosezione Compilare il kernel

Compilazione e installazione del kernel

Velocizzare la compilazione

Astuzie di compilazione

File generati

File installati (1)

File installati (2)

File installati (3)

Sommario della compilazione del kernel

Sottosezione Cross compilazione del kernel

Modifiche al Makefile

Configurazione del kernel

Setup della cross compilazione

Generare il kernel

Sottosezione Bootloader

Il lavoro del bootloader

Bootloader a due fasi

Alcuni bootloader (1)

Alcuni bootloader (2)

Parametri di boot del kernel

Parametri di boot più comuni

Sottosezione Debug attraverso la porta seriale

Utilità di una porta seriale

In caso di mancanza di porta seriale

Sezione Creazione di un ramdisk initrd

Initrd

Come creare un initrd

Sezione Sviluppo di driver

Sottosezione Device driver per Linux

Driver a caratteri

Driver a blocchi

Numeri di device maggiore e minore

Creazione dei file di device

Altri tipi di driver

Sottosezione Un semplice modulo

Modulo hello

Linee guida per la scrittura di moduli (1)

Linee guida per la scrittura di moduli (2)

Compilazione di un modulo

Usare un modulo

Funzioni utili

Sottosezione Parametri di un modulo

Modulo “hello” con parametri

Uso del modulo hello_param

Dichiarazione dei parametri di un modulo

Passaggio di parametri ad un modulo

Sottosezione Dipendenze dei moduli

Dipendenze di un modulo

Sottosezione Aggiunta di sorgenti al kernel

Nuova directory sorgente (1)

Nuova directory sorgente (2)

Sottosezione Debug del kernel

Debug usando printk

ksymoops

Debug usando Kprobes

Astuzie per il debug del kernel

Consigli e risorse

Sicurezza del sistema

Sezione Usare Ethernet su USB

Usare Ethernet su USB (1)

Usare Ethernet su USB (2)

Sezione Filesystem di root sull'host tramite NFS

Utilità di rootfs su NFS

Esempio di setup di NFS

Utilizzo di pivot_root

Sottosezione Scelta del tipo di filesystem

Device a blocchi o filesystem MTD

Filesystem con device a blocchi più diffusi

Filesystem a blocchi in sola lettura

Sottosistema MTD

Filesystem MTD

Filesystem a blocchi su MTD

Scelta filesystem per il proprio device flash

Montare un'immagine jffs2

Ottenere aiuto e collaborazione

Risoluzione problemi

Ottenere aiuto

Ottenere collaborazione

Incoraggiare la collaborazione

Sottosezione Segnalare bug e patch

Segnalazione bug di Linux

Come creare patch per Linux

Invio di patch e driver

Sottosezione Riferimenti

Siti di informazione (1)

Siti di informazione (2)

Letture utili

Riferimenti utili

Risorse per ARM

Progetti Linux ARM

Ultimo consiglio

Usare i sorgenti!

Documenti correlati

Laboratorio pratico

Servizi di formazione e consulenza

Author: Michael Opdenacker

E-mail: michael@free-electrons.com