Changes between Version 5 and Version 6 of SujetTP3-2015


Ignore:
Timestamp:
Feb 28, 2015, 11:20:24 AM (10 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SujetTP3-2015

    v5 v6  
    4141}}}
    4242
    43 == Etape 1 : création et test d'un module noyau ==
     43== Étape 1 : création et test d'un module noyau ==
    4444
    4545La première étape consiste à créer un module noyau, l'insérer puis l'effacer du noyau.
     
    7474CARD_NUMB       = 23
    7575ROUTER          = 132.227.102.36
     76LOGIN           = franck
    7677LAB             = lab2
    77 LOGIN           = franck
    7878
    7979MODULE          = module
     
    8989}}}
    9090
    91 Vous devez créer ces fichiers et bien sûr, les comprendre.
     91Sur votre compte enseignement, vous devez:
     92* Créer ces fichiers et bien sûr, les comprendre.
     93* '''changer la valeur des variables `CARD_NUMB`, `LOGIN`et `LAB` afin de les adapter respectivement au numéro de la carte choisie, au nom du répertoire créé par vous sur la raspberry et au nom du sous-répertoire créé par vous pour ce TP'''. Les répertoires et sous-répertoires doivent exister et vous devez donc commencer par vous logger sur votre carte Raspberry PI avec `ssh` pour les créer.
     94* Compiler le module avec la commande `make`.
     95* Copier sur la raspberry avec scp avec la commande `make upload`.
    9296
    93 == étape 2 : création d'un driver qui ne fait rien mais dans le noyau ==
     97Sur la carte Raspberry PI, vous devez:
     98* Dans le répertoire `$(LOGIN)/$(LAB)'(par exemple `franck/lab2`) où vous avez copié votre module
    9499
    95 == étape 3 : accès aux GPIO depuis les fonctions du pilote ==
     100{{{
     101$ sudo insmod ./module.ko
     102$ lsmod
     103$ dmesg
     104$ sudo rmmod module
     105$ lsmod
     106$ dmesg
     107}}}
     108* Les commandes `lsmod`et `dmesg` permettent de voir que les actions du module.
    96109
     110
     111== Étape 2 : ajout des paramètres au module ==
     112
     113Votre driver devra être paramétré pour lui indiquer le numéro de ports utilisés pour les leds et les boutons.
     114Dans un premier temps vous allez vous contenter d'indiquer le nombre de led et de boutons pour le module de test, mais il faudra être plus précis pour le vrai driver.
     115
     116Vous devez ajouter dans module.c (faite d'équivalent pour les boutons):
     117{{{
     118static int led;
     119module_param(led, int, 0);
     120MODULE_PARM_DESC(led, "Nombre de led");
     121
     122static int __init mon_module_init(void)
     123{
     124    printk(KERN_DEBUG "Hello World !\n");
     125    printk(KERN_DEBUG "led=%d !\n", led);
     126    return 0;
     127}
     128}}}
     129Le paramètre est défini au moment de l'insertion.
     130{{{
     131$ insmod ./module.o led=4
     132}}}
     133
     134== Étape 3 : création d'un driver qui ne fait rien mais dans le noyau ==
     135
     136
     137
     138
     139== Étape 4 : accès aux GPIO depuis les fonctions du pilote ==
     140