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.
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]
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 ?Envoyé par Alexandre`
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]
rebonsoir
Ces 2 instructions sont un peu obscure pour moi :
Le mknod fonctionne, j'ai bien un "fichier spécial" dans /dev/
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
Mais pour le cat je pige pas trop, mydriver.c c'est ton fichier source ??
Sinon lorsque je tente d'exécuter la commande :
J'ai un "Permission non accordée" et cela même avec sudo ?!
Code : Sélectionner tout - Visualiser dans une fenêtre à part $ cat mydriver.c > /dev/mydriver
Alors en fait le cat mydriver.c > /dev/mydriver c'est juste pour tester l'ouverture et la l'ecriture dans le periphérique.Envoyé par Alexandre`
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]
A vrai dire, j'ai fais bêtement le même !
D'ailleur, comment fait-il le lien avec le module créé et lancé ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part sudo mknod /dev/mydriver c 254 0
Grâce au nombre majeur qui est ici 254. Il faut que ce soit le même dans le code source.Envoyé par Alexandre`
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]
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 !
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]
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 )
merci
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);
Alors je viens d'essayer.
Moi j'ai juste une erreur comme quoi
Ce qui est normal parce que y'a rien dans le corps de la fonction write.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2cat: Erreur d'écriture.: Aucun espace disponible sur le périphérique
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]
J'ai testé, j'ai toujours un problème de permission... tu es sous quelle distrib ?
Debian.Envoyé par Alexandre`
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]
Après un joli :
J'ai le même message que toi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part chmod 777 /dev/zzz
Code : Sélectionner tout - Visualiser dans une fenêtre à part cat: erreur d'écriture: Aucun espace disponible sur le périphérique
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager