IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Problème compilation - Drivers


Sujet :

Linux

  1. #21
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Euh oui je veux bien. Merci

    Pour le unregister_chrdev c'est corrigé (j'avais oublié).
    Pour le file oublié, c'est fait aussi
    Merci.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  2. #22
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    Je reviens sur le sujet

    J'ai écris mes fonction read, write, etc...
    Je compile, je lance mon module (insmod) et puis j'affiche le log avec dmesg. Seulement, je n'ai que mes messages du init et non les appels des fonctions open, etc. Est-ce normal ?

    Je voudrais savoir aussi comment nommer mon module ? Lorsque le liste les modules (lsmod) je ne sais pas trop quel est le module que je crée. J'ai un module qui s'appel 'module'... Le module prend le nom du fichier source ?

    Merci de votre aide !

  3. #23
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par Alexandre`
    Je reviens sur le sujet

    J'ai écris mes fonction read, write, etc...
    Je compile, je lance mon module (insmod) et puis j'affiche le log avec dmesg. Seulement, je n'ai que mes messages du init et non les appels des fonctions open, etc. Est-ce normal ?

    Je voudrais savoir aussi comment nommer mon module ? Lorsque le liste les modules (lsmod) je ne sais pas trop quel est le module que je crée. J'ai un module qui s'appel 'module'... Le module prend le nom du fichier source ?

    Merci de votre aide !
    Tu as fais comme dans le tuto ?
    mknod ...
    cat ...
    ...

    Pour le nom dans lsmod, il me semble qu'il prend effectivement le nom du fichier source (enfin du fichier compilé mais ils ont le même nom).
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  4. #24
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    rebonsoir

    Ces 2 instructions sont un peu obscure pour moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Tout d'abord, nous devons créer son fichier spécial : mknod /dev/mydriver c 254 0
     
    Nous pouvons désormais effectuer notre premier test : $ cat mydriver.c > /dev/mydriver
    Le mknod fonctionne, j'ai bien un "fichier spécial" dans /dev/

    Mais pour le cat je pige pas trop, mydriver.c c'est ton fichier source ??
    Sinon lorsque je tente d'exécuter la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ cat mydriver.c > /dev/mydriver
    J'ai un "Permission non accordée" et cela même avec sudo ?!

  5. #25
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par Alexandre`
    rebonsoir

    Ces 2 instructions sont un peu obscure pour moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Tout d'abord, nous devons créer son fichier spécial : mknod /dev/mydriver c 254 0
     
    Nous pouvons désormais effectuer notre premier test : $ cat mydriver.c > /dev/mydriver
    Le mknod fonctionne, j'ai bien un "fichier spécial" dans /dev/

    Mais pour le cat je pige pas trop, mydriver.c c'est ton fichier source ??
    Sinon lorsque je tente d'exécuter la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ cat mydriver.c > /dev/mydriver
    J'ai un "Permission non accordée" et cela même avec sudo ?!
    Alors en fait le cat mydriver.c > /dev/mydriver c'est juste pour tester l'ouverture et la l'ecriture dans le periphérique.

    Tu peux faire cat de n'importe quoi c'est juste la redirection qui est importante, elle va effectuer un open et un write.

    Tu peux me montrer le mknod que tu as fait stp.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  6. #26
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    A vrai dire, j'ai fais bêtement le même !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo mknod /dev/mydriver c 254 0
    D'ailleur, comment fait-il le lien avec le module créé et lancé ?

  7. #27
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par Alexandre`
    A vrai dire, j'ai fais bêtement le même !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo mknod /dev/mydriver c 254 0
    D'ailleur, comment fait-il le lien avec le module créé et lancé ?
    Grâce au nombre majeur qui est ici 254. Il faut que ce soit le même dans le code source.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  8. #28
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    D'accord ! C'est bien le cas.

    Tu as une idée pour mon "Permission non accordée" sur le cat ? J'ai crée un bête fichier contenant du texte, j'ai retenté le cat mais toujours le même soucis.

    Merci de ton aide !

  9. #29
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Tu peux me montrer ton code stp.

    [EDIT]
    Question bête, tu as bien insérer ton module (insmod module) ?
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  10. #30
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    bonsoir,
    Oui mon module est bien chargé. Il apparait dans la liste lorsque je fais un lsmod.

    Voici mon code (qui est pas très loin du tiens )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    #include <linux/module.h>
    #include <linux/init.h>
    #include <linux/fs.h>
     
    MODULE_AUTHOR("Alexandre J.");
    MODULE_DESCRIPTION("test module");
    MODULE_SUPPORTED_DEVICE("none");
    MODULE_LICENSE("none");
     
    static int major = 254;
     
    module_param(major, int, 0);
     
    /** fonctions systèmes **/
    static ssize_t read_function(struct file *file, char *buf, size_t count, loff_t * ppos)
    {
      printk(KERN_DEBUG "read function\n");
      return 0;
    }
     
    static ssize_t write_function(struct file *file, const char *buf, size_t count, loff_t *ppos)
    {
      printk(KERN_DEBUG "write function\n");
      return 0;
    }
     
    static int open_function(struct inode *inode, struct file *file)
    {
      printk(KERN_DEBUG "open function\n");
      return 0;
    }
     
    static int release_function(struct inode *inode, struct file *file)
    {
      printk(KERN_DEBUG "read function\n");
      return 0;
    }
     
    static struct file_operations p_fun =
    {
      read: read_function,
      write: write_function,
      open: open_function,
      release: release_function
    };
     
     
    /** module init **/
    static int __init mod_init(void)
    {
      int ret;
     
    	printk(KERN_DEBUG "Initialisation du module\n");
    	printk(KERN_DEBUG "arg : %d\n", major);
     
    	ret = register_chrdev(major, "module_test", &p_fun);
     
    	if (ret < 0)
    	{
    	  printk(KERN_WARNING "Probleme sur le major\n");
    	}
     
    	printk(KERN_DEBUG "Driver chargé avec succès\n");
    	return 0;
    }
     
     
    /** module cleanup **/
    static void __exit mod_cleanup(void)
    {
      int ret;
     
      printk(KERN_DEBUG "cleanup du module\n");
     
    	ret = unregister_chrdev(major, "module_test");
     
    	if (ret < 0)
    	{
    	  printk(KERN_WARNING "Problème sur la méthode unregister\n");
    	}
     
    	printk(KERN_DEBUG "Driver déchargé avec succès\n");
    }
     
    module_init(mod_init);
    module_exit(mod_cleanup);
    merci

  11. #31
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Alors je viens d'essayer.

    Moi j'ai juste une erreur comme quoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cat: Erreur d'écriture.: Aucun espace disponible sur le périphérique
    Ce qui est normal parce que y'a rien dans le corps de la fonction write.

    Alors réessaye tout en modifiant le major number dans le source et met 253 par exemple et après tu fais un mknod /dev/zzz c 253 0
    Et pis après tu fais insmod module.ko pis tu réessaye le cat.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  12. #32
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    J'ai testé, j'ai toujours un problème de permission... tu es sous quelle distrib ?

  13. #33
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par Alexandre`
    J'ai testé, j'ai toujours un problème de permission... tu es sous quelle distrib ?
    Debian.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  14. #34
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    Après un joli :

    J'ai le même message que toi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat: erreur d'écriture: Aucun espace disponible sur le périphérique

Discussions similaires

  1. Problème compilation driver ethernet
    Par bogsy15 dans le forum Debian
    Réponses: 3
    Dernier message: 20/02/2007, 20h50
  2. Problème compilation (toolkit Maximum Entropy)
    Par yannick_frere dans le forum MFC
    Réponses: 4
    Dernier message: 07/03/2005, 09h47
  3. Problème compilation Version 8.0.1 sous Debian Sarge
    Par LIndien dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 04/02/2005, 21h38
  4. [tomcat] [jsp] Problème avec driver OCI pour oracle
    Par nanardcompanie dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 01/07/2004, 09h54
  5. [Kylix] problème compilation kylix3 avec redhat 9.0
    Par madininaoursa dans le forum EDI
    Réponses: 1
    Dernier message: 02/07/2003, 16h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo